Commit Graph

193 Commits

Author SHA1 Message Date
Daira Hopwood b2471394e2 Regenerate PDF.
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 aefc864cc9 Regenerate PDF.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-05-20 23:37:35 +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 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 9bb4410e45 Regenerate PDF.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-04-21 03:05:58 +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 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 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 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 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
Daira Hopwood e15a4fc0a4 Clarify that the nonce to AEAD_CHACHA20_POLY1305 is 96 bits, and the key 256 bits.
fixes zips/#19

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-07 17:00:31 +00:00
Daira Hopwood c57d295a38 Fix definitions of a_vk and a_pk in Pour statement. fixes zips#18
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-07 16:52:15 +00:00
Daira Hopwood 64c91164ab Descriptions of scriptSig and scriptPubKey were the wrong way round. fixes zips#17
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-07 04:53:02 +00:00
Daira Hopwood 2fac159404 Fix index error in computation of hSig.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-07 04:38:51 +00:00
Daira Hopwood 26df1df754 Define some convenience macros to shorten 1..N^{old,new}.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-07 04:36:29 +00:00
Daira Hopwood a1b1cd62c3 Notation.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-07 03:38:00 +00:00
Daira Hopwood 6d25c4beb2 Be more precise about the specification of Curve25519 functions.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-06 23:26:40 +00:00
Daira Hopwood a9da411767 Rearrange domain separation to make room for greater pour arities, and
state explicitly the domain separation convention for uses of the full hash.
Also bump the draft number.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-06 22:21:48 +00:00
Daira Hopwood 608c0dbcb0 Fix potential attacks due to unclamped esk provided to a viewing key holder.
(The other change from epk to epk* in the KDF input is just for clarity,
since we check that epk* = epk.)

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-06 10:34:34 +00:00
Daira Hopwood acf7cabe39 More PDF niceties.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-05 21:45:11 +00:00
Daira Hopwood 5e14841dce Make hyperref links go to the top of the page to avoid having to scroll up.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-05 21:28:15 +00:00
Daira Hopwood 9069509095 Generate PDF index.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-05 21:12:38 +00:00
Daira Hopwood c8e8846a53 More cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-05 21:05:06 +00:00
Daira Hopwood 06e747ed1f Suppress spurious overfull hbox warnings; other cosmetics.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-05 21:02:46 +00:00
Daira Hopwood 96f8c869f2 Fancy linking of cross-references and URLs.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-05 20:20:11 +00:00
Daira Hopwood 63b7fa7f1a Move the specification of how a coin plaintext is encoded.
This avoids the implication that we intend it to be Base85Check-encoded,
and makes the statement about prefix-freedom true again.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-05 18:37:40 +00:00
Daira Hopwood 661e894907 Remove version byte in coin plaintext.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-05 18:19:33 +00:00
Daira Hopwood b6f8ab3f9b Formatting; fix key derivation diagram.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-03 18:51:33 +00:00
Daira Hopwood 70dede1507 Unified spec with or without viewing keys.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-03 18:43:10 +00:00
Daira Hopwood 605d6ef5b1 Cosmetics. 2016-03-03 15:25:25 +00:00
Daira Hopwood d3b2bfe5fb Improve presentation of decryption by viewing key holder; define \bot.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-03 14:01:39 +00:00
Daira Hopwood e634b9ceb1 Viewing key optimizations.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-02 16:09:52 +00:00
Daira Hopwood d3b0cfd649 Correct confusion between N^new and N^old in decryption by a viewing key holder,
and add a clarification about a viewing key holder acting as a recipient.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-02 15:29:37 +00:00
Daira Hopwood 9ba83513bb Fix length of r.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-03-02 00:15:43 +00:00
Daira Hopwood f5ab4ef51d Ensure that a viewing key holder can decrypt the value of the old coin.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-02-29 14:19:35 +00:00
Daira Hopwood 80dcdeef4f "additional data" -> "associated data".
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-02-28 11:25:41 +00:00
Daira Hopwood d7dd20d281 Wording improvement.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-02-27 23:40:01 +00:00
Daira Hopwood 65ebefd7e8 Merge "Raw Encoding" subsubsections into their parent, and correct a section title.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-02-27 23:39:12 +00:00
Daira Hopwood f3041d4e07 The viewing key holder should check epk.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-02-27 21:14:39 +00:00
Daira Hopwood c6ec1e0e07 Note about some fields not being constrained in the circuit.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-02-27 20:58:39 +00:00
Daira Hopwood a816d1fd18 Correct an obsolete paragraph relating a_sk and a_pk.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-02-27 20:38:58 +00:00
Daira Hopwood 0770ff87dc Acknowledgements.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-02-27 00:54:33 +00:00
Daira Hopwood a2d625f1b2 Merge branch '738.fix-internalh-collision.0' into 406.viewing-keys.1
Includes other fixes.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-02-26 17:22:59 +00:00
Daira Hopwood ce18d51650 Proposed fix for domain separation and truncation.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-02-26 16:36:59 +00:00
Daira Hopwood e7ad03ac52 The nonce input to the AEAD isn't long enough, so derive K^disclose_i using a PRF instead.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-02-26 01:56:04 +00:00
Daira Hopwood abb9da9937 Fix a long line.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-02-26 00:21:25 +00:00
Daira Hopwood f0c24c113e Merge branch '738.fix-internalh-collision.0' into 406.viewing-keys.1
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-02-26 00:17:19 +00:00
Daira Hopwood e20d0dd437 Fix for InternalH collision attack.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-02-26 00:02:11 +00:00
Daira Hopwood 1d03b32575 Fix order of arguments to nonce in Pour statement.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-02-25 23:44:44 +00:00