一方面,由于區塊鏈具有不可篡改性,因此智能合約是無法更新的,
當我們將智能合約與傳統軟體相比時我們會發現,如果軟體中存在漏洞,我們可以修復該軟體并發布新版本,而智能合約的漏洞卻很難修復,只能通過硬分叉來實作,考慮到智能合約平臺上通常附加著大規模的區塊鏈經濟,因此智能合約無法更新是一個很大的發展限制,截至2018年6月17日,僅以太坊的市值就約為500億美元,
另一方面,智能合約在支付計算成本上的燃料機制(gas mechanism)上也區別于傳統編程語言,
因此,在撰寫智能合約時,開發者必須確保其中的每個功能都能不受燃料限制按預期運行,不恰當的資源分析可能會導致智能合約代碼的一部分因燃料限制而無法執行,從而出現資金卡住的情況,而在傳統的軟體系統中卻不存在這種約束,
因此,確保部署在區塊鏈上的智能合約是無缺陷且安全的尤為重要,智能合約的安全性特別重要,因為它們是運行在拜占庭式的環境中的,每一個合約參與方都可能是拜占庭的即惡意的,例如,一個參與合約的惡意用戶可能想要盜取資金;一個礦工可能在一個區塊中刻意排序一些交易,以產生一些意想不到的結果;或者最糟糕的情況是用戶在呼叫合約時引發呼叫其他合約(比如呼叫一個庫合約),而后者卻是由攻擊者控制的,因此產生惡意行為等,
作者:Zilliqa愛好者中文社區
鏈接:https://www.jianshu.com/p/5379e44280f5
來源:簡書
著作權歸作者所有,商業轉載請聯系作者獲得授權,非商業轉載請注明出處,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/293014.html
標籤:區塊鏈
