summaryrefslogtreecommitdiff
path: root/bip-0325.mediawiki
diff options
context:
space:
mode:
Diffstat (limited to 'bip-0325.mediawiki')
-rw-r--r--bip-0325.mediawiki8
1 files changed, 5 insertions, 3 deletions
diff --git a/bip-0325.mediawiki b/bip-0325.mediawiki
index 8e447bb..e1e2773 100644
--- a/bip-0325.mediawiki
+++ b/bip-0325.mediawiki
@@ -27,8 +27,8 @@ A new type of network ("signet"), which takes an additional consensus parameter
The witness commitment of the coinbase transaction is extended to include a secondary commitment (the signature/solution) of either:
- 1-4 bytes - Push the following (4 + x + y) bytes
- 4 bytes - Signet scriptSig header (0xecc7daa2)
+ 1-5 bytes - Push the following (4 + x + y) bytes
+ 4 bytes - Signet header (0xecc7daa2)
x bytes - scriptSig
y bytes - scriptWitness
@@ -64,10 +64,12 @@ The "to_sign" transaction is:
The scriptSig and/or scriptWitness for <code>vin[0]</code> are filled in from the Signet header push above.
-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.
+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.
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.
+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.
+
== Genesis Block and Message Start ==
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).