BUMO 多链惊艳亮相 分层扩容突破“不可能三角”
近日, BUMO 发布Orbits 多链技术 MVP(Minimal Viable Product)版本,该技术可大幅提高公链的扩展性和性能并突破“不可能三角”, 所谓的区块链 “不可能三角”,也称为“三元悖论”, 通常 指区块链 系统 无法同时兼顾去中心( Decentralization) 、可 扩展性( Scalability ) 、安全性( Security),至多只能三者取其二 。
( 不可能三角示意图 )
BUMO发布的Orbits技术基于主链保证去中心化及安全的同时,通过创建子链来提升可扩展性,最大限度的兼顾“不可能三角”的三要素。同时Orbits 对用户十分友好,用户只需要填写几个关键参数,即可便捷灵活的创建一条安全可靠的子链。实际测试中, BUMO创建3000条子链,TPS可突破百万,其性能和扩展性已经处于全球领先水平。
( BUMO Orbits架构图)
BUMO Orbits在提升 可 扩展性的同时,还可极大提升公链的性能。 Orbits依据网络ID将 主链扩展至多个子链 ,每一个 子链 只需要运行该 子链 的共识协议,网络上的交易可以分散到子 链 中来进行处理。因此子 链 越多,就有越多的交易被 并行 处理和验证。通过这种平行处理的方式,将大任务拆分成多个可并行处理小任务, 从而有 效提升整体网络性能。
Orbits除了实现性能和可扩展性的提升,也在其它很多方面取得了很多技术突破:
a、共识方面采用多链隔离共识的方式,有效避免不同链共识相互影响。
b、P2P通信方面对Gossip协议进行了有效的改进,大幅度减少了不同链之间的消息冗余。
c、节点方面提出了观察者角色,观察者能够准确的识别子链节点做恶,有效的提升了子链的安全。
d、激励机制,主链验证节点不仅可以去参与主链的的挖矿也能去子链挖矿,这样验证节点不仅可以获得主链的奖励也可以获得子链的收益。
目前主流的扩容技术方案按照层次分可以分成 3层:
(扩容分层图)
Layer 0: 该层也叫数据传输层可扩展方案,主要解决优化网络传输速度,减少网络延时。目前有 BDN分发、组播锁定组、QUIC UDP 协议 等。
Layer 1 :这层主要是对链本身做改变,主要是通过网络层、数据层、共识层去改变链本身的特性,目前在这层的技术有隔离见证、分片、 DAG等技术。
Layer 2 : Layer2 也叫链下扩展, 构建在主链上。它们不要求对基层协议的更改,相反的,它们只是以智能合约 或者其他 的形式存在,与链下 网络 进行交互 。目前的解决方案有状态通道、主子链技术、侧链等。
BUMO对以上三层扩容技术方案经过深入的研究,最终采用Layer2主子链技术。原因在于:Layer0 可以很好的改善网络传输问题,但是对于公链的TPS来说改变的微小甚微。Layer1 的分片和DAG的方式需要对公链底层做大修改,会带来很多潜在的问题,目前来看分片和DAG等技术虽然也有很多项目,到现在为止大部分还处于研究阶段,能够上POC测试的用例都还没有,还不太成熟。关于Layer2技术,BUMO为什么使用主子链技术不选状态通道呢?由于状态通道过于中心化,安全性还得不到太多保障。
经过 BUMO团队的架构设计,Orbits技术具备如下特性:
安全性高: 子链的安全可以借助于主链安全得到保证,子链不要部署很多节点,这样不仅提升了安全也节约了资源。
可扩展性高: 理论上可以无限扩展子链,且每条子链都是一个独立的生态系统,通过 BU关联,具有极强扩展性。
性能高 : 子链扩展后独立运行,且相互之间性能不会影响,性能成线性增长。
按照互联网正常带宽中位数 13Mbps为例,子链构成每笔交易实际大小为0.5k,则一个区块打包一万笔交易大小为5MB,理论吞吐量极限最大值约为3120TPS(10000 × 13Mbps / 5MB),实际测量的情况可以由下图反应,当子链的条数挂载20条的时候TPS达到了66532,挂载300条子链的时候达到了904256,一直到挂载3000条子链的时候达到了峰值9398623,达到3000后再增加链的条数tps反而有所下降。 从下图测试数据可以说明 BUMO 的子链挂载条数在 3000这个极值范围,TPS大概能够突破900万, 超过 3000条子链整个网络就不会太稳定。
隔离性: 对于不同的业务场景可以构建不同子链,对不同数据进行了隔离。如果子链出现了问题也不会影响其它子链的运行。
如何搭建一条属于自己的子链 ?
BUMO多链具备上述这么多优势,相信会有非常多开发者想尝试构建一条自己的子链,以下就为BUMO开发者提供构建子链的方式。
在 BUMO上搭建子链非常简单便捷, 开发者需要在主链上进行注册,缴纳消费金(一定数量的 BU,用于子链向主链提交区块头信息所消耗的手续费),并把自己的子链节点加入到主链,这样就构建了一条子链。
(开发者自主搭建子链示意图)
上述是对 BUMO多链技术的简单介绍,如果想要详细了解BUMO多链提供的功能,欢迎去演示环境(地址: https://multichain.bumo.io/ )体验。假如你是开发者,对区块链技术有非常深的理解,欢迎研究我们多链源码(地址: https://github.com/bumoproject/bumo/tree/feature/multichain )。