Uno sviluppatore ha identificato una vulnerabilità che consentirebbe ai partecipanti di moltiplicare il proprio potere decisionale senza dover acquisire nuovi token.

Segnalato il 7 settembre da Jong Seok Park, il bug può essere descritto come un double-spend nella governance del progetto.

In sostanza, la struttura di governance di SushiSwap permette ai possessori di token di delegare il proprio potere di voto a un’altra entità. Tuttavia, se il possessore di token trasferisce in seguito i suoi fondi a qualcun altro, il delegato mantiene comunque il suo potere decisionale. Il secondo possessore di token può ora delegare nuovamente, moltiplicando così il potere del delegato fino a quanto necessario. Il bug sta nel fatto che il trasferimento di token non ripristina i parametri di delega, ed è probabile che questo sia il risultato dell’aggregazione di codice da progetti differenti.

I contratti che regolano la governance di SushiSwap sono in larga misura un fork di quelli usati in Yam, che a loro volta sono un fork di Compound. Esaminando il codice sorgente di SushiSwap su Github, risulta che lo smart contract del token ha modificato solo la funzione di “emissione” dall’implementazione standard di contratti ERC-20 messa a disposizione da OpenZeppelin. Yam, invece, ha utilizzato un’implementazione specifica dello standard che presenta una funzione “moveDelegates” richiamata al momento del trasferimento.

In una conversazione con Cointelegraph, Sam Bankman-Fried, il CEO di FTX e nuovo leader di SushiSwap, ha confermato l’esistenza del bug, precisando che “non costituisce una minaccia immediata per Sushi” in quanto la governance non è ancora stata attivata.

Individuare il bug prima del lancio significa che ora il team può lavorare sulle soluzioni per correggerlo. Bankman-Fried crede che il problema sia risolvibile senza dover migrare il progetto a nuovi smart contract, ma il team sta “ancora indagando.”

È interessante sottolineare che SushiSwap era stato frettolosamente controllato e verificato mentre la popolarità del progetto aumentava esponenzialmente. Anche se uno dei problemi riscontrati allora coinvolge la stessa funzione “moveDelegates,” sembra essere un tipo di bug differente. Non sarebbe la prima volta che gli audit non riescono a individuare alcuni errori, cosa che evidenzia quanto sia necessario coinvolgere l’intera comunità di sviluppatori per mantenere sicuri gli smart contract della DeFi.

Attualmente, SushiSwap si sta ancora riprendendo dalle conseguenze causate dall’abbandono del suo fondatore anonimo, che ha lasciato il progetto intascandosi un “devfund” in token SUSHI del valore di 27 milioni di dollari.

La migrazione di liquidità da Uniswap è ancora destinata a continuare con nuovi smart contract, ma la decisione precedente presa da Chef Nomi è stata annullata.