Bitcoin-NG:可扩展区块链协议与现实的碰撞 | 技术帖

本文将介绍旨在扩展的新型区块链协议Bitcoin-NG,它大大缩短了交易确认延迟。

Bitcoin-NG协议是康纳尔大学研发的、具有极强耐性、与比特币具有相同的信任模型,旨在提升区块链网络吞吐量的拜占庭式容错区块链协议。

基于比特币并由其领导的加密货币已显示出有望成为匿名在线支付、廉价汇款、去信任化数字资产交换和智能合约的基础设施。但是,由于衍生自比特币的区块链协议固有的可扩展性,因此无法在吞吐量和延迟之间进行权衡,从而无法发挥这种潜力。

本文将介绍旨在扩展的新型区块链协议Bitcoin-NG,它大大缩短了交易确认延迟。

Bitcoin-NG:可扩展区块链协议与现实的碰撞 | 技术帖

背景知识

l 首先,大部分区块链项目都是在原来区块链的基础上,植入第二层解决方案,为用户和开发人员带来流畅的体验。早期全节点是由比特币协议实现的。并且由Erlang语言编写,Erlang是一种以组件导向的技术,可以逐个优化子系统。点对点网络和节点不断演变后,提高和改变性能就更加重要。最后,团队开发了受协议保护的完整功能集。当前所有新功能都在接受50个节点的公测。在已发布的版本中,这些新功能还被部署到拥有1.6万个平级节点的主网络。每个版本都会经过多层测试:单元测试、集成测试、系统测试(使用docker容器模拟网络),强大的快速测试框架(为组件API生成随机提要)。

l 工作量证明是一种最适合保护开放、公开、无需许可的区块链共识的方法。而团队采用了布谷鸟(Cuckoo Cycle)算法来实现工作量证明。布谷鸟算法是一种新型的内存密集型PoW算法,它的工作证明成本低,证明只有42个整数。过去两年,布谷鸟循环在PoW场景应用非常活跃。ASIC实现了超出预期的灵活性和生命周期,GPU匹配了更复杂的运算,同时提高了并行度。 

共识:Bitcoin-NG

区块链社区经常会把共识算法搞混。共识以及保护共识的方法不仅在技术上面临挑战,同时也是供应给终端用户的产品的核心。共识能确定交易是否可信,能确定协议更改是否由部分群体控制。在区块链中,所有的需求变化都围绕用户的独立性、去中心化和自由交易而生。

过去几年,在中本聪系列共识设计和拜占庭算法适应性不断突破。从单一区块链,到DAG、网格、信任分层架构以及实用拜占庭容错,提供了多种解决方案。当增加PoW、PoS、时空、时间证明等,解决方案更多了。但是,采用PoW来验证一个不可信环境是最佳的解决方案。

如何在一个移动、中心化、实时的世界,解决延迟10分钟确认的困局?

Bitcoin-NG是一种新型的支持中本聪共识的方式,基于PoW筛选临时领导人,然后由这位领导人打包区块。在一个区块的时间里确认这些交易,只需几秒即可!

PoW的区块链结构有两个运算阶段。一是用关键区块来选举领导人,二是用微块保存交易。

Bitcoin-NG论文中描述了新链结构和加密经济激励策略,涵盖审查、矿权和公平等问题——所有这些都是区块链平台所必需具备的要素。最具挑战性的是,分叉和微分叉的推理和执行。需要好几个低级区块实现迭代,以及与mempool或区块候选生成器之类的交易处理组件通信方可实现。在此之上,团队还调整了欺诈证明机制(Proof-of-Fraud)。

学术碰撞现实

2018年, Bitcoin-NG被Aeternity(AE)等项目集成。调整了工作量证明,每3分钟挖出关键区块,领导人发行微区块的速度低于3秒。每个微区块可以容纳600万燃料(由于虚拟机的初始实现是基于改进版的EVM(以太坊虚拟机),每15秒确认以太坊区块中的800万燃料,相比之下,FATE虚拟机具有更大的优势,它能处理更多的燃料)。

