Wprowadzenie do Blockchain Oracles
Strona Główna
Artykuły
Wprowadzenie do Blockchain Oracles

Wprowadzenie do Blockchain Oracles

Średnio zaawansowany
Opublikowane Jan 22, 2020Zaktualizowane Nov 28, 2023
7m
Treść autorstwa członka społeczności - Autor: Vallery Mou


Spis treści


Czy jest blockchain oracle?

Blockchain oracles to zewnętrzne usługi dostarczające smart kontraktom dodatkowe informacje. Służą one jako swoiste mosty łączące blockchainy ze światem zewnętrznym.
Blockchainy oraz smart kontrakty nie są w stanie uzyskać dostępu do danych poza łańcuchem bloków (informacji spoza sieci). Niemniej w przypadku wielu umów konieczne jest posiadanie odpowiednich informacji ze świata zewnętrznego, w celu prawidłowej realizacji kontraktu.

W tym miejscu do gry wchodzą blockchain oracles, zapewniające ogniwo łączące dane spoza łańcucha bloków z tymi w blockchainie. Oracles mają kluczowe znaczenie w blockchainowym ekosystemie, gdyż poszerzają one zakres możliwości działania inteligentnych kontraktów. Bez blockchainowych "wyroczni", smart kontrakty miałyby bardzo ograniczone działanie, ponieważ mogłyby opierać się jedynie na danych już zawartych w sieci. 

Należy zauważyć, że blockchainowy oracle nie jest źródłem danych jako taki. Można go postrzegać jako warstwa zapytania, weryfikująca i uwierzytelniająca zewnętrzne źródło danych. Jeśli dane są poprawne, oracle przekazuje je dalej – do blockchainu. Informacje przesyłane przez oracle przyjmują różnorakie formy. Mogą to być: dane transakcyjne, pomyślnie zakończone płatności lub odczyty temperatury zmierzone przez czujniki. 

Jeśli chcemy uzyskać dane ze świata zewnętrznego, należy zainwokować smart kontrakt i przeznaczyć zasoby sieciowe. Niektóre wyrocznie mają również zdolność, nie tylko do przekazywania informacji inteligentnym kontraktom, lecz również odsyłania ich z powrotem do źródeł zewnętrznych.

Istnieje wiele rodzajów oracles – ich działanie jest w całości zależne od tego, do czego zostały zaprojektowane. W artykule zajmiemy się niektórymi z tych designów.


Przykłady blockchainowych oracle

Załóżmy, że Alice i Bob zakładają się, kto zostanie zwycięzcom amerykańskich wyborów prezydenckich. Alice wierzy, że wygra kandydat Republikanów, podczas gdy Bob jest przekonany, że sukces odniesie Demokrata. Uzgadniają oni warunki zakładu i deponują środki w smart kontrakcie, który przekaże wszystkie funduszy zwycięzcy, kiedy już świat pozna oficjalne wyniki wyborów.

Ponieważ smart kontrakt, sam w sobie, nie jest w stanie wchodzić w interakcje z zewnętrznymi źródłami danych, musi polegać na oracle dostarczającym wymagane informacje – w tym wypadku będą to wyniki wyborów prezydenckich. Kiedy już poznamy zwycięzcę, oracle wysyła zapytanie poprzez zaufane API, aby dowiedzieć się, który z kandydatów wygrał i przekazuje tę informację do inteligentnej umowy. Następnie kontrakt przesyła środki odpowiednio do Alice bądź Boba, w zależności od wyniku.

Bez oracle transmitującego informacje, nie istniałaby możliwość rozliczenia tego zakładu w sposób, który nie mógłby zostać wykorzystany przez jedną ze stron. 


Jakie są typy blockchainowych oracle?

Blockchainowe wyrocznie można sklasyfikować w zależności od ich cech i właściwości: 

  • Źródło – czy dane pochodzą z oprogramowania, a może sprzętu?
  • Kierunek transmisji informacji – są one przychodzące, czy wychodzące?
  • Zaufanie – scentralizowane albo zdecentralizowane?

