Algorand (ALGO)

The exchange rate of one ALGO at 12:51 UTC is 0.1762$

Chart | Average rate

Growth trend
5 Days
Falling trend
2 Days
Flat trend
2 Days

“Algorand” is a new cryptocurrency that confirms transactions with a delay of about a minute when scaling many users. Algorand guarantees that users will never diverge in the algorithm of confirmed transactions, even if some users are “malicious” and the network is temporarily partitioned.

Unlike Algorand, existing cryptocurrencies allow the creation of temporary forks and therefore require a longer time during transactions to confirm the transaction with a high degree of certainty.

Algorand uses the new Byzantine Agreement (BA) protocol to achieve consensus among users on a set of transactions, i.e. to scale the consensus to many participants.

Algorand uses a new mechanism based on verifiable random features that allows users to confidentially check if they are selected for BA in order to negotiate the next set of trades, as well as include proof of their selection in their network messages.

In the BA protocol, Algorand users do not store any private resources other than their private keys, which allows Algorand to immediately replace one participant with another after they send a message. This mitigates targeted attacks on selected participants after their identity is revealed.

Algorand's implementation and performance evaluation takes place on 1,000 EC2 virtual machines simulating up to 500,000 users.

Experimental results show that Algorand confirms transactions in under a minute, achieves 125x Bitcoin’s throughput, and incurs almost no penalty for scaling to more users.

Cryptographic currencies such as Bitcoin can enable new applications, such as smart contracts and fair protocols, can simplify currency conversions, and can avoid trusted centralized authorities that regulate transactions.

However, current proposals suffer from a trade-off between latency and confidence in a transaction.

For example, achieving a high confidence that a transaction has been confirmed in Bitcoin requires about an hour long wait.

On the other hand, applications that require low latency cannot be certain that their transaction will be confirmed,and must trust the payer to not double-spend.

Double-spending is the core problem faced by any cryptocurrency, where an adversary holding $1 gives his $1 to two different users. Cryptocurrencies prevent double-spending by reaching consensus on an ordered log (blockchain) of transactions. Reaching consensus is difficult because of the open setting: since anyone can participate, an adversary can create an arbitrary number of pseudonyms, making it infeasible to rely on traditional consensus protocols that require a fraction of honest users.

Bitcoin and other cryptocurrencies address this problem using proof-of-work (PoW), where users must repeatedly compute hashes to grow the blockchain, and the longest chain is considered authoritative. PoW ensures that an adversary does not gain any advantage by creating pseudonyms. However, PoW allows the possibility of forks, where two different blockchains have the same length, and neither one supersedes the other.

This paper presents Algorand, a new cryptocurrency designed to confirm transactions on the order of one minute.

The core of Algorand uses a Byzantine Agreement protocol called BA that scales to many users, which allows Algorand to reach consensus on a new block with low latency and without the possibility of forks.

A key technique that makes BA suitable for Algorand is the use of verifiable random functions (VRFs) to randomly select users in a private and non-interactive way. BA was previously presented at a workshop at a high level, and a technical report by Chen and Micali described an earlier version of Algorand.

Algorand faces three challenges. First, Algorand must avoid Sybil attacks, where an adversary creates many pseudonyms to influence the Byzantine Agreement protocol.

Second, BA must scale to millions of users, which is far higher than the scale at which state-of-the-art Byzantine Agreement protocols operate.

Finally, Algorand must be resilient to denial-of-service attacks, and continue to operate even if an adversary disconnects some of the users.

Algorand addresses these challenges using several techniques, as follows.

Weighted users

To prevent Sybil attacks, Algorand assigns a weight to each user. BA is designed to guarantee consensus as long as a weighted fraction (a constant greater than 2/3) of the users are honest. In Algorand, we weigh users based on the money in their account. Thus, as long as more than some fraction (over 2/3) of the money is owned by honest users, Algorand can avoid forks and double-spending.

Consensus by committee

BA achieves scalability by choosing a committee—a small set of representatives randomly selected from the total set of users—to run each step of its protocol. All other users observe the protocol messages, which allows them to learn the agreed-upon block.

BA chooses committee members randomly among all users based on the users’ weights. This allows Algorand to ensure that a sufficient fraction of committee members are honest.

Cryptographic sortition

To prevent an adversary from targeting committee members, BA selects committee members in a private and non-interactive way. This means that every user in the system can independently determine if they are chosen to be on the committee, by computing a function (a VRF) of their private key and public information from the blockchain. If the function indicates that the user is chosen, it returns a short string that proves this user’s committee membership to other users, which the user can include in his network messages. Since membership selection is non-interactive, an adversary does not know which user to target until that user starts participating in BA.

Participant replacement

Finally, an adversary may target a committee member once that member sends a message in BA. BA mitigates this attack by requiring committee members to speak just once. Thus, once a committee member sends his message (exposing his identity to an adversary), the committee member becomes irrelevant to BA.

BA achieves this property by avoiding any private state (except for the user’s private key), which makes all users equally capable of participating, and by electing new committee members for each step of the Byzantine Agreement protocol.