diff --git a/whitepaper/protocol.pdf b/whitepaper/protocol.pdf index f339bd4..9041865 100644 Binary files a/whitepaper/protocol.pdf and b/whitepaper/protocol.pdf differ diff --git a/whitepaper/protocol.tex b/whitepaper/protocol.tex index 1bb3d64..b9046f0 100644 --- a/whitepaper/protocol.tex +++ b/whitepaper/protocol.tex @@ -461,89 +461,6 @@ electronic commerce and payment, financial privacy, proof of work, zero knowledg \newcommand{\TransmitPrivate}{\mathsf{sk_{enc}}} \newcommand{\TransmitPrivateSup}[1]{\mathsf{sk}^{#1}_\mathsf{enc}} -% PRFs -\newcommand{\PRF}[2]{\mathsf{{PRF}^{#2}_\mathnormal{#1}}} -\newcommand{\PRFaddr}[1]{\PRF{#1}{addr}} -\newcommand{\PRFnf}[1]{\PRF{#1}{\nf}} -\newcommand{\PRFsn}[1]{\PRF{#1}{sn}} -\newcommand{\PRFpk}[1]{\PRF{#1}{pk}} -\newcommand{\PRFrho}[1]{\PRF{#1}{\NoteAddressRand}} -\newcommand{\PRFOutputLength}{\mathsf{\ell_{PRF}}} -\newcommand{\PRFOutput}{\bitseq{\PRFOutputLength}} - -% Commitments -\newcommand{\Commit}[1]{\mathsf{COMM}_{#1}} -\newcommand{\CommitTrapdoor}{\mathsf{COMM.Trapdoor}} -\newcommand{\CommitInput}{\mathsf{COMM.Input}} -\newcommand{\CommitOutput}{\mathsf{COMM.Output}} -\newcommand{\NoteCommit}{\mathtt{NoteCommitment}} -\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}} -\newcommand{\SymSpecific}{\mathsf{AEAD\_CHACHA20\_POLY1305}} -\newcommand{\SymCipher}{\mathsf{ChaCha20}} -\newcommand{\SymAuth}{\mathsf{Poly1305}} -\newcommand{\Ptext}{\mathsf{P}} -\newcommand{\Plaintext}{\mathsf{Sym.}\mathbf{P}} -\newcommand{\Ctext}{\mathsf{C}} -\newcommand{\Ciphertext}{\mathsf{Sym.}\mathbf{C}} -\newcommand{\Key}{\mathsf{K}} -\newcommand{\Keyspace}{\mathsf{Sym.}\mathbf{K}} -\newcommand{\TransmitPlaintext}[1]{\Ptext^\enc_{#1}} -\newcommand{\TransmitCiphertext}[1]{\Ctext^\enc_{#1}} -\newcommand{\TransmitKey}[1]{\Key^\enc_{#1}} -\newcommand{\Adversary}{\mathcal{A}} -\newcommand{\CryptoBoxSeal}{\mathsf{crypto\_box\_seal}} - -% Key agreement -\newcommand{\KA}{\mathsf{KA}} -\newcommand{\KAPublic}{\mathsf{KA.Public}} -\newcommand{\KAPrivate}{\mathsf{KA.Private}} -\newcommand{\KASharedSecret}{\mathsf{KA.SharedSecret}} -\newcommand{\KAFormatPrivate}{\mathsf{KA.}\mathtt{FormatPrivate}} -\newcommand{\KADerivePublic}{\mathsf{KA.}\mathtt{DerivePublic}} -\newcommand{\KAAgree}{\mathsf{KA.}\mathtt{Agree}} -\newcommand{\CurveMultiply}{\mathsf{Curve25519}} -\newcommand{\CurveBase}{\bytes{9}} -\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}}} -\newcommand{\NoteTuple}[1]{\mathbf{n}_{#1}} -\newcommand{\NoteType}{\mathsf{Note}} -\newcommand{\NotePlaintext}[1]{\mathbf{np}_{#1}} -\newcommand{\NoteCommitRand}{\mathsf{r}} -\newcommand{\NoteCommitRandLength}{\mathsf{\ell_{\NoteCommitRand}}} -\newcommand{\NoteCommitRandOld}[1]{\mathsf{r^{old}_\mathnormal{#1}}} -\newcommand{\NoteCommitRandNew}[1]{\mathsf{r^{new}_\mathnormal{#1}}} -\newcommand{\NoteAddressRand}{\mathsf{\uprho}} -\newcommand{\NoteAddressRandOld}[1]{\mathsf{\uprho^{old}_\mathnormal{#1}}} -\newcommand{\NoteAddressRandOldX}[1]{\mathsf{\uprho^{old}_\mathrm{#1}}} -\newcommand{\NoteAddressRandNew}[1]{\mathsf{\uprho^{new}_\mathnormal{#1}}} -\newcommand{\NoteAddressPreRand}{\mathsf{\upvarphi}} -\newcommand{\NoteAddressPreRandLength}{\mathsf{\ell_{\NoteAddressPreRand}}} -\newcommand{\NoteCommitS}{\mathsf{s}} -\newcommand{\cm}{\mathsf{cm}} -\newcommand{\cmOld}[1]{\mathsf{{cm}^{old}_\mathnormal{#1}}} -\newcommand{\cmOldX}[1]{\mathsf{{cm}^{old}_\mathrm{#1}}} -\newcommand{\cmNew}[1]{\mathsf{{cm}^{new}_\mathnormal{#1}}} -\newcommand{\snOldX}[1]{\mathsf{{sn}^{old}_\mathrm{#1}}} -\newcommand{\nf}{\mathsf{nf}} -\newcommand{\nfOld}[1]{\nf^\mathsf{old}_\mathnormal{#1}} -\newcommand{\Memo}{\mathsf{memo}} -\newcommand{\DecryptNote}{\mathtt{DecryptNote}} -\newcommand{\ReplacementCharacter}{\textsf{U+FFFD}} - % Money supply \newcommand{\MAXMONEY}{\mathsf{MAX\_MONEY}} \newcommand{\BlockSubsidy}{\mathsf{BlockSubsidy}}