AUTOMATIZZARE I PAGAMENTI CON UNO SMART CONTRACT

Gli smart contract e le implicazioni derivanti dal loro utilizzo: un dialogo necessario tra mondo giuridico ed informatico

Che uno smart contract sia un insieme di righe di codice informatico non è più un segreto. Blockchain, DeFi, Nft sono ormai termini che fanno parte della quotidianità così come è diventato comune avere un wallet digitale e possedere criptovalute. In questo contesto, comprendere le implicazioni derivanti dall’utilizzo di queste tecnologie diviene sempre più importante e imprescindibile studiare il funzionamento tecnico di queste soluzioni legali; non si tratta di diventare programmatori, ma di conoscere i rudimenti che permettano di instaurare un dialogo tra mondo giuridico e informatico.

In questo articolo si riportano le considerazioni emerse dall’analisi del funzionamento di uno smart contract creato con la finalità di verificare la complessità e le criticità dell’implementazione della funzione di pagamento automatizzato. Tutto il procedimento di creazione ed esecuzione è descritto nel dettaglio in un apposito articolo di approfondimento, raggiungibile cliccando il seguente link: legaltech-smartcontract.it

Indice degli argomenti:

  • Descrizione del caso e dello smart contract
  • Smart contract o Smart legal contract
  • Profili di responsabilità e ulteriori aspetti critici
  • Conclusioni

Descrizione del caso e dello smart contract

Per creare uno smart contract si utilizza il linguaggio di programmazione Solidity ed in seguito se ne verifica il funzionamento su blockchain Ethereum (in ambiente JavaScript VM). Si ipotizzi l’esistenza di un contratto di prestazione d’opera (ex art. 2222 c.c.), tra Tizio (committente) e Caio (prestatore d’opera). Esemplificativamente, si stabilisca che le parti decidano che il versamento del corrispettivo dovuto da Tizio, ossia l’ammontare di 9 Ether, sia automatizzato tramite smart contract e versato a Caio in 3 rate. Con questi passaggi in mente, si passa alla creazione del codice informatico e se ne analizza il comportamento.

Il codice sorgente è disponibile al seguente link: GitHub.

Uno degli appellativi che da sempre accompagna i termini blockchain e smart contract è il concetto di “trustless. L’esito conseguito non delude le aspettative attraverso un meccanismo che garantisce a Caio l’adempimento della prestazione. Ma com’è possibile raggiunge questo risultato? Tizio versa allo smart contract l’ammontare di 9 ether che il software trasferisce, a sua volta, a Caio in una soluzione rateale allo scadere dei termini stabiliti. Vi è, inoltre, un meccanismo che tutela Tizio dall’inadempimento di Caio, rendendo possibile la restituzione dell’importo versato in precedenza allo smart contract. La ragione che rende necessario il trasferimento iniziale dell’importo da parte del committente verso lo smart contract è dovuta al funzionamento tecnico dello strumento: non è possibile programmare il codice affinché possa compiere un prelievo forzoso dagli accounts delle parti.

Smart contract o Smart legal contract

Le parti dovranno decidere se l’adozione dello strumento sia finalizzata alla creazione di un semplice smart contract informatico o uno smart legal contract. Nella prima ipotesi il codice integrerà quanto necessario a conseguire il risultato voluto, non avrà natura di contratto ma le parti dovranno avere cura di prevedere all’interno del contratto tradizionale specifiche regole volte a disciplinarne il funzionamento e le responsabilità ad esso associate. Diversamente, la seconda ipotesi ossia lo smart legal contract richiede che il codice informatico rispetti i canoni stabiliti dall’articolo 8 ter della legge n.12/2019 in coordinazione con quanto previsto dalle disposizioni del Codice civile in materia di contratto.

Seppur dal punto di vista tecnico sia possibile, attraverso variabili string, inserire elementi essenziali quali oggetto e causa del contratto, particolari criticità non trovano ancora soluzione in tema di identificazione dei soggetti e di apposizione delle sottoscrizioni. Il primo problema si presenta come una diretta conseguenza dell’assenza di formalità nel processo per la creazione di un wallet Ethereum, non comportando questo alcun accertamento dell’identità del proprietario. In merito alla sottoscrizione, invece, solo l’emanazione delle linee guida dell’AgID potrà porre fine alla situazione di incertezza giacché, ad oggi, a poco rileva che la tecnologia utilizzata nel protocollo blockchain sia similare a quella utilizzata per la firma digitale (basandosi anch’essa sull’utilizzo delle chiavi asimmetriche).

