diff options
author | Orfeas Stefanos Thyfronitis Litos <o.thyfronitis@ed.ac.uk> | 2019-11-25 16:43:05 +0000 |
---|---|---|
committer | Pieter Wuille <pieter.wuille@gmail.com> | 2020-01-19 14:47:33 -0800 |
commit | a65101ff6d803feb582c8f21788fe5341cbff07d (patch) | |
tree | 81a2c3dfc9cc1ec66337286dc6f57292ef396d21 /bip-tapscript.mediawiki | |
parent | 79738f2410c8f263265d9dc4d7602dc8dea84713 (diff) | |
download | bips-a65101ff6d803feb582c8f21788fe5341cbff07d.tar.xz |
Replace signing with signature before validation
Diffstat (limited to 'bip-tapscript.mediawiki')
-rw-r--r-- | bip-tapscript.mediawiki | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/bip-tapscript.mediawiki b/bip-tapscript.mediawiki index a1302ec..4146f24 100644 --- a/bip-tapscript.mediawiki +++ b/bip-tapscript.mediawiki @@ -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: |