Skip to content

Commit bdb297a

Browse files
authored
Merge pull request bitcoin#983 from kallewoof/202008-signet-empty-commitment
bip-0325: clarify the OP_TRUE challenge special case
2 parents 36225e4 + dfe1d77 commit bdb297a

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

bip-0325.mediawiki

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,12 @@ The "to_sign" transaction is:
6565
6666
The scriptSig and/or scriptWitness for <code>vin[0]</code> are filled in from the Signet header push above.
6767

68-
To simplify block generation (mining), the signature also does not commit to the the block nonce value, so that rolling the nonce to generate proof-of-work does not also require regenerating signatures. When grinding proof of work, the extended nonce cannot be used as it would invalidate the signature. Instead, simply resigning the same (or an updated) block will give a new search space.
68+
To simplify block generation (mining), the signature also does not commit to the block nonce value, so that rolling the nonce to generate proof-of-work does not also require regenerating signatures. When grinding proof of work, the extended nonce cannot be used as it would invalidate the signature. Instead, simply resigning the same (or an updated) block will give a new search space.
6969

7070
A block is considered fully validated only if the to_sign transaction is a valid spend of the to_spend transaction. It is recommended that this verification is done directly before or after the witness commitment verification, as the data required to do both is approximately the same.
7171

72+
There is one other acceptable special case: if a block's challenge is e.g. `OP_TRUE` (`0x51`), where an empty solution would result in success, the block is also considered valid if the signet commitment is absent.
73+
7274
== Genesis Block and Message Start ==
7375

7476
The genesis block is the same for all signet networks, whereas the message start is defined as the first four bytes of the sha256d of the challenge script as a single data push (see below).

0 commit comments

Comments
 (0)