# Vérification de Compatibilité - SIGNETCHALLENGE et PRIVKEY **Auteur** : Équipe 4NK **Date** : 2026-01-23 **Version** : 1.0 ## Résumé Vérification de la compatibilité entre le SIGNETCHALLENGE et la PRIVKEY configurés avant l'utilisation des descriptor wallets avec Bitcoin Core 30.2. ## Résultat ✅ **COMPATIBLE** - Les clés sont compatibles et correctement configurées. ## Détails de la Vérification ### 1. Format SIGNETCHALLENGE Le SIGNETCHALLENGE a le format : `5121[PUBKEY]51ae` - **5121** : Préfixe pour script P2PK - **[PUBKEY]** : Clé publique compressée (66 caractères hex) - **51ae** : Suffixe OP_CHECKSIG **Exemple** : ``` SIGNETCHALLENGE: 5121028b8d4cea1b3d8582babc8405bc618fbbb281c0f64e6561aa85968251931cd0a651ae Clé publique extraite: 028b8d4cea1b3d8582babc8405bc618fbbb281c0f64e6561aa85968251931cd0a6 ``` ### 2. Correspondance PRIVKEY → PUBKEY La PRIVKEY doit pouvoir dériver la clé publique qui correspond à celle dans le SIGNETCHALLENGE. **Vérification** : ```bash PRIVKEY=$(grep PRIVKEY .env | cut -d'=' -f2) bitcoin-cli getdescriptorinfo "pk($PRIVKEY)" | jq -r '.descriptor' # Doit contenir la même clé publique que dans SIGNETCHALLENGE ``` **Résultat** : ✅ La PRIVKEY dérive correctement vers la clé publique du SIGNETCHALLENGE. ### 3. Descriptor Wallet Le descriptor `pk()` est importé dans le wallet avec : - `hasprivatekeys: true` ✅ - `issolvable: true` ✅ - `descriptor: pk(028b8d4cea1b3d8582babc8405bc618fbbb281c0f64e6561aa85968251931cd0a6)#...` ✅ ## Conclusion Les clés configurées avant l'utilisation des descriptor wallets sont **compatibles** avec Bitcoin Core 30.2 et les descriptor wallets. **Pas besoin de redémarrer une nouvelle chaîne.** Le problème de mining ("PSBT signing failed") vient d'ailleurs, probablement lié à : - La façon dont Bitcoin Core 30+ gère les descriptors pour signer les transactions signet - Un problème avec `walletprocesspsbt` et les PSBT spéciaux du signet - Une limitation ou un bug dans Bitcoin Core 30.2 pour le mining signet avec descriptor wallets ## Commandes de Vérification ```bash # Vérifier la correspondance PRIVKEY=$(grep PRIVKEY .env | cut -d'=' -f2) SIGNETCHALLENGE=$(grep SIGNETCHALLENGE .env | cut -d'=' -f2) PUBKEY_FROM_CHALLENGE="${SIGNETCHALLENGE:4:66}" PUBKEY_FROM_PRIVKEY=$(bitcoin-cli getdescriptorinfo "pk($PRIVKEY)" | jq -r '.descriptor' | grep -o "02[0-9a-f]\{64\}") if [ "$PUBKEY_FROM_CHALLENGE" = "$PUBKEY_FROM_PRIVKEY" ]; then echo "✅ Compatible" else echo "❌ Incompatible" fi ``` --- **Dernière mise à jour** : 2026-01-23