TW202030691A - 區塊鏈的智慧型合約執行方法及裝置和電子設備 - Google Patents
區塊鏈的智慧型合約執行方法及裝置和電子設備 Download PDFInfo
- Publication number
- TW202030691A TW202030691A TW108131513A TW108131513A TW202030691A TW 202030691 A TW202030691 A TW 202030691A TW 108131513 A TW108131513 A TW 108131513A TW 108131513 A TW108131513 A TW 108131513A TW 202030691 A TW202030691 A TW 202030691A
- Authority
- TW
- Taiwan
- Prior art keywords
- contract
- source code
- execution
- blockchain
- party
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F21/645—Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本發明實施例提供一種區塊鏈的智慧型合約執行方法及裝置和電子設備,所述區塊鏈對接有可信第三方,所述可信第三方中部署有執行智慧型合約的合約引擎,所述方法包括:區塊鏈中的節點設備接收用戶端發起的用於調用目標智慧型合約的目標交易;回應於所述目標交易,從所述區塊鏈的分散式資料庫中獲取所述目標智慧型合約的合約源碼;將所述合約源碼發送給所述可信第三方,以使所述可信第三方的合約引擎執行所述合約源碼,並向所述節點設備返回執行結果。
Description
本發明實施例涉及區塊鏈技術領域,尤其涉及一種區塊鏈的智慧型合約執行方法及裝置和電子設備。
區塊鏈技術,也被稱之為分散式帳本技術,是一種由若干台計算設備共同參與“記帳”,共同維護一份完整的分散式資料庫的新興技術。由於區塊鏈技術具有去中心化、公開透明、每台計算設備可以參與資料庫記錄、並且各計算設備之間可以快速的進行資料同步的特性,使得區塊鏈技術在眾多的領域中廣泛的進行應用。
本發明實施例提供的一種區塊鏈的智慧型合約執行方法及裝置和電子設備:
根據本發明實施例的第一態樣,提供一種區塊鏈的智慧型合約執行方法,所述區塊鏈對接有可信第三方,所述可信第三方中部署有執行智慧型合約的合約引擎,所述方法包括:
區塊鏈中的節點設備接收用戶端發起的用於調用目標智慧型合約的目標交易;
回應於所述目標交易,從所述區塊鏈的分散式資料庫中獲取所述目標智慧型合約的合約源碼;
將所述合約源碼發送給所述可信第三方,以使所述可信第三方的合約引擎執行所述合約源碼,並向所述節點設備返回執行結果。
可選的,所述目標交易包括所述目標智慧型合約名稱;以及,所述目標智慧型合約中被調用的目標函數名稱;
所述從所述區塊鏈的分散式資料庫中獲取所述目標智慧型合約的合約源碼,具體包括:
基於所述目標交易包含的目標智慧型合約名稱,從所述區塊鏈的分散式資料庫中獲取該目標智慧型合約名稱對應的合約源碼;
基於所述目標智慧型合約中被調用的目標函數名稱,從所獲取的合約源碼獲取該目標函數名稱對應的合約源碼。
可選的,所述交易包含有輸入參數;
所述將所述合約源碼發送給所述可信第三方,以使所述可信第三方的合約引擎執行所述合約源碼,包括:
將所述合約源碼以及所述輸入參數發送給所述可信第三方,以使所述可信第三方向所述節點設備獲取與所述輸入參數對應的輸入資料,將所述輸入資料載入到所述合約源碼,並執行所述合約源碼。
可選的,所述區塊鏈對接有作為校驗方的另一可信第三方;
所述方法還包括:
將所述執行結果發送給所述另一可信第三方,以由所述另一可信第三方的合約引擎,針對所述執行結果進行校驗;
如果所述執行結果校驗通過,將所述執行結果發佈至所述區塊鏈中的所有節點設備進行共識處理,並在共識通過後,將所述執行結果儲存至所述區塊鏈。
可選的,所述執行結果為所述可信第三方基於所述合約源碼的執行結果生成的結果集;其中,所述結果集包括執行合約源碼過程中產生的讀寫集和執行合約源碼後得到的執行結果;
針對所述執行結果的校驗過程,包括:
所述另一可信第三方的合約引擎從所述讀寫集中讀取輸入資料,將讀取到的輸入資料載入到所述合約源碼,並模擬執行所述合約源碼;
確定模擬執行所述合約源碼產生的執行結果,與所述結果集中的執行結果是否一致;
如果是,確定所述執行結果校驗通過。
可選的,所述執行結果為所述可信第三方基於所述合約源碼的執行結果生成的結果集;其中,所述結果集包括執行合約源碼過程中產生的讀寫集和執行合約源碼後得到的執行結果;
針對所述執行結果的校驗過程,包括:
所述另一可信第三方的合約引擎從所述讀寫集中讀取輸入資料,將讀取到的輸入資料載入到所述合約源碼,並模擬執行所述合約源碼;
確定模擬執行所述合約源碼產生的讀寫集,與所述結果集中的讀寫集是否一致;
如果是,確定所述執行結果校驗通過。
可選的,所述區塊鏈為聯盟鏈。
根據本發明實施例的第二態樣,提供一種區塊鏈的智慧型合約執行方法,所述區塊鏈對接有可信第三方,所述可信第三方中部署有執行智慧型合約的合約引擎,所述方法包括:
所述可信第三方的合約引擎接收所述區塊鏈中的節點設備發送的合約源碼;其中,所述節點設備為所述區塊鏈中回應用戶端發起的用於調用目標智慧型合約的目標交易請求的節點,所述合約源碼為所述目標智慧型合約的合約源碼;
執行所述合約源碼並向所述節點設備,並向所述節點設備返回執行結果。
可選的,所述交易包含有輸入參數;
所述接收所述區塊鏈中的節點設備發送的合約源碼,具體包括:
接收所述區塊鏈中的節點設備發送的合約源碼以及所述輸入參數;
所述執行所述合約源碼,具體包括:
向所述節點設備獲取與所述輸入參數對應的輸入資料,將所述輸入資料載入到所述合約源碼,並執行所述合約源碼。
可選的,所述方法還包括:
在接收到所述節點設備發送的針對其它可信第三方的合約引擎的結果集進行的校驗請求時,對所述結果集進行校驗;其中,所述結果集包括執行合約源碼過程中產生的讀寫集和執行合約源碼後得到的執行結果;
如果所述結果集校驗通過,將所述結果集中的執行結果發佈至所述區塊鏈中的所有節點設備進行共識處理,並在共識通過後,將所述結果集中的執行結果儲存至所述區塊鏈。
可選的,針對所述第二執行結果的校驗過程,包括:
從所述讀寫集中讀取輸入資料,將讀取到的輸入資料載入到所述合約源碼,並模擬執行所述合約源碼;
確定模擬執行所述合約源碼產生的執行結果,與所述結果集中的執行結果是否一致;
如果是,確定所述執行結果校驗通過。
可選的,針對所述第二執行結果的校驗過程,包括:
從所述讀寫集中讀取輸入資料,將讀取到的輸入資料載入到所述合約源碼,並模擬執行所述合約源碼;
確定模擬執行所述合約源碼產生的讀寫集,與所述結果集中的讀寫集是否一致;
如果是,確定所述執行結果校驗通過。
可選的,所述區塊鏈為聯盟鏈。
根據本發明實施例的第三態樣,提供一種區塊鏈的智慧型合約執行裝置,所述區塊鏈對接有可信第三方,所述可信第三方中部署有執行智慧型合約的合約引擎,所述裝置包括:
接收單元,區塊鏈中的節點設備接收用戶端發起的用於調用目標智慧型合約的目標交易;
回應單元,回應於所述目標交易,從所述區塊鏈的分散式資料庫中獲取所述目標智慧型合約的合約源碼;
執行單元,將所述合約源碼發送給所述可信第三方,以使所述可信第三方的合約引擎執行所述合約源碼,並向所述節點設備返回執行結果。
根據本發明實施例的第四態樣,提供一種區塊鏈的智慧型合約執行裝置,所述區塊鏈對接有可信第三方,所述可信第三方中部署有執行智慧型合約的合約引擎,所述方法包括:
接收單元,所述可信第三方的合約引擎接收所述區塊鏈中的節點設備發送的合約源碼;其中,所述節點設備為所述區塊鏈中回應用戶端發起的用於調用目標智慧型合約的目標交易請求的節點,所述合約源碼為所述目標智慧型合約的合約源碼;
執行單元,執行所述合約源碼並向所述節點設備,並向所述節點設備返回執行結果。
根據本發明實施例的第五態樣,提供一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器被配置為上述任一項區塊鏈的智慧型合約執行方法。
本發明實施例,提供了一種區塊鏈的智慧型合約執行方案,將智能合約與區塊鏈節點解耦合,區塊鏈中節點設備不再儲存智慧型合約也不負責智慧型合約的運行,而是由區塊鏈對接的可信第三方中部署的合約引擎負責運行智慧型合約;如此,當區塊鏈中回應用戶端發起交易的節點設備需要執行相關業務邏輯時,可以通過調用可信第三方的合約引擎,由合約引擎運行相關的智慧型合約從而得到執行結果。一方面,通過將智慧型合約與節點設備解綁,從而將智慧型合約分離出來由合約引擎運行,簡化了節點設備功能從而降低了對節點設備性能的要求(比如,性能不高的設備也可以作為節點設備接入區塊鏈)。另一方面,區塊鏈中節點設備間進行共識時,不再依賴智慧型合約進行共識,而是將結果集同世界狀態比較就可以實現共識,無需每個節點設備參與智慧型合約運算,大大提升了共識效率。再一方面,區塊鏈對接的可信第三方作為專用於運行智慧型合約的節點,可以預先設置強大的儲存和計算能力,以此部署大量的智慧型合約,並且智慧型合約的業務邏輯可以設計的較為複雜,以應對計算量較大、業務複雜度較高的業務需求。
這裡將詳細地對示例性實施例進行說明,其示例表示在圖式中。下面的描述涉及圖式時,除非另有表示,不同圖式中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本發明相一致的所有實施方式。相反,它們僅是與如所附申請專利範圍中所詳述的、本發明的一些態樣相一致的裝置和方法的例子。
在本發明使用的術語是僅僅出於描述特定實施例的目的,而非旨在限制本發明。在本發明和所附申請專利範圍中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指並包含一個或多個相關聯的列出專案的任何或所有可能組合。
應當理解,儘管在本發明可能採用術語第一、第二、第三等來描述各種資訊,但這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本發明範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊。取決於語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“回應於確定”。
智慧型合約(Smart contract)是一種旨在應用在可以部署在區塊鏈上的以資訊化方式傳播、驗證或執行合同的電腦協定。通過在智慧型合約中聲明業務邏輯可以實現執行相應操作。智慧型合約允許在沒有第三方的情況下進行可信交易。這些交易可追蹤且不可逆轉。智慧型合約能夠提供優於傳統合同方法的安全,並減少與合同相關的其他交易成本。
首先,介紹傳統區塊鏈中智慧型合約的部署方式。傳統智慧型合約是直接部署在區塊鏈中節點設備上,並在節點設備執行交易請求時,直接運行本地部署的相應智能合約。對於需要行共識的情況,同樣將執行結果拋出由區塊鏈中所有節點設備進行共識,每個節點設備都需要運行本地部署的用於共識的智慧型合約。可見,一方面,傳統智慧型合約與節點設備之間是強耦合的,每個節點設備都需要部署智慧型合約並需要運行智慧型合約,對於節點設備來說無疑增加了許多負擔(節點設備需要具備一定的計算能力);另一方面,在節點設備間共識時,每個節點設備均需要重新執行一次智慧型合約判斷執行結果是否正確,導致共識效率不高;再一方面,由於節點設備儲存、計算能力有限,相應就限制了智慧型合約的數量以及複雜程度,傳統智慧型合約無法執行計算量、複雜度較大的業務邏輯。
本發明提出了一種區塊鏈的智慧型合約執行方案,通過對傳統智慧型合約進行優化,可以提升包括區塊鏈中節點設備的性能和效率,節點設備間進行共識的效率,以及智慧型合約執行的效率等,從而提升區塊鏈整體性能。
在本說明實現方式中,將智慧型合約與區塊鏈節點解耦合,區塊鏈中節點設備不再儲存智慧型合約也不負責智慧型合約的運行,而是由區塊鏈對接的可信第三方中部署的合約引擎負責運行智慧型合約;如此,當區塊鏈中回應用戶端發起交易的節點設備需要執行相關業務邏輯時,可以通過調用可信第三方的合約引擎,由合約引擎運行相關的智慧型合約從而得到執行結果。一方面,通過將智慧型合約與節點設備解綁,從而將智慧型合約分離出來由合約引擎運行,簡化了節點設備功能從而降低了對節點設備性能的要求(比如,性能不高的設備也可以作為節點設備接入區塊鏈)。另一方面,區塊鏈中節點設備間進行共識時,不再依賴智慧型合約進行共識,而是將結果集同世界狀態比較就可以實現共識,無需每個節點設備參與智慧型合約運算,大大提升了共識效率。再一方面,區塊鏈對接的可信第三方作為專用於運行智慧型合約的節點,可以預先設置強大的儲存和計算能力,以此部署大量的智慧型合約,並且智慧型合約的業務邏輯可以設計的較為複雜,以應對計算量較大、業務複雜度較高的業務需求。
在本發明所描述的區塊鏈,具體可以包括私有鏈、共有鏈以及聯盟鏈等,在本發明中不進行特別限定。
例如,在一個場景中,上述區塊鏈具體可以是由總部機構、分支機搆、代理機構、節點設備等作為聯盟成員組成的一個聯盟鏈;該聯盟鏈的營運方可以依託於該聯盟鏈,來部署相應的業務;而以上所描述的作為聯盟成員的總部機構、分支機搆、代理機構都可以作為上述業務的一個業務節點。各個業務節點可以將自身所產生或者接收到的與執行結果以交易的形式在聯盟鏈中進行發佈,並在該交易經過聯盟鏈中的共識節點的共識處理之後,在聯盟鏈中的分散式資料庫進行儲存,完成上述交易資訊的“上鏈”存證。
其中,需要說明的是,在本發明中所描述的交易(Transaction),是指通過區塊鏈的用戶端創建,並需要最終發佈至區塊鏈的分散式資料庫中的一筆資料。
區塊鏈中的交易,通常存在狹義的交易以及廣義的交易之分。狹義的交易是指用戶向區塊鏈發佈的一筆價值轉移;例如,在傳統的比特幣區塊鏈網路中,交易可以是用戶在區塊鏈中發起的一筆轉帳。而廣義的交易是指用戶向區塊鏈發佈的一筆具有業務意圖的業務資料;例如,營運方可以基於實際的業務需求搭建一個聯盟鏈,依託於聯盟鏈部署一些與價值轉移無關的其它類型的線上業務(比如,寬泛的可以分為查詢業務、調用業務等),而在這類聯盟鏈中,交易可以是用戶在聯盟鏈中發佈的一筆具有業務意圖的業務消息或者業務請求。
上述用戶端,可以包括任意類型的以區塊鏈中儲存的底層業務資料作為資料支撐,來實現特定的業務功能的上層應用。
請參考圖1,圖1為本發明一實施例提供的區塊鏈的智慧型合約執行方法的流程圖,所述區塊鏈對接有可信第三方,所述可信第三方中部署有執行智慧型合約的合約引擎,所述方法可以包括以下步驟:
步驟110:區塊鏈中的節點設備接收用戶端發起的用於調用目標智慧型合約的目標交易;
步驟120:回應於所述目標交易,從所述區塊鏈的分散式資料庫中獲取所述目標智慧型合約的合約源碼;
步驟130:將所述合約源碼發送給所述可信第三方,以使所述可信第三方的合約引擎執行所述合約源碼,並向所述節點設備返回執行結果。
以下結合圖2所示的區塊鏈系統的示意圖為例加以說明:
用戶端向區塊鏈發起一筆目標交易,經由SDK調用智慧型合約函數,SDK將該目標交易發送到區塊鏈的一個節點設備上,該節點設備可以稱為調用節點;所述目標交易可以攜帶有相關的執行參數,例如可以包括合約名稱、調用函數名、輸入參數、交易ID、時間戳記等。
如前所述,本發明中節點設備不負責智慧型合約運行;因此,調用節點在接收到用戶端發起的目標交易後,需要調用可信第三方的合約引擎來執行相應智慧型合約的業務邏輯。
其中,該調用節點首先需要獲取供合約引擎執行相應智慧型合約的合約源碼:
在一實施例中,所述目標交易包括所述目標智慧型合約名稱;以及,所述目標智慧型合約中被調用的目標函數名稱;
所述從所述區塊鏈的分散式資料庫中獲取所述目標智慧型合約的合約源碼,具體包括:
基於所述目標交易包含的目標智慧型合約名稱,從所述區塊鏈的分散式資料庫中獲取該目標智慧型合約名稱對應的合約源碼;
基於所述目標智慧型合約中被調用的目標函數名稱,從所獲取的合約源碼獲取該目標函數名稱對應的合約源碼。
也就是說,基於所述目標智慧型合約名稱和目標調用函數名稱,節點設備就可以從所述區塊鏈的分散式資料庫中獲取所述目標智慧型合約所需的合約源碼。
其中,所述合約源碼是由一個個函數構成的,每個函數具有一定的邏輯功能,可以在合約引擎中執行相應邏輯;通過目標調用函數名稱可以確定相應的函數,以保證確定合約源碼包含的函數與目標調用函數一致。
該實施例中,對於可信第三方的合約引擎來說,為了避免合約引擎作惡,智慧型合約的合約源碼是存放在區塊鏈的分散式資料庫中的;當需要使用智慧型合約時,調用節點首先從分散式資料庫中獲取相應的合約源碼,然後再將合約源碼發送給可信第三方的合約引擎;如此,每次合約引擎執行的智慧型合約都是臨時由調用節點提供的。
在一實施例中,所述目標交易還包含有輸入參數;
所述將所述合約源碼發送給所述可信第三方,以使所述可信第三方的合約引擎執行所述合約源碼,包括:
將所述合約源碼以及所述輸入參數發送給所述可信第三方,以使所述可信第三方向所述節點設備獲取與所述輸入參數對應的輸入資料,將所述輸入資料載入到所述合約源碼,並執行所述合約源碼。
在實際應用中,有的業務類型可以不需要傳輸資料,則節點設備無需傳輸輸入參數(或者,輸入參數可以為空),合約引擎也無需向節點設備獲取輸入資料。
對於有些複雜業務,需要用到輸入資料,則需要用戶在發起交易時提交輸入參數。
如圖2所示,節點設備在調用合約引擎時,需要提供了合約源碼和輸入參數。此時,合約引擎可以根據該輸入參數從節點設備處獲取輸入資料。其中,所述輸入參數可以是由用戶端(即用戶)提供的,所述輸入資料可以是執行智慧型合約所需的其它資料。
以下舉例說明輸入參數和輸入資料的區別:
假設用戶端發送的交易請求是,令a+1。則欄位a和加1即為輸入參數,而a當前的值即為輸入資料。在實際運算a+1時,首先需要獲取a的原始值(輸入資料),然後在原始值基礎上加1才能得到執行結果。
由於區塊鏈具有不可篡改的特性,以及節點設備儲存有全量帳本(即資料),因此合約引擎可以向節點設備獲取該節點設備本機存放區的輸入參數相關的輸入資料。
合約引擎可以注入合約源碼,在獲取到輸入資料後,將所述輸入資料載入到所述合約源碼,並執行所述合約源碼得到執行結果。
需要說明的是,合約引擎在執行合約源碼過程中還會產生讀寫集。所述讀寫集可以包括執行合約源碼時需要的輸入資料,和輸入資料對應的輸出資料。對於複雜的合約源碼,輸入資料和輸出資料可以包含多組,即讀寫集是合約源碼執行過程中所需的所有輸入資料和對應的輸出資料,構成的資料集合,可以真實反映合約源碼的整個執行計算過程。請參考後續表1或表2所示的示例。
在一實施例中,所述執行結果為所述可信第三方基於所述合約源碼的執行結果生成的結果集;其中,所述結果集包括執行合約源碼過程中產生的讀寫集和執行合約源碼後得到的執行結果。
其中,合約引擎可以將輸入參數、合約源碼(或者合約源碼hash)、讀寫集和執行結果打包為結果集,並為所述結果集添加本合約引擎的簽章;將所述簽章後的結果集作為執行結果返回給所述節點設備。
相應地,節點設備接收所述合約引擎返回的結果集;其中,所述結果集為所述合約引擎將所述輸入參數、合約源碼(或者合約源碼hash)、讀寫集和執行結果打包後添加本合約引擎的簽章的集合。
該實施例中,合約引擎需要為結果集添加簽章,以保證智慧型合約執行的有效性。對於沒有簽章的結果集,節點設備是不予確認的,視為無效。
值得一提的是,合約源碼hash是指基於合約源碼得到的hash值;所述合約源碼hash可以用於校驗合約引擎調用的合約源碼是否存在篡改。舉例說明,假設節點設備提供的合約源碼為A,正確的hash為(A)hash;那麼節點設備或者其他節點只需要將目標智慧型合約的合約源碼的hash值與結果集中合約源碼hash值比對,就可以判斷合約引擎是否篡改了合約源碼。假設合約引擎擅自篡改了合約源碼,假設篡改後的合約源碼為A+1;那麼返回的合約源碼hash就變為(A+1)hash,顯然與原始合約源碼的(A)hash不一致。
在一實施例中,所述區塊鏈對接有作為校驗方的另一可信第三方;
所述方法還包括:
將所述執行結果發送給所述另一可信第三方,以由所述另一可信第三方的合約引擎,針對所述執行結果進行校驗;
如果所述執行結果校驗通過,將所述執行結果發佈至所述區塊鏈中的所有節點設備進行共識處理,並在共識通過後,將所述執行結果儲存至所述區塊鏈。
為了便於區分,以下將另一可信第三方的合約引擎簡稱為第二合約引擎,並將前述運行智慧型合約的合約引擎簡稱為第一合約引擎。
如圖2所示,節點設備可以通過第二合約引擎對第一合約引擎的執行結果進行檢驗。
在一實施例中,針對所述執行結果的校驗過程,包括:
所述第二合約引擎從所述讀寫集中讀取輸入資料,將讀取到的輸入資料載入到所述合約源碼,並模擬執行所述合約源碼;
確定模擬執行所述合約源碼產生的執行結果,與所述結果集中的執行結果是否一致;
如果是,確定所述執行結果校驗通過。
還可以為第一合約引擎的結果集添加該第二合約引擎的簽章。
在一實施例中,針對所述執行結果的校驗過程,包括:
針對所述執行結果的校驗過程,包括:
所述另一可信第三方的合約引擎從所述讀寫集中讀取輸入資料,將讀取到的輸入資料載入到所述合約源碼,並模擬執行所述合約源碼;
確定模擬執行所述合約源碼產生的讀寫集,與所述結果集中的讀寫集是否一致;
如果是,確定所述執行結果校驗通過。
還可以為第一合約引擎的結果集添加該第二合約引擎的簽章。
舉例說明,針對a+2,a+2;相應地讀寫集如下表1所示:
上述表1的含義,首先計算a+2;產生第一次的讀資料a=0,運行a+1後,產生第一次的寫資料a=2;然後計算a+2;產生第二次的讀資料a=2,運行a+2,產生第二次的寫資料a=4。
如果第一合約引擎作惡篡改了計算過程,將a+2,a+2;篡改為a+1,a+3;那麼讀寫集如下表2所示:
假設表2為第一合約引擎返回的結果集中的讀寫集,表1為第二合約引擎類比合約源碼運行後得到的讀寫集;比對表1和表2就可以確定表1存在問題,說明第一合約引擎存在篡改。
而如果僅通過比對執行結果,則表1和表2的執行結果均為4,容易造成誤判。
通過第二合約引擎判斷第一合約引擎返回的讀寫集是否真實有效,如前所述讀寫集包括一系列的輸入和輸出,從讀寫集中讀取輸入資料類比執行得到輸出資料後,逐個確認得到的輸出資料是否跟讀寫集一致(即整個過程各個環節的運算算結果都符合預期);如果全部一致,證明讀寫集有效,沒有被人篡改,此時才會進一步將最終的執行結果,與結果集中的結果進行匹配。如此校驗過程可以避免第一合約引擎作弊。
以下介紹本發明中節點設備間共識的機制:
如前所述如果所述執行結果校驗通過,節點設備需要將所述執行結果發佈至所述區塊鏈中的所有節點設備進行共識處理,並在共識通過後,將所述執行結果儲存至所述區塊鏈。
這裡的共識過程,可以為:
首先將執行結果在本地的狀態資料庫保存(更新自己的世界狀態)。在對智慧型合約的執行結果進行共識時,可以將收到的其它節點設備發送的執行結果與本地的狀態資料庫中的執行結果進行比較,來對執行結果進行共識。
如果所有節點設備返回的執行結果,或者大多數節點設備返回的執行結果,與自己的世界狀態中的執行結果一致,則共識通過。
在一可選的實施例中,除了保存執行結果還可以保存讀寫集:
首先將返回的讀寫集在本地的狀態資料庫保存(更新自己的世界狀態)。在對智慧型合約的執行結果進行共識時,可以將收到的其它節點設備發送的讀寫集與本地的狀態資料庫中的讀寫集進行比較,來對執行結果進行共識。
如果所有節點設備返回的讀寫集,或者大多數節點設備返回的讀寫集,與自己的世界狀態中的讀寫集一致,則共識通過。
該實施例,在區塊鏈中節點設備間進行共識時,不再需要重新執行智慧型合約,對智慧型合約的執行結果進行共識校驗,而是直接將結果集同世界狀態進行比較就可以完成對智慧型合約的執行結果的共識;因此可以大大提升共識效率。
請參考圖2,圖2為本發明一實施例提供的區塊鏈的智慧型合約執行方法的流程圖,所述區塊鏈對接有可信第三方,所述可信第三方中部署有執行智慧型合約的合約引擎,所述方法可以應用於合約引擎,所述方法可以包括以下步驟:
步驟210:所述可信第三方的合約引擎接收所述區塊鏈中的節點設備發送的合約源碼;其中,所述節點設備為所述區塊鏈中回應用戶端發起的用於調用目標智慧型合約的目標交易請求的節點,所述合約源碼為所述目標智慧型合約的合約源碼;
步驟220:執行所述合約源碼並向所述節點設備,並向所述節點設備返回執行結果。
該實施例是以合約引擎為執行主體進行描述的,相關的節點設備可以參考前述圖1所示實施例,在該實施例不再進行贅述。
在一實施例中,所述交易包含有輸入參數;
所述接收所述區塊鏈中的節點設備發送的合約源碼,具體包括:
接收所述區塊鏈中的節點設備發送的合約源碼以及所述輸入參數;
所述執行所述合約源碼,具體包括:
向所述節點設備獲取與所述輸入參數對應的輸入資料,將所述輸入資料載入到所述合約源碼,並執行所述合約源碼。
在一實施例中,所述方法還包括:
在接收到所述節點設備發送的針對其它可信第三方的合約引擎的結果集進行的校驗請求時,對所述結果集進行校驗;其中,所述結果集包括執行合約源碼過程中產生的讀寫集和執行合約源碼後得到的執行結果;
如果所述結果集校驗通過,將所述結果集中的執行結果發佈至所述區塊鏈中的所有節點設備進行共識處理,並在共識通過後,將所述結果集中的執行結果儲存至所述區塊鏈。
在一實施例中,針對所述第二執行結果的校驗過程,包括:
從所述讀寫集中讀取輸入資料,將讀取到的輸入資料載入到所述合約源碼,並模擬執行所述合約源碼;
確定模擬執行所述合約源碼產生的執行結果,與所述結果集中的執行結果是否一致;
如果是,確定所述執行結果校驗通過。
在一實施例中,針對所述第二執行結果的校驗過程,包括:
從所述讀寫集中讀取輸入資料,將讀取到的輸入資料載入到所述合約源碼,並模擬執行所述合約源碼;
確定模擬執行所述合約源碼產生的讀寫集,與所述結果集中的讀寫集是否一致;
如果是,確定所述執行結果校驗通過。
綜上所示實施例,提供了一種區塊鏈的智慧型合約執行方案,將智能合約與區塊鏈節點解耦合,區塊鏈中節點設備不再儲存智慧型合約也不負責智慧型合約的運行,而是由區塊鏈對接的可信第三方中部署的合約引擎負責運行智慧型合約;如此,當區塊鏈中回應用戶端發起交易的節點設備需要執行相關業務邏輯時,可以通過調用可信第三方的合約引擎,由合約引擎運行相關的智慧型合約從而得到執行結果。一方面,通過將智慧型合約與節點設備解綁,從而將智慧型合約分離出來由合約引擎運行,簡化了節點設備功能從而降低了對節點設備性能的要求(比如,性能不高的設備也可以作為節點設備接入區塊鏈)。另一方面,區塊鏈中節點設備間進行共識時,不再依賴智慧型合約進行共識,而是將結果集同世界狀態比較就可以實現共識,無需每個節點設備參與智慧型合約運算,大大提升了共識效率。再一方面,區塊鏈對接的可信第三方作為專用於運行智慧型合約的節點,可以預先設置強大的儲存和計算能力,以此部署大量的智慧型合約,並且智慧型合約的業務邏輯可以設計的較為複雜,以應對計算量較大、業務複雜度較高的業務需求。
與前述區塊鏈的智慧型合約執行方法實施例相對應,本發明還提供了區塊鏈的智慧型合約執行裝置的實施例。所述裝置實施例可以通過軟體實現,也可以通過硬體或者軟硬體結合的方式實現。以軟體實現為例,作為一個邏輯意義上的裝置,是通過其所在設備的處理器將非揮發性記憶體中對應的電腦業務程式指令讀取到記憶體中運行形成的。從硬體層面而言,如圖4所示,為本發明區塊鏈的智慧型合約執行裝置所在設備的一種硬體結構圖,除了圖4所示的處理器、網路介面、記憶體以及非揮發性記憶體之外,實施例中裝置所在的設備通常根據區塊鏈的智慧型合約執行實際功能,還可以包括其他硬體,對此不再贅述。
請參見圖5,為本發明一實施例提供的區塊鏈的智慧型合約執行裝置的模組圖,所述裝置對應了圖1所示實施例,所述區塊鏈對接有可信第三方,所述可信第三方中部署有執行智慧型合約的合約引擎,所述裝置包括:
接收單元310,區塊鏈中的節點設備接收用戶端發起的用於調用目標智慧型合約的目標交易;
回應單元320,回應於所述目標交易,從所述區塊鏈的分散式資料庫中獲取所述目標智慧型合約的合約源碼;
執行單元330,將所述合約源碼發送給所述可信第三方,以使所述可信第三方的合約引擎執行所述合約源碼,並向所述節點設備返回執行結果。
可選的,所述目標交易包括所述目標智慧型合約名稱;以及,所述目標智慧型合約中被調用的目標函數名稱;
所述回應單元320,具體包括:
回應於所述目標交易,基於所述目標交易包含的目標智慧型合約名稱,從所述區塊鏈的分散式資料庫中獲取該目標智慧型合約名稱對應的合約源碼;並,基於所述目標智慧型合約中被調用的目標函數名稱,從所獲取的合約源碼獲取該目標函數名稱對應的合約源碼。
可選的,所述交易包含有輸入參數;
所述執行單元330,包括:
將所述合約源碼以及所述輸入參數發送給所述可信第三方,以使所述可信第三方向所述節點設備獲取與所述輸入參數對應的輸入資料,將所述輸入資料載入到所述合約源碼,並執行所述合約源碼;以及向所述節點設備返回執行結果。
可選的,所述區塊鏈對接有作為校驗方的另一可信第三方;
所述裝置還包括:
校驗單元,將所述執行結果發送給所述另一可信第三方,以由所述另一可信第三方的合約引擎,針對所述執行結果進行校驗;如果所述執行結果校驗通過,將所述執行結果發佈至所述區塊鏈中的所有節點設備進行共識處理,並在共識通過後,將所述執行結果儲存至所述區塊鏈。
可選的,所述執行結果為所述可信第三方基於所述合約源碼的執行結果生成的結果集;其中,所述結果集包括執行合約源碼過程中產生的讀寫集和執行合約源碼後得到的執行結果;
針對所述執行結果的校驗過程,包括:
所述另一可信第三方的合約引擎從所述讀寫集中讀取輸入資料,將讀取到的輸入資料載入到所述合約源碼,並模擬執行所述合約源碼;
確定模擬執行所述合約源碼產生的執行結果,與所述結果集中的執行結果是否一致;
如果是,確定所述執行結果校驗通過。
可選的,所述執行結果為所述可信第三方基於所述合約源碼的執行結果生成的結果集;其中,所述結果集包括執行合約源碼過程中產生的讀寫集和執行合約源碼後得到的執行結果;
針對所述執行結果的校驗過程,包括:
所述另一可信第三方的合約引擎從所述讀寫集中讀取輸入資料,將讀取到的輸入資料載入到所述合約源碼,並模擬執行所述合約源碼;
確定模擬執行所述合約源碼產生的讀寫集,與所述結果集中的讀寫集是否一致;
如果是,確定所述執行結果校驗通過。
可選的,所述區塊鏈為聯盟鏈。
請參見圖6,為本發明一實施例提供的區塊鏈的智慧型合約執行裝置的模組圖,所述裝置對應了圖3所示實施例,所述區塊鏈對接有可信第三方,所述可信第三方中部署有執行智慧型合約的合約引擎,所述裝置包括:
接收單元410,所述可信第三方的合約引擎接收所述區塊鏈中的節點設備發送的合約源碼;其中,所述節點設備為所述區塊鏈中回應用戶端發起的用於調用目標智慧型合約的目標交易請求的節點,所述合約源碼為所述目標智慧型合約的合約源碼;
執行單元420,執行所述合約源碼並向所述節點設備,並向所述節點設備返回執行結果。
可選的,所述交易包含有輸入參數;
所述接收單元410中接收所述區塊鏈中的節點設備發送的合約源碼,具體包括:
接收所述區塊鏈中的節點設備發送的合約源碼以及所述輸入參數;
所述執行單元420中執行所述合約源碼,具體包括:
向所述節點設備獲取與所述輸入參數對應的輸入資料,將所述輸入資料載入到所述合約源碼,並執行所述合約源碼。
可選的,所述裝置還包括:
校驗單元,在接收到所述節點設備發送的針對其它可信第三方的合約引擎的結果集進行的校驗請求時,對所述結果集進行校驗;其中,所述結果集包括執行合約源碼過程中產生的讀寫集和執行合約源碼後得到的執行結果;
共識單元,如果所述結果集校驗通過,將所述結果集中的執行結果發佈至所述區塊鏈中的所有節點設備進行共識處理,並在共識通過後,將所述結果集中的執行結果儲存至所述區塊鏈。
可選的,針對所述第二執行結果的校驗過程,包括:
從所述讀寫集中讀取輸入資料,將讀取到的輸入資料載入到所述合約源碼,並模擬執行所述合約源碼;
確定模擬執行所述合約源碼產生的執行結果,與所述結果集中的執行結果是否一致;
如果是,確定所述執行結果校驗通過。
可選的,針對所述第二執行結果的校驗過程,包括:
從所述讀寫集中讀取輸入資料,將讀取到的輸入資料載入到所述合約源碼,並模擬執行所述合約源碼;
確定模擬執行所述合約源碼產生的讀寫集,與所述結果集中的讀寫集是否一致;
如果是,確定所述執行結果校驗通過。
可選的,所述區塊鏈為聯盟鏈。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、筆記型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
上述裝置中各個單元的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對於裝置實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離元件說明的單元可以是或者也可以不是實體上分開的,作為單元顯示的元件可以是或者也可以不是實體單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部模組來實現本發明方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
以上圖5描述了區塊鏈的智慧型合約執行裝置的內部功能模組和結構示意,其實質上的執行主體可以為一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器被配置為:
區塊鏈中的節點設備接收用戶端發起的用於調用目標智慧型合約的目標交易;其中,所述區塊鏈對接有可信第三方,所述可信第三方中部署有執行智慧型合約的合約引擎;
回應於所述目標交易,從所述區塊鏈的分散式資料庫中獲取所述目標智慧型合約的合約源碼;
將所述合約源碼發送給所述可信第三方,以使所述可信第三方的合約引擎執行所述合約源碼,並向所述節點設備返回執行結果。
以上圖6描述了基於區塊鏈的物流保價裝置的內部功能模組和結構示意,其實質上的執行主體可以為一種電子設備,包括:
處理器;
用於儲存處理器可執行指令的記憶體;
其中,所述處理器被配置為:
所述可信第三方的合約引擎接收所述區塊鏈中的節點設備發送的合約源碼;其中,所述節點設備為所述區塊鏈中回應用戶端發起的用於調用目標智慧型合約的目標交易請求的節點,所述合約源碼為所述目標智慧型合約的合約源碼;所述區塊鏈對接有可信第三方,所述可信第三方中部署有執行智慧型合約的合約引擎;
執行所述合約源碼並向所述節點設備,並向所述節點設備返回執行結果。
在上述電子設備的實施例中,應理解,該處理器可以是中央處理單元(英文:Central Processing Unit,簡稱:CPU),還可以是其他通用處理器、數位訊號處理器(英文:Digital Signal Processor,簡稱:DSP)、專用積體電路(英文:Application Specific Integrated Circuit,簡稱:ASIC)等。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等,而前述的記憶體可以是唯讀記憶體(英文:read-only memory,縮寫:ROM)、隨機存取記憶體(英文:random access memory,簡稱:RAM)、快閃記憶體、硬碟或者固態硬碟。結合本發明實施例所公開的方法的步驟可以直接體現為硬體處理器執行完成,或者用處理器中的硬體及軟體模組組合執行完成。
本發明中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於電子設備實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本領域技術人員在考慮發明及實踐這裡公開的發明後,將容易想到本發明的其它實施方案。本發明旨在涵蓋本發明的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本發明的一般性原理並包括本發明未公開的本技術領域中的公知常識或慣用技術手段。發明和實施例僅被視為示例性的,本發明的真正範圍和精神由下面的權利要求指出。
應當理解的是,本發明並不局限於上面已經描述並在圖式中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本發明的範圍僅由所附的申請專利範圍來限制。
讀 | 寫 |
a=0 | a=2 |
a=2 | a=4 |
讀 | 寫 |
a=0 | a=1 |
a=1 | a=4 |
110-130:步驟
210-220:步驟
310:接收單元
320:回應單元
330:執行單元
410:接收單元
420:執行單元
圖1是本發明一實施例提供的區塊鏈的智慧型合約執行方法的流程圖;
圖2是本發明一實施例提供的區塊鏈系統的架構示意圖;
圖3是本發明一實施例提供的區塊鏈的智慧型合約執行方法的流程圖;
圖4是本發明一實施例提供的區塊鏈的智慧型合約執行裝置的硬體結構圖;
圖5是本發明一實施例提供的區塊鏈的智慧型合約執行裝置的模組示意圖;
圖6是本發明一實施例提供的區塊鏈的智慧型合約執行裝置的模組示意圖。
Claims (16)
- 一種區塊鏈的智慧型合約執行方法,該區塊鏈對接有可信第三方,該可信第三方中部署有執行智慧型合約的合約引擎,該方法包括: 區塊鏈中的節點設備接收用戶端發起的用於調用目標智慧型合約的目標交易; 回應於該目標交易,從該區塊鏈的分散式資料庫中獲取該目標智慧型合約的合約源碼; 將該合約源碼發送給該可信第三方,以使該可信第三方的合約引擎執行該合約源碼,並向該節點設備返回執行結果。
- 根據請求項1所述的方法,該目標交易包括該目標智慧型合約名稱;以及,該目標智慧型合約中被調用的目標函數名稱; 該從該區塊鏈的分散式資料庫中獲取該目標智慧型合約的合約源碼,具體包括: 基於該目標交易包含的目標智慧型合約名稱,從該區塊鏈的分散式資料庫中獲取該目標智慧型合約名稱對應的合約源碼; 基於該目標智慧型合約中被調用的目標函數名稱,從所獲取的合約源碼獲取該目標函數名稱對應的合約源碼。
- 根據請求項1所述的方法,該交易包含有輸入參數; 該將該合約源碼發送給該可信第三方,以使該可信第三方的合約引擎執行該合約源碼,包括: 將該合約源碼以及該輸入參數發送給該可信第三方,以使該可信第三方向該節點設備獲取與該輸入參數對應的輸入資料,將該輸入資料載入到該合約源碼,並執行該合約源碼。
- 根據請求項3所述的方法,該區塊鏈對接有作為校驗方的另一可信第三方; 該方法還包括: 將該執行結果發送給該另一可信第三方,以由該另一可信第三方的合約引擎,針對該執行結果進行校驗; 如果該執行結果校驗通過,將該執行結果發佈至該區塊鏈中的所有節點設備進行共識處理,並在共識通過後,將該執行結果儲存至該區塊鏈。
- 根據請求項4所述的方法,該執行結果為該可信第三方基於該合約源碼的執行結果生成的結果集;其中,該結果集包括執行合約源碼過程中產生的讀寫集和執行合約源碼後得到的執行結果; 針對該執行結果的校驗過程,包括: 該另一可信第三方的合約引擎從該讀寫集中讀取輸入資料,將讀取到的輸入資料載入到該合約源碼,並模擬執行該合約源碼; 確定模擬執行該合約源碼產生的執行結果,與該結果集中的執行結果是否一致; 如果是,確定該執行結果校驗通過。
- 根據請求項4所述的方法,該執行結果為該可信第三方基於該合約源碼的執行結果生成的結果集;其中,該結果集包括執行合約源碼過程中產生的讀寫集和執行合約源碼後得到的執行結果; 針對該執行結果的校驗過程,包括: 該另一可信第三方的合約引擎從該讀寫集中讀取輸入資料,將讀取到的輸入資料載入到該合約源碼,並模擬執行該合約源碼; 確定模擬執行該合約源碼產生的讀寫集,與該結果集中的讀寫集是否一致; 如果是,確定該執行結果校驗通過。
- 根據請求項1所述的方法,該區塊鏈為聯盟鏈。
- 一種區塊鏈的智慧型合約執行方法,該區塊鏈對接有可信第三方,該可信第三方中部署有執行智慧型合約的合約引擎,該方法包括: 該可信第三方的合約引擎接收該區塊鏈中的節點設備發送的合約源碼;其中,該節點設備為該區塊鏈中回應用戶端發起的用於調用目標智慧型合約的目標交易請求的節點,該合約源碼為該目標智慧型合約的合約源碼; 執行該合約源碼並向該節點設備,並向該節點設備返回執行結果。
- 根據請求項8所述的方法,該交易包含有輸入參數; 該接收該區塊鏈中的節點設備發送的合約源碼,具體包括: 接收該區塊鏈中的節點設備發送的合約源碼以及該輸入參數; 該執行該合約源碼,具體包括: 向該節點設備獲取與該輸入參數對應的輸入資料,將該輸入資料載入到該合約源碼,並執行該合約源碼。
- 根據請求項8所述的方法,該方法還包括: 在接收到該節點設備發送的針對其它可信第三方的合約引擎的結果集進行的校驗請求時,對該結果集進行校驗;其中,該結果集包括執行合約源碼過程中產生的讀寫集和執行合約源碼後得到的執行結果; 如果該結果集校驗通過,將該結果集中的執行結果發佈至該區塊鏈中的所有節點設備進行共識處理,並在共識通過後,將該結果集中的執行結果儲存至該區塊鏈。
- 根據請求項10所述的方法,針對該第二執行結果的校驗過程,包括: 從該讀寫集中讀取輸入資料,將讀取到的輸入資料載入到該合約源碼,並模擬執行該合約源碼; 確定模擬執行該合約源碼產生的執行結果,與該結果集中的執行結果是否一致; 如果是,確定該執行結果校驗通過。
- 根據請求項10所述的方法,針對該第二執行結果的校驗過程,包括: 從該讀寫集中讀取輸入資料,將讀取到的輸入資料載入到該合約源碼,並模擬執行該合約源碼; 確定模擬執行該合約源碼產生的讀寫集,與該結果集中的讀寫集是否一致; 如果是,確定該執行結果校驗通過。
- 根據請求項8所述的方法,該區塊鏈為聯盟鏈。
- 一種區塊鏈的智慧型合約執行裝置,該區塊鏈對接有可信第三方,該可信第三方中部署有執行智慧型合約的合約引擎,該裝置包括: 接收單元,區塊鏈中的節點設備接收用戶端發起的用於調用目標智慧型合約的目標交易; 回應單元,回應於該目標交易,從該區塊鏈的分散式資料庫中獲取該目標智慧型合約的合約源碼; 執行單元,將該合約源碼發送給該可信第三方,以使該可信第三方的合約引擎執行該合約源碼,並向該節點設備返回執行結果。
- 一種區塊鏈的智慧型合約執行裝置,該區塊鏈對接有可信第三方,該可信第三方中部署有執行智慧型合約的合約引擎,該方法包括: 接收單元,該可信第三方的合約引擎接收該區塊鏈中的節點設備發送的合約源碼;其中,該節點設備為該區塊鏈中回應用戶端發起的用於調用目標智慧型合約的目標交易請求的節點,該合約源碼為該目標智慧型合約的合約源碼; 執行單元,執行該合約源碼並向該節點設備,並向該節點設備返回執行結果。
- 一種電子設備,包括: 處理器; 用於儲存處理器可執行指令的記憶體; 其中,該處理器被配置為上述請求項1-13中任一項所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910095127.9A CN110060155B (zh) | 2019-01-31 | 2019-01-31 | 区块链的智能合约执行方法及装置和电子设备 |
CN201910095127.9 | 2019-01-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202030691A true TW202030691A (zh) | 2020-08-16 |
TWI738046B TWI738046B (zh) | 2021-09-01 |
Family
ID=67316430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108131513A TWI738046B (zh) | 2019-01-31 | 2019-09-02 | 區塊鏈的智慧型合約執行方法及裝置和電子設備 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11108541B1 (zh) |
EP (1) | EP3859585B1 (zh) |
CN (1) | CN110060155B (zh) |
SG (1) | SG11202104418XA (zh) |
TW (1) | TWI738046B (zh) |
WO (1) | WO2020155811A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110060155B (zh) * | 2019-01-31 | 2021-03-23 | 创新先进技术有限公司 | 区块链的智能合约执行方法及装置和电子设备 |
CN110659907B (zh) * | 2019-09-24 | 2021-11-12 | 北京海益同展信息科技有限公司 | 用于执行智能合约的方法和装置 |
CN110955724A (zh) * | 2019-11-21 | 2020-04-03 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、节点设备及存储介质 |
CN111355718B (zh) * | 2020-02-25 | 2022-04-15 | 中国工商银行股份有限公司 | 区块链智能合约云化部署系统及方法 |
CN112380149B (zh) * | 2021-01-18 | 2021-04-06 | 腾讯科技(深圳)有限公司 | 基于节点内存的数据处理方法、装置、设备以及介质 |
US11962705B2 (en) * | 2021-10-07 | 2024-04-16 | Capital One Services, Llc | Secure serverless computing framework |
CN114297119B (zh) * | 2021-12-30 | 2024-06-14 | 北京百度网讯科技有限公司 | 智能合约执行方法、装置、设备以及存储介质 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9760895B2 (en) * | 2012-06-04 | 2017-09-12 | American Express Travel Related Services Company, Inc. | Systems and methods for delivering tailored content based upon a consumer profile |
US10046228B2 (en) * | 2016-05-02 | 2018-08-14 | Bao Tran | Smart device |
US10447478B2 (en) * | 2016-06-06 | 2019-10-15 | Microsoft Technology Licensing, Llc | Cryptographic applications for a blockchain system |
US10158479B2 (en) * | 2017-02-06 | 2018-12-18 | Northern Trust Corporation | Systems and methods for generating, uploading and executing code blocks within distributed network nodes |
US10362517B2 (en) * | 2017-04-07 | 2019-07-23 | Vapor IO Inc. | Distributed handoff-related processing for wireless networks |
CN107103054B (zh) * | 2017-04-12 | 2019-03-26 | 北京航空航天大学 | 一种私有区块链的智能合约异步执行存储系统与实现方法 |
CN107423945B (zh) * | 2017-04-13 | 2020-12-29 | 葛武 | 基于区块链技术的智能能源交易管理系统及方法 |
CN107526624B (zh) * | 2017-07-18 | 2020-12-08 | 杭州趣链科技有限公司 | 一种基于Java虚拟机的智能合约执行引擎 |
CN107464118A (zh) * | 2017-08-16 | 2017-12-12 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链智能合约的数据交易方法 |
CN108830606B (zh) * | 2018-05-30 | 2021-12-28 | 创新先进技术有限公司 | 智能合约的部署、调用、执行方法和装置 |
CN108833161B (zh) * | 2018-06-11 | 2020-09-15 | 北京航空航天大学 | 一种建立基于雾计算的智能合约微服务模型的方法 |
CN109146679B (zh) * | 2018-06-29 | 2023-11-10 | 创新先进技术有限公司 | 基于区块链的智能合约调用方法及装置、电子设备 |
CN109189396B (zh) * | 2018-08-16 | 2022-04-12 | 北京京东尚科信息技术有限公司 | 智能合约引擎组件、运行方法及存储介质 |
US11245576B2 (en) * | 2018-09-07 | 2022-02-08 | Dell Products L.P. | Blockchain-based configuration profile provisioning system |
US20200242595A1 (en) * | 2019-01-30 | 2020-07-30 | Salesforce.Com, Inc. | Systems, methods, and apparatuses utilizing a blended blockchain ledger in a cloud service to address local storage |
CN110060155B (zh) * | 2019-01-31 | 2021-03-23 | 创新先进技术有限公司 | 区块链的智能合约执行方法及装置和电子设备 |
-
2019
- 2019-01-31 CN CN201910095127.9A patent/CN110060155B/zh active Active
- 2019-09-02 TW TW108131513A patent/TWI738046B/zh active
- 2019-11-25 WO PCT/CN2019/120639 patent/WO2020155811A1/zh unknown
- 2019-11-25 EP EP19912802.6A patent/EP3859585B1/en active Active
- 2019-11-25 SG SG11202104418XA patent/SG11202104418XA/en unknown
-
2021
- 2021-04-29 US US17/244,719 patent/US11108541B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20210250164A1 (en) | 2021-08-12 |
WO2020155811A1 (zh) | 2020-08-06 |
EP3859585A1 (en) | 2021-08-04 |
US11108541B1 (en) | 2021-08-31 |
SG11202104418XA (en) | 2021-05-28 |
EP3859585B1 (en) | 2023-08-02 |
CN110060155A (zh) | 2019-07-26 |
TWI738046B (zh) | 2021-09-01 |
CN110060155B (zh) | 2021-03-23 |
EP3859585A4 (en) | 2021-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI738046B (zh) | 區塊鏈的智慧型合約執行方法及裝置和電子設備 | |
TWI737944B (zh) | 基於區塊鏈的交易執行方法及裝置、電子設備 | |
TWI735820B (zh) | 資產管理方法及裝置、電子設備 | |
CN109981679B (zh) | 在区块链网络中执行事务的方法和装置 | |
JP7007398B2 (ja) | トランザクション要求を処理するための方法及び装置 | |
TW202001656A (zh) | 基於區塊鏈的智能合約調用方法及裝置、電子設備 | |
TWI726573B (zh) | 基於區塊鏈的資料壓縮、查詢方法及裝置和電子設備 | |
TWI714308B (zh) | 基於區塊鏈的發票真偽驗證方法及裝置和電子設備 | |
WO2020082892A1 (zh) | 基于区块链的交易处理方法及装置、电子设备 | |
TWI719797B (zh) | 區塊鏈中智能合約的儲存、執行方法及裝置和電子設備 | |
TW202022857A (zh) | 基於區塊鏈的發票創建方法及裝置、電子設備 | |
TW202040447A (zh) | 基於區塊鏈的信用記錄、查詢方法及裝置和電子設備 | |
TW201935383A (zh) | 資產管理方法及裝置、電子設備 | |
TW201935375A (zh) | 資產管理方法及裝置、電子設備 | |
TW201822033A (zh) | 資源處理方法及裝置 | |
TWI717660B (zh) | 資金流動報表生成方法及裝置和電子設備 | |
CN110046523B (zh) | 智能合约校验方法及装置和电子设备 | |
TWI734217B (zh) | 基於區塊鏈的發票沖紅方法及裝置和電子設備 | |
WO2023231335A1 (zh) | 在区块链中执行交易的方法及区块链的主节点 | |
WO2023231337A1 (zh) | 在区块链中执行交易的方法、区块链的主节点和从节点 | |
TW202038122A (zh) | 基於區塊鏈的業務處理方法及裝置、電子設備 | |
JP2022539283A (ja) | ブロックチェーンとは異なる形式のストレージに格納されるブロックチェーンデータを検証する方法およびシステム | |
US20200202355A1 (en) | Storage and execution of smart contracts in blockchains | |
CN110009497B (zh) | 基于区块链的决策方法及装置和电子设备 | |
Chaudhary et al. | Auto-PUFChain: an automated interaction tool for PUFs and blockchain in electronic supply chain |