Gli “smart contract”. Contratti o software?

Federico Panisi
Tech Mood
Published in
5 min readDec 20, 2018

Recentemente Vlad Zamfir, ricercatore presso la Ethereum Foundation — l’organizzazione no-profit a supporto della piattaforma blockchain Ethereum — replicava al tweet con cui Vitalik Buterin esprimeva il suo rimpianto per aver popolarizzato il termine “smart contract” evidenziando che, nonostante la confusione generata, l’utilizzo di questa terminologia è stata un’occasione di apprendimento per tutti. Ciò è sicuramente vero e, in effetti, proprio la scelta della parola “contract” ha indotto a interrogarsi se e in che misura il codice possa regolare le relazioni sociali al pari di uno degli istituti giuridici per eccellenza: il contratto.

Innanzitutto, che cosa si intende per “smart contract”? Secondo l’ideatore di questa terminologia — Nick Szabo — lo “smart contract” è semplicemente un protocollo informatico in grado di eseguire determinati termini contrattuali. Alla base dell’elaborazione del concetto di “smart contract” vi è, pertanto, l’idea di includere i termini contrattuali all’interno di una macchina automatizzata che aumenti il costo di inadempimento al punto da non convenire più o, se desiderabile, che lo poibisca del tutto. Come lo stesso Szabo evidenziava, da questo punto di vista l’idea di “smart contract” può considerarsi più antica di Internet e di ogni protocollo o applicazione che dalla sua invenzione sono scaturiti. Infatti, senza dover ripercorrere a ritroso la storia fino (probabilmente) al matematico greco Erone di Alessandria [1], i distributori automatici che si sono largamente diffusi nell’ultimo secolo sono un chiaro esempio di “smart contract”. Se i primi distributori si caratterizzavano per includere sistemi meccanico-idraulici sofisticati ma dalle funzionalità limitate, lo sviluppo tecnologico ha permesso l’implementazione anche di sistemi elettronico-informatici in grado di aumentare le funzionalità e l’offerta di prodotti o servizi. Così, sulla base degli input ricevuti, i distributori automatici eseguono operazioni secondo logiche di questo tipo: se è inserito il pagamento (P) e l’item (I) selezionato è disponibile, allora: (1) se P ≥ Iprezzo, distribuisci I; (2) se P > Iprezzo, distribuisci resto; (3) altrimenti non eseguire e attendi.

Con riguardo alla blockchain, gli “smart contract” sono software rappresentati sul registro distribuito e lì “immutabilmente” conservati in forza delle caratteristiche che contraddistinguono il più ampio protocollo crittografico in cui sono inclusi. Gli “smart contract” hanno un proprio account e, anche in questo caso, eseguono operazioni secondo logiche predefinite, del tipo “se/quando x, allora y”. Gli “smart contract” agiscono autonomamente all’occorrenza di un input d’avvio, compiendo una transazione (un cambio di stato dell’informazione presente) tra due o più nodi di rete. In particolare, l’input (una registrazione contabile) determina l’esecuzione del programma che, così, restituisce un output che, al pari di ogni altra transazione, è inserita all’interno del relativo blocco, da validarsi mediante mining. Come gli input possono essere forniti dai nodi che si servono del programma, così anche un soggetto terzo (c.d. oracolo) può comunicare al programma l’informazione necessaria per il suo avvio. Ad esempio, se due parti si accordassero per coprire il rischio di credito di una delle due attraverso un Credit Default Swap (CDS), la International Swaps and Derivatives Association (ISDA) comunicherebbe il credit default allo “smart contract” affinchè esso autonomamente esegua il rimborso della parte creditrice.

Photo by Christopher Robin Ebbinghaus on Unsplash

Se due soggetti possono concludere smart-CDS, lo “smart contract” è solo il software per l’esecuzione del contratto o è il contratto stesso? Come noto, il contratto è «l’accordo tra due o più parti per costituire, regolare o estinguere tra loro un rapporto giuridico patrimoniale» (1321 c.c.). Così, fintantochè il rapporto giuridico patrimoniale è rappresentato digitalmente, non sembra sussistano ragioni per escludere che lo “smart contract” sia anche contratto, a condizione, ovviamente, che le parti rispettino le regole che la legge impone in questa materia. Da questo punto di vista, il dubbio circa la validità di un contratto rappresentato in linguaggio formale anziché naturale si risolve facilmente nel momento in cui si tiene presente che, «quando la forma non è prescritta […] sotto pena di nullità» (1325 c.c.), le parti possono concludere il contratto grazie a qualsiasi modalità di espressione del volere, rappresentazione informatica inclusa. A maggior ragione, non sembra che il carattere distribuito del registro conservativo la rappresentazione negoziale sia un limite a questa libertà. Pertanto, nulla esclude che le parti giungano ad un accordo attraverso uno scambio di linee di codice atte a manifestare, nell’ipotesi più semplice, proposta e accettazione.

Photo by rawpixel on Unsplash

Ciò introduce, piuttosto, un secondo problema e che, diversamente, attiene al c.d. rischio linguistico, cioè che le dichiarazioni contrattuali vengano rivolte in una lingua che i destinatari non conoscono o possono fraintendere. Pertanto, qualora un soggetto intenzionato a concludere uno “smart contract” rivolga la propria proposta e l’oblato accettasse in un linguaggio di programmazione comunque ignoto al proponente, il contratto non potrà considerarsi giuridicamente valido. Così, se da un lato può immaginarsi che contratti “smart” vengano conclusi nei rapporti contrattuali business-to-business (B2B), più difficile è pensare che questa prassi possa diffondersi anche nei rapporti business-to-consumer (B2C) e, soprattutto, consumer-to-consumer (C2C), dubitandosi che la conoscenza dei linguaggi di programmazione si diffonda con tale grado di capillarià. Pronti ad essere smentiti, in ogni caso. Intanto, più ragionevole è pensare che gli “smart contract” trovino maggiore successo come applicazioni fruibili dall’utenza previa licenza d’uso, cioè “as a service”. In questo caso, però, lo “smart contract” perde la doppia natura di contratto-software per tornare ad essere come Szabo lo ha descritto: un software, particolare certo, perché in grado di eseguire determinati termini contrattuali, ma pur sempre altra cosa rispetto al contratto.

[1] Erone di Alessandria è stato un matematico, ingegnere e inventore della Grecia antica. A lui sembra doversi attribuire l’invenzione del primo marchingegno per la dispensa automatica di acqua sacra (o vino) presso i templi egiziani. Vedi: https://www.wired.it/attualita/tech/2013/12/16/primo-distributore-automatico/

--

--