Přejít na hlavní obsah
Change page

Orákula

Orákula jsou aplikace, které vytvářejí datové toky zpřístupňující offchain zdroje dat blockchainu pro chytré kontrakty. To je nezbytné, protože chytré kontrakty na Ethereu nemají ve výchozím nastavení přístup k informacím uloženým mimo blockchainovou síť.

Poskytnutí schopnosti chytrým kontraktům spouštět se pomocí offchain dat rozšiřuje užitečnost a hodnotu decentralizovaných aplikací (dapp). Například onchain predikční trhy spoléhají na orákula, že jim poskytnou informace o výsledcích, které používají k ověření uživatelských predikcí. Předpokládejme, že si Alice vsadí 20 ETH na to, kdo se stane příštím prezidentem USA. V takovém případě potřebuje dapp predikčního trhu orákulum k potvrzení výsledků voleb a určení, zda má Alice nárok na výplatu.

Předpoklady

Tato stránka předpokládá, že je čtenář obeznámen se základy Etherea, včetně uzlů, mechanismů konsensu a EVM. Měli byste také dobře rozumět chytrým kontraktům a anatomii chytrých kontraktů, zejména .

Co je to blockchainové orákulum?

Orákula jsou aplikace, které získávají, ověřují a přenášejí externí informace (tj. informace uložené offchain) do chytrých kontraktů běžících na blockchainu. Kromě „stahování“ offchain dat a jejich vysílání na Ethereu mohou orákula také „tlačit“ informace z blockchainu do externích systémů, např. odemknout chytrý zámek, jakmile uživatel odešle poplatek prostřednictvím transakce na Ethereu.

Bez orákula by byl chytrý kontrakt omezen výhradně na onchain data.

Orákula se liší na základě zdroje dat (jeden nebo více zdrojů), modelů důvěry (centralizované nebo decentralizované) a architektury systému (okamžité čtení, publikování-odběr a požadavek-odpověď). Orákula můžeme také rozlišovat podle toho, zda získávají externí data pro použití onchain kontrakty (vstupní orákula), odesílají informace z blockchainu do offchain aplikací (výstupní orákula), nebo provádějí výpočetní úlohy offchain (výpočetní orákula).

Proč chytré kontrakty potřebují orákula?

Mnoho vývojářů vnímá chytré kontrakty jako kód běžící na konkrétních adresách na blockchainu. Nicméně obecnější pohled na chytré kontrakty je takový, že se jedná o samovykonatelné softwarové programy schopné vynucovat dohody mezi stranami, jakmile jsou splněny specifické podmínky – odtud termín „chytré kontrakty“.

Použití chytrých kontraktů k vynucování dohod mezi lidmi však není přímočaré, vzhledem k tomu, že Ethereum je deterministické. Deterministický systém (opens in a new tab) je takový, který vždy produkuje stejné výsledky při daném počátečním stavu a konkrétním vstupu, což znamená, že v procesu výpočtu výstupů ze vstupů neexistuje žádná náhodnost ani variace.

K dosažení deterministického provádění omezují blockchainy uzly na dosažení konsensu o jednoduchých binárních (pravda/nepravda) otázkách pomocí pouze dat uložených na samotném blockchainu. Příklady takových otázek zahrnují:

  • „Podepsal majitel účtu (identifikovaný veřejným klíčem) tuto transakci spárovaným soukromým klíčem?“
  • „Má tento účet dostatek prostředků na pokrytí transakce?“
  • „Je tato transakce platná v kontextu tohoto chytrého kontraktu?“ atd.

Pokud by blockchainy přijímaly informace z externích zdrojů (tj. z reálného světa), determinismu by nebylo možné dosáhnout, což by uzlům bránilo dohodnout se na platnosti změn stavu blockchainu. Vezměme si například chytrý kontrakt, který provede transakci na základě aktuálního směnného kurzu ETH-USD získaného z tradičního cenového API. Tento údaj se pravděpodobně bude často měnit (nemluvě o tom, že API by mohlo být ukončeno nebo hacknuto), což znamená, že uzly provádějící stejný kód kontraktu by dospěly k různým výsledkům.

