La vera storia di TheDAO: l’attacco informatico più importante nella storia delle criptovalute

In questo articolo parliamo del principale attacco hacker della storia cripto: quello da 3,6 milioni di ETH ai danni di The DAO.

Prima di parlare dell’attacco hacker cerchiamo di capire che cos’è una DAO? Un’organizzazione autonoma decentralizzata (DAO) è fondamentalmente un fondo comune decentralizzato. In una DAO hai il controllo sulle risorse raccolte dall’organizzazione in base al numero di token di governance che possiedi. Risulta quindi diversa dal controllo che il possesso di azioni offre a un investitore in una società tradizionale.

Ma un DAO differisce dai tradizionali fondi finanziari in molti modi diversi dai semplici token rispetto alle azioni. Un fondo di rischio centralizzato avrà solitamente la tradizionale struttura organizzativa gerarchica che tutti conosciamo. Ovvero avrà una persona al vertice – il CEO – incaricato di prendere decisioni esecutive, un CTO, un COO ed altri C-qualcosa-O.

The DAO Hack

In una DAO, possedere token di governance ti dà la possibilità di proporre e votare nuove regole. Queste vengono quindi eseguite automaticamente tramite i famosi smart contract. Non c’è alcun CEO che passa ordini ai dirigenti su tutta la linea, la DAO si basa solo su contratti intelligenti per svolgere il lavoro.

La maggior parte dei progetti crittografici ha intenzione di implementare questo tipo di utilità di governance nella propria tokenomics. Come le azioni rappresentano la proprietà frazionata di una società, i token rappresenteranno tale proprietà nella DAO.

Nasce l’organizzazione autonoma decentralizzata

Il concetto di DAO è stato ideato per la prima volta nel 2015 da un team chiamato Slock.it. (oggi noto come blockchains.com). Il team ha creato un contratto intelligente di crowdfunding.  L’obiettivo era raccogliere fondi per vari progetti e startup del Web 3.0. Tuttavia ha fatto un ulteriore passo avanti programmando i diritti di voto e la proprietà effettiva.

Le persone – investendo ETH in Slock.it – avrebbero ricevuto un token rappresentativo del proprio investimento iniziale. L’importo del token sarebbe stato proporzionale al proprio investimento in ETH, rispetto agli ETH totali nel fondo.

Le DAO rappresentavano una vera e propria rivoluzione alimentata da Ethereum. Tieni sempre a mente che non era possibile decentralizzare un’organizzazione in un modo che fosse globalmente accessibile, non gerarchica e interoperabile prima di Ethereum. Ora possiamo entrare nel vivo dell’attacco.

Attacco hacker a ‘The DAO’ Parte 1: Configurazione

Lanciato nel luglio 2015, Ethereum era allora una tecnologia nascente. La community stava appena iniziando a capire le infrastrutture funzionali. Quindi ETH era solo una tecnologia tutta da scoprire fino a quando team come Slock.it hanno iniziato a innovare tramite la sua programmabilità.

Lanciato poco meno di un anno dopo – a maggio 2016 – “The DAO” era un argomento estremamente caldo. Dopotutto è stato il primo fondo in assoluto veramente decentralizzato, autonomo e gestito dalla community. Le persone erano eccitate e pronte a investire.

La vendita di token ($TheDAO) è stata condotta tramite un’ICO della durata di quattro settimane. È stato semplice: era necessario depositare un po’ di ETH nello smart contract TheDAO e ottenere alcuni token $TheDAO in cambio (1 ETH = 100 TheDAO).

Con il passare dei giorni, era diventato palese che stava succedendo qualcosa che nessuno si aspettava. Il crowdsale stava attirando cifre di investimento di decine di milioni, ben oltre le aspettative:  sempre più ETH continuava ad affluire. Il flusso di investimenti è continuato fino alla fine delle quattro settimane dell’offerta iniziale di monete. In tale occasione gli investitori hanno depositato 12 milioni di Ether (ovvero $150 milioni di dollari, se ci basiamo sul valore di ETH nel giugno 2016) nello smart contract TheDAO.

