Exploit di Polymarket: una chiave privata trapelata, non un bug del contratto

Il 22 maggio 2026, l'investigatore on-chain ZachXBT ha segnalato uno svuotamento su uno dei wallet di Polymarket. Le prime stime lo collocavano intorno a $520K. Quando il team ha confermato i dettagli, la cifra si era avvicinata a $660K-$700K. Nessuna reentrancy. Nessuna manipolazione degli oracoli. Nessuna coreografia sofisticata con flash loan. Solo una chiave privata finita dove non avrebbe dovuto essere.
L'exploit di Polymarket non ha toccato la parte dello stack che tutti pagano Trail of Bits e OpenZeppelin per esaminare. Ha colpito un wallet interno di ricarica, un account operativo usato per finanziare le ricompense e mantenere il flusso delle operazioni. Il tipo di wallet che non compare mai nell'ambito di un audit perché non è un contratto. È una chiave che risiede sull'infrastruttura di qualcuno.
Questo è l'aspetto scomodo. Dopo un anno in cui i titoli erano dominati da bridge e configurazioni errate dei DVN, il mercato di previsione più finanziato al mondo è stato svuotato attraverso il modo più elementare di fallire del settore.
Cosa è successo davvero su Polygon
L'account svuotato era un wallet operativo, non fondi degli utenti custoditi nei contratti principali del protocollo. Secondo quanto riportato da CoinDesk, ZachXBT ha individuato circa $520K in uscita, e il team di Polymarket ha dichiarato che i fondi dei clienti erano al sicuro. L'attaccante ha prelevato POL e altri asset dal wallet su Polygon, poi ha fatto quello che fanno sempre gli attaccanti: ha usato i bridge per disperdere i fondi prima che qualcuno potesse bloccarli.
Decrypt ha stimato la cifra più vicina a $700K e lo ha identificato specificamente come wallet interno di ricarica. La discrepanza nei numeri è normale nelle prime 24 ore; il meccanismo non è in discussione. Qualcuno ha ottenuto la chiave.
Si tratta di un exploit su POL di Polygon solo nel senso che POL era l'asset nel wallet. La chain non ha fallito. Il contratto non ha fallito. La custodia di una singola chiave operativa ha fallito.
Perché l'UMA CTF Adapter non era il problema
Il meccanismo di risoluzione dei mercati di Polymarket passa attraverso l'oracolo ottimistico di UMA tramite l'UMA CTF Adapter, il contratto che pubblica le domande, gestisce le contestazioni e liquida i risultati. Sulla carta, è il componente che porta il rischio avversariale maggiore. È stato verificato da audit. È stato messo alla prova su migliaia di mercati.
E non c'entra nulla con tutto questo.
Questo è il dettaglio che la gente tende a sorvolare, e non dovrebbe. Il livello degli smart contract ha tenuto. L'oracolo ha tenuto. Quello che è ceduto è un wallet che un essere umano controlla con una chiave a cui un essere umano (o una pipeline CI, o un servizio di firma online) ha accesso. Abbiamo trascorso il bull market a irrobustire le parti che hanno verifica formale, ignorando quelle che hanno un file .env.
Le chiavi operative sono ormai la vera superficie d'attacco
Questo è lo schema degli incidenti del 2026. Il Solidity sta migliorando. Chi fa audit sa fare il proprio lavoro. I metodi formali intercettano i bug di reentrancy che un tempo prosciugavano nove cifre. Quindi gli attaccanti si sono spostati.
Si sono spostati verso i tessuti molli:
- Hot wallet usati per ricompense, ricariche di gas e market-making.
- Chiavi del deployer mai ruotate dopo il lancio.
- Firmatari di multisig che usano lo stesso laptop per firmare e navigare.
- Segreti CI/CD che possono firmare transazioni in produzione.
Niente di tutto ciò compare in un report di audit. Quando gestisco la sicurezza di un exchange regolamentato, la revisione dei contratti occupa forse un terzo del lavoro. Il resto è HSM, segregazione dei firmatari, documentazione delle cerimonie di generazione delle chiavi, e la domanda profondamente poco glamour: "chi può spostare fondi alle 3 di notte e cosa lo fermerebbe." È su quest'ultimo punto che la maggior parte dei team è esposta.
Questa è la stessa lezione della perdita di Kelp DAO su LayerZero: 292 milioni di dollari persi non per un bug nel contratto, ma per una configurazione errata nel livello operativo. Meccanismo diverso, stessa causa radice: la parte noiosa che nessuno audita.
Come avrebbe dovuto essere strutturato un ops wallet da 660K dollari
Se una singola chiave può spostare 660.000 $, si tratta di una scelta progettuale, non di sfortuna. Alcune misure che dovrebbero essere requisiti minimi per qualsiasi wallet operativo che detenga valore significativo:
- Limiti di spesa nella logica del wallet stesso. Un wallet di ricarica premi non ha alcun motivo per poter inviare l'intero saldo in un'unica transazione. Limitarne la frequenza on-chain.
- Firma a soglia per qualsiasi importo superiore a un minimo. I pagamenti automatici di piccolo importo possono essere hot. Qualsiasi importo superiore, diciamo, a 10.000 $ dovrebbe richiedere un secondo firmatario. Un multisig Safe con soglia bassa per i trasferimenti elevati non è difficile da implementare.
- Isolamento delle chiavi dall'ambiente applicativo. La chiave di firma di un wallet operativo non dovrebbe mai trovarsi in un luogo in cui codice applicativo, dipendenze o un runner CI compromesso possano leggerla.
- Monitoraggio che allerta un operatore in caso di deflusso anomalo. ZachXBT lo ha rilevato prima che il team lo annunciasse. Il proprio sistema di allerta dovrebbe anticipare un osservatore esterno che monitora il mempool.
Niente di tutto questo è nuovo. Sono le misure che vengono tagliate quando un team lavora di corsa e il wallet è "solo per i premi".
Il gap nello stack di audit che nessuno presidia
Il problema più profondo è interno, una questione di competenze. La sicurezza degli smart contract ha un responsabile chiaro: la società di audit. La sicurezza delle chiavi operative ha... chiunque abbia configurato il wallet, di solito sotto pressione per le scadenze, e spesso mai più riesaminata. Ho scritto di questo gap nel contesto di lo stack di audit rotto del DeFi: la certificazione copre i contratti e si ferma al confine del contratto. Tutto ciò che è operativo è fuori perimetro e fuori dalla mente.
Finché un regolatore o un assicuratore non costringerà la sicurezza operativa a diventare una voce di bilancio con un responsabile, questo continuerà ad accadere. La sicurezza operativa nel DeFi nel 2026 è grosso modo dove si trovava la sicurezza degli smart contract nel 2019: riconosciuta come importante, non presidiata da nessuno, finanziata per ultima.
Polymarket se la caverà. $660K è un colpo assorbibile per una piattaforma delle loro dimensioni, e va riconosciuto loro il merito di aver comunicato in modo rapido e chiaro. Ma il prossimo team a cui capiterà potrebbe non avere le riserve necessarie per assorbirlo. La compromissione di una chiave che svuoterà un treasury anziché un wallet di ricompense è alle porte, e non sarà un bug di Solidity. Sarà una chiave su un laptop.