[發(fā)明專利]一種基于WebAssembly的智能合約虛擬機(jī)在審
| 申請?zhí)枺?/td> | 201911418104.3 | 申請日: | 2019-12-31 |
| 公開(公告)號: | CN111179086A | 公開(公告)日: | 2020-05-19 |
| 發(fā)明(設(shè)計(jì))人: | 邱煒偉;李偉;匡立中;尹可挺;強(qiáng)宇周 | 申請(專利權(quán))人: | 杭州趣鏈科技有限公司 |
| 主分類號: | G06Q40/04 | 分類號: | G06Q40/04;G06F8/41;G06F8/60;G06F9/455 |
| 代理公司: | 杭州求是專利事務(wù)所有限公司 33200 | 代理人: | 劉靜 |
| 地址: | 310051 浙江省杭州市*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 webassembly 智能 合約 虛擬機(jī) | ||
1.一種基于WebAssembly的智能合約虛擬機(jī),其特征在于,該虛擬機(jī)包括合約編寫與編譯模塊和合約的部署與執(zhí)行模塊兩部分;
所述合約編寫與編譯模塊;通過設(shè)計(jì)一系列的區(qū)塊鏈交互接口EI,暴露出了智能合約編寫所需的區(qū)塊鏈API。所述EI包括:
account模塊:用于獲取發(fā)送者、接受者、合約地址、查詢余額以及發(fā)起交易等;
action模塊:用于進(jìn)行action執(zhí)行權(quán)限判斷、獲取action數(shù)據(jù)、發(fā)起action以及返回action執(zhí)行結(jié)果等;
database模塊:用于數(shù)據(jù)持久化的存儲。
利用設(shè)計(jì)的EI進(jìn)行智能合約的編寫,并將編寫好的智能合約利用編譯器編譯為WebAssembly字節(jié)碼,從而可以在虛擬機(jī)部署與執(zhí)行。
所述合約的部署與執(zhí)行模塊分為合約部署和執(zhí)行兩部分。用戶申請一個(gè)合約賬戶,利用合約賬戶地址向自身發(fā)起一筆部署合約的交易完成合約的部署。在智能合約的執(zhí)行過程中,需要先把EI的具體實(shí)現(xiàn)注入到編譯好的WebAssembly字節(jié)碼中,再進(jìn)行進(jìn)一步的合約執(zhí)行。合約執(zhí)行完成之后可以通過區(qū)塊鏈查詢合約執(zhí)行結(jié)果。
2.如權(quán)利要求1所述的基于WebAssembly的智能合約虛擬機(jī),其特征在于,所述的合約編寫與編譯模塊中,EI的設(shè)計(jì)內(nèi)容還可包括如下模塊:
chain模塊:用于獲取區(qū)塊數(shù)據(jù)。
crypto模塊:用于數(shù)據(jù)加密以及驗(yàn)證加密結(jié)果。
print模塊:用于合約執(zhí)行中數(shù)據(jù)的輸出。
system模塊:用于斷言判斷并獲取時(shí)間以及創(chuàng)世時(shí)間等。
transaction模塊:用于獲得交易哈希值以及簽名。
3.如權(quán)利要求1所述的基于WebAssembly的智能合約虛擬機(jī),其特征在于,所述的合約編寫與編譯模塊中,編譯器應(yīng)當(dāng)提供對EI接口的支持,即可以在合約中調(diào)用EI接口并正常編譯。
4.如權(quán)利要求1所述的基于WebAssembly的智能合約虛擬機(jī),其特征在于,所述的合約編寫與編譯模塊中,合約中包含多個(gè)可被用戶調(diào)用的方法,同時(shí)應(yīng)當(dāng)導(dǎo)出一個(gè)調(diào)用函數(shù),其接受參數(shù)為方法名,函數(shù)內(nèi)容為根據(jù)方法名調(diào)用對應(yīng)的方法。
5.如權(quán)利要求1所述的基于WebAssembly的智能合約虛擬機(jī),其特征在于,所述的合約的部署與執(zhí)行模塊中,合約部署的過程具體為:
(1)部署者申請合約地址及其私鑰,私鑰可用于之后合約的升級更新等操作。
(2)部署者發(fā)起一筆交易,交易的接受人為自身,即部署者,交易中有一個(gè)action,action中method字段指定為交易部署,payload字段為部署的合約代碼以及abi信息。
(3)虛擬機(jī)從payload中解析出合約的abi信息以及合約代碼,并進(jìn)行驗(yàn)證。
(4)向合約地址寫入合約代碼以及abi信息,扣除部署者的gas,完成合約部署。
6.如權(quán)利要求4所述的基于WebAssembly的智能合約虛擬機(jī),其特征在于,所述的合約編寫與編譯模塊中,合約執(zhí)行的過程具體為:
(1)對于交易中的每個(gè)action,根據(jù)調(diào)用的合約地址獲取合約代碼與abi信息。
(2)從action中的method字段獲取調(diào)用的合約方法名,從action中的payload的字段獲得調(diào)用合約的傳入?yún)?shù),并進(jìn)行驗(yàn)證。
(3)在合約的WebAssembly字節(jié)碼中注入統(tǒng)計(jì)gas消耗的函數(shù),再將EI具體實(shí)現(xiàn)注入WebAssembly字節(jié)碼中,通過合約中的調(diào)用函數(shù),執(zhí)行具體的方法。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于杭州趣鏈科技有限公司,未經(jīng)杭州趣鏈科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911418104.3/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06Q 專門適用于行政、商業(yè)、金融、管理、監(jiān)督或預(yù)測目的的數(shù)據(jù)處理系統(tǒng)或方法;其他類目不包含的專門適用于行政、商業(yè)、金融、管理、監(jiān)督或預(yù)測目的的處理系統(tǒng)或方法
G06Q40-00 金融;保險(xiǎn);稅務(wù)策略;公司或所得稅的處理
G06Q40-02 .銀行業(yè),例如,利息計(jì)算、信貸審批、抵押、家庭銀行或網(wǎng)上銀行
G06Q40-04 .交易,例如,股票、商品、金融衍生工具或貨幣兌換
G06Q40-06 .投資,例如,金融工具、資產(chǎn)組合管理或者基金管理
G06Q40-08 .保險(xiǎn),例如,風(fēng)險(xiǎn)分析或養(yǎng)老金
- 數(shù)據(jù)轉(zhuǎn)移方法、裝置及服務(wù)器
- 一種基于webassembly的瀏覽器音視頻解碼播放方法
- 一種WebAssembly文件的處理方法及系統(tǒng)
- 一種基于WebAssembly的邊緣計(jì)算方法及裝置
- 一種基于WebAssembly的智能合約虛擬機(jī)
- 一種網(wǎng)頁挖礦攻擊檢測及保護(hù)方法和裝置
- Web端視頻播放方法、裝置及計(jì)算機(jī)設(shè)備
- 基于WebAssembly的瀏覽器深度學(xué)習(xí)方法及系統(tǒng)
- 一種基于web瀏覽器的多線程視頻解碼播放方法
- 一種基于瀏覽器的OFD文件的處理方法及系統(tǒng)
- 合約轉(zhuǎn)賬方法、設(shè)備和存儲介質(zhì)
- 區(qū)塊鏈合約升級方法、裝置、計(jì)算機(jī)設(shè)備及可讀存儲介質(zhì)
- 智能合約測試方法、裝置、計(jì)算機(jī)設(shè)備和存儲介質(zhì)
- 智能合約生成方法、裝置、計(jì)算機(jī)設(shè)備和存儲介質(zhì)
- 實(shí)現(xiàn)可更新智能合約的系統(tǒng)和方法
- 一種管理區(qū)塊鏈系統(tǒng)合約的方法和裝置
- 合約簽署方法、裝置、電子設(shè)備及可讀存儲介質(zhì)
- 基于加密貨幣的智能合約生成方法、相關(guān)設(shè)備及存儲介質(zhì)
- 智能合約的自動測試方法、裝置、計(jì)算機(jī)設(shè)備和存儲介質(zhì)
- 智能合約執(zhí)行方法、裝置、系統(tǒng)、存儲介質(zhì)及電子設(shè)備





