跳到主要内容

1. 安全高效的共识算法

布比区块链共识算法具备可插拔属性,支持高效的Bubi-BFT(改进创新的拜占庭容错算法)和支撑大规模用户的Validating Pool+BFT等多种共识算法。基于拜占庭容错算法的共识算法Bubi-BFT,是一种不会产生链分叉且强一致性的算法,用户交易可在秒级时间确认。基于Validating Pool+BFT算法,普通用户也可参与投票,并选举产生记账节点,记账节点再通过BFT算法轮流产生区块。布比区块链共识算法基于BFT算法,提出三点创新,首先,Leader节点可以通过算法轮询或VRF算法(可验证随机函数)切换;其次,对Quorum法定集合进行优化,提高共识的Liveness,当共识集合3f+1,则法定集合2f+1,f为可容忍的拜占庭节点数,当共识集合为3f+2,则法定集合为2f+2;当共识结合为3f+3,则法定集合为2 f +2;最后,对View Change 消息优化,减少消息传递的复杂度,从O()减少到O(n)。

2. 并行快速的多链分片

布比区块链实现多链分片技术,可根据不同业务场景需求对数据做切分,横向提高区块链的吞吐量。布比区块链的多链分片技术是一种“二层扩容技术”,可从一条主链平滑地扩展多条子链,每条子链都负责部分计算和存储业务,即链的数量可以随着业务量和数据的增加而增加。主链负责管理子链,保障链的安全性;子链继承主链的安全性,并且承载业务运行,子链的数据增长不会影响到主链及其他子链的效率,有效实现了资源隔离。

布比多链设计了主链与子链双层体系,让区块链更容易扩展。布比多链将不同业务的交易处理、状态存储、交易下载和广播进行拆分,不同子链的节点处理各自的业务。布比多链包括两种类型的链,一种是主链 Main Chain,负责子链验证节点选取、子链区块提案人选取、子链状态存储、恶意行为惩罚等;一种是子链 Child Chain,可以存在多个子链,根据不同业务特点搭建不同子链。不同类型、不同业务的主链与子链体现出多态特点。

布比多链还设计了多层体系化安全保证机制:在子链验证节点选举过程中采用混洗等机制,使得验证节点在子链的分布均匀化、随机化;设计了可校验的主链子链关键数据关联机制,在不提取子链全部数据的前提下,即可校验子链数据合法性;设计挑战者机制和子链区块确认机制,有效抵御贿赂攻击、恶意提交等攻击行为。

3. 可靠的隐私保护与权限控制

布比区块链结合同态隐藏、零知识证明等多项密码学技术,实现非交互式的隐私保护,可隐藏交易金额、地址以及交易附加数据。利用代理重加密算法实现对链上数据的授权访问。

非交互式的隐私保护:通过ECDH算法为对方生成致盲因子,对方可还原,而第三方不可。接收方可以通过接收方的私钥与发送方的公钥做代数运算还原致盲因子,而第三方没有双方的私钥无法还原该致盲因子,从而达到对第三方隐藏的目的。

交易金额隐藏:Pederson承诺实现了对金额的同态隐藏,即数字加密前的运算结果经过加密,与加密后运算的结果是一致的,区块链节点只需要对加密后的数据做等式运算,即可保证输入值等于输出值。

交易地址隐藏:通过附加“根据接收者公钥按照某种规则变换后的公钥”实现所有权的转移,不同的output产生不同的公钥,所有权发生转移、其他人不能关联出变换前的公钥,达到对地址隐藏的效果。

4. 业务开发友好的智能合约

布比区块链基于Chrome V8虚拟机构建智能合约引擎,提供集成开发环境以及多场景、多类型的智能合约模板。考虑到智能合约的安全性,智合约模块采用JavaScript子集作为编程语言,开发者可快速安全的开发智能合约应用程序。为了让更多开发者使用智能合约,布比区块链同时采用WebAssembly技术构建引擎,支持C/C++/python语言编写智能合约。

布比区块链智能合约引擎是Google V8和WebAssembly的创新改进,更好地满足区块链系统生态友好性需求。Google V8是由Google开发的开源JavaScript引擎,可将JavaScript代码直接翻译成二进制机器码在物理机上执行,执行效率高;WebAssembly是一种可移植、加载高效、平台无关的字节码格式,能在平台上以接近原生的速度执行程序,这是一种全新的 WEB 标准,由 Google、苹果、微软、 Mozilla 等几大公司同时支持和制定。这两项技术为布比区块链智能合约提供良好的基础功能支撑。

5. 可扩展的同构/异构跨链互操作

布比区块链跨链技术提出互联链体系结构,提供多种模式的跨链技术。布比链的跨链协议支持“基于多公证人机制”和“基于可信硬件机制”的主流模式。开发者可以先建立一条Relay Chain,利用SPV技术适配其他业务链,其次按照业务需求搭建平行链,平行链将按照预设的跨链协议对接到Relay Chain,从而与其他链进行互联互通,这样不仅可降低跨链架构复杂度,而且更灵活、更契合实际业务场景,布比区块链支持同构及异构跨链,不仅支持数字资产的跨链转账,也支持智能合约、分布式应用之间的跨链操作。

从布比跨链技术架构图可以看出,架构主要包括RelayChain(中继链)、Parallel Chain(平行链)、可插拔组件。中继链由多个验证节点组成,验证节点负责维护整个区块链安全稳定的运行,使用较高TPS的共识算法有效提高跨链的效率,满足平行链跨链对性能的不同要求。平行链是所有参与接入跨链生态的同构/异构区块链,可以是各种公链、联盟链、私链等。可插拔组件是中继链和平行链的桥梁,实现平行链/中继链与平行链互联互通跨链通信。布比跨链技术是以高性能共识的中继链为核心的跨链网络结构以及平行链动态接入机制,使用可插拔组件作为跨链的桥接器,保证跨链技术的高效性、扩展性和安全性。

