From 9f12b724761ae70d64cc64a14ecdc6b59e52229b Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 12 Jun 2015 12:33:32 +0930 Subject: [PATCH] Don't include mutual redemption in recovable commit tx output. It's not clear it's needed, and without it there's a good reason to delay dumping to the blockchain if a node becomes unreachable (since you'll get your money faster if it comes back online). Signed-off-by: Rusty Russell --- bitcoin/script.c | 30 +----------------------------- 1 file changed, 1 insertion(+), 29 deletions(-) diff --git a/bitcoin/script.c b/bitcoin/script.c index 1407831f7..013936ea5 100644 --- a/bitcoin/script.c +++ b/bitcoin/script.c @@ -338,7 +338,6 @@ bool is_p2sh(const u8 *script, size_t script_len) } /* One of: - * mysig and theirsig, OR * mysig and relative locktime passed, OR * theirsig and hash preimage. */ u8 *bitcoin_redeem_revocable(const tal_t *ctx, @@ -356,12 +355,6 @@ u8 *bitcoin_redeem_revocable(const tal_t *ctx, add_op(&script, OP_1SUB); add_op(&script, OP_IF); - /* If the top arg is a hashpreimage. */ - add_op(&script, OP_SIZE); - add_number(&script, 32); - add_op(&script, OP_EQUAL); - add_op(&script, OP_IF); - /* Must hash to revocation_hash, and be signed by them. */ RIPEMD160(rhash->u.u8, sizeof(rhash->u), rhash_ripemd); add_op(&script, OP_HASH160); @@ -370,30 +363,9 @@ u8 *bitcoin_redeem_revocable(const tal_t *ctx, add_push_key(&script, theirkey); add_op(&script, OP_CHECKSIG); - /* Otherwise, it should be both our sigs. */ - - /* FIXME: Perhaps this is a bad idea? We don't need it to - * close, and without this we force the blockchain to commit - * to the timeout: that may make a flood of transactions due - * to hub collapse less likely (as some optimists hope hub - * will return). */ - add_op(&script, OP_ELSE); - - add_number(&script, 2); - /* This obscures whose key is whose. Probably unnecessary? */ - if (key_less(mykey, theirkey)) { - add_push_key(&script, mykey); - add_push_key(&script, theirkey); - } else { - add_push_key(&script, theirkey); - add_push_key(&script, mykey); - } - add_number(&script, 2); - add_op(&script, OP_CHECKMULTISIG); - add_op(&script, OP_ENDIF); - /* Not two args? Must be us using timeout. */ add_op(&script, OP_ELSE); + add_push_bytes(&script, &locktime_le, sizeof(locktime_le)); add_op(&script, OP_CHECKSEQUENCEVERIFY); add_op(&script, OP_DROP);