风险提示:理性看待区块链,提高风险意识!
以太坊再现安全漏洞—太阳风暴“solar-storm”,或殃及全网智能合约
首页 > 币界资讯 > 竞争币新闻 2016-06-21 14:27:00

以太坊智能合约脚本语言Solidity又现一处漏洞,它不仅会对DAO产生影响,还会对整个以太坊生态系统产生影响。

以太坊中的合约通常会相互进行call调用。社区鼓励这种行为是希望最终实现智能合约间的“互补”。

当以太坊合约进行相互调用时,它们自身的程序控制和状态功能会丢失。这个漏洞是由Augur核心开发人员Joey Krug 和Gnosis联合创始人Martin Köppelmann发现的,后来由康奈尔大学博士生Philip Daian和研究者Emin Gun Sirer共同发布。

以太坊漏洞

这个漏洞与DAO攻击者利用的可重入性(reentrancy)(注:可重入与递归概念相似,关于DAO攻击漏洞,官方用词是递归调用漏洞,这里的可重入性是作者个人观点)的漏洞不同。暂且称之为太阳风暴(solar-storm)吧(因为它能切断以太坊智能合约间的沟通,就像太阳风暴能切断地球的通讯设备一样)。Daian在发布这个漏洞时并未给出确切的名字,不过他挺喜欢“太阳风暴”的。

太阳风暴 VS 可重入性

可重入性(reentrancy)漏洞发生的前提:

  1. 1. 合约A,函数A call调用合约B
  2. 2. 合约B call调用合约A,函数A

Daian认为,合约间仅一次简单的调用也会暴露漏洞。

太阳风暴(solar-storm)漏洞发生的前提

  1. 1. 合约A call调用任意外部合约
  2. 2. 合约A状态经外部函数修改(这是经常会发生的情况)

因此太阳风暴(solar-storm)漏洞发生的例子有:

  1. 1. 合约A,函数A call调用合约B
  2. 2. 合约A的另一个函数C与函数A共享状态
  3. 3. 合约B call调用合约A,函数C

为了避免暴露这种漏洞,我们有两种选择:

(a)禁止合约进行外部调用
(b)禁止使用外部调用函数与发起外部调用的函数共享状态

在实际用例中完全禁止b是不可能的,因此我们必须不再进行合约外部调用。如果不得已必须进行外部调用,可以在编程完成之后进行,一旦外部调用开始执行,合约状态不要再做更改。

太阳风暴(solar-storm)漏洞比可重入性(reentrancy)漏洞涉及面更广。

这意味着什么呢?

总结

太阳风暴(solar-storm)漏洞不单会对DAO合约产生影响,还会对以太坊的所有合约产生影响。这是以太坊编程语言Solidity的漏洞。

已经发布的以太坊合约也可能存在漏洞。开发者需测试其合约的性能,采取相应措施(转移资金、发布新合约等)。

开发者对其即将发布的合约的外部调用要相当小心。尽量避免外部调用,直到这一漏洞彻底修复。

下一步该怎么做?

重新检查所有已发布的智能合约。用Solidity编译器检测漏洞。这一漏洞目前尚未广而告之,因此应编写Solidity文档向其他人发出通知。

上一篇: 比特币服务商Purse.io CTO:以太坊应“以比特币发展史为鉴”
下一篇: 以太坊创始人Vitalik:DAO漏洞紧急软分叉、硬分叉预案
推荐专栏
web3首席知识博主
一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
爱Web 3,爱生活,爱科技,爱炒币的老韭菜
热门币种
更多
币种
价格
24H涨跌幅
BTC比特币
¥267,580.79
37,491.53 USDT
+5.36%
ETH以太坊
¥14,664.95
2,054.75 USDT
+3.94%
USDT泰达币
¥7.24
1.01 USDT
+0.18%
BNB币安币
¥1,802.40
252.54 USDT
+2.91%
XRP瑞波币
¥4.65
0.65120 USDT
+2.55%
USDC
¥7.14
0.99980 USDT
-0.02%
SOLSolana
¥468.73
65.68 USDT
+15.19%
OKBOK币
¥426.75
59.79 USDT
+2.36%
ADA艾达币
¥2.73
0.38270 USDT
+7.32%
DOGE狗狗币
¥0.54690
0.07664 USDT
+5.21%
热搜币种
更多
币种
价格
24H涨跌幅
dYdX
¥29.59
4.0749 USDT
+5.77%
Filecoin
¥38.55
5.3092 USDT
+9.52%
FTX Token
¥26.56
3.6583 USDT
-0.05%
PancakeSwap
¥19.13
2.6352 USDT
+4%
Solana
¥476.84
65.6763 USDT
+15.19%
奇亚
¥198.57
27.3499 USDT
+3.54%
Yield Guild Games
¥3.08
0.4238 USDT
+3.44%
Conflux
¥1.25
0.1716 USDT
+7.12%
火必积分
¥21.92
3.0188 USDT
+4.59%
Terra Classic
¥0.00
8.293E-5 USDT
+3.33%
阿童木
¥72.93
10.0449 USDT
+11.23%
Avalanche
¥163.70
22.5467 USDT
+26.85%
最新快讯
更多
SushiSwap“部署SUSHI新代币经济学”的提案开启民意调查投票
2023-11-16 12:36:38
Polytrade与OndoFinance、OpenEden建立合作伙伴关系
2023-11-16 12:25:46
Polytrade与OndoFinance等建立合作伙伴关系
2023-11-16 12:25:46
Arbitrum链上提案拟将STIP激励总预算增至7140万枚ARB
2023-11-16 12:19:30
币安与Gulf合资企业GulfBinance将于明年在泰国向公众开放服务
2023-11-16 12:10:35
Arbitrum新提案拟将STIP激励总预算增加2140万枚ARB
2023-11-16 12:08:39
币安合约将于12月15日停用WebSocket旧域名
2023-11-16 12:05:45
下载币界网APP