If you want to jump directly to the features of Algorand 2.0 - please scroll down.
If you are interested in getting a broader perspective on how I see the extensions coming along with Algorand 2.0 in the context of their original development - please start right here from the top.
Algorand 1.0 - Introduction
The first time I heard about Algorand’s project was back in June 2019, when I had the opportunity to meet Naveed Ihsanullah (Head of Engineering at Algorand). He was presenting the platform in it’s “1.0” version (a few weeks after their mainnet launch). I was impressed with Naveed’s overview of the platform, as well as Algorand’s unconventional approach to the consensus protocol, called PPoS (Pure Proof of Stake). I was intrigued to learn more, and to see if my second thoughts about Algorand would confirm my initial excitement.
As I have been learning more about Algorand, I’ve been documenting my research and observations in the form of youtube videos (using it as a means for structuring and polishing my thoughts).
Three aspects of Algorand 1.0 really stood out to me :
1) strong team and their backgrounds at MIT
2) innovatory consensus algorithm
3) sensible approach to tokens distribution
Founder & The Team
Silvio Micali (the founder of Algorand) is definitely an authority in the cryptography space, and a strong voice behind the Algorand project. Silvio is a scientist at MIT, professor of computer science, focused on zero knowledge proof, secure protocols, cryptography, so basically everything that matters for blockchain. Silvio is a visionary, whose work has contributed to the mathematical foundations of cryptography and has advanced the theory of computation. In 2012 he received a Turing award for his work, which is the most prominent award for computer scientists (equivalent of Nobel prize in the industry) so that's a pretty significant recognition.
In 2017 Silvio founded Algorand. His initial core team consisted of PhD candidates at MIT, who collaboratively worked on the core protocol, architecture and development of Algorand’s platform.
The team members who later joined also have impressive educational backgrounds, with degrees from big universities like MIT, Stanford and Harvard. Most of the Algorand Foundation also comes from IBM. In my opinion, this team seems to have the right mixture of competencies. Just google them and do your own research.
Projects in the crypto/blockchain space are very complex in nature. It's not only about how to build the fastest and robust solutions, but also how to build solutions that are secure and scalable, with effective go to market strategy, a vision for the ecosystem expansion and community growth, as well as a robust design for tokenomics. To achieve these things and more you need people with backgrounds in science, enterprise, business, game theory, cryptography,, mathematics - everyone working together as a well oiled machine. I am pretty impressed with Algorand in this regard.
This Team claims to have solved the Blockchain Trilemma (scalability/security/decentralization) - which is a pretty bold statement to make, so let's take a closer look at their consensus protocol.
Algorand’s Consensus Protocol
This is a hot topic in the crypto space. So far we’ve seen either slow, expensive or cumbersome protocols like PoW (Bitcoin being a great example) or faster PoS protocols, which most often, if not always, sacrificed the spirit of decentralisation to achieve better scalability (just to give EOS as an example).
So I got really intrigued by what Algorand is calling Pure Proof-of-Stake - did they really solve the Blockchain Trilemma?
Here is a simplified overview of how it works.
Algorand’s Pure Proof-of-Stake consensus protocol has 2 Phases:
=== Phase 1 === producing the block
First, one user is randomly selected among all coin holders.
Second, he becomes known to all users (his public key is revealed).
Third, this user produces the block.
Phase 1 ends with a block being proposed to be attached to the chain.
Phase 1 seems to be very fast, involves just 1 user, so would not provide the right level of decentralisation.
So here comes the Phase 2.
=== Phase 2 === verifying and approving the block
First, the committee of 1000 users is randomly selected (***) and becomes known to all participants.
Second, this committee is verifying the block and voting on the block if it is correct and legit.
Third, if the majority of the committee confirms that the block is fine,
the block is propagated and attached to the blockchain,
if something is wrong with the proposed block the Phase 1&2 are repeated.
(***) The question which arises is who selects the committee to keep the consensus decentralized and secure? Well, the committee selects themselves. How? They run a random, cryptographically secured function on their side (a kind of lottery), and if they won the lottery, they show the winning ticket along with their vote on the proposed block, which got produced in Phase 1.
This is approach is pretty simple and fast, but let’s see if it does address the Blockchain Trilemma in terms of
Security x Scalability x Decentralization
Is it Secure?
All we need to trust here is the cryptographically secured, random function. Providing that it has been designed by all the best cryptographers of the world from MIT, I think we can we can trust it.
We also need to trust that majority of the users of the network are good actors, this is one of the main assumptions of Algorand. I think this is a safe assumption - most people on Earth are good indeed, aren’t they?
Is it Scalable?
Block creation by 1 user should be super fast. Verification of this block by committee of 1k members also should happen very fast. Providing that Algorand’s mainnet is launched already, I think we should be able to see some data there already to verify if Algorand indeed handles 1k trx/s with 5sec block size.
Obviously we need more proofs on massive scale as well, thousands of real business transactions, to verify its scalability even further. What I can say for now? --- this design is promising!
Is it Decentralized?
A few factors to be taken into account here:
a) There is no minimum threshold required to be part of the committee, you can participate in the lottery even with 1 Algo, so everyone can join and help securing the network.
b) There are no penalties for misbehaving, no threat of losing your coins if you participate in the consensus protocol (what would potentially discourage average users/holders from being part of the network), so probably majority of the coin holders will join consensus protocol, helping to keep it decentralized.
c) Your chances of being selected to the committee are proportional to the amount of coins you have, the bigger your stake the better chances you have.
So what would happen if there were bad actors, with a lot of coins and they’d want to attack the network?
Well.. to attack the network they’d need to have Huuuge Stake, probably well above 50% of all the coins in circulation. In such case, the question is - would they still be incentivised to attack the network? Having such a big stake in the network, such a bad actor would be a major stakeholder, so why would he want to attack own business (and in result make Algo tokens worth nothing?).
Game theory comes into play here, and I guess it doesn't make sense for actors with major stake in the network to attack their own blockchain, does it?
Conclusions? To maximise the network security, and to make sure that Algorand platform is really public and fairly managed, Algorand needs to ensure that coins are fairly distributed, involving thousands, if not millions of users - and here is where Token Distribution and Auctions come into play.
Token Distribution and Auctions
The Algorand blockchain network has its own native token, called the Algo token. Algorand introduced the concept of dutch auctions as one of the means for early token distribution.
First, let's have a look at the big picture : the total Supply of Algos is 10 billion tokens, to be distributed over the next 5 years, with the following year by year projection:
The tokens are sitting in 5 buckets:
Algorand holds 2.5B coins and committed holding them long term, participate in consensus and assist in securing the network (but never represent more than 49% of the voting power).
Rewards (1.75B coins) for common user, who stake the coins and help securing the network.
Relay Node Operators (2.5B coins) who have agreed to run relay nodes, earning Algos in exchange.
End User Grants (0.25B coins) for developer activities and community members.
and finally, Auctions (3B coins) with a monthly distribution avg. of 50M Algos, over a period of 5 years.
As an early supporter of the project, you can participate in those Dutch Auctions, purchasing the Algo tokens.
So let’s dig into Auctions - how the mechanism works there.
At every auction, a fixed amount of Algos is available for a fixed amount of time. During the auction, the price of the token is decreasing in time, linearly, and auction ends either when it reaches the reserve price (lets say as an example = 50 cents) or all Algos are sold at the clearing price. Users come in and bid during this auction, by specifying how much money they are willing to spend.
So let's assume I'm participating in an auction with $100 budget to spend.
Auction starts at the price of $1per Algo, so with my 100$ budget that would give me 100 tokens initially when the auction starts. As the auction progresses, the price is decreasing, more users commit money, hence the number of Algos that are surely sold at the auction increases, and the number of remaining Algos drops. Ultimately, at some stage, the auction is closing if one of the two conditions are met:
current demand meets or exceeds the supply
the reserve limit price is met
So in this case I might buy somewhat between 100 to 200 Algos, depends if the action ends at its limit price of 50 cents or somewhere on the way from $1 to $0.5.
I think that is pretty fair approach, everybody buys Algos at the same price.
Worth mentioning: if for any reason you are unhappy with your purchase, you have the option to return your tokens one year later and get back even up to 90% of your invested money. Read more about actions here.
Will such an approach foster decentralization and broad distribution of tokens?
For sure 5 different means for token distribution, including auctions, rewards for node operators and developers is a good idea. Algorand recently launched the Developer Incentive Award program - more details here - which is definitely a great move to attract more creators to the platform. Looking forward for more actions of this kind and how they come into fruition. Definitely, the more recognized Algorand blockchain becomes, the more people might consider to engage into their economy.
Challenges with Algorand 1.0
Having done my initial research on Algorand back in June 2019, I also did notice several challenges they might face on the way to becoming The Platform for Borderless Economy, just to name a few:
1) Platform development seemed to be pretty advanced compared to what one could have achieved in 2 years, however still Algorand seemed to be a middle way thought their roadmap. Their consensus mechanism is well designed and working on mainnet for some time already, I was impressed with the number of SDKs already made available:
but they still had a major developments to deliver, like: smart square contracts, atomic swaps, gov model.
So from my point of view they would’ve needed probably another 2 years or more to come up with remaining functionalities, before platform would’ve reached pretty much feature-completeness, being ready for production purposes.
2) Competition is huge in this space, there are many good teams building platforms with similar characteristics as Algorand, just to name a few: Ethereum 2.0, Aion, Cosmos or Cardano. Building great solution is one thing, but making sure that it is widely adopted is a big challenge, all those companies will face.
How Algorand is going to be different, and what’s their go to market strategy is yet to be revealed.. as the time goes by and their solution matures.
3) Algorand claims they have solved the blockchain trilemma. Definitely they have well overthought architecture and working piece of technology, but to be able to fully defend this “trilemma” statement I think they need a real use cases, hundreds of actual business trx per second, majority of tokens distributed into hundreds of thousands of ‘hands’, and the network running for a few years in production mode, being bulletproof, hacking-proof, collusion-proof. So to conclude, in my option at this stage their blockchain trilemma statement is a bit premature, but certainly they are on a good path towards this goal.
Algorand 2.0 - first thoughts
Algorand mainnet upgrade came to me as a big surprise, for two main reasons:
I am pretty impressed with the pace of development of Algorand team: in May 2019 they launched their mainnet, and it took Algorand team less than 6 months to deliver 3 major functionalities in Nov 2019 with Algorand 2.0.
Level of technical advancements and innovations coming along with Algorand 2.0 is significant in my opinion.
So let’s digest it. Algorand 2.0 includes three key capabilities:
Algorand Standard Assets, being a token standard to enable the creation and issuance of tokens. Nothing new? Not really, these are built into Layer-1. Implications are impactful.
Smart Contracts in Layer-1 + non-Turing complete scripting language. Surprising that Turing-award winner decides to build non-Turing complete language? Indeed.
Atomic Transfers, secure transfer of assets, built into Layer-1. Do not confuse those with Atomic Swaps though.
Algorand’s new release is trending upwards, addressing some of my big worries described before.
Let me describe the nuances of Algorand 2.0 and try to answer why I think this is a big change.
Algorand Standard Asset (ASA)
ASA provides a standardised Layer-1 mechanism to represent any type of asset on Algorand blockchain.
Fungible Assets, like currencies, utility tokens or stablecoins,
Non Fungible Assets, like tickets, read estate, in-game items,
Restricted Fungible Assets like securities,
Restricted Non Fungible Assets like certifications or licenses,
This is a unique and innovative approach, because Algorand has implemented those assets as a layer 1 assets. This basically ensures:
They are Fast and Secure, keeping the same security level as a native Algos, being as secure as the base consensus protocol, and as fast as Layer-1 transactions.
Compatibility, if an application supports particular Algorand asset, it will automatically support all Algorand assets thanks to its universal interoperability.
Ease of use, are able to create an asset with a single transaction!
The ERC-20 token standard of Ethereum made a difference in the industry a few years ago, and I believe that ASAs might have a similar impact if not bigger, when adopted widely.
Algorand Smart Contracts on Layer 1 (ASC1)
We naturally think of Smart Contracts as being Layer-2 solutions, but Algorand is breaking this norm, by combining Smart Contracts on Layer-1 and non-Turing complete TEAL language.
Algorand believes that Turing complete languages are not necessary for the majority of the use cases for blockchains. Turing complete languages introduce an additional layer of potential attacks and performance issues. Let’s have a look at the data:
Recently Scientists from the University of Applied Science in Germany evaluated over 53,000 of currently deployed smart contracts with respect to the requirements of those contracts concerning computability.
The finding is that most of the currently deployed smart contracts DO NOT need Turing complete languages, and could also be implemented based on a simpler design principles of the underlying language.
Out of 53k analysed smart contracts, only 7% of them made use of control flow mechanism (“while” loop) that usually requires Turing complete programming language.
In addition, it is highly probable that some of those “7 precent” smart contracts could be implemented without WHILE loops and could be replaced with UTXO features.
Read More here => Do Smart Contract Languages Need to be Turing Complete?
The Algorand team provides a set of smart contract templates which make ASC1 development smooth and easy, plus you can also build your own smart contracts from scratch.
Along with ASC they created their own language, called TEAL (Transaction Execution Approval Language), non-Turing complete. With Silvio Micali being a Turing award winner, people are asking if this non-turing complete language is a feature or bug... Let's look closer.
There are 16 documented vectors of possible attacks which are directly related to Turing-completeness of smart contracts. To name a few:
The DAO hack was possible because of Turing complete functionalities of Ethereum smart contract,
Constantinople upgrade was opening gates for attackers, due to Turning complete features of Solidity,
Halting problem, makes impossible to exactly estimate the cost of transactions.
Having that in mind, Non-Turing complete TEAL language by Algorand might not be a bad choice. It provides simplicity (easy to write and debug), and improves execution time, security, and it still allows branch forwards, at the same time preventing recursive logic (maximise safety and performance).
Possible use cases?
Interfacing with Oracles and off-chain data
Algorand is working on full SDK support and templates for common use cases that will help developers get started, which will be great to see soon.
Still, there are use cases which will require more complex logic vs what ASC1 can provide, and on the roadmap for Algorand there are Smart Contracts on Layer 2, with Turing complete language as well!
Atomic transfers are the 3rd functionality coming along with Algorand 2.0. These are a secure way to transfer a number of assets among multiple parties (do not confuse it with other known Atomic Swap solutions).
What is the difference? Atomic Transfers allow groups of transactions to be submitted at the same time.
How does it work?
Individual Transactions are created.
Individual transactions are then grouped into a file.
Each transfer is signed separately by the originator of the transfer.
The file is submitted to the network, and nodes submit them all at once.
If any of the transactions fail, then all the transactions will fail.
So you get them all approved or none.
This eliminates the need for hashed time-locks for atomic swaps in other blockchains and also avoids the delays inherent with hashed timed-locks.
There is no need for escrow or reliance on time-locked contracts = this means it is a smooth and fast approach.
Additional benefit : because they are executed on Layer1 = they are more secure than those on Layer 2.
Atomic Transfers enable applications such as:
Circular trades: A pays to B, if B pays to C, if C pays to A
Group payments: Either everyone pays or no one does.
Trades without trusted intermediaries.
Payments to multiple recipients
…and many others...
Watching the speed of development of the core functionalities of the Algorand blockchain as well as the level of innovation they bring to the blockchain industry with their 2.0 version, has been nothing short of fascinating. Algorand 2.0 seems to be taking a different direction than most of the Ethereum copycat projects. I still believe Ethereum is a major player in this space, and new projects need to come up with unique value proposition to compete. Increasing transaction throughput by sacrificing the decentralization or security is a short term play for such platforms, and most of those copycat solutions will be dead in 2 years. I am happy to see that Algorand is bringing a new approach to the table, and injecting new ways to deal with the Blockchain Trilemma.
Only time will tell, but for now I am looking forward to seeing the next functionalities on the Algorand pipeline (Pixel, Self-validating transactions, Post & Trade sales, Smart Contracts Laye-2).