Alfredo Garcia
a57c09a3b8
Orchard data in V5 parsing ( #2116 )
...
* initialize the work on parsing orchard data in V5
* add the rest of orchard serialization
* fix serialization according to spec
* fix arbitrary for Signature<SpendAuth>
* move deserialization of AuthorizedAction to shielded_data module
* use `from_bits_truncate` to generate valid arbitrary flags
* change panic message
* fix serialization/deserialization when nActionsOrchard is empty
* fix Halo2Proof deserialization
* implement ZcashSerialize and ZcashDeserialize for flags
* implement ZcashSerialize and ZcashDeserialize for orchard::tree::Root
* use ZcashSerialize and ZcashDeserialize for binding_sig
* implement from_parts()
* implement Arbitrary for Signature<Binding>
* add trusted preallocate with tests
* fix Arbitrary for orchard Nullifier
* Use zcash_serialize_bytes instead of write_compactsize
Co-authored-by: teor <teor@riseup.net>
2021-05-21 00:42:06 +00:00
teor
2827f6a7e6
Orchard: disable clippy warnings about comparing a newly created struct ( #2117 )
...
In Orchard, we compare canonical Pallas bytes with a supplied byte array.
Since we need to perform calculations to get it into canonical form, we
need to create a newly owned object.
2021-05-10 19:16:21 -03:00
Deirdre Connolly
d0180423c1
Tidy up sinsemilla_hash_to_point() with bitvec
2021-04-30 00:48:23 -04:00
Deirdre Connolly
42999b2112
Remove FromStr impls for orchard keys for now, pending Unifed versions of those
...
Also modify the string encoding/decoding rountrip proptest to be just an exerciser of the keygen
for now.
2021-04-30 00:48:23 -04:00
Deirdre Connolly
6d4ecff24b
Pin halo2 commit and update usage of pasta_curves accordingly
2021-04-30 00:48:23 -04:00
Deirdre Connolly
f5206af470
Rename all Orchard spec references to nu5.pdf
2021-04-30 00:48:23 -04:00
Deirdre Connolly
26fc6b1908
Doing math in u16 collector obviates passing of Bit(Slice/Vector)
...
But I added a max 10-bit value check in S() on j.
2021-04-30 00:48:23 -04:00
Deirdre Connolly
af32851aa1
Add TODO to fill in the Sinsemilla test vectors from zcash-hackworks
2021-04-30 00:48:23 -04:00
Deirdre Connolly
aa81876e32
Move Value Commitment generator points into static via lazy_static
2021-04-30 00:48:23 -04:00
Deirdre Connolly
39b8e9859f
Do not derive Hash for orchard::Nullifier as pallas::Base doesn't have it
...
If we need Hash, we may need to replace the inner type with bytes.
2021-04-30 00:48:23 -04:00
Deirdre Connolly
70bf4f80fb
Add TODO for Poseidon hash implementation
2021-04-30 00:48:23 -04:00
Deirdre Connolly
d7d8986849
Tidy up network handling for Orchard keys/addresses
2021-04-30 00:48:23 -04:00
Deirdre Connolly
a1a59a7f76
Clean up orchard::tree tests for now
2021-04-30 00:48:23 -04:00
Deirdre Connolly
86c3b69720
IncomingViewingKey inherits network when derived from FullViewingKey
2021-04-30 00:48:23 -04:00
Deirdre Connolly
d33947b331
Impl FullViewingKey::from_spending_key(SpendingKey, Network)
...
Remove From impl
2021-04-30 00:48:23 -04:00
Deirdre Connolly
1ff84c3d43
Refer to const generics issue
2021-04-30 00:48:23 -04:00
Deirdre Connolly
d8d25d1a82
Add TODO
2021-04-30 00:48:23 -04:00
Deirdre Connolly
698f9620da
Clippy +nightly
2021-04-30 00:48:23 -04:00
Deirdre Connolly
48674a9749
Remove standalone Orchard address Display, FromStr impls and related parts
...
NU5 proposes Unified Addresses, which would supplant any classic standalone pool address for Orchard.
https://github.com/ZcashFoundation/zebra/pull/1885#discussion_r607000460
2021-04-30 00:48:23 -04:00
Deirdre Connolly
72491df4ff
orchard: move IncomingViewingKey::from([u8; 32]) to a ::from_bytes([u8; 32], Newtwork)
2021-04-30 00:48:23 -04:00
Deirdre Connolly
8d357faf73
Tried and discarded lazy_static! of value commitment generator points
2021-04-30 00:48:23 -04:00
Deirdre Connolly
81038e0fcb
orchard: ValueCommit ops implementation tests
2021-04-30 00:48:23 -04:00
Deirdre Connolly
db8f9cb81a
orchard: Better Debug impls for some keys
2021-04-30 00:48:23 -04:00
Deirdre Connolly
eb68caf14c
Orchard: update Debug impl for commitments
2021-04-30 00:48:23 -04:00
Deirdre Connolly
cc2e58fade
Remove done TODO
2021-04-30 00:48:23 -04:00
Deirdre Connolly
376603d4c0
Flesh out Orchard note and nullifier derivation
2021-04-30 00:48:23 -04:00
Deirdre Connolly
37c32e9c94
Apply docstring suggestions from code review
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
44966326c1
Orchard: turns out you can't store 10 bits in a u8
2021-04-30 00:48:23 -04:00
Deirdre Connolly
5e95d11fd9
Orchard: fix typos
2021-04-30 00:48:23 -04:00
Deirdre Connolly
34fe78bd0c
Fix str match for key and addr decoding
2021-04-30 00:48:23 -04:00
Deirdre Connolly
ec5d3a647f
Remove commented out orchard::Address FromStr/Display test vector test for now
2021-04-30 00:48:23 -04:00
Deirdre Connolly
f067a25d50
Update zebra-chain/src/orchard/address.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
f577cb8eb4
Update zebra-chain/src/orchard/address.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
b23093ca66
Update zebra-chain/src/orchard/keys.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
bbb6b341ae
Update zebra-chain/src/orchard/keys.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
a73914a838
Update zebra-chain/src/orchard/keys.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
bba99098f3
Update zebra-chain/src/orchard/keys.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
e2989e3edf
Update zebra-chain/src/orchard/keys.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
e4fe8bb320
Update zebra-chain/src/orchard/note/nullifiers.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
81da8363a8
Update zebra-chain/src/orchard/sinsemilla.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
dbd2ce6dd8
Update zebra-chain/src/orchard/sinsemilla.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
ebe0c002a9
Update zebra-chain/src/orchard/sinsemilla.rs
...
Co-authored-by: teor <teor@riseup.net>
2021-04-30 00:48:23 -04:00
Deirdre Connolly
8461c2153e
Update diversify_hash and its use to match spec updates
2021-04-30 00:48:23 -04:00
Deirdre Connolly
73e0f4f98a
Orchard: fix some tests, etc
2021-04-30 00:48:23 -04:00
Deirdre Connolly
87f65b8b01
Orchard: update merkle_crh_orchard to use the appropriate l=10 bits, not 6
2021-04-30 00:48:23 -04:00
Deirdre Connolly
5ede33b231
Orchard: update nullifiers
2021-04-30 00:48:23 -04:00
Deirdre Connolly
c892b93f61
Orchard: update merkle_crh_orchard correctly
2021-04-30 00:48:23 -04:00
Deirdre Connolly
218bb9b7c2
Orchard: remove unused imports
2021-04-30 00:48:23 -04:00
Deirdre Connolly
f3501333b7
Orchard: tidy
2021-04-30 00:48:23 -04:00
Deirdre Connolly
1c903cab0f
Orchard: fix into() call inside extract_x
2021-04-30 00:48:23 -04:00
Deirdre Connolly
d11a4419ac
Orchard: add a serde helper for pallas::Base
2021-04-30 00:48:23 -04:00
Deirdre Connolly
0351e6481d
Orchard: tidy keys
2021-04-30 00:48:23 -04:00
Deirdre Connolly
e85359c756
Orchard: tidy
2021-04-30 00:48:23 -04:00
Deirdre Connolly
d3f0b226e6
Orchard: tidy nullifiers
2021-04-30 00:48:23 -04:00
Deirdre Connolly
009e1dd37e
Orchard: some Action (de)serialization fixes
2021-04-30 00:48:23 -04:00
Deirdre Connolly
f3cf6966a5
Orchard: tidy commitments etc
2021-04-30 00:48:23 -04:00
Deirdre Connolly
cb9d6956d7
Orchard: Fix trait imports and Arbitrary for Action
2021-04-30 00:48:23 -04:00
Deirdre Connolly
981080f049
Orchard: Tidy Debug impl's for keys, cast a pallas::Base into a pallas::Scalar
2021-04-30 00:48:23 -04:00
Deirdre Connolly
6e51671c93
Tidy prf's
2021-04-30 00:48:23 -04:00
Deirdre Connolly
120b065a94
Action should use VerificationKeyBytes
2021-04-30 00:48:23 -04:00
Deirdre Connolly
01fed3e0f3
Tidy impl From<SpendingKey> for IvkCommitRandomness
2021-04-30 00:48:23 -04:00
Deirdre Connolly
bd4e5e1f38
Cleanup
2021-04-30 00:48:23 -04:00
Deirdre Connolly
df1ecc72b1
Most things are filled in, including a guess at Pallas-based Mixing Pedersen Hash
2021-04-30 00:48:23 -04:00
Deirdre Connolly
23e391894b
Tidy
2021-04-30 00:48:23 -04:00
Deirdre Connolly
de051c727c
orchard: DiversifierKey is a newtype refinement of 32 bytes
2021-04-30 00:48:23 -04:00
Deirdre Connolly
fd29708ecc
orchard: derive IncomingViewingKey from FullViewingKey
...
Includes sinsemilla commit and short commit
2021-04-30 00:48:23 -04:00
Deirdre Connolly
6e1d2f1fb1
orchard: impl From<SpendingKey> for NullifierDerivingKey
2021-04-30 00:48:23 -04:00
Deirdre Connolly
f50d8697d4
impl orchard SpendingKey::new()
2021-04-30 00:48:23 -04:00
Deirdre Connolly
c3e40d73cf
Bunch more work implementing orchard, porting from sapling where applicable
2021-04-30 00:48:23 -04:00
Deirdre Connolly
40383b2741
Partway done with typing out Orchard chain types
2021-04-30 00:48:23 -04:00