Pro veřejný blockchain, jako je Ethereum, s tisíci uzly po celém světě zpracovávajícími transakce, je determinismus kritický. Bez centrální autority sloužící jako zdroj pravdy potřebují uzly mechanismy pro dosažení stejného stavu po aplikaci stejných transakcí. Případ, kdy uzel A provede kód chytrého kontraktu a získá jako výsledek „3“, zatímco uzel B získá „7“ po spuštění stejné transakce, by způsobil zhroucení konsensu a eliminoval by hodnotu Etherea jako decentralizované výpočetní platformy.

Tento scénář také zdůrazňuje problém s navrhováním blockchainů tak, aby stahovaly informace z externích zdrojů. Orákula však tento problém řeší tím, že přebírají informace z offchain zdrojů a ukládají je na blockchain, aby je chytré kontrakty mohly spotřebovat. Vzhledem k tomu, že informace uložené onchain jsou neměnné a veřejně dostupné, mohou uzly Etherea bezpečně používat offchain data importovaná orákulem k výpočtu změn stavu bez narušení konsensu.

K tomu se orákulum obvykle skládá z chytrého kontraktu běžícího onchain a některých offchain komponent. Onchain kontrakt přijímá požadavky na data od jiných chytrých kontraktů, které předává offchain komponentě (nazývané uzel orákula). Tento uzel orákula může dotazovat zdroje dat – například pomocí rozhraní pro programování aplikací (API) – a odesílat transakce k uložení požadovaných dat do úložiště chytrého kontraktu.

V podstatě blockchainové orákulum překlenuje informační propast mezi blockchainem a externím prostředím a vytváří „hybridní chytré kontrakty“. Hybridní chytrý kontrakt je takový, který funguje na základě kombinace onchain kódu kontraktu a offchain infrastruktury. Decentralizované predikční trhy jsou vynikajícím příkladem hybridních chytrých kontraktů. Dalšími příklady mohou být chytré kontrakty na pojištění úrody, které vyplácejí peníze, když sada orákul určí, že došlo k určitým povětrnostním jevům.

Co je to problém orákula?

Orákula řeší důležitý problém, ale také přinášejí některé komplikace, např.:

  • Jak ověříme, že vložené informace byly získány ze správného zdroje nebo s nimi nebylo manipulováno?

  • Jak zajistíme, že tato data budou vždy dostupná a pravidelně aktualizovaná?

Takzvaný „problém orákula“ demonstruje problémy, které přináší používání blockchainových orákul k odesílání vstupů do chytrých kontraktů. Data z orákula musí být správná, aby se chytrý kontrakt provedl správně. Navíc nutnost „důvěřovat“ provozovatelům orákul, že poskytnou přesné informace, podkopává aspekt chytrých kontraktů nevyžadující důvěru.

Různá orákula nabízejí různá řešení problému orákula, která prozkoumáme později. Orákula se obvykle hodnotí podle toho, jak dobře dokážou zvládnout následující výzvy:

  1. Správnost: Orákulum by nemělo způsobit, že chytré kontrakty spustí změny stavu na základě neplatných offchain dat. Orákulum musí zaručit autenticitu a integritu dat. Autenticita znamená, že data byla získána ze správného zdroje, zatímco integrita znamená, že data zůstala nedotčená (tj. nebyla změněna) před odesláním onchain.

  2. Dostupnost: Orákulum by nemělo zdržovat nebo bránit chytrým kontraktům v provádění akcí a spouštění změn stavu. To znamená, že data z orákula musí být dostupná na vyžádání bez přerušení.

  3. Kompatibilita pobídek: Orákulum by mělo motivovat poskytovatele offchain dat k odesílání správných informací do chytrých kontraktů. Kompatibilita pobídek zahrnuje přiřaditelnost a odpovědnost. Přiřaditelnost umožňuje propojit část externích informací s jejich poskytovatelem, zatímco odpovědnost váže poskytovatele dat k informacím, které poskytují, takže mohou být odměněni nebo penalizováni na základě kvality poskytnutých informací.

Jak funguje služba blockchainového orákula?

Uživatelé

