TMT观察网_独特视角观察TMT行业

Soildity安全之未檢查低級調(diào)用的返回值區(qū)塊鏈

曲速未來安全區(qū) 2018-08-14 23:06
分享到:
導讀

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

區(qū)塊鏈安全公司W(wǎng)F曲速未來 安全開課:

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

未檢查低級調(diào)用的返回值

其中的Solidity的更深層次的特點是低級別的功能函數(shù)call(),callcode(),delegatecall()和send()。它們在計算錯誤時的行為與其他的Solidity函數(shù)完全不同,因為它們不會繼續(xù)向前同時不會導致當前執(zhí)行的完全回滾。相反,它們將返回將Boolean 設(shè)置為false,代碼將繼續(xù)運行。如果未檢查此類低級調(diào)用的返回值,則可能導致打開失敗和其他不需要的結(jié)果。發(fā)送可能會失敗!

代碼案例

上面的代碼是一個調(diào)用send()忘記檢查返回值時可能出錯的示例。如果將ETH發(fā)送到不接受它們的智能合約(例如,因為它沒有應(yīng)付回退功的能),則EVM將用其替換其返回值false。由于在我們的示例中未檢查返回值,因此函數(shù)對合約狀態(tài)的更改將不會被還原,并且etherLeft變量將最終跟蹤不正確的值:

相關(guān)事件

King of the Ether“紛爭時代”

KotET游戲中,玩家需要發(fā)送給合約一些ETH,從而獲得“王位”。只要拿到了王位,玩家就會被加到皇庭,并且永遠地被記錄在區(qū)塊鏈上。更重要地是,后來的國王有權(quán)去獲得新國王的ETH。隨著國王數(shù)量增多,成為國王的代價也會越來越貴。如果14天過去了,還沒有新的繼承者,那么王位就會重置,并且游戲也全部重新開始。

KotET合約的正常運作(基本上)是這樣的:

1.假設(shè)王位的當前價格是10 ETH。

2.你想成為國王/王后,所以你向合約發(fā)送10 ETH。

3.合約將您的10 ETH(少于1%傭金)發(fā)送給之前的國王/王后,作為“賠償金”。

4.合約使你成為以太王座的新王/王后。

5.在這種情況下,寶座的新索賠價格上漲50%,達到15 ETH。

6.如果一個篡位者愿意支付15ETH,他們會讓你成為國王/王后,并且你會收到他們的15ETH作為你的“賠償金”。

基于以太坊的交易,例如向合約發(fā)送付款或簽訂合約,都要花費“gas”。消耗的“gas”量取決于您調(diào)用的合約的操作類型(以及合約數(shù)量)。這種“gas”是支付給礦工的小額支付,有助于提供Etherum網(wǎng)絡(luò)和區(qū)塊鏈存儲。gas由“外部擁有的賬戶”支付,該賬戶盯著交易。在進行交易時,交易需要包含一點gas(未使用的gas將被退還)。

那什么時候會出錯?

KotET游戲在所有情況下都表現(xiàn)正確,除了它向“合約賬戶”發(fā)送付款時,例如以太坊Mist“基于合約的錢包”為例。

當KotET的合約向“合約賬戶”發(fā)送付款時,它僅包含了少量的gas。對于以太坊Mist“基于合約的錢包”合約而言,這并不足以成功處理付款 ,相反,付款失敗了。

當錢包合約未能處理KotET合約發(fā)送給它的付款時,支付的ETH被退還給KotET合約。KotET并不知道付款失敗并繼續(xù)處理,盡管補償金尚未發(fā)送給前任君主,但仍然會通知已到賬。

觀點:

開發(fā)人員在編寫合約時要考慮到這個問題,同時可以考慮用通throw函數(shù)將全額退款發(fā)送回,而不是使用send/call。同時在合約上線前要進行嚴格的審計,保證安全。

合約 發(fā)送 ETH 返回 gas
分享到:

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


專題報道

