Na stosunkowo powolnym rynku popyt na wyrocznie rośnie wykładniczo.

Przemówienie: Frank, inżynier ds. relacji z programistami, Chainlink Labs

Organizowane przez: Aididiaojp.eth, Foresight News

Nazywam się Frank i jestem inżynierem ds. relacji z programistami w Chainlink Labs. Moim głównym zadaniem jest umożliwienie większej liczbie programistów lub budowniczych pasjonujących się tą branżą dowiedzenia się więcej o wyroczniach. W oparciu o inteligentne kontrakty w ramach naszej obecnej infrastruktury możemy o nich myśleć jako o hybrydowym inteligentnym kontrakcie. Inteligentne kontrakty można lepiej zintegrować z różnymi danymi w świecie Web2, w tym z usługami obliczeniowymi, a następnie w oparciu o tę architekturę możemy znacznie rozszerzyć możliwości inteligentnych kontraktów w łańcuchu.

W dzisiejszym dzieleniu najpierw przedstawię koncepcję wyroczni, a następnie w oparciu o koncepcję wyroczni pokrótce przedstawię zdecentralizowaną sieć wyroczni i niektóre usługi, które możemy świadczyć, w tym usługi danych i usługi obliczeniowe.

Co to jest wyrocznia?

Stan sieci i danych stale się zmienia w trzech etapach: od Web 1, przez Web 2, aż do Web 3. Na początku Web1 była usługą internetową, w której dane można było odczytywać wyłącznie statycznie. Kiedy rozwinęła się do etapu Web2, dane stały się czytelne, zapisywalne i możliwe do wykorzystania. Wiele dużych firm zbudowało imperia biznesowe w oparciu o własne usługi. Wszystkie dane użytkowników przechowują we własnych bazach danych. W razie potrzeby mogą faktycznie posiadać i modyfikować dane użytkowników. Powstaje wtedy pytanie, czy część danych, które tworzymy w Internecie czy w świecie wirtualnym, ma czasem jakąś wartość, więc do kogo ta wartość należy? Bazując na tym tle, mamy nadzieję dobrze rozwiązać ten problem na etapie Web 3. Wszystkie dane na etapie Web 3 nie istnieją na serwerze ani w węźle. Ma zdecentralizowaną sieć, a zdecentralizowana sieć jest systemem wieloksięgowym składającym się z wielu węzłów. Dane są przechowywane w wielu węzłach Dopiero gdy każdy węzeł zgodzi się na modyfikację i przechowywanie danych, ostateczne dane mogą zostać zapisane. Przyniesie nam to korzyść, czyli niezależnie od tego, jakiej modyfikacji chcemy dokonać w danych, musimy dokonać modyfikacji zgodnie z wcześniej ustalonym konsensusem. Na przykład, jeśli chcę zmodyfikować saldo mojego portfela, jeśli nikt mi nie przeleje pieniędzy, niezależnie od tego, w jaki sposób właściciel danych będzie chciał to zmodyfikować, ostatecznie nie będzie mógł przejść procesu konsensusu, co oznacza, że ​​saldo portfela nie można modyfikować. Tylko właściciel danych może ostatecznie je zmodyfikować, wysyłając transakcję zgodną z zasadami. Ma to bardzo oczywistą korzyść. Jednocześnie ma to również pewne wady. Największą wadą jest to, że czyni system systemem deterministycznym. Innymi słowy, ponieważ w całym procesie będzie istniał proces konsensusu, może on wykonywać jedynie operacje, które inni mogą zweryfikować. Kiedy wysyłasz operację, inni muszą ją wykonać. Jeśli inne węzły mogą pomyślnie wykonać operację, mogą faktycznie zwrócić wyniki. To, czy przekracza 50%, czy 70%, zależy od algorytmu konsensusu.Na koniec operację można zapisać w transakcji, a transakcję można zapisać w bloku, aby stała się transakcją kompletną.

