Capitolo 1 di 9

Perché un oracolo

Obiettivo. Capire perché uno smart contract non può leggere internet e come un oracolo risolve il problema.

Uno smart contract è un piccolo programma che vive sulla blockchain. Ha una regola d'oro: tutti i computer della rete devono ottenere lo stesso risultato ogni volta che lo eseguono. Se un contratto potesse chiedere a un sito «quanto costa la benzina adesso?», due computer che chiedono a pochi secondi di distanza potrebbero ricevere due risposte diverse, e la rete non sarebbe più d'accordo su niente.

Per questo un contratto non può leggere internet. Conosce solo ciò che è già scritto sulla blockchain.

Analogia. Pensa a un notaio che si fida solo di ciò che porti sul suo tavolo. Non esce a controllare i prezzi in giro: se vuoi che ne tenga conto, qualcuno deve portargli un foglio e lui lo archivia con la data. Il foglio è il dato, chi lo porta è l'oracolo.

Un oracolo è quindi una persona o un programma che porta un dato dal mondo esterno e lo scrive sulla blockchain. Da quel momento qualsiasi contratto può leggerlo, e tutti vedono lo stesso numero. Il punto delicato è la fiducia: chi scrive il dato decide cosa il contratto «crede». Per questo nel nostro progetto un solo indirizzo autorizzato può scrivere, e ogni scrittura lascia una traccia pubblica.

Esistono anche oracoli decentralizzati, in cui molti nodi indipendenti confermano il dato. Qui usiamo un oracolo semplice e visibile, perfetto per imparare.

Prova tu

Apri la pagina dei documenti Chainlink sull'argomento (link sotto) e trova con parole tue la risposta a: «perché serve un oracolo?». Poi scrivi su un foglio tre dati del mondo reale che un contratto potrebbe voler conoscere.

Cosa hai imparato

Per approfondire