Lo strumento di recupero ZK di Cardano completa il riscatto integrale del wallet sulla testnet Preview
Un repository pubblico sotto l’account GitHub di Charles Hoskinson documenta un sistema di recupero end to end per asset salvati da wallet Cardano compromessi. Il contratto Plutus V3 ha verificato una prova di proprietà a conoscenza zero e ha rilasciato cinque ADA di test a un nuovo wallet senza esporre la recovery phrase dell’utente.
By SongMarketCap
Uno strumento di recupero a conoscenza zero per Cardano ha completato un riscatto completo sulla testnet Preview, trasferendo asset da un contratto di custodia dopo aver confermato che il richiedente controllava il seed master originale.
La release open source include il circuito crittografico, il prover locale, il validator Plutus V3, il lavoro di verifica formale, le transazioni di test e una interfaccia prototipale chiamata ReclaimGlobal. Estende un esperimento precedente divulgato da Charles Hoskinson in un flusso di recupero pubblicamente revisionabile con risultati on chain funzionanti.
Il repository ha ottenuto ulteriore attenzione dopo che lo sviluppatore Phil ne ha evidenziato l’architettura, la documentazione e il sistema di proving. In seguito Hoskinson ha rilanciato la valutazione.
ReclaimGlobal collega la proprietà del wallet agli asset recuperati
ReclaimGlobal è progettato per incidenti in cui gli asset sono già stati rimossi da credenziali compromesse e inseriti in un contratto di recupero.
Un utente colpito collega il wallet compromesso in modalità sola lettura, genera localmente una prova di proprietà e seleziona un nuovo wallet per ricevere gli asset. La recovery phrase rimane sul dispositivo dell’utente e non viene inviata al contratto, all’operatore di recupero o a un server esterno.
Un flusso di locking separato consente a un operatore, un soccorritore o un donatore di depositare asset in un UTxO Cardano vincolato al proprietario. I fondi possono quindi essere reclamati solo da un utente in grado di dimostrare che la credenziale di pagamento interessata è stata derivata dal corrispondente seed master.
Lo strumento non è destinato agli utenti che hanno perso la propria recovery phrase. Il richiedente deve ancora controllare il seed originale e gli asset devono prima essere messi in sicurezza all’interno della struttura di custodia. I fondi già trasferiti al di fuori di tale processo di recupero non possono essere recuperati dal contratto.
Il repository descrive un incidente che coinvolge circa 8.823 credenziali di pagamento interessate. La spiegazione tecnica afferma che le recovery phrase, i master seed e i chain code non sono stati esposti. Invece, le chiavi di firma derivate sono state compromesse a causa di un difetto nel nonce deterministico del signer delle transazioni.
Poiché le singole credenziali del wallet sono derivate da un segreto master tramite operazioni unidirezionali, una chiave derivata rubata può consentire la firma non autorizzata di transazioni senza rivelare il seed originale. Il sistema di recupero sfrutta tale distinzione per separare il legittimo proprietario del wallet da un attaccante che possiede solo la credenziale compromessa.
Plutus V3 verifica la proprietà senza rivelare il seed
La prova di proprietà viene generata localmente tramite un sistema di proving Groth16 che opera sulla curva BLS12-381. La prova risultante è di 336 byte, mentre il circuito sottostante contiene circa 3,45 milioni di vincoli.
L’ambiente Plutus V3 di Cardano verifica la prova prima che il contratto di custodia rilasci qualsiasi asset. La recovery phrase del richiedente, le chiavi private e l’intero percorso di derivazione non sono pubblicati on chain.
La nuova credenziale di destinazione è vincolata crittograficamente alla prova. Un osservatore non può copiare la transazione e sostituire l’indirizzo di ricezione perché cambiare la destinazione invalida la richiesta.
Il validator conferma anche che il pagamento richiesto corrisponde al diritto archiviato nel datum di custodia. Condizioni aggiuntive impediscono al contratto di pagare sé stesso o di restituire gli asset alla credenziale compromessa.
Sono stati completati due traguardi iniziali sulla testnet Preview. Nel primo, cinque ADA di test sono stati bloccati dietro un gate di verifica e rilasciati dopo che il nodo ha accettato una prova valida. Una seconda transazione che utilizzava la stessa prova con un solo byte modificato è stata rifiutata.
Il flusso di recupero completo è stato poi testato tramite il validator di custodia completo. Sono stati depositati cinque ADA di test, è stata generata una prova per un wallet di destinazione appena creato e il contratto ha verificato proprietà, diritto e vincolo di destinazione prima di rilasciare gli asset.
Una richiesta successiva ha aggiunto ulteriori protezioni, inclusa una regola che impedisce il pagamento alla credenziale interessata e un meccanismo basato su ticket per tracciare le richieste già spese. La transazione si è finalizzata entro i limiti di esecuzione di Cardano.
Il repository include anche prove in Lean 4 che coprono la logica decisionale del validator, insieme a specifiche tecniche, codice del circuito e diversi cicli di revisione. Resta aperto un collegamento formale tra il sistema completo di vincoli R1CS e la relazione canonica dei testimoni, includendo i componenti SHA-512 ed Ed25519.
L’uso in mainnet richiede controlli aggiuntivi di sicurezza e governance
Attualmente ReclaimGlobal opera come prototipo sulla testnet Preview, con diverse misure di sicurezza per la produzione ancora in sviluppo.
La chiave di verifica utilizzata nell’attuale deployment è stata prodotta tramite un trusted setup a operatore singolo. Il repository afferma che questo modello è adatto allo sviluppo su testnet ma non per un sistema responsabile di asset reali degli utenti.
Groth16 richiede un processo di setup strutturato per creare le chiavi di proving e di verifica. Un partecipante che conservasse tutto il materiale segreto del setup potrebbe teoricamente fabbricare prove non valide che tuttavia superano la verifica.
Il modello proposto per la produzione utilizza quindi una cerimonia multiparte in cui contributori indipendenti aggiungono la propria casualità e distruggono i propri segreti individuali. Il repository delinea un processo che prevede casualità pubblica, un transcript delle contribuzioni pubblicato e la verifica indipendente della cerimonia completata.
Anche i controlli operativi restano irrisolti. La documentazione identifica la necessità di definire chi crea la lista di eleggibilità, come le somme assegnate possano essere verificate in modo indipendente e come gli asset in custodia siano protetti mentre le richieste vengono elaborate.
Ulteriori lavori includono il completamento del sistema on chain di stato speso e nullifier, il rafforzamento delle protezioni di codifica, la conversione del prototipo in una applicazione CIP-30 per la produzione e l’affidamento di un audit esterno completo del circuito, del contratto e della cerimonia di setup.
Le transazioni su Preview hanno dimostrato che Cardano può verificare una prova di proprietà con milioni di vincoli e completare il pagamento di recupero all’interno di una singola transazione. Portare il sistema verso la produzione dipende ora dall’eliminazione della fiducia in un singolo operatore e dalla definizione di regole trasparenti per custodia, eleggibilità e autorizzazione delle richieste.