admin管理员组

文章数量:1530059

2024年5月15日发(作者:)

Research

on

Blockchain

Security

Technology

ITNS

主题专栏

区块链安全技术研究

特邀主编寄语

区块链技术作为新一代信息技术的底层技术

以其可信任性

安全性和不可篡改性

让更多数

据被解放出来

推进了数据的合理利用

在数字资产管理

会治理

商业交易

物联网

、知识产

保护乃至智能制造等领域拥有广阔的应用前景

#

2019

10

24

,

中共中央政治局就区块链

技术发展现状和趋势进行第十八次集体学习

,

中共中央总书记习近平强调区块链技术的集成应

用在新的技术革新和产业变革中的重要作用

要把区块链作为核心技术自主创新的重要突破口

,

着力攻克一批关键核心技术

加快推动区块链技术和产业创新发展

$

同其它新技术一样

区块链

技术发展也面临新的安全问题

,

如区块链中的共识算法会随着密码学和计算技术的发展而变得

越来越脆弱

对计算资源的掌控可能导致糸统混乱

区块链隐私保护与匿名追溯难等问题

$

开展

区块链安全技术研究

对解决行业应用痛点

推进传统产业数字化转型

,

提高数字经济发展效率

和质量具有重要现实意义

$

盖珂珂

北京理工大学网络空间安全学院

特别副研究员

博士生导师

担任

新工科联盟区块链工作委员会秘书长

IEEE

智慧计算特别技术社区秘书长

国计算机学会区块链专委会常务委员

从事区块链

云计算安全等方向的教学和

科研工作

主持国家自然科学基金项目

国防预研项目

国防基础科研计划

省部

级自然科学基金重点研发项目等

10

余项

发表论文

150

余篇

关志涛

华北电力大学控制与计算机工程学院

副教授

博士生导师

中国计

算机学会

CCF

区块链专委委员

,

CCF

物联网专委委员

,

中国人工智能学会智能

信息网络专委委员

从事区块链与应用密码学

人工智能安全等方向的教学和科

研工作

主持国家自然基金项目

2

北京市自然基金

1

横向课题

10

余项

获得省部级奖

1

发表学术论文

80

余篇

智能合约安全问题与研究现状

1

1

谭嘉诚

1

盖珂珂

2

1.

河南大学软件学院

河南开封

475000

2.

北京理工大学网络空间安全学院

北京

100081

智能合约是运行在区块链上的程序

具有去中心化

不可篡改的特性

被广泛应用于金融

能源

物联网等多个领域

然而智能合约一旦实际部署到实时网络上就不能对其更改

在保证合约安全的同时

缺陷和错误也不能通过修改合约代码得以解决

从而导致重大的安全事故

因此合约实际部署前对其进

行安全测试已经成为迫切需要解决的问题

介绍了因智能合约漏洞引起的安全事件

对常见的合约漏洞

进行详细分析

完成对已有合约分析工具的总结

体现了合约安全问题的研究发展现状

关键词

智能合约

漏洞分析

区块链

安全分析工具

中图分类号

TP301

文献标识码

A

DOI

:

10.19358/

.

2096

-5133.

2021

.05

.

001

引用格式

赵辉

,

李星

,

谭嘉诚

,

.

智能合约安全问题与研究现状

[J].

信息技术与网络安全

,

2021

,

40

