Vulnerabilità nella piattaforma Optimism
Un sedicente hacker “grey-hat” ha scoperto all’inizio di questo mese come ingannare la soluzione per la scalabilità di Ethereum, Optimism per stampare efficacemente Ether illimitato.
Jay Freeman (conosciuto online col nome di Saurik) non ha sfruttato l’exploit. Invece, ha segnalato il problema al team di sviluppo di Optimism, che lo ha premiato con una taglia di $ 2 milioni, la più grande mai riconosciuta.
Freeman è probabilmente meglio conosciuto per il suo lavoro su Cydia , l’app store per iPhone con jailbreak. Tuttavia, più recentemente ha deciso di puntare la sua attenzione sulle blockchain e le loro vulnerabilità.
Da quanto riportato da Freeman sul suo sito Web, ha scoperto il problema tecnico mentre esaminava i cosiddetti “nano payment protocols” (protocolli per nano-pagamenti).
Optimism è uno di questi protocolli. Consentono agli utenti di inviare piccole quantità di criptovalute con commissioni ridotte, anche se il compromesso è un livello di sicurezza inferiore.
Analogamente ai bridge, la piattaforma conia token Ether alternativi che esistono solo sulla rete di Optimism.
Gli utenti prima bloccano i loro ETH all’interno di uno smart contract come garanzia per ricevere la versione coniata da Optimism (IOU).
Questi token possono quindi essere scambiati in modo più rapido ed economico rispetto alle transazioni on-chain su rete Ethereum (quasi istantaneamente), il che rende Optimism una potenziale soluzione di “livello 2” (L2) per la scalabilità di Ethereum.
La scoperta di Freeman
Freeman ha scoperto un problema tecnico in una sezione del codice di Optimism che costringe i contratti intelligenti a cancellarsi e restituire l’Ether correlato al mittente.
- La funzione “SELFDESTRUCT” di Optimism restituisce gli ETH al mittente ma mantiene i relativi IOU.
- Questo potrebbe essere sfruttato per indurre gli smart contract a ripetere l’operazione un numero indefinito di volte, di fatto, coniando infiniti IOU sul “livello 2”.
Con la una illimitata di IOU, chiunque avrebbe potuto andare in un exchange decentralizzato in esecuzione sulla chain L2 e danneggiarle, acquistando grandi quantità di altri token svalutando la valuta della catena.
Questi difetti di sicurezza sono noti come bug di overflow . Nel 2010 (quando Bitcoin era ancora un bambino), qualcuno sfruttò il codice per coniare 184 miliardi di BTC.
Ci è voluto un soft fork per resettare la blockchain e riportarla al suo limite hardcoded di 21 milioni di BTC, come intendeva Satoshi Nakamoto .
Altri sapevano del problema tecnico
È interessante notare che Freeman ha affermato che qualcuno si era imbattuto nel bug prima, la vigilia di Natale dell’anno scorso, ma potrebbe non averne realizzato il potenziale .
Sembrava francamente come se qualcuno avesse notato il bug e ci avesse persino giocato un po’ ma non si fosse reso conto che fosse sfruttabile.
Freeman ritiene che data la “posta in gioco”, errori di questa entità non dovrebbero essere presenti all’interno di questi smart contract.
Inoltre ci tiene a far sapere che a volte “si rifiuta” di assistere i progetti blockchain con “problemi strutturali in materia di decentramento o sicurezza”, dato che “non ci possono essere ripensamenti” un volta messi in produzione.
Questa roba è troppo importante per essere rilasciata rapidamente e adattare il design sul campo.