With this article I am starting a series about the Algorand platform. First, I'd like to introduce you myself protocol in the basic version v1.0 and background of the Algorand project. In subsequent articles you will learn about more advanced functionalities that Algorand added to his platform at the end of 2019 (release v2.0). Extended platform functionality, attracted interesting projects as well as central banks (CBDC) to the Algorand ecosystemso the project is starting to develop quite promisingly - let's take a look at the foundation.
Algorand 1.0 - Introduction
I heard about the project for the first time Algorand in June 2019, when I had the opportunity to meet Naveed Ihsanullah (head of engineering department in Algorand) at a conference in Warsaw. Naveed then presented the platform in version "1.0", literally a few weeks after launching mainnet.
The platform itself promised to be really interesting, it was based on a slightly unconventional approach of the consensus protocol (PPoS - Pure Proof of Stake) (or: Pure Proof of Stake). This intrigued me so much that I wanted to learn more and see if my further thoughts on Algorand would confirm my initial excitement.
Along with deepening my knowledge, I documented my research and observations in the form of video on youtube (using this as a method for structuring and systematizing thoughts).
You can watch these videos here: videoPOL + videoENG
Of the many aspects, there are three things that I think make this project stand out:
1) strong team and its roots at MIT,
2) innovative algorithm consensus
3) reasonable approach for token distribution.
Project founder and team
Silvio Micali (founder of Algorand) is definitely an authority in the world of cryptography and a strong voice behind Project Algorand. Silvio is a scientist at MIT, a professor of information science, focuses his work on secure protocols (zero-knowledge proof, cryptography), which is everything that matters for blockchain. Silvio Micali's work contributed to the foundations of cryptography. In 2012, Silvio received the Turing Award for his achievements. The Turing Award is a kind of equivalent of the Nobel Prize in the IT area.
In 2017, Silvio founded Algorand. The origin of the original team was other MIT scientists who helped develop the native protocol, architecture and broader functionality of the Algorand platform.
The team members who joined later also have considerable scientific roots, hooked up in universities such as MIT, Stanford and Harvard. In my opinion, this one the team has a good mix of competences – it is best to check it yourself and recognize their profiles.
The team plays a key role here, as projects in the crypto / blockchain area are very complex in their nature. They are not limited to building the fastest and most beautiful solution. Building a secure and scalable solution is a big challenge. In addition, these projects must have an effective market entry strategy, a vision for ecosystem and community development, as well as a solid token economy design. To achieve all these things, you need people with scientific and business background, experts in game theory, cryptography, mathematics - working together like a well-oiled machine. I think that in this field Algorand has built a really solid team.
The Algorand team says they have solved the trilogy Blockchain, i.e. scalability x security x decentralization. This is quite a bold statement - let's check if it really is so.
Algorand consensus protocol
Consensus protocols… a hot topic in the world krypto. So far, we've seen either slow, expensive and inefficient protocols such as PoW (Proof of Work) (Bitcoin being a great example) or faster PoS protocols (Proof of Stake) that most often sacrificed the spirit of decentralization to achieve better scalability (like for example EOS). In this context, the statements by the Algorad team about addressing the "blockchain trillema" are somewhat provocative.
Below is a simplified description of how it works.
Algorand's consensus protocol has 2 phases:
=== Phase 1 ===
that is, creating a block.
- step 1: among the Algo token holders, one user is randomly selected to create the next transaction block.
- step 2: the drawn user is announced to all network members (his public key is disclosed)
- step 3: the same user produces the block and announces it as a block proposal to join the blockckain. This step completes Phase 1.
Phase 1 seems to be very fast, it involves only one user, but obviously does not provide an adequate level of decentralization and thus security.
Here comes Phase 2.
=== Phase 2 ===
that is, block verification and approval.
- Step 1: a committee of 1000 users is randomly selected from among the participants in the network (*) and announced (public keys) to the public.
- step 2: this committee verifies the phase 1 block and puts it to the vote if it is correct and authentic.
- step 3: if most of the committee members confirm that the block is correct, then the block is advertised on the network and attached to the blockchain. However, if there is any error in this proposed block, then Phase 1 and phase 2 are repeated.
(*) The question arises: who chooses the said committeeto preserve its decentralized character?
Now, the committee chooses itself. Users run a random function on their side, which is cryptographically secured (a kind of lottery) and if they win such a lottery, they show the winning lottery, while revealing their opinion on the block proposed in phase 1.
Security x Scalability x Decentralization
Is this solution Safe?
Well, we need the cryptographically secure random function mentioned here. This solution was designed by the best cryptographers from MIT, so we can rely on it to some extent.
We also need to trust that most of the network users are good actors, this is one of Algorand's main assumptions. Otherwise, a committee of 1000 representatives has the chance to be composed of users with evil intentions. Of course, I think this is a safe assumption - most people on earth are rather good, right?
Is this solution scalable?
Creating a block by 1 user is probably super fast. Verification of this block by a committee of 1000 users should also take place very quickly. Mainnet Algorandu is already running and it can be verified that transactions and blocks are actually produced quickly and efficiently, but whether we will reach 1000 transactions / second, while maintaining a block size of 5 seconds with the volume of actual business transactions? Here we need to wait for adoption - to see such transactions on the mainnet. Any stress test is usually too isolated to answer this question.
We need thousands of real business transactions to better verify scalability, but what can be said - the concept seems promising!
Is this solution decentralized?
There are several factors to consider:
- There is no minimum threshold to become part of the committee, you can participate in the lottery even with 1 Algo token, so anyone can join and help secure the network.
- There are currently no penalties for inappropriate behavior on the web. No penalties are both a plus and a minus. Plus because it could potentially discourage the average user from joining the consensus. Minus, because there is no factor that would deter a potential evil actor.
- Your chances of being elected to the committee are proportional to the amount of tokens you have, the greater your “stejk” (deposit), the greater your chances of being on the committee.
What can happen if there are bad actors with a lot of coins who want to attack the network?
To attack the network they would need a very large amount of ALGO tokens, probably well above 50% of all coins in circulation. In this case, the question is - will they still be willing to attack the network? With such a large share of the network, such a bad actor would be a de facto majority shareholder of this platform, so why would he want to attack his own business (and as a result make Algo tokens worth nothing?)
Here we go into game theory, I guess it makes no sense for network participants with lots of Algo tokens to attack their 'own' blockchain.
To maximize network security and bring Algorand to a truly public and fairly managed state, Algorand needs to ensure coins are widely and fairly distributed, involving thousands if not millions of users in the process >> here, the distribution of tokens and auctions enter the game.
Token Distribution and Auctions
Blockchain Algorand has its native token (ALGO). Algorand has introduced the concept of the auction as one of the ways to distribute the Algo token.
The total estimated amount of Algo tokens will be at the level of 10 billion tokens, which will be introduced for distribution in the next 5 years.
tokens Something will be distributed in 5 main areas:
- 2.5 billion Algo tokens are intended for sale to the community, both when it comes to private and public auctions (READ BELOW)
- 2.0 billion Algo Tokens Algorand intended for community members who choose to participate in the Consensus Protocol and help secure the network by breeding.
- 3.0 billion Algo tokens is dedicated to infrastructure, in particular for operators of Algorand network nodes.
- 2.0 billion Algo tokens are for Algorand Inc. that is, the organization that builds the protocol itself and the ecosystem of protocol-based projects.
- 0.5 billion Algo Tokens is intended for the Algorand Foundation, i.e. the organization managing all work on Algorand solutions, partnerships, the community, and Ambassadors.
All topics related to supply i distribution Algo tokens, I discussed very much in detail in the video below. There you will also find summarized information on how the team has distributed tokens from June 2019 to April 2020.
However, in the following part of this article we will delve further into the subject of the same Auction.
Auctions, how does this mechanism work?
The auctions take place periodically and do not have regular cycles. In each auction, a specific quantity of Algos is available for sale in a defined time window. During the auction, the token price decreases linearly, and the auction ends when:
- all Algo for auction will be sold,
- or the price reaches the minimum price defined for the given auction (suppose for example = 50 cents)
Suppose I am participating in an auction and my budget for that auction is $ 100. Auction starts at $ 1 for Algo, so with my budget of $ 100, I can have 100 tokens initially, as at the start of the auction. However, as the price for an Algo decreases during the auction, more users feel encouraged to participate and place buy orders, so the number of Algoes that can be sold during the auction also decreases. At some point, the auction closes because
- buyers' demand balances or exceeds supply,
- or the reserve price limit has been reached.
Let's assume that the level at which the price was when the auction closed was 0.5 USD. In this case, I bought 200 Algo tokens, at this price, spending the intended budget of 100 USD. At the same price (0.5USD), other auction participants also purchased tokens, regardless of when they joined them.
I think it's quite a fair approachbecause everyone is buying Algo for the same price.
It is worth mentioning that if for some reason we are dissatisfied with our purchase, then we have the option to return tokens within a year. We will receive up to 90% of the funds invested.
Is this approach conducive to decentralization and wide chip distribution?
Certainly 5 different ways for token distribution including auctions, rewards for node operators and developers, programs for building and supporting the ecosystem is a good idea.
Algorand has now launched many incentive programs for developers, ambassadors, creators and entrepreneurs - more details here - which is a good move if we want to attract a diverse community to the platform.
Challenges for Algorand 1.0
Platform development seems to be quite advanced compared to what can be achieved at that time. The large amount of SDKs that are already available certainly has a chance to attract a lot of programmers:
- Java SDK
- Go SDK
- Python SDK
- .NET (soon)
At the end of 2019, Algorand introduced new functionalities for the platform, which I will discuss in the next article (Smart Contracts on Layer-1, Algorand Standard Assets or Atomic Swaps), but the competition in this area is enormous. There are many good teams building platforms with similar characteristics, to mention even Ethereum 2.0, Aion, Cosmos or Cardano.
Building a solid solution is an important thing, but making it widely adopted is an equally big, if not tougher challenge that all these companies and protocols must face in the coming years.
In my next studies, I will introduce the topic of adoption for Algorand, as well as the development of the platform itself, the aforementioned Algorand 2.0 and new interoperability features. Also a lot on this topic I speak on my youtube channel Daily Dose of Discomfort.
Finally, referring to the statement at the beginning of this article: did Algorand address blockchain trilogy?
Certainly they have well thought out the architecture of this platform and have a working piece of good technology, but to fully defend the above claim, I think we need real applications, thousands of current business transactions per second, wider distribution of tokens and a network operating for several years in production mode, which proves that it is bulletproof, unbreakable and resistant to the collusion of its participants.
In conclusion, in my opinion, at this stage, the declaration on the solution of blockchain trill is still a bit prematurebut for sure Algorand is well on track.
I decided to help them develop the ecosystem as an 'ambassador', so stay with me if you are intrigued by this topic.
Contact : Andrzej_0xa0