智能合约重构社会契约(6)赛迪智能合约安全标准
生活随笔
收集整理的這篇文章主要介紹了
智能合约重构社会契约(6)赛迪智能合约安全标准
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. 安全實(shí)施框架
根據(jù)運(yùn)行機(jī)制可分為運(yùn)行與規(guī)劃、合約創(chuàng)建、安全審計(jì)、合約觸發(fā)、合約運(yùn)行、合約廢止六個階段。
2. 編譯部署安全要求
- 區(qū)塊鏈系統(tǒng)應(yīng)校驗(yàn)智能合約的編譯實(shí)體、寫入策略和簽名內(nèi)容。
- 區(qū)塊鏈系統(tǒng)應(yīng)將智能合約內(nèi)容的哈希值寫到區(qū)塊鏈賬本中。
- 區(qū)塊鏈系統(tǒng)的共識機(jī)制安全可靠,才能保證智能合約安全。(必須使用拜占庭容錯算法或其優(yōu)化算法,并通過第三方驗(yàn)證)
3. 智能合約觸發(fā)安全要求
3.1 直接接口調(diào)用安全要求
- 接口名稱應(yīng)明確接口功能,應(yīng)具有可讀性和可維護(hù)性;
- 直接接口調(diào)用應(yīng)執(zhí)行規(guī)定合約調(diào)用流程。
3.2 合約間調(diào)用安全要求
- 應(yīng)豐富智能合約的內(nèi)置方法和原生庫實(shí)現(xiàn)不官使用合你間調(diào)用,避免合約間調(diào)用可能存在的不確定因素安全風(fēng)險;
- 宜減少外部合約調(diào)用防止不受信任的外部合約引發(fā)的風(fēng)險和錯誤出現(xiàn)
3.3 預(yù)言機(jī)調(diào)用安全要求
- 接口名稱、輸入?yún)?shù)、返回數(shù)據(jù)應(yīng)符合 API 接口規(guī)范;
- 接口描述文件應(yīng)為預(yù)言機(jī)提供的結(jié)構(gòu)化描述語言;
- 接口協(xié)議應(yīng)包含安全傳輸協(xié)議;
- 預(yù)言機(jī)本身應(yīng)通過第三方的安全性和可靠性評估;
- 預(yù)言機(jī)的安全和可靠性評估應(yīng)為定期進(jìn)行的持續(xù)行為;
- 當(dāng)智能合約發(fā)生錯誤,應(yīng)考慮預(yù)言機(jī)是否提供了錯誤數(shù)據(jù),如果發(fā)現(xiàn)預(yù)言機(jī)故意提供錯誤教據(jù),應(yīng)及時更正或者更換預(yù)言機(jī);
- 預(yù)言機(jī)提供數(shù)據(jù)時,也應(yīng)提供數(shù)據(jù)可靠性指標(biāo)。
4. 智能合約運(yùn)行安全要求
- 應(yīng)提供運(yùn)行載體,如虛擬機(jī)、容器等,保證智能合約運(yùn)行環(huán)境與外隔離,調(diào)用智能合約不能修改區(qū)塊鏈系統(tǒng);
- 在運(yùn)行智能合約前,應(yīng)檢查該智能合約和鏈上智能合約的哈希值的一致性;
- 應(yīng)當(dāng)將智能合約代碼轉(zhuǎn)換成運(yùn)行環(huán)境可執(zhí)行的格式,保證合約在智能合約運(yùn)行時環(huán)境中的執(zhí)行結(jié)果具備事務(wù)一致性;
- 應(yīng)校驗(yàn)智能合約的實(shí)例化實(shí)體、通道寫入策略和簽名;
- 宜將合約狀態(tài)作為合約賬戶的屬性、合約內(nèi)容的哈希值保存在區(qū)塊鏈網(wǎng)絡(luò)
- 對于與區(qū)塊鏈系統(tǒng)外部數(shù)據(jù)進(jìn)行交互的智能合約,外部數(shù)據(jù)必須先經(jīng)過驗(yàn)證存在區(qū)塊鏈上,然后再傳遞至智能合約;而智能合約必須先將數(shù)據(jù)寫在區(qū)塊鏈上,才能輸出到外面系統(tǒng)。嚴(yán)禁智能合約系統(tǒng)和外界直接對接,以維持區(qū)塊鏈溯源機(jī)制;
- 當(dāng)智能合約出現(xiàn)錯誤時,宜提供智能合約掛起或重啟恢復(fù)功能。
總結(jié)
以上是生活随笔為你收集整理的智能合约重构社会契约(6)赛迪智能合约安全标准的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hyperledger Fabric 核
- 下一篇: 区块链BaaS云服务(17)纸贵科技Z-