15-03-2019 2 minuti

Come scrivere uno Smart Contract

marco_laurenti Scritto da Marco Laurenti

L'inglese bene o male lo sappiamo tutti e il termine smart molti lo associamo alla semplificazione di un procedimento, la via più intelligente da percorrere per arrivare ad un determinato obiettivo.

 

Per gli Smart Contract però non è esattamente così. La scrittura di un atto avente tali caratteristiche non è alla portata di tutti, soprattutto in Italia, dove abbiamo un'età media molto alta ed una scarsa conoscenza dei nuovi mezzi digitali.

 

In Italia in nessuna scuola di ordine e grado viene insegnato coding, cosa che invece in altri Stati, come la Lettonia, accade sin dalle scuole primarie. Sorprendente quanto intelligente, la scelta del Governo lettone di investire sul futuro 4.0 del proprio Paese.

 

Di fatto l'Italia è sì tra i primi soggetti giuridici al mondo a conferire un valore giuridico a Blockchain e Smart Contract, ma è anche una delle ultime in termini di investimenti sull'istruzione di materie ad oggi totalmente sconosciute.

 

Non tutti sanno che esistono diversi linguaggi di programmazione a seconda del settore interessato: per ottenere determinati risultati occorre utilizzare un linguaggio di programmazione piuttosto che un altro. È come se dal ceppo linguistico ‘coding' discendessero tanti dialetti o blocchi, con specificità proprie.

 

La terminologia utilizzabile è conseguente all’uso di alcune (non tutte) BC, che tramite una propria interfaccia permettono di codificare smart contract, come se fossero una lavagna.

 

L’esempio principale è la blockchain di Ethereum, dove gli Smart Contract sono codificati utilizzando il linguaggio Solidity, che consente la codifica di istruzioni di codice looping e ramificato. Un’altra famosa piattaforma per smart contract, EOS, grazie alla community crypto, sta diventando sempre più popolare grazie ai trasferimenti a costo zero ed una blockchain con la capacità di gestire milioni di transazioni al secondo. Inoltre i contratti intelligenti su EOS sono programmati utilizzando C ++, aumentando notevolmente la flessibilità di programmazione.

 

Aion invece è una piattaforma per contratti intelligenti che consente il routing di transazioni e messaggi tra diverse blockchain tramite i suoi innovativi protocolli di ‘bridging'. I linguaggi utilizzabili sono Python o Groovy, ma secondo quanto trapelato la piattaforma si baserà maggiormente su un linguaggio “proprietario” per la creazione di script di contratti intelligent.

 

NEM, un’altra blockchain per smart contract, è più scalabile di Ethereum, visto che a fronte di 15 transazioni al secondo di quest’ultima, NEM può gestirne varie centinaia al secondo. È più veloce, più sicura e fornisce un codice di programmazione più leggero con architetture semplici di contratto intelligente. È meno decentralizzata, ma promuove livelli di sicurezza più elevati ed una rapidità nella conferma delle transazionii.

 

Gli SC di Hyperledger Fabric (HLF) sono noti come ‘chaincode'. HLF è scritto in linguaggio Go, il linguaggio di programmazione open source di Google, per intenderci.

 

L'esecuzione di un contratto intelligente è deterministica e la sua accettazione di una transazione si basa esclusivamente sul contenuto della transazione. Occasionalmente,può accadere che la validità di una transazione si basi su un'informazione esterna, come un prezzo simbolico. In tal caso, è necessario un oracolo. Uno strumento di verifica che confermerà una transazione solo nel caso in cui questo sia vero.

 

Ricordiamo giustappunto,  che il fondatore della blockchain di Ethereum, Vitalik Buterin, durante una discussione su Twitter ,riguardante la regolamentazione delle criptovalute, ha deplorato l'uso del termine ''smart contracts’:

 

''Se devo essere onesto, ora mi dispiace molto che abbiamo adottato il termine ''smart contracts’'. Avrei dovuto usare un termine più noioso e tecnico. Forse qualcosa del tipo 'persistent scripts' (script permanenti/persistenti)', ha scritto Vitalik.

 

Abbiamo visto quindi che adottare contratti digitalizzati è la nuova frontiera del diritto privato ma non solo, in esso possono essere ricomprese le più svariate tipicità di quest'ultimo, conferendogli sì una connotazione smart, ma solo per chi davvero mastica i linguaggi di programmazione. Per gli altri può determinare da una parte un abbattimento dei costi di gestione, dovuti alla non necessità di avere degli archivi fisici, un risparmio in termini di carta stampata ed una semplificazione nelle operazioni di verifica dei requisiti essenziali dei contratti.