Uživatelé jsou subjekty (tj. chytré kontrakty), které k dokončení konkrétních akcí potřebují informace externí vůči blockchainu. Základní pracovní postup služby orákula začíná tím, že uživatel odešle požadavek na data do kontraktu orákula. Požadavky na data obvykle odpoví na některé nebo všechny následující otázky:

  1. Jaké zdroje mohou offchain uzly konzultovat ohledně požadovaných informací?

  2. Jak reportéři zpracovávají informace ze zdrojů dat a extrahují užitečné datové body?

  3. Kolik uzlů orákula se může podílet na získávání dat?

  4. Jak by se měly řešit nesrovnalosti ve zprávách orákula?

  5. Jaká metoda by měla být implementována při filtrování příspěvků a agregaci zpráv do jediné hodnoty?

Kontrakt orákula

Kontrakt orákula je onchain komponenta pro službu orákula. Naslouchá požadavkům na data od jiných kontraktů, předává datové dotazy uzlům orákula a vysílá vrácená data klientským kontraktům. Tento kontrakt může také provádět určité výpočty na vrácených datových bodech, aby vytvořil agregovanou hodnotu k odeslání žádajícímu kontraktu.

Kontrakt orákula vystavuje některé funkce, které klientské kontrakty volají při zadávání požadavku na data. Po obdržení nového dotazu chytrý kontrakt vygeneruje událost logu s podrobnostmi o požadavku na data. To upozorní offchain uzly přihlášené k odběru logu (obvykle pomocí něčeho jako je příkaz JSON-RPC eth_subscribe), které přistoupí k získání dat definovaných v události logu.

Níže je příklad kontraktu orákula (opens in a new tab) od Pedra Costy. Jedná se o jednoduchou službu orákula, která může na žádost jiných chytrých kontraktů dotazovat offchain API a ukládat požadované informace na blockchain:

Uzly orákula

Uzel orákula je offchain komponenta služby orákula. Extrahuje informace z externích zdrojů, jako jsou API hostovaná na serverech třetích stran, a vkládá je onchain pro spotřebu chytrými kontrakty. Uzly orákula naslouchají událostem z onchain kontraktu orákula a přistupují k dokončení úkolu popsaného v logu.

Běžným úkolem pro uzly orákula je odeslání požadavku HTTP GET (opens in a new tab) do služby API, parsování odpovědi za účelem extrakce relevantních dat, formátování do výstupu čitelného pro blockchain a jeho odeslání onchain zahrnutím do transakce do kontraktu orákula. Uzel orákula může být také požádán, aby potvrdil platnost a integritu předložených informací pomocí „důkazů autenticity“, které prozkoumáme později.

Výpočetní orákula také spoléhají na offchain uzly při provádění výpočetních úloh, které by bylo nepraktické provádět onchain vzhledem k nákladům na gas a limitům velikosti bloku. Například uzel orákula může mít za úkol vygenerovat prokazatelně náhodné číslo (např. pro hry založené na blockchainu).

Návrhové vzory orákul

Orákula se dodávají v různých typech, včetně okamžitého čtení, publikování-odběr a požadavek-odpověď, přičemž poslední dva jsou mezi chytrými kontrakty na Ethereu nejoblíbenější. Zde stručně popíšeme modely publikování-odběr a požadavek-odpověď.

Orákula typu publikování-odběr

Tento typ orákula vystavuje „datový tok“, ze kterého mohou ostatní kontrakty pravidelně číst informace. Očekává se, že data se v tomto případě budou často měnit, takže klientské kontrakty musí naslouchat aktualizacím dat v úložišti orákula. Příkladem je orákulum, které uživatelům poskytuje nejnovější informace o ceně ETH-USD.

Orákula typu požadavek-odpověď

Nastavení požadavek-odpověď umožňuje klientskému kontraktu požadovat libovolná data jiná než ta, která poskytuje orákulum typu publikování-odběr. Orákula typu požadavek-odpověď jsou ideální, když je datová sada příliš velká na to, aby byla uložena v úložišti chytrého kontraktu, a/nebo uživatelé budou v daném okamžiku potřebovat pouze malou část dat.

