L outil de récupération ZK de Cardano achève une réclamation complète de portefeuille sur le testnet Preview
Un dépôt public sous le compte GitHub de Charles Hoskinson documente un système de récupération de bout en bout pour des actifs sauvés depuis des portefeuilles Cardano compromis. Le contrat Plutus V3 a vérifié une preuve de propriété à connaissance nulle et a libéré cinq ADA de test vers un nouveau portefeuille sans exposer la phrase de récupération de l utilisateur.
By SongMarketCap
Un outil de récupération à connaissance nulle pour Cardano a achevé une réclamation complète sur le testnet Preview, transférant des actifs depuis un contrat de garde après confirmation que le demandeur contrôlait la graine maîtresse d origine.
La publication open source inclut le circuit cryptographique, un prouveur local, le validateur Plutus V3, des travaux de vérification formelle, des transactions de test et une interface prototype appelée ReclaimGlobal. Elle étend une expérience antérieure divulguée par Charles Hoskinson en un flux de récupération publiquement révisable avec des résultats sur chaîne opérationnels.
Le dépôt a attiré une attention supplémentaire après que le développeur Phil a mis en avant son architecture, sa documentation et son système de preuve. Hoskinson a ensuite repartagé cette évaluation.
ReclaimGlobal lie la propriété du portefeuille aux actifs sauvés
ReclaimGlobal est conçu pour des incidents où des actifs ont déjà été retirés d identifiants compromis et placés dans un contrat de récupération.
Un utilisateur concerné connecte le portefeuille compromis en mode lecture seule, génère localement une preuve de propriété et sélectionne un nouveau portefeuille pour recevoir les actifs. La phrase de récupération reste sur l appareil de l utilisateur et n est pas transmise au contrat, à l opérateur de récupération ni à un serveur externe.
Un flux de verrouillage distinct permet à un opérateur, un sauveteur ou un donateur de déposer des actifs dans un UTxO Cardano lié au propriétaire. Les fonds ne peuvent alors être réclamés que par un utilisateur capable de prouver que l identifiant de paiement affecté a été dérivé de la graine maîtresse correspondante.
L outil n est pas destiné aux utilisateurs qui ont perdu leur phrase de récupération. Le demandeur doit toujours contrôler la graine d origine, et les actifs doivent d abord être sécurisés dans la structure de garde. Les fonds déjà transférés au delà de ce processus de récupération ne peuvent pas être récupérés par le contrat.
Le dépôt décrit un incident impliquant environ 8 823 identifiants de paiement affectés. Son explication technique indique que les phrases de récupération, les graines maîtresses et les codes de chaîne n ont pas été exposés. À la place, des clés de signature dérivées ont été compromises en raison d une faille de nonce déterministe dans le signataire de transactions.
Comme les identifiants de portefeuille individuels sont dérivés d un secret maître via des opérations à sens unique, une clé dérivée volée peut permettre une signature de transaction non autorisée sans révéler la graine d origine. Le système de récupération utilise cette distinction pour séparer le propriétaire légitime du portefeuille d un attaquant ne détenant que l identifiant compromis.
Plutus V3 vérifie la propriété sans révéler la graine
La preuve de propriété est générée localement via un système de preuve Groth16 opérant sur la courbe BLS12-381. La preuve résultante mesure 336 octets, tandis que le circuit sous jacent contient environ 3,45 million de contraintes.
L environnement Plutus V3 de Cardano vérifie la preuve avant que le contrat de garde ne libère des actifs. La phrase de récupération du demandeur, les clés privées et le chemin de dérivation complet ne sont pas publiés sur chaîne.
Le nouvel identifiant de destination est lié cryptographiquement à la preuve. Un observateur ne peut pas copier la transaction et remplacer l adresse de réception, car modifier la destination invalide la réclamation.
Le validateur confirme aussi que le paiement demandé correspond au droit stocké dans le datum de garde. Des conditions supplémentaires empêchent le contrat de se payer lui même ou de renvoyer les actifs vers l identifiant compromis.
Deux jalons initiaux ont été réalisés sur le testnet Preview. Dans le premier, cinq ADA de test ont été verrouillés derrière une porte de vérification et libérés après que le nœud a accepté une preuve valide. Une seconde transaction utilisant la même preuve avec un octet modifié a été rejetée.
Le flux de récupération complet a ensuite été testé via le validateur de garde intégral. Cinq ADA de test ont été déposés, une preuve a été générée pour un portefeuille de destination nouvellement créé, et le contrat a vérifié la propriété, le droit et la liaison de destination avant de libérer les actifs.
Une réclamation ultérieure a ajouté d autres protections, y compris une règle empêchant un paiement de retour vers l identifiant affecté et un mécanisme à tickets pour suivre les réclamations dépensées. La transaction s est finalisée dans les limites d exécution de Cardano.
Le dépôt inclut aussi des preuves Lean 4 couvrant la logique de décision du validateur, ainsi que des spécifications techniques, le code du circuit et plusieurs cycles de revue. Un lien formel reste ouvert entre le système complet de contraintes R1CS et la relation témoin canonique, y compris les composants SHA-512 et Ed25519.
L utilisation en mainnet exige des contrôles supplémentaires de sécurité et de gouvernance
ReclaimGlobal fonctionne actuellement comme un prototype sur le testnet Preview, avec plusieurs garde fous de production encore en cours de développement.
La clé de vérification utilisée dans le déploiement existant a été produite via une procédure de confiance à opérateur unique. Le dépôt indique que ce modèle convient au développement sur testnet mais pas à un système responsable d actifs réels d utilisateurs.
Groth16 exige un processus de configuration structuré pour créer les clés de preuve et de vérification. Un participant qui conserverait tout le matériel secret de configuration pourrait en théorie fabriquer des preuves invalides qui passent tout de même la vérification.
Le modèle de production proposé utilise donc une cérémonie multipartite dans laquelle des contributeurs indépendants ajoutent leur propre aléa et détruisent leurs secrets individuels. Le dépôt décrit un processus impliquant un aléa public, une transcription publiée des contributions et une vérification indépendante de la cérémonie achevée.
Des contrôles opérationnels restent aussi à définir. La documentation identifie la nécessité de préciser qui crée la liste d éligibilité, comment les montants alloués peuvent être vérifiés de manière indépendante et comment les actifs en garde sont protégés pendant le traitement des réclamations.
Les travaux à venir incluent l achèvement du système sur chaîne d état dépensé et de nullifier, le renforcement des protections d encodage, la conversion du prototype en application de production CIP-30 et la commande d un audit externe complet du circuit, du contrat et de la cérémonie de configuration.
Les transactions sur le testnet Preview ont établi que Cardano peut vérifier une preuve de propriété comportant plusieurs millions de contraintes et effectuer le paiement de récupération dans une seule transaction. Le passage du système vers la production dépend maintenant de l élimination de la confiance accordée à un opérateur unique et de l établissement de règles transparentes pour la garde, l éligibilité et l autorisation des réclamations.