Ale jeśli musimy wykonać pewne niedeterministyczne operacje, takie jak uzyskanie niektórych danych API poza łańcuchem bloków i wygenerowanie liczb losowych itp., Deterministyczny system blockchain nie może zostać ukończony. Nasza loteria musi generować liczby losowe lub protokół on-chain musi znać cenę aktywów poza łańcuchem, na przykład uzyskanie ceny akcji lub towarów, co jest operacją niedeterministyczną i nie może zostać ukończone przez sam łańcuch bloków . Innym przykładem są wywołania API. Jako węzeł w sieci wywołuję zewnętrzne dane API, a następnie przekazuję wynik innym węzłom w sieci. Aby zweryfikować autentyczność wyniku, inne węzły również wykonają tę samą operację i uzyskaj wynik. Jednak w przypadku zewnętrznego interfejsu API, jeśli różne osoby uzyskują dostęp do tego samego interfejsu API w różnym czasie, serwer może się zawiesić, usługa może zostać zawieszona lub dane mogą ulec zmianie wraz ze zmianą czasu. Jeśli będziesz robić to samo w różnym czasie, uzyskane wyniki będą niespójne. Dopóki wyniki nie są spójne, nie ma możliwości zablokowania operacji końcowej i nie ma możliwości jej dokończenia. Dlatego też, gdy już zdobędziemy własność danych, musimy także znosić pewne niedociągnięcia, jakie się z tym wiążą.

Aby rozwiązać ten problem, musisz polegać na wyroczniach. Blockchain jest izolowanym i deterministycznym systemem, który nie może aktywnie pozyskiwać danych z zewnątrz. Pojawienie się wyroczni ma rozwiązać ten problem. Koncepcja wyroczni pojawiła się dwa, trzy lata temu, ale wówczas nie było zbyt wielu scenariuszy możliwych do zastosowania i miała duże ograniczenia. Na przykład, jeśli chcesz uzyskać pewne dane rynkowe, przesłać dane giełdowe do sieci blockchain lub stworzyć strukturę, która umieści logikę w łańcuchu w celu wykonania, ale umieść aktywa w łańcuchu i chroń normalny przebieg transakcji poprzez inteligentne kontrakty itp. W tym momencie należy pozyskać część danych z sieci i okresowo je synchronizować, w tym dane dotyczące płatności bankowych czy sprzedaży detalicznej, a nawet niektóre inne dane dotyczące wydarzeń publicznych, takie jak warunki pogodowe, informacje geograficzne, informacje logistyczne, wyniki zawodów sportowych itp., danych tych nie można uzyskać bez przejścia przez maszynę wyroczni. To sprawi, że ekologia w łańcuchu będzie bardzo ograniczona. W miarę dalszego rozwoju ekosystemu Web 3, powiązanie między dwoma światami Web 3 i Web 2 będzie coraz bliższe. Jeśli chcemy, aby Web3 osiągnął masową adaptację lub był używany przez większą liczbę osób, musi zapewniać bardzo bogate funkcje i nie może ograniczać się do operacji, które można wykonać jedynie poprzez natywne dane w łańcuchu.

Oracle zyskało popularność dopiero w 2020 r., podczas lata DeFi, kiedy większość ludzi to zauważyła. Na początku maszyna Oracle robiła bardzo proste rzeczy. Na przykład, jeśli chcesz pozyskać dane zewnętrzne i przesłać je do zdecentralizowanej sieci, czyli blockchainu, to najprostszym sposobem jest utworzenie scentralizowanego węzła pod łańcuchem, czyli. polega na zbudowaniu serwera, a następnie uzyskaniu danych przez serwer i na końcu zapisaniu danych w sieci blockchain deduplikacji, wówczas model ten nazywany jest scentralizowaną wyrocznią. Chociaż jest stosunkowo prosty do wdrożenia, spowoduje pewne problemy. Na przykład wiąże się z ryzykiem wystąpienia pojedynczego punktu awarii, to znaczy, że scentralizowany węzeł może powodować przestoje z własnych, podstawowych powodów. Inna możliwość jest taka, że ​​jeśli usługa świadczona przez inteligentny kontrakt w łańcuchu opiera się na danych dostarczanych przez scentralizowany węzeł, a ilość środków zaangażowanych w inteligentny kontrakt w łańcuchu jest bardzo duża, wówczas scentralizowana wyrocznia może przekazać swoje własne Dane, którymi można manipulować, mogą zostać wykorzystane do przeprowadzenia ataków na usługi. Dopóki korzyści są wystarczająco duże i nie ma możliwości osiągnięcia pełnej ochrony za pomocą środków technicznych, jest to pojedynczy punkt awarii. Chcemy umieszczać aplikacje w zdecentralizowanych sieciach, w tym w Ethereum lub innych ekosystemach warstwy 2. Tak naprawdę mamy również nadzieję, że uda nam się zapewnić uczciwość naszych aplikacji, czyli inteligentnych kontraktów, poprzez setki lub tysiące węzłów Oracle w sieci. seks i bezpieczeństwo.

