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 鈥渢艂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艂.聽