[發明專利]智能合約漏洞檢測方法、裝置及電子設備有效
| 申請號: | 201810158986.3 | 申請日: | 2018-02-26 |
| 公開(公告)號: | CN108256337B | 公開(公告)日: | 2020-07-17 |
| 發明(設計)人: | 韓昭芳;袁力;耿建華;黃焱 | 申請(專利權)人: | 北京阿爾山區塊鏈聯盟科技有限公司 |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57 |
| 代理公司: | 北京超凡宏宇專利代理事務所(特殊普通合伙) 11463 | 代理人: | 徐麗 |
| 地址: | 100000 北京市西城*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 智能 合約 漏洞 檢測 方法 裝置 電子設備 | ||
本發明提供一種智能合約漏洞檢測方法、裝置及電子設備,涉及區塊鏈技術領域,方法包括:對待檢測智能合約進行DAG環路檢測,判斷待檢測智能合約中是否存在合約邏輯環路;待檢測智能合約由多個最小可信單元組成;如果是,則對合約邏輯環路進行環路超時檢測,判斷合約邏輯環路是否超時;如果否,則對待檢測智能合約進行邏輯檢測,判斷邏輯檢測的檢測結果是否正確;如果是,則判斷待檢測智能合約不存在漏洞。本發明對基于最小可信單元的智能合約組合模式,依次經過DAG環路檢測、環路超時檢測、邏輯檢測三個部分,一方面,可以校驗合同本身的邏輯合理性,另一方面,檢測智能合約組合問題,從而保證了合約的安全和可靠性。
技術領域
本發明涉及區塊鏈技術領域,尤其是涉及一種智能合約漏洞檢測方法、裝置及電子設備。
背景技術
區塊鏈是一個互聯網協議和一種基礎的數據結構。就如同HTTP是互聯網應用層中最重要的應用協議一樣,區塊鏈也是應用層里一個點對點傳輸的協議。在協議基礎上,區塊鏈由“區塊”和“鏈”共同定義了分布式賬本。“區塊”類似于證券交易中的成交記錄,記錄了特定時間段內所有發生的權益轉移關系;這些“區塊”間存在著嚴格且唯一的先后繼承關系,組成了一條“區塊”的“鏈”。區塊鏈特有的機制保障了“區塊”記錄內容和先后繼承關系的合理性和唯一性,這個過程并不依賴于特定的中心節點。區塊鏈天生的不可篡改可追溯的屬性,可以在保證數據真實可靠的同時幫助社會降低信用成本。智能合約是區塊鏈平臺的核心組成部分,在區塊鏈上執行業務邏輯,并將信息記錄在區塊鏈上保證數據不可篡改。
開源區塊鏈平臺Ethereum(以太坊)提供了基于Solidity語言的智能合約解決方案;Hyperledger(超級賬本)提出了基于隔離容器和Go語言的智能合約解決方案。目前智能合約背后的載體都是代碼邏輯,對于沒有編程經驗的人編寫智能合約相對有一些難度。為此,在之前的技術專利中,提出了一種基于最小可信單元的區塊鏈智能合約組合模式,可以讓律師或者其他沒有編程能力的人,通過組合智能合約的最小化可信單元來實現智能合約。
然而上述組合最小可信單元的過程中,不可避免地會出現邏輯漏洞,進而影響智能合約的正常執行,針對該問題,目前尚未提出有效的解決方案。
發明內容
有鑒于此,本發明的目的在于提供一種智能合約漏洞檢測方法、裝置及電子設備,能夠檢測用戶完成的智能合約中存在的邏輯漏洞和技術問題。
第一方面,本發明實施例提供了一種智能合約漏洞檢測方法,包括:
對待檢測智能合約進行DAG環路檢測,判斷待檢測智能合約中是否存在合約邏輯環路;待檢測智能合約由多個最小可信單元組成;
如果是,則對合約邏輯環路進行環路超時檢測,判斷合約邏輯環路是否超時;
如果否,則對待檢測智能合約進行邏輯檢測,判斷邏輯檢測的檢測結果是否正確;
如果是,則判斷待檢測智能合約不存在漏洞。
結合第一方面,本發明實施例提供了第一方面的第一種可能的實施方式,其中,在判斷待檢測智能合約中是否存在合約邏輯環路之后,還包括:
如果否,則執行步驟:對待檢測智能合約進行邏輯檢測,判斷邏輯檢測的檢測結果是否正確。
結合第一方面,本發明實施例提供了第一方面的第二種可能的實施方式,其中,在判斷合約邏輯環路是否超時之后,還包括:
如果是,則判斷待檢測智能合約存在漏洞。
結合第一方面,本發明實施例提供了第一方面的第三種可能的實施方式,其中,在判斷邏輯檢測的檢測結果是否正確之后,還包括:
如果否,則判斷待檢測智能合約存在漏洞。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京阿爾山區塊鏈聯盟科技有限公司,未經北京阿爾山區塊鏈聯盟科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810158986.3/2.html,轉載請聲明來源鉆瓜專利網。





