Vai al contenuto
cryptomante.com

cryptomante › Guide

Guida · livello 2 · Le famiglie

Ethereum e i contratti intelligenti

Che cos'è un contratto intelligente e perché il nome inganna, come si calcola il gas, che cosa ha cambiato il passaggio alla prova di partecipazione del settembre 2022 e che cosa succede, con due casi documentati, quando il codice ha un difetto.

Conviene aver letto prima: Che cos'è una criptovaluta, detto senza gergo · Che cos'è una blockchain, e perché registro è la parola giusta

Chi arriva da Bitcoin si aspetta in genere di trovare in Ethereum la stessa cosa fatta meglio, e invece ci si trova davanti a una macchina con un altro scopo: non un registro che tiene il conto di chi ha che cosa, ma un registro che esegue programmi e del risultato di quei programmi tiene il conto, ed è una differenza che cambia tutto, comprese le cose che vanno storte, e perciò la prendiamo dal principio.

«Contratto intelligente» è la traduzione infelice di un termine già infelice, perché non c'è nessun contratto e non c'è niente di intelligente. La documentazione del progetto, se la leggiamo invece di fidarci dei riassunti, lo dice con una sobrietà che ci piace: «A "smart contract" is simply a program that runs on the Ethereum blockchain», un contratto intelligente è semplicemente un programma che gira sulla blockchain di Ethereum. La metafora che la stessa pagina propone è quella del distributore automatico: si infila la moneta giusta e la macchina consegna, senza che nessuno, dietro, decida.

Due proprietà, dunque, vanno tenute insieme, perché da sole spiegano metà di quello che succede in questo settore. La prima: «Anyone can write a smart contract and deploy it to the network», chiunque può scriverne uno e metterlo in rete, senza chiedere permesso e senza che nessuno gli controlli il codice. La seconda: «Smart contracts cannot be deleted by default, and interactions with them are irreversible», non si cancellano e le interazioni sono irreversibili. Messe in fila, come le mettiamo noi, ci dicono una cosa sola: un programma scritto male resta dov'è e continua ovviamente a funzionare male, e nessuno lo spegne.

Per farlo funzionare, comunque, serve il gas, ed è la cosa su cui si fa più confusione. Il gas non è una moneta: è l'unità con cui si misura «the amount of computational effort required to execute specific operations», la quantità di lavoro di calcolo che un'operazione richiede. Un trasferimento semplice di ether ne consuma 21.000, un'interazione con un contratto molto di più, e quello che si paga è il prodotto fra il gas consumato e la somma di due prezzi: una tariffa base, che la rete calcola da sé e che sale o scende al massimo del 12,5 per cento a blocco secondo quanto era pieno il blocco precedente, e una mancia per chi ordina le operazioni.

La tariffa base, peraltro, non finisce a nessuno, perché viene «burned», bruciata, cioè sottratta alla circolazione. Quanto costi tutto questo lo possiamo chiedere direttamente a un nodo, e infatti il 30 ottobre 2026, interrogandone uno pubblico, ci siamo trovati un prezzo del gas di 0,198 gwei, che su 21.000 unità fa circa un centesimo di dollaro per un trasferimento; e certo quella cifra vale per quel giorno e per quell'ora, perché una regola che aumenta la tariffa del 12,5 per cento per ogni blocco pieno basta a moltiplicarla per dieci in venti blocchi, vale a dire in meno di cinque minuti.

Il passaggio alla prova di partecipazione, che tutti chiamano the Merge, è avvenuto il 15 settembre 2022, e da allora i blocchi non li propone più chi calcola, ma chi ha vincolato ether a garanzia; il tempo è diviso in intervalli di dodici secondi raccolti in gruppi di trentadue. Il risparmio energetico dichiarato è di circa il 99,95 per cento, e su quel numero la discussione è legittima; su un altro punto, invece, non ce n'è, perché la pagina ufficiale lo mette per iscritto: «The Merge was a change of consensus mechanism, not an expansion of network capacity», e cioè, se lo diciamo in italiano, che non serviva ad abbassare le commissioni e non le ha abbassate.

Che cosa vada storto quando il codice ha un difetto lo racconta meglio di ogni spiegazione il caso del DAO. Fra il 30 aprile e il 28 maggio 2016 quel contratto raccolse circa 12 milioni di ether, che allora valevano circa 150 milioni di dollari; il 17 giugno qualcuno — nei documenti della SEC «an unknown individual or group» — ne dirottò circa 3,6 milioni, un terzo del totale, sfruttando una chiamata ricorsiva alla funzione di separazione. La nota pubblicata lo stesso giorno dalla fondazione vale da sola una guida intera — «This is an issue that affects the DAO specifically; Ethereum itself is perfectly safe» — e ci risparmia la spiegazione, perché il difetto, appunto, non stava nella rete, ma in un programma scritto sopra.

Poi venne la parte scomoda, quella di cui si parla meno: il 20 luglio 2016 la maggioranza della rete adottò una modifica del protocollo che spostò i fondi, compresi quelli finiti nelle mani di chi li aveva presi, su un indirizzo di recupero, e l'irreversibilità, quando la cifra è grossa, si rivela dunque una proprietà sociale più che matematica. L'altra faccia la vediamo il 6 novembre 2017: un contratto-libreria dei portafogli multifirma di Parity, rimasto senza proprietario perché nessuno lo aveva inizializzato, fu appropriato e poi distrutto da chi se ne accorse; il postmortem dell'azienda parla di «587 wallets holding a total amount of 513,774.16 Ether», e quelli non li ha recuperati nessuna votazione.

Che cosa ci portiamo via, tuttavia, da questa doppia storia? Che su Ethereum si costruiscono cose che altrove non si costruiscono, e che il prezzo di quella libertà è un rischio di tipo nuovo: non il crollo di un prezzo, ma una riga sbagliata in un programma che nessuno è obbligato a far controllare. Il resto sta nelle altre guide: che cos'è una criptovaluta, come funziona il registro, e i segnali che del resto ci insospettiscono quando un contratto promette rendimenti, raccolti nelle bandiere rosse e nel modo di leggere un white paper.

Questa guida spiega come funziona una cosa: non dice che cosa comprare, che cosa vendere o che cosa farà il prezzo di qualcosa, e non è una raccomandazione di investimento. Se ci trovi un errore, scrivici a cryptomante@atomicmail.io: lo correggiamo e lo scriviamo nelle correzioni.