CertiK已完成對MYKEY以太坊智慧合約的審計

買賣虛擬貨幣
MYKEY與CertiK開展合作,由CertiK對其釋出在以太坊網路上的智慧合約進行安全審計。為了確保審計的順利進行,CertiK運用形式化驗證平臺,並委派安全專家及工程師對原始碼分別進行機器分析和人工審查。本次審計重點關注以太坊智慧合約的設計情況和實踐情況。MYKEY Lab是基於多條公有區塊鏈的自主身份系統,是基於KeyID自主身份協議的首個應用例項。MYKEY Lab的目標是透過實現以下三個關鍵特性來建立一個完整的堆疊資產管理平臺:1.多鏈錢包:MYKEY作為多鏈錢包,支援多種智慧合約平臺。2.信任網路:基於可驗證宣告形成的賬戶與賬戶間的信任網路。
3.資料的可靠儲存:身份賬戶控制的去中心化儲存安全區。當私有金鑰丟失時,MYKEY設定有身份賬戶找回機制,平臺上的使用者能夠透過凍結或解凍帳戶來自主控制資產。平臺的附加功能包括通用ID名、反垃圾郵件、協議升級能力、增強安全性的全面設計等。MYKEY Lab的區塊鏈應用程式開發MYKEY Lab透過數字貨幣儲存、交易、財富管理、遊戲、社羣等平臺,為使用者建立一站式的數字生活體驗平臺。多鏈錢包不僅能支援多個智慧合約平臺,還具有以下功能:1.建立錢包
2.簽署交易3.多重簽名4.管理加密資產5.提交提案6.恢復金鑰MYKEY於2019年初在EOS上釋出,並預計將於今年年底在以太坊區塊鏈上釋出。MYKEY Lab能夠執行在大部分現有的大型區塊鏈上,但由於賬戶在每一條區塊鏈上均以智慧合約的方式存在,因此它的錢包功能暫時不支援非智慧合約平臺。
在信任網路中,使用者擁有資料控制權,這一做法可以從根本上保護使用者隱私權。每個賬戶都包含一個通用且唯一的ID名稱、一個身份賬戶檔案和一個由身份合約控制的、基於去中心化儲存的資料安全區。

MYKEY系統及其工作流程

每個MYKEY賬戶都有一個對應的Account Proxy合約地址,並非從外部獲得的。在建立一個新的MYKEY賬戶時,MYKEY Lab會將生成的備份金鑰設定為預設金鑰,使用者還可在賬戶中新增更多其他備份金鑰。

所有與MYKEY Lab使用者相關的資料都儲存在Account Storage合約中,包括賬戶管理金鑰、6個備份操作金鑰、delayltem以及多重簽名協議。

同樣,所有邏輯模組包括轉賬、多重簽名、DAPP、賬戶相關邏輯。負責處理所有邏輯合約升級的LogicManager允許合約根據其業務拓展和漏洞修復進行自我升級。

下圖展示了智慧合約錢包設計的工作流程:

審計結果

在對原始碼進行全面審計之後,CertiK對MYKEY Lab提出了一些修改建議:

1.最好使用“pull-over-push”模式進行所有權的轉移工作。Openzepplin的合約可作為參考。
2.CertiK建議針對狀態更改函式生成事件日誌。這不僅可用於歷史追蹤和使用者行為分析,還能直接為使用者提供合約之外的外部呼叫。

3.考慮到close()函式可以呼叫低階操作碼selfdestruct(自毀),所以建議利用該函式來防止漏洞出現。

4.應該將函式isActionWithDualSigs()改為修飾符。

總體來說,MYKEY以太坊智慧合約程式碼符合設計規範且執行良好,具有良好的可擴充套件性,不易受到任何已知的經典漏洞攻擊或其他安全問題的影響,安全程度較高。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;