6. 基于智能合约的自动清算

商业应用中,链上并没有真实的“钱”,为解决这一问题,布比区块链提供一套组件,实现链上账户与银行账户的一体化,利用智能合约使得资金自动清算,清算的过程只依赖链上签名,不依赖中心化的系统管理员。

区块链作为一种分布式账本,为保证参与分布式记账的各个节点数据的一致性,区块链驱动的智能合约逻辑只能与链上的数据交互,不能直接与链外部的系统交互。而银行账户系统就属于链外系统,他们的交互方式必须依赖一个可信的中间件。布比区块链通过可信硬件技术桥接链上与链下系统,使得这两种系统能协同工作,极大的拓展了区块链智能合约处理业务的边界。

布比区块链基于可信硬件创建清算中间件,该中间件一般会部署在清算银行的网络内部,它会连接区块链网络,实时同步区块链的数据,一旦发现它关联的智能合约清算完成,则会根据清算结果,通过银行前置机调用银行系统的接口,执行账户间的资金划拨操作,使得链上的用户资金与银行的资金完全一致,完成银行系统的调用操作后,中间件会自动生成交易更新智能合约的清算状态。整个清算过程,不会受到外部的干扰,保证系统按照预先的设计运行。

7. 国产密码的安全保障

区块链应用到行业中特别是金融领域,需要在技术上具备合规性。在密码学方面,布比区块链支持国家商用密码标准SM2/SM3/SM4。利用SM2非对称加密算法,可以生成区块链账户的公私钥对;利用SM4数字摘要算法,可以对交易、账户及区块等数据进行数字摘要运算,这些数据以特定的数据结构组织在一起,起到对被篡改数据的追溯作用;利用SM4对称加密算法,可以对用户的隐私数据进行加密,再通过发送交易操作,让用户数据安全上链。布比区块链同时还支持国密数字证书,利用证书体系对用户身份进行认证。用户可以用国密数字证书签名交易,区块链系统能校验证书签名的有效性;节点也可以配置国密数字证书作为其身份,其他节点校验其证书有效后才允许建立连接。

8. 商用级的产品成熟度

8.1. 法律效力及合规性

布比区块链将数字证书(支持软/硬件两种模式,软件证书可增加操作易用性,硬件证书可提高特定业务需求下操作的安全性)应用于区块链网络中,用户需持有CA颁发的数字证书才可以操作区块链,机构节点持有数字证书才可接入区块链网络中,通过结合现有的PKI基础设施完成区块链网络的身份认证功能,所有认证信息均映射至区块链账户,并支持链上查验。布比区块链支持国家商用密码SM2/SM3/SM4算法,满足国内绝大多数机构对安全性要求,同时支持SHA256等国际主流密码算法,使得更具有通用性。

链上节点引入司法数据风控平台、互联网法院、CFCA等多家权威机构提供司法存证、电子合同、实名认证等产品服务,任何开发者都可以向布比区块链提交自己实现的产品服务,参与到布比区块链分布式商业应用生态的建设。

img

图8法律效力及合规性

8.2. 易用性

布比区块链适配层抽象出适用于多种业务场景的API接口,如:资产、溯源、存证等,供这些场景相关的业务直接使用。在新的业务场景下,布比可以基于现有的框架为用户快速定制接口,满足业务功能需求。同时提供已封装的支持多种主流开发语言(JAVA、C++、node-js、PHP)的SDK软件开发包。

目前区块链技术服务主要有两种:一种是搭建一套区块链底层,提供一套标准化的API并开放,然后由开发者自己对接应用;另外一种是配合上层应用解决一些行业痛点,将分布式账本内嵌到已有的应用系统中。区块链是一项新兴技术,只有不断的满足业务需求,才能走向成熟,所以我们通过对底层分布式账本的封装,降低上层应用使用的门槛,在对接和使用的过程中,不断地优化和完善底层分布式账本和共识算法,使之更加贴近商用诉求。

8.3. 可视化运维

布比区块链提供运维管理所需的可视化工具。区块链节点上部署的系统监控服务(MonitorAgent):支持业务(区块、交易、合约、共识等)、网络(组网、时延、吞吐量等)、系统层面(CPU、内存、磁盘等)的数据信息监控;同时提供完备的日志、告警与通知机制,便于商用系统的维护。

布比区块链节点代码以C++编写,被交叉编译成不同平台下的可执行程序,不仅可以在Linux、Windows及MacOS操作系统上运行,还可以在移动操作系统Android上运行。节点发布方式不仅包括原生安装包,还包括docker镜像及云部署,运维人员可以根据各自业务特点,灵活选择部署方式。为方便运维人员管理维护区块链网络,布比区块链节点支持健康监控,所有的节点都可以通过配置接入到监控平台,通过可视化的监控平台,运维人员可以管理查看节点的各个维度的健康状况,包括系统层面、网络层面及区块链层面的状态信息等;同时平台会实时收集节点的运行状态数据,对数据进行分析,如果发现节点出现异常,则会发出告警,告警的发送方式支持短信、邮件及微信。

8.4. 资金账户体系

商业应用中,链上并没有真实的“钱”,为解决这一问题,布比区块链提供一套组件,实现链上账户与银行账户的一体化,利用智能合约使得资金自动清算,清算的过程只依赖链上签名,不依赖中心化的系统管理员。

img