智能合約的安全性需要關(guān)注最先出現(xiàn)在己任區(qū)塊鏈。
]]>
智能合約原理
因此,智能合約的編寫者需要極為謹(jǐn)慎,避免編寫出有邏輯漏洞或是執(zhí)行動(dòng)作本身有不確定性的智能合約。不過,一些區(qū)塊鏈平臺(tái)引入了不少改進(jìn)機(jī)制,對執(zhí)行動(dòng)作上的不確定性進(jìn)行了消除,如超級賬本項(xiàng)目的Fabric子項(xiàng)目,即引入了先執(zhí)行、背書、驗(yàn)證,再排序?qū)懭胭~本的機(jī)制;以太坊項(xiàng)目也通過限制用戶只能通過其提供的確定性的語言(Ethereum Solidity)進(jìn)行智能合約的編寫,確保了其上運(yùn)行的智能合約在執(zhí)行動(dòng)作上的確定性。
2016年著名的The DAO事件,就是因?yàn)橹悄芎霞s漏洞導(dǎo)致大約幾千萬美元的直接損失。The DAO是當(dāng)時(shí)以太坊平臺(tái)最大的眾籌項(xiàng)目,上線不到一個(gè)月就籌集了超過1 000萬個(gè)以太幣,當(dāng)時(shí)價(jià)值一億多美元。但是該智能合約的轉(zhuǎn)賬函數(shù)存在漏洞,攻擊者利用該漏洞,盜取了360萬個(gè)以太幣。由于此事件影響過大,以太坊最后選擇進(jìn)行回滾硬分叉挽回?fù)p失。The DAO智能合約的具體內(nèi)容感興趣的讀者可以自行查閱(1)。但是我們并不能因此而否認(rèn)智能合約的價(jià)值,任何事物在發(fā)展初期必然因?yàn)椴煌晟贫嬖陲L(fēng)險(xiǎn),因噎廢食并不可取。
隨著智能合約的普及,智能合約的編寫必然會(huì)越來越嚴(yán)謹(jǐn)、規(guī)范,同時(shí),其開發(fā)門檻也會(huì)越來越低,對應(yīng)領(lǐng)域的專家也可參與到智能合約的開發(fā)工作中,智能合約必定能在更多的領(lǐng)域發(fā)揮越來越大的作用。隨著技術(shù)的發(fā)展和大家對智能合約安全的重視,從技術(shù)上可以對智能合約進(jìn)行靜態(tài)掃描,發(fā)現(xiàn)潛在問題反饋給智能合約開發(fā)人員,也可以通過智能合約形式化驗(yàn)證的方法全面地發(fā)現(xiàn)智能合約中存在的
智能合約的安全性需要關(guān)注最先出現(xiàn)在己任區(qū)塊鏈。
]]>