Il primo smart contract di una DAO

È importante notare che lo smart contract TheDAO è stato il primo del suo genere, non testato e scritto in Solidity, il principale linguaggio di programmazione di Ethereum.

Il progetto è stato pubblicizzato al meglio e la FOMO negli investitori era ai massimi storici.

Chiariamo il concetto paragonando la situazione ad un investimento in una società tradizionale. Gli investitori stavano investendo denaro in TheDao con la speranza che i loro token TheDAO crescessero nel prezzo.

In qualità di investitore in una DAO (se possiedi un qualsiasi token ERC-20, molto probabilmente fai parte di una DAO con proposte di governance attive) puoi avanzare qualsiasi tipo di proposta. Il resto della community voterà tale proposta, ognuno in base ai token che possiede.

Una proposta di investimento potrebbe essere ad esempio: “Proposta di prestito di 100 ETH dal fondo comune della DAO a [inserire qui il progetto che vorresti finanziare], il quale restituirà 110 ETH in 6 mesi”. Una proposta di governance potrebbe assomigliare alla seguente: “Proposta per creare incentivi, al fine di incoraggiare gli utenti a diventare fornitori di liquidità su Uniswap…”.

Una bella proposta recentemente eseguita da una DAO contemporanea è stata quella di acquistare un costoso NFT, flipparlo e ridistribuire i profitti nel fondo. Di fatto è come gestire un grande fondo in modo democratico.

Il concetto di proprietà

I token delle DAO rappresentano la proprietà diretta. Questo vuol dire che accumulare grandi quantità di questi di fatto conferisce ad un utente una maggiore influenza sulle decisioni. La quota voti di un utente aumenta in modo proporzionale ai token posseduti. Il valore di un token DAO non deriva solo dall’abilità di investimento della sua community. Dipende anche da quanto sono preziose e funzionali alcune decisioni di governance per grandi e piccoli investitori.

Ancora una volta è fondamentale ricordare che prima di Ethereum non c’era modo di creare questo tipo di fondo di rischio decentralizzato accessibile a livello globale. Quindi tutto l’hype degli investitori per $TheDAO era assolutamente giustificato.

Il problema era che Ethereum e Solidity – i due blocchi fondamentali di TheDAO – erano troppo immaturi a livello tecnologico.

Su varie chat board, molti programmatori in tutto il mondo hanno sollevato preoccupazioni sulle vulnerabilità del codice nel contratto intelligente TheDAO. Il dubbio riguardava appunto possibili attacchi hacker in grado di mettere le mani sui fondi comuni. Questi avvertimenti non sono stati ascoltati abbastanza rapidamente, ed è successo il finimondo.

Attacco hacker a ‘The DAO’ Parte 2: l’exploit

Immagina di avvicinarti a un bancomat e prelevare 200 euro. Ricevi 200 euro, ma noti che il tuo saldo non è cambiato. Vai avanti e prelevi altri 200 euro… nessun cambiamento nel saldo.

Continui a prelevare cifre sempre più alte fino a quando il tuo denaro in mano è maggiore del tuo saldo totale. Solo una volta rimossa la carta, il tuo saldo finalmente si preoccupa di riportare ciò che è appena accaduto: In mano hai 120.000 euro, pur avendo solo 2.000 euro nel conto.

Tutto quello che sai è che ora hai più di 100.000 euro in contanti in mano. L’ATM continuava a prelevare dal tuo saldo originale senza aggiornare ciascuno di quei prelievi. Ogni volta che hai selezionato “Preleva 200 euro“, l’ATM controllava semplicemente sul tuo saldo ci fossero almeno 200 euro. La presenza dei 2000 euro originari ha fatto sì che tu potessi prelevarne molti di più, senza aggiornare mai a 1.800 euro. Hai appena tenuto il bancomat in un ciclo di prelevamento dai 2.000 iniziali a tempo indeterminato.

