特性
可信计算环境
超级链BaaS平台基于以下多个维度的可信计算环境支持,实现全方位区块链网络安全保护,全时段维护业务链上应用信息、数据、执行逻辑的安全可信。
- 多级加密技术:
- 支持数据上链、数据传输、合约调用等多流程多种加密算法逐级加密及验证。
- 国际/国密标准的加密算法支持:
- 非对称加密算法:sm2、ECC
- 哈希算法:sm3、sha-2、sha-3
- 对称加密算法:sm4、aes、des
- 跨链网安全代理:多架构、多类别跨链数据交互及合约调用通过安全代理模块支持跨链数据安全加密及安全准入、审计控制。
-
基于可信硬件的自研合约安全执行环境:
- 基于SGX安全硬件及百度MesaTEE安全框架在合约层采用Baidu AI Security Stack (BASS)的Hybrid Memory Safety (HMS) 机制,免疫内存安全漏洞;同时额外加强了侧信道防御,领先业界。
- 结合TPM 2.0与MesaLock Linux,纵深防御未知侧信道等攻击。
- 用内存安全语言构建TLS协议栈,支持SGX Enclave-to-Enclave和Untrusted-to-Enclave两种可信验证模式。
高性能高吞吐
实现基于多链架构,支持区块链网络及链上应用规模性增长。用户可根据业务场景需求选择区块链架构,进行链网参数优化及共识机制切换,突破性能与吞吐的极限。
-
适配不同业务场景的多种共识机制:针对超级链BaaS平台跨链架构及具体业务场景,我们提供针对公有链、私有链以及联盟链的多种共识机制支持。
- 公链场景下百度超级链实现基于时序的TDPOS共识算法,支持20000+TPS。
- 联盟链场景实现基于Paxos/Raft/PBFT等多种共识机制,最大可支持10000+TPS。
- 基于以太坊的私有链场景可选POW、POA、DPOS等多种共识机制。
- 支持多链架构水平动态扩缩容
- 基于轻量级内存缓存的架构优化
可扩展的存储
区块链通过节点间存储的高冗余来保障链上数据的高可用及安全性。这也就意味着相比于中心化的存储系统,区块链网络保存的数据副本基本随节点规模线性增长。反过来由于世界态的不可破坏性,区块链中每个节点都会尽量多地保存原始的全局数据。包括状态数据、交易数据、交易凭证甚至事件数据都会持久化到节点存储中。在实际生产环境中,区块链节点需要的存储空间大小会随着交易数量增加而持续增长。
百度智能云能提供无限量的存储空间,并且能达到数据可用性和数据安全性的业界标准。同时超级链BaaS平台结合云存储深度定制区块链节点存储机制,实现区块链专有的存储技术。这也是许多企业级用户选择超级链BaaS平台引擎来托管生产级区块链系统的原因。超级链BaaS平台引擎主要解决了如下技术难点
数据热度自适应存储
实现冷热数据自适应调度,将低频数据存储在SATA介质或者云存储,高频数据存储在SSD介质;实现 DFS适配层,支持分布式文件系统,存储容量理论上可以扩展到 PB级别。 状态数据 状态数据一般位于块头,是链上各区块的索引数据。系统通过标记块头状态索引计数,将已被覆盖的状态索引踢出块头,从而保证状态数据量与高频覆写交易量解耦。其次将低频变更的状态数据分代迁移到成本更低的SATA介质或者云存储。高频变更的状态数据存放在内存和SSD介质的数据库中。 同样,从数据库中读取状态节点时,本着最小IO开销的原则,仅需要读取那些需要用到的节点数据即可。根据读取频率,状态节点的索引路径也会根据热度进行打分,状态树被划分冷热区,冷区状态节点会迁移到成本更低的存储介质中。
交易数据
交易数据是区块中数据空间比重最大的部分。各个区块中都会包含交易信息。这些交易信息会在监督节点或新启动节点中被回溯验算。超级链BaaS平台系统会根据链长存储比,进行轻量级的计算。也就意味着当区块高度大于某阈值后,交易验算将只抽取一定比例的最新区块中。快速验算机制保证高度小于某阈值的区块将不需要参与验算,这些区块中的交易数据可以被归档保存。只需核心节点拥有这部分的数据。 系统会将归档交易数据推送到DFS,当需要做全量审计或系统需要全量恢复数据时可以从归档DFS中读取。由于百度智能云DFS无容量上限,并且有成熟的可用性技术保障,归档后的交易数据可以从区块链中卸载。即使高度进一步增加,区块链节点本地存储的交易数据将被稳定在一个合理的空间范围内。
跨链可信交互
在一些复杂的应用场景中,跨链交互是一项可以扩展链网能力的功能。目前来看主要有两种用法:
1. 数据跨链打通,适用在同类或非同类链网间数据同步,比如为了做链网热切换,在不停服状态下将链网数据同步到另一条链网上;又或者为了做数据子集的有限共享,将主链上的交易数据脱敏同步到共享链网上。
2. 不同类型链网的功能互补,在当前的技术背景下,不同链网有不同功能优势。比如可以将隐私计算型链网与身份许可型联盟链(permissioned consortium)结合,前者用于在安全环境中进行加密计算,后者用于将前者的计算产出授权共享到联盟第三方节点。 跨链可信交互的技术难点包括绝对确定性(Absolute Finality)锚定与跨链预言机。超级链BaaS平台可在概率性确定共识场景中动态计算得到区块的稳固系数;同时也支持将概率性确定共识升级为绝对确定性共识。当区块足够稳定时,会被跨链预言机锚定。跨链预言机承担对接多链IO接口的作用,通过将预言机机制放大到多链上工作来实现。跨链预言机包括跨链协议转换、交易数据转义、状态数据过滤等逻辑组件。基于Plasma侧链交互模型,跨链交互分为锁定期、同步期、挑战期、解锁期。实验室状态下可在百毫秒内完成跨链数据的单周期交互。
通用智能合约
由于区块链上的数据具有不可篡改的特性,使得以太坊智能合约的开发需要异常的谨慎,智能合约程序所产生的bug无法轻易修复,并且可能产生巨大的代价。因此超级链BaaS平台针对智能合约提供了两大核心功能:
- 常用智能合约库
- 更多内置标准库
常用智能合约库
超级链BaaS平台提供常用的经过生产验证的智能合约库,包括数学计算、数组、链表、字符串操作、RBAC等。开源、模块化的设计方便用户二次开发。用户可以方便的一键部署进私有链中,如下图所示:
更多内置标准库
超级链BaaS平台完全支持原生的Solidity合约开发,在此基础上,为了方便合约的开发,超级链BaaS平台增加了更多标准库的支持,包括JSON解析库、XML解析库、base64编解码等,使开发者把更多的精力放在业务的实现上。
合约安全审计
任何有意义的智能合约或多或少都存在错误,百度智能云区块链引擎不仅可以对智能合约进行词法分析、语法检查,还专门提供了智能合约安全检查服务,给用户提供全面的智能合约审计报告,大大减少了智能合约漏洞的出现,防患于未然,缩短了用户开发的周期并减轻了上线的压力。
超级链BaaS平台的代码分析器通过将智能合约解析成AST来进行合约的漏洞模型筛选,其中包含死循环、数值溢出等常见漏洞模式,如下图所示: