[發明專利]一種面向數據管控的智能合約代碼檢查方法和系統在審
| 申請號: | 202010809496.2 | 申請日: | 2020-08-12 |
| 公開(公告)號: | CN112115472A | 公開(公告)日: | 2020-12-22 |
| 發明(設計)人: | 蔡華謙;黃家梅;朱曉旻;張舒匯;郭京申;舒俊宜 | 申請(專利權)人: | 北京智融云河科技有限公司 |
| 主分類號: | G06F21/56 | 分類號: | G06F21/56;G06Q40/04 |
| 代理公司: | 北京潤澤恒知識產權代理有限公司 11319 | 代理人: | 莎日娜 |
| 地址: | 100871 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 面向 數據 智能 合約 代碼 檢查 方法 系統 | ||
本發明實施例提供了一種面向數據管控的智能合約代碼檢查方法和系統,所述方法和系統預先定義數據依賴類型及其相關計算,設計基于污點分析的多源多匯的靜態分析算法;針對目標合約文件中的目標合約函數,確定污點源;基于所述算法,將所述污點源添加到控制流圖的起始塊執行前的分析結果中,通過遍歷程序控制流圖,選擇相應的數據使用約束,進行數據值傳遞依賴分析和/或數據控制依賴分析,持續地更新執行后的分析結果,返回最終分析結果;生成并返回分析報告。本發明實施例提供的方法和系統,基于特定數據管控策略來定義數據約束并進行靜態分析,以完成智能合約的自動化審計,保證面向數據管控的區塊鏈平臺上智能合約的正常運行。
技術領域
本發明涉及通信技術領域,特別是涉及一種面向數據管控的智能合約代碼檢查方法和一種面向數據管控的智能合約代碼檢查系統。
背景技術
智能合約是部署在區塊鏈上的可執行代碼,區塊鏈為智能合約提供了可信執行的環境,除傳統的以以太坊為例的智能合約在加密貨幣領域的應用以外,現如今智能合約還廣泛應用于金融、投票、供應鏈、電子商務等領域。智能合約一旦上鏈執行是不可逆的,需在其執行前就發現潛在的漏洞。
程序靜態分析是在程序執行前發現其漏洞的主要手段。智能合約作為一種特殊的程序,不同領域下的智能合約則需要進行面向領域特定目標的靜態分析,以保障智能合約的準確運行。而目前已有的對智能合約進行靜態分析的方法僅適用于加密貨幣領域,如:整型溢出、Fallback檢測等等。
隨著區塊鏈在不同領域的廣泛使用,出現了面向數據全生命周期管控的區塊鏈平臺,該平臺為了保障數據所有者的權益,原始數據并不是像加密貨幣的交易數據一樣被記錄在賬本上被所有參與者共享,而是數據使用者通過提供智能合約的方式向數據所有者發起請求,數據所有者需要審計智能合約是否合理合法地使用其數據,然后使用者才能使用數據。目前,面向數據管控的區塊鏈平臺中,由于仍然缺乏相應的智能合約的靜態分析方法,完全由數據使用者來人工審計智能合約的做法,效率低下、成本高昂。
發明內容
鑒于上述問題,提出了本發明實施例提供一種克服上述問題或者至少部分地解決上述問題的一種面向數據管控的智能合約代碼檢查方法和一種面向數據管控的智能合約代碼檢查系統。
為了解決上述問題,本發明實施例提供了一種面向數據管控的智能合約代碼檢查方法,所述方法包括:預先定義數據依賴類型和所述數據依賴類型的相關計算,設計基于污點分析的多源多匯的靜態分析算法,以用于基于特定的數據管控策略來定義數據使用約束并進行靜態分析;針對目標合約文件中的目標合約函數,確定污點源,所述污點源包括:程序輸入參數和合約調用指令;基于所述靜態分析算法,將所述污點源添加到控制流圖的起始塊執行前的分析結果中,以初始化所述分析結果,通過遍歷程序控制流圖,選擇相應的數據使用約束,進行數據值傳遞依賴分析和/或數據控制依賴分析,持續地更新執行后的分析結果,最后返回最終分析結果;根據所述最終分析結果,生成并返回分析報告。
可選地,預先定義數據依賴類型和所述數據依賴類型的相關計算,設計基于污點分析的多源多匯的靜態分析算法,以用于基于特定的數據管控策略來定義數據使用約束并進行靜態分析,包括:面向數據使用的管控需求,通過對智能合約編譯之后的字節碼指令進行分析,定義變量之間的數據依賴類型,即,變量之間的關聯類型,包括數據值傳遞依賴關聯和數據控制依賴關聯,同時,基于數據使用約束描述方法,定義關聯類型和關聯類型的計算。
可選地,所述數據值傳遞依賴包括:程序變量與數據源之間的包含依賴關系、賦值依賴關系、算數依賴關系和函數依賴關系,表示數據間的顯式信息流傳播;所述數據控制依賴,包括程序變量與數據源之間的控制依賴關系,表示數據間的隱式信息流傳播。
可選地,針對目標合約文件中的目標合約函數,確定污點源,包括:將所述程序輸入參數直接標記為所述污點源;遍歷控制流圖中的所有基本塊,找出程序中的合約調用指令,進而將所述合約調用指令標記為所述污點源。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京智融云河科技有限公司,未經北京智融云河科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010809496.2/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





