Questions tagged [taproot]

Taproot is an activated Bitcoin softfork designed to improve scripting and multisignature capabilities.

Filter by
Sorted by
Tagged with
2 votes
1 answer
60 views

How to represent a taproot output with more than 2 scriptleaves as a descriptor?

I read in the Bitcoin Core doc an example of a taproot output descriptor with 2 script paths : tr(c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5,{pk(...
  • 541
2 votes
0 answers
35 views

How does OP_CHECKSIG work for Taproot script path spending?

I've been studying all the ways Taproot transactions can be spent and I can get all of them to work except for when script path spending is used and the script is executed. Transaction 0c045625... is ...
1 vote
1 answer
34 views

Merkle root for Taproot key path spending?

I'm referring to a page of Taproot test vectors provided in BIP 341. In the section called keyPathSpending and then inputSpending under that, there are 7 JSON objects that provide parameters to test ...
3 votes
2 answers
172 views

Why isn't it possible to add an OP_RETURN (or some arbitrary script) inside a taproot script path with a descriptor?

I'm reading the Bitcoin Core's descriptor documentation and I noticed that the raw() SCRIPT expression can only be used at descriptor top-level. Indeed when called with this descriptor ...
  • 541
2 votes
0 answers
54 views

Why is the Taproot Merkle path length limited to 128?

From BIP341: Why is the Merkle path length limited to 128? The optimally space-efficient Merkle tree can be constructed based on the probabilities of the scripts in the leaves, using the Huffman ...
4 votes
2 answers
632 views

Spendable by me or deposit to exchange after 5 years?

It is my understanding that taproot enables multiple spending conditions for an address, if this is correct, can I do something like this in Bitcoin?: I send bitcoin to a taproot address where I want ...
  • 93
1 vote
1 answer
51 views

Are TapLeaf versions meant to be incremented by two?

With the current TapLeaf version, 0xc0 (192) [parity bit + version] can either be 0xc0 or 0xc1. I assume picking the next TapLeaf version as 0xc1 (193) would not work since [parity bit + version] can ...
  • 164
1 vote
0 answers
21 views

Hash outputs in Taproot transactions

I'm using the test vector from Bip341 to generate the Hash outputs in the test transaction. My procedure is as follows: Serialise amount as 8-byte little endian Serialise scriptpubkey including ...
  • 131
2 votes
1 answer
48 views

Public keys for BIP-118 SIGHASH_ANYPREVOUT

I am reading specifications of BIP-118 that introduces the new signing mode SIGHASH_ANYPREVOUT. In the bip specifications, it is written that the addresses have length 33-bytes or 1-bytes length. In ...
  • 143
1 vote
1 answer
69 views

What is the compact_size function used in BIP341?

BIP341 uses a function named compact_size in two instances: when constructing the tapleaf hash, it takes as input the size of the spending script, and when constructing the signature message, if the ...
0 votes
1 answer
40 views

How does the CHECKSIGADD opcode work? How does it compare to its predecessor CHECKMULTISIG?

How does the CHECKSIGADD opcode (defined in the Tapscript BIP) BIP342 work? How does it compare to its predecessor CHECKMULTISIG? The design of CHECKSIGADD was discussed in this StackExchange question....
4 votes
2 answers
347 views

Why do invalid signatures in OP_CHECKSIGADD not push to the stack?

I've been working through the static test vectors provided by bitcoin core to implement an interpreter. Some surprising behavior I found was that in the case of OP_CHECKSIGADD, if an invalid signature ...
2 votes
1 answer
102 views

Why does `OP_CHECKSIGADD` allow TAPROOT keyspends?

My understanding is this sig version is only for taproot keyspends, why is it allowed to be used in OP_CHECKSIGADD? https://github.com/bitcoin/bitcoin/blob/e826b22da252e0599c61d21c98ff89f366b3120f/src/...
8 votes
1 answer
306 views

BIP-341: Should key-path-only P2TR be eschewed altogether?

Consider BIP-341 "Constructing and spending Taproot outputs" where it says If the spending conditions do not require a script path, the output key should commit to an unspendable script ...
  • 241
4 votes
1 answer
71 views

Which wallets or libraries besides core support (or will support) P2TR descriptors?

I want to help test the WIP Bitcoin Dev Kit "Add support for Taproot and tr() descriptors", PR #593 against other implementations besides Bitcoin Core (already testing again Core 22.0). In ...
3 votes
2 answers
88 views

What are some projects that have taken advantage of Bitcoin's taproot upgrade so far?

Are there any projects as of 2022 May that have taken advantage of Bitcoin's taproot upgrade? I'm still trying to understand what can be built with this taproot feature.
0 votes
2 answers
82 views

How would one turn a Miniscript tree into a Taproot tree with Taproot'd Miniscript?

How would one turn a Miniscript "tree" into a Taproot tree with Taproot'd Miniscript? (To be clear unlike a Taproot tree a Miniscript tree likely would't be surfaced to the user. Breaking ...
1 vote
0 answers
367 views

crypto.com defiwallet sends bitcoin to random segwit address if a bitcoin taproot address is selected after confirmation of the correct address [closed]

UPDATE: Crypto.com acknowledge the bug and refunded the full amount, at the time of writing this update the crypto.com team confirmed that they are working on fixing the bug and the defi wallet will ...
0 votes
1 answer
68 views

Is it possible to create a taproot address that a quantum computer can't spend via the keyspend path?

I'm wondering if there's any valid public key that is known to not have a corresponding private key that can be used as the primary taproot key. The goal would be to ensure that the address can't be ...
  • 1,501
3 votes
1 answer
141 views

Taproot signing with PSBT: How to determine signing method?

As far as I can tell there are three ways you can produce a valid Schnorr signature in a Taproot environment: For a p2tr output that uses a BIP-0086 commitment (key spend, sign with internal key, ...
  • 228
4 votes
1 answer
236 views

Is taproot considered nonstandard to older clients?

When asking an older bitcoind node to broadcast a transaction which includes or spends a p2tr output, how will they respond? Will they broadcast the transaction? Will only certain bitcoind versions ...
  • 1,389
3 votes
1 answer
441 views

How do I know if the Bitcoin Core software on my computer is running taproot, segwit or something else?

I would like to check this. I imagine there must be some command to verify the current version of node software Bitcoin I am running ('version' is probably not the correct name here. Maybe 'soft fork' ...
0 votes
0 answers
27 views

Unknown new rules activated (versionbit 1) when running Core v22.0.0 on testnet [duplicate]

I have got "Unknown new rules activated (versionbit 1)". I am running Bitcoin Core v22.0.0 on testnet. This seems to be the last version as of today (April 17 2022). I am running a taproot ...
2 votes
1 answer
125 views

What does it mean to tweak a public key?

Public key tweaks are often talked about in the context of taproot but I cannot find a definition of what precisely "tweaking" means.
  • 25
1 vote
1 answer
97 views

Taproot: Multisig Keypath - different bech32 addresses for same keys

I have a keypath (which is a 2-of-2 multisig) and a tweak attached to it, this tweak is responsible for the scriptpath. The scriptpath only has a backup public key (used rarely). Alice + Bob's public ...
  • 133
2 votes
1 answer
68 views

Can you derive the witness program from a taproot address?

Say I have a taproot address with a valid scriptpath (along with the mandatory keypath). Is it possible to derive the witness program (schnorr signature of the taproot key) from the address?
  • 1,389
0 votes
1 answer
49 views

Keypath spending: Verify destination address across address formats [duplicate]

In a Tapscript Keypath Transaction (there is an unrelated Scriptpath too) I can have outputs to all possible address? (I.e. to P2PKH, P2SH, P2WPKH / P2WSH and P2TR) I have a list of addresses in all ...
  • 133
1 vote
0 answers
44 views

which wallets/softwares utilize taproot capabilites?

this question is not about being able to pay/receive to taproot addresses as I know there's a list for that here. I'm curious to see if anyone knows about wallets/software that utilize taproot ...
1 vote
0 answers
59 views

"Non-mandatory-script-verify-flag (Invalid Schnorr Signature)" on testnet

I'm using the FROST algorithm to create a threshold signature for some taproot output (using this code). When I tried using it on the testnet, it works most of the time but from time to time I would ...
  • 65
0 votes
0 answers
33 views

Bitcoin transactions towards and from a Taproot

I am trying to solve a problem that was given to me as study material for a coding test. The problem requests the following: Create two Bitcoin transactions in testnet, one spending towards a Taproot ...
3 votes
2 answers
271 views

How to open a Taproot channel on c-lightning node?

Will new channels automatically use Taproot now, or is there something to activate in c-lightning to make it use Taproot?
  • 85
0 votes
1 answer
69 views

Would you need to access your cold wallet to generate a taproot xpub?

If you would like to generate a taproot wallet with your deep cold wallet seed, would you need to access the wallet to generate it? Say if the seed/master pubkey is already used for native or nested ...
3 votes
1 answer
213 views

Support for taproot multisig descriptors

I’m trying to understand the current state of descriptor support for taproot, with a specific focus on multisig wallets (When I say “multisig” I mean k-of-n threshold signing, rather than a schnorr ...
  • 143
21 votes
1 answer
6k views

Is it possible to convert a taproot address into a native segwit address?

A few days ago I requested a BTC withdrawal on Binance, I used a bc1p address and the request went through as usual without any issue or warning. (my first time using taproot address). Binance checked ...
  • 213
0 votes
1 answer
48 views

Making and trading tokens with bitcoin like with solidity and ethereum metamask

So I've learned how to make erc 20 tokens using solidity on the ethereum blockchain and move them around with metamask. Is there a similar process for making bitcoin tokens and moving those around ...
  • 1
10 votes
1 answer
2k views

What is the script assembly and execution in P2TR spend (spend from Taproot)

So I have found and fundamentally understand how P2PKH is assembled from inputs and outputs to create a bitcoin forth-like script for execution. I looked at the SegWit BIP examples section and I found ...
  • 421
0 votes
0 answers
38 views

Does Taproot expand the potential for smart contracts? If so, how? [duplicate]

I have heard that Taproot will expand BTC's potential for smart contracts. Is this true? If it is, how so?
  • 244
6 votes
2 answers
856 views

How can I find samples for P2TR transactions on mainnet?

Can I ask for a P2TR transaction id example past block 709632? I was trying to debug one of my scripts and something is wrong when searching for witness_v1_keyhash, and couldn't manually find one in ...
  • 1,594
3 votes
1 answer
69 views

How would PTLC's change invoices?

I am wondering how would switching from HTLCs to PTLCs change invoices? I assume there would not be a payment-hash anymore, but what would replace it. A payment-point? Also, is there already support ...
6 votes
1 answer
262 views

Can Schnorr aggregate signatures be nested inside other Schnorr aggregate signatures?

The way I've understood Schnorr signatures is that multiple parties can combine their signatures into a one shared signature, thus obfuscating the number of participants involved in the signature ...
  • 163
1 vote
2 answers
165 views

Is it possible to run a full node lightning network bitcoin core 22.0 on a 32 bit computer?

I have an old pc with Atom N270 that I would like to use as full node, how can I do that?
  • 11
1 vote
1 answer
365 views

Multisig transactions after taproot

Before taproot when we had a multisig transaction the vout had an array of addresses(Image 1). Now, this multisig transaction in Bitcoin core v22.0 is represented only as a multisig type without the ...
1 vote
1 answer
75 views

Flag -deprecatedrpc=addressess - Bitcoin core

How long do we will have the -deprecatedrpc=addressess flag for Bitcoin core. Is it just for the v22.0 or will it be available for all minor and patch releases until v23.0?
1 vote
1 answer
53 views

Does Bitcoin Core 0.21.1 support taproot?

Now the node use Bitcoin Core 0.21.1.
1 vote
1 answer
115 views

Issue when broadcasting Taproot transaction to older nodes

I'm trying to broadcast a Taproot transaction to random nodes across the network (Testnet3). When I try to broadcast to older nodes like 0.18.0, I get the error "Witness version reserved for soft-...
's user avatar
2 votes
1 answer
100 views

Where can I get some MuSig2 test vectors?

I am writing a MuSig2 library and need some test vectors. This should include the hash functions used.
  • 7,639
1 vote
1 answer
91 views

How to identify Taproot transaction using big query?

From bitcoin magazine, I saw that When Taproot/Schnorr goes live soon, they will use the new witness version one to distinguish them from older Segregated Witness transactions. But when I check the ...
1 vote
1 answer
61 views

Is it possible to combine a native threshold-signature script with taproot?

Assuming we have N taproot addresses, is it possible to create an output that requires the signatures of t out N of those taproot addresses to be spent? I'm looking at a non-interactive protocol (i.e.,...
  • 65
2 votes
1 answer
127 views

Will taproot change public key generation?

Does taproot change how private/public keys/addresses are generated, or just how the transactions are signed? Also, I'd appreciate if someone could recommend me where to look for official sources of ...
2 votes
1 answer
92 views

What is encoded in the first taproot enabled block?

There are a bunch of encoded messages in the first taproot enabled block in op_return outputs. What is encoded there?