Algorand是图灵奖得主Micali教授提出的一种新的共识算法,论文地址:
https://people.csail.mit.edu/nickolai/papers/gilad-algorand.pdf
和目前流行的DPOS+BFT共识相比,最主要的创新是将proposer和validator的选举随机化:
- proposer:根据随机数选出26个左右的proposer,从中挑选数值最小的节点出块
- validator:按照持有token的比例,通过抽签决定
因此,algorand的核心其实是抽签算法,本文主要就是分析该算法。
目标
在保证公平性的情况下保持结果的随机性
- 公平性:长期来看,节点被选中的概率应和它所持有的token比例保持一致
- 随机性:单次选举结果随机且无法预测
换句话说,就是让小节点和散户也有机会参与到共识过程中。
在DPOS中,如果超级节点列表相对稳定,排在后面的小节点就永远没有机会入选(也就没有钱赚),久而久之就会失去竞选的动力,从而加剧系统的中心化风险。而Algorand则通过引入随机性,在保证公平的前提下,实现“人人都有钱赚”的理想。
原理
Alogrand通过VRF引入随机性,利用二项分布的线性叠加特性来保证公平性。