Passer au contenu principal

Presentation

Chaque portefeuille d’agent dans AgentWallex est securise par le calcul multi-parties (MPC). La cle privee complete n’est jamais reconstituee — ni en memoire, ni sur disque, nulle part. A la place, des fragments de cles cryptographiques sont distribues entre trois parties independantes, et n’importe quelles deux peuvent cooperer pour signer une transaction.

Comment fonctionne le MPC

Les portefeuilles traditionnels stockent une seule cle privee. Si cette cle est volee, tous les fonds sont perdus. Le MPC elimine ce point de defaillance unique.

Signature a seuil 2-sur-3

AgentWallex utilise le protocole MPC a seuil 2-sur-3 de Paratro. Trois fragments de cles sont generes, et n’importe quels deux suffisent pour produire une signature valide :
FragmentDetenteurRole
Fragment 1Service de signature AgentWallexParticipant actif a la signature
Fragment 2Noeud de garde independantParticipant actif a la signature
Fragment 3Stockage a froidRecuperation et reprise apres sinistre
En fonctionnement normal, le Fragment 1 et le Fragment 2 cooperent pour signer les transactions. Le Fragment 3 reste hors ligne et n’est utilise que pour les scenarios de recuperation.

Proprietes de securite

  • Aucun point de compromission unique — Un attaquant doit compromettre deux systemes independants simultanement.
  • Aucune reconstitution de cle — La cle privee complete n’est jamais assemblee en un seul endroit.
  • Confidentialite persistante — La rotation reguliere des fragments (partage proactif de secret) invalide les anciens fragments.
  • Meme adresse de portefeuille — La rotation des fragments ne change pas l’adresse on-chain du portefeuille.

Generation des cles

Les cles sont generees en utilisant la generation distribuee de cles (DKG) :
1

Generation de fragment aleatoire

Chacun des 3 noeuds MPC genere independamment un fragment aleatoire.
2

Derivation de la cle publique

Les fragments sont combines cryptographiquement pour produire une cle publique (et l’adresse de portefeuille correspondante).
3

Distribution des fragments

Chaque noeud ne conserve que son propre fragment. La cle privee complete n’existe jamais.
// When you create an agent, DKG happens automatically
const agent = await aw.agents.create({
  name: "my-agent",
  chain: "eip155:8453",
});

// The wallet address is derived from the distributed public key
console.log(agent.wallet.address); // 0x...

Rotation des cles

Les fragments de cles sont soumis a une rotation periodique en utilisant une technique appelee partage proactif de secret. Ce processus :
  1. Genere de nouveaux fragments correspondant a la meme cle publique.
  2. Distribue les nouveaux fragments aux trois parties.
  3. Detruit les anciens fragments.
Apres la rotation, meme si un attaquant avait precedemment vole un fragment, il devient cryptographiquement inutile.
La rotation des cles est automatique et ne necessite aucune action de la part du developpeur. L’adresse du portefeuille reste la meme.

Gel d’urgence

Toute partie autorisee peut geler instantanement le portefeuille d’un agent, empechant toutes les transactions :
// Freeze — immediate, no transactions can be signed
await aw.agents.freeze("agent_abc123");

// Unfreeze — subject to mandatory cool-down period
await aw.agents.unfreeze("agent_abc123");
Apres le gel d’un portefeuille, il y a une periode de refroidissement obligatoire de 10 minutes avant qu’il ne puisse etre degele. Cela empeche un attaquant de reactiver immediatement un portefeuille qu’il a gele et degele.

Filet de securite d’infrastructure

Au-dela des politiques configurees par le developpeur, Paratro applique des limites strictes au niveau de la signature MPC qui ne peuvent pas etre outrepassees par des appels API :
ControleValeur par defaut
Plafond quotidien absolu50 000 $
Detection d’anomaliesBasee sur le ML, toujours activee
Gel d’urgenceToujours disponible
Periode de refroidissement10 minutes apres le gel
Ces limites agissent comme une derniere ligne de defense, meme si votre cle API est compromise ou si vos politiques de couche metier sont mal configurees.