Oczywiście, jeśli w celu uzyskania terminala danych będziemy polegać na scentralizowanych węzłach, nawet jeśli można zagwarantować bezpieczeństwo innych aspektów, jeśli nie ma sposobu, aby zapewnić bezpieczeństwo najważniejszego zasobu, terminala danych, sprawi to, że cały dApp bez znaczenia. Dlatego po scentralizowanej maszynie Oracle pojawiła się zdecentralizowana sieć maszyn Oracle, która może dobrze rozwiązać ryzyko awarii pojedynczego punktu, o którym właśnie wspomnieliśmy. Największą różnicą zdecentralizowanej sieci Oracle nie jest to, że pojedynczy węzeł Oracle świadczy usługi dla zdecentralizowanej sieci, ale to, że usługi są świadczone za pośrednictwem zdecentralizowanej sieci Oracle. Można ją również rozumieć jako swego rodzaju warstwę 2, czyli każdą Węzły w scentralizowanej sieci Oracle mogą pozyskiwać dane za pośrednictwem własnych źródeł danych. Po uzyskaniu wyników mogą agregować dane z innymi zdecentralizowanymi sieciami. Można to również rozumieć jako proces konsensusu, obejmujący sprawdzenie, czy nie ma żadnych węzłów. czy też zwrócone dane odbiegają za bardzo od średniej, czy też po prostu zrobić średnią, następnie agregować dane itp. i zapisywać je w zdecentralizowanej sieci. Jedną z zalet tego podejścia jest to, że może ono technicznie zagwarantować, że usługa nie zostanie przerwana, chyba że wszystkie węzły w zdecentralizowanej sieci Oracle przestaną działać, ale taka możliwość jest bardzo niska. Ponadto po stronie danych można również zapewnić, że dane dostarczane przez Oracle do kontraktu w łańcuchu nie są kontrolowane przez pojedynczy węzeł, ale przez wiele węzłów. Jeśli chcesz manipulować danymi w celu przeprowadzenia ataku, koszt jest bardzo wysoki. Jest to równoznaczne z atakiem na warstwę 2 lub nawet zdecentralizowaną sieć, taką jak Ethereum, co w zasadzie jest mało prawdopodobne.

Zdecentralizowane sieci mogą znacznie poprawić bezpieczeństwo i rzetelność danych otrzymywanych w ramach inteligentnych kontraktów. Dla użytkowników jesteśmy po prostu zdecentralizowaną siecią Oracle, ale w oparciu o zdecentralizowaną sieć Oracle możemy świadczyć inne usługi, takie jak usługi danych, usługi obliczeniowe i usługi międzyłańcuchowe. Jeśli dane są dostarczane do sieci w oparciu o Oracle, niektóre bardziej złożone i kosztowne operacje można również wykonać poza łańcuchem, co oznacza, że ​​są one pakowane do sieci Oracle poza łańcuchem w celu obliczeń, a następnie zapisywane z powrotem do porównania bezpieczeństwa. wysoko na blockchainie. Jeśli możemy uzyskać dane poza łańcuchem, możemy również uzyskać dane z innych łańcuchów, a następnie zapisać je w tym łańcuchu bloków, to w rzeczywistości dotyczy to łańcucha międzyłańcuchowego. Dopóki bezpieczeństwo zdecentralizowanej sieci Oracle jest wystarczająco mocne, może ona zapewnić, że zbudowane na niej usługi danych, usługi obliczeniowe i usługi międzyłańcuchowe będą bardzo bezpieczne. Chainlink świadczy szereg usług opartych na zdecentralizowanych wyroczniach, które mogą łączyć dane Web 3 i Web 2, w tym dane Warstwy 1 i Warstwy 2, dzięki czemu każdy może uzyskać jak najwięcej odpowiednich danych i usług.

Jakie usługi świadczy wyrocznia Chainlink?

