From da503c1ee1cd4efc3c4d7cd49b5bd7eb05302c23 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Mon, 20 Jul 2015 14:21:57 +0930 Subject: [PATCH] doc: simplify anchor output script, fix users. It's slightly clearer to do the "2" outside the branch. Also, spending it requires the extra 0 due to OP_CHECKMULTISIG bug. Signed-off-by: Rusty Russell --- doc/deployable-lightning.lyx | 44 +++++++++++++++++++---------------- doc/deployable-lightning.pdf | Bin 559967 -> 560118 bytes 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/doc/deployable-lightning.lyx b/doc/deployable-lightning.lyx index 7e45a74a3..421a071a1 100644 --- a/doc/deployable-lightning.lyx +++ b/doc/deployable-lightning.lyx @@ -1362,10 +1362,6 @@ OP_IF \begin_deeper \begin_layout Description -2 -\begin_inset space ~ -\end_inset - Should be signed by B's escape key. \end_layout @@ -1376,10 +1372,6 @@ OP_ELSE \begin_deeper \begin_layout Description -2 -\begin_inset space ~ -\end_inset - Should be signed by B's commitment key. \end_layout @@ -1388,6 +1380,14 @@ OP_ELSE OP_ENDIF \end_layout +\begin_layout Description +2 +\begin_inset space ~ +\end_inset + +OP_SWAP Put 2 before B's key on the stack. +\end_layout + \begin_layout Description \begin_inset space ~ @@ -1413,20 +1413,24 @@ The escape transaction for A spends A's anchor output and reveals A's secret. Escape Input Script \end_layout +\begin_layout Standard +The extra 0 at the start is due to the OP_CHECKMULTISIG out-by-one-bug. +\end_layout + \begin_layout Description - +0 \begin_inset space ~ \end_inset - + \begin_inset space ~ \end_inset -SECRET + \begin_inset space ~ \end_inset -1 + \begin_inset space ~ \end_inset @@ -1544,19 +1548,19 @@ This is identical to the normal escape input script. \end_layout \begin_layout Description - +0 \begin_inset space ~ \end_inset - + \begin_inset space ~ \end_inset -SECRET + \begin_inset space ~ \end_inset -1 + \begin_inset space ~ \end_inset @@ -1685,19 +1689,19 @@ Commitment Input Script \begin_layout Standard The commitment transaction has two inputs; one which spends each anchor output. - The two zeroes indicate it is not revealing the secret: + The zero after the signature indicates it is not revealing the secret: \end_layout \begin_layout Description - +0 \begin_inset space ~ \end_inset - + \begin_inset space ~ \end_inset -0 + \begin_inset space ~ \end_inset diff --git a/doc/deployable-lightning.pdf b/doc/deployable-lightning.pdf index ea57d6ba7a8f0cce0e1fa58d65fd08fbf4d81fab..f78d939ad675326a946364b49d33410d0be0af18 100644 GIT binary patch delta 23087 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 delta 22921 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