Andreas Fackler
a2c213d0aa
Replace convert_transaction with From.
2018-06-26 15:13:04 +02:00
Andreas Fackler
fd8e7a5900
Add DynamicHoneyBadger.
2018-06-26 15:13:04 +02:00
Andreas Fackler
f202ccfeb8
Compute is_peer on NetworkInfo creation.
2018-06-26 14:52:53 +02:00
Andreas Fackler
aaec3d4074
Simplify observer/peer-specific code.
...
Extract some methods to make the branches more readable.
2018-06-26 14:50:06 +02:00
Andreas Fackler
2db67df325
Rename is_full_node to is_peer.
2018-06-26 10:57:44 +02:00
Andreas Fackler
2a5f9f1bfe
Allow observer nodes in all algorithms.
...
This allows nodes to join the network without sending any messages
themselves. They can't give any input and just observe the outcome.
Closes #81
2018-06-26 09:17:12 +02:00
Andreas Fackler
b3b3994ec1
Merge pull request #82 from poanetwork/vk-test-decryption-shares
...
An adversary sending faulty decryption shares
2018-06-26 09:06:33 +02:00
Vladimir Komendantskiy
11ec39879b
created an adversary to test against faulty decryption shares
2018-06-25 19:22:08 +01:00
Andreas Fackler
062b35ab3a
Make SyncKeyGen NodeUid-aware.
...
This allows the caller to address nodes by ID instead of by index.
Also contains a few other minor changes that will be needed for
`DynamicHoneyBadger`.
2018-06-25 13:07:31 +02:00
Vladimir Komendantskiy
7be2510e36
swapped False and True coins
2018-06-22 17:39:55 +01:00
Vladimir Komendantskiy
7a4fc37628
implemented an optimistic random common coin schedule
2018-06-22 10:39:55 +01:00
Vladimir Komendantskiy
4c2e92e63d
removed the obsolete Bls12 type parameters
2018-06-22 10:17:11 +01:00
Vladimir Komendantskiy
5778cedb1c
removed the unneeded pending_verification
2018-06-22 10:12:38 +01:00
Vladimir Komendantskiy
f2893c5f54
Revert "removed the unneeded pending_verification and added clone-less shares in messages"
...
This reverts commit 10c442af475ca764badede674715142a1fd06fdb.
2018-06-22 10:12:38 +01:00
Vladimir Komendantskiy
b7a0d64924
removed the unneeded pending_verification and added clone-less shares in messages
2018-06-22 10:12:38 +01:00
Vladimir Komendantskiy
69b42d5032
added verification of decryption shares as soon as they can be verified
2018-06-22 10:12:38 +01:00
Vladimir Komendantskiy
5b0d331a69
review comments
2018-06-22 10:12:38 +01:00
Vladimir Komendantskiy
5811ead460
derived instance fixes after serde option removal
2018-06-22 10:12:38 +01:00
Vladimir Komendantskiy
af03158e00
tries to decrypt and output a batch on epoch update from already received messages
2018-06-22 10:12:38 +01:00
Vladimir Komendantskiy
c7f4994e3a
threshold encryption of proposals in HoneyBadger
2018-06-22 10:12:38 +01:00
Andreas Fackler
67dbada49f
Improve documentation.
2018-06-22 10:17:44 +02:00
Andreas Fackler
e11f183db2
Remove generic E: Engine from crypto.
2018-06-22 10:08:23 +02:00
Andreas Fackler
7eb487f329
Implement SyncKeyGen.
...
This is a _synchronous_ key generation algorithm. We will use it in
`DynamicHoneyBadger`, on top of `HoneyBadger` to satisfy the synchrony
requirements.
It can also be used independently e.g. on top of a blockchain.
2018-06-22 10:06:29 +02:00
Peter van Nostrand
73368b7a32
Fix formatting.
2018-06-21 13:06:48 -04:00
Peter van Nostrand
05da712c20
Added clear-on-drop secret-keys to 'NetworkInfo'.
2018-06-21 12:08:48 -04:00
Andreas Fackler
a47123c4dd
Improve Hash impl for Ciphertext.
...
This formulation makes it harder to forget updating the `Hash`
implementation if the `Ciphertext` type changes.
2018-06-20 22:09:43 +02:00
Andreas Fackler
1f27fa6891
Implement Hash for "public" cryptographic types.
...
This adds a `Hash` implementation for public keys, commitments,
ciphertexts and signatures — types that might make sense to be included
in special transactions. The `DynamicHoneyBadger` implementation will
require some of them.
2018-06-20 22:09:43 +02:00
Andreas Fackler
6484242afc
Simplify serde implementations, add Ciphertext.
2018-06-20 10:43:59 +02:00
Andreas Fackler
83f8d61402
Support serde by default.
...
This removes the `serialization-serde` feature, since serde is already
used internally and therefore a dependency anyway.
2018-06-20 10:21:52 +02:00
Andreas Fackler
c84c60d826
Rename crypto::keygen to crypto::poly.
2018-06-20 10:05:03 +02:00
Vladimir Komendantskiy
1436d85455
Merge pull request #63 from poanetwork/afck-hb-whose-batch
...
Return proposer info from HoneyBadger.
2018-06-19 09:53:52 +01:00
Andreas Fackler
66f396e01c
Remove more NodeUid trait bounds.
...
Use a `BTreeMap` instead of `HashMap` in `NetworkInfo`. The number of
nodes can't grow very large anyway.
2018-06-18 16:37:07 +02:00
Andreas Fackler
3f707a8e12
Return proposer info from HoneyBadger.
...
Also, consistently name generic arguments, and remove some unused trait
bounds.
2018-06-18 16:19:54 +02:00
Andreas Fackler
3bf86453c3
Restructure crate-level docs, replace honest with correct.
2018-06-15 17:52:17 +02:00
Andreas Fackler
e392f4c3af
Add some crate-level documentation.
2018-06-14 17:44:43 +02:00
Vladimir Komendantskiy
3ed63a1507
formatting
2018-06-14 14:10:05 +01:00
Vladimir Komendantskiy
82b4250f0d
added the broadcast proposer ID in the common coin nonce
2018-06-14 13:36:48 +01:00
Vladimir Komendantskiy
994600bcf6
renamed a fn argument for readability
2018-06-14 12:43:18 +01:00
Vladimir Komendantskiy
3393052b4b
review comment coverage
2018-06-14 12:28:38 +01:00
Vladimir Komendantskiy
5008d11ada
Revert "the set of node indices of common coin shares is now computed only once"
...
This reverts commit e9808efc61
.
2018-06-14 10:05:05 +01:00
Vladimir Komendantskiy
e9808efc61
the set of node indices of common coin shares is now computed only once
2018-06-13 22:05:11 +01:00
Vladimir Komendantskiy
b82ac64148
note in the broadcast example about the use of keys
2018-06-13 18:24:35 +01:00
Vladimir Komendantskiy
4dbef3968d
fixed early update of Agreement epoch
2018-06-13 15:18:27 +01:00
Vladimir Komendantskiy
d5794cb5fe
extended the common coin nonce with a global UID and the top-level epoch
2018-06-13 15:18:27 +01:00
Vladimir Komendantskiy
e116c6c171
added tests for the common coin
2018-06-13 15:17:11 +01:00
Vladimir Komendantskiy
f4b6c90c8c
added a queue of incoming common coin signature shares
2018-06-13 15:17:11 +01:00
Vladimir Komendantskiy
94049e8636
fixed propagation of common coin messages to the top level
2018-06-13 15:17:11 +01:00
Vladimir Komendantskiy
40eeee90fc
protobuf serialization
2018-06-13 15:17:11 +01:00
Vladimir Komendantskiy
122f1fc6f1
updated the tests with key initialisation
2018-06-13 15:15:41 +01:00
Vladimir Komendantskiy
cf45a4e3cb
common coin implementation
2018-06-13 15:15:41 +01:00