Miglior thread di Twitter del giorno – 19 agostoSai che una semplice firma in Metamask può prosciugare il tuo portafoglio? Sai che una semplice firma in Metamask può prosciugare il tuo portafoglio? Un utente molto esperto (top 10 secondo Degen Score) ha perso quasi 500.000 USDC in un exploit oggi. Potresti essere il prossimo… Un breve thread su come è successo e come evitare tali exploit in futuro. — korpi (@korpi87) 19 agosto 2022 Era un pomeriggio tranquillo quando Joe (nome cambiato) ha notato che 469k USDC hanno lasciato il suo portafoglio. Non è stato un semplice trasferimento, il che significava che un attaccante apparentemente non aveva accesso al portafoglio di Joe. È stato un contratto dannoso che ha prosciugato tutti gli USDC dal suo indirizzo… pic.twitter.com/pTgTjfMMeu — korpi (@korpi87) 19 agosto 2022 Qui dobbiamo mettere in pausa la storia per spiegare alcuni tecnicismi. Il token USDC è un contratto su Ethereum. Ha molte funzioni che definiscono come interagiamo con USDC e cosa si può fare con esso. Concentriamoci su due funzioni: > trasferimento > trasferimentoDa pic.twitter.com/gekVmjmwvW — korpi (@korpi87) 19 agosto 2022 > trasferimento Quando sposti USDC (o altri ERC20) tra portafogli, utilizzi la funzione di trasferimento. Sposta i token dal chiamante (l'indirizzo che chiama la funzione) a un altro indirizzo. Per utilizzare maliziosamente il trasferimento per tuo conto, qualcuno dovrebbe ottenere il controllo del tuo portafoglio. pic.twitter.com/3Z3pYbBnRq — korpi (@korpi87) 19 agosto 2022 > trasferimentoDa Quando interagisci con i contratti, usano transferFrom per spostare i tuoi token. Possono richiedere fino all'importo dell'indennità che hai impostato nella funzione di approvazione. Se consenti a un contratto di spendere una quantità infinita di USDC, può prenderli tutti. https://t.co/QdUgLuZfZH — korpi (@korpi87) 19 agosto 2022 Torna alla storia di Joe… La suddetta interazione contrattuale che ha prosciugato l'USDC di Joe è stata effettivamente la funzione di trasferimento. Ma transferFrom funzionerebbe solo se Joe avesse approvato il contratto per spendere i suoi USDC. E Joe era convinto al 100% di non approvare nulla… pic.twitter.com/HH9xxYeQms — korpi (@korpi87) 19 agosto 2022 Aspetta un attimo… La cronologia di DeBank mostra chiaramente l'approvazione infinita di USDC per il contratto dannoso 10 minuti prima dell'exploit… Joe l'ha davvero approvato? Sì. Ma anche no. Non direttamente. pic.twitter.com/AqQQs7GZAV — korpi (@korpi87) 19 agosto 2022 Etherscan rivela che l'approvazione infinita non era una funzione di approvazione chiamata dallo stesso Joe. È stata una funzione di autorizzazione chiamata da un altro indirizzo e ha concesso al contratto dannoso l'approvazione a spendere tutti gli USDC di Joe. WTF? In che modo gli altri possono approvare i contratti per tuo conto? pic.twitter.com/TS3iDbhOXu — korpi (@korpi87) 19 agosto 2022 È stata introdotta la funzione di autorizzazione per migliorare l'esperienza utente su Ethereum. Consente a un utente di modificare gli importi di approvazione senza inviare una transazione. È sufficiente una firma. Con la tua firma chiunque può chiamare la funzione di autorizzazione e aggiornare la tua indennità per un spender. pic.twitter.com/hem0lPsnW1 — korpi (@korpi87) 19 agosto 2022 Puoi vedere il permesso in azione quando usi la dApp da 1 pollice. Se vuoi vendere USDC, non devi prima approvarlo. Tutto ciò che serve è firmare un messaggio. Questa firma concede a 1inch il permesso di spendere tutti i tuoi USDC. 1 pollice non lo farà, ma potrebbe farlo un contratto dannoso. pic.twitter.com/Dd7ggJFWtl — korpi (@korpi87) 19 agosto 2022 Joe deve aver accidentalmente firmato un messaggio del genere su un sito Web dannoso. Sfortunatamente, questa volta ha usato un portafoglio caldo e la firma è stato solo un clic dall'aspetto innocente. Con un portafoglio hardware, ci sarebbe un momento di ripensamento durante la firma di un messaggio sul dispositivo esterno. — korpi (@korpi87) 19 agosto 2022 Con la firma di Joe un attore malintenzionato ha presentato una transazione con funzione di autorizzazione. Ha dato al contratto dannoso il permesso di spendere tutti gli USDC dal portafoglio di Joe. Quindi è stata chiamata la funzione transferFrom e il contratto dannoso ha prosciugato i fondi. pic.twitter.com/1U6lWr9pmw — korpi (@korpi87) 19 agosto 2022 Apparentemente le firme possono essere catastrofiche. In alcuni casi Metamask ti avviserà che firmare un messaggio può essere pericoloso. Ma non in caso di approvazioni firmate che tecnicamente funzionano come progettato ma possono causare molti danni se utilizzate in modo improprio. https://t.co/5H9rNWVR3b — korpi (@korpi87) 19 agosto 2022 Come evitare exploit simili in futuro? – Non firmare tutto in Metamask. – Dedica del tempo a capire cosa firmi. – Fai attenzione alle approvazioni tradizionali (vedi thread collegato) https://t.co/549NmPly5s — korpi (@korpi87) 19 agosto 2022 Spero che tu abbia trovato utile questo thread. Seguimi @korpi87 e controlla la mia nozione: https://t.co/ZTqYKmhCNk per ulteriori informazioni. Metti mi piace/retweet al primo tweet qui sotto per proteggere gli altri da exploit simili: https://t.co/9pqCSXi9JH — korpi (@korpi87) 19 agosto 2022 La fusione di Ethereum porterà all'acquisizione normativa? I problemi di #Ethereum sono causati dall'ottimizzazione costante della tokenomica rispetto al decentramento, alla sicurezza e alla resilienza. Sembra che l'unione e il POS porteranno alla completa acquisizione normativa da parte di scambi centralizzati e piattaforme di staking, e non c'è via d'uscita per loro. pic.twitter.com/Ur9tf42K5p — Samson Mow (@Excellion) 19 agosto 2022 Allora come sono arrivati qui? Decidere un requisito di 32 ETH da mettere in gioco come parte del protocollo (al fine di bloccare la fornitura e massimizzare la tokenomica). Ciò ha praticamente reso il POS il più centralizzato possibile e inoltre non hanno la cultura #Bitcoin non delle tue chiavi, né delle tue monete. pic.twitter.com/Ml4QV93ECP — Samson Mow (@Excellion) 19 agosto 2022 Quindi ora hai il 66% dei validatori che devono aderire alle normative OFAC. E l'ETH che hanno depositato per mettere in gioco non può essere ritirato perché la funzionalità di prelievo non è stata codificata, perché la tokenomica. pic.twitter.com/BdjFqYk70J — Samson Mow (@Excellion) 19 agosto 2022 Ma aspetta! Ethereans può solo #UASF come quei Bitcoin Maxi, giusto? Come mostrare totalmente a Coinbase chi è il capo! pic.twitter.com/LBSRDOF79o — Samson Mow (@Excellion) 19 agosto 2022 No. Primo, Etherean non esegue i propri nodi e secondo, la maggior parte dei servizi dipende da Infura, ma non è questo il problema principale. pic.twitter.com/8rI1FsDwuU — Samson Mow (@Excellion) 19 agosto 2022 Premetterò questa parte successiva e affermerò che arrestare gli sviluppatori per la scrittura di codice è orribile e costituisce un terribile precedente. Detto ciò… — Samson Mow (@Excellion) 19 agosto 2022 Per #UASF è necessario un software per funzionare. Ora tutti i fork di Ethereum hanno nomi di città interessanti come Istanbul, Londra, Berlino, ecc. Chiamiamo questo ipotetico fork UASF di Ethereum "Pyongyang". Pyongyang impedirebbe a Coinbase e alla maggioranza del 66% di censurare le transazioni sanzionate dall'OFAC. — Samson Mow (@Excellion) 19 agosto 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 Virgilio. Quindi, comunque, chi codificherà Pyongyang? Il tipo Tornado Cash è stato arrestato, quindi probabilmente anche gli sviluppatori di Pyongyang saranno arrestati. pic.twitter.com/HQNtkyTQkg — Samson Mow (@Excellion) 19 agosto 2022 Chi guiderà Pyongyang? I ragazzi che segnalano 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 gestiscono sicuramente Pyongyang. — Samson Mow (@Excellion) 19 agosto 2022 Va bene, quindi un Ethereum #UASF è fuori dal tavolo. "Ma possiamo semplicemente tagliare Coinbase e altri se osano obbedire!" pic.twitter.com/rmlgn8Cb2Y — Samson Mow (@Excellion) 19 agosto 2022 Potrei essere un patetico Bitcoin Maxi™, ma ho passato 10 minuti a fare ricerche e ho scoperto che non esiste un meccanismo per tagliare Coinbase. Non esiste un codice per rilevare e punire chiunque abbia censurato le transazioni. La meccanica Slashing funziona solo per punire i tempi di inattività o la doppia firma. — Samson Mow (@Excellion) 19 agosto 2022 Quindi siamo tornati di nuovo ad aver bisogno del fork di Pyongyang che nessuno codificherà o eseguirà. Anche se Pyongyang potesse esistere, non c'è modo per gli utenti di ritirare ETH. E anche se potessero ritirarsi, non importa perché conta solo Infura. pic.twitter.com/RQ44BWUqzE — Samson Mow (@Excellion) 19 agosto 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 significa? Significa che le parti interessate di minoranza avrebbero un meccanismo per punire arbitrariamente la maggioranza. Non funzionerà a lungo termine. — Samson Mow (@Excellion) 19 agosto 2022 Ed è per questo che chiamiamo #Ethereum una #shitcoin . È un esercizio di futilità, pieno di scelte progettuali atroci e progettato al solo scopo di pompare il gettone. pic.twitter.com/irYDrzJcOO — Samson Mow (@Excellion) 19 agosto 2022 Cubo Di Tungsteno20 Agosto 2022