Hi,
I read that in algorand everyone can be a node/validator and there are no staking pools. According to the official metric there are 2251 nodes and 370 unique accounts participating in the consensus protocol.
What is the maximum number of nodes?
Is 370 the actual number of nodes validating the network?
The beauty of the Algorand protocol is that the complexity of the protocol is almost completely independent of the number of nodes, because a random constant-size committee is used for each step of the protocol/
The size of the committee is independent of the number of nodes.
Even if you have millions of nodes, the committee will just be a couple thousands nodes.
This is the number of accounts that voted over the last week, so I would say it is a good proxy right now for the number of nodes validating the network.
Hello,
I’m continuing up here as my question fits into the discussion.
I’m pondering on algorand’s pure PoS consensus algorithm which requires 2/3 of the validator nodes in the network to be honest in order to validate transactions. Also, the consensus algorithm does not require minimum amounts of stakes to participate in the process: however those with higher amounts of algo have a higher probability of being selected.
According to the dashboard, about 400 validators participated in the last week, so about 134 dishonest validators (33%) would be enough to attack/block the network (assuming the same probability of selection, i.e. the same stake).
Is there any data with the distribution of tokens among validators/accounts?
In addition, there are about 120 relay nodes which, while not participating in the consensus, allow the network to function. What is the minimum number of relays for the network to still function?
These values are very important as they represent the Nakamoto coefficient.
Thank you
that’s assuming these dishonest validators know each other and are in each step of the protocol which is highly unlikely. 2/3 isn’t set in stone either. They might if stars align cause an empty block
Hi,
according to the official FAQ and according to this comprehensive analysis A Survey of Distributed Consensus Protocols for Blockchain Networks the consensus algorithm of algorand tolerate up to 1/3 of malicious validators. If the number increases, the network’s consensus is blocked.
Moreover, to estimate Nakomato’s coefficient, the previous questions must be answered.
you can go to an explorer and you analysis, I have seen any where where they say the number of nodes matter. algorand scales to bbillions of nodes because only a handful are randomly independently and privately and verifiably self selected
Thank you for your reply. I also think algorand is a very good blockchain, but I am asking a specific question and need to know the numbers if they are available.
According to the dashboard there are now 1423 (non-relay) nodes or participating in the consensus and in the last week 407 participated in the vote.
The number of relay nodes, which should not participate in the consensus, is 120 and are supported by the algorand foundation.
Practically all blockchains of a certain level, like algorand, have a section of their statistics where the distribution of the stake among validators is shown. Through it, the Nakamoto coefficient can be estimated.
it would difficult to estimate a nakamoto coefficient for algorand because those 407 arent set in stone neither does it mean these unique addresses belong to 407 unique individuals. you could see 407 today tomorrow or next week but the unique addresses are different. Large stake might give you better chances of selection most of the time but not bounded large votes all of the time compared to others with minimal stake in the committee. app.metrika might help you but it’s not complete. your best is sorting all accounts and do your analysis from say algo explorer as all accounts are equally likely selected
I found this unofficial explorer where you can see the top accounts and select which of them participate in the consensus.
Taking the top 1000: if we consider both online and offline we have a total stake of about 6.614 G algo and 33% of the stake is owned by the top 26 top accounts. If we consider only offline ones we have a stake of about 1.981 G algo and 33% of the stake is owned by the top 15 top accounts.
From Algorand documentation: If a super majority of the votes are from honest participants, the block can be certified. What makes this algorithm a Pure Proof of Stake is that users are chosen for committees based on the number of algos in their accounts. Committees are made up of pseudorandomly selected accounts with voting power dependent on their online stake. It is as if every token gets an execution of the VRF. Users with more tokens are likely to be selected more. For a committee membership this means higher stake accounts will most likely have more votes than a selected account with less tokens.
Since the algorand dashboard shows 407 validator nodes in the last week, and since according to the other explorer the super minority is 26 (15), what is the pseudo-random selection criterion?
If my calculations are correct, the possessed stake has a very low weight.
Furthermore, assuming that at least of 2/3 of the validator nodes are honest, but the relay nodes are not, what is the minimum value that can still make the network function?
I think it is of paramount importance, both for decentralisation and transparency, that algorand adds such metrics in its dashboard,
algorand doesn’t rely on relays to be honest. go watch the YouTube on algorand is 5 mins I think if you’re still interested go read the whitepaper for how cryptographic sortition works, you can also you know Google or youtube how it works. at least one relay should be up
i don’t think anyone is going to explain how sortition works and its intricacies in a thread. your post was already muted or flagged. i’m doing you a favor lol. I could tell you that it uses a binomial distribution of the tokens is used to randomly select based on a hash but then you’re going to have more questions when it’s best to just go look at some resources that do a better job than can be done in a thread. Maybe someone else can pick up from here and go into detail with you but atm i’m not ready. good luck
Thank you for the links. However, the second one is broken.
The first video describes how the algorithm works and it is a good explanation, but it leaves two open questions: how X is calculated for the inequality vrf_output<X? And how is p selected in the Bernoulli distribution?
I read this post in the algorand blog, Algorand Releases First Open-Source Code of Verifiable Random Function:
Verify that Y falls within a certain range [0, P] which depends on the share the user holds in the system.
Here Y is the same as X. How is it chosen?
P.S. the post was reported because of external links, no problem.
Thanks for the link, I have now resolved some doubts. According to the paper linked by sortition algorithm page, the committee size is between 2000 and 10000 (final). This number should be the one shown in the dashboard, about 1400 participation nodes of which about 400 actually voted in the last week.
However, I have not yet found an answer on the number of relay nodes. According to the paper: Algorand achieves safety with a “weak synchrony” assumption and liveness with “strong synchrony” assumption. To achieve liveness, Algorand makes a “strong synchrony” assumption that most honest users (e.g., 95%) can send messages that will be received by most other honest users (e.g., 95%) within a known time bound. This assumption allows the adversary to control the network of a few honest users, but does not allow the adversary to manipulate the network at a large scale, and does not allow network partitions.
What is the number of relay nodes that allows this assumption to be met?
Liveness goal. In addition to safety, Algorand also makes progress (i.e., allows new transactions to be added to the log) under additional assumptions about network reachability that we describe below. Algorand aims to reach consensus on a new set of transactions within roughly one minute.
On algorand all transactions are immediately final and there are no forks, assuming at least 2/3 of the participants are honest. Furthermore, the time needed for the committee to decide should be 5 seconds.
What does it mean that the time needed to reach consensus is about 60 seconds? Doesn’t that conflict with the 5-second finality of a block?
This is a random selection.
This is the beauty of the sortition algorithm.
The algorithm is equivalent to say that each online Algo in the system is chosen with some probability.
So if you have 100x times higher balance than another person, on average, you will have 100x more seats.
you can graph some numbers on the distribution formula and you can see how much a stake gets on average. wolfram alpha might be you be helpful for large numbers