Commit Graph

282 Commits

Author SHA1 Message Date
Daira Hopwood 3333a4b877 Fill in "Omission in Zerocash security proof" section.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood 7d816b6304 Fill in "In-band secret distribution" comparison section.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood df2247b648 Acknowledge Jack Grigg and Simon Liu.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood 1b9111e8c4 Reference the extended Zerocash paper, not the conference version.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood 1e6e788d0c Cosmetics and copy-editing.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood b189e26191 Abstractify uses of Curve25519.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood f633c7bc4d Add changelog section for 2016.0-beta-1.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood 1fd8ead32d More consistent dates in references.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood 4729293da7 Add citation to 'Fixing Vulnerabilities in the Zcash Protocol' blog post.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood 4a8889b958 Add acknowledgement for jl777.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood 6aa2753f16 Fix the lead bytes in payment address and spending key encodings.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood 8e2d942f69 Remove some unused macros that were associated with selective transparency.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood 94e426342e Add Key Derivation Functions in the abstract protocol section.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood c94e27261b Add JoinSplit operations in the Concepts section.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood 2ab5d2fef0 Move the KDF instantiation section to be in the same order as the abstract protocol.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood b1225f91ae COMM trapdoor -> commitment trapdoor.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood e9d69b242b Add definitions for key agreement schemes.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood 12144bf2df Fix Makefile portability problem.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood 91d4384924 Add protocol.ver.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood b2471394e2 Regenerate PDF.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood bca7bb75a8 Switch to Ed25519.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood d31e2cd886 Add Coinbase Transactions section.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood e7b578d73e WIP
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood afeecbd7b4 Regenerate PDF.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood ba826eec2d More reorganisation.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood 50730b8170 Initial reorganisation to split abstract and concrete protocol sections.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-09-04 04:33:45 +01:00
Daira Hopwood aefc864cc9 Regenerate PDF.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-05-20 23:37:35 +01:00
Daira Hopwood 57a4d1cab5 Switch to Quattrocento font for body text, and clean up some LaTeX warnings that causes.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-05-20 23:30:33 +01:00
Daira Hopwood 17741b7cfa Makefile: allow the latex command to be changed more easily.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-05-20 23:30:33 +01:00
Daira Hopwood d5ac4f792c Regenerate PDF for 2016.0-alpha-3.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-05-09 21:18:41 +01:00
Daira Hopwood f7e1889513 Change version numbering convention.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-05-09 21:15:50 +01:00
Daira Hopwood 1226c22929 Regenerate PDF for 2.0-alpha-3.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-05-06 15:48:36 +01:00
Daira Hopwood 365fe6d068 Add change history and reference to https://github.com/zcash/zcash/issues/836
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-05-06 15:47:59 +01:00
Daira Hopwood d6d25dec43 Allow anchoring to any previous output treestate in the same transaction. closes https://github.com/zcash/zcash/issues/604
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-05-06 15:04:08 +01:00
Daira Hopwood 9bb4410e45 Regenerate PDF.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-21 03:05:58 +01:00
Daira Hopwood d20080c2c3 Add automatic git versioning. fixes #37
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-21 03:04:45 +01:00
Daira Hopwood 465ce90631 Try rerendering the key_components diagram with "Convert text to paths", to
work around a github PDF renderer issue.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-19 01:51:43 +01:00
Daira Hopwood 2a322f8647 Key terminology changes. Also remove some unused macros. fixes #44
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-18 18:31:22 +01:00
Daira Hopwood 859059fb9d Add note about Merkle tree validity.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-11 22:14:15 +01:00
Daira Hopwood 4c062451d3 Minor refinements. refs #14
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-08 20:55:49 +01:00
Daira Hopwood c478fa1299 Specify Merkle tree. fixes #14
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-08 20:45:53 +01:00
Daira Hopwood dcdb0fb3dc Cosmetics: BLAKE2b-256 macros.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-07 01:55:13 +01:00
Daira Hopwood cdae617357 BLAKE2b/256 -> BLAKE2b-256.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-06 17:04:04 +01:00
Daira Hopwood 75b8750d59 Require PRF^addr to be collision-resistant. refs ticket:zcash/zcash/836
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-06 14:38:58 +01:00
Daira Hopwood e2dbad2448 Cosmetic changes to conformance macros.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-04 17:29:16 +01:00
Daira Hopwood 83ae851aad Show Daira as lead author and add "as intended for the Zcash release of summer 2016".
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-04 04:33:39 +01:00
Daira Hopwood 7826c99919 Minor correction to what sighashes cover.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-04 04:20:19 +01:00
Daira Hopwood 015b607650 Cosmetics: fix spacing in section references.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-04 04:20:19 +01:00
Daira Hopwood 9f37a0d3c8 Cosmetics: change font of ASCII strings to bold tt.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-04 04:20:19 +01:00
Daira Hopwood 389ae76bdb Change to BLAKE2b/256, and add pubKeyHash indirection. fixes #26
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-04 04:20:19 +01:00
Daira Hopwood 76d87e6995 Revert addition of Eli's comments -- moved to eli-comments.0 branch.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-04 04:04:07 +01:00
eli.ben.sasson fb15dd2396 comments through section 5 2016-03-31 11:00:04 +03:00
Daira Hopwood 62f615e459 Clarification of endianness, and that uses of BLAKE2b are unkeyed.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-31 02:21:43 +01:00
Daira Hopwood ecba0f9e5d Cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-31 02:21:02 +01:00
Daira Hopwood d4d095b33d Update version to 2.0-alpha-1.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-30 15:42:07 +01:00
Daira Hopwood 0bc03313bf Changes to signatures.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-30 15:18:50 +01:00
Daira Hopwood c19f1d1523 Change bit ordering.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-30 14:27:43 +01:00
Daira Hopwood e95fee5ce7 Add lead byte to note plaintext.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-30 03:47:57 +01:00
Daira Hopwood 5b0c01d6d0 Clarify that we're using the IETF definition of AEAD_CHACHA20_POLY1305,
and that hSig is an input to the KDF.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-30 03:32:28 +01:00
Daira Hopwood fb2492d7e5 Switch to Blake2b for KDF and hSig.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-30 03:28:01 +01:00
Daira Hopwood 674c5614f2 \serialNumber -> \nullifier and related macro changes.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-30 01:36:34 +01:00
Daira Hopwood 6897bebfe6 Reserve non-UTF-8 lead bytes in memo field.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-29 15:08:15 +01:00
Daira Hopwood 9397a606b9 Change memos from 64 to 128 bytes.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-29 03:21:50 +01:00
Daira Hopwood 6f0f88c9de Change r from 192 to 256 bits.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-29 03:15:08 +01:00
Daira Hopwood 3dffb0d9c7 Pour/Xfer -> JoinSplit.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-29 02:28:50 +01:00
Daira Hopwood 263122966a coin -> note in macro names.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-29 02:28:07 +01:00
Daira Hopwood 819eb1dac9 transaction -> \transaction
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-29 01:19:34 +01:00
Daira Hopwood 4036a5d6e4 Make t 8 bits.
(This is not a protocol change, it's just simpler because it avoids endianness issues.)

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-29 01:18:53 +01:00
Daira Hopwood fedfc3c315 Fix an endianness bug.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-29 01:17:36 +01:00
Daira Hopwood 6f049a2c8d Add restriction that either vpubOld or vpubNew is zero.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-29 01:16:06 +01:00
Daira Hopwood c338fd141b Pour descriptions go in transactions, and only indirectly in blocks. fixes #20
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-29 00:40:09 +01:00
Daira Hopwood 5bf271d993 ephemeralKey is a change from Zerocash.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-29 00:31:11 +01:00
Daira Hopwood 31ce718464 Fix endianness bug in an example.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-23 13:28:17 +00:00
Daira Hopwood 8b5c20cd38 Change i to be the first argument to KDF for consistency with other functions.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-22 20:40:52 +00:00
Daira Hopwood d4e95b73f6 Change KDF to SHA-512 and add hSig input.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-22 17:41:57 +00:00
Daira Hopwood 8b9851a431 Remove a_pk from note plaintexts. This also fixes a bug where the recipient
would incorrectly use the decrypted a_pk to check the coin commitment, rather
than its own a_pk.

(The length of encCiphertexts was already computed assuming this change.)

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-20 23:36:54 +00:00
Daira Hopwood 5bbbb0bde6 Use standard AEAD_CHACHA20_POLY1305.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-20 23:32:01 +00:00
Daira Hopwood d98c941429 Switch to little-endian encoding, consistent with Bitcoin serialization.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-20 23:19:38 +00:00
Daira Hopwood 350c5ae598 DecryptCoin -> DecryptNote.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-20 20:37:43 +00:00
Daira Hopwood c55489fa2d Fix some macro uses, and rename rn to nf.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-20 20:29:42 +00:00
Daira Hopwood 5e408580c1 Remove "map" terminology; the spent nullifiers are a set at this level of abstraction.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-20 20:26:37 +00:00
Daira Hopwood d60fda0e3d Rename remnant (serial number) -> nullifier.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-20 19:48:19 +00:00
Daira Hopwood 0b0295e29e Fix some cases where macros were not used consistently.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-20 19:46:19 +00:00
Daira Hopwood 08e25a8b21 WIP - new terminology.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-18 21:09:24 +00:00
Daira Hopwood 0e6953a6eb WIP: Define types for serialized fields.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-18 01:20:44 +00:00
Daira Hopwood 5ebe7b31e0 Specify precisely the data to be signed. This includes a design change
to use a single signature covering all of the transaction except
pourPubKey and pubSig.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-16 01:36:37 +00:00
Daira Hopwood a5096c755a Bibliography: cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-16 01:34:45 +00:00
Daira Hopwood 57d94a0bf9 Specify precise encoding of ECDSA public key. Also improve description
of how the public key is bound to the Pour statement.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-16 00:06:01 +00:00
Daira Hopwood 5d3b31b15f Cosmetics, re-render PDF.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-15 23:23:38 +00:00
Daira Hopwood 1bd4e4cfdb Make some subparagraphs into subsections.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-15 23:23:05 +00:00
Daira Hopwood 5a78817989 Reference libsnark for encoding of proofs.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-15 23:22:22 +00:00
Daira Hopwood 245c52036c randomSeed must be chosen independently at random for each Pour description.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-15 23:21:41 +00:00
Daira Hopwood 223f7d2e1e Be more precise about Pour transfers.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-15 23:20:46 +00:00
Daira Hopwood 87c502ffd3 Enforce canonical ECDSA signatures, and specify encodings (WIP).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-15 23:20:17 +00:00
Daira Hopwood 23e66ae090 Change 'script*' variables to 'pour*', and add references.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-15 23:17:14 +00:00
Daira Hopwood 28b38b5eb9 Fix 'make clean'.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-15 23:13:51 +00:00
Daira Hopwood 10ac791004 Remove viewing keys (except for sk_enc) for now.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-13 02:16:30 +00:00
Daira Hopwood 42954ecdac Fill in more sections of "Differences from Zerocash".
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-13 01:23:04 +00:00
Daira Hopwood 3d04c384f1 Add Nathan Wilcox to authors.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-09 00:40:08 +00:00
Daira Hopwood 1b1e1f8456 Add lead byte to KDF input.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-07 21:08:14 +00:00