Ačkoli jsou orákula typu požadavek-odpověď složitější než modely publikování-odběr, jsou v podstatě tím, co jsme popsali v předchozí části. Orákulum bude mít onchain komponentu, která přijme požadavek na data a předá jej offchain uzlu ke zpracování.

Uživatelé iniciující datové dotazy musí pokrýt náklady na získání informací z offchain zdroje. Klientský kontrakt musí také poskytnout prostředky na pokrytí nákladů na gas, které vzniknou kontraktu orákula při vrácení odpovědi prostřednictvím funkce zpětného volání (callback) specifikované v požadavku.

Centralizovaná vs. decentralizovaná orákula

Centralizovaná orákula

Centralizované orákulum je řízeno jediným subjektem odpovědným za agregaci offchain informací a aktualizaci dat kontraktu orákula podle požadavků. Centralizovaná orákula jsou efektivní, protože spoléhají na jediný zdroj pravdy. Mohou fungovat lépe v případech, kdy jsou proprietární datové sady publikovány přímo vlastníkem s široce přijímaným podpisem. Přinášejí však i nevýhody:

Nízké záruky správnosti

U centralizovaných orákul neexistuje způsob, jak potvrdit, zda jsou poskytnuté informace správné či nikoli. Dokonce i „renomovaní“ poskytovatelé se mohou zkazit nebo být hacknuti. Pokud se orákulum stane poškozeným, chytré kontrakty se provedou na základě špatných dat.

Špatná dostupnost

U centralizovaných orákul není zaručeno, že vždy zpřístupní offchain data jiným chytrým kontraktům. Pokud se poskytovatel rozhodne službu vypnout nebo hacker unese offchain komponentu orákula, je váš chytrý kontrakt vystaven riziku útoku odepření služby (DoS).

Špatná kompatibilita pobídek

Centralizovaná orákula mají často špatně navržené nebo neexistující pobídky pro poskytovatele dat k odesílání přesných/nezměněných informací. Placení orákulu za správnost nezaručuje poctivost. Tento problém se zvětšuje s tím, jak roste množství hodnoty kontrolované chytrými kontrakty.

Decentralizovaná orákula

Decentralizovaná orákula jsou navržena tak, aby překonala omezení centralizovaných orákul odstraněním jediných bodů selhání. Decentralizovaná služba orákula se skládá z více účastníků v peer-to-peer síti, kteří tvoří konsensus o offchain datech před jejich odesláním do chytrého kontraktu.

Decentralizované orákulum by (ideálně) mělo být nevyžadující povolení, nevyžadující důvěru a bez správy centrální stranou; ve skutečnosti je decentralizace mezi orákuly na spektru. Existují polodecentralizované sítě orákul, kterých se může zúčastnit kdokoli, ale s „vlastníkem“, který schvaluje a odstraňuje uzly na základě historického výkonu. Existují také plně decentralizované sítě orákul: ty obvykle běží jako samostatné blockchainy a mají definované mechanismy konsensu pro koordinaci uzlů a trestání špatného chování.

Používání decentralizovaných orákul přináší následující výhody:

Vysoké záruky správnosti

Decentralizovaná orákula se snaží dosáhnout správnosti dat pomocí různých přístupů. To zahrnuje použití důkazů potvrzujících autenticitu a integritu vrácených informací a vyžadování, aby se více subjektů kolektivně dohodlo na platnosti offchain dat.

Důkazy autenticity

Důkazy autenticity jsou kryptografické mechanismy, které umožňují nezávislé ověření informací získaných z externích zdrojů. Tyto důkazy mohou ověřit zdroj informací a detekovat možné změny dat po jejich získání.

Příklady důkazů autenticity zahrnují:

Důkazy Transport Layer Security (TLS): Uzly orákula často získávají data z externích zdrojů pomocí zabezpečeného připojení HTTP založeného na protokolu Transport Layer Security (TLS). Některá decentralizovaná orákula používají důkazy autenticity k ověření relací TLS (tj. potvrzení výměny informací mezi uzlem a konkrétním serverem) a potvrzení, že obsah relace nebyl změněn.

