Hyperchain 架构图
P2P网络体系
- Hyperchain平台由验证节点(VP)和非验证节点(NVP)组成;
- 验证节点之间通过gRPC远程调用服务实现通信构成P2P网络,其中gRPC服务采用protobuf3;
- Hyperchain同时提供了热备切换机制,当VP节点出现故障时,NVP节点可自动升级为VP节点。
共识算法RBFT
Hyperchain采用可插拔的共识机制,可以针对区块链的不同应用场景提供优化的共识算法。目前Hyperchain共识模块在实现了PBFT算法的改进版本RBFT(Robust Byzantine Fault Tolerant),该算法基于AllenClement等人在2009年提出的Aardvark算法进行改进,在保证BFT系统强一致性的前提下,提升了系统的整体交易吞吐能力以及系统稳定性。
RBFT是高性能鲁棒共识算法,可以稳定达到3000-10000的TPS,并可以将交易执行时间控制在300ms左右,为区块链的商业应用提供高性能的解决方案,拓展了区块链的应用场景。同时Hyperchain可使用基于GPU的验签加速,进一步提升整体性能。
存储
Hyperchain使用开源的存储系统LevelDB。
智能合约引擎
HyperVM 是Hyperchain自主研发的可插拔智能合约引擎通用框架,允许不同智能合约执行引擎接入,目前实现了兼容Ethereum的Solidity语言的HyperEVM和支持Java语言的智能合约引擎HyperJVM,后续将持续集成JSVM、WVM。
多级加密机制
Hyperchain采用了可插拔的加密机制对于业务完整生命周期所涉及的数据、用户、通信连接等都进行了不同策略的加密,通过多级加密保证平台数据的安全。
- 数据安全:实现安全哈希算法,为消息生成体积小、不可逆的数字指纹。
- 身份安全:实现数字签名算法对交易进行签名,防止交易数据被篡改。
- 通信安全:实现密钥协商技术对传输层数据加密,保证通信双方可以不共享任何秘密进行加密通信。
- 机构安全:实现基于CA的权限控制与准入机制。
隐私保护机制
最初的区块链系统中,所有节点都可以访问链上数据,在大部分商业应用场景中,需要对链上信息进行隐私保护,Hyperchain平台提供了以下隐私保护机制。
- Namespace:Hyperchain设计基于Namespace的分区共识机制通过区块链账本的分区维护,交易的分区共识实现了敏感交易数据的存储和执行空间的隔离。Namespace机制允许部分区块链节点创建属于它们的Namespace,这些Namespace成员之间的数据交易以及存储对其他Namespace中节点不可见。
- 同态加密:Hyperchain通过同态加密的思想实现区块中交易金额和账户余额的加密。同态加密算法的这个特性,可以使验证节点在不知道账户的余额和交易的金额的情况下,进行交易合法性验证,并将通过验证的交易记录到区块链上。
- 合约访问控制:合约编码者可以在合约中定制合约函数的访问权限。合约编码者可以在合约中为一些高权限的函数设置权限控制,使得该函数只能被固定地址的调用者调用,从而实现访问权限控制。
- 隐私交易:Hyperchain可支持交易粒度的隐私保护,发送交易时指定该笔交易的相关方,该交易明细只在相关方存储,隐私交易的哈希在全网共识后存储,既保证了隐私数据的有效隔离,又可验证该隐私交易的真实性。
区块链治理机制
- 自治联盟组织(ACO,antonomousconsortium organization):是一个被部署在区块链上的系统智能合约,通过这个自治的组织,每一位组织成员可以提出提案(比如系统升级、节点加入),审议提案(投票),最终以去中心化的形式决定某项提案通过与否。
- 权限管理:联盟链的准入机制虽然能一定程度上保障其安全性,但为了支撑更丰富复杂的商业应用场景需求,Hyperchain提出了分级的权限管理机制,进一步保障商业隐私和安全。链级管理员:参与区块链级别的权限管理,包括节点管理、系统升级、合约升级的权限控制;节点管理员:参与节点级别的权限管理,包括节点访问权限的控制、SDK接口的权限分配等。
消息订阅机制
Hyperchain作为一个“共享状态”的区块链实现,其运转通过不断地进行状态变迁实现。每一次状态变迁,都会产生相应的一系列事件作为本次状态变迁的标志。Hyperchain提供了基于WebSocket和基于MQ的两种消息订阅方式,以便于外部系统捕获、监听系统及合约的状态变化,可供订阅的事件类型包括新区块事件、虚拟机日志事件(合约事件)、系统异常事件等。
Hyperchain将该消息订阅系统视为智能合约与外界通信的消息通道,合约编码者可以在合约中定义一系列的事件类型,当合约进行相应动作时,可以主动向外界抛出预定义的虚拟机事件,事件中可以记录定制化的消息内容,从而实现了链上链下的消息互通。
数据管理
Hyperchain对于区块链数据开发了完备的工具进行管理和监控。
- Radar:提供了用于合约数据可视化的服务Radar,Radar能够在区块链正常运行的同时将区块链中合约的状态变量的信息导入到关系型数据库中,使得合约状态可视化、可监控。
- 数据归档:提供了一种基于“状态快照”的数据归档方法,以解决区块链数据的存储问题,实现区块链节点存储压力的减负以及快速的数据库内容恢复。
>>转载请注明原文链接地址:Hyperchain 简述