主站蜘蛛池模板: 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 成都珞石机械 - 模温机、油温机、油加热器生产厂家 | 818手游网_提供当下热门APP手游_最新手机游戏下载 | 魔方网-培训咨询服务平台 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 宿松新闻网 宿松网|宿松在线|宿松门户|安徽宿松(直管县)|宿松新闻综合网站|宿松官方新闻发布 | 北京中创汇安科贸有限公司| 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 体坛网_体坛+_体坛周报新闻客户端 | 筛分机|振动筛分机|气流筛分机|筛分机厂家-新乡市大汉振动机械有限公司 | 蔡司三坐标-影像测量机-3D扫描仪-蔡司显微镜-扫描电镜-工业CT-ZEISS授权代理商三本工业测量 | 探鸣起名网-品牌起名-英文商标起名-公司命名-企业取名包满意 | 超细粉碎机|超微气流磨|气流分级机|粉体改性设备|超微粉碎设备-山东埃尔派粉碎机厂家 | 披萨石_披萨盘_电器家电隔热绵加工定制_佛山市南海区西樵南方综合保温材料厂 | 无负压供水设备,消防稳压供水设备-淄博创辉供水设备有限公司 | 塑料异型材_PVC异型材_封边条生产厂家_PC灯罩_防撞扶手_医院扶手价格_东莞市怡美塑胶制品有限公司 | 机械加工_绞车配件_立式离心机_减速机-洛阳三永机械厂 | 钢格栅板_钢格板网_格栅板-做专业的热镀锌钢格栅板厂家-安平县迎瑞丝网制造有限公司 | 智能风向风速仪,风速告警仪,数字温湿仪,综合气象仪(气象五要素)-上海风云气象仪器有限公司 | 冰晶石|碱性嫩黄闪蒸干燥机-有机垃圾烘干设备-草酸钙盘式干燥机-常州市宝康干燥 | 房屋质量检测-厂房抗震鉴定-玻璃幕墙检测-房屋安全鉴定机构 | 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | 臭氧灭菌箱-油桶加热箱-原料桶加热融化烘箱-南京腾阳干燥设备厂 臭氧发生器_臭氧消毒机 - 【同林品牌 实力厂家】 | CE认证_FCC认证_CCC认证_MFI认证_UN38.3认证-微测检测 CNAS实验室 | 英思科GTD-3000EX(美国英思科气体检测仪MX4MX6)百科-北京嘉华众信科技有限公司 | 阻燃剂-氢氧化镁-氢氧化铝-沥青阻燃剂-合肥皖燃新材料 | PVC快速门-硬质快速门-洁净室快速门品牌厂家-苏州西朗门业 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 特种阀门-调节阀门-高温熔盐阀-镍合金截止阀-钛阀门-高温阀门-高性能蝶阀-蒙乃尔合金阀门-福建捷斯特阀门制造有限公司 | 赛尔特智能移动阳光房-阳光房厂家-赛尔特建筑科技(广东)有限公司 | 膜结构_ETFE膜结构_膜结构厂家_膜结构设计-深圳市烨兴智能空间技术有限公司 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-北京罗伦过滤技术集团有限公司 | 英语词典_成语词典_日语词典_法语词典_在线词典网 | 刘秘书_你身边专业的工作范文写作小秘书| 西安烟道厂家_排气道厂家_包立管厂家「陕西西安」推荐西安天宇烟道 | 沧州友城管业有限公司-内外涂塑钢管-大口径螺旋钢管-涂塑螺旋管-保温钢管生产厂家 | 单机除尘器 骨架-脉冲除尘器设备生产厂家-润天环保设备 | 北京森语科技有限公司-模型制作专家-展览展示-沙盘模型设计制作-多媒体模型软硬件开发-三维地理信息交互沙盘 | 风信子发稿-专注为企业提供全球新闻稿发布服务 | 杭州营业执照代办-公司变更价格-许可证办理流程_杭州福道财务管理咨询有限公司 |