bitcoin core – Signing PSBTs to spend from Taproot multisig handle

on

|

views

and

comments


I created a 2-of-3 multisig taproot handle by following the steps outlined by Pieter Wuille on this submit utilizing importdescriptorsand deriveaddresses. His steps labored completely, and I used to be in a position to create the handle from 3 pubkeys no downside.

My downside is that I do not know find out how to spend from the funded handle (kinda an enormous deal)

I’m utilizing Bitcoin Core QT Console, 24.0rc2 on Signet.

I’m utilizing 4 completely different wallets I’ve arrange. All are descriptor wallets, however the 4th has Non-public keys Disabled so I can import the taproot descriptors and create the multisig handle.

I used getnewaddress and getaddressinfo in every of the three common descriptor wallets to get an handle and the corresponding 66-character hex pubkey.

I used these 3 pubkeys to create the taproot descriptor

0249f48bd0c87f48a3d4d0fd5f0a2571861fd1891b092a41bd3546a93bc6db97ae, 03cde9c66862a392780e6868a7fd245273eff736a516d0f950a4e027d4d83d9194, 02d56baf4e4b77932b2f195598c68b63ee98827f21acb660b34bbf3ebf1862fc2e

Utilizing this format from the above linked submit;
tr(KI,multi_a(2,K1,K2,K3))#12345678

I bought this descriptor;

tr(50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0,multi_a(2,0249f48bd0c87f48a3d4d0fd5f0a2571861fd1891b092a41bd3546a93bc6db97ae,03cde9c66862a392780e6868a7fd245273eff736a516d0f950a4e027d4d83d9194,02d56baf4e4b77932b2f195598c68b63ee98827f21acb660b34bbf3ebf1862fc2e))#s7q27ueu

For KI I used the unspendable output from BIP341 PW talked about within the above linked submit.

After utilizing importdescriptors and deriveaddresses I bought this taproot multisig handle consequently;

tb1p6vzv5za7pc9503fkvexccv4qm43z6600lhpj3k7sem9w3vdh8xjqanz5ld

I funded the handle with a transaction.

txid=071a04111096e77bfb8a5b1518b2ea5dca6adac245d41b4025fb50ed4a740819

I then created a PSBT with this command;

createpsbt 
'[{"txid": "071a04111096e77bfb8a5b1518b2ea5dca6adac245d41b4025fb50ed4a740819", "vout": 0, "sequence":1}]' 
'{"tb1qlxrmerprf9h2tgnlysltcs2lcc4dj9hjtu9se5": 0.0002}'

This returned a PBST;

cHNidP8BAFICAAAAARkIdErtUPslQBvURcLaaspd6rIYFVuK+3vnlhARBBoHAAAAAAABAAAAASBOAAAAAAAAFgAU+Ye8jCNJbqWifyQ+vEFfxirZFvIAAAAAAAAA

Decoding the PSBT returns;

