PD-177 — Expression de besoin : Configurer wallet Ethereum et gestion clés privées¶
1. Contexte¶
L'architecture ProbatioVault prévoit un ancrage probatoire périodique sur blockchain publique (Ethereum L1 ou L2). Cet ancrage repose sur :
- La publication d'un Merkle root
- L'obtention d'un
tx_id - L'intégration de cette transaction dans une preuve composite auto-vérifiable
La plateforme doit disposer d'un wallet Ethereum opérationnel, permettant : - La signature et l'émission de transactions - La gestion sécurisée des clés privées associées - La traçabilité et l'audit des opérations blockchain
Ce besoin est structurant : sans wallet maîtrisé, l'ancrage blockchain ne peut être opéré de manière souveraine.
Dépendances existantes¶
PD-177 s'inscrit dans l'epic BLOCKCHAIN (PD-187). Deux stories précédentes cadrent l'environnement :
- PD-52 (Ethereum L2 Setup) : a défini une interface
CustodyStrategyavec 3 modes de custody (S1=CloudHSM, S2=AWS KMS, S3=Hybrid). Seul S2 (AWS KMS secp256k1) est actif en V1 ; S1 et S3 sont des stubs. - PD-55 (Worker ancrage blockchain) : consomme le wallet via
TransactionService.sendAnchorTransaction()— il délègue 100% de la signature à la couche wallet sans jamais signer directement. - PD-245 (Format preuve multi-chain) : a ajouté un champ
blockchain: 'ethereum_l2' | 'tezos'au format de preuve, impliquant que le wallet doit être identifiable par type de blockchain.
2. Objectifs principaux¶
2.1 Identité blockchain maîtrisée¶
- Existence d'au moins une adresse Ethereum officielle ProbatioVault
- Cette adresse doit être documentée, traçable, et identifiable comme source d'ancrage probatoire
- Les transactions d'ancrage doivent pouvoir être publiquement associées à ProbatioVault
2.2 Capacité d'émission de transactions¶
- Signature cryptographique de transactions Ethereum
- Envoi de transactions vers Ethereum mainnet ou réseau L2 sélectionné (Polygon, Arbitrum — cf. PD-52)
- Chaque ancrage Merkle doit produire : un
tx_hash, une confirmation réseau, une inclusion vérifiable dans un bloc
2.3 Gestion sécurisée des clés privées¶
- Les clés privées doivent être protégées contre : extraction, duplication, accès non autorisé
- Les clés doivent être isolées des autres composants applicatifs
- Les clés ne doivent jamais être exposées en clair dans les logs ou bases de données
- La compromission d'un serveur applicatif ne doit pas entraîner la compromission des fonds ni de l'identité blockchain
2.4 Auditabilité des opérations¶
- Chaque transaction blockchain doit être : journalisée, associée à un Merkle root interne, intégrée au mécanisme de preuve composite, traçable via un registre append-only
- Un tiers doit pouvoir vérifier : quel Merkle root a été ancré, à quelle date, via quelle transaction, avec quelle signature
2.5 Continuité d'exploitation¶
- Mécanisme de récupération du contrôle du wallet
- Procédure en cas de : perte d'accès, compromission suspectée, rotation planifiée
- ProbatioVault doit conserver la maîtrise durable de son identité blockchain sur plusieurs décennies
3. Non-objectifs (exclusions explicites)¶
- Pas de multi-wallet : un seul wallet actif à la fois (la gestion de multiples wallets n'est pas dans le périmètre)
- Pas de Tezos : le support Tezos (Ed25519) est prévu pour PD-58, hors périmètre PD-177
- Pas de DEX / DeFi : le wallet ne sera pas utilisé pour des interactions DeFi, uniquement pour l'ancrage probatoire
- Pas de gestion de tokens ERC-20 : seules les transactions natives (ETH/MATIC) sont concernées
- Pas de trading / transfert de fonds : le wallet sert exclusivement à publier des hashes sur la blockchain
4. Contraintes¶
4.1 Souveraineté¶
- L'architecture ProbatioVault exige une souveraineté infrastructurelle (principalement OVH, France, environnement restreint UE)
- Tension identifiée : Blockchain publique internationale vs souveraineté infrastructurelle — le wallet interagit avec un réseau public mondial tout en devant être hébergé souverainement
4.2 Cohérence avec le modèle HSM¶
- La plateforme repose sur un modèle HSM Cloud pour les signatures probatoires
- Tension identifiée : Les signatures blockchain (secp256k1) doivent-elles être alignées sur l'infrastructure HSM existante (qui ne supporte pas nativement secp256k1) ou isolées via AWS KMS ?
- Le besoin impose une cohérence cryptographique globale, sans redondance fragile
4.3 Modèle économique¶
- L'ancrage est mutualisé (toutes les 10 minutes ou 24h selon plan)
- Le wallet doit supporter un volume de transactions périodique
- Gestion maîtrisée des coûts (gas)
- Le service d'ancrage ne doit pas être interrompu pour des raisons opérationnelles liées au wallet (manque de fonds, gas trop élevé)
4.4 Compatibilité PD-52¶
- PD-52 a défini l'interface
CustodyStrategyet leTransactionService. PD-177 doit s'inscrire dans cette architecture, sans la casser. - Le mode S2 (AWS KMS) est le seul actif. Toute évolution doit rester compatible.
5. Scénarios d'échec et résultats inacceptables¶
Les situations suivantes sont explicitement inacceptables :
| Risque | Gravité | Conséquence |
|---|---|---|
| Perte définitive de la clé privée | CRITIQUE | Perte d'identité blockchain irréversible |
| Vol de la clé privée | CRITIQUE | Transactions frauduleuses, perte de confiance |
| Impossibilité d'émettre une transaction d'ancrage | HAUTE | Interruption du service probatoire |
| Transaction non traçable ou non vérifiable | HAUTE | Perte de valeur probatoire des preuves |
| Dépendance irréversible à un tiers non contrôlé | HAUTE | Perte de souveraineté |
| Exposition de la clé privée dans des logs | CRITIQUE | Compromission silencieuse |
| Gas insuffisant sans alerte | MOYENNE | Interruption silencieuse du service |
6. Tensions et conflits non résolus¶
| Tension | Pôle A | Pôle B | Impact |
|---|---|---|---|
| Souveraineté vs blockchain publique | Infrastructure 100% UE (OVH) | Réseau Ethereum mondial | Le wallet doit signer depuis l'UE mais publier mondialement |
| HSM vs secp256k1 | HSM Cloud existant (PKCS#11) | AWS KMS (seul à supporter secp256k1 nativement) | Dépendance AWS pour la signing blockchain vs HSM pour le reste |
| Sécurité vs disponibilité | Clé ultra-protégée (HSM, rotation lente) | Service d'ancrage haute disponibilité (24/7) | La rotation de clé ou une procédure de récupération pourrait interrompre le service |
| Pérennité 50 ans vs évolution crypto | Adresse Ethereum stable sur décennies | Évolutions cryptographiques, quantum-readiness | Comment garantir la continuité d'une clé sur 50 ans ? |
7. Questions ouvertes¶
- Rotation de clé : Quelle est la politique de rotation de la clé du wallet ? Une rotation implique un changement d'adresse — comment maintenir la continuité de l'identité blockchain ?
- Seuil d'alerte gas : Quel seuil de solde minimum déclenche une alerte ? Quel mécanisme de refill ?
- Multi-environnement : Comment gérer la distinction wallet testnet / wallet mainnet en termes de sécurité ?
- Backup / disaster recovery : La procédure de récupération du wallet en cas de perte d'accès à AWS KMS est-elle documentée ?
- Custody S1/S3 : Quand les modes S1 (CloudHSM) et S3 (Hybrid) seront-ils activés ? PD-177 doit-il préparer le terrain ?
- Compliance : L'adresse Ethereum officielle doit-elle être déclarée quelque part (registre public, documentation juridique) ?
8. Indicateurs de succès¶
La story sera considérée comme satisfaisante lorsque :
- Une adresse Ethereum officielle est active
- Une transaction d'ancrage test a été émise et confirmée
- La clé privée est protégée selon les standards de sécurité internes
- Les transactions sont intégrées au registre probatoire append-only
- Un protocole de gestion / rotation / récupération est documenté
9. Intention stratégique¶
Ce besoin ne concerne pas uniquement un composant technique. Il engage :
- La crédibilité probatoire de la plateforme
- La continuité juridique des preuves
- La confiance investisseurs
- La pérennité sur 10–50 ans
Le wallet Ethereum constitue une brique d'identité publique irréversible. Sa configuration doit être pensée comme un élément fondateur de l'architecture ProbatioVault.