Algorand
Use byzantine consensus/agreements in block chains
- Replace the Proof-of-works consensus protocols in Bitcoin
- Pros
- higher throughput
- no forks
- no mining
- Cons
- liveness
- malicious
- concurrent proposals
- membership management
Sortition based on Verifiable Random Function (VRF)
- Sortition:
- given public/private key pair (pk, sk), VRF(sk, seed) generates a hash and a proof
- use the hash to deterministically decide whether the user is a proposer or a committee member
- seed is in the previous block
BA agreements
- Vote and CountVote
- over threshold in the first round: final consensus
- else: tentative consensus
- fork: could achieve tentative consensus on two blocks, why? (network asynchrony)
Compare to Stellar
- a node in Stellar selects a number of servers it trusts as the consensus group, compared to VRF used in Algorand
- BA in Stellar is ballot-based, a node first tries to find out what value is potentially chosen before