公链之争的焦点,很大程度上集中于共识机制。比特币的工作量证明机制,实现了完全的公平,但极大的牺牲了效率。后来其他的共识机制显著提升了效率的同时,也不同程度上牺牲了公平性。
无论我们单独拿出任何一种共识机制,都有理由被挑战和质疑。现在每个公链所做的选择,都是为了达到自己认为的理想平衡点。谁能顺应发展的进程,更接近这个平衡点,在这场公链之争中,谁就会更有胜出的可能。
在区块链从POW机制向POS机制进化之路上,不可避免地会碰到一个核心问题:舍弃POW这种强算力型的随机算法后,POS应该采用何种低功耗随机算法可以保证矿工记账权益的公正公平性的同时,还能保障系统鲁棒性。从以太坊迟迟未能升级Casper看出,真随机数问题一直以来是POS的核心问题。在此情况下,VRF算法近年来得到越来越多人关注,它是一种低能耗,高效率的随机数算法,并提供了非对称密钥可验证机制。或许基于VRF的共识机制,才是“不可能三角”的正解。
什么是VRF?
VRF算法通过加密抽签算法选举节点子集运行BA* 算法(Micali教授开发的一种拜占庭协议)决定哪些待确认交易组成新的区块添加到现有的区块链账本上。BA*算法需要循环对提议进行决策,每一次循环都需要先进行抽签产生共识部集成员,然后向网络中广播符合共识成员条件的证明以及对本轮提案的决议信息;每次循环后均有1/3以上的概率能达成共识;最后超过超级部集一半共识部集成员通过的决议以Gossip的方式广播出去。
VRF的核心算法包括两个:
1.密码学抽签算法,该算法用于保障每次参与共识的共识委员会成员接近完全随机;
2. BA* 算法,该算法由共识委员会成员运行用于产出本次应该打包的区块。
【密码学抽签算法】
密码学抽签算法主要包括三个步骤:伪随机种子选取、抽签、排序与更新种子。
抽签:首先,针对r轮第s步,用户i使用VRFs函数进行计算
称所有满足此条件的用户为该轮的共识参与者。P的定义相当于假设在所有共识参与者当中,至少有一个是诚实的。
排序与种子更新:排序是为了从共识参与者中挑选出领导者,进行区块提议。共识领导者的定义为存在一个用户,其凭证按字典排序最小。
将会被用于r+1轮共识当中。
随机性分析:
我们知道一个离散随机变量X的熵(entropy)定义为H(x)
对于参与共识的节点来说,每个节点都应该拥有自己的权益才能进行记账,出块的概率也是根据权益来区分,根据式(4),得出块概率的熵为
权益出块概率和最大连续出块,可以保证主链在权益绝对分布的情况下,依然保持较好的公平性。
【BA*算法】
BA*算法是一个二阶投票机制:
第一阶段,通过密码抽签算法选出的共识参与者对其收到的候选区块(为控制通讯成本,实际上用的是候选区块的哈希摘要)运行分级共识协议(Graded Consensus), 选出“验证者”共识最多的候选区块。
第二阶段,共识验证者对第一阶段选出的候选区块,运行二元拜占庭协议(Binary Byzantine Agreement),即要么接受它,要么接受空区块。全网 2/3 的节点公证签名,区块即完成最终性。
BA的一个重要特征是:在点对点网络通讯下,BA的参与者可更换。也就是,BA每次循环的每一个子步骤均可由全新的、独立随机选择的参与者来执行。真实的网络环境中,无法保证每个节点随时都在线。在这种情况下,BA仍能正确、有效地达成共识,因为每一轮每一步骤的节点在BA算法下都是可代替的。假设有上百万的用户,BA每次循环的每一个子步骤的参与者可以完全不一样,而且每一批参与者都无法确定下一批参与者是谁,从而无法串谋。
【验证组规模缩小】
要讨论共识机制的去中心化,不能仅仅看参与铸块的必要条件,而是要深度分析系统对节点算力、带宽、存储等综合要求。这些要求越低,普罗大众越能真正参与到系统的共建中。从这个角度来看,目前主流的VRF项目也都存在较大的问题。它们更多从学术角度思考,为了解决安全性问题把共识阶段的验证组规模设计得较大。但一到实际工程实现,就会发现验证组内的通讯量巨大,导致参与节点的网络带宽门槛变得很高,实际阻碍了普通用户参与到系统中。因此,现有VRF机制在去中心化要面对的问题,其实也跟比特币一样,尽管准入机制均为高度去中心化,但算力成为门槛后,普通用户无法参与比特币。但如果可以设计良好的奖惩机制,能对明确作恶行为进行识别和惩罚,则就可以用结合技术的通证经济设计来保障系统安全,那么验证组规模就无需太大,假设100人/组就可以完成。不但提高了去中心化程度,也提高了性能。达到了去中心化与高性能的平衡。
在此情况下,VRF算法近年来得到越来越多人关注,它是一种低能耗,高效率的随机数算法,并提供了非对称密钥可验证机制。或许基于VRF的共识机制,才是“不可能三角”的正解。
在此情况下,CWV2.0提出了VRF先驱Algorand、DFINITY存在的问题:1、Algorand难以达到宣称的高性能,去中心化也存在问题;2、DFINITY在安全性和性能上都存在较多疑点;3、两者在真正Dapp落地方面都存在问题。
CWV2.0 VRF共识主链真正创新的突破在于结合VRF(可验证随机函数/随机验证方法)的Leader(下一个区块产生者)以及Committee(委员会)进行cryptographic sortition(抽签),并提高了项目的去中心化程度,使得普罗大众越能真正参与到系统的共建中。在运行过程中实现通过随机函数确保出块节点的公平性和去中心化控制来完成权益的共识。同时通过PBFT实现的容错能力实现在账本层面的快速记账出块,使得CWV2.0主链更加的高效稳定和可靠。
我们都知道区块中心化的存储是区块链的底层设计,IPFS、FileCoin采用了PoST存储容量共识算法,实现了存储主链。但是对于节点来说,基于零知识证明的 POC容量证明算法,导致过度依赖于节点的服务器CPU、甚至GPU的计算性能,从而导致出块效率极低,计算资料浪费的局面。其次,在智能合约、虚拟机方面,几乎不太可能实现很好的整合。
对于这些问题,CWV对于合约引擎进行优化,支持新版本的Solidity合约、内部crc20和crc721的转账,支持require等新的版本及CRC721结构优化,实现亿级的大规模应用。
CWV2.0目前区块高度近5000万块,TPS/CTPS在5万以上,支持超级节点数100个;
数据层优化,更换为LevelDB更稳定,启动数据压缩减少节点空间,自动快照功能减少内存使用;
StateTrie树升级为64叉树,提供更快的并行交易,优化数值存储和查询复杂度,提高了交易执行性能;
新增分片指令,主链提供分片的内部交易执行,提高单片执行和跨片执行效率。
CWV 2.0主链采用快慢双链并行的工作机制,根据生成数据块内容及优先级的不同,选择矿工工作模式。
事实上,这就是一种缩小验证组的有效机制。
快速链确保交易效率,慢速链提供安全保障,这样的双链模式在保证主链交易效率的同时,能够兼容传统的共识算法,保证主链数据与交易的安全性与去中心化。
通过双链结构及两大底层技术,CWV 2.0主链GPS达到每秒3万、理论峰值10万的超高效能,不仅拥有充足的存储能力,能够实现私有化数据存储,更能够大大提升个人数据上链保存的空间、读取效率以及安全性,为CWV 2.0以存储挖矿为基础的去中心化生态提供技术前提。根据CWV2.0实验数据测算,其实普通家庭宽带就可以满足CWV2.0的节点带宽要求,从而很好解决了VRF系统去中心化程度不高的问题。
CWV2.0的哲学是在继承现有成熟方案的基础上,进行共识和技术的升级,希望能最终解决上述四方面问题,成为更便捷、更高速、更智能的新一代公链基础设施、通用级分布式数据库(存储)云和区块链操作系统,做到账本层面、智能合约层面、非结构化数据存储层面、用户界面的有机结合,也就是真正意义上的区块链3.0。
作为区块链3.0世界的底层设施,基于VRF共识主链+ PoSt时空证明 + 双链结构,使得这个世界的生态足够安全和稳定,让每个节点/用户能平等地享受到价值的馈赠,其卓越的高速路网,也能顺畅地承载起各种量级应用的奔跑,规模化落地商用级Dapps。
未来已来,每个人都站在了新世界的十字路口,有的人对接下来的风云变幻还不够敏感,有的人则自顾自地忙于拾人牙慧,有的人空喊着口号却裹足不前,而唯有看到时代痛点并发力关键技术的人,方能屹立潮头。
今年是CWV项目启动以来的第三个年头,全新升级的CWV2.0主网目前已经上线映射中。
这三年以来项目团队的诚意、决心和意志。届时,CWV2.0将可同时支持数万个商业级的分布式应用程序(DAPP)在其平台上运行,而VRF共识叠加PoST共识机制能带来多大的优越性,快慢双链结构下的存储挖矿红利又会有多大,这些都将得到验证,我们拭目以待。