Ethereum: come funzionano gli smart contract?

Gli smart contract sono la caratteristica principale che ha reso Ethereum un tale successo. 

Cosa sono gli smart contract ea cosa servono

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

Al contrario, Ethereum, che nasce 6 anni dopo Bitcoin, è stato progettato fin dall'inizio per essere sostanzialmente una rete in grado di hosting ed esecuzione di contratti intelligenti

Nel 2014 è co-fondatore di Ethereum Vitalik Buterin scritto esplicitamente nel whitepaper che la rete che stava progettando era una piattaforma di nuova generazione basata su smart contracte che applicazioni alternative a Bitcoin basate sulla tecnologia blockchain includevano anche l'uso di risorse digitali per rappresentare valute e strumenti finanziari personalizzati, risorse non fungibili e applicazioni più complesse. 

In particolare, questi ultimi, ovvero gli smart contract, sono stati definiti come applicazioni che comportano il controllo diretto degli asset digitali da parte di un codice che implementa regole arbitrarie, ovvero organizzazioni autonome decentralizzate basate su blockchain, le cosiddette DAO.  

Vitalik ha scritto: 

“Quello che Ethereum intende fornire è una blockchain con un linguaggio di programmazione completo Turing integrato che può essere utilizzato per creare 'contratti' che possono essere utilizzati per codificare funzioni arbitrarie di transizione di stato, consentendo agli utenti di creare uno qualsiasi dei sistemi descritti sopra – oltre a tanti altri che non abbiamo ancora immaginato – semplicemente scrivendo la logica in poche righe di codice”.

Pertanto, i contratti intelligenti su Ethereum sono righe di codice con cui è possibile programmare l'esecuzione automatica delle istruzioni dalla rete, quando si verificano determinate condizioni, senza dover affidarne l'esecuzione ad un intermediario.

Lo stesso Buterin, infatti, ha messo tra virgolette il termine “contratti”, perché più che veri e propri contratti tra le parti, si tratta di programmi per computer eseguiti da un decentralizzato rete. 

Da un punto di vista generale, quindi, il loro funzionamento non è molto complicato. 

smart contract
Gli smart contract vengono eseguiti una volta verificate le condizioni ivi contenute

Implementazione di contratti intelligenti sulla blockchain di Ethereum

Innanzitutto uno o più sviluppatori devono ovviamente creare lo smart contract scrivendo le apposite righe di codice, e poi devono farlo invialo alla rete Ethereum. 

In termini tecnici, pubblicarlo sulla blockchain di Ethereum significa farlo ricevere ed eseguire a tutti i nodi della rete. Una volta pubblicate, tutte le istruzioni in esso contenute verranno sempre eseguite da tutti i nodi esattamente allo stesso modo. 

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

Pertanto, ciò che conta davvero sono le istruzioni che contiene – che possono essere le più diverse – e quante persone lo usano. Infatti, affinché le istruzioni di uno smart contract possano essere effettivamente eseguite, devono esserci una o più transazioni che le invocano

Vale anche la pena ricordare che queste istruzioni generalmente implicano l'uso di risorse, come dati o token, quindi affinché possano essere effettivamente eseguite, devono essere soddisfatte tutte le condizioni previste. 

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 a commissione in ETH, e in molti casi per innescare effettivamente l'esecuzione comporta anche il pagamento o l'invio di token specifici per lo smart contract stesso, o altri smart contract. 

Tecnicamente, i contratti intelligenti sono un tipo di account sul Ethereum blockchain, “controllato” dalla rete piuttosto che da un'entità centrale. Possono memorizzare ETH o token e possono anche inviare transazioni sulla rete in modo autonomo.

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

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

Pertanto, il funzionamento degli smart contract su Ethereum è generalmente molto semplice: basta inviare una transazione di un certo tipo ad uno smart contract, e questo attiverà l'esecuzione da parte dei nodi di tutte le istruzioni contenute nella funzione dello smart contract invocato da la transazione stessa. 

Ovviamente, a seconda di quali istruzioni sono contenute nella funzione invocata, si possono generare conseguenze molto diverse, 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 fanno i singoli smart contract, e non in generale dal fatto che la rete Ethereum li supporta ed esegue. Inoltre, è assolutamente impossibile elencare come funzionano effettivamente tutti i tipi di smart contract sulla rete. 


Fonte: https://en.cryptonomist.ch/2022/06/11/ethereum-smart-contracts-3/