🔴 Jak uzyskać decentralizację wykorzystując wyrocznie (Oracles) w blockchain i dlaczego to trudniejsze, niż większość branży myśli? 💬👇
🔴 Wyrocznie (Oracles) umożliwiają odczyt danych spoza blockchaina w kontraktach (smart contractach). To ważna funkcjonalność praktycznie, ponieważ budowanie aplikacji web3, wykorzystującej kontrakty BEZ danych spoza blockchaina (np. cen par walutowych), poważnie ogranicza możliwości realizacji złożonej logiki biznesowej w kontraktach.
🔴 Branża ma niestety mylne wyobrażenie co do działania wyroczni. Zakłada się, że mechanizm ten jest “zdecentralizowany”, natomiast praktycznie bardzo często jest wręcz przeciwnie.
🔴 W podstawowym modelu wykorzystania wyroczni, kontrakt ma możliwość zapytania o dane z zewnątrz, a wyrocznia realizuje to zapytanie (np. odczyt z bazy danych) i zwraca wynik do kontraktu. To jednak całkowicie scentralizowany model. Dlaczego? Ponieważ wynik dostarczony do kontraktu pochodzi wyłącznie od jednej wyroczni. Wykorzystując technologie do tworzenia wyroczni, możemy dosłownie uruchomić własną wyrocznię, która na potrzeby naszego rozwiązania blockchain będzie odpowiedzialna za dostarczanie danych spoza blockchain. Ten model jest tani i jest podstawowym sposobem realizacji zapytania do wyroczni z wykorzystaniem Chainlink – największego projektu blockchain dostarczającego technologię wyroczni dla kontraktów.
🔴 W jaki sposób stworzyć więc zdecentralizowaną wyrocznię? Model jest następujący: kontrakt powinien zapytać kilka wyroczni o realizacje tego samego zapytania, uzyskać wyniki od każdej z nich, a następnie samodzielnie określić poprawną odpowiedź na podstawie wielu wyników (odpowiedzi wielu wyroczni). To trudne i ma bardzo dużo wyzwań. Przede wszystkim sposób określenia docelowej wartości na podstawie wielu odpowiedzi nie jest oczywisty – pytając np. o cenę USD/BTC trzech wyroczni, możemy w kontrakcie policzyć średnią z uzyskanych wyników. Jednak nie zawsze jest to tak proste.
🔴 Wykorzystanie kilku wyroczni to odpowiednio większy koszt. Każde zapytanie kosztuje, więc decydując się na formę “decentralizacji” na tym poziomie, musimy liczyć z większym kosztem obsługi kontraktów. Twórcy kontraktów, często więc tego nie robią, polegając na jednej wyroczni. Tworząc przemyślane rozwiązanie web3, jest to niestety nie do przyjęcia.
🔴 Czy wyrocznie muszą zwracać poprawne dane? Nawet jeśli wykorzystam ich kilka i uzyskam decentralizację poprzez poleganie na wielu wyroczniach, to skąd mieć pewność, że zwracane przez nie dane są poprawne? Odpowiedź nie jest prosta. Opiszę ten temat w kolejnym wpisie.
🔴 Wpis omawiający podstawowe działanie wyroczni: tutaj.