From b4a7d21962a1f897e8bd034ef536940247a4d505 Mon Sep 17 00:00:00 2001 From: Nathan Wilcox Date: Wed, 9 Mar 2016 14:14:26 -0800 Subject: [PATCH] Specifying cryptographic binding of Pours to the containing transaction more explicitly, without Bitcoin Script. Needs to define how SIGHASH_ALL covers Pours. --- protocol/protocol.tex | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/protocol/protocol.tex b/protocol/protocol.tex index 301642a..a195d50 100644 --- a/protocol/protocol.tex +++ b/protocol/protocol.tex @@ -231,8 +231,8 @@ \newcommand{\vpubNewField}{\mathtt{vpub\_new}} \newcommand{\vsum}[2]{\smashoperator[r]{\sum_{#1}^{#2}}} \newcommand{\anchorField}{\mathtt{anchor}} -\newcommand{\scriptSig}{\mathtt{scriptSig}} -\newcommand{\scriptPubKey}{\mathtt{scriptPubKey}} +\newcommand{\malleabilitySig}{\mathtt{malleabilitySig}} +\newcommand{\malleabilityPubKey}{\mathtt{malleabilityPubKey}} \newcommand{\serials}{\mathtt{serials}} \newcommand{\commitments}{\mathtt{commitments}} \newcommand{\ephemeralKey}{\mathtt{ephemeralKey}} @@ -765,11 +765,9 @@ into the value pool. some block height in the past, or the merkle root produced by a previous pour in this transaction. \sean{We need to be more specific here.} -\item $\scriptPubKey$ which is a \script that creates conditions for acceptance of a -\PourDescription in a transaction. +\item $\malleabilityPubKey$ which is a ecdsa public key used to bind a Pour to the containing transaction. -\item $\scriptSig$ which is a \script used to satisfy the conditions of the -$\scriptPubKey$. +\item $\malleabilitySig$ which is an ecdsa signature used to bind a Pour to the containing transaction. \item $\serials$ which is an $\NOld$ size sequence of serials $\snOld{\allOld}$. @@ -813,7 +811,7 @@ $\PourDescription$. \bitbox{256}{\hfill 256 bit $\snOld{\mathrm{1}}$\hfill...\;} & \bitbox{256}{256 bit $\snOld{\NOld}$} & \bitbox{256}{$\RandomSeed$} - \bitbox{256}{$\scriptPubKey$} + \bitbox{256}{$\malleabilityPubKey$} \end{bytefield} \end{lrbox} @@ -832,9 +830,9 @@ identified by that previous $\PourDescription$'s $\anchor$. \subparagraph{Non-malleability} -A \PourDescription is valid if the script formed by appending $\scriptPubKey$ to -$\scriptSig$ returns $true$. The $\scriptSig$ is cryptographically bound to -$\PourProof$. +A \PourDescription is valid if $\malleabilitySig$ over the {SIGHASH\_ALL} transaction hash is signed by the associated $\malleabilityPubKey$. The $\malleabilitySig$ is cryptographically bound to $\PourProof$. + +\nathan{FIXME: The {SIGHASH\_ALL} definition must be extended to cover the appropriate Pour descriptor fields.} \subparagraph{Balance}