Paper 2017/454
Algorand: Scaling Byzantine Agreements for Cryptocurrencies
Yossi Gilad, Rotem Hemo, Silvio Micali, Georgios Vlachos, and Nickolai Zeldovich
Abstract
Algorand is a new cryptocurrency system that can confirm transactionswith latency on the order of a minute while scaling to many users.Algorand ensures that users never have divergent views of confirmedtransactions, even if some of the users are malicious and the network ispartitioned. In contrast, existing cryptocurrencies allow for temporaryforks and therefore require a long time, on the order of an hour, to confirm transactions withhigh confidence.Algorand uses a new Byzantine Agreement (BA) protocol to reach consensusamong users on the next set of transactions. To scale the consensus tomany users, Algorand uses a novel mechanism based on Verifiable RandomFunctions that allows users to privately check whether they are selectedto participate in the BA to agree on the next set of transactions,and to include a proof of their selection in their network messages.In Algorand's BA protocol, users do not keep any private state exceptfor their private keys, which allows Algorand to replace participantsimmediately after they send a message. This mitigates targeted attackson chosen participants after their identity is revealed.We implement Algorand and evaluate its performance on 1,000 EC2 virtualmachines, simulating up to 500,000 users. Experimental results show thatAlgorand confirms transactions in under a minute, achieves 30$\times$Bitcoin's throughput, and incurs almost no penalty for scaling tomore users.
Metadata
- Available format(s)
PDF
- Publication info
- Preprint. MINOR revision.
- Contact author(s)
- yossigi @csail mit edu
- History
- 2017-09-24: last of 2 revisions
- 2017-05-25: received
- See all versions
- Short URL
- https://ia.cr/2017/454
- License
CC BY
BibTeX
@misc{cryptoeprint:2017/454, author = {Yossi Gilad and Rotem Hemo and Silvio Micali and Georgios Vlachos and Nickolai Zeldovich}, title = {Algorand: Scaling Byzantine Agreements for Cryptocurrencies}, howpublished = {Cryptology {ePrint} Archive, Paper 2017/454}, year = {2017}, url = {https://eprint.iacr.org/2017/454}}