Profili di responsabilità e ulteriori aspetti critici

L’adozione dello smart contract come semplice mezzo per automatizzare la prestazione di pagamento comporta il sorgere di una pluralità di interrogativi relativi alla responsabilità.

  • A chi attribuire la responsabilità dell’eventuale malfunzionamento dello smart contract?
  • Ad esempio, ipotizzando che a causa di un difetto del codice l’ammontare versato allo smart contract resti bloccato senza possibilità alcuna di riottenerlo, Tizio potrà essere liberato dall’obbligazione o dovrà essere considerato debitore dell’intero ammontare?
  • Nel caso in cui un malfunzionamento dello script off-chain (all’esterno della blockchain) dovesse essere causa del ritardo nell’adempimento della prestazione, chi deve essere ritenuto responsabile?

Seppur la prestazione al versamento di ether sia l’obbligazione che grava sul debitore, la scelta di utilizzare lo smart contract è il risultato dell’accordo tra le parti ed entrambe ne traggono beneficio. Pertanto, solo attraverso la creazione di apposita documentazione contente il codice sorgente, gli address delle parti, le modalità d’uso dello strumento e gli adempimenti off-chain sarà possibile determinare il soggetto sul quale grava la responsabilità della singola operazione.

Si prenda ad esempio la sola fase iniziale del deploy del contratto: contrariamente a quanto suggerisce l’espressione impropria che spesso viene utilizzata “le parti pubblicano il contratto su blockchain”, questo non trova corrispondenza dal punto di vista tecnico. Invero, l’operazione di pubblicazione del contratto può infatti provenire solamente da un singolo address, comportando l’impossibilità di dar luogo ad una pubblicazione congiunta. Se due soggetti volessero pubblicare il medesimo codice informatico di fatto si assisterebbe alla creazione di due diversi contratti, con diverse chiavi pubbliche, ma con il medesimo contenuto. A fronte di ciò, si rende quindi necessario che venga nominato, all’interno del contratto tradizionale, il soggetto incaricato di effettuare il deploy e le modalità dell’operazione.

Ulteriori quesiti sorgono dall’utilizzo di uno smart contract come strumento di esecuzione della prestazione. Alcuni dipendono dall’attuale stato di incertezza normativa, altri dalla conoscenza del funzionamento del codice informatico. Per quanto riguarda i primi, ad esempio, sarà necessario interrogarsi sulla natura dell’obbligazione. Si ritiene che debba essere esclusa la natura di prestazione pecuniaria (vista la natura di criptovaluta e non di moneta avente corso legale) anche qualora si decidesse di utilizzare una stable coin. Questo tipo di interrogativi sono destinati a trovare una chiara definizione attraverso futuri interventi normativi. Maggiori incertezze derivano, invece, dal valore legale che potrebbe essere attribuito agli effetti derivanti sia dal contenuto del codice informatico che dalle caratteristiche proprie della tecnologia in parola. Di seguito si propone, a titolo esemplificativo, uno degli interrogativi emersi dall’analisi del caso sopra descritto. L’articolo 1184 del Codice civile stabilisce:

Se per l’adempimento è fissato un termine, questo si presume a favore del debitore, qualora non risulti stabilito a favore del creditore o di entrambi.

Questa disposizione implica che, se nulla è stabilito dalle parti, Tizio (debitore) potrebbe adempiere anche prima del termine fissato. Tuttavia, il codice informatico così come creato impedisce il compimento di questa operazione. È necessario interrogarsi in merito a quale valore debba essere attribuito a tale limite, rappresenta l’indicazione di una specifica scelta delle parti o un effetto indesiderato prodotto dal codice informatico? La problematica è di particolare rilievo considerando che il codice informatico è il risultato del processo creativo svolto dallo sviluppatore. Questo comporta che uno smart contract realizzato da un diverso programmatore per conseguire il medesimo risultato potrebbe, in realtà, nascondere implicazioni assai differenti.

Conclusioni