Questo è esattamente ciò che è successo nell’hacking di “The DAO”. Una vulnerabilità simile nel codice del contratto intelligente di TheDAO ha consentito a un malintenzionato di prelevare fondi al di sopra dell’allocazione a cui aveva effettivamente diritto. Questo tipo di attacco è chiamato exploit di rientro. Come nell’esempio dell’ATM sopra, l’hacker ha continuato a richiedere prelievi senza che il saldo si aggiornasse mai.

Ecco una grande spiegazione tecnica super nerd dell’exploit.

Furto da 100 ETH al secondo

I pezzi del puzzle erano tristemente nella posizione finale: il crescente hype e l’eccitazione per uno dei primi progetti fondamentali di Ethereum stavano per raggiungere l’apice. Tutto – contro ogni previsione – si era unito per un ultimo spettacolare fuoco d’artificio.

17 giugno 2016: in quello che sembrava un giorno normale – circa un mese dopo il lancio di TheDAO – all’improvviso gli ETH iniziarono ad essere rapidamente prosciugati dallo smart contract di “TheDAO” a una velocità di 100 ETH al secondo.

Grazie all’aumento dei prezzi di ETH in quel momento, il contratto conteneva un totale di $250 milioni di dollari. Questo improvviso turbine di fondi che lasciava il contratto ha ovviamente gettato nel panico la community globale di sviluppatori di Ethereum e tutte le parti interessate. Chi stava prosciugando il contratto e come poteva essere fermato?

Il clamore del crowdsale di Slock.it si è così concluso nel modo più drammatico possibile. Un progetto che avrebbe dovuto annunciare senza problemi una nuova era di ingegneria finanziaria decentralizzata aveva iniziato a perdere milioni di dollari al minuto. La vulnerabilità che era stata accennata da vari sviluppatori in tutto il mondo è diventata rapidamente realtà. Era stata scoperta e sfruttata per un ritorno personale.

Attacco hacker a ‘The DAO’ Parte 3: la battaglia

Dagor Dagorath – ovvero la “Battaglia di tutte le battaglie” di Tolkien – descrive accuratamente lo scenario che è seguito al prosciugamento dello smart contract di TheDAO da parte dell’hacker.

Molti personaggi nobili – ovvero gli stakeholder di TheDAO – sono emersi per combattere il male. I protagonisti di questa battaglia includono: Griff Green, community manager di Slock.it, Alex Van de Sander, uno sviluppatore di Ethereum e Christoph Jentzch, lead di Slock.it .

Con milioni di dollari di ETH persi minuto dopo minuto, i signori appena citati hanno affrontato un grande stress nell’elaborare un piano per risolvere la situazione. Sono stati chiamati alla guerra sviluppatori di Ethereum da tutto il mondo. Tutti hanno cercato di distogliere l’attenzione da questa questione, “temendo che le ricadute di TheDAO sarebbero state abbastanza nocive da uccidere Ethereum in modo permanente.”

Replicare l’attacco e drenare i soldi da TheDAO per fermare l’hacker sembrava l’unica cosa da fare, discussa in vari forum di messaggistica di tutto il mondo.

Fork

È stato proposto un soft fork per fare in modo che i miner non elaborassero alcuna transazione proveniente dal contratto di “TheDAO”.
In seguito è stato anche proposto un controverso hard fork: in sostanza avrebbe semplicemente spostato la custodia degli ETH attualmente nello smart contract TheDAO in un altro contratto di rifugio sicuro per proteggere i fondi.

È emerso un vero e proprio spettro di opinioni basato su due estremi politici: in un angolo, i sostenitori del “nessun intervento“, la purezza dell’immutabilità della blockchain era l’argomento principale di questa fazione.

