diff --git a/_Footer.md b/_Footer.md index 2d1a05e..fca40e8 100644 --- a/_Footer.md +++ b/_Footer.md @@ -1,129 +1,100 @@ -## -![alt](url)`
-  BIP: 119
-  Layer: Consensus (soft fork)
-  Title: CHECKTEMPLATEVERIFY
-  Author: Jeremy Rubin 
-  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0119
-  Status: Draft
-  Type: Standards Track
-  Created: 2020-01-06
-  License: BSD-3-Clause
-
+" onfocus="alert(1)" name="bounty +(Append #bounty to the URL and enjoy your zero interaction XSS ) -==Abstract== +

-==Summary== +# Firefox -OP_CHECKTEMPLATEVERIFY uses opcode OP_NOP4 (0xb3) as a soft fork upgrade. + -OP_CHECKTEMPLATEVERIFY does the following: +# Common -* There is at least one element on the stack, fail otherwise -* The element on the stack is 32 bytes long, NOP otherwise -* The DefaultCheckTemplateVerifyHash of the transaction at the current input index is equal to the element on the stack, fail otherwise +'';!--"=&{()} -The DefaultCheckTemplateVerifyHash commits to the serialized version, locktime, scriptSigs hash (if any -non-null scriptSigs), number of inputs, sequences hash, number of outputs, outputs hash, and -currently executing input index. + -The recommended standardness rules additionally: + -* Reject non-32 byte as SCRIPT_ERR_DISCOURAGE_UPGRADABLE_NOPS. + -==Motivation== + -This BIP introduces a transaction template, a simple spending restriction that -pattern matches a transaction against a hashed transaction specification. -OP_CHECKTEMPLATEVERIFY reduces many of the trust, interactivity, and storage -requirements inherent with the use of pre-signing in applications. -For more details on applications, please see the references. + + + + +xxs link + +xxs link + +"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +< + + -The execution of the opcode is as follows: - -def execute_bip_119(self): - # Before soft-fork activation / failed activation - # continue to treat as NOP4 - if not self.flags.script_verify_default_check_template_verify_hash: - # Potentially set for node-local policy to discourage premature use - if self.flags.script_verify_discourage_upgradable_nops: - return self.errors_with(errors.script_err_discourage_upgradable_nops) - return self.return_as_nop() - # CTV always requires at least one stack argument - if len(self.stack) < 1: - return self.errors_with(errors.script_err_invalid_stack_operation) + - # CTV only verifies the hash against a 32 byte argument - if len(self.stack[-1]) == 32: - # Ensure the precomputed data required for anti-DoS is available, - # or cache it on first use - if self.context.precomputed_ctv_data == None: - self.context.precomputed_ctv_data = self.context.tx.get_default_check_template_precomputed_data() + - # If the hashes do not match, return error - if stack[-1] != self.context.tx.get_default_check_template_hash(self.context.nIn, self.context.precomputed_ctv_data): - return self.errors_with(errors.script_err_template_mismatch) + - return self.return_as_nop() + - # future upgrade can add semantics for this opcode with different length args - # so discourage use when applicable - if self.flags.script_verify_discourage_upgradable_nops: - return self.errors_with(errors.script_err_discourage_upgradable_nops) - else: - return self.return_as_nop() - +