Następnie pozwólcie, że krótko przedstawię usługi świadczone przez wyrocznie Chainlink. Oczywiście istnieje wiele usług świadczonych przez Chainlink. Podzielę się niektórymi usługami, które mają zastosowanie w wielu scenariuszach.

Jeśli w przyszłości będziesz chciał wprowadzić innowacje w obszarach DeFi, GameFi, NFT i SocialFi, istnieje duże prawdopodobieństwo, że do uzyskania danych będziesz potrzebować wyroczni. Ponieważ musisz uzyskać dane łańcucha w bardzo zdecentralizowany i bezpieczny sposób i zapisać je z powrotem w swoim inteligentnym kontrakcie w łańcuchu.

Pierwszą usługą jest karmienie cenowe – termin, który być może często słyszałeś wcześniej, stał się popularny podczas lata DeFi 2020. Wiele projektów DeFi pojawiło się w 2020 r., poczynając od Uniswap, następnie umowa pożyczkowa Compound, a następnie projekt dotyczący aktywów syntetycznych Synthetics i inne aplikacje. Wszystkie one charakteryzują się dużym zapotrzebowaniem na dane poza łańcuchem, ponieważ można wykorzystywać wyłącznie bezpieczne dane przez użytkowników w sposób zdecentralizowany poprzez umowy, w których ważną rolę odgrywa usługa podawania cen przez Oracle.

Powyższy obraz przedstawia podstawowy schemat działania usługi podawania cen, który obejmuje 3 ważne strony. Pierwsza to zdecentralizowana sieć Oracle, o której właśnie wspomnieliśmy; druga to dostawca danych, którym może być giełda lub inna duża autorytatywna instytucja, z których wszystkie mogą służyć jako dostawcy danych. Trzecia. Jest to umowa użytkownika. Proces pokazany na powyższym rysunku jest bardzo prosty. Każdy dostawca danych może dostarczyć je do określonego węzła sieci Oracle Chanlink za pośrednictwem interfejsu źródła danych lub usługi. Każdy węzeł sieci Oracle może również uzyskać dane zgodnie z własną usługą. , a następnie w procesie agregacji dane uzyskane z każdego kanału są zapisywane w umowie weryfikacyjnej wdrożonej w łańcuchu. Jeżeli przejdzie weryfikację, dane będą mogły zostać zapisane i wykorzystane przez użytkownika w przyszłości. Na tym polega cały proces. Klient musi jedynie skorzystać z umów, aby uzyskać i wykorzystać wiele danych.

Istnieje wiele przypadków użycia podawania cen, takich jak Compound, Uniswap i Synthetics, o których właśnie wspomnieliśmy. Muszą one zmapować aktywa w Web2 na Web3. W tej chwili potrzebny jest zewnętrzny mechanizm, aby podać cenę aktywa. Podobnie jak w przypadku monet stabilnych, ile monet stabilnych można wyemitować w zależności od liczby dostępnych aktywów, a cenę aktywów należy również obliczyć w oparciu o wyrocznię. Ponadto niektóre platformy zarządzania aktywami i popularne aplikacje do handlu instrumentami pochodnymi są w dużym stopniu zależne od cen, dlatego w rzeczywistości są ważnymi użytkownikami usług ustalania cen. Sądząc po tendencji, popyt na usługi żywienia cenowego rośnie wykładniczo. Mimo że rynek nie jest tak aktywny, wykorzystanie danych wciąż rośnie.

Następnie przedstawię drugą, bardziej charakterystyczną usługę, jaką jest Any API. Mówiąc najprościej, pomaga inteligentnym kontraktom w łańcuchu pozyskać pewne niestandardowe dane, takie jak niektóre dane typu long-tail. Dane te mogą być dostępne tylko dla niektórych osób lub określonych umów, ale nie są to standardowe dane, takie jak ceny tokenów lub ceny aktywów. Wiele aplikacji DApp wymaga niestandardowych danych. Na przykład aplikacje biznesowe Web 3 wymagają uzyskiwania danych o pogodzie lub danych o opóźnieniach lotów. Na przykład gazy cieplarniane można wykorzystać w projektach podobnych do ESG, w tym w wyborach i zawodach sportowych, które można połączyć z rynkami prognostycznymi. Dostarczamy rynek danych w oparciu o Any API. Na każdym rynku danych działają różni dostawcy danych, którzy świadczą usługi na zewnątrz w oparciu o własne dane. O ile użytkownik wyśle ​​żądanie, może on zapisać dane z powrotem do użytkownika umowę zgodnie z wymaganiami usługi. Zarówno dostawca danych, jak i odbiorca danych są określani przez rynek. Istnieje rynek dla użytkowników i dostawców danych i nie jest zadaniem urzędników Chainlink monopolizowanie wszystkich danych, a następnie dostarczanie ich do sieci.