{
  "tx": {
    "txid": "52063d0c2ec3f7fc60702e98c0a39e057ee71ae583ddace3d1d68f7a8cb5c125",
    "hash": "52063d0c2ec3f7fc60702e98c0a39e057ee71ae583ddace3d1d68f7a8cb5c125",
    "model": 2,
    "dimension": 82,
    "vsize": 82,
    "weight": 328,
    "locktime": 0,
    "vin": [
      {
        "txid": "071a04111096e77bfb8a5b1518b2ea5dca6adac245d41b4025fb50ed4a740819",
        "vout": 0,
        "scriptSig": {
          "asm": "",
          "hex": ""
        },
        "sequence": 1
      }
    ],
    "vout": [
      {
        "value": 0.00020000,
        "n": 0,
        "scriptPubKey": {
          "asm": "0 f987bc8c23496ea5a27f243ebc415fc62ad916f2",
          "desc": "addr(tb1qlxrmerprf9h2tgnlysltcs2lcc4dj9hjtu9se5)#jhwtg3zn",
          "hex": "0014f987bc8c23496ea5a27f243ebc415fc62ad916f2",
          "address": "tb1qlxrmerprf9h2tgnlysltcs2lcc4dj9hjtu9se5",
          "type": "witness_v0_keyhash"
        }
      }
    ]
  },
  "global_xpubs": [
  ],
  "psbt_version": 0,
  "proprietary": [
  ],
  "unknown": {
  },
  "inputs": [
    {
    }
  ],
  "outputs": [
    {
    }
  ]

Now here is the place I run into issues, I open the PSBT in Wallet1 to run walletprocesspsbtand it returns false, which usually may be tremendous, however the PSBT knowledge is unchanged, so I can inform nothing occurred and it really did not course of;

    {
  "psbt": "cHNidP8BAFICAAAAARkIdErtUPslQBvURcLaaspd6rIYFVuK+3vnlhARBBoHAAAAAAABAAAAASBOAAAAAAAAFgAU+Ye8jCNJbqWifyQ+vEFfxirZFvIAAAAAAAAA",
  "full": false
}

I get the identical ends in Wallet2 and Wallet3. These are the wallets used to create the addresses/pubkeys used within the taproot descriptor.

Then simply to see what occurred, I attempted the identical command within the pockets with disabled personal keys (the pockets I imported the tr descriptor into and created the addresses). As a word, if I run listunspent, I can see the funding tx (the funds I’m making an attempt to spend with the PSBT). This returns a unique PSBT knowledge, however nonetheless false;

{
  "psbt": "cHNidP8BAFICAAAAARkIdErtUPslQBvURcLaaspd6rIYFVuK+3vnlhARBBoHAAAAAAABAAAAASBOAAAAAAAAFgAU+Ye8jCNJbqWifyQ+vEFfxirZFvIAAAAAAAEBKxdPAAAAAAAAIlEg0wTKC74OC0fFNmZNjDKg3WItae/9wyjb0M7K6LG3OaQiFcBQkpt0waBJVLeLS2A16XpeB4paDyjsltVHv+6azoA6wGkgSfSL0Mh/SKPU0P1fCiVxhh/RiRsJKkG9NUapO8bbl66sIM3pxmhio5J4Dmhop/0kUnPv9zalFtD5UKTgJ9TYPZGUuiDVa69OS3eTKy8ZVZjGi2PumIJ/Iay2YLNLvz6/GGL8LrpSnMAhFlCSm3TBoElUt4tLYDXpel4HiloPKOyW1Ue/7prOgDrABQB8Rh5dARcgUJKbdMGgSVS3i0tgNel6XgeKWg8o7JbVR7/ums6AOsABGCDt29WnxAqM6dFJQ1DxQsSQgva1MP5WQW1URX0xZXSThwAA",
  "full": false
}

Decoding the PSBT offers this end result;

{
  "tx": {
    "txid": "52063d0c2ec3f7fc60702e98c0a39e057ee71ae583ddace3d1d68f7a8cb5c125",
    "hash": "52063d0c2ec3f7fc60702e98c0a39e057ee71ae583ddace3d1d68f7a8cb5c125",
    "model": 2,
    "dimension": 82,
    "vsize": 82,
    "weight": 328,
    "locktime": 0,
    "vin": [
      {
        "txid": "071a04111096e77bfb8a5b1518b2ea5dca6adac245d41b4025fb50ed4a740819",
        "vout": 0,
        "scriptSig": {
          "asm": "",
          "hex": ""
        },
        "sequence": 1
      }
    ],
    "vout": [
      {
        "value": 0.00020000,
        "n": 0,
        "scriptPubKey": {
          "asm": "0 f987bc8c23496ea5a27f243ebc415fc62ad916f2",
          "desc": "addr(tb1qlxrmerprf9h2tgnlysltcs2lcc4dj9hjtu9se5)#jhwtg3zn",
          "hex": "0014f987bc8c23496ea5a27f243ebc415fc62ad916f2",
          "address": "tb1qlxrmerprf9h2tgnlysltcs2lcc4dj9hjtu9se5",
          "type": "witness_v0_keyhash"
        }
      }
    ]
  },
  "global_xpubs": [
  ],
  "psbt_version": 0,
  "proprietary": [
  ],
  "unknown": {
  },
  "inputs": [
    {
      "witness_utxo": {
        "amount": 0.00020247,
        "scriptPubKey": {
          "asm": "1 d304ca0bbe0e0b47c536664d8c32a0dd622d69effdc328dbd0cecae8b1b739a4",
          "desc": "rawtr(d304ca0bbe0e0b47c536664d8c32a0dd622d69effdc328dbd0cecae8b1b739a4)#sn2t4sme",
          "hex": "5120d304ca0bbe0e0b47c536664d8c32a0dd622d69effdc328dbd0cecae8b1b739a4",
          "address": "tb1p6vzv5za7pc9503fkvexccv4qm43z6600lhpj3k7sem9w3vdh8xjqanz5ld",
          "type": "witness_v1_taproot"
        }
      },
      "taproot_scripts": [
        {
          "script": "2049f48bd0c87f48a3d4d0fd5f0a2571861fd1891b092a41bd3546a93bc6db97aeac20cde9c66862a392780e6868a7fd245273eff736a516d0f950a4e027d4d83d9194ba20d56baf4e4b77932b2f195598c68b63ee98827f21acb660b34bbf3ebf1862fc2eba529c",
          "leaf_ver": 192,
          "control_blocks": [
            "c050929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0"
          ]
        }
      ],
      "taproot_bip32_derivs": [
        {
          "pubkey": "50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0",
          "master_fingerprint": "7c461e5d",
          "path": "m",
          "leaf_hashes": [
          ]
        }
      ],
      "taproot_internal_key": "50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0",
      "taproot_merkle_root": "eddbd5a7c40a8ce9d1494350f142c49082f6b530fe56416d54457d3165749387"
    }
  ],
  "outputs": [
    {
    }
  ],
  "payment": 0.00000247
}

I attempted bringing this PSBT into the opposite 3 wallets to see if they may course of this PSBT, however all gave the identical outcomes, false, and the PSBT knowledge was unchanged.

So what ought to I be doing to get PSBTs I can truly mix and finalize?

Share this
Tags

Must-read

‘Lidar is lame’: why Elon Musk’s imaginative and prescient for a self-driving Tesla taxi faltered | Tesla

After years of promising traders that thousands and thousands of Tesla robotaxis would quickly fill the streets, Elon Musk debuted his driverless automobile...

Common Motors names new CEO of troubled self-driving subsidiary Cruise | GM

Common Motors on Tuesday named a veteran know-how government with roots within the online game business to steer its troubled robotaxi service Cruise...

Meet Mercy and Anita – the African employees driving the AI revolution, for simply over a greenback an hour | Synthetic intelligence (AI)

Mercy craned ahead, took a deep breath and loaded one other process on her pc. One after one other, disturbing photographs and movies...

Recent articles

More like this

LEAVE A REPLY

Please enter your comment!
Please enter your name here