百度区块链白皮书:XuperChain 网络介绍

 运行结构

 

XuperChain 简称超级链,是一个支持平行链和侧链的区块链网络。在 XuperChain 网络中,有一条特殊的链——Root 链。Root 链管理 XuperChain 网络的其它平行链,并提供跨链服务。其中基于 Root 链诞生的超级燃料是整个 XuperChain 网路运行消耗的燃料。Root 链有以下功能:

(1) 创建独立的一条链;

(2) 支持与各个链的数据交换;

(3) 管理整个 XuperChain 网络的运行参数。

XuperChain 是一个能包容一切区块链技术的区块链网络,其平行链可以支持

XuperChain 的解决方案,也同时支持其它开源区块链网络技术方案。

 共识机制

 

(1) 可插拔共识机制


 

在当前的技术背景下,没有哪一种共识机制是完美无缺的,每一种共识机制都有其优点和缺点,不同的应用场景可能需要不同共识机制。为了应对不同的应用需求,

XuperChain 设计了一套可插拔的共识机制,所谓可插拔主要体现在两个方面:

一方面,XuperChain 不同的平行链允许采用不同的共识机制,以此来满足不同的共识应用需求,用户可以通过 API 创建自己的区块链,并指定初始的共识机制。

另一方面,XuperChain 还支持在任意时刻通过投票表决机制实现共识的升级,从而实现共识机制的热升级。

XuperChain 的共识机制包括但不限于 POWPOSPBFT、中心化共识(Raft)等。

(2) DPOS 共识算法创新—TDPOS 共识

基于 POS 基础上衍生出了很多改进算法,DPOS 就是其中一种。DPOS 算法是用户通过投票选出代表进行区块的生产。

XuperChain 自主研发实现了一套DPOS 共识,我们称之为 TDPOS。依据这种算法, 全网持有通证的人都可以给候选人投票。

TDPOS 的参数包括每轮的 proposer 个数、出块间隔、节点每轮出块个数等,在创建平行链的时候可以指定,也可以通过提案机制升级。通过 GPS 和原子钟保证时钟同步。例如,如果配置的参数为每轮 21 个节点、出块间隔为 3s、每个节点每轮出块个数为 200 个,则每轮的时间为 3.5h

(3) 自定义共识机制

如果 DApp 开发者觉得系统默认的共识机制都无法满足自身的业务需求,可以通过智能合约和共识机制的编程接口,编写自己的共识,并以智能合约的形式发布到

XuperChain 中。XuperChain 在启动用户创建的这条链的时候,会注入自定义共识需要取一个唯一名字),成为该链的共识机制。

 超级节点

 

超级节点是一种分布式计算技术,保证每个节点的存储和计算是可以扩展的。从而为区块链网络提供源源不断的存储和计算支持。

(1) 存储支持

超级节点会存储所有的历史事务的完整信息,如何支撑 PB 级别的容量非常具有挑战。

XuperChain 底层 KV 存储引擎主要有以下几个特点:


1) 事务性表格系统:通过前缀编码的平展化,支持多链 多表,且能保证跨链事务的原子性;

2) 多盘技术:实现 KV 存储引擎到底层文件系统的虚拟映射层,支持单机多盘存储,从而支撑大容量数据存储;

3) 混盘技术:实现冷热数据自适应调度,将低频数据存储在 SATA 介质或者云存储,高频数据存储在 SSD 介质;

4) 云优化:实现 DFS 适配层,支持分布式文件系统,存储容量理论上可以扩展到

PB 级别。结合混盘调度,保证性能最优。

(2) 计算支持

在非 POW 的共识机制下,超级节点的主要计算量为交易上链和合约执行。很多区块链软件对交易的执行以及合约的执行都是串行执行的,优化到极致也只能使用单核, 对硬件的利用率很低。超级节点采用多核并行计算与分布式计算相结合的方式以提升计算效率。

1) 多核并行计算:XuperChain 通过智能合约的依赖关系将待打包的事务构造出 个 DAG。每个 DAG 的交易和合约执行都是并行跑在多个 CPU 核上, DAG 内部无路径依赖的节点也可以并行执行,从而可以最大化 CPU 的利用率,突破系统吞吐瓶颈。平行链和可回归侧链技术也能有效的利用多核并发;