Przepływ pracy w przypadku Any API i podawania cen jest właściwie stosunkowo spójny. Umowa najpierw wysyła żądanie, a następnie żądanie zostaje wykryte przez węzeł Chanlink. Po odkryciu Chanlink może wybrać wymagane dane zgodnie z żądaniem, a następnie zapisać je z powrotem w łańcuchu bloków. Każde API może udostępniać użytkownikom różnorodne dane, ale jedną z jego cech jest to, że choć konfiguruje się stosunkowo szybko, dostarcza dane z jednego węzła. Celem Any API jest jak najszybsze uzyskanie danych w prosty sposób, zamiast pozyskiwania danych za pośrednictwem zdecentralizowanej wyroczni sieciowej, o której wspominaliśmy wcześniej.

Później, gdy wzrosła różnorodność wymagań dotyczących danych, spodziewano się, że wiele niestandardowych danych zostanie ponownie zapisanych w łańcuchu w sposób zdecentralizowany. Na początku kwietnia tego roku stworzyliśmy także nową usługę o nazwie Functions. Mówiąc najprościej, wykonuje ona każde żądanie użytkownika za pośrednictwem zdecentralizowanej sieci Oracle. Użytkownicy mogą używać niektórych zaawansowanych języków programowania, takich jak Javascript, do pisania programów operacyjnych. Nie można ich już pisać wyłącznie w języku Solidity. Programy napisane w JavaScript są zdecydowanie bogatsze niż Solidity. Usługa Functions może enkapsulować napisany program w żądaniu i wysyłać go do całej sieci Oracle. Każdy węzeł w sieci będzie wykonywał tę samą operację, która może obejmować usługi obliczeniowe, usługi gromadzenia danych lub inne usługi. Gdy każdy węzeł wykona i uzyska wynik, przechodzi przez proces agregacji, o którym właśnie wspomnieliśmy, a następnie zapisuje go z powrotem do inteligentnego kontraktu.

W porównaniu z żywieniem cenowym jego stopień swobody jest bardzo wysoki. Innymi słowy, inteligentny kontrakt może otrzymać zewnętrzny interfejs, z którego będzie mógł korzystać w dowolny sposób. Możesz także wpisać część logiki, którą musi wykonać w umowie, a następnie nie będzie ona wykonywana przez blockchain, ale przez maszynę Oracle, co jest równoznaczne z osadzeniem usługi maszyny Oracle bezpośrednio w inteligentnym kontrakcie, przekształcając ją w hybrydowy inteligentny kontrakt. Jeśli zrobisz to w ten sposób, twoje wykonanie będzie gwarantowane przez zdecentralizowaną sieć. Wtedy twoje niedeterministyczne operacje, których nie można wykonać na blockchainie, można wykonać poprzez zdecentralizowaną wyrocznię. Sieć wykonuje i zwraca wyniki. Ogólnie rzecz biorąc, może znacznie poprawić funkcjonalność inteligentnych kontraktów. Funkcje, które może wykonać, będą bogatsze niż wcześniej, a faktyczna aplikacja po stronie użytkownika jest również bardzo prosta. Wystarczy, że dodasz tylko dwie funkcje do swojej umowy i będziesz mógł bezpośrednio korzystać ze zdecentralizowanej sieci Oracle w ramach inteligentnej umowy. . używać. Jest także bardzo przyjazny dla tradycyjnych programistów Web2, ponieważ logikę wykonania można uzupełnić za pomocą tradycyjnych języków programowania. Ogólny proces się nie zmienił. Wyślij żądanie, następnie wyślij je do zdecentralizowanej sieci Oracle, agreguj je po wykonaniu i na koniec zapisz z powrotem w inteligentnym kontrakcie użytkownika.

Powyżej podzieliłem się informacjami na temat wyroczni i niektórych usług, jakie mogą świadczyć zdecentralizowane sieci oparte na wyroczniach.