diff --git a/protocol/protocol.tex b/protocol/protocol.tex index 63b41b1f..e8085342 100644 --- a/protocol/protocol.tex +++ b/protocol/protocol.tex @@ -220,7 +220,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \numberwithin{theorem}{subsection} -% terminology +% Terminology \newcommand{\term}[1]{\textsl{#1}\kern 0.05em\xspace} \newcommand{\titleterm}[1]{#1} @@ -473,7 +473,8 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\xPedersenValueCommitments}{\term{Pedersen value commitments}} \newcommand{\distinctXCriterion}{\term{distinct-$x$ criterion}} -% conventions +% Conventions + \newcommand{\bytes}[1]{\underline{\raisebox{-0.22ex}{}\smash{#1}}} \newcommand{\zeros}[1]{[0]^{#1}} \newcommand{\bit}{\mathbb{B}} @@ -547,7 +548,8 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\lincomb}[1]{(\kern-.025em{#1}\kern-0.04em)} \newcommand{\constraint}[3]{\lincomb{#1}\hairspace \times\hairspace \lincomb{#2}\hairspace =\hairspace \lincomb{#3}} -% key pairs: +% Key pairs + \newcommand{\PaymentAddress}{\mathsf{addr_{pk}}} \newcommand{\DiversifiedPaymentAddress}{\mathsf{addr_{d}}} \newcommand{\PaymentAddressLeadByte}{\hexint{16}} @@ -598,6 +600,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\TransmitPrivateSup}[1]{\mathsf{sk}^{#1}_\mathsf{enc}} % Sapling + \newcommand{\AuthPrivateSeed}{\mathsf{sk}} \newcommand{\AuthPrivateSeedLength}{\mathsf{\ell_{\AuthPrivateSeed}}} \newcommand{\AuthSignPrivate}{\mathsf{ask}} @@ -608,6 +611,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\DiversifiedTransmitPublic}{\mathsf{pk}_\mathsf{d}} % PRFs + \newcommand{\PRF}[2]{\mathsf{{PRF}^{#2}_\mathnormal{#1}}} \newcommand{\PRFaddr}[1]{\PRF{#1}{addr}} \newcommand{\PRFaddrSapling}[1]{\PRF{#1}{addrSapling}} @@ -627,6 +631,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\Uncommitted}{\mathsf{Uncommitted}} % Symmetric encryption + \newcommand{\Sym}{\mathsf{Sym}} \newcommand{\SymEncrypt}[1]{\mathsf{Sym.}\mathtt{Encrypt}_{#1}} \newcommand{\SymDecrypt}[1]{\mathsf{Sym.}\mathtt{Decrypt}_{#1}} @@ -646,6 +651,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\CryptoBoxSeal}{\mathsf{crypto\_box\_seal}} % Key agreement + \newcommand{\KA}{\mathsf{KA}} \newcommand{\KASapling}{\mathsf{KA_{Sapling}}} \newcommand{\KAPublic}{\mathsf{KA.Public}} @@ -659,11 +665,13 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\Clamp}{\mathsf{clamp_{Curve25519}}} % KDF + \newcommand{\KDF}{\mathsf{KDF}} \newcommand{\kdftag}{\mathsf{kdftag}} \newcommand{\kdfinput}{\mathsf{kdfinput}} % Notes + \newcommand{\Value}{\mathsf{v}} \newcommand{\ValueNew}[1]{\mathsf{v^{new}_\mathnormal{#1}}} \newcommand{\ValueOld}[1]{\mathsf{v^{old}_\mathnormal{#1}}} @@ -693,6 +701,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\ReplacementCharacter}{\textsf{U+FFFD}} % Money supply + \newcommand{\MAXMONEY}{\mathsf{MAX\_MONEY}} \newcommand{\BlockSubsidy}{\mathsf{BlockSubsidy}} \newcommand{\MinerSubsidy}{\mathsf{MinerSubsidy}} @@ -740,6 +749,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\targetThresholds}{\term{target thresholds}} % Signatures + \newcommand{\Sig}{\mathsf{Sig}} \newcommand{\SigPublic}{\mathsf{Sig.Public}} \newcommand{\SigPrivate}{\mathsf{Sig.Private}} @@ -778,6 +788,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\MerkleHash}{\bitseq{\MerkleHashLength}} % Transactions + \newcommand{\versionField}{\mathtt{version}} \newcommand{\txInCount}{\mathtt{tx\_in\_count}} \newcommand{\txIn}{\mathtt{tx\_in}} @@ -810,6 +821,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\ScriptOP}[1]{\texttt{OP\_{#1}}} % Equihash and block headers + \newcommand{\validEquihashSolution}{\term{valid Equihash solution}} \newcommand{\powtag}{\mathsf{powtag}} \newcommand{\powheader}{\mathsf{powheader}} @@ -828,6 +840,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\SHAd}{\term{SHA-256d}} % Proving system + \newcommand{\ZK}{\mathsf{ZK}} \newcommand{\ZKProvingKey}{\mathsf{ZK.ProvingKey}} \newcommand{\ZKVerifyingKey}{\mathsf{ZK.VerifyingKey}} @@ -865,6 +878,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg }}} % JoinSplit + \newcommand{\hSig}{\mathsf{h_{Sig}}} \newcommand{\hSigText}{\texorpdfstring{$\hSig$}{hSig}} \newcommand{\h}[1]{\mathsf{h_{\mathnormal{#1}}}} @@ -961,6 +975,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\EnforceMerklePath}[1]{\mathsf{enforceMerklePath}_{~\!\!#1}} % Sapling circuits + \newcommand{\DecompressValidate}{\mathsf{DecompressValidate}} \newcommand{\FixedScalarMult}{\mathsf{FixedScalarMult}} \newcommand{\VariableScalarMult}{\mathsf{VariableScalarMult}} @@ -976,6 +991,7 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\ValueCommit}[1]{\mathsf{ValueCommit}_{#1}} % Consensus rules + \newcommand{\consensusrule}[1]{\needspace{3ex}\subparagraph{Consensus rule:}{#1}} \newenvironment{consensusrules}{\introlist\subparagraph{Consensus rules:}\begin{itemize}}{\end{itemize}} \newcommand{\sproutonlyitem}[1]{\item \notsprout{[\Sprout only]\,} {#1}}