也就是说,在5-10秒的网络直径中,每个关键区块会产生一个微块分叉(分为3个微块)。这属于一种预期的、健康的行为。

同步和gossip协议有两种模式:正常模式和轻模式。轻模式下,gossip协议只传播交易哈希,让微块更轻更快。一个未经确认的交易被平级节点看到的可能性很高,验证的失败率非常低。

论文中预计的网络吞吐量理论极限是100tx/s(根据微块大小和容量计算而来),实际上的吞吐量极限在理论上会稍微高于100xt/s,毕竟每3秒释放一个微块,每个微块能容纳300-400笔交易。同时,准许用户独立交易和合约调用,两者共用一个燃料。最初的实现吞吐量低于50 tx/s,而且没有任何备份。现在通过优化mempool或gossip等组件,进一步提高了速度。

然而,现实与论文存在出入,最初假设的是网络和算力稳步增长,结果出乎意料,算力在短短几天内大幅上升,导致个人电脑和小型挖矿设备淘汰出局(最优卡是1080Ti和2080Ti)。用户对于没有机会参与挖矿感到失望,同时接收到了关于未确认交易和分叉的报告。

问题1

出现过多的分叉,经过检查,发现网络成员较多,但连接数异常稀少。阻碍了关键区块的广播。因此团队不得不改善(简化)文档,并鼓励用户使用公共IP。

问题2

分叉较少,但微分叉时间变长。微分叉是链的一种特殊状态,是由于关键区块的矿工追随了由当前领导人释放的旧微块,如果间隔很短,没什么大碍,但微块中包含10个区块。为了解决这个问题,团队投资了即插即用技术,改善网络。主网发布后不久,社区和核心团队实现了对多种GPU矿机的支持。难度进一步提升,用户可以重新控制大量算力来挖矿,目标调整也会导致矿池的诞生。

问题3

矿池带来了全新的活力,它们基于自定义的层协议和闭源挖矿客户端。但是再次出现了微分叉时间变长的情况。但不影响确认时间,因为即使交易被隔离在一个分叉中,也会被新领导人快速重新确认。但在一定条件下会危及节点的稳定性,这无疑是一种不健康的行为。

问题4
矿池几乎每1分钟刷新一次关键候选区块,也就是说会造成20个区块的微分叉间隔。1分钟占比3分钟关键区块生成时间较大比例,关键区块生成时间差异很大,说明矿池会将交易踢给下一个区块验证。

解决方案

该项目解决方案是培养两个矿池,使矿池形态多样化。这个工作正在部署当中,目前主要是三大矿池挖矿,其中两个占用95%的算力。

另一个方案是层服务器参考实现,以一个Bitcoin-NG友好的方式更新。代码比语言更简洁,不仅可以编程,还可以激励矿池调整配置。同时,还可能是去中心化框架的地基,由全节点组成矿池,取代现在的挖矿数据库。Bitcoin-ng将为普通用户提供生成微块的能力,而矿池将提供流动性。

为了更简洁,用数据来表示

链上数据分析

截至2019年4月1日,项目挖出了约6万个关键区块,下面是对大约10万笔交易的分析。

确认交易需要多少区块?如果这个数字大于0,意味着在大多数情况下,交易最终在一个微分叉中结束,并由下一代重写这笔交易。如果数字大于1,则表明有额外的延迟。

问题是,第1代延迟与矿池行为有何相关性。1分钟的刷新时间是一个后代长度的33%(后代长度设定为3分钟)。一半以上的交易立即得到了确认。最高的确认延迟发生在网络不稳定影响了领导人交付交易的情况下,有些交易可能会等待错过的前领导人。

相当于百分比:

另一个实验是分析微分叉的平均长度。这个很难计算,需要用一个“探针”监测选定的微分叉。这就是后代数量可能不同的原因。

