Una possibile strategia di attacco alla rete ethereum.
By gbianchi bitcointalk.org
questo documento nasce da alcune osservazioni:
1) nella rete ethereum non esiste nessun concetto di "smart contract vietato", la rete e' permissionless
ossia qualsiasi utente puo' immettere in rete qualsiasi tipo di codice, basta che il codice sia formalmente corretto
e che paghi il caricamento e l'esecuzione del codice.
2) ogni "smart contract" si comporta by design come un virus, ossia se eseguito, viene eseguito automaticamente
su tutti i nodi, proprio in virtu' del principio di decentralizzazione, ogni nodo deve ri-eseguire il codice
per verificare il lavoro fatto dagli altri e giungere al consenso con gli altri nodi.
3) L'unico meccanismo per "governare" l'esecuzione del codice e' il fatto che l'esecuzione di qualsiasi
smart contract costa gas, proporzionale al numero di istruzioni eseguite ed al tipo di istruzioni.
4) gli smart contract vengono normalmente scritti in solidity, ma vengono poi compilati e tradotti in linguaggio
macchina EVM, e solidity da' la possibilita' di scrivere direttamente in linguaggio assembler della EVM.
5) Una volta immesso, il codice e' immutabile, quindi non vi e' modo di "togliere di mezzo" lo smart contract dalla rete,
a meno di un hard fork tipo DAO. Ma mentre Dao sfruttava un bug, qui viene utilizzata l'architettura di base di ethereum,
rendendo veramente difficile la progettazione di un hard fork abbastanza efficace.
In base a queste osservazioni, si puo' progettare uno smart contract "DeathStar" la cui esecuzione costi il meno possibile,
e che "bruci" ethereum solo per competere con gli altri smart contract sui vari nodi, e ottenere piu' risorse elaborative possibili,
col solo scopo di rallentare il piu' possibile l'esecuzione di tutti gli altri smart contract, e probabilmente fare anche schizzare i costi di esecuzione.
Un gruppo di attaccanti potrebbe essere incentivato per svariati motivi a bruciare ethereum per mettere in difficolta' la rete, ad esempio:
- ad esempio essere i sostenitori di un'altra moneta competitor,
- oppure organizzare uno short su ethereum prima dell'attacco, congestionare la rete ethereum e ricoprirsi a prezzi piu' bassi,
recuperndo i soldi dell'attacco e guadagnandoci
- mettere in difficolta' uno o piu' degli svariati smart contract che girano su ethereum
In generale qualsiasi persona o gruppo con sufficenti mezzi e con un qualsiasi tipo di interesse alla decadenza della rete ethereum
e/o degli smart contract che vi girano, potrebbe usare questa linea di attacco.
Descrizione tecnica di DeathStar
Studiando lo yellow paper di ethereum,
----- segue descrizione tecnica di DeathStar-------
Un ringraziamento ai ragazzi della comunita' italiana di bitcointalk.org (filippone, acquafredda, HostFat, jack0m ed altri)
che mi hanno dato spunti interessanti per la realizzazione di questo studio.
Note:
ditemi se si capisce e dove posso essere piu' chiaro.
dite se non volete essere citati.
acquafredda... te lo sai gia' vero che ti tocchera' di tradurlo?