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
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
版权声明:本文标题:智能合约安全问题与研究现状 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1715780371a469881.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论