Ohhh... right.

This commit is contained in:
Joseph Poon 2015-12-29 05:46:03 -08:00
parent 1e79ad7236
commit ba56797b43

@ -105,16 +105,19 @@ Recipient+Sender agree to cancel the payment immediately (otherwise it will
wait until the timeout). wait until the timeout).
Also: THE ABOVE SCRIPT IS NOT THE MOST EFFICIENT SCRIPT POSSIBLE FOR THIS USE Also: THE ABOVE SCRIPT IS NOT THE MOST EFFICIENT SCRIPT POSSIBLE FOR THIS USE
CASE!!! This is to illustrate a similar conceptual use as current 2-of-3 CASE! This is to illustrate a similar conceptual use as current 2-of-3
multisig. Realistically, you want to do <EscrowPreimageR> *OR* multisig. You want to do <EscrowPreimageR> *OR* <SenderPreimageR> since the
<SenderPreimageR> since the recipient will always redeem if they can. So the recipient will always redeem if they can. So the hash code block would be
hash code block would be instead: instead:
OP_HASH160 <EscrowHash> OP_EQUAL OP_HASH160 <EscrowHash> OP_EQUAL
//Stack: <BobSig> <0> <RecipientPreimageR> <OP_1> //Stack: <BobSig> <0> <RecipientPreimageR> <OP_1>
OP_SWAP OP_SWAP
//Stack: <BobSig> <OP_1> <0> //Stack: <BobSig> <OP_1> <0>
OP_HASH160 <SenderHash> OP_EQUAL OP_HASH160 <SenderHash> OP_EQUAL
//Stack: <BobSig> <OP_1> <OP_0> //Stack: <BobSig> <OP_1> <OP_0>
OP_BOOLOR OP_BOOLOR
//Stack: <BobSig> <OP_1> //Stack: <BobSig> <OP_1>
OP_VERIFY OP_VERIFY
The tradeoff is that if the escrow fucks up, then payment can be forced.
Whereas the original script doesn't have that problem if the receiver does not
misbehave.