In acest articol, va voi explica ce sunt Oracles in Blockchain. De asemenea, voi analiza ce tipologii exista, caracteristicile acestora, precum si conceptul de Oracle Problem.
Ce sunt Oracles si de ce avem nevoie de ele
Blockchain-urile si Smart Contracts sunt sisteme inchise. On-chain Smart Contracts necesita date externe, off-chain, pentru a avea aplicabilitate in lumea reala. Aici intra in joc Oracles.
Acestea sunt programe pe computer care conecteaza date off-chain, adica date din lumea exterioara, cu ecosistemul blockchain-ului, adica datele on chain. Actioneaza ca un API (Application Programming Interface) care ofera efectiv o punte intre Blockchain-uri si lumea din afara lor.
Oracolele nu constituie surse de date in sine. Ceea ce fac, in schimb, este sa colecteze, sa interogheze, sa verifice si sa autentifice date off chain din diferite surse. Apoi le vor livra sistemului inchis al Smart Contracts.
Datele transmise pot fi legate de plati, preturi, conditii meteorologice si asa mai departe.
Oracles Inbound si Outbound
Pe baza fluxului de informatii dintre acestea si sursele lor, Oracles pot fi de doua tipuri: Inbound si Outbound.
Inbound Oracles livreaza Blockchain-ului date off-chain, adica din lumea reala, in timp ce variantele lor omoloage, Outbound, trimit date din Blockchain, in lumea exterioara. Prin intermediul Oracles, datele pot fi, prin urmare, transferate intern sau extern.
Un scenariu programabil destul de comun pentru un Oracle Inbound ar putea fi urmatorul. Un investitor doreste sa cumpere un activ crypto, daca acesta atinge un anumit pret. Pretul dorit este blocat sau locked intr-un Smart Contract.
Acel Oracle ofera Blockchain-ului rapoarte cu privire la starea preturilor si, atunci cand pretul stabilit este atins de assetul dorit, Smart Contract-ul va plasa o comanda de cumparare – buy order.
Alternativ, un Smart Contract poate fi programat pentru a debloca un Smart Lock din lumea reala, daca se inregistreaza un crypto payment la o anumita adresa de crypto wallet. Smart Contract-ul va trimite aceste informatii printr-un Outbound Oracle, catre un mecanism menit sa deblocheze acel Smart Lock.
Oracles Hardware si Software
In functie de sursa din care isi extrag datele, Oracles mai pot fi clasificate in Software Oracles si Hardware Oracles.
Software Oracles obtin si livreaza date din servicii online, bazate pe Internet, cum ar fi servere, baze de date si site-uri web. Acestea pot furniza informatii in timp real, incluzand fluctuatiile preturilor si ratele de schimb, dar fara a se limita doar la asta.
Hardware Oracles primesc date de la diferite device-uri de citire a informatiilor, cum ar fi senzorii de miscare ai camerei sau scanerele de coduri de bare.
Oracles Centralizate si Descentralizate
Oracles care se bazeaza pe o singura sursa de date sunt centralizate si actioneaza ca unic furnizor de date pentru un Smart Contract, fiind controlate de o entitate. La polul opus si firesc, Oracles descentralizate interactioneaza cu mai multe surse de date, fara a fi gestionate de o unica entitate.
Pe langa aceste tipuri, exista si Human Oracles. Aici ma refer la persoanele care au cunostinte specializate intr-un anumit domeniu si pot colecta, verifica si valida date pentru Smart Contracts.
The Oracle Problem
Oracles sunt cheia unui ecosistem Blockchain “sanatos”, deoarece Smart Contracts executa decizii strict pe baza datelor pe care Oracles le furnizeaza. Cu toate acestea, daca un Oracle este compromis, atunci la fel va fi si Smart Contract-ul care se bazeaza pe el, fenomen cunoscut si sub numele de The Oracle Problem.
Oracles centralizate sunt controlate de o singura entitate si reprezinta astfel un Single Point Of Failure. Va reamintesc ca, in cadrul unui sistem, un Single Point Of Failure ar fi o parte a mecanismului care, daca esueaza sau sufera vreo defectiune, va determina oprirea intregului sistem din a mai functiona corespunzator. In consecinta, acest lucru poate pune in pericol securitatea unui Smart Contract.
Motivul pentru care au fost inventate Smart Contracts a fost tocmai evitarea dependentei de terte parti si a riscului de contrapartida. De aceea, diferite proiecte Blockchain, precum Chainlink, MakerDao, Band Protocol si Augur, dezvolta Oracles descentralizate, deoarece au potentialul de a rezolva The Oracle Problem.
Concluzie
Oracles faciliteaza comunicarea intre Blockchain-uri si lumea exterioara, deci astfel de mecanisme sunt cruciale pentru adoptarea globala a Blockchain-urilor.
Fara acestea, capacitatile si use cases specifice smart contracts ar fi reduse semnificativ, deoarece acestea ar depinde doar de datele limitate, deja existente in retelele lor inchise.