Atestace Trusted Execution Environment (TEE): Důvěryhodné spouštěcí prostředí (opens in a new tab) (TEE) je izolované výpočetní prostředí (sandbox), které je odděleno od provozních procesů svého hostitelského systému. TEE zajišťují, že jakýkoli kód aplikace nebo data uložená/používaná ve výpočetním prostředí si zachovají integritu, důvěrnost a neměnnost. Uživatelé mohou také vygenerovat atestaci, aby prokázali, že instance aplikace běží v důvěryhodném spouštěcím prostředí.

Určité třídy decentralizovaných orákul vyžadují, aby provozovatelé uzlů orákula poskytovali atestace TEE. To uživateli potvrzuje, že provozovatel uzlu spouští instanci klienta orákula v důvěryhodném spouštěcím prostředí. TEE brání externím procesům ve změně nebo čtení kódu a dat aplikace, a proto tyto atestace dokazují, že uzel orákula uchoval informace nedotčené a důvěrné.

Validace informací na základě konsensu

Centralizovaná orákula spoléhají při poskytování dat chytrým kontraktům na jediný zdroj pravdy, což přináší možnost publikování nepřesných informací. Decentralizovaná orákula tento problém řeší tím, že spoléhají na více uzlů orákula při dotazování na offchain informace. Porovnáním dat z více zdrojů snižují decentralizovaná orákula riziko předání neplatných informací onchain kontraktům.

Decentralizovaná orákula se však musí vypořádat s nesrovnalostmi v informacích získaných z více offchain zdrojů. K minimalizaci rozdílů v informacích a zajištění toho, aby data předaná kontraktu orákula odrážela kolektivní názor uzlů orákula, používají decentralizovaná orákula následující mechanismy:

Hlasování/staking o přesnosti dat

Některé decentralizované sítě orákul vyžadují, aby účastníci hlasovali nebo prováděli staking ohledně přesnosti odpovědí na datové dotazy (např. „Kdo vyhrál volby v USA v roce 2020?“) pomocí nativního tokenu sítě. Agregační protokol pak agreguje hlasy a staky a bere odpověď podporovanou většinou jako platnou.

Uzly, jejichž odpovědi se odchylují od většinové odpovědi, jsou penalizovány tím, že jejich tokeny jsou distribuovány ostatním, kteří poskytují správnější hodnoty. Nucení uzlů k poskytnutí kauce před poskytnutím dat motivuje k poctivým odpovědím, protože se předpokládá, že jde o racionální ekonomické aktéry, kteří mají v úmyslu maximalizovat výnosy.

Staking/hlasování také chrání decentralizovaná orákula před , kdy zlomyslní aktéři vytvářejí více identit, aby oklamali systém konsensu. Staking však nemůže zabránit „přiživování“ (uzly orákula kopírující informace od ostatních) a „líné validaci“ (uzly orákula následující většinu bez toho, aby samy ověřily informace).

Mechanismy Schellingova bodu

Schellingův bod (opens in a new tab) je koncept teorie her, který předpokládá, že více subjektů se při absenci jakékoli komunikace vždy uchýlí ke společnému řešení problému. Mechanismy Schellingova bodu jsou často používány v decentralizovaných sítích orákul, aby umožnily uzlům dosáhnout konsensu o odpovědích na požadavky na data.

Ranou myšlenkou pro to byl SchellingCoin (opens in a new tab), navrhovaný datový tok, kde účastníci předkládají odpovědi na „skalární“ otázky (otázky, jejichž odpovědi jsou popsány velikostí, např. „jaká je cena ETH?“), spolu s vkladem. Uživatelé, kteří poskytnou hodnoty mezi 25. a 75. percentilem (opens in a new tab), jsou odměněni, zatímco ti, jejichž hodnoty se výrazně odchylují od mediánové hodnoty, jsou penalizováni.

Ačkoli SchellingCoin dnes neexistuje, řada decentralizovaných orákul – zejména Orákula protokolu Maker (opens in a new tab) – používá mechanismus Schellingova bodu ke zlepšení přesnosti dat orákula. Každé orákulum Maker se skládá z offchain P2P sítě uzlů („relayers“ a „feeds“), které předkládají tržní ceny pro aktiva zajištění, a onchain kontraktu „Medianizer“, který vypočítává medián všech poskytnutých hodnot. Jakmile uplyne zadaná doba zpoždění, tato mediánová hodnota se stane novou referenční cenou pro přidružené aktivum.