以上信息与以前的测量结果一致。大约33%的交易被重写到下一代(延迟时长为1)。现在,是29%的微块被重写到下一代。考虑到p2p网络的性质和监控方法的误差,33%和29%比较接近,足以证实观察结果。

下图是一个微分叉长度分类(现在几乎是7个微块一代)。

由于没有规定广播区块的最小数,导致很大一部分微块长度低于每代长度。在系统当中,沉默的领导人等同于比特币或以太坊中挖空块的矿工。

第二是因为币基奖励与交易费之间的巨大不平衡。比较年轻的区块链由于没有市场驱动,交易费过低。在最初的3个月里,最低交易费几乎为0。

综上,费用配置不均衡导致微块的链奖励极低,进而打击了最新微块的积极性。随着时间推移,微块的链会自我完善。

其他数据

· 最大难度接近500万(备注:Nvidia 1080Ti卡上的布谷鸟循环需要0.3秒)。

· 迄今已确认的交易为470万笔。

· 最高交易率记录115tx/秒。

· 测试域名中的域名注册量达到50万笔。Lima硬分叉后的第一个域名和最后一个域名参与拍卖!

· mempool中交易的平均队列(等待确认数或垃圾收集数)2-3 笔。

总体而言,采用Bitcoin-NG后的区块链网络的稳定性较好,微分叉问题也将得到大力改进。由于Bitcoin-NG协议既简单又强大的设计,在实现解决方案时显著降低了技术风险。

在解决减少链上交易摩擦的同时,这些问题尚未影响用户的体验。领导人选举和领导人重新签署的复杂性完全隐藏在终端用户面前,完全不影响实时体验。

原文链接来自:https://medium.com/aeternity-crypto-foundation/aeternity-bitcoin-ng-the-way-it-was-meant-to-be-df7bb1d65a4b,由头等仓(First.VIP)翻译并提供,转载请保留版权信息,感谢阅读。

转载声明:本文 由CoinON抓取收录,观点仅代表作者本人,不代表CoinON资讯立场,CoinON不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。若以此作为投资依据,请自行承担全部责任。

声明:图文来源于网络,如有侵权请联系删除

风险提示:投资有风险,入市需谨慎。本资讯不作为投资理财建议。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2019年11月27日 下午4:45
下一篇 2019年11月27日 下午4:46

相关推荐

Bitcoin-NG:可扩展区块链协议与现实的碰撞 | 技术帖

星期三 2019-11-27 16:45:33

Bitcoin-NG协议是康纳尔大学研发的、具有极强耐性、与比特币具有相同的信任模型,旨在提升区块链网络吞吐量的拜占庭式容错区块链协议。

基于比特币并由其领导的加密货币已显示出有望成为匿名在线支付、廉价汇款、去信任化数字资产交换和智能合约的基础设施。但是,由于衍生自比特币的区块链协议固有的可扩展性,因此无法在吞吐量和延迟之间进行权衡,从而无法发挥这种潜力。

本文将介绍旨在扩展的新型区块链协议Bitcoin-NG,它大大缩短了交易确认延迟。

Bitcoin-NG:可扩展区块链协议与现实的碰撞 | 技术帖

背景知识

l 首先,大部分区块链项目都是在原来区块链的基础上,植入第二层解决方案,为用户和开发人员带来流畅的体验。早期全节点是由比特币协议实现的。并且由Erlang语言编写,Erlang是一种以组件导向的技术,可以逐个优化子系统。点对点网络和节点不断演变后,提高和改变性能就更加重要。最后,团队开发了受协议保护的完整功能集。当前所有新功能都在接受50个节点的公测。在已发布的版本中,这些新功能还被部署到拥有1.6万个平级节点的主网络。每个版本都会经过多层测试:单元测试、集成测试、系统测试(使用docker容器模拟网络),强大的快速测试框架(为组件API生成随机提要)。

