Difinity共识概览
Difinity 共识是一个四层的共识模型,如下图所示:
自底向上分别为Identify层,Random Beacon 层,BlockChain 层和Notary 层:
- Identify 层:最底层是一个可以提供注册和女巫攻击的客户端注册中心,所有的节点都需要注册加进网络,并且有永久的唯一的匿名的;
- Random Beacon 层: 是一个去中心化的随机数灯塔层,可验证的随机数函数(VRF: verified random function);
- BlockChain 层:该层基于随机数灯塔的驱动,通过概率函数的排名进行有效区块的生产。这一层通过概率时隙协议(PSP:probabilistic slot protocol ),这个协议每一个高度都会为客户端排序,并根据排名为每个区块生产着分配一个weight,生产着会将该weight打入区块,Difinity 采用最重链原则,当节点收到其他节点的senblock请求后会将自己打的块放在一起比较,然后选择最重的链为主链,其他的链都丢弃;
- Notary 层:该层是一个去中心化的公正组,提供时间戳和发布担保,并且加快交易的速度。Difinity使用该层进行区块的最终确认,只有经过确认的块才能最终上链。公正层之所以能够提高确认速度是因为Difinity不是一个完全共识,是一个乐观共识,因为他认为在通常只会有一个块同时被公正。公正层在Difinity中并不仅仅起到公正的作用,还会提供时间戳和发布担保(proof of publication)。公正产生的公正块,这样其他节点无法发起自私挖矿和无利害关系问题