Další příklady orákul, která používají mechanismy Schellingova bodu, zahrnují Chainlink Offchain Reporting (opens in a new tab) a Witnet (opens in a new tab). V obou systémech jsou odpovědi z uzlů orákula v peer-to-peer síti agregovány do jediné agregované hodnoty, jako je průměr nebo medián. Uzly jsou odměňovány nebo trestány podle toho, do jaké míry se jejich odpovědi shodují s agregovanou hodnotou nebo se od ní odchylují.

Mechanismy Schellingova bodu jsou atraktivní, protože minimalizují onchain stopu (je třeba odeslat pouze jednu transakci) a zároveň zaručují decentralizaci. To druhé je možné, protože uzly musí podepsat seznam předložených odpovědí předtím, než je vložen do algoritmu, který produkuje průměrnou/mediánovou hodnotu.

Dostupnost

Decentralizované služby orákula zajišťují vysokou dostupnost offchain dat pro chytré kontrakty. Toho je dosaženo decentralizací jak zdroje offchain informací, tak uzlů odpovědných za přenos informací onchain.

To zajišťuje odolnost proti chybám, protože kontrakt orákula se může spolehnout na více uzlů (které se také spoléhají na více zdrojů dat) při provádění dotazů z jiných kontraktů. Decentralizace na úrovni zdroje a provozovatele uzlu je klíčová – síť uzlů orákula poskytující informace získané ze stejného zdroje narazí na stejný problém jako centralizované orákulum.

U orákul založených na staku je také možné penalizovat provozovatele uzlů, kteří nedokážou rychle reagovat na požadavky na data. To významně motivuje uzly orákula k investicím do infrastruktury odolné proti chybám a k včasnému poskytování dat.

Dobrá kompatibilita pobídek

Decentralizovaná orákula implementují různé návrhy pobídek, aby zabránila byzantskému (opens in a new tab) chování mezi uzly orákula. Konkrétně dosahují přiřaditelnosti a odpovědnosti:

  1. Decentralizované uzly orákula jsou často povinny podepsat data, která poskytují v reakci na požadavky na data. Tyto informace pomáhají s hodnocením historického výkonu uzlů orákula, takže uživatelé mohou při zadávání požadavků na data odfiltrovat nespolehlivé uzly orákula. Příkladem je Algoritmický systém reputace (opens in a new tab) sítě Witnet.

  2. Decentralizovaná orákula – jak bylo vysvětleno dříve – mohou vyžadovat, aby uzly vložily stake na svou důvěru v pravdivost dat, která předkládají. Pokud se tvrzení potvrdí, může být tento stake vrácen spolu s odměnami za poctivou službu. Může však být také penalizován v případě, že jsou informace nesprávné, což poskytuje určitou míru odpovědnosti.

Aplikace orákul v chytrých kontraktech

Následují běžné případy užití orákul na Ethereu:

Získávání finančních dat

Aplikace decentralizovaných financí (DeFi) umožňují peer-to-peer půjčování, vypůjčování a obchodování s aktivy. To často vyžaduje získání různých finančních informací, včetně údajů o směnných kurzech (pro výpočet fiat hodnoty kryptoměn nebo porovnání cen tokenů) a údajů o kapitálových trzích (pro výpočet hodnoty tokenizovaných aktiv, jako je zlato nebo americký dolar).

Například protokol pro půjčování v DeFi potřebuje dotazovat aktuální tržní ceny aktiv (např. ETH) vložených jako zajištění. To umožňuje kontraktu určit hodnotu aktiv zajištění a určit, kolik si může ze systému vypůjčit.

Mezi populární „cenová orákula“ (jak se často nazývají) v DeFi patří Chainlink Price Feeds, Open Price Feed (opens in a new tab) protokolu Compound, Time-Weighted Average Prices (TWAPs) (opens in a new tab) od Uniswapu a Orákula Maker (opens in a new tab).

