Difference between revisions of "Algorand"

From DefiLlama
Jump to navigation Jump to search
Line 1: Line 1:
{{Infobox cryptocurrency
'''Algorand''' is a proof-of-stake blockchain cryptocurrency protocol. Algorand's native cryptocurrency is called ALGO.
| currency_name = Algorand
| image_1 = Algorand mark.svg
| ticker_symbol = ALGO
| symbol = ALGO
| code = Reach, PyTeal, TEAL
| white_paper = https://arxiv.org/abs/1607.01341
| initial_release_date = April 2019
| code_repository = https://github.com/algorand
| status = Active
| programming_languages = TEAL, Reach, Java, PyTeal, Python, GO, Rust
| author = [[Silvio Micali]]
| developer = Algorand, Inc.
| block_explorer = https://algoexplorer.io/
| ledger_start = June 2019
| block_time = 4.5 seconds
| circulating_supply = 6,956,615,108.96 Algo (2022-03-02)
| supply_limit = 10,000,000,000 Algo
}}
 
'''Algorand''' is a [[proof-of-stake]] [[blockchain]] [[cryptocurrency]] protocol. Algorand's native cryptocurrency is called ALGO.


== History ==
== History ==


Algorand was founded in 2017 by [[Silvio Micali]], a professor at [[Massachusetts Institute of Technology|MIT]].<ref>{{Cite web|last=Zhao|first=Helen|date=2018-02-23|title=Bitcoin and blockchain consume an exorbitant amount of energy. These engineers are trying to change that|url=https://www.cnbc.com/2018/02/23/bitcoin-blockchain-consumes-a-lot-of-energy-engineers-changing-that.html|access-date=2021-04-03|website=CNBC|language=en}}</ref><ref>{{Cite web|date=2018-02-15|title=MIT professor debuts high-speed blockchain payments platform Algorand|url=https://venturebeat.com/2018/02/15/mit-professor-debuts-high-speed-blockchain-and-payments-platform-algorand/|access-date=2021-04-03|website=VentureBeat|language=en-US}}</ref> Algorand is composed of a company and a foundation.  Algorand Foundation manages ecosystem growth, award funding, cryptographic research primitives, on-chain governance and decentralization of the Algorand network, including nodes. The core development of the Algorand protocol is overseen by Algorand Inc., a [[Privately held company|private corporation]] based in [[Boston]].
Algorand was founded in 2017 by Silvio Micali, a professor at Massachusetts Institute of Technology. Algorand is composed of a company and a foundation.  Algorand Foundation manages ecosystem growth, award funding, cryptographic research primitives, on-chain governance and decentralization of the Algorand network, including nodes. The core development of the Algorand protocol is overseen by Algorand Inc., a Privately held company based in Boston.


The Algorand [[Testnet|test network]] was launched to the public in April 2019,<ref>{{Cite web|title=Algo VC Fund Raises $200M to Fast-Track Its Own Cryptocurrency|url=https://www.bizjournals.com/boston/inno/stories/fundings/2019/08/27/algo-vc-fund-raises-200m-to-fast-track-its-own.html|url-status=live|access-date=2021-04-03|website=www.bizjournals.com}}</ref> and the main network was launched in June 2019.<ref>{{Cite web|date=2019-10-23|title=Bahrain's Shariah Review Bureau Certifies Blockchain Firm Algorand As Shariah Compliant|url=https://www.crowdfundinsider.com/2019/10/153198-bahrains-shariah-review-bureau-certifies-blockchain-firm-algorand-as-shariah-compliant/|access-date=2021-04-03|website=Crowdfund Insider|language=en-US}}</ref>
The Algorand Testnet was launched to the public in April 2019.


== Research ==
== Research ==
The Algorand Foundation handles blockchain research for the project.{{citation needed|date=May 2022}} It is led by cryptographer [[Tal Rabin]].<ref>{{Cite web |title=RSA Conference Tal Rabin Biography |url=https://www.rsaconference.com/experts/tal-rabin |url-status=live |access-date=2022-04-11 |website=RSA Conference}}</ref>
The Algorand Foundation handles blockchain research for the project. It is led by cryptographer Tal Rabin.


== Design ==
== Design ==


Algorand is intended to solve the "blockchain trilemma": the claim that any blockchain system can have at most two of three desirable properties: decentralization, scalability, and security. A system with all three could run on nodes which each have only moderate consumer-grade resources (i.e. does not need a datacenter or large cluster of virtual machines), has transaction processing which scales with the total network resources (rather than the resources available per-node), and could not be subverted by attackers who individually possess a large fraction of the network's total resources.<ref name=":0">{{Cite journal|last1=Lepore|first1=Cristian|last2=Ceria|first2=Michela|last3=Visconti|first3=Andrea|last4=Rao|first4=Udai Pratap|last5=Shah|first5=Kaushal Arvindbhai|last6=Zanolini|first6=Luca|date=14 October 2020|title=A Survey on Blockchain Consensus with a Performance Comparison of PoW, PoS and Pure PoS|journal=Mathematics|language=en|volume=8|issue=10|pages=1782|doi=10.3390/math8101782|doi-access=free}}</ref>
Algorand is intended to solve the "blockchain trilemma": the claim that any blockchain system can have at most two of three desirable properties: decentralization, scalability, and security. A system with all three could run on nodes which each have only moderate consumer-grade resources (i.e. does not need a datacenter or large cluster of virtual machines), has transaction processing which scales with the total network resources (rather than the resources available per-node), and could not be subverted by attackers who individually possess a large fraction of the network's total resources.


=== Consensus algorithm ===
=== Consensus algorithm ===


Algorand uses a [[Byzantine fault|Byzantine agreement]] protocol that leverages proof-of-stake.<ref>{{Cite journal|last=Bartoletti|first=Massimo|title=A formal model of Algorand smart contracts|url=https://fc21.ifca.ai/papers/202.pdf|journal=Financial Cryptography and Data Security 2021|year=2020|arxiv=2009.12140}}</ref><ref>{{Cite journal|last1=Xiao|first1=Y.|last2=Zhang|first2=N.|last3=Lou|first3=W.|last4=Hou|first4=Y. T.|date=28 January 2020|title=A Survey of Distributed Consensus Protocols for Blockchain Networks|url=https://ieeexplore.ieee.org/document/8972381|journal=IEEE Communications Surveys and Tutorials|volume=22|issue=2|pages=1432–1465|doi=10.1109/COMST.2020.2969706|arxiv=1904.04098|s2cid=102352657|issn=1553-877X}}</ref><ref>{{Cite journal|last1=Wan|first1=Shaohua|last2=Li|first2=Meijun|last3=Liu|first3=Gaoyang|last4=Wang|first4=Chen|date=2020-11-01|title=Recent advances in consensus protocols for blockchain: a survey|url=https://doi.org/10.1007/s11276-019-02195-0|journal=Wireless Networks|language=en|volume=26|issue=8|pages=5579–5593|doi=10.1007/s11276-019-02195-0|s2cid=213063001|issn=1572-8196}}</ref> As long as a supermajority of the stake is in non-malicious hands, the protocol can tolerate malicious users, achieving consensus without a central authority.
Algorand uses a Byzantine fault protocol that leverages proof-of-stake. As long as a supermajority of the stake is in non-malicious hands, the protocol can tolerate malicious users, achieving consensus without a central authority.


Consensus on Algorand requires three steps to propose, confirm and write the block to the blockchain.<ref>{{Cite web|url=https://developer.algorand.org/docs/get-details/algorand_consensus/|title = Algorand consensus - Algorand Developer Portal}}</ref> The steps are propose, soft vote and certify vote.
Consensus on Algorand requires three steps to propose, confirm and write the block to the blockchain. The steps are propose, soft vote and certify vote.


The first phase (the block proposal phase) uses proof of stake principles. During this phase, a committee of users in the system is selected randomly, though in a manner that is weighted, to propose the new block. The selection of the committee is done via a process called "cryptographic sortition", where each user determines whether they are on the committee by locally executing a [[Verifiable random function]]  (VRF). If the VRF indicates that the user is chosen, the VRF returns a cryptographic proof that can be used to verify that the user is on the committee. The likelihood that a given user will be on the committee is influenced by the number of Algo tokens held by that user (the stake).<ref name=":0" /><ref name="ieeexplore.ieee.org">{{Cite journal|last1=Xiao|first1=Y.|last2=Zhang|first2=N.|last3=Lou|first3=W.|last4=Hou|first4=Y. T.|date=28 January 2020|title=A Survey of Distributed Consensus Protocols for Blockchain Networks|url=https://ieeexplore.ieee.org/document/8972381|journal=IEEE Communications Surveys and Tutorials|volume=22|issue=2|pages=1432–1465|arxiv=1904.04098|doi=10.1109/COMST.2020.2969706|issn=1553-877X|s2cid=102352657}}</ref><ref name="doi.org">{{Cite journal|last1=Wan|first1=Shaohua|last2=Li|first2=Meijun|last3=Liu|first3=Gaoyang|last4=Wang|first4=Chen|date=2020-11-01|title=Recent advances in consensus protocols for blockchain: a survey|url=https://doi.org/10.1007/s11276-019-02195-0|journal=Wireless Networks|language=en|volume=26|issue=8|pages=5579–5593|doi=10.1007/s11276-019-02195-0|issn=1572-8196|s2cid=213063001}}</ref>
The first phase (the block proposal phase) uses proof of stake principles. During this phase, a committee of users in the system is selected randomly, though in a manner that is weighted, to propose the new block. The selection of the committee is done via a process called "cryptographic sortition", where each user determines whether they are on the committee by locally executing a Verifiable random function (VRF). If the VRF indicates that the user is chosen, the VRF returns a cryptographic proof that can be used to verify that the user is on the committee. The likelihood that a given user will be on the committee is influenced by the number of Algo tokens held by that user (the stake).


After determining a user is on the block selection committee, that user can build a proposed block and disseminates it to the network for review/analysis during the second phase. The user includes the cryptographic proof from the VRF in their proposed block to demonstrate committee membership.<ref name="ieeexplore.ieee.org"/><ref name="doi.org"/>
After determining a user is on the block selection committee, that user can build a proposed block and disseminates it to the network for review/analysis during the second phase. The user includes the cryptographic proof from the VRF in their proposed block to demonstrate committee membership.


In the second phase (the block finalization phase), a Byzantine Agreement protocol (called "BA*") is used to vote on the proposed blocks. In this second phase, a new committee is formed via cryptographic sortition. When users have determined that they are in this second-phase voting committee, they analyze the proposed blocks they have received (including verification of first-phase committee membership) and vote on whether any of the blocks should be adopted. If the voting committee achieves consensus on a new block, then the new block is disseminated across the network.<ref name=":0" /><ref>{{Cite journal|last1=Xiao|first1=Y.|last2=Zhang|first2=N.|last3=Lou|first3=W.|last4=Hou|first4=Y. T.|date=28 January 2020|title=A Survey of Distributed Consensus Protocols for Blockchain Networks|url=https://ieeexplore.ieee.org/document/8972381|journal=IEEE Communications Surveys and Tutorials |volume=22|issue=2|pages=1432–1465| arxiv=1904.04098|doi=10.1109/COMST.2020.2969706| issn=1553-877X|s2cid=102352657}}</ref><ref>{{Cite journal|last1=Wan|first1=Shaohua|last2=Li|first2=Meijun|last3=Liu|first3=Gaoyang|last4=Wang|first4=Chen|date=2020-11-01|title=Recent advances in consensus protocols for blockchain: a survey | url=https://doi.org/10.1007/s11276-019-02195-0| journal=Wireless Networks|language=en| volume=26|issue=8|pages=5579–5593|doi=10.1007/s11276-019-02195-0 |issn=1572-8196|s2cid=213063001}}</ref>
In the second phase (the block finalization phase), a Byzantine Agreement protocol (called "BA*") is used to vote on the proposed blocks. In this second phase, a new committee is formed via cryptographic sortition. When users have determined that they are in this second-phase voting committee, they analyze the proposed blocks they have received (including verification of first-phase committee membership) and vote on whether any of the blocks should be adopted. If the voting committee achieves consensus on a new block, then the new block is disseminated across the network.


Within the Algorand consensus algorithm, membership in both committees changes every time the phase is run. This protects users against targeted attacks, as an attacker will not know in advance which users are going to be in a committee.<ref name=":0" /> Two different Algorand blocks cannot reach consensus in the same round.<ref>{{Cite journal|last1=Chen|first1=Jing|last2=Micali|first2=Silvio|date=2019-07-19|title=Algorand: A secure and efficient distributed ledger|url=https://www.sciencedirect.com/science/article/pii/S030439751930091X|journal=Theoretical Computer Science|series=In memory of Maurice Nivat, a founding father of Theoretical Computer Science - Part I|language=en|volume=777|pages=155–183|doi=10.1016/j.tcs.2019.02.001|s2cid=126593426|issn=0304-3975}}</ref><ref>{{Cite journal|date=2019-07-19|title=Algorand: A secure and efficient distributed ledger|journal=Theoretical Computer Science|language=en|volume=777|pages=155–183|doi=10.1016/j.tcs.2019.02.001|issn=0304-3975|last1=Chen|first1=Jing|last2=Micali|first2=Silvio|doi-access=free}}</ref> According to an external security audit, the model also accounts for timing issues and adversary actions, e.g., when the adversary has control over message delivery.<ref>{{Cite book|last1=Alturki|first1=Musab A.|last2=Chen|first2=Jing|last3=Luchangco|first3=Victor|last4=Moore|first4=Brandon|last5=Palmskog|first5=Karl|last6=Peña|first6=Lucas|last7=Roşu|first7=Grigore|date=2020|chapter=Towards a Verified Model of the Algorand Consensus Protocol in Coq|title=Formal Methods. FM 2019 International Workshops|series=Lecture Notes in Computer Science|volume=12232|pages=362–367|doi=10.1007/978-3-030-54994-7_27|arxiv=1907.05523|isbn=978-3-030-54993-0|s2cid=196471153}}</ref>
Within the Algorand consensus algorithm, membership in both committees changes every time the phase is run. This protects users against targeted attacks, as an attacker will not know in advance which users are going to be in a committee. Two different Algorand blocks cannot reach consensus in the same round. According to an external security audit, the model also accounts for timing issues and adversary actions, e.g., when the adversary has control over message delivery.


=== Smart contracts ===
=== Smart contracts ===
[[Smart contract]]s on Algorand are known as ASC1 (Algorand Smart Contracts).{{citation needed|date=May 2022}}
Smart contracts on Algorand are known as ASC1 (Algorand Smart Contracts).
== References ==
Needs to be formatted for this wiki
 
{{reflist}}
 
{{Cryptocurrencies|state=expanded}}


[[Category:Blockchains]]
[[Category:Blockchains]]
[[Category:Algorand]]
[[Category:Alternative currencies]]
[[Category:Alternative currencies]]
[[Category:Cryptocurrency projects]]
[[Category:Cryptocurrency projects]]

Revision as of 16:24, 28 June 2022

Algorand is a proof-of-stake blockchain cryptocurrency protocol. Algorand's native cryptocurrency is called ALGO.

History

Algorand was founded in 2017 by Silvio Micali, a professor at Massachusetts Institute of Technology. Algorand is composed of a company and a foundation. Algorand Foundation manages ecosystem growth, award funding, cryptographic research primitives, on-chain governance and decentralization of the Algorand network, including nodes. The core development of the Algorand protocol is overseen by Algorand Inc., a Privately held company based in Boston.

The Algorand Testnet was launched to the public in April 2019.

Research

The Algorand Foundation handles blockchain research for the project. It is led by cryptographer Tal Rabin.

Design

Algorand is intended to solve the "blockchain trilemma": the claim that any blockchain system can have at most two of three desirable properties: decentralization, scalability, and security. A system with all three could run on nodes which each have only moderate consumer-grade resources (i.e. does not need a datacenter or large cluster of virtual machines), has transaction processing which scales with the total network resources (rather than the resources available per-node), and could not be subverted by attackers who individually possess a large fraction of the network's total resources.

Consensus algorithm

Algorand uses a Byzantine fault protocol that leverages proof-of-stake. As long as a supermajority of the stake is in non-malicious hands, the protocol can tolerate malicious users, achieving consensus without a central authority.

Consensus on Algorand requires three steps to propose, confirm and write the block to the blockchain. The steps are propose, soft vote and certify vote.

The first phase (the block proposal phase) uses proof of stake principles. During this phase, a committee of users in the system is selected randomly, though in a manner that is weighted, to propose the new block. The selection of the committee is done via a process called "cryptographic sortition", where each user determines whether they are on the committee by locally executing a Verifiable random function (VRF). If the VRF indicates that the user is chosen, the VRF returns a cryptographic proof that can be used to verify that the user is on the committee. The likelihood that a given user will be on the committee is influenced by the number of Algo tokens held by that user (the stake).

After determining a user is on the block selection committee, that user can build a proposed block and disseminates it to the network for review/analysis during the second phase. The user includes the cryptographic proof from the VRF in their proposed block to demonstrate committee membership.

In the second phase (the block finalization phase), a Byzantine Agreement protocol (called "BA*") is used to vote on the proposed blocks. In this second phase, a new committee is formed via cryptographic sortition. When users have determined that they are in this second-phase voting committee, they analyze the proposed blocks they have received (including verification of first-phase committee membership) and vote on whether any of the blocks should be adopted. If the voting committee achieves consensus on a new block, then the new block is disseminated across the network.

Within the Algorand consensus algorithm, membership in both committees changes every time the phase is run. This protects users against targeted attacks, as an attacker will not know in advance which users are going to be in a committee. Two different Algorand blocks cannot reach consensus in the same round. According to an external security audit, the model also accounts for timing issues and adversary actions, e.g., when the adversary has control over message delivery.

Smart contracts

Smart contracts on Algorand are known as ASC1 (Algorand Smart Contracts).