All’angolo opposto, c’erano i sostenitori dell’intervento bruto: bisognava agire per ridurre al minimo gli effetti di questa catastrofe unica nel suo genere. Insieme a tutti gli altri punti di vista che di fatto erano “vie di mezzo”, è emersa una questione spinosa: entrambe le parti avevano punti validi.

Robin Hood Group

Nel bel mezzo del prosciugamento degli ETH, si è formato un gruppo soprannominato “Robin Hood Group” – composto dai players sopra menzionati – il quale è stato fondamentale per recuperare i fondi prima che l’hacker li prosciugasse completamente.

Il primo giorno dell’attacco, il ladro aveva rubato circa il 30% della fornitura totale nello smart contract “The DAO”. Poi si è misteriosamente fermato, concedendo all’RHG poche ore per valutare la situazione. Il secondo giorno è riemerso e ha ricominciato a prosciugare gli ETH.

Nel frattempo il Robin Hood Group stava iniziando ad utilizzare la stessa identica tecnica utilizzata dal ladro: rubare dallo smart contract utilizzando lo stesso exploit di rientro, con l’intenzione di fornire agli ETH un porto sicuro per poi tornare agli investitori originali. Questo era l’equivalente nella vita reale di rapinare una banca prima dei rapinatori e poi restituire i soldi ai cittadini che li avevano depositati in banca. C’era molta paura e angoscia da parte dei membri del gruppo: quali sarebbero state le conseguenze legali di una simile mossa?

I secondi passavano e milioni di dollari di ETH continuavano ad essere prosciugati. Il gruppo non aveva altra scelta che iniziare un contrattacco. Ha fatto quello che stava facendo il ladro: depositare dei token $TheDAO sullo smart contract TheDAO per prelevare una quantità equivalente di ETH e quindi chiamare ricorsivamente la funzione buggy per prelevare più ETH del dovuto. I 6.000.000 di token raccolti dal gruppo Robin Hood in collaborazione con gli utenti – insieme al continuo perfezionamento del bot di prelievo automatizzato creato da RHG – hanno consentito agli hacker buoni di prelevare circa $30.000 ogni 5 secondi.

La fine della battaglia

Il Robin Hood Group ha recuperato il 70% dei fondi. Lo sforzo ha contribuito a bloccare l’attaccante poiché – a causa delle regole del protocollo – i prelievi dallo smart contract di TheDAO richiedevano un periodo di attesa di circa un mese per essere cancellati. Questa regola si applicava a chiunque ritirasse fondi dallo smart contract. Il RHG si è sforzato di restituire qualsiasi $TheDAO donato ai membri della community, ma dato quanto vedremo nella Parte 4 e 5, questo non è mai diventato un problema.

Il sanguinoso Dagor Dagorath era finito. Il 70% era stato recuperato dai “bravi ragazzi” e il 30% era stato rubato. L’attacco era stato fermato, almeno temporaneamente.

Il vero sangue della battaglia è venuto fuori nei suoi effetti collaterali. Il ladro era stato fermato, ma aveva combattuto con forza e perizia. Anche se l’RHG aveva ottenuto una vittoria recuperando la maggiore quantità di ETH, il 70% di quei fondi recuperati era ancora vulnerabile ad illeciti a causa del modo in cui funzionavano i prelievi. Il ladro aveva ancora il controllo diretto su oltre il 30% dei fondi, circa 2 milioni di ETH, e sarebbe comunque stato in grado di ritirarli dopo il periodo di attesa. Probabilmente avrebbe provato a rubare anche il 70% recuperato. Questo era un problema.

Attacco hacker a ‘The DAO’, parte 4: biforcare o non biforcare – questo era il dilemma

Il malintenzionato era bloccato in attesa del periodo di ritiro. C’era bisogno di una strategia più solida prima che il periodo di attesa per il ritiro finisse. A causa di possibili attacchi denial-of-service, il soft fork non era un’opzione valida. Le uniche opzioni rimaste erano: non fare nulla o hard fork.

