[發(fā)明專利]一種基于符號執(zhí)行對智能合約功能屬性進(jìn)行形式化驗(yàn)證的方法及系統(tǒng)在審
| 申請?zhí)枺?/td> | 202210047615.4 | 申請日: | 2022-01-17 |
| 公開(公告)號: | CN114510414A | 公開(公告)日: | 2022-05-17 |
| 發(fā)明(設(shè)計(jì))人: | 文偉平;肖遙;劉宇航;胡葉舟;劉軍杰;方瑩 | 申請(專利權(quán))人: | 北京大學(xué) |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京萬象新悅知識產(chǎn)權(quán)代理有限公司 11360 | 代理人: | 李稚婷 |
| 地址: | 100871*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 符號 執(zhí)行 智能 合約 功能 屬性 進(jìn)行 形式化 驗(yàn)證 方法 系統(tǒng) | ||
1.一種基于符號執(zhí)行對智能合約功能屬性進(jìn)行形式化驗(yàn)證的方法,首先將自定義功能屬性形式化為屬性斷言,然后抽象該屬性斷言通過符號執(zhí)行嘗試可歸納性驗(yàn)證,若其具有可歸納性,則可直接證明;若其不具有可歸納性,則通過深度的符號執(zhí)行不斷擴(kuò)充可達(dá)抽象狀態(tài)集,迭代計(jì)算可達(dá)抽象狀態(tài)的不動點(diǎn),最終從不動點(diǎn)去嘗試推導(dǎo)屬性斷言,若均能成功推導(dǎo),則已證明了該屬性斷言,否則,嘗試構(gòu)造反例輸出;具體包括如下步驟:
1)接收一個(gè)或多個(gè)合約C1,C2…Cm以及輸入一系列自定義屬性斷言φ1,φ2…φn,將屬性斷言進(jìn)行等價(jià)變換,變換為□φ1’,□φ2’…□φn’的形式,其中□φi’表示屬性斷言φi’恒成立,m、n、i代表自然數(shù);
2)將輸入的一系列合約合并為一個(gè)合約C0;
3)根據(jù)屬性斷言在合約相應(yīng)的位置添加新屬性變量,插入監(jiān)測代碼,得到插樁合約Cφ,其包含函數(shù){f1,f2…fk},其中k代表自然數(shù);
4)根據(jù)插樁合約Cφ及等價(jià)變換后的屬性斷言□φ1’,□φ2’…□φn’解析所需的抽象狀態(tài)α;
5)對于一條需要驗(yàn)證的屬性斷言φ’,通過init來構(gòu)建初始化的抽象狀態(tài)αinit,檢查在αinit下屬性斷言是否成立,若成立則進(jìn)入步驟6,不成立則插樁合約Cφ不滿足屬性斷言φ’,即證明了輸入合約C1,C2…Cm不滿足屬性斷言φ;
6)將初始化的抽象狀態(tài)αinit轉(zhuǎn)換為初始符號狀態(tài)集S0{s10,s20…sm0};
7)以初始符號狀態(tài)集中各狀態(tài)為初始狀態(tài),執(zhí)行函數(shù)fi,得到符號狀態(tài)集Si{s1i,s2i…smi},并轉(zhuǎn)化為抽象狀態(tài)集Ai{α1i,α2i…αmi};
8)若對于某屬性斷言φ’生成的初始符號狀態(tài)集S0分別執(zhí)行{f1,f2…fk}得到的符號狀態(tài)集Si及其對應(yīng)的抽象狀態(tài)集Ai,若φ’均仍然成立,則φ’是可歸納證明屬性斷言且φ’恒成立,即證明了輸入合約C1,C2…Cm滿足屬性斷言φ;若不成立,則進(jìn)入步驟9;
9)根據(jù)步驟5)中構(gòu)建的初始化的抽象狀態(tài)αinit,初始化可達(dá)抽象狀態(tài)集合reach(Cφ)0={αinit};
10)以符號方式執(zhí)行一次while循環(huán),調(diào)用fi,并在交易結(jié)束后計(jì)算精確的符號狀態(tài)s,s實(shí)際上是不同路徑約束p1∪p2∪…∪pk的所有可能,包括s1,s2…sk;
11)根據(jù)精確的符號狀態(tài)s1,s2…sk計(jì)算出抽象狀態(tài)α1,α2…αm,由于不同的符號狀態(tài)可能得到相同的抽象狀態(tài),故有k≥m;
12)將抽象狀態(tài)α1,α2…αm加入可達(dá)抽象狀態(tài)集合reach(Cφ)0得到可達(dá)抽象狀態(tài)集合reach(Cφ)1,重復(fù)步驟10)和11);由于抽象狀態(tài)域是有限的,故最終reach(Cφ)一定會達(dá)到不動點(diǎn)reach(Cφ)i+1=reach(Cφ)i;
13)根據(jù)可達(dá)抽象狀態(tài)集不定點(diǎn)reach(Cφ)fix驗(yàn)證是否滿足屬性斷言φ’,若滿足則證明此合約Cφ滿足屬性斷言φ’,等價(jià)于證明了輸入合約C1,C2…Cm滿足屬性斷言φ,若不滿足則進(jìn)入步驟14);
14)嘗試根據(jù)該抽象狀態(tài)對應(yīng)的符號狀態(tài)回查已記錄的符號執(zhí)行的路徑信息,嘗試構(gòu)建一個(gè)反例{(user,func,args)1,(user,func,args)2…(user,func,args)n}并輸出,證明了輸入合約C1,C2…Cm不滿足屬性斷言φ。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京大學(xué),未經(jīng)北京大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210047615.4/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測;錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測試作故障硬件的檢測或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測試或調(diào)試防止錯(cuò)誤
- 碼轉(zhuǎn)換裝置、接收機(jī)以及碼轉(zhuǎn)換方法
- TrueType符號與基于路徑的點(diǎn)狀地圖符號交換方法
- 一種生成嵌入式程序運(yùn)行符號表的方法和裝置
- 控制車內(nèi)后視鏡的按鈕符號的方法
- 一種基于矢量符號描述語言的電子海圖擴(kuò)展符號構(gòu)建系統(tǒng)
- 一種用于無線光通信的方法及通信裝置
- 計(jì)算機(jī)圖形符號化表達(dá)方法、電子設(shè)備、存儲介質(zhì)
- 一種圖像識別的方法和裝置
- 標(biāo)點(diǎn)符號的校正方法及設(shè)備、介質(zhì)
- 一種被用于無線通信的節(jié)點(diǎn)中的方法和裝置
- 以注射方式執(zhí)行死刑的自動執(zhí)行車的執(zhí)行床
- 過程執(zhí)行裝置、過程執(zhí)行方法以及過程執(zhí)行程序
- 用以執(zhí)行跳舞電子游戲的執(zhí)行系統(tǒng)及其執(zhí)行方法
- 策略執(zhí)行系統(tǒng)及其執(zhí)行方法
- 腳本執(zhí)行系統(tǒng)和腳本執(zhí)行方法
- 命令執(zhí)行設(shè)備、命令執(zhí)行系統(tǒng)、命令執(zhí)行方法以及命令執(zhí)行程序
- 程序執(zhí)行裝置、程序執(zhí)行系統(tǒng)以及程序執(zhí)行方法
- 處理執(zhí)行設(shè)備和由該處理執(zhí)行設(shè)備執(zhí)行的方法
- 有序任務(wù)的執(zhí)行方法、執(zhí)行裝置和執(zhí)行系統(tǒng)
- 執(zhí)行器(閥門執(zhí)行器)





