Jak zbudować własną Oracle za pomocą inteligentnych kontraktów Ethereum? Analiza danych PlatoBlockchain. Wyszukiwanie pionowe. AI.

Jak zbudować własną Oracle za pomocą inteligentnych kontraktów Ethereum?

Czas czytania: 5 minuty

Ethereum to pierwszy w historii blockchain, który dziedziczy cechy tworzenia dappów, handlu kryptowalutami na blockchainie i tak dalej.

Ma swój język programowania do pisania inteligentnych kontraktów i wdrażania ich na wirtualnej maszynie Ethereum, aby wprowadzić decentralizację podczas wykonywania czynności. 

Inteligentne kontrakty wykonują predefiniowane linie kodów i spełniają zamierzone zadanie. Ale co, jeśli chcemy, aby inteligentne kontrakty działały w oparciu o wyniki wydarzeń w czasie rzeczywistym?

Aby to osiągnąć, musimy zrozumieć koncepcję wyroczni blockchain, dzięki którym inteligentne kontrakty mogą otrzymywać dane wejściowe ze świata rzeczywistego. 

Czym jest wyrocznia w krypto i jak stworzyć wyrocznię w kontrakcie Ethereum Smart? Omówimy to szczegółowo w następnym rozdziale. 

Kluczowe tematy bloga

  • Co to jest wyrocznia kryptowalut i jak działają wyrocznie
  • Różne rodzaje wyroczni
  • Przepływ danych z wyroczni do inteligentnych kontraktów Ethereum
  • Jak kodować wyrocznie Ethereum
  • Problemy z kryptograficzną wyrocznią

Co to jest wyrocznia i dlaczego jest potrzebna?

Wyrocznie to podmioty, które działają jak pomost łączący blockchain z systemami zewnętrznymi. Innymi słowy, wyrocznie dostarczają dane o zdarzeniach poza łańcuchem do inteligentnego kontraktu, aby wykonać akcję na podstawie danych wejściowych.

Na przykład w przypadku zakładów bukmacherskich użytkownicy mogą obstawiać graczy, którzy ich zdaniem wygrają mecz. W oparciu o wydarzenia w czasie rzeczywistym, nagrody są przydzielane użytkownikom, którzy postawią na zwycięzcę. 

Wyrocznie Blockchain pomagają uzupełniać dane o zwycięzcy w inteligentnych kontraktach. Przepływ danych w Oracle jest dwukierunkowy i może być używany do tłumaczenia dowolnych danych w czasie rzeczywistym, od raportów pogodowych, przez stan giełdowy, po inteligentne kontrakty. 

Każdy węzeł w blockchain Ethereum posiada informacje o transakcjach, które powinny być jednolite. Dlatego pobieranie danych z interfejsów API może powodować rozbieżności. W przeciwieństwie do tego Oracle ładuje dane na łańcuchu bloków, które niezmiennie pojawiają się takie same na wszystkich węzłach.

Wyrocznie Blockchain
Wyrocznie Blockchain

Jak uzyskać dostęp do danych z Oracle?

Inteligentne kontrakty wykorzystują cykl żądania i odpowiedzi, aby uzyskać informacje z węzła Oracle. Wyrocznia zaimplementowana za pomocą HTTP GET otrzyma żądanie z inteligentnego kontraktu, a funkcja wywołania zwrotnego może pobrać żądane dane z wyroczni. 

W ten sposób dane są zbierane przez inteligentny kontrakt z wyroczni. Każda wyrocznia jest skonfigurowana tak, aby dostarczać określonych informacji i możesz skorzystać z usług innych firm, aby uzyskać dane, których szukasz. 

Oto niektóre z usług wyroczni

  • Ogniwo łańcucha
  • Udowodnione
  • witnet
  • Paralink i tak dalej.

Klasyfikacja wyroczni

Wyrocznie są podzielone na różne typy w zależności od pobierania, walidacji i przesyłania danych. 

Wyrocznie wejściowe: Najbardziej rozpoznawalny typ, w którym dane są pobierane poza łańcuchem z wydarzeń w czasie rzeczywistym. Na przykład Kanały cenowe dotyczące akcji są pozyskiwane poza łańcuchem, aby uruchomić działanie na inteligentnych kontraktach w oparciu o warunki rynku finansowego.

