Bitcoin Bitcoin 3.79% $43903.29
3.79%
36945.28 BTC $826354565120.00

Su Remix.ethereum.org puoi debuggare gli smart contract su Ethereum

Su Remix.ethereum.org puoi debuggare gli smart contract su Ethereum

04/08/2021 0 By Redazione

Oggi, in molti campi, si sente parlare di “smart contract”. La traduzione letterale sarebbe “contratti intelligenti” che non rende bene l’idea, specie per chi di informatica mastica poco. Più che un vero e proprio contratto con tutte le sue clausole, lo smart contract può essere definito come un protocollo informatico che ha lo scopo di verificare, facilitare o imporre il rispetto di un accordo consentendo la parziale o la totale esclusione di una delle clausole contrattuali.  In poche parole, e semplificando al massimo, possiamo dire che il tutto potrebbe essere tradotto nella classica funzione, presente in tutti i linguaggi di programmazione, “if, then, else”: se (if) succede un evento allora (then) compi una certa azione altrimenti (else) fai un’altra azione. Se scorriamo una qualsiasi polizza assicurativa di clausole ne troveremo decine, tutte che escludono o includono determinati tipi di rimborsi. Ma facciamo attenzione: non sempre si può ricondurre un accordo fra le parti (un contratto tradizionale) agli smart contract.

Smart Contract, Blockchain e Ethereum

Naturalmente, per poter essere utilizzati nel mondo assicurativo, dei trasporti e della finanza gli smart contract devono rispondere a requisiti di trasparenza, sicurezza e solidità degli automatismi. Tutte caratteristiche che si trovano oggi nella struttura della blockchain che ha consentito lo sviluppo del concetto già espresso negli anni 90. Anche se, come visto prima, uno smart contract potrebbe, teoricamente, essere una banale programma informatico, un pezzo di codice che “gira” sulla blockchain per sua natura possiede i prerequisiti di funzionamento traspare e facilmente verificabile. La piattaforma ideale è stata identificata in Ethereum, la cui blockchain è aperta e pubblica e non necessita di permessi particolari.  L’unico problema potrebbe essere nel fatto che dalla blockchain non è possibile accedere a database esterni che contengono le informazioni per la validazione delle clausole. Per risolvere questo aspetto si ricorre alle API (Application Programming Interface) che trasferiscono, a richiesta, l’informazione allo smart contract. Senza entrare in dettagli tecnici l’accordo fra le parti viene scomposto in smart contract ognuno dei quali viene verificato e inserito nella blockchain (di solito Ethereum) che, dopo una serie di controllo lo inserisce in un blocco che viene validato dai vari miner che operano sulla piattaforma. Una volta validato (la velocità dipende dal compenso pattuito) il blocco viene aggiunto alla catena che non può essere modificata ed è resa disponibile su tutti i nodi di Ethereum. Al verificarsi, sul database esterno, della condizione prevista l’applicazione passa l’informazione allo smart contract che esegue l’azione richiesta.

Remix e il debug degli smart contract

Secondo le Leggi di Murphy applicate alla programmazione “C’è sempre un altro bug”. Quest’evento deve essere limitato al massimo nel caso degli smart contract per le implicazioni economiche che un errore potrebbe comportare. Fortunatamente esiste un tool, Remix IDE, che non solo consente di scrivere i programmi per gli smart contract in un’interfaccia grafica con uno strumento per eseguire il debug a caccia degli errori prima del rilascio e per correggerli se dovessero verificarsi. Senza entrare in dettagli tecnici ricordiamo che gli errori più comuni errori che possono verificarsi quando si scrive un qualsiasi programma sono tre: gli errori di sintassi, facili da correggere e di solito segnalati immediatamente dall’applicazione con la quale si scrive il programma o dal compilatore; gli errori di run-time, che si verificano con il programma in esecuzione e sono più difficili da scovare. Una divisione per zero, una variabile più grande di quanto previsto dal programmatore possono bloccare l’esecuzione del programma. Se i primi due sono identificabili bloccando la compilazione o l’esecuzione dello smart contract, gli errori logici che non bloccano l’esecuzione dello script ma producono un risultato inaspettato sono i più insidiosi.  L’esecuzione utilizzando il debugger Remix consente di effettuare test in tutte le condizioni immaginabili e correggere opportunamente il codice.