Skip to content
Alle optiegidsen
Prijsreferenties in DeFi8 min leestijd

Hoe DeFi-prijsorakels prijzen samenvoegen en publiceren

Lees hoe waarnemingen worden geaggregeerd, wanneer heartbeat en afwijking updates activeren, hoe eenheden en veroudering worden gecontroleerd en wat L2-sequencercontroles niet garanderen.

In deze gidsEen orakel publiceert een referentie, geen uitvoerbare marktprijs

Korte samenvatting

Een prijsorakel brengt een externe referentie naar een smart contract. In een gebruikelijk pushfeedontwerp worden meerdere offchain-waarnemingen samengevoegd in een ondertekend rapport, onchain gepubliceerd en door het protocol uitgelezen. Afwijkingsdrempel en heartbeat beïnvloeden het publicatiemoment; de consument controleert ook decimalen, quote-eenheid, `updatedAt` en op sommige L2-netwerken de sequencerstatus. Deze controles beperken bepaalde risico’s, maar bewijzen niet dat de prijs juist, voor elk gebruik recent genoeg of voor elke transactie veilig is.

Een orakel publiceert een referentie, geen uitvoerbare marktprijs

Een orakel verbindt informatie buiten een blockchain met code die onchain draait. Een leenprotocol kan een feed lezen om onderpand te waarderen; een derivatencontract kan een referentie gebruiken voor afwikkeling of een risicolimiet. Het contract leest de gepubliceerde waarde in de ketenstatus, maar controleert niet zelf elk extern orderboek om de eerlijke prijs te kiezen.

“Prijs” kan een activum tegenover een quotevaluta, een door het protocol bepaalde inwisselkoers of een andere maat betekenen. Dat is niet automatisch de prijs waartegen een grote positie kan worden verkocht. De gids over prijsimpact en slippage bij DEX-swaps en markprijs versus laatste transactie leggen andere verschillen uit. Deze gids richt zich op gangbare EVM-pushfeeds, niet op één universele DeFi-regel.

Hoe waarnemingen een onchain-antwoord worden

In Chainlinks Offchain Reporting wisselen orakelnodes offchain waarnemingen uit en stemmen ze in met een rapport. Een quorum ondertekent het; een transmitter dient het als transactie in; de aggregator controleert de handtekeningen en toont antwoord, ronde-ID en tijdstempel. De Offchain Reporting-documentatie beschrijft hoe de mediaan van waarnemingen in dit ontwerp wordt gepubliceerd.

Een consumentcontract voert de volledige aggregatie meestal niet opnieuw uit, maar roept latestRoundData() aan op het proxyadres van de feed. De aggregator achter de proxy kan veranderen. Controleer het juiste netwerk en de feed in de EVM-gids en de API-referentie. Veel nodes betekenen geen onafhankelijke databronnen; ze kunnen dezelfde beurzen of providers gebruiken.

Tekstloze scène waarin marktwaarnemingen via een netwerk van knooppunten naar een prijsfeed gaan en daarna door een controlepoort naar een onderpandkluis.
Waarnemingen worden samengevoegd voordat een protocol de feed leest; prijsactualiteit en sequencerstatus zijn aparte controles.

Heartbeat en afwijking bepalen publicatietriggers

Veel pushfeeds combineren een afwijkingsdrempel met een heartbeat. Een ingestelde procentuele beweging sinds het laatst gepubliceerde antwoord kan een rapport activeren; een heartbeat kan na een tijdsinterval een update aanvragen, ook zonder grote beweging. De actuele Data Feeds-directory en de feedadressenpagina tonen parameters per activum, netwerk en feed.

Dit zijn feed-specifieke voorwaarden, geen algemene belofte om elke N seconden te vernieuwen. Een kleine koersbeweging haalt de afwijkingsdrempel mogelijk niet; een aangevraagd rapport moet nog worden waargenomen, verzonden en in een blok opgenomen. Een heartbeat garandeert dus geen exact aankomstmoment en voorkomt niet dat een prijs veroudert. Het protocol stelt zelf een maximale leeftijd in die bij activum en gebruik past.

Lees answer, decimalen en quote-eenheid goed

latestRoundData() retourneert ronde-ID, answer, startedAt, updatedAt en answeredInRound; de API-referentie markeert het laatste veld als verouderd. answer is een vast-kommagetal als geheel getal, niet noodzakelijk een leesbaar dollarbedrag. Lees decimals() en de beschrijving van de gekozen feed. Een hypothetische BTC/USD-feed met 8 decimalen die 6,725,000,000,000 teruggeeft, betekent $67.250 per BTC.

Feeddecimalen verschillen van tokendecimalen. Een ERC-20-hoeveelheid kan 18 decimalen gebruiken terwijl de prijs 8 decimalen heeft; schaal elke waarde vóór vermenigvuldiging volgens de eigen eenheid. BTC/USD betekent dollars per bitcoin; USD/BTC heeft de omgekeerde eenheid. Schaal bij een afgeleide combinatie beide feeds en deel in de juiste volgorde. Het voorbeeld voor prijsdenominatie leidt BTC/EUR af uit BTC/USD en EUR/USD.

Een verouderingscontrole is een toepassingsregel

updatedAt is het tijdstip waarop de nieuwste ronde is bijgewerkt. De consument kan dat vergelijken met de huidige bloktijd en antwoorden afwijzen die ouder zijn dan de maximale leeftijd van de toepassing. Afhankelijk van de feed kunnen ook een niet-nul tijdstip, een positief antwoord voor een positief geprijsd activum en redelijke grenzen worden gecontroleerd. Een te krappe grens kan een legitieme beweging afwijzen.