l 工作量证明是一种最适合保护开放、公开、无需许可的区块链共识的方法。而团队采用了布谷鸟(Cuckoo Cycle)算法来实现工作量证明。布谷鸟算法是一种新型的内存密集型PoW算法,它的工作证明成本低,证明只有42个整数。过去两年,布谷鸟循环在PoW场景应用非常活跃。ASIC实现了超出预期的灵活性和生命周期,GPU匹配了更复杂的运算,同时提高了并行度。 

共识:Bitcoin-NG

区块链社区经常会把共识算法搞混。共识以及保护共识的方法不仅在技术上面临挑战,同时也是供应给终端用户的产品的核心。共识能确定交易是否可信,能确定协议更改是否由部分群体控制。在区块链中,所有的需求变化都围绕用户的独立性、去中心化和自由交易而生。

过去几年,在中本聪系列共识设计和拜占庭算法适应性不断突破。从单一区块链,到DAG、网格、信任分层架构以及实用拜占庭容错,提供了多种解决方案。当增加PoW、PoS、时空、时间证明等,解决方案更多了。但是,采用PoW来验证一个不可信环境是最佳的解决方案。

如何在一个移动、中心化、实时的世界,解决延迟10分钟确认的困局?

Bitcoin-NG是一种新型的支持中本聪共识的方式,基于PoW筛选临时领导人,然后由这位领导人打包区块。在一个区块的时间里确认这些交易,只需几秒即可!

PoW的区块链结构有两个运算阶段。一是用关键区块来选举领导人,二是用微块保存交易。

Bitcoin-NG论文中描述了新链结构和加密经济激励策略,涵盖审查、矿权和公平等问题——所有这些都是区块链平台所必需具备的要素。最具挑战性的是,分叉和微分叉的推理和执行。需要好几个低级区块实现迭代,以及与mempool或区块候选生成器之类的交易处理组件通信方可实现。在此之上,团队还调整了欺诈证明机制(Proof-of-Fraud)。

学术碰撞现实

2018年, Bitcoin-NG被Aeternity(AE)等项目集成。调整了工作量证明,每3分钟挖出关键区块,领导人发行微区块的速度低于3秒。每个微区块可以容纳600万燃料(由于虚拟机的初始实现是基于改进版的EVM(以太坊虚拟机),每15秒确认以太坊区块中的800万燃料,相比之下,FATE虚拟机具有更大的优势,它能处理更多的燃料)。

也就是说,在5-10秒的网络直径中,每个关键区块会产生一个微块分叉(分为3个微块)。这属于一种预期的、健康的行为。

同步和gossip协议有两种模式:正常模式和轻模式。轻模式下,gossip协议只传播交易哈希,让微块更轻更快。一个未经确认的交易被平级节点看到的可能性很高,验证的失败率非常低。

论文中预计的网络吞吐量理论极限是100tx/s(根据微块大小和容量计算而来),实际上的吞吐量极限在理论上会稍微高于100xt/s,毕竟每3秒释放一个微块,每个微块能容纳300-400笔交易。同时,准许用户独立交易和合约调用,两者共用一个燃料。最初的实现吞吐量低于50 tx/s,而且没有任何备份。现在通过优化mempool或gossip等组件,进一步提高了速度。

然而,现实与论文存在出入,最初假设的是网络和算力稳步增长,结果出乎意料,算力在短短几天内大幅上升,导致个人电脑和小型挖矿设备淘汰出局(最优卡是1080Ti和2080Ti)。用户对于没有机会参与挖矿感到失望,同时接收到了关于未确认交易和分叉的报告。

问题1

出现过多的分叉,经过检查,发现网络成员较多,但连接数异常稀少。阻碍了关键区块的广播。因此团队不得不改善(简化)文档,并鼓励用户使用公共IP。

问题2

分叉较少,但微分叉时间变长。微分叉是链的一种特殊状态,是由于关键区块的矿工追随了由当前领导人释放的旧微块,如果间隔很短,没什么大碍,但微块中包含10个区块。为了解决这个问题,团队投资了即插即用技术,改善网络。主网发布后不久,社区和核心团队实现了对多种GPU矿机的支持。难度进一步提升,用户可以重新控制大量算力来挖矿,目标调整也会导致矿池的诞生。

