Nel week-end l'attesissimo progetto NFT Akutars ha reso erroneamente inaccessibili oltre 11.500 ETH (ETH) a causa di un bug, e successivamente subito un exploit da parte di un utente anonimo. Fortunatamente, l'exploit in questione è stato condotto da un individuo che voleva soltanto dimostrare una vulnerabilità nel progetto, non rubare i fondi.
Il progetto è stato lanciato venerdì tramite una "asta all'olandese," ovvero una tipologia di asta in cui il prezzo si abbassa fino a quando non riceve un'offerta.
L'asta si è aperta a 3,5 ETH, con solo 5.495 dei 15.000 NFT disponibili per la vendita; lo smart contract era stato impostato per rimborsare tutti gli utenti con un'offerta troppo bassa. I detentori dell'Aku Mint Pass avevano anche ricevuto uno sconto di 0,5 ETH su ogni NFT coniato.
Il bug
In un thread su Twitter di sabato, che svelava la presenza di un'enorme bug da 33 milioni di dollari, 0xInuarashi, sviluppatore di altri progetti basati su NFT, ha spiegato che lo smart contract di Akutars possedeva una grave falla: era codificato in modo che i rimborsi agli offerenti venissero elaborati prima che il team potesse prelevare fondi.
Il contratto presentava inoltre una condizione particolare: doveva essere effettuato un numero minimo di offerte prima che il team potesse prelevare, ma il numero minimo di offerte era identico alla quantità di NFT disponibili all'asta.
Pertanto, dato che alcuni acquirenti potevano coniare più NFT all'interno della stessa offerta, la sopracitata condizione ha fatto in modo che il contratto non si sbloccasse mai, di fatto sigillando per sempre quei 33 milioni di dollari in ETH.
L'exploit
Alcuni utenti su Twitter sostengono che numerosi sviluppatori avessero già avvisato il team di Akutars dell'errore nello smart contract, ma che gli ammonimenti fossero stati del tutto ignorati:
"Il team di AkuDreams sosteneva che si trattasse di una feature e non di un exploit, nonostante molti sviluppatori avessero sollevato preoccupazioni prima del minting. Bizzarre giustificazioni."
The AkuDreams team pretended that this was a feature, not an exploit, when multiple developers raised concerns prior to mint. Bizarre justifications. pic.twitter.com/cVgEXnnWzF
— foobar (@0xfoobar) April 23, 2022
Durante il minting, un individuo anonimo ha eseguito un cosiddetto "griefing contract," di fatto impedendo a coloro che avevano effettuato offerte troppo basse di ricevere dei rimborsi. L'individuo ha persino incorporato un messaggio sulla blockchain dedicato al team di Akutars:
"Beh, è stato divertente. Non avevo alcuna intenzione di sfruttare realmente questo exploit, altrimenti non avrei usato Coinbase. Una volta che avrete ammesso pubblicamente l'esistenza di questo exploit, rimuoverò il blocco immediatamente."
Akutars ha prontamente risposto assumendosi la responsabilità per il codice fallace:
"Aggiornamento rapido, forniremo maggiori dettagli al più presto.
L'exploit nel contratto non è stato commesso per dolo. L'individuo in questione voleva attirare l'attenzione sulle migliori pratiche per progetti altamente visibili e meccaniche inedite. Dopo che ci siamo assunti la responsabilità dell'errore, ha prontamente sbloccato l'exploit."
Quick Update (will go into more detail asap):
— Aku :: Akutars (@AkuDreams) April 23, 2022
1. The exploit in the contract was not done out of malice; the person intended to bring attention to best practices for highly visible projects & novel mechanics. They unblocked the exploit quickly after we dug in and took ownership
Lo stesso giorno, il fondatore del progetto ed ex giocatore di baseball professionista Micah Johnson si è scusato con la comunità:
"Mi dispiace tanto per la famiglia Aku. Tengo moltissimo alla nostra famiglia, so di avervi deluso.
Continuerò a costruire mattone dopo mattone, continuerò a lavorare instancabilmente: perché senza la sua comunità, Aku non è nulla. Abbiamo fatto troppa strada per arrenderci adesso."
Il team ha infine promesso che emetterà rimborsi di 0,5 ETH ai possessori di Aku Mint Pass, e distribuirà gli NFT agli utenti selezionati tramite airdrop:
"Sono stati commessi degli errori, che sono costati più a me che a chiunque altro. Ho reinvestito quasi tutto nella costruzione di Aku.
Quasi tutto sarà rimborsato, e continueremo a costruire ciò che ci siamo prefissati di fare. Mattone dopo mattone."
The mistakes that were made are no more costly to anyone than myself. I’ve reinvested most everything into building Aku.
— Micah Johnson (@Micah_Johnson3) April 23, 2022
& most everything will go back to refunds and we will keep building what we set out to do.
Brick by brick. https://t.co/vQiPbl0Jpl
In un aggiornamento pubblicato domenica, il team ha affermato di aver riscritto il suo contratto di minting, il quale è stato poi verificato da diversi sviluppatori.