针对区块链的关键测评要素及安全测评技术研究

known 发布于 2025-07-28 阅读(343)

摘  要:区块链技术已经从研究阶段进入应用阶段,但对区块链的测评研究目前还处于探索阶段。研究区块链关键的核心架构功能、共识效率和智能合约的安全性方面的测评关键要素,可以帮助组织提高区块链系统的质量、提升效率和减少安全性风险。通过对区块链架构的分析,明确了每层架构应关注的功能测评关键点,针对目前效率不高和智能合约存在安全隐患等现状,进一步总结了共识机制效率的测评属性和智能合约安全性的测评技术和方法。

关键词:区块链技术测评;区块链效率;区块链安全

中图分类号:TP391.44;TN915.08     文献标识码:A 文章编号:2096-4706(2020)15-0160-04

Abstract:Blockchain technology has entered the application stage from research,but the testing research of blockchain is still in the exploratory stage. The research on the testing key elements of blockchain key core architecture function,consensus efficiency and security of smart contract can help organizations improve the quality of blockchain system,improve efficiency and reduce security risk. Through the analysis of blockchain architecture,the key points of function testing that should be paid attention to in each layer architecture are clarified. Aiming at the current situation of low efficiency and potential security risks in smart contracts,the efficiency testing attributes of consensus mechanism and the security testing technology and methods of smart contract are further summarized.

Keywords:blockchain technology testing;blockchain efficiency;blockchain security

0  引  言

区块链是采用“区块+链”的结构存储数据并由多方共同参与的开放的分布式记账技术。虽然其已经从研究阶段进入应用阶段,但对区块链的测评研究目前还处于探索阶段。当前区块链系统的性能不理想[1],这是应用该技术的主要阻碍,已有很多关于区块链系统功能、效率和安全性测评相关的研究[2,3],但是国际和我国目前还没有形成相关的技术标准。虽然区块链技术通过应用加密算法、哈希函数来保证系统的完整性、安全性和保密性,但是区块链基础层级在功能、效率和安全性方面仍然面临着内部或外部的各种脆弱性和威胁。本文在综合科技服务平台项目实践过程中,在科技资源管理与共享方面应用了区块链技术。在上述实践中笔者发现区块链基础层级的功能、共识机制效率、智能合约安全性是影响区块链健壮性和质量的关键因素。本文分析了基础层级的技术特点,凝练出功能测评的关键要素,提出区块链的瓶颈和隐患主要集中在共识机制和智能合约方面,阐述了针对交易延迟、吞吐量、耗能指标、共识效率和合约漏洞等方面实施的测评。通过研究区块链关键核心架构的功能测评、性能测评和安全测评,希望可以提高区块链系统的健壮性和质量,同时减少安全风险。

1  区块链基础层级及功能和效率通用测评

虽然区块链在各个场景中的具体应用有差异,但其基础层级和构成有相似之处,一般可分为五个层级,按从应用端到底层的顺序,分别为应用层、合约层、共识层、网络层以及数据层。

1.1  基础层级及功能测评

数据层主要是实现了分布式存储和数据管理功能,它位于基础层级中的最底层,其采用首尾相连的链式结构来实现信息的存储。区块中的第一个区块被称为“创世”区块,后面的区块按照产生或发生的时间顺序经哈希函数处理后依次链接。哈希算法是通过哈希函数对原始数据进行编码,生成固定长度的字符串序列,数据层常用RSA、椭圆曲线加密技术(ECC)等非对称加密算法对信息进行加密或者实现数字签名。

对于数据层的功能测评主要包括:存储、账本记录、加解密、摘要、数字签名等方面的测评,具体内容如表1所示[4]。

在区块链中,网络层负责通过特定的传播协议执行节点间的通信、节点的加入和退出网络,它是由拓扑结构为全联通的节点组成的对等网络,所有的网络节点既可以充当客户端,也可以充当服务端。网络层中根据角色划分的不同又可以分为记账节点和验证节点。另外,还设计有容错机制保障各个节点的稳定性。网络层的功能主要是测评对等式网络,测评内容包括节点之间通信的高效性和安全性、点对点通信的多播能力和动态增删节点的功能。

共识层是在去中心化的环境下使网络层的各个节点能够针对区块数据达成一致的机制,这种共识机制主要是通过共识算法来实现,目前常见的共识算法有:工作量证明、权益证明、股份授权证明、拜占庭共识算法等。共识层功能测评的关键要素如表2所示。