2) 分布式计算:XuperChain 未来构建事务执行的分布式调度集群,链内并行事务和多链事务可分发给调度集群执行,从而利用分布式计算的扩展能力。

智能合约

 

(1) UTXO Base 的智能合约模型

我们认为 UTXOUnspent Transaction Output相对于 Account 余额模型,并发性能更好,对热门账户的性能也更优秀。超级链底层是基于 UTXO 模型,因此任何针对比特币系统的优化都适用于 XuperChain

XuperChain 在 UTXO 的基础上做了智能合约的扩展,在扩展区可加载各种不同的合约虚拟机,每个合约机需要实现运行合约和回滚合约两个接口。回滚机制是为了应付分叉设计的,我们在合约回滚方面进行三个方面的优化,用户可以选择其中之一去实现:

1) 自定义回滚逻辑;

2) 利用区块链数据操作日志,生成反向回滚日志,自动生成回滚逻辑;

 

3) 引入 MPT,分叉无需回滚支持,但是暂时只有 KV 存储能力。

(2) 智能合约兼容

1) XuperChain 内嵌合约机制

内嵌合约机制,规定智能合约编写的接口,可直接用当前语言GoC++Java 编写智能合约放到 XuperChain 里面。当前 XuperChain 的 Kernel API 和共识机制算法都是用这种方式实现的。

开发者可以直接写新的智能合约,放入到 XuperChain 网络中,XuperChain 予一定的安全隔离和保护。一般这种模式只建议联盟链部署的时候使用,因为公开的节点会因为安全问题拒绝为该链提供算力。

未来会引入智能合约 Store 和对智能合约的安全审计,保证发布的智能合约是安全的,从而让公开节点放心支持。

2) 第三方兼容

XuperChain 直接支持以太坊的 Solidity 语言。以太坊的智能合约代码可以在

XuperChain 部署和执行。XuperChain 同时支持 WebAssembly,并通过其支持任意语言。理论上 XuperChain 支持任何虚拟机的运行。

 立体网络技术

 

(1) 链内并行技术

 链内并行技术示意图


 

图 1  链内并行技术示意图

当下区块链技术的实现是将所有事物打包后顺序执行。随着智能合约越来越复杂, 如果顺序执行智能合约,高并发度将难以实现,而且也不能充分利用多核和分布式的计算能力。


为了让区块里面的智能合约能够并行执行,XuperChain 将依赖事务挖掘形成 DAG

图,并由 DAG 图来控制事务的并发执行。

(2) 可回归侧链技术

 

 


 可回归侧链技术示意图

图 2  可回归侧链技术示意图

在很多场景下,并不需要把所有的事务都集中在主链上运行。比如一个运营活动, 完全可以把资源放到一个侧链上去,然后通过智能合约执行逻辑,执行完成后一次性合并回主链。通过把复杂的智能合约在侧链执行,可以实现利用其它的并行计算资源去执行而不消耗主链的资源。当满足侧链回归条件的时候,主动引发侧链合并。

(3) 平行链技术


 

平行链技术


 

图 3  平行链技术

在 XuperChain 的立体网络里面,有大量的区块链存在。这些链通过 Root 链管理起来,这些链就是平行链,从而形成一个真实、独立存在的区块链体系。我们把这个网络叫做立体网络。立体网络上通过 Root 链创建的平行链,可以选择是公开链,也可选择是联盟链(仅成员可见)。

轻量级节点技术

 

XuperChain 在设计的时候就支持轻量级节点技术。轻节点仅同步少量数据就可以完成数据的访问和校验。轻量级客户端可以部署在 PC、手机、嵌入式设备等设备上, 不需要算力和存储支撑就能有效的访问区块链网络数据。

可升级系统

 

(1) 提案和投票机制

 


 


 提案和投票机制示意图

 

图 4  提案和投票机制示意图

提案和投票机制是区块链系统实现自我进化的关键。系统首次上线后难免遇到很多问题,我们提供提案/投票机制为区块链的社区治理提供便利的工具,以保证未来系统的可持续发展。具体实现方法如下:

Step1:提案者(proposer) 通过发起一个事务声明一个可调用的合约,并约定提案的投票截止高度,生效高度;

Step2:投票者(voter) 通过发起一个事务来对提案投票,当达到系统约定的投票率并且账本达到合约的生效高度后,合约就会自动被调用;


 

