布比并行快速的多链分片技术特性及实现原理 | 商用区块链BubiChain详解

Posted 软件工程小施同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了布比并行快速的多链分片技术特性及实现原理 | 商用区块链BubiChain详解相关的知识,希望对你有一定的参考价值。

总体而言,区块链技术的大规模商业化仍处于相对早期的阶段。企业对区块链技术的性能和易用性的高要求、区块链技术本身的可扩展性瓶颈和运营效率低下构成了目前制约行业发展的主要矛盾。

基于大量的商业实践和区块链商业化的探索与创新,布必信打造了一个拥有完全自主知识产权、高性能和可扩展性、产品成熟的商业级区块链底层平台。

商业区块链的基础平台BubiChain在基础技术方面取得了重大突破:应用开发友好的智能契约、安全高效的一致性算法、可靠的隐私保护、并行快速的多链以及可扩展的跨链技术;实现了产品化的一个重要突破:应用程序可快速构建、可视化操作和维护、技术合规性和资本账户系统等。形成完整的产品服务能力。

这篇论文是关于商业区块链布比钦的一系列文章中的第三篇,即——。Bubichain并行快速多链切片的技术特点和实现原理如下。

1.多链碎片体系结构

Bubby区块链实现了多链切片技术,可以根据不同的业务场景进行数据切片,横向提高区块链的吞吐量。

Bubby区块链的多链分段技术是一种“两层扩展技术”,可以从一个主链平滑地扩展多个子链,每个子链负责部分计算和存储服务,即链的数量可以随着业务量和数据的增加而增加。

  • 主链负责管理子链,确保链的安全;
  • 子链继承主链的安全性,并执行业务操作。

子链的数据增长不会影响主链和其他子链的效率,从而有效实现资源隔离。

Bubby Multi-chain设计了一个主链和子链的双层系统,这使得区块链更容易扩展。Bubiduo链将不同服务的事务处理、状态存储、事务下载和广播分开,不同子链的节点处理它们自己的服务。

布比多链包括两种类型的链,

  • 一种是主链,负责子链验证节点的选择、子链块发起者的选择、子链状态的存储、恶意行为的惩罚等;
  • 一种是子链,可以有多个子链,可以根据不同的业务特点构建不同的子链。

不同类型和服务的主链和子链表现出多态性。

Bubby多链还设计了一种多层系统安全保障机制:在子链验证节点选举过程中,采用洗牌机制,使验证节点在子链中的分布均匀、随机

设计了一种可验证的主链关键数据关联机制,无需提取子链的所有数据,即可验证子链数据的合法性;挑战者机制和子链块确认机制旨在有效抵抗贿赂攻击、恶意提交和其他攻击。

2.多链碎片的抗重放攻击

为了防止重放攻击,Bubby Multi-chain提出了一个统一的帐户,它只需要一个帐户就可以在多个链之间发送交易和转移资产。在多链场景中,理论上,攻击者可以将同一个事务发送到不同的链以获取不正当的利益,从而在多个链之间形成重放攻击。当用户查询账户信息时,他们只需要一个账户就可以看到所有链的资产信息,这使得重放攻击成为不可能。

上图显示了反重放攻击的过程:普通用户爱丽丝发送一个事务,例如,事务是Tx-1,内容是爱丽丝向鲍勃转移10个资产。爱丽丝签署了交易Tx-1,然后将交易发送到主链。主链识别出该事务是通过统一身份(Unified Identity,0x1000)寻址到自身的,因为只有主链的id是0x1000,所以事务Tx-1被打包。

黑客拦截交易并试图重放攻击。黑客复制Tx-1交易

Bubby多链可视为同构链系统,采用全局统一账户结构,目的是使用户在只生成一对公钥和私钥的情况下,在所有链上发起交易,多链之间的交易不会出现重放攻击。账户树包括从地址到账户状态的映射,账户存储树存储与智能合同相关的数据信息。帐户树根节点的哈希值由块保存(在帐户树哈希字段中),指示创建块时的当前状态。每个帐户都有一个帐户存储树。

4.挑战者机制设计

在布比区块链,挑战者监督子链。一旦发现子链提交的分块数据有问题,可以向主链发送抵押,对子链提出质疑,并提交特殊目的公司信息进行计算和验证

由于子链认证节点抵押了大量存款,一旦挑战者成功挑战,恶意节点的认证节点存款将奖励给挑战者。

通过这种激励方法,鼓励所有节点参与子链监管。

如果一个恶意节点通过贿赂攻击攻击一个子链,它需要买断该子链的所有认证节点或贿赂挑战者,这将在下面单独分析。

首先,是购买子链验证节点的情况。假设行贿总额为,至少为验证节点Pt的质押资金之和,否则验证节点没有恶意。

第二,贿赂挑战者。恶意节点需要找到所有的挑战者。

考虑到任何节点都可以扮演子链的挑战者角色,挑战者的奖励是Pt,挑战者有足够的动机去挑战,因此恶意节点很难对子链发起贿赂攻击。

布比多链挑战者的工作过程如下:

Challenger发现当前同步的块是异常的,并且发现主链已经包括块信息,因此challenger向异常块发起了挑战。

挑战者将前一个块的状态数据和交易数据打包,形成SPV证明数据,并将其发送到主链合同进行验证。

主链验证节点成功完成轻节点计算过程后,下载子链中相关的SPV数据进行比较验证。

正确的验证表明挑战是成功的,然后这个子链的验证节点余量被惩罚,挑战者被奖励。

在主链确定提交的块数据无效后,取消后续块确认的过程开始,并且在最后一个安全块头位置确认子链的块头,直到正确的块信息被重新提交,从而确保子链的健康运行。

以上是关于布比并行快速的多链分片技术特性及实现原理 | 商用区块链BubiChain详解的主要内容,如果未能解决你的问题,请参考以下文章

Java技术指南「并发编程专题」Fork/Join框架基本使用和原理探究(原理及源码篇)

Java中的多线程技术全面详解

Java中的多线程技术全面详解

深度探索区块链/实现数据隔离的多链和多通道

Mycat核心概念工作原理及高级特性分析

深度学习框架原理解析:百度飞桨的多GPU并行训练方案