真伪区块链——泰山沙盒知道!!
蔡维德 | 国家特聘教授、北航国家“千人计划”特聘教授、清华长江讲座教授、美国亚利桑那州立大学终身荣誉教授、天德科技首席科学家、天民(青岛)国际沙盒研究院院长、国家大数据(贵州)综合实验区区块链互联网实验室主任、赛迪(青岛)区块链研究院名誉院长。 |
2018年迎来了区块链应用的元年。在这一年里,出现了许多区块链的系统和应用,大有呈现井喷之势。从这些区块链系统发布的白皮书来看,有许多区块链系统自称使用拜占庭将军协议或者其它容错机制,或者使用其它数据库一致性的机制;但是,并不是每一个自称是区块链的系统就是区块链,自称使用拜占庭将军协议的系统,说不定没有使用拜占庭将军协议。例如,美国有一家著名的公司,就出现了这种问题,多年来,一直对外宣称是在做分布式区块链,后来在2018年初居然被人发现他们的系统竟然是中心化的系统。这对投资者、客户来说都是一种欺诈行为。
人们如何才能知道一条区块链是不是真正的分布式区块链呢?要成为真正的区块链,需要符合下面几个条件:
根据以上这些条件,我们分成三大类区块链系统:
A. 分布式区块链:使用拜占庭将军协议,每个节点都是相互独立的,至少需要三次投票。
B. 弱化区块链:通常用数据库一致性协议,而不用拜占庭将军协议。这样的协议无法发现说谎者,这些说谎者可以使系统瘫痪。这样的链只能在“信任”环境里,保证节点不会说谎。这样的一致性协议通常需要二次投票。
C. 伪区块链:通常是中心化的“区块链”。系统里有些组件是唯一机制,一旦被攻破真个区块链都被攻破。
单从技术白皮书并不能了解是否真的使用拜占庭将军协议,必须通过测试这些系统得到答案。
泰山沙盒测试机制
泰山沙盒系统是世界第一个区块链产业沙盒,于2017年年底在青岛崂山落地,在2018年6月底,将会有第二代的泰山沙盒系统出现;第二代的泰山沙盒系统,主要功能如下:
(一)测试管理
契约模型(Contract Model)管理:通过区块链软件系统所提供的RPC、SDK等形式的接口,定义以“请求——响应——数据”为表现形式的接口契约模型。
测试集(Test Suite) 管理:通过建立接口契约模型之间的关系,从而以区块链软件系统核心业务功能或性能为目标,建立对应的自动化测试集。
测试基准(Test Benchmark)管理:建立不同分类维度下区块链软件系统的测试基准规范,从而规范测试目标的需求内容。
测试目标(Test Target)管理:对区块链测试目标(区块链软件系统)进行管理,对其功能需求与测试集进行关联,从而达到以测试目标为单位,覆盖其功能需求执行测试任务。
测试任务(Test Task)管理:通过测试目标建立自动化接口功能或性能测试任务,可对历史任务进行结果统计分析与回归测试。
(二)执行测试
测试脚本与数据自动生成:根据测试任务中测试目标内所包含的测试集内容,自动生成区块链软件系统自动化测试脚本与测试输入数据。
接口自动化测试:根据任务定义自动化执行区块链软件系统接口测试,实时反馈测试结果。
分布式性能测试:根据任务定义自动化执行支持分布式压力生成的区块链软件系统性能测试,实时反馈测试结果。
测试过程监控与结果分析:提供实时测试结果统计、图表绘制、资源监控、分布式链路跟踪等监控与分析技术。
图表1 自动化测试平台
图表 2 接口契约模型管理
图表3 区块链接口自动化测试执行
有没有用拜占庭将军协议?泰山沙盒知道!
泰山沙盒系统能够追踪被测试区块链系统的运行,根据图表4,可以清楚地看到,如果系统有使用拜占庭将军协议,则它们进行投票时,至少会进行三轮投票过程;如果投票过程只有二轮,它们使用的数据库一致性协议就不是拜占庭将军协议;至于是不是有中心化的系统,也能很容易地看出来。泰山沙盒系统对区块链共识算法和机制的测试过程中,监控整个区块链节点网络集群的共识过程,进行分布式事务链路跟踪,可直观的了解到整个共识算法的流程、交互数据内容和步骤等,如图4、如图5所示。
泰山沙盒也可以测试公链,例如pow等共识机制。
图表 4共识过程分布式链路跟踪拓扑图
图表 5 共识过程的阶段、过程和数据进行追踪
目前市面上区块链系统鱼龙混杂,有真正的区块链系统,也有伪区块链系统,和弱化的区块链系统混杂其间。经过泰山沙盒系统能够分辨真伪。第二代泰山沙盒系统的出现,将会成为监管的利器,
泰山沙盒系统是青岛市崂山政府大力支持的项目,这个项目是天民(青岛)国际沙盒研究院、天德科技和工信部-赛迪(青岛)区块链研究院合作共建的。目前泰山沙盒系统针对每个申请测试的单位,免费使用三个月。第二代沙盒系统将在2018年7月正式上线使用。