Lo smart contract soddisfa le aspettative legate all’utilizzo di tale tecnologia e, allo stesso tempo, rende necessarie una serie di considerazioni. Sicuramente gioca un ruolo di rilievo l’alto livello di personalizzazione raggiungibile, alle parti è infatti concessa la possibilità di inserire numerose condizioni e clausole penali dagli effetti automatici. L’utilizzo del protocollo blockchain permette inoltre la c.d. notarizzazione di qualsiasi operazione salvandone un’indelebile traccia. Indubbiamente, la garanzia dell’adempimento ha, altresì, un peso rilevante nella scelta dello strumento in parola ma questo vantaggio viene bilanciato da un dato oggettivo: una profonda conoscenza tecnica accompagnata da professionalità ed esperienza sono essenziali per la predisposizione di uno smart contract privo di malfunzionamenti e un adeguato sistema off-chain per il controllo dell’automaticità della prestazione.

Sarà quindi opportuno effettuare un’analisi preventiva costi-benefici per comprendere se lo strumento possa essere adeguato al caso specifico tenendo in considerazione la natura delle prestazioni. La creazione di uno smart contract risulterà tanto più vantaggiosa quanto maggiore sarà il numero delle variabili on-chain e il numero di soggetti che potrà farne utilizzo. Al contrario, ai fini di gestire prestazioni off-chain da compiersi una tantum avrà un basso livello di convenienza. Più realisticamente, è ipotizzabile che le parti decidano di affidarsi ad un soggetto terzo il quale, in cambio di un corrispettivo, garantisce il corretto funzionamento dello smart contract e sopporti il rischio di malfunzionamento.

In conclusione, seppur le criticità non mancano, le potenzialità dello strumento in questione sono elevate; la continua sperimentazione nonché il dialogo tra professionisti del mondo giuridico ed informatico giocheranno sicuramente un ruolo di rilievo.

Questo contributo è stato redatto da un articolista di Legaltech Italia, partner di Dirittoconsenso.it.

Bibliografia

Bellomia, V. (2020). Il contratto intelligente: questioni di diritto civile, Judicium.

Belloni, D., Vasoli, F. (2020). Blockchain, smart contract e decreto semplificazioni, Riv. Cammino Diritto, ISSN 2532-9871 Fasc. 04/2020.

Gabrielli, E. (2019). La nozione di contratto e la sua funzione. Appunti sulla prospettiva di una nuova definizione di contratto. Giustizia civile, (2), 299-316.

Giaccaglia, M. (2020). Gli Smart Contracts. Vecchi e nuovi(?) paradigmi contrattuali nella prospettiva della protezione dei consumatori, Diritto Mercato Tecnologia. www.dimt.it

Finocchiaro, G., Bomprezzi C. (2020). A legal analysis of the use of blockchain technology for the formation of smart legal contracts, Medialaws.eu.

Labella, E. (2020). Gli smart contract: riflessioni sulle prestazioni “autoesecutive” nel sistema di blockchain”, Medialaws.eu.

Manente, M., in “Blockchain e smart contract sono la risposta, ma a quale domanda?”, Biblioteca Online della Fondazione Italiana del Notariato.

Manente, M., in “Deposito del prezzo e criptovalute. Come entrano i bitcoin nel conto dedicato?”, Biblioteca Online della Fondazione Italiana del Notariato.

Pernice, C. (2020). I modelli di valuta virtuale: sistematica e definizione, Medialaws.eu.

Rauci T. (2020). Blockchain e Bitcoin: aspetti definitori ed opportunità dell’economia digitale, Ius in Itinere, www.iusinitinere.it.

Solidity Guide: https://docs.soliditylang.org/en/latest/

Note

Codice sorgente dello smart contract scaricabile all’indirizzo: https://github.com/MartinoTruppini/LegalTech-SmartContract.it

Procedura integrale per la creazione dello smart contract disponibile all’indirizzo: https://www.legaltech-smartcontract.it/automatizzare-i-pagamenti-con-uno-smart-contract/

Articoli suggeriti a completamento della lettura:


Questo contributo è stato redatto da un articolista di Legaltech Italia, partner di Dirittoconsenso.it.

UNISCITI A NOI!
Se vuoi dirci la tua e rimanere aggiornato sul mondo legaltech unisciti alla community Telegram! 
Clicca qui per partecipare!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *