New answers tagged

3 votes
Accepted

Is the signature check performed when the signature is the empty vector?

For pre-Tapscript opcodes (CHECKSIG and CHECKMULTISIG), the empty signature is checked against the public key. Note that by standardness if the check fails, the signature is required to be the empty ...
Antoine Poinsot's user avatar
1 vote
Accepted

What are the all benefits/advantages of OP_CHECKSIGADD over OP_CHECKMULTISIG?

You've correctly described three of the benefits: OP_CHECKMULTISIG is inefficient, since it performs up to as many signature checks as there are public keys. OP_CHECKSIGADD always performs one check ...
Vojtěch Strnad's user avatar
5 votes
Accepted

What would happen if we provide witness program different than 32 bytes for SegWit 1?

SegWit version 1 outputs with lengths other than 32 bytes remain unencumbered, which means their validation is unchanged and they remain anyone-can-spend. From BIP341: A Taproot output is a native ...
Vojtěch Strnad's user avatar
2 votes
Accepted

Do we need a taproot commit for multisignatures if there is no script path, but we are using the MuSig2 protocol?

Is there any need for addition key tweaking if we use MuSig2 protocol for multisignature? Citing BIP341: Why should the output key always have a taproot commitment, even if there is no script path? ...
Pieter Wuille's user avatar
0 votes

Enforcing PSBT Signature Rules: Finalizer/Extractor and Deserialization Implementation

This boils down to how to treat invalid signatures provided in a PSBT. I believe there is some room for implementation-defined behaviour with regard to the finalizer role. For instance if it can get ...
Antoine Poinsot's user avatar
3 votes
Accepted

Is it true that we don't care about parity with the key path, but it is not case with the script path? (Taproot)

Correct on both accounts. In taproot spends there can actually be up to 3 kinds of keys: The internal key (before tweaking) The output key (the internal key after tweaking) Script keys (inside the ...
Pieter Wuille's user avatar
1 vote
Accepted

What is the leaf version in Taproot and how is it used?

By the definition in BIP341, the leaf version is the first byte of the control block, after masking out its bottom bit. It is certainly not the entire first byte. Yes, exactly. Currently only one ...
Pieter Wuille's user avatar
3 votes
Accepted

non-mandatory-script-verify-flag (Invalid Schnorr signature) when trying to reveal a TR output

Your transaction is a key path spend, not a script path spend (it only has one witness item, the signature). Perhaps you've calculated the sighash for a script path spend but then only included the ...
Vojtěch Strnad's user avatar
1 vote
Accepted

How to get x-only public key from the private key, and what does the obtained value represent?

What is the way to get the public key from the corresponding private key in Schnorr? Multiply the private key with the generator G (like for ECDSA) and then throw away the Y coordinate. Given the ...
Pieter Wuille's user avatar
1 vote

How to get x-only public key from the private key, and what does the obtained value represent?

In the scheme described in BIP 340, private and public keys are generated in the same way as for ECDSA in Bitcoin, with an additional step - use only the X coordinate, and assume that the Y coordinate ...
Andrew Chow's user avatar
  • 68.5k
0 votes

Why there duplicated transactions on the blockchain? (with different hashes)

These are BRC-20 mint transactions. If you look at any of the inputs, you can see it is a Taproot script path spend that includes an unexecuted branch with several data pushes, the first of which ...
Vojtěch Strnad's user avatar
1 vote

Why there duplicated transactions on the blockchain? (with different hashes)

Transaction outputs (TXOs) are uniquely identified by their outpoint. Each TXO can only be spent once. While these two transactions spend funds received to the same output script, they are spending ...
Murch's user avatar
  • 72.6k
2 votes
Accepted

How to get signature for tweaked public key in P2TR in case of multiple signature?

To sign for an aggregated public key you need to run the respective collaborative signing protocol (e.g. if you use MuSig2 key aggregation to aggregate the keys, you need to run the MuSig2 signing ...
Pieter Wuille's user avatar
2 votes
Accepted

What is the way to create public key in P2TR?

Consider two keyapirs, pubkey A with privkey a and pubkey B with privkey b. If you add the pubkeys together to get pubkey C, (A + B = C), C's private key c is also the sum of the two private keys, i.e....
Andrew Chow's user avatar
  • 68.5k

Top 50 recent answers are included