存档节点是存储所有历史详细区块数据的节点,作为一个持久化的数据源,便于检索。这类节点的数据存储压力相对较大,但可以简单验证这些数据的有效性,去中心化的程度较低。 区块生产者需要在 Snarketplace 中购买同等数量的 SNARK 交易证明来完成交易打包从而获得区块奖励,即对网络中的 SNARK 证明产生需求,和 SNARK 生产节点存在供需关系。 共识机制Mina 使用的是 Ouroboros Samasika 权益证明(PoS)共识算法,基于 PoS 共识的改进,网络共识实现仍然是通过股权证明 PoS 来完成,允许任何人按协议中所占的比例参加。由可验证的随机函数(VRF)来选择每一轮的区块生产者。每个区块生产者独立地为每一个时隙运行 VRF,如果他们得到的输出值大于与其质押大小成正比的阈值,则有机会在指定的时隙内生产区块。 区块生产者可以通过将代币委托给另一个帐户的区块生产者来增加被选择来产生块的概率。当被委托者账户质押时,组合的资金用于评估 VRF 阈值,从而增加了被选择来为槽产生块的可能性。委托的资金是不可使用的,但可随时通过将股权重新委托回原始账户来取消委托。 Ouroboros Samasika 的特点在于共识验证者的数量是没有上限的。一般的 PoS 算法,多数是基于委员会选举,只能容纳大概数百名的验证者,因为网络通信的复杂度随着验证者数量的上升会急剧上升,节点没有办法承受通信开销。而 Ouroboros Samasika 基于传统 PoS 进行改良,在节点上,具备可扩展性。 其次,节点可以动态进出。大部分 PoS 共识协议对节点的在线时间都有要求,并对掉线者进行惩罚,这大大提升了运行节点的门槛,反倒让网络面临被攻击的风险。而 Ouroboros Samasika 则允许节点随意进出。 同时,Mina 的节点只需要依赖简单的规则就可以判定「哪条链」是合法的,而不需要依赖外界信息的指引。大多数 PoS 算法存在长程攻击和 Nothing at a stake 的问题,需要引入「弱主观性」来对链的合法性进行判定。而 Ouroboros Samasika 主要使用「最长链规则」来应对短的分叉。针对历史的攻击,当节点面临长的分叉时,可以采用特殊规则,即简洁状态摘要,由于攻击者很难在短时间内计算足够的零知识证明,这保证了区块链很难被分叉。 SnappsSnapps 是 Mina 上由零知识证明驱动的应用。具有几个特点:
|