Step3:为了防止机制被滥用,被投票的事务需要冻结参与者的一笔燃料,直到合约生效后解冻。

(2) 共识可升级


 

5 XuperChain 提案机制进行共识升级

 

图 5 XuperChain 提案机制进行共识升级

XuperChain 提供可插拔共识机制,通过提案和投票机制,升级共识算法或者参数。图 简要说明了如何使用 XuperChain 的提案机制进行共识升级。

(3) 系统参数可升级

通过提案和投票机制,区块链自身的运行参数也是可升级的。包括:block 大小、交易大小、挖矿奖励金额和衰减速度等。

 隐私保护和安全

 

超级链支持多种主流的隐私保护和安全机制,包括但不限于:

(1) 通过获取用户设备上产生的随机熵,来生成随机数种子,再通过密钥衍生推导函数来加强随机性,最后生成 ECC 的公钥私钥对;

(2) 引入分层加密技术来降低密钥被泄露和破解的可能性。也防范了通过交易记录猜测个人隐私的可能;

(3) 为了防止地址碰撞和输入错误,使用高强度的散列和摘要算法以及校验码来保证地址合法性;

(4) 引入语言亲和性的助记词技术,用户只要记住助记词,就可以恢复自己的数字钱包。


 

XuperChain 网络生态和基础设施

 

网络生态

 

(1) 商业化能力

通过 XuperChain 网络创建区块链需要冻结超级燃料。

在系统稳定运行一段时间后,冻结的超级燃料会按照一定比例分给为该区块链提供资源和服务的节点。平行链持有者,为了保证区块链正常运作,应该定期补充冻结一定比例的超级燃料。Root 链是管理平行链和解决跨链的关键,Root 链的每一次 API 调用, 都要消耗超级燃料。因此,超级燃料将作为 XuperChain 使用者支付使用费用的途径, 也是当下 XuperChain 的主要商业化途径。

(2) 开源计划

1) XuperChain 已经在 Xuper 联盟内部开源;

2) 2019 年上半年向全社会开源。

 

超级链 App

 

 


 


  XuperChain APP

 

图 6 XuperChain APP

XuperChain 构建未来 DApp 运行的基础网络。一个完整的区块链生态体系需要提供一个窗口,以连接用户和区块链网络。因此推出基于百度区块链生态的超级链 App

超级链 App 是 DApp 的终端运行平台,是用户发现并使用 DApp 的入口。开发者可以通过超级链开发者平台快速创建和发布自己的 DApp 并发行到超级链 App 中,用户无需下载即可在超级链 App 中使用所有的 DApp 提供的服务。

 

生态内的 DApp,可以借助百度流量优势获得流量。通过内容与服务推荐,精准的连接开发者与用户,致力于打造自治共荣的区块链分发生态服务。

基于区块链的 DApp 无法简单直连服务器,因为单独一个网络节点无法被客户端信任。所以在XuperChain 上运行的DApp 都是通过轻量级节点实现去中心运行。XuperChain 提供 DApp 运行的最基本的轻量级节点支持,以实现让开发者像开发 Web 程序一样开发 DApp

百度区块链白皮书结语

 

区块链技术作为技术迅猛发展大背景下的新兴产物,旨在通过其去中心化、开放性、自治性、防篡改性及可追溯性等特质,解决信任问题,意义重大。XuperChain 作为百度操作系统级区块链解决方案,旨在通过搭建底层生态,打造业务闭环,以赋能 DApp 发者,使其充分拥抱区块链能力。百度 XuperChain 正以兼容并包的姿态,广纳全世界DApp 开发者,与百度 XuperChain 一起在区块链的丰沃土壤中生根、发芽、开花、结果。

玖壹区块链声明

加微信:469649885区块链培训教程
还可免费获取区块链培训班试学名额

分享:

扫一扫在手机阅读、分享本文

区块链评论

玖壹区块链培训

玖壹区块链培训学院简称(玖壹学院http://www.91xiubbs.com/)提供区块链技术培训资料、区块链开发培训视频教程等下载,不过网上自学区块链技术课程必然存在一些缺陷:遇到问题易卡壳、学习周期漫长、无针对性等。区块链培训机构现场面对面的讲授区块链培训课程可以让您和团队在最短时间内掌握正确、系统、高效的区块链实战技术。