HomeWikiDApps & Smart ContractsEthereum: come funzionano gli smart contract?

Ethereum: come funzionano gli smart contract?

Gli smart contract sono la caratteristica principale che ha decretato il successo di Ethereum. 

Cosa sono e a cosa servono gli smart contract di Ethereum

Il protocollo Bitcoin non prevede la possibilità di creare veri e propri smart contract complessi, perché è stato progettato fondamentalmente solo per abilitare le transazioni. 

Invece Ethereum, che è nato ben 6 anni dopo Bitcoin, è stato progettato fin da subito per essere fondamentalmente una rete in grado di ospitare ed eseguire smart contract. 

Nel 2014 il co-fondatore di Ethereum, Vitalik Buterin, scrisse esplicitamente nel whitepaper che la rete che stava progettando era una piattaforma di nuova generazione basata su smart contract, e che le applicazioni alternative a Bitcoin basate su tecnologia blockchain prevedevano anche l’utilizzo di asset digitali per rappresentare valute e strumenti finanziari personalizzati, asset non fungibili ed applicazioni più complesse. 

In particolare queste ultime, ovvero gli smart contract, venivano definite come applicazioni che implicano il controllo diretto di asset digitali da parte di un codice che implementa regole arbitrarie, oppure organizzazioni autonome decentralizzate basate su blockchain, le cosiddette DAO.  

Vitalik scrisse: 

“Ciò che Ethereum intende fornire è una blockchain con un linguaggio di programmazione Turing-complete integrato che può essere utilizzato per creare “contratti” che possono essere utilizzati per codificare funzioni arbitrarie di transizione dello stato, consentendo agli utenti di creare uno qualsiasi dei sistemi sopra descritti – così come molti altri che non abbiamo ancora immaginato – semplicemente scrivendo la logica in poche righe di codice”. 

Quindi, gli smart contract su Ethereum sono righe di codice grazie alle quali è possibile programmare l’esecuzione automatica di istruzioni da parte della rete, quando vengono soddisfatte determinate condizioni, senza bisogno di doverne affidare l’esecuzione ad un intermediario.

Infatti, lo stesso Buterin mise il termine “contratti” tra virgolette, perché più che veri e propri contratti tra parti, sono programmi informatici eseguiti da una rete decentralizzata. 

Dal punto di vista generale quindi il loro funzionamento non è molto complicato. 

smart contract
Gli smart contract vengono eseguiti una volta verificate le condizioni in esso contenute

Il deploying degli smart contract sulla blockchain di Ethereum

Per prima cosa ovviamente uno o più sviluppatori devono creare lo smart contract scrivendo le apposite righe di codice, e poi lo devono inviare alla rete Ethereum. 

Tecnicamente pubblicarlo sulla blockchain di Ethereum significa fare sì che tutti i nodi della rete lo ricevano e lo eseguano. Una volta pubblicato tutte le istruzioni in esso contenute verranno sempre eseguite da tutti i nodi nello stesso identico modo. 

Pertanto non solo la sua pubblicazione, ma anche l’esecuzione delle istruzioni è irreversibile, una volta pubblicato sulla blockchain. 

Quello che fa la differenza pertanto sono le istruzioni in esso contenute – che possono essere le più disparate – e quante persone lo usano. Infatti, per poter far sì che le istruzioni di uno smart contract vengano effettivamente eseguite ci devono essere una o più transazioni che le invocano. 

Va anche ricordato, però, che in genere queste istruzioni implicano l’utilizzo di risorse, come dati o token, quindi perché vengano realmente eseguite è necessario che tutte le condizioni impostate come necessarie vengano soddisfatte. 

A volte questi dati provengono dall’esterno, grazie ai cosiddetti oracoli, mentre a volte provengono semplicemente da transazioni sulla blockchain. 

Solitamente la transazione che innesca l’esecuzione delle istruzioni contenute in uno smart contract prevede il pagamento di una fee in ETH, ed in molti casi per poter innescare effettivamente l’esecuzione prevede anche il pagamento o l’invio di token specifici dello smart contract stesso, o di altri smart contract. 

Tecnicamente gli smart contract sono un tipo di conto sulla blockchain di Ethereum, “controllato” dalla rete piuttosto che da un’entità centrale. Possono custodire ETH o token, e possono anche inviare autonomamente transazioni sulla rete.

Come interagire con il codice e più in generale con le dApp

Gli utenti possono interagire con gli smart contract inviando loro transazioni che innescano una delle funzioni definite all’interno del loro codice. 

Pertanto il funzionamento degli smart contract su Ethereum è in linea generale molto semplice: basta inviare una transazione di un determinato tipo ad uno smart contract, e questa innescherà l’esecuzione da parte dei nodi di tutte le istruzioni contenute nella funzione dello smart contract invocata dalla transazione stessa. 

Ovviamente a seconda di quali istruzioni saranno contenute nella funzione invocata si potranno generare conseguenze molto diverse tra di loro, che variano non solo da smart contract a smart contract, ma anche da funzione a funzione. 

L’enorme complessità degli smart contract deriva quindi proprio da ciò che i singoli smart contract fanno, e non in generale dal fatto che la rete Ethereum li supporti e li esegua. Inoltre, è assolutamente impossibile elencare le modalità di funzionamento concreto di tutte le tipologie di smart contract presenti sulla rete. 

Marco Cavicchioli
Marco Cavicchioli
"Classe 1975, Marco è stato il primo a fare divulgazione su YouTube in Italia riguardo Bitcoin. Ha fondato ilBitcoin.news ed il gruppo Facebook "Bitcoin Italia (aperto e senza scam)".
RELATED ARTICLES

MOST POPULARS

GoldBrick