XuperChain简称超级链,是一个支持平行链和侧链的
区块链网络。在XuperChain网络中,有一条特殊的链——Root链。Root链管理XuperChain网络的其它平行链,并提供跨链服务。其中基于Root链诞生的超级燃料是整个XuperChain网路运行消耗的燃料。Root链有以下功能:
(1)创建独立的一条链;
(2)支持与各个链的数据交换;
(3)管理整个XuperChain网络的运行参数。
XuperChain是一个能包容一切
区块链技术的区块链网络,其平行链可以支持XuperChain的解决方案,也同时支持其它开源区块链网络技术方案。
共识机制
1、可插拔共识机制
在当前的技术背景下,没有哪一种共识机制是完美无缺的,每一种共识机制都有其优点和缺点,不同的应用场景可能需要不同共识机制。为了应对不同的应用需求,XuperChain设计了一套可插拔的共识机制,所谓可插拔主要体现在两个方面:一方面,XuperChain不同的平行链允许采用不同的共识机制,以此来满足不同的共识应用需求,用户可以通过API创建自己的区块链,并指定初始的共识机制。另一方面,XuperChain还支持在任意时刻通过投票表决机制实现共识的升级,从而实现共识机制的热升级。
XuperChain的共识机制包括但不限于POW、POS、PBFT、中心化共识(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通过智能合约的依赖关系将待打包的事务构造出N个DAG。每个DAG的交易和合约执行都是并行跑在多个CPU核上,DAG内部无路径依赖的节点也可以并行执行,从而可以最大化CPU的利用率,突破系统吞吐瓶颈。平行链和可回归侧链技术也能有效的利用多核并发;
2)分布式计算:XuperChain未来构建事务执行的分布式调度集群,链内并行事务和多链事务可分发给调度集群执行,从而利用分布式计算的扩展能力。
智能合约
1、UTXOBase的智能合约模型
我们认为UTXO(UnspentTransactionOutput)相对于Account余额模型,并发性能更好,对热门账户的性能也更优秀。超级链底层是基于UTXO模型,因此任何针对
比特币系统的优化都适用于XuperChain。
XuperChain在UTXO的基础上做了智能合约的扩展,在扩展区可加载各种不同的合约虚拟机,每个合约机需要实现运行合约和回滚合约两个接口。回滚机制是为了应付分叉设计的,我们在合约回滚方面进行三个方面的优化,用户可以选择其中之一去实现:
1)自定义回滚逻辑;
2)利用区块链数据操作日志,生成反向回滚日志,自动生成回滚逻辑;
3)引入MPT,分叉无需回滚支持,但是暂时只有KV存储能力。
2、智能合约兼容
1)XuperChain内嵌合约机制内嵌合约机制,规定智能合约编写的接口,可直接用当前语言(Go,C++,Java等)编写智能合约放到XuperChain里面。当前XuperChain的KernelAPI和共识机制算法都是用这种方式实现的。
开发者可以直接写新的智能合约,放入到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、共识可升级
图5XuperChain提案机制进行共识升级
XuperChain提供可插拔共识机制,通过提案和投票机制,升级共识算法或者参数。图5简要说明了如何使用XuperChain的提案机制进行共识升级。
3、系统参数可升级通过提案和投票机制,区块链自身的运行参数也是可升级的。包括:block大小、交易大小、挖矿奖励金额和衰减速度等。
隐私保护和安全
超级链支持多种主流的隐私保护和安全机制,包括但不限于:
(1)通过获取用户设备上产生的随机熵,来生成随机数种子,再通过密钥衍生推导函数来加强随机性,最后生成ECC的公钥私钥对;
(2)引入分层加密技术来降低密钥被泄露和破解的可能性。也防范了通过交易记录猜测个人隐私的可能;
(3)为了防止地址碰撞和输入错误,使用高强度的散列和摘要算法以及校验码来保证地址合法性;
(4)引入语言亲和性的助记词技术,用户只要记住助记词,就可以恢复自己的数字钱包。
版权申明:本内容来自于互联网,属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户的观点,链门户不承担任何法律责任。如有侵权请联系QQ:3341927519进行反馈。