合约层主要包括各种脚本、代码、算法机制及智能合约,是区块链可编程的基础。合约层的功能主要是环境测评、内容静态和动态检查、外部数据源和智能合约交互、合约防篡改、多方共识下的合约升级和账本中写入合约内容等。

应用层处于整个区块链基础架构的最上层,封装了各种应用场景,可以通过参考各个应用场景的不同需求来确定应用层的测评内容。

1.2  区块链架构效率通用测评

除了功能测评之外,效率指标也可以应用到各个层级中,通用指标一般包括资源利用率、时间特性和容量三个方面。其中,资源利用率从CPU占用率满足度、内存占用率满足度、外存时间负载满足度、外存空间占用率满足度、传输带宽负载满足度和I/O设备占用率满足度等维度测评;时间特性从响应时间满足度、周转时间满足度和吞吐率满足度等维度测评;容量从最大请求数满足度、事务累积容量满足度、数据吞吐容量满足度和数据处理容量满足度等维度测评。

2  共识机制的性能测评

区块链的瓶颈主要集中在性能交易及由工作量证明为代表的共识算法的低吞吐量、高时延、低效等问题上,这种低效问题已经限制了区块链的使用场景。共识机制的性能测评指标主要是交易延迟、吞吐量、耗能和共识效率等。

交易延迟是指由记账节点发起交易到该交易被确认的整个过程所花费的时间。交易延迟与区块链开放程度、网络通信时间、共识算法等因素有关,它表征了整个系统的网络通信性能和共识算法的运行时间。

交易延迟TTL的计算公式如下:

TTL=C2E+C2O+C2V

其中,C2E表示客户端与背书节点间的通信时间,C2O表示客户端与排序节点间的通信时间,C2V表示客户端与验证节点间的通信时间。另外,交易延迟与区块链打包时间和打包的交易数也有密切关系。

吞吐量是区块链时间间隔内的交易发出到交易确认(出块时间)并写入区块链中的总交易数。一般用TPS(每秒交易数)来表示。

耗能指标方面,在区块链中的区块的生成需要进行共识算法的计算,通常有些计算是无意义的计算,在计算过程中使用的网络通信带宽、占用的内存、CPU资源以及维护这些资源运行的电能是衡量区块链耗能的测评指标。

共识效率即为共识过程中处理交易到达成共识所需要的时间的多少。用户需要在保证交易安全的前提下,拥有更快的交易效率。

3  智能合约安全性测试

“智能合约”的概念由计算机科学家加密大师尼克·萨博在1993年提出,他为其下的定义:“一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。”智能合约虽然有着广阔的应用前景,但当前还存在严重的安全问题,如2018年10月29日发生的PoWHC和批量传输溢出漏洞,在黑客的利用下,合约开发者共损失了866枚以太币[5-7]。类似这种事件的安全问题无疑限制了区块链的发展。

智能合约安全测试可以检查智能合约代码中是否有常见的安全漏洞、智能合约是否可信以及智能合约的程序源代码是否符合编码规范。智能合约漏洞主要分为5种类型:编码规范问题、设计缺陷问题、编码安全问题、编码设计问题和编码隐患[8]。其中由程序员设计和开发的编码标准或流程存在的缺陷和问题可能会导致代码规范问题、代码设计缺陷(含接口设计)、代码设计和代码安全漏洞。编码安全问题主要由开发人员在合约编写时的疏忽导致[8]。

对于区块链智能合约安全测评,本文主要介绍漏洞分析技术、污点分析技术、模型检验技术和基于字节码的漏洞分析方法。

3.1  漏洞分析技术

漏洞分析技术是指通过漏洞定位、安全隐患挖掘、测评、特征分析等方法或方式分析区块链漏洞的技术。通过分析可以有效提高系统的健壮性、防止数据丢失和被盗。区块链智能合约的漏洞分析主要面向源代码、二进制文件和程序动态运行的其中之一或者三者组合。

3.2   污点分析技术

污点分析是将所感兴趣的数据标记为污点数据,然后跟踪和污点数据相关的信息的流向,分析这些信息的时候会影响某些关键的程序操作,进而跟踪挖掘程序漏洞[9]。在具体的分析流程中,首先需要识别选定代码(程序变量、消息变量或数据变量)中的污点源和污点汇聚点,通过标识方法把这些变量标识为污点变量,通过程序运行的流程图来分析和跟踪污点的传播路径,如果能检测到某条路径被污点信息污染,那么就意味着该处可能存在着安全隐患或者缺陷,通过这种预警可以为进一步的分析提供很好的参考信息。污点分析的流程图如图1所示。使用污点分析技术可以检测缓冲区溢出、SQL注入等多种类型的程序漏洞。

