Definizione
- Contratto tradizionale: Accordo legalmente vincolante che riconosce e disciplina i diritti e i doveri delle parti del contratto
- Smart Contract: Trasposizione in codice di un contratto, mediante funzioni if/then incorporate in software o protocolli informatici, per verificare in automatico l’avverarsi di determinate condizioni e di autoeseguire azioni quando le condizioni sono raggiunte e verificate
- Deterministico: Stessi input → stessi output
- Garantisce alle parti una assoluta certezza di giudizio oggettivo, escludendo qualsiasi forma di interpretazione
- Obiettivi: Osservabilità, verificabilità, riservatezza, applicabilità
Ciclo di Vita
- Scrittura: Sviluppatore scrive il codice in un linguaggio supportato e compila in bytecode
- Pubblicazione: Pubblica sulla piattaforma blockchain (sola lettura o modificabile)
- Interazione: Utenti invocano funzioni via transazioni
- Validazione: Nodi eseguono e validano tramite consenso
- Finalizzazione: Risultato scritto in blockchain
Concorrenza
L'esecuzione degli smart contract è sequenziale e non concorrente per garantire coerenza
Anche se deterministici, non possono essere eseguiti in parallelo perché:
- Potrebbero accedere agli stessi dati, causando conflitti
- Le modifiche di una transazione non sono definitive finché non sono nel blocco
L'ordine stabilito nel blocco è quindi essenziale, ma limita il throughput