Denk aan een hypothetische leenmarkt met vier onderpandeenheden en een factor van 75%. Het laatste antwoord 200,000,000,000 met 8 decimalen is $2.000 per eenheid; de leengrens is 4 × $2.000 × 75% = $6.000. Daalt de markt naar $1.820, dan is dat 9%. Met aannames van 10% afwijking en 60 minuten heartbeat is een nieuw rapport mogelijk nog niet aangevraagd; bij de lagere prijs is de grens $5.460.

Als de toepassing prijzen ouder dan vijf minuten afwijst en de ronde twintig minuten oud is, kan zij nieuwe leningen blokkeren in plaats van $2.000 te gebruiken. De controle werkt de feed niet bij; ze verandert toegestane acties zolang de data te oud is. Lenen, opnemen, liquideren en terugbetalen kunnen anders reageren, want alles stilzetten kan ook schade veroorzaken. De cijfers en triggers zijn hypothetisch en geen actuele feedinstellingen of aanbevelingen.

L2-sequencercontroles richten zich op een ander storingsrisico

Op veel L2-netwerken dienen gebruikers transacties in via een sequencer. Bij uitval of herstel kunnen transacties vertragen, normale toegang wegvallen en wachtende orders worden uitgevoerd nadat de markt is veranderd. Een recent ogend L2-prijsantwoord bewijst niet dat de uitvoeringsroute beschikbaar was of dat iedereen tegelijk kon handelen.

Chainlink documenteert een aparte L2 Sequencer Uptime Feed: answer == 0 betekent actief en answer == 1 betekent uit. startedAt registreert de statuswijziging; het voorbeeld controleert de status en wacht na herstel een door de toepassing ingestelde respijtperiode voordat het de prijs leest. Controleer adres en netwerkgedrag in de L2 Sequencer Uptime Feed-gids. De respijtperiode garandeert geen vernieuwde prijs of afgeronde wachtende transacties.

Deze controles garanderen geen juiste of eerlijke uitkomst

Quorum, mediaan, afwijking, heartbeat, leeftijdsgrens en sequencerstatus beantwoorden beperkte vragen. Ze garanderen geen marktliquiditeit, juiste activumidentiteit, onafhankelijke providers of uitvoerbare prijs voor een bepaalde omvang. Een recente tijdstempel kan bij een foutieve of gemanipuleerde waarde horen; een oude waarde kan in een rustige markt nog dichtbij liggen.

Geen trigger voorkomt prijsgaten, netwerkcongestie of bugs in schaal, paarselectie, versheidscontrole en liquidatie. De richtlijnen voor het kiezen van kwalitatieve Data Feeds raden aan liquiditeit en afhankelijkheden te beoordelen en oude, vertraagde, ontbrekende of onverwachte data af te handelen. Contract-, governance-, bridge-, onderpand- en liquidatierisico blijven bestaan. Een stablecoin-orakelprijs garandeert ook geen inwisseling tegen pari; zie de depeg-gids.

Volg de volledige prijsketen voordat je erop vertrouwt

Bepaal de chain, feedproxy, activumpaar, quotevaluta, answerdecimalen en contractadres. Controleer of de feedbeschrijving bij het bedoelde activum past en kopieer geen adres van een ander netwerk. Bekijk indien nodig het bronmodel en de updategeschiedenis. Chainlink vermeldt dat aggregators per netwerk kunnen verschillen; code en configuratie moeten dus worden gecontroleerd.

Volg daarna hoe het antwoord wordt gebruikt: eenheden omrekenen, updatedAt controleren, maximale leeftijd bepalen en reageren op ongeldige waarden. Controleer op L2 de uptimefeed, hersteltijd, respijtperiode en vertraagde transacties. Beoordeel oude prijzen en uitval/herstel in de daadwerkelijke contractlogica. Voor prijsvelden: lees markprijs versus laatste transactie.

Veelgestelde vragen

Q1Garandeert heartbeat dat de prijs nooit ouder is dan dat interval?

Nee. Het is een tijdtrigger in het feedontwerp, geen garantie dat publicatie en blokopname exact op tijd gebeuren of overeenkomen met de live markt. Controleer updatedAt en bepaal een passende versheidsregel.

Q2Kan een mediaan-orakelfeed nog steeds fout zijn?

Ja. De mediaan kan sommige uitschieters beperken, maar lost een gedeeld bronprobleem, dunne markt, verkeerd paar of fout in consumentlogica niet op.

Q3Is een L2-sequencer-uptimefeed hetzelfde als een verouderingscontrole?

Nee. De uptimefeed meldt de sequencerstatus en wijzigingstijd; de verouderingscontrole vergelijkt updatedAt van de prijs met de huidige tijd. Een toepassing kan beide en een respijtperiode nodig hebben.

Bronnen en verder lezen

Probleem melden

We bereiden een e-mail met de link naar dit artikel voor. Mark ontvangt je melding pas nadat je die verstuurt

Snelle check

De gids gelezen? Test jezelf met 3 vragen

Vraag 1 / 3

Vraag 01

Een BTC/USD-feed met 8 decimalen geeft `6,725,000,000,000`. Wat is de geschaalde prijs?

Kies een antwoord om de uitleg te zien

Optiewoordenlijst