(5

:

1-6

,

19.

信息技术与网络安全

2021

年第

40

卷第

5

投稿网址

:

ITNS

主题专栏

:

区块链安全技术研究

Research

on

Blockchain

Security

Technology

Research

status

of

smart

contract

security

Zhao

Hui

1

,

Li

Xing

1

,

Tan

Jiacheng

1

,

Gai

Keke

2

(1.

Software

College

,

Henan

University

,

Kaifeng

475000

,

China

of

Cyberspace

Science

and

Technology

,

Beijing

Institute

of

Technology

,

Beijing

100081

,

China)

Abstract

:

Smart

contract

is

a

program

running

on

the

blockchain

,

which

is

decentralized

and

tamperable

.

It

is

widely

used

in

finance

,

energy

,

Internet

of

Things

and

other

fields

.

However,

once

the

smart

contract

is

actually

deployed

on

the

real

-

time

network

,

it

can

not

be

changed

.

While

ensuring

the

security

of

the

contract

,

defects

and

errors

can

not

be

solved

by

modifying

the

contract

code

,

resulting

in

major

security

incidents

.

Therefore

,

it

has

become

an

urgent

problem

to

test

the

security

of

the

contract

before

the

actual

deployment

.

This

paper

introduces

the

security

incidents

caused

by

smart

contract

vulnerabilities

,

analyzes

the

common

contract

vulnerabilities

in

detail

,

and

summarizes

the

existing

contract

analysis

tools

,

which

reflects

the

research

and

development

status

of

contract

security

issues

.

Key

words

:

smart

contract

vulnerability

analysis

block

chain

security

analysis

tool

0

引言

智能合约的概念最早由美国著名计算机学科

常见的分析工具进行了详细分析

最后对本文的工

作进行了总结

学家

SZABO

N

234

提岀

,

由于当时技术发展和缺乏可

信执行环境等原因

智能合约并没有得到良好的应

1

智能合约的安全事件

随着智能合约技术的快速发展

近年来智能合

约的攻击事件频频发生

本节着重介绍了近年来发

直到一个化名为中本聪的学者提岀了比特币的

概念

224

,

其底层技术区块链的兴起重塑了智能合约

生的典型合约攻击事件

解决了之前技术不成熟和应用场景缺失等问题

区块链具有去中心化

不可篡改等特性

为智

能合约提供了一个解决信任问题的机制

相较于传

2016

6

17

The

DAO

264

受到攻击

。主要由

splitDAO

函数中存在的漏洞

该函数先向用户进

行了转账

之后才对用户的余额等变量进行了更新

统的金融合同

智能合约有很多的优点

智能合约

执行的过程不需要可信的第三方的参与

一旦满足

同时转账调用了攻击者的

fallback

函数

产生了重

入漏洞

The

DAO

事件对以太坊

274

的发展产生巨大

的影响

造成了以太坊的分叉

形成了两条链

一条

ETC

另一条为

ETH

合约中的条件

相应的条款将会被强制自动地执

智能合约降低了信任成本

并且将用户使用合

约的门槛降低

基于智能合约的区块链技术广泛应

2017

7

19

Parity

Multisig

2

8

4

电子钱包由

于合约漏洞造成以太币被窃取

该漏洞主要是由于

用于金融

2

34

能源

244

和物联网

2

54

等领域

随着智能合约的迅速发展

智能合约复杂性不

Delegatecall

函数使用不当造成的

攻击者通过

Del

­

断增加

面临着许多不可忽视的安全问题

频发的

egatecall

函数调用了

initWallet

函数

通过

initWallet

数调用

initMultiowned

函数

由于

initMultiowned

函数未

作校验使得钱包初始化函数顺利执行

攻击者成为

了合约的拥有者

之后攻击者调用

execute

函数进行

合约攻击事件表明

智能合约的安全问题十分严重

智能合约漏洞的研究受到了广泛的关注

本文的主要贡献

(1)

2016

年以来发生的典型智能合约攻击事

件进行了总结

转账

2018

4

22

黑客对美链的智能合约进行

了整数溢岀的攻击

漏洞由

batchTransfer

函数引起

(2)

对智能合约的常见漏洞进行了总结

并详细

介绍其原理

该函数用于同时给多个人转账

由于没有对溢岀进

行检测

攻击者通过构建较大的转账金额

_value

(3)

对常见的安全分析工具进行了介绍

并对各

个分析工具进行了比较

致转岀总金额

amount

被溢岀为

0

转账方减去被溢

岀的

amount

而接收方却收到

value

金额的转账

本文首先对近年来发生的典型合约攻击事件

进行了简介和分析

接着详细地分析了智能合约的

安全漏洞

然后介绍了常见的安全分析工具

再对

击者通过这种方法凭空产生了大量的代币

2019

EOSPlay

遭到了新型的随机数攻击

2

稿网址

:

www

.

pcachina

.

com

信息技术与网络安全

2021

年第

40

卷第

5

Research

on

Blockchain

Security

Technology

ITNS

主题专栏

区块链安全技术研究

EOSPLay

采用未来区块的哈希作为开奖的依据

2.2

Delegatecall

漏洞

Delegatecall

操作是一种特殊的消息调用

普通消

息调用执行之后

执行环境会进行改变

目标代码在

攻击者通过发送大量交易

达到预测未来区块哈希

的目的

2020

4

攻击者对

DeFi

平台

Uniswap

的智能

合约实施可重入攻击,

该攻击者利用遵守

ERC777

协议规定的代币发生转账会调用代币发送者的

被调用者的合约上下文中执行

Delegatecall

的特

殊之处在于

执行环境不进行改变

目标代码是在

调用者合约的上下文环境中执行的

,

并且

tokensToSend

函数实施攻击

漏洞合约先向攻击者

进行了转账

ETH

,其次才将代币转进合约

代币转

的值依旧是调用者的值

,

调用栈同样保

持不变

进合约时调用攻击者经过恶意修改的

tokensToSend

函数从而再次调用漏洞合约

由于此时代币未被转

Delegatecall

函数的滥用会导致严重的安全

问题

Delegatecall

调用的合约会直接对调用者的

进合约

根据合约兑换比例公式

攻击者可以获取

状态变量进行修改

从而引发不可预期的后果

使

Delegatecall

调用应该谨慎

需要保证调用合约的

额外的利益

2

智能合约的常见漏洞

近年来

频发的合约攻击事件对区块链的生态

带来了巨大的损失

多数是由合约常见漏洞⑼引起

本节对典型的合约漏洞进行总结

并详细介绍

其原理

可靠

2.3

整数溢出

造成整数溢出的主要原因是由智能合约的编

程语言

Solidity

的整数类型导致的

。在以太坊虚拟

机中整数是无符号

固定大小的数据类型

,因此整

2.1

重入漏洞

重入漏洞是智能合约的典型漏洞之一

引发了

型变量在以太坊虚拟机中是具有一定的范围的

果超过了这个范围就会出现错误

导致整数上溢或

下溢

The

DAO

事件

重入攻击发生在转账操作,

攻击借

助于

fallback

函数的特性和足够的

gas

漏洞合约首

先对用户进行了转账,

之后才从用户余额中减去金

由于

Solidity

语言的特性

转账操会调用

fallback

针对整数溢出进行说明

一个

uint8

类型的变量

只能存储的范围是

0

255

如果将

255

这个数字

存储在一个

uint8

类型中

使其进行加一操作

数字

最终会变成

0

这就是整数上溢

整数下溢与上溢

的原理类似

原理如图

2

所示

函数

攻击者对

fallback

函数进行修改

再次调用漏

洞合约的转账操作

此时合约未将余额从用户地址

中减去

gas

耗尽之前

循环转账将不断发生

针对重入漏洞进行说明

当攻击者调用漏洞合

约的转账函数

漏洞合约将会向攻击者进行转账操

进而触发攻击合约的

fallback

函数中的恶意代码

11

1

1

11

1

1

加一

击 者

fallback

的转账函数

将会使漏洞合约重复转账

对其造成

巨大的经济损失

预防重入漏洞可以使用限制

gas

数量的

send

函数或

transfer

函数代替

call

函数进行

0000

0

0

00

最终结果

0000

0

00

0

转账

对用户余额的改变在转账之前进行

原理如

1

所示

2

整数溢出原理

2.4

依赖漏洞

tx

.

origin

Solidity

智能合约中的全局变量

通过

回溯整个调用栈并返回原始发送者的账户地址

使

来检测合约调用者可能会使合约变得脆

。采用

进行授权

授权地址将会被存储

tx

.

origin

对方可以使用

fallback

函数调用合约并

1

重入漏洞原理

获得授权

msg

.

sender

是当前发生调用的账户或合

信息技术与网络安全

2021

年第

40

卷第

5

投稿网址

:

www

.

pcachina

.

com

3

ITNS

主题专栏

区块链安全技术研究

Research

on

Blockchain

Security

Technology

约地址

©

在智能合约授权时应尽量使用

msg

.

sender

代替

tx.

origin

o

利用

tx

.

origin

攻击需要提前部署攻击者合约

地址最后的两个零给抹去

字节码就会变成

67

虚拟机会自动在末尾进行补零

补零后的转账金

额为

:

通过钓鱼等手段使漏洞合约向攻击者合约转账

00000000

00000100

显然转账金额比原来扩大了

256

到调用攻击者的

fallback

函数和获取

值的

目的

由于

tx

.

origin

指向最初发起交易的地址

fallback

函数调用漏洞合约中以

作为授

2.6

访问控制

智能合约中

如果没有标明函数的可见性

就不

权的转账函数

授权会获得通过

攻击者因此可以

发起恶意转账操作

原理如图

3

所示

能做到充足的权限检查

这就表明攻击者可以访问

到不该访问的函数和变量

并且可以进行修改

Solidity

编程语言为例

Solidity

中对函数有

4

种可见性修饰分别为

public

#

internal

#

private

#

external

如果用

Solidity

来编写智能合约时没有指定可见性

修饰符

那么函数默认的可见性为

public

则转账等

重要函数就缺少访问控制

攻击者就可以从合约账

户中提取以太币

因此会产生访问控制不当的漏

造成用户的损失

3

安全分析工具

3

依赖漏洞原理

智能漏洞引发的安全事件造成巨大的损失

多工具被提出用于分析合约漏洞

LUU

L

L10M

等较早

2.5

短地址攻击

短地址攻击主要出现在基于

ERC20

类型的代

币合约中

EVM

层面中

十六进制的字节码构成

关注合约安全提出了

Oyente

基于

Oyente

些方法

被提出

TORRES

C

F

[11]

Oyente

的基础上关注

整数相关的漏洞

:

TSANKOV

P

[12]

等人提出了一种静

了交易消息的输入。

该字节码主要由三个部分组

分别为方法名哈希值

交易目标地址和转账金

态分析框架

Slither

FEIST

J

[13]

等人提出了自动化的

所占字节分别为

4

个字节

#

32

个字节和

32

个字节

©

安全分析工具

Securify

KALRA

S

等人为了验证合

短地址的攻击是指攻击者首先通过构造末尾

为零的地址进行合约调用

然后在调用参数中故意

将地址末尾的零舍去

利用虚拟机在读取合约调用

约的公平性和正确性提出了

Zeus

TIKHOMIROV

S

[14]

提出

SmartCheck

。本节对这些安全分析工具进行了

介绍

输入时

对长度不符合要求的字段自动进行末尾补

3.1

Oyente

Oyente

是基于符号执行进行漏洞检测工具

智能合约的字节码和以太网全局状态作为输入

合约存在的安全问题和有问题的符号路径作为输

零的操作

从而造成参数的移位扩大

针对短地址攻击进行说明

假设一段

68

个字节

的字节码为

L

:

a8016bcd235deb8d6b9fc

d5b6d4e576c4db3f7d2e3f5cd

包括

4

个核心组件:

控制流生成器

探索器

析器

#

验证器

控制流生成器生成骨架控制流图

000001

其中

4

字节函数签名

:

a8016bcd

交易目标地址

索器会通过添加边来完善控制流图

分析器以探索

器输出的符号路径为基础

收集表现出不同以太流

的路径用以漏洞分析

验证器主要作用是消除漏洞

检测可能发生的误报

235deb8d6b9fcd5b6d4e

576c4db3f7d2e3f5cda00

转账金额

:

Oyente

是较早针对智能合约漏洞提出的检测工

能够检测严重的智能合约错误

但是仍然存在

00000000

00000001

交易目标地址最后的两个数字为零

攻击者将

缺点

Oyente

会出现假阳性

不能为智能合约提供

完全的保护

在识别合约自杀和滥用发送源等方面

投稿网址

:

www

.

pcachina

.

com

信息技术与网络安全》

2021

年第

40

卷第

5

Research

on

Blockchain

Security

Technology

ITNS

主题专栏

区块链安全技术研究

也是不成功的

无法完全验证

只能依赖用户来进行测试

3.2

Secruify

Secruify

提岀了符合模式和违反模式

通过这两

种模式来反映智能合约的安全属性

该工具首先对

3.5

SmailCheck

SmartCheck

是一种可扩展的静态分析工具

工具首先在

Solidity

源代码执行词法和句法分析

将合约代码转变为

XML

形式的中间表示

EVM

字节码进行反编译

随后

Securify

分析智能合

约以推断语义事实

其中包括数据和控制流的依赖

关系

因为它们控制着合约的所有行为

在获得语

义事实之后

,

Securify

给岀符合性和违反性安全模

,

得岀安全分析结果

Secruify

所有模式都是用特

SmartCheck

SmartCheck

码的行号也存储进

XML

°

利用

Xpath

进行漏洞的检

,

SmartCheck

Xpath

匹配支持所有元素

,

因而不

定于该领域的语言

会遗漏

Solidity

特有的元素

相比于

Oyente

,

Securify

分析了所有的合约行为

,

从而避免了不必要的错误否定

!

然而

,

Secruify

也存

SmartCheck

有其局限性

,

Xpath

无法很好表达过

于复杂的规则

对复杂漏洞的检测容易导致误报的

产生

更侧重于检测简单漏洞

在一些问题

首先它不能识别整数溢岀

其次它没

有提供正式的语义或可靠性证明

因此会导致一些

4

分析与比较

智能合约安全分析工具是智能合约安全方面

潜在的安全问题存在

3.3

Slither

Slither

是一种静态分析框架

其输入为智能合

约经过编译后得到的

Solidity

抽象语法树。

首先

的重要研究领域

安全分析工具采用的方法主要有

静态分析

符号执行

形式化验证等方法

,

本节对静

态分析

符号执行

16

形式化验证口这三种方法进

Slither

获得合约继承图

控制流图和表达式列表

°

其次

,

Slither

将合约的代码转换为

SlithIR

在代码分

行了

介绍

Zeus

Slither

Oyente

Securify

SmartCheck

进行了比较

对每个安全分析工具适用的漏洞进行

了总结

并对安全分析工具所面临的问题进行了简

析阶段

,

Slither

进行预先定义的分析,

包括变量依赖

变量的读写和函数的权限控制

最后

,

Slither

可以

将处理过的信息输入给漏洞检测等第三方工具

相比于

Secruify

,

Slither

提高了准确性

,

缩短了平

均执行时间

,

提高了鲁棒性

然而由于

Slither

缺乏

形式语义

限制了它执行更详细的安全分析能力

要的分析

4.1

静态分析

静态分析可以在不执行智能合约的情况下

过对合约源代码或编译产生的中间语言的反汇编

进行分析

,

从而发现合约中的漏洞

静态分析一般

包括几个阶段。

首先

静态分析需要构建中间表示

Slither

的中间表示语言

SlithIR

过于高级

,

无法准确

反映

gas

计算等低级信息

°

(IR)

其次,利用控制流分析

污染分析等技术来丰

IR

的信息

最后

利用

IR

构建漏洞的分析

3.4

Zeus

Zeus

是验证智能合约正确性和公平性的形式

化验证工具

Zeus

首先将

Solidity

源代码和借助策

略生成器构建的基于

XACML

风格模板的验证规

则作为输入

其次

Zeus

从验证规则中提取断言

Slither

SmartCheck

Zeus

也借鉴了静态分析方法。

其中

Slither

Solidity

源代

码转为

SlithIR

SmartCheck

将合约代码转为

XML

式的中间表示

Zeus

将插入断言的

Solidity

代码转为

根据验证规则将断言插入合约代码正确的位置

LLVM

形式的中间语言

利用源代码翻译器将嵌入断言语句的合约代码转

LLVM

中间语言表示

最后利用已有的验证工具

4.2

符号执行

符号执行原理是将外部输入抽象化为符号值

,

将智能合约中的程序抽象为执行树

然后根据外部

SeaHorn

,

进行形式化验证

Zeus

Solidity

代码转为

LLVM

中间语言

因此

可以调用已有的工具作为验证器

但缺点是源代码

翻译器不可能准确表达合约代码的所有语义

输入值和程序的语义

进行遍历执行树

符号执行

的主要思想是在程序执行过程中将不确定的输入

转化为符号值

推动程序的执行

与静态分析相比

符号执行对程序的分析更加

Oyente

相比

Zeus

减少了误报率并使验证时间缩短

了一个数量级

Zeus

在涉及数学方程属性方面

全面和准确

Oyente

属于符号执行工具,

Oyente

中的

信息技术与网络安全

2021

年第

40

卷第

5

稿网址

www

.

pcachina

.

com

5

ITNS

主题专栏

区块链安全技术研究

Research

on

Blockchain

Security

Technology

控制流生成器会为智能合约建立控制流图

探索器

对智能合约进行符号验证

时对常见漏洞进行了介绍

并对当前主流的安全分

析工具进行了概括

4.3

形式化验证

形式化验证用于验证程序和代码的逻辑

通过

对程序用逻辑或者描述性语言进行描述

然后进行

参考文献

[1]

SZABO

N

.

Formalizing

and

securing

relationships

on

public

networks

[J].

First

Monday

1997

2(9).

[2]

NAKAMOTO

S

.

Bitcoin

:

a

peer-to-peer

electronic

cash

system

[R

].

Manubot

2019.

数学推理与证明

确保程序能按照规范进行工作

Secruify

Zeus

属于形式化验证工具

Secruify

体现形式化验证的是通过用

Datalog

指定的推理规

则导岀语义事实

然后对语义事实进行检测

Zeus

[3]

EYAL

hain

technology

:

transforming

libertarian

cryptocurrency

dreams

to

finance

and

banking

realities[J].

Computer

2017

50(9)

:

38-49.

是首先用中间语言翻译

Solidity

代码

并在翻译过的

代码上运用特定语言编写的验证规则

最后借助于

[4]

MENGELKAMP

E

NOTHEISEN

B

BEER

C

et

al.

SeaHorn

来进行形式化验证

A

blockchain

-

based

smart

grid

:

towards

sustainable

4.4

工具比较

Slither

Oyente

Secruify

SmartCheck

GitHub

布了源代码

在这几个工具中只有

Slither

可以检

测访问控制漏洞

都不支持短地址攻击漏洞。

大多

local

energy

markets

[J

]

.

Computer

Science

-

Research

and

Development

2018

33(1)

:

207-214.

[5]

CHRISTIDIS

K

DEVETSIKIOTIS

hains

and

smart

contracts

for

the

Internet

of

Things

[

J

]

.

IEEE

Access

2016

4

:

2292-2303.

[6]

SHIER

C

MEHAR

M

I

GIAMBATTISTA

A

et

al.

工具都对重入漏洞

tx.

origin

漏洞

Delegatecall

漏洞

进行了检测

"

本文介绍的常见漏洞中

Slither

Security

Understanding

a

revolutionary

and

flawed

grand

exper

­

不支持整数溢岀漏洞

Zues

SmartCheck

不支持

Dele

­

iment

in

blockchain

:

the

DAO

attack[J].Social

Science

Electronic

Publishing

2017

.

gatecall

漏洞

,

Oyente

不支持

漏洞

1

为部

分工具对常见漏洞的支持比较

[

7

]

BUTERIN

V

.

A

next

-

generation

smart

contract

and

decentralized

application

platform[J]

.

White

Paper

1

部分工具对常见漏洞的支持比较

重入漏洞

整数溢出

Delegatecall

2014

3(37).

[8]

DESTEFANIS

G

MARCHESI

M

ORTU

M

et

al.

Zeus

Slither

SmartCheck

Securify

Smart

contracts

vulnerabilities

:

a

call

for

blockchain

software

engineering

[

C

]

.

2018

International

Workshop

on

Blockchain

Oriented

Software

Engineering(IWBOSE).

IEEE

2018.

[9]

MENSE

A

FLATSCHER

ty

vulnerabilities

in

txorigin

依赖

短地址攻击

访问控制

ethereum

smart

contracts

[

C

]

.

Proceedings

of

the

20th

当前漏洞分析工具对常见漏洞的支持不够完

并且和手动审查相比

漏报率和误报率偏高

International

Conference

on

Information

Integration

and

Web

-

Based

Applications

&

Services

2018.

普遍岀现假阳性的情况

分析工具的准确率较低

,

[10]

LUU

L

CHU

D

H

OLICKEL

H

et

smart

同时工具的可扩展性较差

无法有效防御新岀现的

contracts

smarter[C]

.

Proceedings

of

the

2016

ACM

漏洞

今后对漏洞分析工具的研究主要集中于提高

SIGSAC

Conference

on

Computer

and

Communications

Security

2016

.

准确率

降低漏报率和误报率

5

结论

智能合约提供了优于传统合约的安全方法

[11]

TORRES

C

F

SCH?TTE

J

STATE

R

.

Osiris

:

hunting

for

integer

bugs

in

ethereum

smart

contracts

[

C

]

.

Pro

-

ceedings

of

the

34th

Annual

Computer

Security

减少交易成本

但是随着智能合约的快速发展

Applications

Conference

2018

.

能合约安全问题越来越受到关注

各种安全分析工

具被提岀

。本文对近年来由于合约漏洞造成的安全

[12]

TSANKOV

P

DAN

A

DRACHSLER-COHEN

D

et

al.

事件进行了列举

,对合约漏洞进行了基本分类

(

下转第

19

)

6

稿网址

:

www

.

pcachina

.

com

信息技术与网络安全

2021

年第

40

卷第

5

Research

on

Blockchain

Security

Technology

ITNS

主题专栏

区块链安全技术研究

约验证

[J].

应用科学学报

,

2021

,

39(1)

:

1-16.

2000

,

2(4)

:

410-425.

[21]

NEHA

I

X

"

PIRIOU

P

Y

,

DAUMAS

-checking

[24]

LARSEN

K

G

,

PETTERSSON

P

,

YI

in

a

of

smart

contracts

[C

].

The

2018

IEEE

International

Conference

on

Blockchain

.

IEEE

,

2018.

nutshell

[J].

International

Journal

on

Software

Tools

for

Technology

Transfer

,

1997

,

1(1-2)

:

134

-

152.

[22]

GERARD

J

.

Holzmann

,

the

model

checker

SPIN

[C].

(

收稿日期

2021-04-09)

IEEE

Transactions

on

Software

Engineering

,

1997.

[23]

CIMATTI

A

,

CLARKE

E

,

GIUNCHIGLIA

F

,

et

al.

作者简介:

朱雪阳

(1971-)

,

博士

副研究员

主要研究方

NuSMV

:

a

new

symbolic

model

checker

[J].

Interna

-

tional

Journal

on

Software

Tools

for

Technology

Transfer

,

形式化方法

嵌入式系统设计

&

(

上接第

6

)

Securify

:

practical

security

analysis

of

smart

contracts[C].

Proceedings

of

the

2018

ACM

SIGSAC

Conference

on

[16]

BALDONI

R

,

COPPA

E

,

D

'

ELIA

D

C

,

et

al.A

survey

of

symbolic

execution

techniques

[J].

ACM

Computing

Surveys(CSUR)

,

2018

,

51(3)

:

1-39.

[17]

MURRAY

Y

,

ANISI

D

of

formal

verification

Computer

and

Communications

Security

,

2018.

[13]

FEIST

J

,

GRIECO

G

,

GROCE

A.

Slither

:

a

static

methods

for

smart

contracts

on

blockchain

[

C

]

.

2019

10th

IFIP

International

Conference

on

New

Technolo

-

gies

,

Mobility

and

Security

(

NTMS

).

IEEE

,

2019.

analysis

framework

for

smart

contracts[C].2019

IEEE/

ACM

2nd

International

Workshop

on

Emerging

Trends

(

收稿日期

2021-04-16)

in

Software

Engineering

for

Blockchain

(

WETSEB)

.

作者简介:

赵辉

(1977-)

,

博士

副教授

主要研究方向

工智能

高性能计算

$

IEEE

,

2019.

[14]

KALRA

S

,

GOEL

S

,

DHAWAN

M

,

et

:

analyzing

safety

of

smart

contracts

[

C

]

.

NDSS

,

2018

.

李星

(1998-)

,

,

硕士研究生

,

主要研究方向

能合约安全验证

$

谭嘉诚

(1997-

)

,

,硕士研究生

,

主要研究方向

[15]

GURFINKEL

A

,

KAHSAI

T

,

KOMURAVELLI

A

,

et

al.

The

SeaHorn

verification

framework

[C].

International

Conference

on

Computer

Aided

Verification

,

2015

.

智能合约安全验证

$

信息技术与网络安全

2021

年第

40

卷第

5

投稿网址

:

19

本文标签: 合约智能进行漏洞分析