上一篇文章《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生态!