mirror of
https://github.com/bitcoin/bips.git
synced 2025-02-25 07:48:05 +01:00
Replace signing with signature before validation
This commit is contained in:
parent
51c2c12158
commit
1e1795de46
1 changed files with 1 additions and 1 deletions
|
@ -89,7 +89,7 @@ The following rules apply to <code>OP_CHECKSIG</code>, <code>OP_CHECKSIGVERIFY</
|
|||
** If <code>n</code> is larger than 4 bytes, the script MUST fail and terminate immediately.
|
||||
* If the public key size is zero, the script MUST fail and terminate immediately.
|
||||
* If the public key size is 32 bytes, it is considered to be a public key as described in bip-schnorr:
|
||||
** If the signature is not the empty vector, the signature is validated according to the bip-taproot signing validation rules against the public key and the tapscript transaction digest (to be defined hereinafter) as message. Validation failure MUST cause the script to fail and terminate immediately.
|
||||
** If the signature is not the empty vector, the signature is validated according to the bip-taproot signature validation rules against the public key and the tapscript transaction digest (to be defined hereinafter) as message. Validation failure MUST cause the script to fail and terminate immediately.
|
||||
* If the public key size is not zero and not 32 bytes, the public key is of an ''unknown public key type''<ref>'''Unknown public key types''' allow adding new signature validation rules through softforks. A softfork could add actual signature validation which either passes or makes the script fail and terminate immediately. This way, new <code>SIGHASH</code> modes can be added, as well as [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-December/016549.html NOINPUT-tagged public keys] and a public key constant which is replaced by the taproot internal key for signature validation.</ref> and no actual signature verification is applied. During script execution of signature opcodes they behave exactly as known public key types except that signature validation is considered to be successful.
|
||||
* If the script did not fail and terminate before this step, regardless of the public key type:
|
||||
** If the signature is the empty vector:
|
||||
|
|
Loading…
Add table
Reference in a new issue