3.3  模型检验技术

模型检验技术对源代码进行状态建模,通过分析有限状态机来验证需要测试的漏洞。在实际的分析中,通过已有的规则库和白盒测试的路径覆盖分析方法,分析程序路径状态模型时序逻辑是否存在问题。

3.4  基于字节码的漏洞分析方法

基于字节码的漏洞分析结合了基于漏洞规则库的关键字符串查找和基于控制规则库的静态符号执行分析技术。首先利用反编译器来获得字节码的源代码,然后分析源代码的控制流程图。通过强大的漏洞规则库进行关键字查找来分析敏感指令,判断是否存在危险API调用和参数等漏洞;同时基于控制规则库和静态符号的执行分析来确定重入攻击和交易顺序依赖攻击,通过这两种方法的结合可以输出字节码漏洞结果。

3.5  常用智能合约漏洞分析工具

智能合约漏洞分析工具在源代码漏洞分析工具的基础上进行了进一步发展。基于漏洞规则库的关键字符串查找来分析合约漏洞问题的工具有Solium、Solhint等。使用静态符号执行分析技术的工具有Mythril、Oyente等,这些工具的字节码漏洞分析流程如图2所示。专门用于分析重入漏洞和整形溢出漏洞的Mythril、Oyente也在业内得到广泛使用。Cppcheck主要通过反编译器建立源代码的语法树,然后对抽象语法树采用源代码常用分析方法(如边界值分析、溢出分析、编码规则符合性分析等)来分析智能合约的漏洞。另外,还有采用模型检测技术来对未知漏洞进行分析的SCAVT。

4  结  论

通过对区块链架构层级及相关关键技术的介绍,针对各个架构层级的不同侧重点归纳和总结了架构功能、架构通用效率的关键要素测评指标。针对目前区块链在共识机制方面存在的低吞吐量、高时延、低效等问题提出了共识机制的性能测评,测评指标主要有交易延迟、吞吐量、耗能和共识效率等。智能合约有着广阔的应用前景,但当前其安全性还存在问题,主要可以从通过漏洞分析技术、污点分析技术、模型检验技术和基于字节码的漏洞分析方法等提高区块链系统质量、减少安全风险,为进一步的区块链安全性研究提供了研究基础。另外,文中也介绍了常用的区块链漏洞测评的相关分析工具。

参考文献:

[1] ZHENG P L,ZHENG Z B,LUO X P,et al. A Detailed and Real-Time Performance Monitoring Framework for Blockchain Systems [C]//2018 IEEE/ACM 40th International Conference on Software Engineering:Software Engineering in Practice Track (ICSE-SEIP),New Jersey:IEEE,2018:134-143.

[2] BALIGA A,SOLANKI N,VEREKAR S,et al. Performance Characterization of Hyperledger Fabric [C]//2018 Crypto Valley Conference on Blockchain Technology (CVCBT),New Jersey:IEEE,2018:65-74

[3] NASIR Q,QASSE I A,TALIB M A,et al. Performance Analysis of Hyperledger Fabric Platforms [J/OL].(2018-09-09).https://www.hindawi.com/journals/scn/2018/3976093/.

[4] 贵州省大数据标准化技术委员会.区块链系统测评和选型规范:DB52/T1467-2019 [S/OL].(2019-12-31).http://amr.guizhou.gov.cn/xwzx/tzgg/202001/t20200108_41939935.html.

[5] 涂序文.面向系统内核的灰盒测试技术研究 [D].无锡:江南大学,2019.

[6] 付梦琳,吴礼发,洪征,等.智能合约安全漏洞挖掘技术研究 [J].计算机应用,2019,39(7):1959-1966.

[7] 邱欣欣,马兆丰,徐明昆.以太坊智能合约安全漏洞分析及对策 [J].信息安全与通信保密,2019(2):44-53.

[8] 古涛铭.面向智能合约的安全检测系统研究与设计 [D].成都:电子科技大学,2020.

[9] LIU B C,SHI L,CAI Z H,et al. Software Vulnerability Discovery Techniques:A Survey [C]//2012 Fourth International Conference on Multimedia Information Networking and Security,New Jersey:IEEE,2012:152-156.

作者简介:李军(1975—),男,汉族,湖北丹江口人,高级工程师,硕士,研究方向:网络信息安全测评、区块链应用、大数据。

标签:  区块 

免责声明

本文来自网络,不代表本站立场。如有不愿意被转载的情况,请联系我们。