Wyrocznie wyjściowe: Odwrotny werset wyroczni wejściowych, w których inteligentne kontrakty prowokują wyrocznię do wykonania działania. Na przykład Wysyłaj sygnały do ​​dostawcy pamięci masowej, aby przechowywać dane lub inicjować sieci bankowe w celu dokonywania płatności.

Wyrocznie krzyżowe: Wyrocznie międzyłańcuchowe ułatwiają zarówno odczytywanie, jak i zapisywanie danych w różnych łańcuchach bloków. Umożliwia również wyzwalanie zdarzeń w jednym blockchainie i sprawianie, że działają na innym. 

Wyrocznie z obsługą obliczeń: Wyrocznie z obsługą obliczeń wykorzystują obliczenia poza łańcuchem do świadczenia usług. Zwłaszcza, gdy łańcuch nie jest niezawodny ze względu na ograniczenia techniczne lub finansowe, stosuje się ten rodzaj wyroczni.

Pobieranie danych z Oracle

Krok 1: Inteligentny kontrakt wysyła zapytanie do wyroczni.

Krok 2: Zapytanie kierowane jest do nośnika danych, który wyszukuje dane ze źródła danych

Krok 3: Dane pochodzą ze źródła i są przekazywane do wyroczni.

Krok 4: Oracle wysyła odpowiedź do inteligentnego kontraktu zgodnie z żądaniem. 

Tworzenie inteligentnego kontraktu Oracle In Ethereum – struktura kodu

Dowiemy się, jak działa Oracle przy ustalaniu aktualnej ceny Bitcoina w USD, korzystając z usługi Oracle o nazwie Provable. 

pragma solidity >= 0.5.0 < 0.6.0; //Declaring the Solidity version import "github.com/provable-things/ethereum-api/provableAPI.sol"; //Importing latest version of provable API contract BitcoinPrice is usingProvable { //Contract named BitcoinPrice, UsingProvable refers to the API uint public bitcoinPriceUSD; //bitcoinPriceUSD is the variable created to store the price, Provable query event that makes a constructor event LogNewBitcoinPrice(string price); event LogNewProvableQuery(string description); constructor() public { update(); } // callback function to call the smart contract after the output is received and transfers the result from callback function to the variable assigned function __callback( bytes32 _myid, string memory _result ) public { require(msg.sender == provable_cbAddress()); emit LogNewBitcoinPrice(_result); BitcoinPriceUSD = parseInt(_result, 2); // Let's save it as cents... } //passing output string and API string to fetch bitcoin price to our constructor function update() public payable { emit LogNewProvableQuery("Provable query was sent, standing by for the answer..."); provable_query("URL", "xml("https://min-api.cryptocompare.com/data/generateAvg?fsym=BTC&tsym=USD&e=Kraken" ); } } 

Problemy z Oracle

Problemy z Oracle są zasadniczo konfliktem między nieufnymi inteligentnymi kontraktami a zaufanymi wyroczniami stron trzecich, biorąc pod uwagę bezpieczeństwo i autentyczność danych od stron trzecich.

Inteligentne kontrakty polegają na wyroczniach przy podejmowaniu decyzji dotyczących ich realizacji, dając im ogromną władzę nad ich funkcjonowaniem. W rzeczywistości zdecentralizowany charakter inteligentnych kontraktów jest kwestionowany. 

Jednak usługi Oracle, takie jak ChainLink i Oraclize, działają jako zdecentralizowane rozwiązania, które czerpią dane w oparciu o nowatorskie i uwierzytelnione metody. W ten sposób dane uzyskane są za pomocą środków zdecentralizowanych.  

Wnioski

Łączność łańcucha bloków ze światem rzeczywistym jest akceptowalnie istotna dla skoku w kierunku zdecentralizowanego świata. Oracle oferuje rozwiązanie zapewniające niezawodny interfejs inteligentnych kontraktów z danymi w czasie rzeczywistym. 

Jednak, aby zapewnić zrównoważony rozwój, usługi Oracle dokonują postępów, aby zapewnić bezpieczeństwo i poprawność danych uzyskanych poza łańcuchem. 

Chcesz być bardziej związany z Bezpieczeństwo Web3?

Obserwuj QuillAudyty dla wielu takich aktualnych wpisów o Web3.

23 odwiedzajacy

Post Jak zbudować własną Oracle za pomocą inteligentnych kontraktów Ethereum? pojawiła się najpierw na Blog.

Znak czasu:

Więcej z Quillhash