Lo sapevi che una semplice firma in Metamask può svuotare il tuo portafoglio?
Lo sapevi che una semplice firma in Metamask può svuotare il tuo portafoglio?
— korpi (@korpi87) Agosto 19, 2022
Un utente molto esperto (top 10 per Degen Score) ha perso quasi 500k USDC in un exploit oggi.
Potresti essere il prossimo…
Una breve thread su come è successo e come puoi evitare tali exploit in futuro.
Era un pomeriggio tranquillo quando Joe (nome cambiato) ha notato che 469k USDC hanno lasciato il suo portafoglio.
— korpi (@korpi87) Agosto 19, 2022
Non si trattava di un semplice trasferimento, il che significa che presumibilmente l'attaccante non aveva accesso al portafoglio di Joe.
Era un contratto malevolo che ha svuotato tutti gli USDC dal suo indirizzo… pic.twitter.com/pTgTjfMMeu
Qui dobbiamo fermare la storia per spiegare alcune tecnicità.
— korpi (@korpi87) Agosto 19, 2022
Il token USDC è un contratto su Ethereum. Ha molte funzioni che definiscono come interagiamo con gli USDC e cosa può essere fatto con essi.
Concentriamoci su due funzioni:
> transfer
> transferFrom pic.twitter.com/gekVmjmwvW
> transfer
— korpi (@korpi87) Agosto 19, 2022
Quando sposti USDC (o altri ERC20) tra portafogli, usi la funzione transfer.
Sposta i token dal chiamante (l'indirizzo che chiama la funzione) a un altro indirizzo.
Per usare malevolmente transfer per tuo conto, qualcuno dovrebbe ottenere il controllo del tuo portafoglio. pic.twitter.com/3Z3pYbBnRq
> transferFrom
— korpi (@korpi87) Agosto 19, 2022
Quando interagisci con i contratti, usano transferFrom per spostare i tuoi token. Possono prendere fino all'importo dell'allowance che hai impostato nella funzione approve.
Se permetti a un contratto di spendere un importo infinito di USDC, può prenderlo tutto.https://t.co/QdUgLuZfZH
Torniamo alla storia di Joe…
— korpi (@korpi87) Agosto 19, 2022
L'interazione con il contratto menzionata in precedenza che ha svuotato gli USDC di Joe era effettivamente la funzione transferFrom.
Ma transferFrom funzionerebbe solo se Joe avesse approvato il contratto a spendere i suoi USDC.
E Joe era 100% convinto di non aver approvato nulla… pic.twitter.com/HH9xxYeQms
Aspetta un momento…
— korpi (@korpi87) Agosto 19, 2022
La cronologia di DeBank mostra chiaramente un'approvazione infinita di USDC per il contratto malevolo 10 minuti prima dell'exploit…
Joe l'ha effettivamente approvata?
Sì. Ma anche no. Non direttamente. pic.twitter.com/AqQQs7GZAV
Etherscan rivela che l'approvazione infinita non è stata attivata dalla funzione approve chiamata direttamente da Joe.
— korpi (@korpi87) Agosto 19, 2022
È stata la funzione permit a essere chiamata da un altro indirizzo, concedendo al contratto malevolo l'autorizzazione a spendere tutto l'USDC di Joe.
Cosa? Come possono altri approvare contratti per tuo conto? pic.twitter.com/TS3iDbhOXu
La funzione permit è stata introdotta per migliorare l'esperienza utente su Ethereum.
— korpi (@korpi87) Agosto 19, 2022
Permette a un utente di modificare gli importi di approvazione senza inviare una transazione. Una firma è sufficiente.
Con la tua firma, chiunque può chiamare la funzione permit e aggiornare il tuo allowance per un spenditore. pic.twitter.com/hem0lPsnW1
Puoi vedere permit in azione quando usi l'app d'1inch.
— korpi (@korpi87) Agosto 19, 2022
Se vuoi vendere USDC, non devi prima autorizzarne la spesa.
Tutto ciò di cui hai bisogno è firmare un messaggio.
Questa firma concede a 1inch il permesso di spendere tutti i tuoi USDC. 1inch non lo farà, ma un contratto malevolo potrebbe farlo. pic.twitter.com/Dd7ggJFWtl
Joe deve aver accidentalmente firmato un tale messaggio su un sito web malevolo.
— korpi (@korpi87) Agosto 19, 2022
Purtroppo, questa volta ha usato un portafoglio caldo e la firma è stato solo un clic innocuo.
Con un portafoglio hardware, ci sarebbe stato un momento di ripensamento mentre si firmava un messaggio sul dispositivo esterno.
Con la firma di Joe, un attore malevolo ha inviato una transazione utilizzando la funzione permit.
Ha concesso al contratto malevolo il permesso di spendere tutti gli USDC dal portafoglio di Joe.
Poi è stata chiamata la funzione transferFrom e il contratto malevolo ha svuotato i fondi. pic.twitter.com/1U6lWr9pmw— korpi (@korpi87) Agosto 19, 2022
A quanto pare le firme possono essere catastrofiche.
— korpi (@korpi87) Agosto 19, 2022
In alcuni casi Metamask ti avviserà che firmare un messaggio può essere pericoloso.
Ma non nel caso di approvazioni firmate che tecnicamente funzionano come progettato ma possono causare molti danni se usate male.https://t.co/5H9rNWVR3b
Come evitare exploit simili in futuro?
— korpi (@korpi87) Agosto 19, 2022
– Non firmare tutto su Metamask.
– Dedica del tempo per capire cosa firmi.
– Fai attenzione con le approvazioni tradizionali (vedi thread collegato)https://t.co/549NmPly5s
Spero che questa thread ti sia stata utile.
— korpi (@korpi87) Agosto 19, 2022
Seguimi @korpi87 e controlla il mio Notion: https://t.co/ZTqYKmhCNk per altro.
Mi piace/Ritwitta il primo tweet qui sotto per proteggere gli altri da exploit simili: https://t.co/9pqCSXi9JH
Il merge di Ethereum porterà a un controllo normativo?
#Ethereum's problems are caused by constantly optimizing for tokenomics over decentralization, security, and resilience. It looks like the Merge and POS will lead to complete regulatory capture by centralized exchanges & staking platforms, and there’s no way out for them. 🧵👇 pic.twitter.com/Ur9tf42K5p
— Samson Mow (@Excellion) Agosto 19, 2022
Allora, come ci sono arrivati? Decidendo di richiedere 32 ETH da stakeare come parte del protocollo (per bloccare l'offerta e massimizzare la tokenomics). Questo ha reso il POS il più centralizzato possibile, e inoltre non hanno la cultura #Bitcoin del "non sono le tue chiavi, non sono le tue monete". pic.twitter.com/Ml4QV93ECP
— Samson Mow (@Excellion) Agosto 19, 2022
Ora hai il 66% dei validatori che devono aderire alle normative OFAC. E gli ETH depositati per lo stake non possono essere prelevati perché la funzionalità di prelievo non è stata codificata – a causa della tokenomics. 📈 pic.twitter.com/BdjFqYk70J
— Samson Mow (@Excellion) Agosto 19, 2022
Ma aspetta! Gli Ethereans possono semplicemente fare un #UASF come quei Bitcoin Maxi, giusto? Mostrare chiaramente a Coinbase chi comanda! pic.twitter.com/LBSRDOF79o
— Samson Mow (@Excellion) Agosto 19, 2022
No. Innanzitutto, gli Ethereans non gestiscono i propri nodi e in secondo luogo, la maggior parte dei servizi dipende da Infura, ma questo non è il problema principale. pic.twitter.com/8rI1FsDwuU
— Samson Mow (@Excellion) Agosto 19, 2022
Precedo questa prossima parte affermando che arrestare gli sviluppatori per aver scritto codice è orribile e stabilisce un precedente terribile. Detto questo…
— Samson Mow (@Excellion) Agosto 19, 2022
Per fare un #UASF serve del software da eseguire. Ora tutte le fork di Ethereum hanno nomi di città cool come Istanbul, Londra, Berlino, ecc. Chiamiamo questa ipotetica fork Ethereum UASF "Pyongyang". Pyongyang impedirebbe a Coinbase e alla maggioranza del 66% di censurare le transazioni sanzionate OFAC.
— Samson Mow (@Excellion) Agosto 19, 2022
Un altro modo per dire "impedire la censura delle transazioni sanzionate dall'OFAC" potrebbe essere "aiutare a eludere le sanzioni." Forse ci siamo dimenticati di Virgil. Comunque, chi si occuperà di codificare Pyongyang? Il creatore di Tornado Cash è stato arrestato, quindi è probabile che anche gli sviluppatori di Pyongyang vengano arrestati. pic.twitter.com/HQNtkyTQkg
— Samson Mow (@Excellion) Agosto 19, 2022
Chi eseguirà Pyongyang? I ragazzi che fanno il segnale con “X 🏴”? Collegheranno anche il loro nodo Pyongyang al loro account .eth? Coinbase, Kraken, Bitcoin Suisse e gli altri che costituiscono la maggioranza del 66% non stanno sicuramente eseguendo Pyongyang.
— Samson Mow (@Excellion) Agosto 19, 2022
Ok, quindi un Ethereum #UASF è fuori discussione.
— Samson Mow (@Excellion) Agosto 19, 2022
“Ma possiamo semplicemente tagliare Coinbase e altri se osano conformarsi!” pic.twitter.com/rmlgn8Cb2Y
Potrei essere un Pathetic Bitcoin Maxi™ ma ho passato 10 minuti a fare ricerche e ho scoperto che non esiste alcuna meccanica per tagliare Coinbase. Non c'è codice per rilevare e punire chiunque per la censura delle transazioni. La meccanica di Slashing funziona solo per punire il downtime o la doppia firma.
— Samson Mow (@Excellion) Agosto 19, 2022
Quindi siamo di nuovo nella situazione in cui serve il fork di Pyongyang, che nessuno coderà o eseguirà. Anche se Pyongyang potesse esistere, non c'è alcun modo per gli utenti di prelevare ETH. E anche se potessero prelevare, non avrebbe importanza perché conta solo Infura. pic.twitter.com/RQ44BWUqzE
— Samson Mow (@Excellion) Agosto 19, 2022
Supponendo che tutte le stelle si siano allineate magicamente e che ci fosse un modo per gli utenti di Ethereum di tagliare Coinbase ecc., cosa significherebbe? Significherebbe che gli azionisti di minoranza avrebbero un meccanismo per punire arbitrariamente la maggioranza. Questo non funzionerà nel lungo termine.
— Samson Mow (@Excellion) Agosto 19, 2022
Ed è per questo che chiamiamo #Ethereum una #shitcoin. È un esercizio futile, pieno di scelte progettuali atroci e ingegnerizzato esclusivamente per gonfiare il token. pic.twitter.com/irYDrzJcOO
— Samson Mow (@Excellion) Agosto 19, 2022
I cervelli più intelligenti del crypto leggono già la nostra newsletter. Vuoi unirti a loro? Unisciti a loro.

Ibiam Wayas
Ibiam Wayas si occupa di notizie sul crypto dal 2019. Si è laureato in Informatica presso l'Open University of Nigeria. I suoi lavori sono apparsi su varie piattaforme di notizie crypto, tra cui Coinfomania, Crypto News Australia e AltcoinBuzz. Sfruttando il suo background in Informatica, ora si concentra su notizie relative a crypto, robotica e longevità.

















