麻豆国内精品欧美在线-麻豆国内精品久久久久久-麻豆国产在线观看一区二区-麻豆国产在线观看免费-麻豆国产原创-麻豆国产一区二区在线观看

WF曲速未來:Solidity安全之默認(rèn)可見性(Visibility)區(qū)塊鏈

曲速未來安全區(qū) 2018-08-10 23:05
分享到:
導(dǎo)讀

WF曲速區(qū):Soildity作為編寫智能合約的語言,已經(jīng)被廣泛的應(yīng)用。但同時(shí),開發(fā)者和用戶也得到了慘痛的教訓(xùn),智能合約的安全問題層出不窮。因此,我們總結(jié)了一些常見的Solidity安全問題。前車之鑒,后車之師,希望后來者能有所警惕。

Soildity作為編寫智能合約的語言,已經(jīng)被廣泛的應(yīng)用。但同時(shí),開發(fā)者和用戶也得到了慘痛的教訓(xùn),智能合約的安全問題層出不窮。因此,我們總結(jié)了一些常見的Solidity安全問題。前車之鑒,后車之師,希望后來者能有所警惕。

默認(rèn)可見性(Visibility)

Solidity有兩種函數(shù)調(diào)用方式,一種是內(nèi)部調(diào)用,不會創(chuàng)建一個(gè)EVM調(diào)用(也叫做消息調(diào)用),另一種則是外部調(diào)用,會創(chuàng)建EVM調(diào)用(會發(fā)起消息調(diào)用)。其中的函數(shù)具有可見性說明符,它們會指定我們可以如何調(diào)用函數(shù)??梢娦詻Q定一個(gè)函數(shù)是否可以由用戶或其他派生契約在外部調(diào)用、只允許內(nèi)部調(diào)用或只允許外部調(diào)用。Solidity對函數(shù)和狀態(tài)變量提供了四種可見性。分別是external,public,internal,private。為允許用戶從外部調(diào)用函數(shù),其中函數(shù)默認(rèn)可見性默認(rèn)為public。而本文將介紹的是可見性說明符的不正確使用會導(dǎo)致智能合約中的一些資金流失的問題。

代碼分析

函數(shù)的可見性默認(rèn)是 public。因此,不指定任何可見性的函數(shù)就可以由用戶在外部調(diào)用。當(dāng)開發(fā)人員錯(cuò)誤地忽略應(yīng)該是私有的功能(或只能在合約本身內(nèi)調(diào)用)的可見性說明符時(shí),問題就出現(xiàn)了。

讓我們看一個(gè)簡單的例子。

這個(gè)簡單的合約被設(shè)計(jì)為充當(dāng)賞金猜測游戲的地址。要贏得該合約的余額,用戶必須生成一個(gè)以太坊地址,其最后 8 個(gè)十六進(jìn)制字符為0。一旦獲得,他們可以調(diào)用 WithdrawWinnings() 函數(shù)來獲得賞金。不幸的是,這些功能的可見性沒有得到指定。特別是,因?yàn)開sendWinnings() 函數(shù)的可見性是 public,任何地址都可以調(diào)用該函數(shù)來竊取賞金。

相關(guān)事件

我們昨天在前一篇介紹Delegatecall函數(shù)濫用問題中引用了Parity錢包被黑事件,默認(rèn)可見性也是攻擊者在這次事件中利用的漏洞之一。接下來我們詳細(xì)的分析攻擊者的利用過程:

先看看Parity錢包的合約,有兩個(gè),其一是庫合約,第二是錢包合約。

庫合約包含初始化錢包的代碼,如以下代碼片段所示

在合約中,initWallet() 與initMultiowned()兩個(gè)函數(shù)的可見性都默認(rèn)為 public 。錢包構(gòu)造函數(shù)會調(diào)用 initWallet() 函數(shù),并設(shè)置多簽名錢包的所有者,如 initMultiowned() 函數(shù)中所示。由于這些函數(shù)意外地設(shè)置為 public,攻擊者可以在部署的合約上調(diào)用這些功能,并將所有權(quán)重置為攻擊者地址。作為主人,襲擊者隨后取走錢包中所有的 Ether,損失高達(dá) 3100 萬美元。

區(qū)塊鏈安全公司W(wǎng)F曲速未來 觀點(diǎn):

指定合約中所有功能的可見性、即便這些函數(shù)的可見性本就有意設(shè)計(jì)成 public,這是一種很好的做法。最近版本的 Solidity 將在編譯過程中為沒有明確設(shè)置可見性的函數(shù)顯示警告,以鼓勵這種做法。所以人們在編寫智能合約時(shí)應(yīng)注意函數(shù)可見性說明符的正確使用。

函數(shù) 合約 調(diào)用 public 錢包
分享到:

1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會明確標(biāo)注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時(shí)務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。


專題報(bào)道

主站蜘蛛池模板: 1024视频色版在线网站 | 国产剧情麻豆刘玥视频 | 成人伊人青草久久综合网破解版 | 久久精品中文字幕 | 精品国产区一区二区三区在线观看 | 男人与雌性宠物交啪啪小说 | 奇米影视在线视频 | 日本ww视频 | 欧美特级午夜一区二区三区 | 国产伦精品一区二区三区女 | 欧美视频一级 | 国产黑丝一区 | 欧美伊人久久久久久久久影院 | 高清不卡一区 | 午夜久久免费视频 | 亚洲 色 欧美 爱 视频 日韩 | 星空无限传媒视频在线观看视频 | 91免费在线| 日韩大片免费观看 | 日本高清中文字幕一区二区三区 | 黄 色 大 片 网站 | 很黄的网站在线观看 | 草莓丝瓜芭乐樱桃榴莲色多黄 | h动态图男女啪啪27报 | 免费高清在线视频色yeye | 国产成人免费在线观看 | 跪在老师脚下吃丝袜脚 | 日韩精品视频美在线精品视频 | 日韩久久影院 | 日韩福利网 | 免费福利资源站在线视频 | 狠狠色综合久久婷婷 | 日韩 国产 欧美 精品 在线 | 国产欧美日韩精品在线 | 亚洲天堂.com | 精品视频免费在线观看 | 国内精品久久久久影院男同志 | 美女林柏欣21p人体之仓之梦 | 99久久精品国语对白 | 免费一区 | 睡男神的这件小事小说在线阅读 |