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 等几大公司同时支持和制定。这两项技术为布比区块链智能合约提供良好的基础功能支撑。