权益证明租赁(LPOS)共识算法和Waves-NG协议
作者: Guy Brandon,Waves投稿。
Waves网络采用权益证明租赁(LPOS)共识算法,该算法与Waves-NG协议相结合,可实现网络的高度可扩展性和事务吞吐量。
介绍
Waves网络于2016年推出,当时通过ICO募集了30,000比特币,价值约1600万美元。该项目旨在开发可用于业务交易流程的综合区块链生态系统,其中包含涵盖各类功能需求的工具包,包括轻松创建自定义数字货币令牌、直接编写智能合约、实现点对点交易的内置去中心化交易所(DEX)、与dApps实现安全便捷的交互方式以及Waves Keeper浏览器插件所提供的Web服务。
可扩展性
从一开始,Waves就认识到可扩展性是大多数区块链项目推广使用的需求,并意识到要开发相关的技术,来解决现有区块链的局限性。例如,比特币具有很高的安全性但交易速度相对较慢,并且每秒只能支持大约7笔交易(TPS)。因此,比特币的效率不足以使其成为全球性货币。基于第二层的解决方案,如比特币的闪电网络就是为了实现该目标而实施的。而Waves在该层上采用了不同的方法,在考虑第二层应用之前,Waves首先关注链上的可扩展性。
租赁平衡
Waves的原创共识算法是基于简单的权益证明协议实现的。总量为1亿枚的WAVES代币都在ICO之后完成了分发,并且供应量也是固定的:因为WAVE是“PoW”属性的代币,所以不存在通货膨胀。因此,Waves区块验证者(锻造者,他们通常被称为是Waves生态系统中的'矿工')从他们处理的区块中获得交易费,但没有额外的区块奖励。
租赁的权益证明(LPoS)系统于2017年5月全面启动,该协议可以让使用Waves lite客户端的用户(没有运行完整节点的用户)将他们的WAVES令牌租赁给挖矿节点。租用的WAVES被锁定在用户的帐户中,无法进行转移或交易。此外,代币仍然完全由账户持有人控制,租约到期后可以随时取消。考虑到挖矿节点运行需要相关的技术开销以及7乘24小时在线,因此只有相对较少的Waves社区运行挖矿节点(区块生成器列表可以在https://dev.pywaves.org/generators/查看)。
租赁给挖矿节点的WAVES代币可用于增加矿工的权重,反之,也增加了矿工发现下一个区块的机会。租赁的权益证明系统至少以两种方式提高了网络的安全性。首先,用于保护网络的WAVES代币是越多越好的,因为这样会使攻击者更难以累积到执行51%攻击所需的代币数量。其次,WAVES代币从用户的冷钱包中租给挖矿节点,但节点本身(保持在线的节点)可能只有很小的余额。由于租赁的资金不会转移给矿工,这可以大大降低在线存储的WAVES代币被攻击的风险。
一种新的共识方法:Waves-NG
2017年12月WAVES进一步升级了网络,推出了Waves-NG共识协议。这是一个基于比特币NG方案的新协议,由Cornell IT教授EminGünSirer发明。
初始的比特币协议选择的矿工是可追溯的。区块链中增加了一个区块之后,矿工们会相互竞争,根据区块链的当前状态查找下一个区块的有效哈希值。同时,新生成的交易被放入内存池(mempool),在那里它们将保持待定状态,直到有矿工来收集并验证这些交易。
虽然比特币和比特币NG协议都被认为是拜占庭容错(BFT)系统,后者作为不同工作机制的可扩展替代方案,于2015年被提出。在Bitcoin-NG系统中,会预先选择下一个矿工,该矿工会创建一个空的“密钥区块” - 这个区块最终会被添加到区块链中。小型区块被称为‘微区块’(由几个交易组成),他们近乎实时地被添加到该密钥区块中。用日常生活作为类比,这就像在购物车(密钥区块)上添加几个购物袋(微区块)后,再将完整的小车推到收银台(添加到区块链网络上)。这意味着可以在几秒钟内将交易添加到区块链中,唯一可能发生的延迟就是网络上的延迟。Waves将权益证明机制进行了升级,从而创建了Waves-NG协议,也是首次将比特币NG协议配置到开放公共的区块链当中。
对生态系统的进一步完善是通过“MassTransfers”实现的。它可以让最多100笔转账在单笔交易中执行,并降低了手续费用。一方面,MassTransfer为了平衡容量扩张和便利性,限制了每个MassTransfers中只能有100 txs,另一方面也限制了同时发送大量低成本交易的能力。如果需要进行更大量的转账交易,则可以按照顺序提交多个MassTransfers转账交易。
换句话说,用户可以简单地选择MassTransfer作为另一种“发送交易”的方式,该方式可以让他们在单个交易中最多添加100个收款人。此外,收款人的地址可以通过JSON提供或使用CSV文件上传,从而可以直接高效地进行大型空投或每周付款给将WAVES代币租给挖矿节点的用户。结合Waves-NG,MassTransfer功能可在网络上实现极高的吞吐率。
为了评估新协议的潜在吞吐量,许多压力测试都在Waves网络上实行。2018年10月,在MainNet上进行了一次大容量的压力测试。该测试表明公开的区块链协议(不仅仅是有限和受控的TestNet)可以在24小时内支持超过610万笔交易,平均每分钟4,200 txs或每秒71 txs,峰值吞吐量可达到每秒数百个交易。
总结
权益证明租赁(LPOS)可使无技术专业背景的普通用户帮助保护Waves网络,在控制WAVES代币的前提下,将WAVES租用到完整节点。同时,Waves-NG实现了高达100 TPS的吞吐量,这比许多区块链高出了一个数量级。由于不需要向矿工支付资金奖励,后者也不需要承担高电费和昂贵的硬件,所以交易的手续费用很低。
对于Waves来说,链上可扩展性一直是优先考虑的因素,但由于所需要的存储空间和带宽,任何区块链都可以通过这种方式进行扩展。Waves的开发人员认为,在进一步实现可扩展的解决方案前,可优化当前方案,并可实现支持高达1,000 TPS的交易能力。Waves目前正在探索涉及侧链的第二层扩展解决方案,该方案可支持在并行链上处理大量交易,并最终在Waves主网上实现保护。