上一篇文章《NULS社区为了承载商业应用落地所累积的区块链技术思维-模块篇》详细描述了NULS模块化设计的优势:
1.技术升级永不止步,每个模块可独立升级,不影响整体功能;
2.便于用户选择不同的模块,开发搭建自己的应用;
3.NULS作为开源社区项目,主网上线后各类标准接口日趋完善,方便社区开发者加入NULS底层任意模块(部分)的开发,或者根据标准接口,开发新的功能模块;
4.当发现BUG时,更容易定位BUG,进行修复。
本篇内容将继续介绍NULS社区为了承载商业应用落地所累积的区块链技术思维——多链并行。和模块化设计的基础理念一样,NULS多链并行扩展模式的设计目标也是为了持久地服务各类企业级应用。如果使用主链来承载所有业务,那么仅仅是硬件维护成本就要千万级别的资金投入,除此之外还需要资金用于业务发展和扩展。在这样高投入的成本下,非常不利于商业对接和共识参与,同时也与NULS所倡导的降低区块链参与门槛、全员共识理念不符。
为解决这个难题,NULS团队对比特币和以太坊技术深入研究后,自创了”主链+子链”多链并行的扩展机制。这种机制分离了主链和子链,由不同的子链来承载各类商业业务,降低参与门槛,同时满足千万级 TPS 需求。下图以防伪溯源子链为例,展示了多链并行的扩展机制。
上图蓝色部分是已在NULS上注册接入的防伪溯源子链。
子链管理记录了该子链扩展模式下业务模块的数据,主链只做审计和验证,不运行实际业务。因子链可自由选择共识机制与出块时间,子链块头上链不是一个确定的恒定参数,预计主网每块可容纳子链可达6000左右。以一个保守值3000计算,一条子链再使用平行扩展方式使用80条子链承载业务数据,每块2000笔交易。可得:3000(主链) * 3000(子链) * 80(子链业务链)* 2000 = 1,440,000,000,000 子链业务链可随业务复杂度继续平行扩展,承载交易量指数级上升。子链上传区块头打包进主链,使主链不需要存储所有业务交易数据的同时,又保证了子链数据的不可篡改性,将审计与业务数据分离。
所以NULS通过区块链逻辑重组的设计,实现了主链上只存储最终结果数据或证据数据,通过主网全节点广播进行子链数据的审计,确保了数据的真实性,同时也能低成本的解决高并发下的性能问题。
毕业于清华大学电子工程系的国内顶尖区块链专家和架构师,吴萌野曾公开发表演讲:”理想的基础链模型,要进行业务的分区,把业务进行垂直划分,并且弹性扩容,业务分配有规律可行。可以参考阿里云单元计算的概念,把不同的业务,例如区块链养猫、区块链借贷等,分配给不同的链上单元。每个单元有自己的智能合约,有自己的共识层,有自己的分布式账本,理论上他们是一个个私有链,业务可以实现互通互操作,底层可以通过跨链数字资产转移协议来实现互换。” 由这段演讲实录可见:按照业务分配工作,释放主链承载能力的多链并行技术,是一个被区块链专家认可并主张的技术实现方法。另外,前段时间引起激烈讨论的状态通道技术,也是类似的剥离链上负荷到链下的并行技术路径。
NULS主网建设的工作计划,只占到NULS生态规划的5%,而剩余的95%中很大一部分规划在不同行业领域的子链扩展,因此欢迎更多的开发者加入NULS中文社区,一起利益共享,建设可持久升级的NULS生态!