Tvůrci by měli porozumět úskalím, která s těmito cenovými orákuly přicházejí, než je integrují do svého projektu. Tento článek (opens in a new tab) poskytuje podrobnou analýzu toho, co je třeba zvážit při plánování použití kteréhokoli ze zmíněných cenových orákul.

Níže je příklad toho, jak můžete ve svém chytrém kontraktu získat nejnovější cenu ETH pomocí cenového zdroje Chainlink:

Generování ověřitelné náhodnosti

Určité blockchainové aplikace, jako jsou hry založené na blockchainu nebo loterijní schémata, vyžadují k efektivnímu fungování vysokou úroveň nepředvídatelnosti a náhodnosti. Deterministické provádění blockchainů však náhodnost eliminuje.

Původním přístupem bylo použití pseudonáhodných kryptografických funkcí, jako je blockhash, ale ty mohly být manipulovány těžaři (opens in a new tab) řešícími algoritmus důkazu prací (PoW). Také přechod Etherea na důkaz podílem (PoS) znamená, že vývojáři se již nemohou spoléhat na blockhash pro onchain náhodnost. Mechanismus RANDAO (opens in a new tab) na Beacon chainu místo toho poskytuje alternativní zdroj náhodnosti.

Je možné vygenerovat náhodnou hodnotu offchain a odeslat ji onchain, ale to klade na uživatele vysoké požadavky na důvěru. Musí věřit, že hodnota byla skutečně vygenerována prostřednictvím nepředvídatelných mechanismů a nebyla při přenosu změněna.

Orákula navržená pro offchain výpočty tento problém řeší bezpečným generováním náhodných výsledků offchain, které vysílají onchain spolu s kryptografickými důkazy potvrzujícími nepředvídatelnost procesu. Příkladem je Chainlink VRF (opens in a new tab) (Verifiable Random Function), což je prokazatelně spravedlivý a proti manipulaci odolný generátor náhodných čísel (RNG) užitečný pro budování spolehlivých chytrých kontraktů pro aplikace, které spoléhají na nepředvídatelné výsledky.

Získávání výsledků událostí

S orákuly je vytváření chytrých kontraktů, které reagují na události v reálném světě, snadné. Služby orákula to umožňují tím, že dovolují kontraktům připojit se k externím API prostřednictvím offchain komponent a spotřebovávat informace z těchto zdrojů dat. Například dříve zmíněná predikční dapp může požádat orákulum o vrácení výsledků voleb z důvěryhodného offchain zdroje (např. Associated Press).

Použití orákul k získávání dat na základě výsledků v reálném světě umožňuje další nové případy užití; například decentralizovaný pojistný produkt potřebuje k efektivnímu fungování přesné informace o počasí, katastrofách atd.

Automatizace chytrých kontraktů

Chytré kontrakty se nespouštějí automaticky; spíše musí externě vlastněný účet (EOA) nebo jiný kontraktový účet spustit správné funkce k provedení kódu kontraktu. Ve většině případů je většina funkcí kontraktu veřejná a může být vyvolána EOA a jinými kontrakty.

V rámci kontraktu však existují také soukromé funkce, které jsou pro ostatní nepřístupné, ale které jsou kritické pro celkovou funkčnost dapp. Příklady zahrnují funkci mintERC721Token(), která pravidelně razí nová NFT pro uživatele, funkci pro udělování výplat na predikčním trhu nebo funkci pro odemykání stakovaných tokenů na DEX.

Vývojáři budou muset takové funkce spouštět v intervalech, aby aplikace běžela hladce. To by však mohlo vést k více hodinám ztraceným na rutinních úkolech pro vývojáře, a proto je automatizace provádění chytrých kontraktů atraktivní.

Některé decentralizované sítě orákul nabízejí automatizační služby, které umožňují offchain uzlům orákula spouštět funkce chytrých kontraktů podle parametrů definovaných uživatelem. Obvykle to vyžaduje „registraci“ cílového kontraktu u služby orákula, poskytnutí prostředků na zaplacení provozovateli orákula a specifikaci podmínek nebo časů pro spuštění kontraktu.

