概况

区块链是一个分布式的记账系统,在一个区块链系统中可以有成千上万的节点,他们各自独立保存一份相同的账本,而新的交易数据想要被写入帐本,需要获得这些节点的认可。在不可信的分布式环境中实现这一目标是一个很复杂的系统工程。区块链系统正常运行,即区块链中各节点总能保存同一份账本,前提是系统中绝大部分的节点是诚实可靠的。为了保证诚实可靠的节点能够共同监督交易数据写入账本,每个区块链系统都需要构建自己的共识,共识就相当于区块链的宪法。共识保证了即便是在不可信的分布式环境下,只要绝大多数节点遵守共识的规定,就一定能获得确定可信结果。因此共识的意义在于,区块链中的诚信节点可以最终达成账本的一致只要他们严格遵守这份共识。

共识有多种类型,目前使用最多的是POW、POS、DPOS,当然不同的区块链系统中都会有一些特有的具体实现上的不同。本文主要介绍VISION的共识就是基于VPOS的,VPOS是DPOS的升级改进版本。向大家说明一下VPOS中的基本组件和机制。

记账流程

区块链系统的记账人,他们收集区块链网络中新产生的交易,并对这些交易的合法性进行验证,然后把这些交易打包在一个区块中,作为新的一页账记录在账本上,然后将账页在整个区块链网络中进行广播,其他的节点收到新的账页,也会验证账页中交易数据的合法性,并添加到自己的账本中。记账人一直重复这个过程,这样只要区块链系统中新的交易数据都会记录在账本里面。

VPOS概述

共识的作用是在区块链系统中选出记账人,记账人验证交易数据并进行记账,进而向区块链网络中的其他节点广播新的账目,并获得其他节点对于新账目的认可。VPOS作为共识的一类特定实现是这样的:

VPOS共识在区块链系统中根据节点获取选票的多少确定出部分节点作为记账。首先区块链系统开始启动运行的时候,会发行一定数量的通证,然后将通证分给区块链系统中的节点,节点可以凭借一部分通证申请成为这个区块链系统记账人的候选人,区块链系统中任何持有通证的节点都可以为这些候选人进行投票,每经过一段时间t会统计所有候选人获得的选票数量,选票数量排在前面的N个节点会成为下一段时间t内的记账人,再经过t的时间,又会重新统计一遍新的记账人,以此类推循环往复。