diff --git a/bip-0322.mediawiki b/bip-0322.mediawiki
index 4eda7b0b..5f4704d0 100644
--- a/bip-0322.mediawiki
+++ b/bip-0322.mediawiki
@@ -74,7 +74,7 @@ The to_sign
transaction is:
vout[0].nValue = 0
vout[0].scriptPubKey = OP_RETURN
-A full signature consists of the base64-encoding of the to_spend
and to_sign
transactions concatenated in standard network serialisation.
+A full signature consists of the base64-encoding of the to_sign
transaction in standard network serialisation.
=== Full (Proof of Funds) ===
@@ -102,11 +102,9 @@ A validator is given as input an address ''A'' (which may be omitted in a proof-
Validation consists of the following steps:
# Basic validation
-## Decode ''s'' as the transactions to_sign
and to_spend
-## Confirm that message_hash
is the correct hash of ''m''
-## Confirm that message_challenge
is the scriptPubKey corresponding to ''A'' if ''A'' is present, and otherwise must be OP_TRUE
-## Confirm that all other fields are set as specified above; in particular that
-##* to_spend
has exactly one input and one output
+## Compute the transaction to_spend
from ''m'' and ''A''
+## Decode ''s'' as the transaction to_sign
+## If ''s'' was a full transaction, confirm all fields are set as specified above; in particular that
##* to_sign
has at least one input and its first input spends the output of to_spend
##* to_sign
has exactly one output, as specified above
## Confirm that the two transactions together satisfy all consensus rules, except for to_spend
's missing input, and except that ''nSequence'' of to_sign
's first input and ''nLockTime'' of to_sign
are not checked.
@@ -120,6 +118,7 @@ Validation consists of the following steps:
## MINIMALIF
: the argument of IF
/NOTIF
must be exactly 0x01 or empty push
## If any of the above steps failed, the validator should stop and output the ''invalid'' state.
# Check the **upgradeable rules**
+## The version of to_sign
must be 0 or 2.
## The use of NOPs reserved for upgrades is forbidden.
## The use of segwit versions greater than 0 are forbidden.
## If any of the above steps failed, the validator should stop and output the ''inconclusive'' state.
@@ -137,7 +136,7 @@ Signers who control an address ''A'' who wish to sign a message ''m'' act as fol
They then encode their signature, choosing either ''simple'' or ''full'' as follows:
* If they added no inputs to to_sign
, left nSequence and nLockTime at 0, and ''A'' is a Segwit address (either pure or P2SH-wrapped), then they may base64-encode message_signature
-* Otherwise they must base64-encode the concatenation of to_spend
followed by to_sign
.
+* Otherwise they must base64-encode to_sign
.
== Compatibility ==