Sono certo che avrai sentito parlare di Smart Contract, che stanno assumendo sempre più importanza con l’avvento di criptovalute come Ethereum, Cardano o NEO.
Gli Smart Contract ti consentono di scambiare denaro, asset, proprietà e molte altre cose in modo del tutto tracciabile e trasparente, senza alcun bisogno di intermediari (notai per esempio).
Gli Smart Contract sono un software programmato secondo le condizioni del contratto, che ne garantisce i termini e li fa rispettare. Non solo, al verificarsi di certe condizioni contrattuali, il software può avviare transazioni ad una delle parti chiamate in causa oppure a una terza parte.
E tutto questo procedimento viene garantito dalla sicurezza della blockchain!
Questo garantisce maggiore sicurezza a costi irrisori. Immagina di voler fondare una tua società e di voler distribuire le quote o azioni ai soci. Potrai farlo in pochi secondi con qualche riga di codice, e ti costerebbe soltanto pochi centesimi!
Ecco un video (in inglese) che ti spiega più nel dettaglio come funzionano gli Smart Contract:
Ma quali solo le possibili applicazioni degli Smart Contract?
Con gli Smart Contract, non solo potrai costituire la tua società, creare nuove criptovalute, creare contratti di lavoro per gestire i rapporti con il personale, contratti con i tuoi clienti e fornitori, contratti immobiliari, ecc…
Potenzialmente le stesse Elezioni potrebbero essere basate sugli smart contract, anche se i singoli voti dovrebbero essere crittografati per garantire l’anonimato.
Ecco un esempio di Smart Contract. Si tratta di parte del codice che ho scritto per gestire le partecipazioni ad un fondo che ho creato con degli amici dove investiamo in criptovalute. Puoi leggere l’articolo dove ti spiego di crearlo: Come ho creato la mia Criptovaluta.
Ecco il codice:
pragma solidity ^0.4.16; contract NomeCripto { /* La lista di tutti i saldi di tutti i wallet che utilizzano la criptovaluta */ mapping (address => uint256) public balanceOf; /* Inizializzo il contratto e mi assegno tutti i coin creati */ function NomeCripto( uint256 initialSupply ) { balanceOf[msg.sender] = initialSupply; // Mi assegno tutti i coin creati } /* Invio i coin */ function transfer(address _to, uint256 _value) { require(balanceOf[msg.sender] >= _value); // Controllo che il mittente ne abbia abbastanza balanceOf[msg.sender] -= _value; // Rimuovo i coin dal mittente balanceOf[_to] += _value; // ... e gli aggiungo al destinatario } }
E tu cosa ne pensi? Mi piacerebbe, come sempre, avere una tua opinione in merito agli articoli che scrivo. Che te ne pare degli Smart Contract? Credi che potranno modificare la nostra vita di tutti i giorni?