multi signature : Puis-je signer une transaction multisig uniquement avec une clé privée dans un portefeuille basé sur un descripteur ?


Toutes les clés publiques ou script d'échange/script de témoin sont requis pour signer la transaction lors de la dépense de Bitcoin multisig UTXO.

Une expérience pour voir si vous pouvez signer la transaction sans clés publiques  :

  • Exécutez bitcoind -signet=1 -rpcport=38332 -rpcuser=user -rpcpassword=password
  • Créez 3 portefeuilles m1, m2 et m3
  • Obtenez 3 clés publiques de chaque portefeuille  :

    « scriptPubKey » : «  » « witness_program » : « 3dc458fdd6d8 « , « pubkey » : «  », « ischange » : false, « timestamp » : 1663309171, « hdkeypath » : « m/0'/0'/1' », « hdseedid » : «  », « hdmasterfingerprint » : « 045471ed », « labels » : [

    multi signature : Puis-je signer une transaction multisig uniquement avec une clé privée dans un portefeuille basé sur un descripteur ?

    «  »

    ]

  • Créez 2 multisig sur 3 avec les clés publiques  :

    « redeemScript » :  »  »

  • 001 sBTC à l'adresse multisig à l'aide du robinet de signet  :

  • Créez un PSBT pour dépenser cet UTXO  :

    \ »vout\ » :1}] » « [{\ »\ » :\ »0

  • combinez avec combinepsbt suivi de finalizepsbt

  • Importez l'adresse multisig dans m1, le descripteur (contient toutes les clés publiques) dans m2 et le script d'échange dans le portefeuille m3  :
  • « timestamp » : »now »

    [

    « success » : true

    ]

    [

    « success » : true

    ]

    « redeemscript » : «  »

    [

    « success » : true

    ]

  • Essayez de le signer avec m1 et m2 ou m1 et m3. Cela ne fonctionnera pas.

    « complet » : false } $ bitcoin-cli -rpcwallet=m2 walletprocesspsbt qSibYoBye+////AZBfAQAAAAAAFgAUZ+PY/PmXCW0oCRKtKRmzbgdil++Y2UW////8CMew0w ++FwWH1qYBAAAA {  » psbt » : « +////AZBfAQAAAAAFgAUZ+PY/PmXCW0oCRKtKRmzbgdil+ VId+Y2UW////++ +/ +RFJqg/2yyJ3oA1bu2hu/2zc4obO3DDxx6pX++y5M3l2S7MjGaY2fCrJ/L3aTjN3cIyM nkExzmGAiIGA35EUmqD/bLInegDVu7aG7/ /mz3FgQ9xFj9AAA= »

    Cependant, cela fonctionnera avec m2 et m3  :

    « complete » : false } $ bitcoin-cli -rpcwallet=m3 walletprocesspsbt oAu revoir+// //AZBfAQAAAAAAFgAUZ+PY/PmXCW0oCRKtKRmzbgdil++Y2UW////+bhufb1caCGA ++/q0nJJmgIgWM3ZX3ryJED +RFJqg/2yyJ3oA1bu2hu/ 2zc4obO3DDxx6pX++y5M3l2S7MjGaY2fCrJ//bLInegDVu7aG7/ /mz3FgQ9xFj9AAA= { « psbt » :  » +////AZBfAQAAAAAAFgAUZ+PY/PmXCW0oCRKtKRmzbgdil++Y2U W////++FwWH1qYBAAEH/ 1bkrG5E3+/SOsgaFtU5d7TFj3Em6Cy//x +/q7sQEZTrgAA  »

  • Cette transaction pourra être finalisée et diffusée :

    « complet » : vrai } $ bitcoin-cli sendrawtransaction

  • Émetteur  :

    com/1440000bytes/p2p