Pojedynczy oracle może zostać przydzielony do wielu kategorii. Dla przykładu, wyrocznia pobierająca dane ze strony firmy, jest scentralizowanym, przychodzącym i mającym swoje źródło w oprogramowaniu oracle.


Programowe oracles

Programowe oracles wchodzą w interakcje z internetowymi źródłami informacji, a następnie przesyłają je do blockchainów. Dane mogą pochodzić z baz danych online, serwerów, stron – w zasadzie z dowolnego źródła informacji w internecie.

Fakt, że programowe wyrocznie są stale połączone z internetem, pozwala im, nie tylko na dostarczanie danych smart kontraktom, lecz również na przekazywanie informacji w czasie rzeczywistym. Sprawia to, że są one jednym z najpopularniejszych typów blockchainowych oracle. 

Informacje dostarczane przez software oracles mogą obejmować kursy giełdowe, ceny aktywów cyfrowych, czy informacje o locie w czasie rzeczywistym.


Sprzętowe oracles

Niektóre inteligentne kontrakty muszą wchodzić w interakcje ze światem rzeczywistym. Sprzętowe oracles są zaprojektowane w taki sposób, aby uzyskiwać informacje ze świata fizycznego i udostępniać je na potrzeby inteligentnych kontaktów. Informacje takie mogą być przekazywane z czujników elektronicznych, skanerów kodów kreskowych i innych urządzeń służących do odczytu danych.

Sprzętowe oracles zasadniczo “tłumaczą” to, co dzieje się w fizycznym świecie na język możliwy do zrozumienia przez smart kontrakty.

Przykładem są czujniki sprawdzające, czy ciężarówka przewożąca towary dotarła do punku przeładunkowego. Jeśli tak, oracle przekazuje informacje inteligentnej umowie, która jest w stanie podejmować decyzje na ich podstawie.

Jeśli chcesz przeczytać więcej na ten temat, sugerujemy zapoznać się z naszą publikacją Przykłady wykorzystania Blockchain: Łańcuchy dostaw.


Przychodzące i wychodzące oracles

Przychodzące oracles transmitują informacje z zewnętrznych źródeł do smart kontraktów, podczas gdy wychodzące oracles przesyłają dane z inteligentnych umów do świata zewnętrznego. 

Dla przykładu, za przychodzący oracle możemy uznać taki, który mówi smart kontraktowi, jaka temperatura została zarejestrowana przez fizyczny czujnik. Natomiast oracle wychodzący możemy rozważyć na przykładzie inteligentnego zamka bądź kłódki. Wpierw środki zostają zdeponowane na cyfrowy adres, smart kontrakt przesyła te informacje do wychodzącego oracle, po czym dane trafiają do mechanizmu, który odblokowuje fizyczną blokadę - kłódkę lub zamek.


Scentralizowane i zdecentralizowane oracles

Scentralizowane wyrocznie są kontrolowane przez organizację bądź jednostkę, która jest jedynym dostawcą informacji do smart kontraktu. Korzystanie tylko z jednego źródła informacji okazać się ryzykowne – skuteczność realizacji kontraktu w pełni zależy od podmiotu kontrolującego oracle. Ponadto, jakakolwiek złośliwa ingerencja ze strony nieuczciwego podmiotu, będzie miała szkodliwy wpływ na inteligentny kontrakt. Głównym problemem scentralizowanych oracle jest istnienie pojedynczego punktu awarii, co sprawia, że umowy są mniej odporne na luki w bezpieczeństwie i złośliwe ataki.

Zdecentralizowane oracle dzielą cele z publicznymi blockchainami – unikać ryzyka kontrahenta. Zwiększają wiarygodność informacji dostarczanych do inteligentnych umów, nie polegając na jednym źródle prawdy i zaufania. Smart kontrakt wysyła zapytania do wielu oracle, w celu ustalenia ważności i dokładności danych – dlatego zdecentralizowane wyrocznie możemy określać konsensusowymi oracles.

