Smart Contract: Come Funziona il Codice Autoeseguibile su una Blockchain

Smart Contract: Come Funziona il Codice Autoeseguibile su una Blockchain

Uno smart contract è un programma archiviato su una blockchain che esegue automaticamente i termini scritti nel suo codice una volta che una transazione o un altro contratto lo invoca. Un programma è un insieme di istruzioni informatiche. Una blockchain è un registro condiviso a cui vengono aggiunte nuove voci una dopo l’altra. Una transazione è una richiesta inviata a una blockchain.

Dove Risiede uno Smart Contract?

Uno smart contract viene archiviato presso un indirizzo su una blockchain. Un indirizzo è un identificativo su una blockchain per un utente o per uno smart contract. Il codice del contratto, e i dati che quel codice conserva, sono archiviati a quell’indirizzo. Lo stato è l’insieme dei dati che uno smart contract conserva, in modo che siano ancora presenti la volta successiva in cui il contratto viene eseguito.

Distribuire (deploy) uno smart contract significa inserire il suo codice sulla blockchain tramite una transazione che trasporta il codice. Dopo la distribuzione, il contratto ha un indirizzo a cui è possibile inviare transazioni.

Come Funzionano gli Smart Contract?

Uno smart contract viene eseguito quando una transazione o un altro contratto chiama una delle sue funzioni. Chiamare una funzione significa chiedere a un contratto di eseguirla. Una funzione è una porzione nominata del codice del contratto. Una transazione inviata all’indirizzo del contratto indica il nome di una funzione e fornisce i suoi input, ovvero i dati di cui la funzione ha bisogno.

I nodi della rete blockchain eseguono il codice di uno smart contract. Un nodo è un computer che esegue il software di una rete blockchain e si collega ad altri computer della rete. Quando il codice modifica lo stato del contratto, la modifica viene registrata sulla blockchain.

Un account è un record su una blockchain che possiede un indirizzo e un saldo. Un saldo è la quantità della moneta nativa della blockchain che un account detiene. Una moneta nativa è l’unità nativa di una blockchain, come il BTC su Bitcoin.

Su Ethereum, come descritto nella sua documentazione, esistono due tipi di account. Un account utente è controllato da una persona tramite una chiave privata. Una chiave privata è un numero segreto che firma le transazioni. Un account contratto contiene codice, e uno smart contract viene archiviato all’indirizzo di un account contratto.

Una chiamata a uno smart contract proviene da un account utente o da un altro contratto. In questo articolo, l’espressione “autoeseguibile” descrive un contratto il cui codice esegue le proprie istruzioni una volta chiamato. Non descrive un contratto che avvia un’esecuzione da solo, perché un account contratto può inviare messaggi solo in risposta alla ricezione di una transazione.

Un esempio inventato illustra una chiamata. I contratti reali differiscono per ciò che conservano e per come sono scritte le loro funzioni. Nell’esempio, un contratto conserva un numero di unità per ciascuno di due indirizzi. Un’unità è un conteggio che il contratto mantiene. L’indirizzo A ha 100 unità, e l’indirizzo B ha 20 unità.

  1. Un account utente invia una transazione che chiama la funzione transfer del contratto, chiedendo di spostare 30 unità dall’indirizzo A all’indirizzo B.
  2. I nodi eseguono il codice del contratto.
  3. Il codice verifica che l’indirizzo A abbia almeno 30 unità.
  4. Il codice riduce l’indirizzo A a 70 unità e aumenta l’indirizzo B a 50 unità.
  5. La modifica viene registrata sulla blockchain. I due indirizzi detengono 120 unità in totale, sia prima che dopo la chiamata.

Cosa Può Contenere e Fare uno Smart Contract?

Uno smart contract può detenere un saldo della moneta nativa della blockchain, proprio come un account utente. Uno smart contract può anche conservare registri nel proprio stato, come un conteggio per ciascun indirizzo, e una chiamata a una delle sue funzioni può modificare questi registri.

Uno smart contract può chiamare altri contratti, il che consente al codice di un contratto di utilizzare le funzioni di un altro. Una funzione può registrare un evento, ovvero una notifica sulla blockchain che un software esterno alla blockchain può monitorare.

Un contratto token è uno smart contract che crea e tiene traccia dei token. A differenza di una moneta nativa, un token è un’unità emessa su una blockchain esistente tramite uno smart contract. Uno standard di token è una specifica pubblicata delle funzioni e degli eventi che un contratto token fornisce.

Cosa Determina il Comportamento di uno Smart Contract, e Può Ancora Cambiare?

Il codice archiviato all’indirizzo di uno smart contract determina cosa fa il contratto. Uno smart contract esegue ciò che dice il suo codice, il che può differire da ciò che il suo autore intendeva. Il codice presente all’indirizzo di uno smart contract non cambia dopo che il contratto è stato distribuito, ma un contratto può essere progettato in modo che il comportamento eseguito venga sostituito.

Uno smart contract può comunque essere progettato in modo che il suo comportamento possa essere sostituito. Un contratto può memorizzare l’indirizzo di un secondo contratto e inoltrargli le chiamate. Se il primo contratto è stato progettato per consentire la modifica dell’indirizzo memorizzato, il comportamento eseguito può cambiare pur rimanendo invariato l’indirizzo del primo contratto. Un contratto progettato in questo modo può anche stabilire quali account possono modificare l’indirizzo a cui inoltra le chiamate.

Qual è l’Equivalente su Bitcoin di uno Smart Contract?

Bitcoin, una rete di criptovaluta la cui moneta è BTC, ha un equivalente negli script. Uno script è una regola, scritta nel linguaggio di script di Bitcoin, che deve essere soddisfatta prima che un importo di BTC possa essere spostato. A partire da ottobre 2026, la documentazione di Bitcoin descrive il proprio linguaggio di script come deliberatamente limitato. BTCFi, abbreviazione di Bitcoin-native finance, è un’etichetta che varie parti utilizzano per indicare l’attività finanziaria costruita attorno al BTC, inclusi smart contract e altre soluzioni.

Cos’è una Revisione del Codice di uno Smart Contract?

Una revisione del codice di uno smart contract è un controllo del codice del contratto effettuato da persone diverse dal suo autore, le quali leggono il codice cercando errori. Un audit è un modo per effettuare una revisione del codice. Una revisione può non individuare errori, quindi una revisione non dimostra che il codice di un contratto sia privo di errori.

Quali Sono i Limiti di uno Smart Contract?

Senza un oracolo, uno smart contract funziona solo con i dati presenti sulla blockchain su cui viene eseguito. Un oracolo è un servizio che invia dati esterni a un contratto. I dati esterni sono dati non archiviati sulla blockchain del contratto, come una data esterna o un risultato esterno.

Un errore nel codice di uno smart contract distribuito può rimanere tale, a meno che il contratto non sia stato progettato in modo che il suo comportamento possa essere sostituito.

27 novembre 2025

Notizie GoMining

Potresti essere interessato a: