EOS合約權(quán)限 - 如何檢查 EOS 合約的安全性

開(kāi)源,并能夠驗(yàn)證開(kāi)源代碼與鏈上部署代碼一致

比如 EOS.win 的代碼就能夠在 EOSpark 上查到,并已被 EOSpark 驗(yàn)證與鏈上部署代碼一致
https://eospark.com/MainNet/contract/eosluckygame

慢霧科技也推出 EOS 合約驗(yàn)證平臺(tái),也可以做相應(yīng)的查詢和確認(rèn)
https://eos.slowmist.io

代碼安全性

EOS 代碼安全性審計(jì)需要比較專業(yè)的背景知識(shí),在合約層面一般的問(wèn)題包括數(shù)值溢出漏洞、代碼邏輯錯(cuò)誤等。

權(quán)限

合約賬戶的權(quán)限能夠控制對(duì)賬戶內(nèi)金額轉(zhuǎn)賬,以及對(duì)合約進(jìn)行升級(jí),是非常重要的安全環(huán)節(jié)。目前主要有三種方法對(duì)權(quán)限進(jìn)行限制。

方法一(低安全):多重簽名賬戶

通過(guò)EOS賬戶體系的Weight和Threshold控制賬戶權(quán)限,實(shí)現(xiàn)由多人共同管理一個(gè)賬戶。假設(shè)該賬戶owner權(quán)限由5個(gè)不同的公鑰控制,每個(gè)公鑰的Weight為1,Threshold為3,表示需要這5個(gè)人中的3人進(jìn)行簽名,才能轉(zhuǎn)賬或修改合約代碼,從而提升賬戶安全性。

參看 eosio.prods 的權(quán)限設(shè)置,就是使用這種方式 https://eospark.com/MainNet/account/eosio.prods
當(dāng)然 eosio.prods 的參與者是所有當(dāng)選的超級(jí)節(jié)點(diǎn),公信力更高。

方法二(高安全):移交智能合約權(quán)限

修改合約權(quán)限為 eosio.prods 賬戶,意味著將修改合約的權(quán)限交給21個(gè)超級(jí)節(jié)點(diǎn),如果需要轉(zhuǎn)移資金或修改合約,需要申請(qǐng)節(jié)點(diǎn)仲裁。
使用 updateauth 命令可以進(jìn)行權(quán)限的修改:

$ cleos push action eosio updateauth '{"account": "eosio", "permission": "owner", "parent": "", "auth": {"threshold": 1, "keys": [], "waits": [], "accounts": [{"weight": 1, "permission": {"actor": "eosio.prods", "permission": "active"}}]}}' -p eosio@owner
$ cleos push action eosio updateauth '{"account": "eosio", "permission": "active", "parent": "owner", "auth": {"threshold": 1, "keys": [], "waits": [], "accounts": [{"weight": 1, "permission": {"actor": "eosio.prods", "permission": "active"}}]}}' -p eosio@active

參看 eosio 的權(quán)限設(shè)置,就是使用這種方式 https://eospark.com/MainNet/account/eosio

方法三(高安全):設(shè)置賬戶權(quán)限到一個(gè)黑洞公鑰

將owner和active權(quán)限設(shè)置為一個(gè)沒(méi)有人知道私鑰的公鑰地址(黑洞),即可保證沒(méi)有人可以獲得賬戶的實(shí)際控制權(quán)。比如 EOS1111111111111111111111111111111114T1Anm,它的公鑰是0值加檢驗(yàn)數(shù)據(jù)生成,任何人都不知道它的私鑰。

以下一些最近的熱門(mén)游戲合約,供大家學(xué)習(xí)研究用:

狼人
https://eosflare.io/account/eosfoiowolfs

ITE
https://eosflare.io/account/itedeathstar

EOS Bet
https://eostracker.io/accounts/eosbetdice11

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容