Niektóre projekty blockchain świadczą usługi zdecentralizowanych oracle dla innych blockchainów. Zdecentralizowane wyrocznie są także przydatne na rynkach prognostycznych, gdzie wiarygodność pewnych wyników można zweryfikować w drodze konsensusu społecznego.

Podczas, gdy zdecentralizowane oracle pragną osiągnąć brak potrzeby powierzania zaufania, należy zauważyć, że podobnie jak sieci blockchain niewymagające zaufania, zdecentralizowane oracles nie eliminują całkowicie "zaufania", a raczej dystrybuują je pomiędzy wielu uczestników systemu.


Szczególne oracles kontraktowe

Szczególny oracle kontraktowy jest przeznaczony do wykorzystania w ramach jednego, specyficznego smart kontraktu. Oznacza to, że jeżeli chcemy wdrożyć kilka inteligentnych umów jednocześnie, należy stworzyć proporcjonalną liczbę wyroczni specyficznych do konkretnej umowy.

Tego rodzaju oracle są uważane za bardzo czasochłonne do zrobienia i kosztowne w utrzymaniu. Przedsiębiorstwa chcące pozyskiwać dane z różnych danych, mogą uznać takie podejście za mało praktyczne. Z drugiej zaś strony, ponieważ oracle specyficzne-dla-kontraktu można zaprojektować całkowicie od zera, aby służyły konkretnemu przypadkowi użycia, programiści zyskują dużą elastyczność w dostosowywaniu ich do konkretnych wymagań i problemów.


Ludzkie oracles

Czasem osoby posiadające specjalistyczną wiedzę w danej dziedzinie mogą również służyć jako oracle. Są w stanie badać i weryfikować autentyczność informacji pozyskiwanych z różnych źródeł i tłumaczyć te dane na język smart kontraktów. Ze względu na fakt, że ludzkie oracle mogą potwierdzać swoją tożsamość jedynie za pomocą dowodów kryptograficznych, możliwość wystąpienia oszustwa i dostarczania fałszywych danych jest relatywnie niska.


Problem Oracle

Odkąd inteligentne kontrakty bazują w oparciu o dane dostarczane przez wyrocznie, oracle są kluczem do zdrowego ekosystemu blockchain. Zatem głównym wyzwaniem przy projektowaniu oracles jest to, że w przypadku, gdy wyrocznia zostanie zaatakowana, zagrożona jest również inteligentna umowa na niej oparta. Często określa się to jako Problem Oracle. 

Z uwagi na to, że oracles nie stanowią części głównej warstwy konsensusu, niestety nie podlegają mechanizmom bezpieczeństwa, zapewnianym przez publiczne blockchainy. Konflikt zaufania między wyroczniami ze stron trzecich i bezwzględna realizacja inteligentnych umów na ich podstawie, pozostają dotychczas nierozwiązanym problemem.

Zagrożenie mogą również stanowić ataki pośrednie, gdzie złośliwy podmiot uzyskuje dostęp do przepływu danych między oracles, a umową i dokonuje zmian lub fałszuje dane.  


Przemyślenia końcowe

Wiarygodny mechanizm ułatwiający komunikację między inteligentnymi umowami, a światem zewnętrznym ma kluczowe znaczenie dla procesu globalnej adopcji blockchainu. Bez blockchainowych oracles, smart kontrakty musiałyby polegać jedynie na informacjach już znajdujących się w kryptowalutowych sieciach, co znacznie ograniczałoby ich możliwości.

Zdecentralizowane oracles mają możliwość wprowadzenia mechanizmów obronnych, mogących wyeliminować wiele systemowego ryzyka z ekosystemu blockchain. Blockchain oracles pozostają jednym z kluczowych elementów składowych, należnych do wdrożenia w bezpieczny, niezawodny i zaufany sposób, jeśli chcemy, aby nasz ekosystem blockchain dalej się rozwijał.