Oraakkelit: hinta, johon sopimus luottaa
Erota markkinahinnat sopimuksen syötteistä ja analysoi vanhentunutta, ohutta tai epäsopivaa viitedataa.

Koodin ja havainnon raja
Älysopimus voi soveltaa laskentaa johdonmukaisesti huonoon lähtötietoon. Oraakkeli antaa tietoja, joita sopimus ei voi itsenäisesti päätellä omasta suoritustilastaan, kuten ulkoisen markkinahinnan. Ethereumin oraakkelidokumentaatio selittää tämän lohkoketjusuorituksen ja ulkopuolisen datan rajan. Tärkeä kysymys ei ole vain, päivittyykö syöte, vaan mitä päivitetty luku tarkoittaa.
Hinta voi edustaa yhtä kaupankäyntipaikkaa, yhdistelmää, aikapainotettua havaintoa tai lunastusarvoa. Määritelmät vastaavat eri kysymyksiin. Pörssin toteutushinta kuvaa tapahtumaa; viitehinta tukee sääntöä; lunastusarvo kuvaa oikeutta määrätyin ehdoin. Niitä ei tule korvata toisillaan ilman selitystä.
Tutki hintasyötteen määrittely
Kirjaa kuvitteelliselle lainamarkkinalle omaisuuseräpari, yksiköt, desimaalit, päivitysehdot ja varatoiminta. Selvitä, noteerataanko arvo dollareina, toisena tokenina vai perusomaisuuseränä. Oikealta näyttävä luku väärällä desimaalikertoimella skaalattuna voi olla katastrofaalisen väärä toisen komponentin tulkitsemana.
Tutki myös ajantasaisuutta. Syöte, joka päivittyy vasta poikkeaman tai aikavälin jälkeen, voi perustellusti erota nopeasti liikkuvasta toimeksiantokirjasta. Sovelluksen on päätettävä, milloin tieto on liian vanhaa ja mitä silloin tehdään. Uuden lainanoton keskeyttäminen voi suojata vanhentuneelta tiedolta mutta jättää nykyiset positiot alttiiksi myöhemmille hintapäivityksille. Yleispätevästi haitatonta varajärjestelyä ei ole.
Likviditeetti kuuluu syötteiden laatuun
Ohuilla markkinoilla viimeisin kauppahinta voi olla epäedustava suurelle toteutettavissa olevalle kaupalle. Kaupankäyntipaikkojen yhdistäminen voi vähentää riippuvuutta yhdestä paikasta, mutta yhteinen omistus, jaettu likviditeetti tai samanaikaiset katkokset voivat rajoittaa saatua riippumattomuutta. Aikakeskiarvo tasoittaa lyhytaikaisia liikkeitä mutta lisää viivettä. Jokainen rakenne vaihtaa yhdet heikkoudet toisiin.
Tarkastele tokenia, jonka noteerattu hinta on $10 mutta lähellä oleva ostosyvyys vain $5,000. Vakuuksien arvostaminen $1 miljoonaan tällä marginaalihinnalla ei osoita, että likvidoijat voivat realisoida $1 miljoonan. Oraakkeli voi raportoida määritetyn viitteensä oikein samalla, kun riskimalli yliarvioi saatavat realisointituotot. Datan laatu ja pakkolikvidointikapasiteetti ovat toisiinsa liittyviä mutta erillisiä ongelmia.
Stressitestaa vakuussuhteen molempia puolia
Vakuudellinen laina riippuu vakuuden ja velan hinnoista. Vakaaksi kuvatun tokenin lainaaminen ei tee sen dollariarvosta matemaattisesti kiinteää. Jos velan takaisinostaminen kallistuu vakuuden samalla halventuessa, positio heikkenee molemmilta suunnilta. Mallinna muutokset erikseen sen sijaan, että pitäisit toista puolta tottumuksesta vakiona.
Oletetaan vakuuden arvoksi $12,000, velaksi 6,000 yksikköä aluksi arvoltaan $1 kappaleelta ja kuvitteelliseksi pakkolikvidointirajaksi 75%. Alkutilanteen terveyskerroin on 1.50. Jos vakuus laskee 25% arvoon $9,000 velkayksiköiden noustessa arvoon $1.10, kertoimeksi tulee $9,000 × 0.75 ÷ $6,600 eli noin 1.023. Näennäisesti mukava puskuri on lähes loppunut.
Tutki integraatiota, älä vain tarjoajaa
Hyvämaineinen datantarjoaja ei takaa, että sovellus valitsee oikean syötteen, käsittelee puuttuvat arvot tai tarkistaa aikaleimat oikein. Tarkastele sovelluksen dokumentaatiota, asiaankuuluvia auditointeja ja parametripäätöksiä. Seuraa paperiharjoituksessa tavallisen hintapäivityksen ja sitten puuttuvan päivityksen kulkua laskelman läpi. Ilmoita, mistä näyttö puuttuu, sen sijaan että täyttäisit aukot varmuudella.
Hyödyllinen seurantasuunnitelma erottaa markkinaliikkeen tietosyötteen poikkeamasta. Vertaa ilmoitettua viitearvoa riippumattomiin havaintoihin ja syötteen odotettuun päivityskäytäntöön. Erot vaativat selvittämistä, eivät automaattista kaupankäyntiä. Tämä oppitunti käsittelee sopimuksen toiminnan ja operatiivisen riskin ymmärtämistä, ei syötteen heikkouden hyödyntämistä tai oletusta, että näennäisestä hinnoitteluvirheestä voisi turvallisesti hyötyä.
Laske lisäharjoituksena sama vakuuspositio kolmella viiteoletuksella: viimeisin raportoitu syöte, nykyinen toteutuskelpoinen ostotarjous ja stressattu myyntihinta. Merkitse jokainen selvästi. Syntyvä vaihteluväli ei ole luottamusväli vaan herkkyys arvostusvalinnoille. Sen tarkoitus on paljastaa, mikä hintamääritelmä ohjaa johtopäätöstä ja missä tarvitaan lisää likviditeettinäyttöä.
Keskiarvo tasoittaa havaintoja mutta voi reagoida hitaasti
Kuvitteellinen hinta on yhdeksän minuuttia 100 euroa ja viimeisen minuutin 80 euroa. Tämän kymmenen minuutin jakson aikapainotettu keskiarvo on 98 euroa. Sen käyttäminen tämänhetkisenä myyntihintana olisi virhe, vaikka keskiarvo olisi laskettu aivan oikein.
Uniswapin v2-oraakkelikuvaus selittää aikapainotetun hinnan muodostamisen. Pidempi ikkuna muuttaa lyhyiden poikkeamien vaikutusta, mutta samalla todellinen nopea markkinamuutos välittyy mittariin vähitellen. Ikkunan valinta on käyttötarkoitukseen sidottu kompromissi.
Piirrä äkillinen hinnanlasku ja keskiarvon kehitys rinnakkain. Merkitse hetki, jolloin lainan vakuusarvo lasketaan. Oikein muodostettu historiallinen keskiarvo ei automaattisesti vastaa kysymykseen siitä, mitä vakuudesta saisi heti myymällä.
Tarkista yksiköt ja jokaisen osahinnan tuoreus
Token maksaa kuvitteellisesti 0,04 viiteomaisuuserää, jonka eurohinta on 2 500. Tokenin laskennallinen eurohinta on 100 euroa. Laskussa viiteomaisuuserän yksiköt supistuvat pois. Luku 0,04 sellaisenaan ei ole eurohinta.
Jos ensimmäinen osahinta on tunnin vanha ja toinen juuri päivitetty, tulos yhdistää eri markkinatilanteita. Yksi näytetty aikaleima voi peittää tämän eron. Lisää harjoituslaskuun kummankin syötteen havaintoaika ja hyväksyttävä enimmäisikä.
Erota myös lunastussuhde kaupankäyntihinnasta. Token voi oikeuttaa 1,10 yksikköön kohde-etuutta mutta käydä kauppaa tätä alempaan hintaan. Vakuusarvon, takaisinmaksun ja välittömän myynnin laskelmat eivät välttämättä tarvitse samaa arvokäsitettä.