问题3

矿池带来了全新的活力,它们基于自定义的层协议和闭源挖矿客户端。但是再次出现了微分叉时间变长的情况。但不影响确认时间,因为即使交易被隔离在一个分叉中,也会被新领导人快速重新确认。但在一定条件下会危及节点的稳定性,这无疑是一种不健康的行为。

问题4
矿池几乎每1分钟刷新一次关键候选区块,也就是说会造成20个区块的微分叉间隔。1分钟占比3分钟关键区块生成时间较大比例,关键区块生成时间差异很大,说明矿池会将交易踢给下一个区块验证。

解决方案

该项目解决方案是培养两个矿池,使矿池形态多样化。这个工作正在部署当中,目前主要是三大矿池挖矿,其中两个占用95%的算力。

另一个方案是层服务器参考实现,以一个Bitcoin-NG友好的方式更新。代码比语言更简洁,不仅可以编程,还可以激励矿池调整配置。同时,还可能是去中心化框架的地基,由全节点组成矿池,取代现在的挖矿数据库。Bitcoin-ng将为普通用户提供生成微块的能力,而矿池将提供流动性。

为了更简洁,用数据来表示

链上数据分析

截至2019年4月1日,项目挖出了约6万个关键区块,下面是对大约10万笔交易的分析。

确认交易需要多少区块?如果这个数字大于0,意味着在大多数情况下,交易最终在一个微分叉中结束,并由下一代重写这笔交易。如果数字大于1,则表明有额外的延迟。

问题是,第1代延迟与矿池行为有何相关性。1分钟的刷新时间是一个后代长度的33%(后代长度设定为3分钟)。一半以上的交易立即得到了确认。最高的确认延迟发生在网络不稳定影响了领导人交付交易的情况下,有些交易可能会等待错过的前领导人。

相当于百分比:

另一个实验是分析微分叉的平均长度。这个很难计算,需要用一个“探针”监测选定的微分叉。这就是后代数量可能不同的原因。

以上信息与以前的测量结果一致。大约33%的交易被重写到下一代(延迟时长为1)。现在,是29%的微块被重写到下一代。考虑到p2p网络的性质和监控方法的误差,33%和29%比较接近,足以证实观察结果。

下图是一个微分叉长度分类(现在几乎是7个微块一代)。

由于没有规定广播区块的最小数,导致很大一部分微块长度低于每代长度。在系统当中,沉默的领导人等同于比特币或以太坊中挖空块的矿工。

第二是因为币基奖励与交易费之间的巨大不平衡。比较年轻的区块链由于没有市场驱动,交易费过低。在最初的3个月里,最低交易费几乎为0。

综上,费用配置不均衡导致微块的链奖励极低,进而打击了最新微块的积极性。随着时间推移,微块的链会自我完善。

其他数据

· 最大难度接近500万(备注:Nvidia 1080Ti卡上的布谷鸟循环需要0.3秒)。

· 迄今已确认的交易为470万笔。

· 最高交易率记录115tx/秒。

· 测试域名中的域名注册量达到50万笔。Lima硬分叉后的第一个域名和最后一个域名参与拍卖!

· mempool中交易的平均队列(等待确认数或垃圾收集数)2-3 笔。

总体而言,采用Bitcoin-NG后的区块链网络的稳定性较好,微分叉问题也将得到大力改进。由于Bitcoin-NG协议既简单又强大的设计,在实现解决方案时显著降低了技术风险。

在解决减少链上交易摩擦的同时,这些问题尚未影响用户的体验。领导人选举和领导人重新签署的复杂性完全隐藏在终端用户面前,完全不影响实时体验。

原文链接来自:https://medium.com/aeternity-crypto-foundation/aeternity-bitcoin-ng-the-way-it-was-meant-to-be-df7bb1d65a4b,由头等仓(First.VIP)翻译并提供,转载请保留版权信息,感谢阅读。