I sostenitori del “codice è legge” avevano ragione: in che modo un hard fork sarebbe stato diverso dalle procedure standard di una banca centrale come i “salvataggi”? L’intervento degli sviluppatori centrali nella politica monetaria di Ethereum ha preoccupato molti puristi della blockchain.

Ma anche i sostenitori dell’hard fork avevano ragione: se c’è un modo per recuperare i fondi rubati e riconsegnarli a tutte le vittime, perché non farlo?

Alla fine, dopo un controverso voto della community a cui hanno partecipato solo il 5,5% degli utenti interessati, ha vinto l’opzione hard fork.

Alla fine, la natura straordinaria della situazione ha comportato l’adozione di misure estreme e quindi il sacrificio dell’immutabilità della blockchain. Quindi: biforcare.

Attacco hacker a ‘The DAO’ Parte 5: …o non biforcare?

L’hard fork è stato eseguito senza tante cerimonie. Qualsiasi blocco estratto dopo il blocco 1.920.000 sulla chain originale non era più considerato ETH. La dimensione parallela causata dall’hard fork ha di fatto iniziato ad esistere, ed ha cancellato gli effetti della battaglia che abbiamo raccontato prima. Gli ETH che usi oggi vivono in questa dimensione parallela.

Con sorpresa di molti, gli utenti/miner hanno rianimato la “chain morta” e hanno continuato a utilizzarla oltre il blocco numero 1.920.000. La blockchain originale, quella che contiene le conseguenze dell’hack e che l’hacker controlla direttamente tramite una grossa porzione di fondi, divenne così nota come Ethereum Classic ($ETC). La nuova blockchain – creata dall’hard fork per preservare gli utenti – è quella che oggi conosciamo ed utilizziamo tutti: la blockchain di Ethereum.

ETC può essere sostanzialmente considerato una versione “code-is-law” di Ethereum. La loro Dichiarazione di Indipendenza afferma:

Crediamo:

  • in una blockchain decentralizzata, resistente alla censura e senza autorizzazioni.
  • nella visione originale di Ethereum come un computer mondiale che non può essere spento, che esegue contratti intelligenti irreversibili.
  • in un sistema in cui i fork sono possibili solo quando si correggono vulnerabilità, bug a livello di protocollo o si forniscono aggiornamenti delle funzionalità.
  • nell’intento originale di costruire e mantenere una piattaforma di sviluppo resistente alla censura, trustless e immutabile.

Conclusione

L’effetto dannoso di questa serie di eventi è innegabile. L’hack di TheDAO ha lasciato la community di Ethereum divisa, e molte parti interessate si sono riversate su altri progetti.

Oggi – sei anni dopo la battaglia – nell’ecosistema Ethereum sono contenuti miliardi di dollari. Come evidenziato da DeFi Pulse, i primi tre progetti da soli — Maker, Uniswap e AAVE — ora detengono ~ $20 miliardi di dollari, nel momento in cui scrivo.

Vale la pena chiedersi se questa catastrofe precoce sia stata effettivamente una benedizione sotto mentite spoglie per Ethereum.

Ingegneri e sviluppatori, fondamentali per l’innovazione e la costruzione, hanno appreso i rischi reali della progettazione e dell’implementazione di contratti intelligenti non sicuri o non testati. Le parti interessate e gli investitori, fondamentali per mantenere lo spazio rigoglioso con flussi di cassa e gestione dei rischi, hanno appreso gli effetti sanguinosi dell’investimento in contratti intelligenti non sicuri o non testati.

Si potrebbe ben dire che questi primi eventi nefasti hanno avuto l’effetto di premiare sempre la prudenza e lo studio. Quindi sono stati essenziali per creare un ecosistema sano e sostenibile a lungo termine.

Impostazioni privacy