Keeper Network (opens in a new tab) od Chainlinku poskytuje chytrým kontraktům možnosti outsourcovat pravidelné úkoly údržby decentralizovaným způsobem s minimalizovanou potřebou důvěry. Přečtěte si oficiální dokumentaci Keeper (opens in a new tab) pro informace o tom, jak učinit váš kontrakt kompatibilním s Keeperem a jak používat službu Upkeep.

Jak používat blockchainová orákula

Existuje několik aplikací orákul, které můžete integrovat do své dapp na Ethereu:

Chainlink (opens in a new tab) - Decentralizované sítě orákul Chainlink poskytují vstupy, výstupy a výpočty odolné proti manipulaci na podporu pokročilých chytrých kontraktů na jakémkoli blockchainu.

RedStone Oracles (opens in a new tab) - RedStone je decentralizované modulární orákulum, které poskytuje datové toky optimalizované pro gas. Specializuje se na nabídku cenových zdrojů pro nově vznikající aktiva, jako jsou tokeny likvidního stakingu (LST), tokeny likvidního restakingu (LRT) a deriváty stakingu Bitcoinu.

Chronicle (opens in a new tab) - Chronicle překonává současná omezení přenosu dat onchain vývojem skutečně škálovatelných, nákladově efektivních, decentralizovaných a ověřitelných orákul.

Witnet (opens in a new tab) - Witnet je decentralizované orákulum nevyžadující povolení a odolné vůči cenzuře, které pomáhá chytrým kontraktům reagovat na události v reálném světě se silnými kryptoekonomickými zárukami.

UMA Oracle (opens in a new tab) - Optimistické orákulum UMA umožňuje chytrým kontraktům rychle přijímat jakýkoli druh dat pro různé aplikace, včetně pojištění, finančních derivátů a predikčních trhů.

Tellor (opens in a new tab) - Tellor je transparentní protokol orákula nevyžadující povolení, díky kterému může váš chytrý kontrakt snadno získat jakákoli data, kdykoli je potřebuje.

Band Protocol (opens in a new tab) - Band Protocol je platforma meziřetězcového datového orákula, která agreguje a propojuje data z reálného světa a API s chytrými kontrakty.

Pyth Network (opens in a new tab) - Síť Pyth je síť finančních orákul první strany navržená k publikování nepřetržitých dat z reálného světa onchain v prostředí odolném proti manipulaci, decentralizovaném a soběstačném.

API3 DAO (opens in a new tab) - API3 DAO dodává řešení orákul první strany, která poskytují větší transparentnost zdrojů, bezpečnost a škálovatelnost v decentralizovaném řešení pro chytré kontrakty

Supra (opens in a new tab) - Vertikálně integrovaná sada nástrojů meziřetězcových řešení, která propojuje všechny blockchainy, veřejné (L1 a L2) nebo soukromé (podnikové), a poskytuje decentralizované cenové zdroje orákul, které lze použít pro onchain a offchain případy užití.

Gas Network (opens in a new tab) - Distribuovaná platforma orákula poskytující data o ceně plynu v reálném čase napříč blockchainem. Přenesením dat od předních poskytovatelů dat o ceně plynu onchain pomáhá Gas Network podporovat interoperabilitu. Gas Network podporuje data pro více než 35 řetězců, včetně Ethereum Mainnet a mnoha předních L2.

DIA (opens in a new tab) - Meziřetězcová síť orákul poskytující ověřitelné datové toky pro více než 20 000 aktiv napříč všemi hlavními třídami aktiv. DIA získává surová obchodní data přímo z více než 100 primárních trhů a vypočítává je onchain, čímž zajišťuje úplnou transparentnost a ověřitelnost dat s vlastními konfiguracemi pro jakýkoli případ užití.

Stork (opens in a new tab) - Stork dodává cenová data s ultra nízkou latencí, čímž podporuje širokou škálu případů užití včetně trhů s perpetuálními kontrakty, protokolů pro půjčování a ekosystémů DeFi, přičemž nová aktiva jsou podporována rychle po zalistování.

Další čtení

Články

Videa

Návody

Příklady projektů