TW202139127A - 用於與區塊鏈相關聯之服務平台之運算服務 - Google Patents
用於與區塊鏈相關聯之服務平台之運算服務 Download PDFInfo
- Publication number
- TW202139127A TW202139127A TW110105840A TW110105840A TW202139127A TW 202139127 A TW202139127 A TW 202139127A TW 110105840 A TW110105840 A TW 110105840A TW 110105840 A TW110105840 A TW 110105840A TW 202139127 A TW202139127 A TW 202139127A
- Authority
- TW
- Taiwan
- Prior art keywords
- event
- smart contract
- request
- blockchain
- transaction
- Prior art date
Links
Images
Classifications
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
-
- 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
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Accounting & Taxation (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Data Mining & Analysis (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Economics (AREA)
- Power Engineering (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
在一個態樣中,本揭露內容提出用於針對一用戶端實施或提供與一區塊鏈相關聯之交易之一運算或執行服務的方法、裝置及系統。更詳細地,本揭露內容係關於一種用於使得能夠基於來自該用戶端之一超文字傳送協定(HTTP)傳輸協定格式(HTTP)請求而執行一或多個智慧型合約之方法。該方法包括存取該請求中之一智慧型合約SC並識別使用該區塊鏈實施之一事件串流ES,其中該事件串流ES特定針對於該智慧型合約SC,該事件串流ES表示該智慧型合約SC之狀態。該智慧型合約之當前狀態ESn
經判定。該方法接著包括調用該智慧型合約SC之執行。接著,該方法調用藉由處理該事件串流ES之一新事件En
來更新該事件串流ES、在所接收請求中識別該事件串流,且藉由產生一區塊鏈交易來處理該事件串流。接著基於該新事件En
將該區塊鏈上之該智慧型合約之該當前狀態更新為ESn
= ESn + 1
。接著提供與經更新當前狀態ESn + 1
相關聯之一結果。
Description
發明領域
本揭露內容大體上係關於用於實施與用於一或多個用戶端之分散式分類帳,亦即區塊鏈相關聯的一或多個服務之平台的方法及系統。特定言之,本揭露內容係關於但不限於提供對與用於一或多個用戶端之區塊鏈相關聯之多個功能及應用的存取,諸如實施事件串流或機器可讀合約。
發明背景
在此文件中,吾人使用術語「區塊鏈」來包括所有形式的基於電腦之電子分散式分類帳。此等分類帳包括基於共識之區塊鏈及交易鏈技術、許可及未許可分類帳、共用分類帳、公用及私用區塊鏈以及其變化。區塊鏈技術之最廣泛已知之應用為比特幣分類帳,但其他區塊鏈實施已被提出並開發。雖然可在本文中出於便利性及說明的目的提及比特幣,但應注意,本揭露內容不限於關於比特幣區塊鏈之使用,且與數位資產之任何種類或數位資產之表示相關聯的替代區塊鏈實施及協定屬於本揭露內容之範疇內。術語「用戶端」、「實體」、「節點」、「使用者」、「發送者」、「接收者」、「付款人」、「收款人」在本文中可指基於運算或處理器之資源。術語「比特幣」在本文中用以包括源自或基於比特幣協定之任何版本或變化。術語「數位資產」可指任何可轉移資產,諸如密碼貨幣、表示財產之至少一部分之符記、智慧型合約、許可證(亦即軟體許可證),或用於媒體內容之DRM合約等。應理解,術語「數位資產」在整個此文件中用於表示商品,其可與可轉移至自一個實體至另一實體之交易中之支付或作為支付提供之值相關聯。
區塊鏈為同級間電子分類帳,其經實施為由區塊構成的基於電腦之去中心化分散式系統,該等區塊又由交易構成。每個交易為一資料結構,且包括至少一個輸入及至少一個輸出,該資料結構編碼區塊鏈系統中之參與者之間的數位資產之控制的轉移。每個區塊包含先前區塊之散列,使得區塊變為鏈結在一起以產生自一開始便已寫入至區塊鏈之所有交易的永久性不可更改之記錄。交易包含嵌入至其輸入及輸出中的被稱為指令碼的小型程式,該等指令碼指定交易之輸出可被存取之方式及人員。在比特幣平台上,此等指令碼係使用基於堆疊之指令碼處理語言來撰寫。
為了將交易寫入至區塊鏈,交易必須經「驗證」。網路節點(挖掘者(miner))執行工作以確保每個交易係有效的,其中無效交易被網路拒絕。安裝於節點上之軟體用戶端藉由執行其鎖定及解鎖指令碼而對未用交易(UTXO)執行此驗證工作。若鎖定及解鎖指令碼之執行評估為真,則交易係有效的且接著將交易寫入至區塊鏈。因此,為了將交易寫入至區塊鏈,該交易必須:i)由接收交易之第一節點進行驗證,若交易經驗證,則節點將該交易轉送至網路中之其他節點;ii)添加至由挖掘者構建之新區塊;及iii)經挖掘,亦即添加至過去交易之公用分類帳。
應瞭解,由挖掘者執行之工作的本質將取決於用以維持區塊鏈之共識機制的類型。雖然工作證明(PoW)與原始比特幣協定相關聯,但應瞭解,可使用其他共識機制,諸如權益證明(PoS)、權益委託證明(DPoS)、能力證明(PoC)、經過時間證明(PoET)、授權證明(PoA)等。不同共識機制在挖掘如何在節點之間分散方面存在變化,其中成功地挖掘區塊之幾率取決於例如挖掘者之散列處理能力(PoW)、由挖掘者保持之密碼貨幣量(PoS)、委託給委託挖掘者之密碼貨幣量(DPoS)、挖掘者儲存密碼難題之預定解決方案的能力(PoC)、隨機指派至挖掘者之等待時間(PoET)等。通常,挖掘者具備用於挖掘區塊之激勵或獎勵。比特幣區塊鏈例如用新發佈之密碼貨幣(比特幣)及與區塊中之交易相關聯的費用(交易費用)來獎勵挖掘者。對於比特幣區塊鏈,發佈之密碼貨幣量隨時間而減少,其中激勵最終僅由交易費用組成。因此,應瞭解,交易費用之處置係用於將資料提交至諸如比特幣區塊鏈之公用區塊鏈的基礎機制之部分。
如先前所提及,給定區塊中之每個交易編碼區塊鏈系統中之參與者之間的數位資產之控制的轉移。數位資產無需一定對應於密碼貨幣。例如,數位資產可與文件、影像、實體物件等之數位表示有關。向挖掘者支付密碼貨幣及/或交易費用可簡單地充當用以藉由執行必要工作而維持區塊鏈之有效性的激勵。與區塊鏈相關聯之密碼貨幣可充當挖掘者之安全性,其中區塊鏈自身為主要與除了密碼貨幣以外之數位資產相關的交易之分類帳。在一些情況下,參與者之間的密碼貨幣之轉移有可能係由一實體處置,該實體不同於及/或獨立於使用區塊鏈來維持交易之分類帳的實體。
一旦作為UTXO儲存在區塊鏈中,使用者可將相關聯資源之控制轉移至與另一交易中之輸入相關聯的另一位址。此轉移通常而非基本上使用數位電子錢包進行。此數位電子錢包可為裝置;實體媒體;程式;諸如桌上型電腦、膝上型電腦或行動終端之運算裝置上之應用程式(app);或與諸如網際網路之網路上之域相關聯的遠端代管服務。數位電子錢包儲存公用及私用密鑰且可用以追蹤與使用者相關聯之資源、符記及資產等之所有權;接收或使用數位資產;轉移可與數位資產,諸如密碼貨幣、許可證、財產或其他類型之資源相關的符記。
儘管區塊鏈技術由於密碼貨幣實施之使用而為最廣泛已知的,但數位企業家正在探索比特幣所基於之密碼安全系統及可儲存於區塊鏈上以實施新系統之資料二者的使用。區塊鏈技術在區塊鏈可用於不限於密碼貨幣範圍之自動任務及過程時高度有利。此等解決方案將能夠利用區塊鏈的益處(例如,事件的永久性防篡改記錄、分散式處理等),同時在其應用中變得更通用。
當前研究之一個領域係使用區塊鏈實施「智慧型合約」。此等智慧型合約係經設計以使機器可讀合約或協定之條款之執行自動化的電腦程式。不同於將以自然語言撰寫之傳統合約,智慧型合約係包含可處理輸入以產生結果之規則的機器可執行程式,該等規則接著可取決於彼等結果而使得執行動作。區塊鏈相關關注之另一領域係使用「符記」(或「彩色幣」)來表示真實世界實體及經由區塊鏈轉移真實世界實體。潛在地敏感或秘密之項目可由符記表示,符記不具有可辨別之含義或值。符記因此充當允許自區塊鏈參考真實世界項目之識別符。
上文提及之實例或情境在利用區塊鏈之優勢來提供事件之永久性防篡改記錄時需要用戶端、用戶端實體、運算裝置或與用戶端相關聯之終端包括或實施軟體及/或硬體或處理器/模組,諸如用於實施用於管理數位資產,管理用於例如藉由比特幣中本聰之視覺(BSV)區塊鏈使用之橢圓曲線數位簽章演算法(ECDSA)之密碼密鑰的功能性的數位電子錢包。另外,用戶端裝置亦需要能夠實施區塊鏈交易建構及存取BSV庫。因此,用戶端不僅需要包括實施此功能性之處理,且亦需要確保在此類過程可利用區塊鏈網路來發送、接收及檢視資料及/或數位資產之前針對此類過程實施適當安全措施,該等數位資產與智慧型合約或表示真實世界資產交易之符記相關。
因此,期望實施安全、低複雜度、使用者友好、高效且穩固之技術,該技術將允許無論運算上是否複雜之任何用戶端皆能夠以運算上及功能上較不繁重之簡單、快速、準確、可靠且安全方式瞬時存取與區塊鏈相關聯之有用應用程式並與之互動。更特定言之,期望利用分散式分類帳(區塊鏈)技術及記錄之增大之安全性、透明度及可靠性的優勢,以提供用於多個區塊鏈相關服務或應用程式之共同平台或介面,該等服務或應用程式使得任何用戶端運算裝置能夠確保與用戶端相關聯之任何資料、事件或數位資產可瞬時且安全地被挖掘,或容易地寫入至區塊鏈中,藉此提供可視需要產生、寫入、更新、讀取或檢視的持續、防篡改且可審計記錄。
現已設計出此經改良解決方案。本揭露內容藉由提出一或多種技術來解決上文技術問題,藉此與用戶端相關聯之資料或資訊可藉由提供用於與區塊鏈相關聯之一或多個服務之應用程式設計介面(API)的方法、裝置及系統簡單地、安全地且瞬時地寫入至區塊鏈中或自區塊鏈獲得,而此類用戶端無需實施用於使用區塊鏈之任何處理或功能性,同時仍能夠利用與區塊鏈相關聯之所有優勢。
發明概要
在第一態樣中,本揭露內容提出用於針對用戶端實施或提供與區塊鏈相關聯之交易之運算或軟體執行服務的方法、裝置及系統。更詳細地,本揭露內容係關於一種用於使得能夠基於來自該用戶端之超文字傳送協定(HTTP)傳輸協定格式(HTTP)請求而執行一或多個智慧型合約之方法。該方法包括存取該請求中之智慧型合約SC並識別使用該區塊鏈實施之事件串流ES,其中該事件串流ES特定針對於該智慧型合約SC,該事件串流ES表示該智慧型合約SC之狀態。該智慧型合約之當前狀態ESn
經判定。該方法接著包括調用該智慧型合約SC之執行。接著,該方法調用藉由處理該事件串流ES之新事件En
更新該事件串流ES、在所接收請求中識別該事件串流,且藉由產生區塊鏈交易來處理該事件串流。接著基於該新事件En
將該區塊鏈上該智慧型合約之該當前狀態更新為ESn
= ESn +1
。接著提供與經更新當前狀態ESn +1
相關聯之結果。
在第二態樣中,本揭露內容提出用於存取與區塊鏈相關聯之智慧型合約之方法、裝置及系統。更詳細地,第二態樣之該方法包含以下步驟:獲得或識別與平台相關聯以用於執行智慧型合約SC之端點,及將對於有關該智慧型合約SC之一或多個事件En
之請求發送至該平台,其中基於HTTP格式而發送該請求。該方法包括獲得一或多個軟體庫及驗證工具以用於處理與該智慧型合約SC相關聯之資料。該方法亦包括接收基於有關所請求事件En
之區塊鏈交易之輸出指令碼的結果,該結果表示該智慧型合約SC之經更新狀態,該結果使用HTTP格式接收。
貫穿本說明書,字組「包含(comprise)」或諸如「包括」、「包含(comprises)」或「包含(comprising)」之變化應理解為暗示包括所陳述之要素、整數或步驟,或要素、整數或步驟之群組,但不排除任何其他要素、整數、步驟,或要素、整數或步驟之群組。
較佳實施例之詳細說明
本揭露內容大體上係關於提供與區塊鏈相關聯之多個服務之平台,該平台係為多個用戶端提供並藉由與應用程式設計介面(API)相關聯之至少一個平台處理器實施。多個服務之此平台之實例闡明於nChain控股有限公司在2020年2月19日申請之英國專利申請案第2002285.1號中。
有利地,此平台處理器API允許基於網路之互動介面,亦即,其可實施為用於一或多個用戶端之網路服務,使得可使用基於網路之服務的標準網際網路通訊協定經由網際網路進行通訊。舉例而言,可基於諸如TCP/IP等輸送層協定來傳輸及接收應用程式層級或用戶端與伺服器之間的層(在此情況下為平台服務)中之HTTP訊息或請求,諸如HTTP、HTTPS等。對HTTP傳輸協定或HTTP API之參考在本文中亦囊封所有標準網際網路通訊協定,諸如TCP/IP、UDP、HTTPS等。
平台處理器可實施為HTTP API端點或與HTTP API端點相關聯。在一些實例中,平台處理器被實施為代表性狀態轉移(REST)端點。有利地,API可實施為REST端點,藉此亦允許用戶端使用標準網際網路或基於網路之協定(諸如HTTP或HTTPS)進行通訊。有利地,藉由實施提供為用於一或多個用戶端之API之平台,允許與用戶端相關聯之一或多個處理器註冊或使用由平台處理器提供之網路服務來將資料寫入或存取至區塊鏈中。與平台相關聯之一或多個處理器可使用基於標準之介面設計實施所提供服務中之一或多者,該介面設計諸如但不限於REST,其為用於開發網路服務及基於網路之互動的架構式樣。有利地,用戶端可因此經由HTTP或類似網際網路命令與平台服務通訊。更有利地,對於所提供服務中之任一者,用戶端無需實施BSV、比特幣、區塊鏈知識、ECDSA或其他密碼密鑰管理庫,或諸如數位電子錢包軟體等之交易建構軟體。使用一或多個處理資源或使用者終端之用戶端可簡單地登記以經由一些已知鑑認技術來使用平台,該等技術諸如用於驗證用戶端身分之密碼保護授權或標準公用密鑰基礎架構(PKI)。用戶端接著應能夠簡單地經由基本HTTP或類似者與平台服務通訊。
可經由平台提供的與區塊鏈相關聯之服務的一些實例為:
-用於將資料寫入/提交至區塊鏈中以更改區塊鏈之狀態的資料服務;
-用於讀取/獲得反映區塊鏈之當前狀態的資料的資料服務;
-與簡化支付驗證相關聯的用於與區塊鏈相關聯之交易的服務;
-與對與區塊鏈相關聯之一或多個事件串流及/或機器可讀合約之管理相關聯的服務;
-與數位電子錢包框架之管理相關聯的用於多個用戶端的服務。
在可存在與平台處理器相關聯之多個處理器或網路伺服器之情況下,可提供應用程式設計介面(API)轉換器以用於以HTTP傳輸協定格式自用戶端接收請求、將所接收請求轉換為遠端程序調用(RPC)格式,以及將RPC請求發送至該多個處理器當中經組配以實施所接收請求中經識別之服務的給定處理器。在反向流動路徑中,可接收以RPC格式與給定處理器相關聯之回應,並將該回應轉換成使用HTTP或類似傳輸協定發送至用戶端。此係有利的,因為其允許用戶端使用基於網路之平台API經由簡單HTTP傳達與區塊鏈相關聯之請求,且無縫地提供與實施上文所描述服務,但不使用用於網路服務之網際網路協定通訊標準進行通訊的節點或伺服器中之任一者的互操作性。所實施之API轉換器不限於HTTPS至RPC轉換,且反之亦然,或就此而言,其他基於網路之協定至替代通訊協定,該等替代通訊協定由實施上文服務中之一或多者的平台處理器、用於給定密碼貨幣之網路或可另外設想之數位資產所支援。反向流動路徑包括以RPC格式自各別處理器接收與對應區塊鏈交易相關聯之回應,且因此使用HTTP轉換各別回應以用於發送至用戶端上。因此,由平台處理器有利地實施所提出介面實現了無縫通訊,以用於在用戶端及挖掘者使用不同無線資料通訊協定及機制時將交易提交至區塊鏈。
在一些實例中,HTTP API可與與平台處理器相關聯之控制代碼或別名相關聯。此解決方案提出於均以nChain控股有限公司之名義的美國專利申請案第16/384696號及英國專利申請案第1907180.2號中。此等申請案闡明基於別名之支付服務及相關聯協定,稱為bsvalias支付服務,其中別名用於定址而非實體之公用位址。在此情況下,別名將特定針對於平台處理器且由諸如bsvalias等基於別名之定址服務提供,該定址服務具有提供關於有關平台處理器之一或多個能力之細節的可自經定義或熟知位置存取之機器可讀資源。別名亦可與用於鑑認之不對稱密碼密鑰對相關聯。
在第一態樣中,本揭露內容提供用於使得能夠執行與區塊鏈相關聯之一或多個智慧型合約之電腦實施方法,該方法藉由與應用程式設計介面(API)相關聯之平台處理器實施以使得用戶端能夠存取服務以用於執行智慧型合約。此係關於如上文所解釋之平台的執行或電腦服務,此係因為其涉及促進與用於用戶端之區塊鏈相關聯的執行或操作。API可基於HTTP API或基於基於別名之定址端點,如上文針對平台處理器所解釋。
第一態樣之方法包含自用戶端接收請求之步驟,該請求關於智慧型合約SC。已知,智慧型合約或機器可讀合約係意欲用數位方式促進、驗證或強制執行二個或多於二個實體之間的合約或協議之協商或執行的電腦協定或軟體。用戶端可為與上文所解釋之平台服務相關聯之多個用戶端當中的一個用戶端。在一些實施例中,來自用戶端之請求係基於超文字傳送協定(HTTP)傳輸協定格式。待執行之智慧型合約係自請求識別。舉例而言,此可基於請求中之識別符或關鍵字。該方法包括存取有關請求之智慧型合約SC軟體。智慧型合約可存取自提供於平台內之諸如合約儲存器等儲存模組或可遠端地位於或代管於可由平台處理器存取之伺服器上。
該方法接著包括識別與該區塊鏈相關聯之事件串流(ES),該事件串流ES特定針對於該智慧型合約SC且表示該智慧型合約SC之狀態。用於實施區塊鏈中之事件串流之實例機構闡明於nChain控股有限公司在2020年2月19日申請之英國專利申請案第2002285.1號中。事件串流提供按次序執行之事件之確切序列之日誌且實施於區塊鏈上。請求中有關智慧型合約SC之事件串流ES可直接自區塊鏈獲得,或此可自複製區塊鏈上之事件串流之鏈外日誌或資料庫獲得。舉例而言,平台處理器可與快照例項資料庫相關聯,該快照例項資料庫經組配以提供或指示智慧型合約SC之當前狀態,如區塊鏈中之各別事件串流ES在任何給定時間所記錄。每一智慧型合約將僅存在與多個用戶端當中的給定用戶端相關聯之一個事件串流。在一些實施例中,多個用戶端當中的每一用戶端可與可用於識別與各別用戶端相關聯之特定智慧型合約SC的帳戶或識別符相關聯。
在一些實施例中,事件串流在區塊鏈上實施為有限狀態機(FSM),諸如確定性有限自動機(DFA),其為表示具有有限數目個狀態之系統的熟知運算術語,且其可在給定時間處於僅一個狀態中,具有用於自一個階段轉變至下一階段之轉變功能或觸發事件。在一些實施例中,此事件串流適用於表示技術過程之控制手段或技術。事件串流ES表示區塊鏈上之機器可讀合約或智慧型合約,其中有利地,將智慧型合約SC之過去及當前狀態之不可變記錄寫入至區塊鏈中。在一些實施例中,自用戶端接收到之請求包括觸發事件,以使得能夠在事件串流ES中進行狀態轉變,諸如以更改智慧型合約SC之狀態。
第一態樣之方法包含判定智慧型合約SC之當前狀態ESn
之步驟。此係基於有關其之事件串流ES而判定。SC之當前狀態指示為ESn
,其中n為自0至N之整數,每一整數n表示與智慧型合約SC相關聯之事件之當前狀態或當前數目,且N表示n之最大值或終值或狀態。在一些實施例中,當前狀態之判定可基於基於與事件串流ES相關聯之最新結果的當前狀態之指示或記錄。如上文所提及,該結果表示智慧型合約SC之狀態,且此可儲存於區塊鏈上或用於事件串流ES之一或多個單獨鏈外儲存資源中,諸如關於特定針對於智慧型合約SC之事件串流ES之資料的事件日誌。
在一些實施例中,針對各別智慧型合約SC之事件串流ES可基於與事件串流ES相關聯之較早或先前區塊鏈交易之識別符而識別。在一些實施例中,若請求中不存在針對智慧型合約SC經識別之事件串流,或若不存在針對與智慧型合約SC相關聯之事件串流ES經識別之先前狀態,則此為以下判定:當前狀態為第一狀態,亦即n = 0,且將針對與智慧型合約相關聯之用戶端產生新事件串流。在一些實施例中,當前狀態亦可擷取或讀取自直接來自區塊鏈之事件串流ES。此操作可由如上文所提及之資料讀取器執行,該資料讀取器可為由平台處理器提供的多個服務當中之服務。
本揭露內容的方法接著包括調用基於所接收請求執行智慧型合約SC。在一些實施例中,一旦識別或產生針對智慧型合約SC之事件串流ES,則智慧型合約SC之軟體程式碼或邏輯之執行便被自動地觸發。在一些實施例中,根據用戶端請求之執行可由與平台相關聯之一或多個處理器執行。在其他實施例中,智慧型合約程式碼或邏輯之執行可係基於無伺服器執行技術,其中平台處理器經組配以自可供使用之多個伺服器或伺服器集區當中識別可用伺服器。在此情況下,所需之任何API及/或驅動程式及/或可執行程式碼等將提供至可用伺服器以用於執行與智慧型合約SC相關聯之一或多個軟體常式或程式設計指令。
該方法包括調用有關智慧型合約SC之事件串流ES之處理或更新,使得事件串流基於所接收請求反映智慧型合約SC之狀態的步驟。此包括處理事件串流之新事件En
。新事件En
係基於對於智慧型合約SC之來自用戶端的所接收請求。此可為與對智慧型合約之請求相關聯的事件資料。此相同事件在一些實施例中係用於執行上文所提及之智慧型合約SC的事件,此係因為事件串流有關該事件並追蹤智慧型合約SC之階段。在一些實施例中,一旦識別了各別項目中之每一者,則調用智慧型合約SC及事件串流之以上步驟便基於事件資料串聯地或同時地發生。在一些實施例中,一旦執行智慧型合約SC邏輯,便處理事件串流ES。在一些實施例中,基於請求之新事件En
可藉由智慧型合約之執行針對事件串流進行識別。因此,藉此,智慧型合約軟體自身可被視為用於事件串流ES之輸入,且在處理任何資料之前經確認或保存至事件串流。此可為用於初始化用於用戶端之新智慧型合約SC的情況。
在一些實施例中,調用有關智慧型合約之事件串流ES之處理或更新的步驟係藉由平台處理器進行。在其他實施例中,調用事件串流ES之處理或更新的步驟進一步包括如上文所闡明的存取與平台處理器相關聯之資料寫入器或資料服務以用於藉由將資料寫入至與區塊鏈相關聯之事件串流ES中來處理新事件En
的步驟。
該方法接著包括基於目前針對與區塊鏈相關聯之事件串流ES處理的新事件En
獲得智慧型合約之經更新當前狀態ESn +1
。該方法接著包括儲存或提供基於智慧型合約SC之經更新當前狀態之結果,其中ESn
= ESn +1
。在一些實施例中,結果可以HTTP傳輸格式直接提供至用戶端。
有利地,第一態樣使得能夠建立及/或維持/更新防篡改記錄或日誌,或確認與事件串流相關聯之事件之依序發生的憑證,其中事件係基於用於給定智慧型合約之所接收用戶端輸入,以用於執行智慧型合約。因此,本揭露內容提出用於使得能夠處理,亦即產生、更新及/或終止事件串流ES之方法、裝置及系統,該事件串流使用區塊鏈實施且自動地產生與有關事件串流ES之智慧型合約SC相關聯之事件的防篡改日誌或記錄。
在一些實施例中,可將結果儲存於上文所提及之智慧型合約的快照例項資料庫中或儲存於追蹤智慧型合約SC之執行的事件串流ES之單獨鏈外日誌中,其中每一所儲存事件串流特定針對於給定智慧型合約。有利地,提供結果作為鏈外之事件日誌或例項快照資料庫中之快照使得智慧型合約SC之狀態能夠藉由任何其他實體(諸如,用戶端或任何感興趣的第三方(經受所提供或允許之存取))容易且獨立地驗證,而不必獲得與區塊鏈中之事件串流相關聯的一或多個交易。
在第一態樣之一些實施例中,回應於自用戶端接收到請求,該方法包含提供一或多個軟體庫及/或驗證工具以用於處理與智慧型合約SC相關聯之資料至用戶端。此可以軟體開發套件之形式提供。有利地,軟體庫為用戶端提供重新執行事件串流從而能夠基於給定事件獨立地獲得智慧型合約之狀態或快照的功能性。提供至用戶端之驗證工具有利地使得用戶端能夠比較智慧型合約之所恢復或重新執行快照與所獲得之結果,亦即,基於針對智慧型合約SC之儲存於區塊鏈上之事件串流ES。在一些實施例中,驗證工具亦使得能夠藉由可儲存於鏈外儲存日誌或例項快照資料庫上之智慧型合約之當前快照來驗證經重新執行或經恢復事件串流,以驗證其是否匹配。在一些實施例中,例如若需要審計,則驗證工具亦可使得用戶端能夠執行與與區塊鏈中之事件串流ES相關聯之資料的比較。若經重新產生或經恢復事件串流與所獲得結果匹配,則可確立所獲得之結果與區塊鏈中所記錄之結果一致,且其在到達用戶端時或到達用戶端之前尚未被惡意方篡改。若經重新產生事件串流並不匹配反映智慧型合約SC之事件串流ES的所獲得之結果或儲存於鏈外儲存器中之結果快照,則此可為結果可能並非智慧型合約之狀態的真實反映之指示。在一些實施例中,若使用經恢復事件串流之比較不會引起匹配,則可存在在與驗證工具相關聯之此比較之後針對用戶端產生的錯誤通知或訊息。在一些情況下,亦可向平台處理器通知此偏差。
現將解釋與基於在平台處理器處接收到之用戶端請求中之一些事件資料處理新事件En
相關聯的步驟。
在第一態樣之一些實施例中,若判定n = 0,則新事件En
被識別為第一事件以產生有關智慧型合約SC之各別事件串流ES。在此情況下,新事件En
藉由以下步驟處理,該等步驟可藉由平台處理器或用於運算服務模組之特定執行器平台或藉由資料寫入器模組實施,該資料寫入器模組亦可為平台或與平台相關聯之服務。針對智慧型合約SC產生第一區塊鏈交易TX0
,其包括為塵埃輸出之第一未用輸出。在本揭露內容之區塊鏈交易的上下文中,區塊鏈交易塵埃或簡單地「塵埃」應理解為具有低或極小輸出值的數位資產或密碼貨幣之可用交易,亦即,該值可比用於挖掘區塊鏈中之輸出的費用小得多。此塵埃輸出可為可使用之密碼貨幣或數位資產輸出之最小值。在一些實施例中,可由平台處理器提供或管理與此類塵埃交易相關聯之數位資產或密碼貨幣資金,亦即,處置數位資產之最小值在其輸出中之轉移的彼等資金。換言之,本揭露內容中針對區塊鏈交易提及之塵埃輸出與具有低於交易限值之值的數位資產相關聯,亦即,塵埃輸出之值可能低於例如使用此交易可能需要之挖掘費用。
若判定0 < n < N,其中N為n之終值或最大值,則En
被識別為修正與智慧型合約SC相關聯之現有事件串流ES的事件。在此情況下,新事件En
藉由以下步驟處理,該等步驟可藉由平台處理器或用於運算服務模組之特定執行器平台或藉由資料寫入器模組實施,該資料寫入器模組亦可為平台或與平台相關聯之服務。產生當前區塊鏈交易TXn
,其包括與針對同一事件串流之先前交易相關聯的使用塵埃輸出之第一輸入;為針對當前交易之塵埃輸出之第一未用交易輸出;及表示當前事件En
的與事件資料相關聯之最終未用交易輸出。在一些實施例中,事件資料包括於資料載體元素中。此可為交易之不可用OP-RETURN輸出。在一些實施例中,在當前區塊鏈交易之最終未用交易輸出中的事件En
之事件資料包括事件資料之散列。此有利地保持事件串流ES之事件資料內容為私密的。在一些實施例中,該事件資料之散列係由平台處理器應用,藉此有利地允許平台服務或處理器私密地保持此事件資料。在其他實施例中,該事件資料之散列係由用戶端裝置應用,之後包括於由平台處理器接收之請求中。此有利地使得用戶端能夠私密地保持請求中之事件或與事件相關聯之資料,甚至不與平台共用。在其他實施例中,最終未用交易輸出中之事件En
的事件資料包括原始事件資料,該原始事件資料一旦寫入或提交至區塊鏈,在區塊鏈上係公用的。
若判定n = N,則En
被識別為終止與智慧型合約SC相關聯之事件串流ES的最終事件。在此情況下,新事件En
藉由以下步驟處理,該等步驟可藉由平台處理器或用於運算服務模組之特定執行器平台或藉由資料寫入器模組實施,該資料寫入器模組亦可為平台或與平台相關聯之服務。產生最終區塊鏈交易TXN
,包括:第一輸入,其使用與針對該事件串流之先前交易相關聯的塵埃輸出;第一未用交易輸出,其與超出經定義塵埃輸出限值(亦即,超出數位資產或密碼貨幣之經定義或最小值)的數位資產相關聯。有利地,不存在塵埃輸出在此情況下表示事件串流之終止,因為此表示事件串流中沒有更多事件追蹤,亦即,序列中沒有更多事件。提供高於塵埃限值之第一輸出用以傳信鏈之末端。此外,最終區塊鏈交易不具有任何事件資料輸出,亦即,不存在資料載體元素,此有利地傳信此並非用以更改事件串流而是終止事件串流之資料事件。
在對於上文所論述的事件串流ES的n之三種情況中之任一者中,將交易提交至區塊鏈,且基於HTTP傳輸協定格式提供與交易相關聯之結果。在一些實施例中,與請求相關聯之事件,亦即,E0
、En
或EN
可為關於各別請求之單個事件或二個或更多個事件。舉例而言,請求可包括每一E0
、En
或EN
的二個或更多個子事件之資料集。在一些實施例中,結果係基於交易或與各別交易相關聯之事件的事件資料輸出。在一些實施例中,所傳回之任何結果或事件資料可保持於交易之不可用OP_RETURN輸出中。此為指令碼作業碼,其可用以在區塊鏈上寫入任意資料且亦將交易輸出標記為無效。作為另一實例,OP_RETURN為指令碼語言之作業碼,其用於產生交易之不可用輸出,該輸出可儲存交易內之資料,諸如元資料,且藉此將元資料不可變地記錄在區塊鏈上。元資料可包含需要儲存於區塊鏈中之日誌或條目或文件。在一些實施例中,事件資料或結果可被視為包含於各別交易之不可用輸出中的酬載。可藉助於終止彼輸出之鎖定指令碼的作業碼,例如,上文所提及之OP_RETURN使得此輸出不可用。然而,在其他實施例中,可以其他方式包括酬載或事件資料。如上文所提及,結果係有關智慧型合約SC之當前狀態之快照。此結果係儲存於與平台處理器相關聯之智慧型合約的例項狀態資料庫或另一鏈外事件日誌中及/或可自該例項狀態資料庫或另一鏈外事件日誌存取。
在一些實施例中,與事件串流ES相關聯之結果包括憑證,其確認以下各者中之至少一者:
-其中該事件En
被提交至該區塊鏈之交易識別符;
-該交易至該區塊鏈中之標頭的Merkle包括證明;
-其中包括該交易之區塊標頭的複本。
使用交易中之塵埃輸出係有利且關鍵的,以用於在所有交易針對有關正被執行之智慧型合約的事件串流ES而發生時維持所有交易之不可變的連續記錄。此係因為,儘管藉由將交易發佈至區塊鏈,所有區塊鏈交易皆將經時間戳記且按次序保持在區塊鏈中,但此並不能保證其依序次序之保持。此係因為可在不同時間將交易挖掘至區塊中。因此,僅鏈中之區塊的排序在區塊鏈中遵循時間順序,而非個別交易。然而,為了追蹤、記錄及審計可為智慧型合約之事件串流之事件的確切依序次序,有利地,使用必須由序列中之下一交易之第一輸入使用的塵埃輸出確保了按時間順序追蹤交易之次序且產生防篡改記錄。此係因為一旦經挖掘至區塊中,塵埃自先前交易至序列中之下一交易的支付確保了,與比特幣協定規則一致地,所嵌入資料載體元素(其為每一交易中之最終輸出)之序列無法經重新排序,且不會發生***或刪除,此可改變序列,而不會立即明顯發現事件串流已受損。在一些實施例中,比特幣協定固有之雙重使用預防確保了密碼貨幣(例如,塵埃)在不同位址之間的移動,且因此相關聯事件保持按時間次序。因此,此情形改良了區塊鏈上之智慧型合約,以及使用智慧型合約之各別事件串流進行的一系列事件發生之日誌、複本或複寫之安全性。與塵埃輸出相關聯之資金可如上文所提及藉由平台處理器提供或管理。在一些實施例中,平台處理器例如自操作性浮體提供挖掘費用以確保塵埃輸出產生實際上挖掘之Tx。
在一些實施例中,判定待用於與事件串流ES相關聯之請求的階層式確定性密鑰鏈K。此密鑰鏈對於給定事件串流為唯一的。可接著針對每一相關聯事件自種子或父或主密鑰對K導出私用/公用密碼密鑰對,使得K = Kn =0 至N
,其中n為自0至N之整數,每一整數n表示與智慧型合約SC相關聯之事件之當前狀態或當前數目,其中N表示n之最大值或終值。此有利地確保了針對特定事件串流導出之密鑰與共同主或種子密鑰相關,且可經導出以用於處理每一各別事件。以此方式,有利地,藉由用於當前事件之所導出密鑰Kn
來保護與塵埃輸出相關聯之鎖定指令碼,且第一輸入各自使用先前密鑰對Kn -1
來使用來自先前交易之塵埃輸出。此確保了輸出可僅與特定針對於各別先前交易之對應密鑰對一起使用。
在一些實施例中,如上文針對第三態樣所論述,所產生交易中之每一者可進一步包含與數位資產相關聯之其他輸入。此輸入可基於由平台處理器管理之操作性浮動來提供。在一些實施例中,此輸入可與由支付處理器維持或控制的數位資產或密碼貨幣資源或資金相關聯,以涵蓋交易挖掘費用及用於區塊鏈之一或多個其他操作等。交易亦可具有與數位資產相關聯之一或多個改變輸出。如上文所提及,最終交易具有所有改變輸出。
在一些實施例中,可基於與所提交區塊鏈交易相關聯之交易識別符來識別事件串流ES。在一些實施例中,亦可基於與最近提交之區塊鏈交易相關聯之交易識別符來識別與事件串流ES相關聯的狀態。
在一些實施例中,該方法包括將基於事件串流ES之每一事件之一或多個結果的記錄或日誌之複本儲存於鏈外儲存資源中。此儲存資源可與平台處理器相關聯,或在不同裝置、資料庫或服務中,在由用戶端請求時,可自該等裝置、資料庫或服務請求或擷取該儲存資源。有利地,與事件串流之結果相關聯的日誌之儲存被單獨地儲存,以避免下載整個區塊鏈及對於與事件串流相關聯之任何查詢篩選資料的要求。可在審計或資料驗證期間之情形中檢查實施事件串流之區塊鏈自身。備份或單獨複本可接著用於事件串流之快速查詢及獨立驗證,如上文所解釋。
在第三態樣之一些實施例中,提供用於存取智慧型合約之由該多個用戶端當中的給定用戶端之一或多個處理器實施之電腦實施方法,其包含以下步驟:獲得或識別與與平台相關聯之一或多個處理器相關聯的應用程式設計介面(API)端點,及請求與智慧型合約SC之執行相關聯之服務。該方法亦包括發送對於有關智慧型合約SC之一或多個事件En
之請求。如上文所提及,請求係使用超文字傳送協定(HTTP)傳輸協定格式發送。
該方法接著包括獲得一或多個軟體庫及/或驗證工具以用於處理與該智慧型合約SC相關聯之資料。該方法亦包括接收與區塊鏈交易之輸出指令碼相關聯的結果,該區塊鏈交易與經請求事件En
有關,該結果係基於該HTTP傳輸協定格式接收的。在一些實施例中,該結果包括智慧型合約SC之經更新狀態之指示。在一些實施例中,該方法進一步包括以下步驟:使用一或多個軟體庫恢復與智慧型合約SC相關聯之快照或狀態,此恢復可基於與事件串流ES之事件En
相關聯之所接收結果或使用該所接收結果來執行,亦即,類似於重新執行與事件En
相關聯之事件串流。接著,使用該一或多個驗證工具,該方法包括比較經恢復快照與自事件串流ES獲得之結果以獨立地驗證智慧型合約之狀態。如上文所提及,若在比較/驗證之後存在任何偏差,亦即基於經重新執行或經恢復事件串流及另一鏈外結果或所獲得結果不匹配,則可將錯誤訊息或通知發送至用戶端及/或平台處理器。
在一些實施例中,該方法包括將散列函數應用於與所請求之事件En
相關聯之事件資料,使得該請求包括事件En
之散列事件資料而非原始資料。
本揭露內容的態樣亦包括一種運算裝置,其包含處理器及記憶體,該記憶體包括可執行指令,作為由處理器執行之結果,該等可執行指令使得裝置執行如上文所論述之電腦實施方法,其中運算裝置係有關平台處理器。
本揭露內容的態樣亦包括一種運算裝置,其包含處理器及記憶體,該記憶體包括可執行指令,作為由處理器執行之結果,該等可執行指令使得裝置執行如上文所論述之電腦實施方法,其中運算裝置係有關用戶端。
本揭露內容的態樣亦包括一種電腦系統,其包含經由無線通訊網路通訊耦接至至少一個用戶端之至少一個平台處理器,該至少一個平台處理器與應用程式設計介面(API)端點相關聯以用於處理來自至少一個用戶端之HTTP請求,該至少一個平台處理器根據上文所提及之運算裝置實施;且該至少一個用戶端根據上文所提及之用戶端運算裝置實施。該至少一個平台處理器經由無線通訊網路通訊耦接至平台服務之以下組件中之一或多者:智慧型合約儲存器;事件串流日誌;例項狀態資料庫;以及資料寫入器。
本揭露內容的態樣亦包括一種電腦可讀儲存媒體,其上儲存有可執行指令,作為由電腦之處理器執行之結果,該等可執行指令使得電腦執行如上文所闡明之態樣及實施例中任一項之方法。
現在作為說明參考附圖描述一些特定實施例,在該等附圖中,相似附圖標記指代相似特徵。
用於提供與區塊鏈相關聯之多個服務之平台服務之概述
用於提供多個服務的上文所提及之平台處理器可為平台即服務(PaaS)及/或軟體即服務(SaaS),其有利地實現了使用諸如BSV區塊鏈之區塊鏈網路快速遞送有用的真實世界業務及技術應用,諸如管理軟體受控技術系統或智慧型合約。平台服務之概述可見於圖1中,其展示系統之高層級示意圖。平台服務具有提供API 108之平台處理器100,可由一或多個用戶端經由該API存取服務。
如此圖中所示之平台服務100由三個服務系列構成,且旨在允許使用者及組織容易且安全地利用由區塊鏈之特有屬性提供的優勢,而實際上無需在用戶端末端處實施任何基於區塊鏈之軟體、知識或庫。此等服務為:
-資料服務102,其旨在簡化鏈作為商品資料分類帳之使用。
-運算服務104,其旨在提供由諸如比特幣SV之數位資產支援之一般化運算框架。
-商務服務106,其提供用於使用諸如比特幣SV之數位資產進行交易之企業級能力。
本揭露內容之態樣及實施例主要涉及進一步相對於圖1a及圖1b所解釋之運算服務104。
如上文所提及,可經由或使用HTTPS協定在API處自用戶端接收請求,此係因為API被實施為網路服務。接著由一或多個服務模組或處理資源102至106使用基礎軟體110實施所請求服務,此區塊鏈/平台介接軟體110係與區塊鏈相關聯,亦即以實施資源、庫及/或密鑰管理電子錢包實施以用於產生、處理及提交與區塊鏈相關聯之交易。一旦經處理,可將交易提交至區塊鏈網路105(而非實施任何此功能性或交易庫之用戶端)。至多,用戶端可實施與密碼貨幣或某一其他數位資產相關聯之數位電子錢包或其類似者,但此並非必要的,此係因為平台服務100亦可能夠提供及管理用於用戶端之數位資產。
有利地,對基於區塊鏈之服務的請求係由用戶端以HTTP傳輸協定格式發送及接收,且因此用戶端可利用區塊鏈特有之所有優勢及服務,而不必實施任何交易能力或區塊鏈庫。此係因為服務係經由平台API提供,該平台API可為HTTP或REST API端點。舉例而言,REST API設計標準可使用經由網際網路之下表中所展示之以下HTTP命令處理HTTP請求及通訊,且此為用戶端所需之所有功能性,亦即,以能夠經由網際網路發送及接收訊息。一或多個平台處理器遠端地或單獨地實施用於用戶端之命令。
命令 | GET | POST | PUT | DELETE | PATCH |
資源 | 讀取 | 產生 | 更新或產生 | 刪除 | 部分更新 |
來自用戶端之所接收請求可為HTTP GET或HTTP POST或HTTP PUT或HTTP PATCH請求,其包括特定針對於給定用戶端之用戶端識別符,以及平台所提供之多個服務當中的給定所請求服務之服務識別符或與該等識別符相關聯,如上文所提及。在一些情況下,發送至用戶端之結果為基於用戶端識別符之HTTP POST請求。
在一些實例中,為了使用於基於區塊鏈之運算及交易之定址較簡單,已存在使用令人難忘且較使用者友好之別名代替一或多個實體之複雜公用位址的機制。此解決方案提出於均以nChain控股有限公司之名義的美國專利申請案第16/384696號及英國專利申請案第1907180.2號中。此等文件闡明基於別名之支付服務及相關聯協定,被稱作bsvalias支付服務,其中別名用於目的地定址而非用戶端實體或實際上諸如平台100等服務實體之公用位址。此系統中之別名通常與發送/接收實體之域名相關聯,且可為URI或電子郵件位址。因此,只要發送者或實體知道或具備別名,則此對於bsvalias支付系統或基於別名之定址機制係足夠的。可例如使用諸如JavaScript物件表示JSON文件之機器可讀資源中提供之指令將訊息發送至用戶端之別名,該等指令保存在用於bsvalias或其他支付服務之熟知URI或位置中。在本揭露內容之一些實施例中,多個用戶端中之一或多者可具有諸如上文之別名以識別各別用戶端。類似地,平台100之API亦可與諸如別名相關聯以用於定址。
亦有可能基於用戶端識別符及對應於用戶端識別符之記錄而驗證用戶端,該記錄與平台處理器相關聯。舉例而言,此記錄可能已在用戶端註冊或登記時產生且儲存於平台處理器中或與平台處理器相關聯。接著,基於用戶端之成功驗證,該方法包括基於服務識別符及包括於各別記錄中之屬性或設定來判定自用戶端接收之請求是否有效。在一些情況下,該屬性或設定可指示是否允許給定用戶端存取所請求服務之全部或部分。舉例而言,與用戶端識別符相關聯之一或多個權限等級可提供於屬性或設定中。舉例而言,可允許給定用戶端請求讀取區塊鏈上針對特定事件之資料的服務,但可能不允許修改、刪除或終止此事件,而另一用戶端可具有對於與一或多個服務有關之所有動作的權限。
在一些實例中,驗證給定用戶端之身分的步驟可係基於與用戶端相關聯之數位簽章。包括與每一用戶端相關聯之私用密鑰及公用密鑰(或公用位址)的密碼密鑰對可用於驗證服務請求實際上確實來源於給定用戶端,亦即,其中由私用密鑰簽署之資料僅可使用對應公用密鑰恢復或驗證。若驗證係基於數位簽章,則可使用並實施標準公用密鑰基礎架構(PKI)技術。
第一態樣:提供與區塊鏈相關聯之運算服務以用於執行智慧型合約的平台
圖1a更詳細地展示由圖1之平台100提供的運算服務104之組件中之一些,以及與其互動以用於執行如圖2所闡明之本揭露內容之態樣及實施例的組件之說明。下文解釋圖1a中所展示之組件。
資料服務1004包括資料寫入器,其可為經由比特幣SV區塊鏈1005寫入(亦即,確認或公開)資料的HTTP API。應理解,本揭露內容不限於單獨使用此區塊鏈。與資料服務1004相關聯之用戶端側工具可提供於圖1a中之客戶應用程式1001中。此可呈用戶端實體/裝置中所提供之軟體應用程式形式。客戶應用程式1001可用以驗證經認證資料,從而允許任何方驗證資料由於包括於區塊鏈中而尚未被篡改。此等工具可經由平台服務100供應或可基於所記載規格而獨立地實施。
運算服務104(來自圖1)經展示為包括執行器平台1000。在一些實施例中,執行器平台1000被稱作本揭露內容中用於實施運算服務之平台處理器。亦提供合約儲存器1003。此可包括網路圖庫以允許客戶自預先構建之智慧型合約軟體之目錄瀏覽。執行器平台1000為客戶提供用於智慧型合約之部署及執行的平台即服務能力。合約儲存器為預先構建及平台組配之智慧型合約之集合。在多個客戶表達相同(或極類似)智慧型合約需要之情況下,平台服務100可為了即時零開發部署而提供此等合約之實施。合約儲存器1003將允許客戶管理員存取一系列此等全包合約連同網路及API組配以及參數化功能二者。
對於運算服務104,用戶端或客戶應用程式1001亦包括具有用於智慧型合約之文件、庫、實例及本端運行時間之軟體開發套件(SDK),以允許客戶開發人員在部署或調用智慧型合約平台之前在本端構建及測試其合約。亦包括驗證工具,其可為用於在給出智慧型合約程式碼及基礎事件串流資料二者的情況下驗證智慧型合約例項之執行之正確性的平台外工具。
執行器平台1000可包含圖1b中可見之以下組件,該等組件與圖1a中可見之用戶端應用程式1001及資料服務1004互動。在一些實施例中,下文圖2至圖5中所闡明之方法以及圖8中所描繪之實例情境可藉由執行器平台1000執行。
事件閘道器1000a及1000b:此等閘道器可為用於將事件,諸如自用戶端所接收之輸入資料饋送至合約中的經由HTTP或bsvalias端點之JSON。在一些實施例中,其提供來自外部輸入之橋接件,及用於鑑認及授權之現有或內建式解決方案。事件閘道器1000a及1000b可經組配以實施HTTP API之功能性以提供可經存取或提供至諸如用戶端實體之其他實體的端點。一或多個事件閘道器可經實施為用於執行器平台1000之閘道器服務。
圖1b中所展示之合約管理API 1006允許客戶或用戶端上傳智慧型合約程式且組配其執行環境。此組件可與上文所提及之作用中(包括鑑認及授權)的閘道器、事件串流屬性(確認或公開)及升級可儲存於圖1a中所論述之合約儲存器1003中的智慧型合約軟體之方法相關聯或藉由或經由該等者提供,及/或可與下文論述之合約儲存庫1007相關聯。在一些實施例中,此組件可負責提供待發送至用戶端實體之任何庫或軟體工具及功能性以便處理與智慧型合約相關聯之資料或與智慧型合約相關聯之事件串流。
合約儲存庫1007:此組件可經組配以為智慧型合約實施提供儲存及管理API。此組件可經組配以儲存合約可執行碼,以使執行器平台100定位及恢復用於自用戶端所接收之給定輸入的適合的控制代碼或智慧型合約識別符,以便執行智慧型合約程式碼。在一些實施例中,此可實施為合約儲存器1003自身或實施於該合約儲存器內,或可單獨實施以調用用於儲存於合約儲存器1003中之智慧型合約之軟體。
執行器1008:此為用於圖1中之平台100及圖1a中之執行器平台1000之運算服務104的平台處理器之處理或運算組件。執行器1008經組配以在經由閘道器1000a及/或1000b接收用戶端輸入後為智慧型合約提供無伺服器執行平台。因此,執行器1008可經組配以藉由調用藉由用戶端識別之適合的合約對經由閘道器所接收之事件作出反應。執行器進一步經組配以調用與與區塊鏈中之合約相關聯之事件串流相關聯的處理。舉例而言,此可包括管理智慧型合約狀態持久性及/或連接至下游事件串流API。執行器進一步經組配以自儲存庫恢復智慧型合約及/或自狀態資料庫擷取例項狀態以便判定智慧型合約之當前狀態。執行器可進一步經組配以將輸入事件記錄至事件串流,並執行智慧型合約使得智慧型合約處理輸入事件資料,其在區塊鏈上之事件串流中經確認。執行器進一步提供智慧型合約之經更新快照狀態以被存留回至例項狀態資料庫(參見下文)以用於智慧型合約之狀態之鏈外儲存。
例項狀態資料庫1009:此組件為儲存檢查點或資料庫,其在完成來自用戶端之事件之處理之後反映合約之狀態。此組件可經組配以在藉由執行器1008在給定智慧型合約程式之調用之間進行處理之後儲存合約之快照狀態(由將合約規則施加至所有輸入導出之狀態)。
智慧型合約實施-概述
如所已知,合約為辨識並控管各方對協議之權利及職責的合法結合協議。協議通常涉及商品、服務、金錢或其中之任一者的承諾之交換。智慧型合約係意欲數位地促進、驗證或強制執行合約之協商或執行的電腦協定。
舉例而言,以太坊為能夠運行可被視為智慧型合約之物之常用平台。比特幣指令碼自身可被視為智慧型合約,此係因為其為強制執行交易實體之間的規則之集合的軟體,可認為使比特幣成為智慧型合約平台。R3之Corda連同各種其他區塊鏈類平台一起可被視為智慧型合約平台。
智慧型合約可概括地歸類如下:
鏈上合約:一種鏈上智慧型合約,諸如比特幣指令碼,封裝、合約之規則連同合約例項之參數。執行審計存底在鏈上公開,且(假定基礎區塊鏈提供此保證)係永久性且不可變的。鏈上合約之實例包括原子調換、r-謎題、累加器樹及支付通道。在所有情況下,仍需要支援鏈外基礎架構,但合約之核心係經由比特幣指令碼來表達,且作為交易驗證之部分由挖掘者執行。
鏈外合約:一種鏈外智慧型合約,作為傳統的電腦軟體存在。其由所有締約方可接受之實體操作。在本揭露內容中不進一步考慮不使用區塊鏈之鏈外合約。
混合式合約:混合式合約表示鏈上與鏈外方法之摻合物。混合式智慧型合約藉由利用區塊鏈來增強鏈外合約之能力。通常,此等額外能力包括資料完整性之可證明性及安全性。若干新興的混合式智慧型合約平台在開發中或已經推出。實例包括Tokenized及GearSV。
在區塊鏈頂部上構建智慧型合約平台存在優勢,其中基礎區塊鏈提供原本難以或不可能達成之某些保證。出於本揭露內容之目的,術語「區塊鏈」可用以描述公用工作證明區塊鏈,特定而言比特幣SV。然而,應理解,本揭露內容之態樣及實施例不限於此。
任何形式之智慧型合約經由自動化遞送值。正確實施之智慧型合約將自主地且根據經程式化至智慧型合約中之規則起作用。存在經由自動化之可實現值,此係因為高體積之合約例項可以比非自動化替代性程序低的錯誤率在普通且廉價的硬體上自動地處理。藉由將智慧型合約平台結合至區塊鏈,區塊鏈之固有屬性可由在彼平台上運行之所有智慧型合約繼承。此等益處主要經由鏈之不可變性質、單一記錄保持實體之不存在及區塊鏈之基礎安全性基元(諸如,BSV)導出。
可將資料提交至基於區塊鏈之商品分類帳。在建構提交時,捕獲資料及相關聯元資料二者。此元資料始終包括時戳,此係由於區塊鏈充當一種形式之見證或時戳授權機構。其可另外包括呈數位簽章及相關聯公用密鑰之形式的身分資訊,其中彼公用密鑰可由現有合法優先權辨識為用於識別之代理。此可包括公用密鑰已由某一受信任第三方或憑證授權機構證實或服務提供商已代表經鑑認用戶端施加簽章的情境。
一旦提交至基於區塊鏈之商品分類帳,資料便可經證明為尚未由於彼提交而改變。此可用以表明未發生記錄篡改。藉由不依賴於單個記錄保持授權機構,不可能獲得對任何此類授權機構之控制,以便更改記錄或使人懷疑區塊鏈之來源以作為見證。至少鑒於經由自動化進行之成本及錯誤減少、經由防篡改記錄保持之增強型審計及可信度以及充分利用比特幣之基礎安全性基元之能力的組合,實施與區塊鏈相關聯之智慧型合約係有利的。
有限狀態機(FSM)為運算之數學模型。其為在任何給定時間處可恰好處於有限數目個狀態中之一者的抽象機。FSM可回應於一些輸入自一個狀態改變至另一狀態;自一個狀態至另一狀態之改變被稱為轉變。FSM係由其狀態、其初始狀態及觸發每一轉變之輸入的清單進行定義。狀態機複製假定經複製過程係確定性有限自動機(DFA)且每一事件之原子廣播係可能的。其係基於分散式共識且具有與交易複製模型相同之批次。DFA為每次絕對恰好處於一個狀態的軟體之模型。FSM可在狀態之間轉變的唯一方式係回應於外部事件。藉由實現以下情況將複製累積於此屬性上:若FSM係確定性的且事件之輸入串流在機器之間如實複製,則處理彼等事件之每一機器將以完全相同之狀態結束。
在本揭露內容之態樣及實施例中,智慧型合約實施為FSM,且更特定言之DFA,亦即在給定時間恰好處於一個狀態之軟體模型。
根據本揭露內容之智慧型合約之執行
圖2係關於根據本揭露內容的第一態樣的用於使得能夠執行與區塊鏈相關聯之智慧型合約之方法。圖2之方法由與用於服務之應用程式設計介面(API)相關聯之平台處理器實施。平台處理器可為用於實施如圖1中所見之平台服務100之運算服務104的圖1a中可見之執行器平台1000或執行器平台1000內之執行器1008。
步驟202描繪自用戶端接收請求,該請求關於智慧型合約(SC)。該請求呈超文字傳送協定(HTTP)傳輸協定格式且經由API或bsvalias閘道器提供,如上文在圖1b中所提及。
步驟204描繪存取有關請求之智慧型合約SC。首先自該請求識別待執行之智慧型合約。舉例而言,此可基於該請求中之識別符或關鍵字。該方法包括存取有關該請求之智慧型合約SC軟體。智慧型合約可存取自儲存模組,諸如提供於執行器1000平台內之圖1a及圖1b中分別可見之合約儲存器1003或儲存庫1007,或該儲存模組可遠端地位於可由平台處理器存取之位置或自該位置代管。
步驟206描繪識別與區塊鏈相關聯之事件串流(ES),該事件串流ES特定針對於智慧型合約SC且表示智慧型合約SC之狀態。請求中有關智慧型合約SC之事件串流ES可直接自區塊鏈獲得,或此可自鏈外日誌或資料庫獲得,該鏈外日誌或資料庫複製區塊鏈上之事件串流ES以提供合約之當前快照,諸如例項快照資料庫1009。事件串流ES可基於有關步驟202中之請求中經識別之智慧型合約SC的交易識別符來識別。
事件串流ES表示區塊鏈上之機器可讀合約或智慧型合約,且基於如上文所解釋之用於追蹤智慧型合約SC之狀態的有限狀態機(FSM)實施。
步驟208判定智慧型合約SC之當前狀態ESn
。此係基於有關其之事件串流ES而判定。智慧型合約SC之當前狀態指示為ESn
,其中n為自0至N之整數,每一整數n表示與智慧型合約SC相關聯之事件之當前狀態或當前數目,且N表示n之最大值或終值或狀態。在一些實施例中,當前狀態之判定可基於當前狀態之指示或記錄,其基於與表示智慧型合約SC之狀態之事件串流相關聯的最新結果。此可直接自與區塊鏈上之事件串流ES相關聯之交易判定,或可在用於事件串流ES之一或多個單獨鏈外儲存資源中經判定,諸如用於關於特定針對於智慧型合約SC之事件串流ES之資料的事件日誌。
步驟210描繪調用基於所接收請求執行智慧型合約SC。在一些實施例中,一旦識別或產生針對智慧型合約SC之事件串流ES,則智慧型合約SC之軟體程式碼之執行便被自動地觸發。產生或上傳事件串流ES之過程更詳細地可見於圖3至圖5中。在一些實施例中,根據用戶端請求之執行可由與平台處理器相關聯之一或多個處理器執行。在其他實施例中,智慧型合約程式碼之執行可基於無伺服器執行技術。
無伺服器運算為雲端運算執行模型,其中雲端提供商運行伺服器,並動態地管理機器資源之分配。無伺服器運算可簡化部署程式碼至生產中之過程。縮放、容量規劃及維護操作可自開發人員或操作員隱藏。諸如AWS Lambda、Azure Functions及Cloudflare Workers等常用無伺服器平台不僅提供開發人員或操作員自身不一定必須與基礎運算環境(虛擬機、操作系統組配等)相關的運行時間環境,而且提供SDK以用於產生即將運行於主機基礎架構上之無伺服器軟體。
現有無伺服器執行提供商提供關於其運行時間之豐富組配,連同至可執行碼之現成入口點。共同入口點包括端點、訊息佇列及文件儲存。此等入口點或閘道器與將輸入饋送至邏輯處理器(軟體)之智慧型合約模型擬合。在採用進入點閘道器及商品運行時間環境之此模型時,平台可將來自所有來源之所有輸入記錄至事件串流中(經由例如資料服務1004)。具有鑑認及授權特徵之閘道器進一步提供輸入閘控或授權。最後,在執行個體化新智慧型合約例項時,在寫入任何事件之前捕獲事件串流中合約軟體之識別符或散列允許進一步使得事件串流之任何複製品確信其正運行與智慧型合約相關聯之正確FSM。
步驟212描繪調用處理或更新有關智慧型合約SC之事件串流ES。在一些實施例中,調用處理或更新有關智慧型合約之事件串流ES之步驟係藉由平台處理器進行,該平台處理器亦即在執行器平台1001自身內。在其他實施例中,調用事件串流ES之處理或更新的步驟進一步包括如上文所闡明的存取與平台處理器相關聯之資料寫入器(參見圖1a中之資料服務1004)以用於藉由將資料寫入至與區塊鏈相關聯之事件串流ES中來處理新事件En
的步驟。
在一些實施例中,事件串流係關於狀態機,且表示機器可讀合約或智慧型合約,其實施為區塊鏈中之有限狀態機,諸如確定性有限自動機(DFA)。FSM可由其狀態、其初始狀態及每一轉變之條件的清單定義。在比特幣SV區塊鏈中,UTXO集可被視為狀態機,其中給定輸出之已用狀態隨至交易(機器)之先前輸入而變。因此,藉由重新執行所有交易,可使用區塊鏈來確定性地建立任何輸出之當前使用狀態及UTXO集之當前內容。因此,在圖2之實施例中,請求可被視為更改智慧型合約SC之當前狀態之請求。
步驟214描繪基於所接收請求處理新事件En
。取決於請求將調用或更新新合約抑或現有合約,或終止與用戶端相關聯之現有合約,在圖3至圖5中更詳細地解釋此處理。
步驟216描繪在新事件En
之處理之後或基於該處理獲得智慧型合約之經更新當前狀態ESn
。指示或基於經更新狀態之結果可儲存於與平台處理器相關聯之鏈外事件日誌中。在一些實施例中,該結果係基於智慧型合約之經更新當前狀態ESn+1
,被發送至用戶端。此結果可與對應區塊鏈交易之輸出指令碼相關聯。在一些情況下,結果包括使得能夠重新產生或恢復事件串流之快照使得可相對於事件串流之儲存或受信任版本驗證經恢復版本之功能性。
在一些實施例中,亦可將具有軟體庫及驗證工具之SDK提供至用戶端以使得用戶端能夠獨立地處理及驗證結果。此等工具能夠恢復及重新執行事件串流ES。可接著相對於保持於平台內,例如保持於例項快照資料庫中之當前快照狀態來驗證智慧型合約SC之狀態。若來自事件串流重新執行之快照狀態匹配鏈外儲存狀態或所獲得結果,則可驗證操作及執行已按照智慧型合約邏輯恰當地進行。
有利地,在如圖2中所闡明之本揭露內容中,在智慧型合約經模型化為DFA且在事件串流(ES)中具有所有輸入事件之複製的情況下,智慧型合約之所有各方可能夠驗證合約軟體之操作,亦即,其根據規則集合已準確執行邏輯且未發生篡改,而無需信任合約其他各方中之任一者,其限制條件為滿足某些預定義要求。
非確定性合約(諸如依賴於資料源或事件串流外之事件的合約)在給出相同輸入的情況下可能並不產生相同狀態。非確定性之共同來源包括時間函數及(偽)隨機數產生器。非確定性之此等來源易於解決,使得其變成確定性的。時間可外部導出且作為輸入資料饋送至合約,正如任何其他輸入資料。以此方式,其係藉由事件串流ES捕獲且可經複製。
(偽)隨機數可使用許多不同技術建構。常常,此等技術開始於最初自可用熵對隨機數產生器播晶種,接著來自此點之隨機數遵循確定性圖案。更複雜技術防止經複製日誌之載體猜測序列中產生的下一隨機數,但仍允許正確操作之事後驗證。可以類似方式處置非確定性之其他來源。若智慧型合約需要外部資料,例如資產、商品、器具或類似個體之當前價格的知識,則價格可作為輸入饋送。
有利地,在如在圖2中闡明之本揭露內容中,在事件串流中擷取所有輸入且將所有輸入複製至各方以用於驗證合約操作之正確性。在合約之確定性行為之後,顯而易見的是,必須複製輸入,使得合約之任何(經授權)方可獨立地驗證操作之正確性。
有利地,在如在圖2中闡明之本揭露內容中,可閘控或確保輸入安全。若合約輸出為輸入串流之函數,則因此必須閘控彼等輸入,使得僅經授權方(亦即,存取智慧型合約之有效用戶端)可提供輸入。未能強制執行產生輸入事件之動作之授權的智慧型合約可產生按軟體有效但按協議之條款無效的輸出狀態。
有利地,在如圖2中所闡明之本揭露內容中,在不存在任何篡改可能性之情況下,將事件日誌如實地傳送至所有複製品。若日誌在複製目標之間經修改、篡改、突變、省略或以其他方式發生故障,則每一目標可得出合約之當前狀態之不同視圖。使用事件串流以追蹤智慧型合約之連續執行狀態防止篡改之任何可能性。
有利地,在如在圖2中闡明之本揭露內容中,用於事件串流之複製目標運行智慧型合約之同一FSM或例項。否則,若日誌恰當地經複製,但日誌中之軟體處理條目在複製目標之間不同,則每一目標仍可得出合約之當前狀態的不同視圖。可獨立地驗證的用於智慧型合約之當前快照的事件串流之使用防止不正確複製。
一些現有基於區塊鏈之智慧型合約平台試圖將智慧型合約軟體複製至網路中之廣泛多種節點。網路中之每一節點將每一輸入處理至每一合約。然而,此情形將平台之縮放潛力限制至網路中之最弱節點的較高輸送量。使用如上文在圖2中所解釋之事件串流以追蹤區塊鏈中智慧型合約之執行允許智慧型合約之快照的鏈外儲存,且藉由驗證各方允許事件串流之重新產生(可接著與所儲存之當前快照進行比較)來允許獨立驗證。
因此,如圖2中所闡明之本揭露內容的機制提供用於執行智慧型合約之以下能力及優勢:
-所有輸入記錄至事件串流。
-鏈外且安全的輸入事件儲存允許事件串流確認所有輸入而無需將其顯露於鏈上。
-智慧型合約軟體自身可被視為輸入,且在處理任何資料之前將該智慧型合約軟體確認至串流。
-合約係經由無伺服器執行平台運行。
-該等合約對經由閘道器(HTTP API及BSV別名)接收之事件作出回應。合約執行環境提供(有限)狀態管理,從而允許在事件執行之間存留合約例項之快照狀態。執行器可恢復先前快照狀態且提供此快照狀態以及事件輸入,且在執行智慧型合約之後保持經更新快照狀態。
-用於與非確定性行為(時間及隨機數)的共同來源一起起作用的機制由平台處理器提供。
-含有至用戶端側之佈建之SDK可用,其可包括:
o構建智慧型合約之庫,相對於該等庫控管進入/離開狀態快照之接收及產生,及輸入剖析
o用於測試開發人員設備上之合約之開發模式運行時間
o包括用於開發運行時間之快速啟動、走查、API參考材料、操作員指令之大量文件
o驗證工具,其能夠自該平台恢復事件串流及合約例項且重新執行該事件串流以驗證該合約之給定狀態。
圖3、圖4及圖5論述用於實施事件串流ES之方法,該事件串流表示如圖2中所論述之智慧型合約SC以用於建立在區塊鏈上達到其當前狀態的智慧型合約之不可變依序日誌或記錄。在一些實施例中,除了儲存於區塊鏈上之外,亦可鏈外地提供或儲存日誌。由於事件串流ES係基於與交易相關聯之輸入及輸出,因此描述之技術闡明用於建立與表示區塊鏈上之智慧型合約SC的事件串流ES相關聯之所有交易的不可變時序日誌之方法。事件串流ES可表示使用FSM、DFA等之智慧型合約。
圖3至圖5可藉由與應用程式設計介面(API)相關聯之平台處理器實施。在一些實施例中,圖3至圖5之步驟可由與圖1中可見且在圖1b中更詳細地解釋的運算服務模組104相關聯之執行器組件進行。在其他實施例中,圖3至圖5的步驟可藉由與圖1中可見且在圖1b中更詳細地解釋的資料服務模組102相關聯的資料寫入器進行。在此情況下,資料寫入器將由平台處理器之執行器觸發或調用。
圖3係關於產生新事件串流。
步驟302描繪自用戶端接收請求,該請求與用於給定用戶端之新智慧型合約相關聯。圖3係關於針對SC使用區塊鏈產生新事件串流ES。來自用戶端之請求呈超文字傳送協定(HTTP)傳輸協定格式,如上文所闡明。
在步驟304中,由於請求係關於與用戶端相關聯之新智慧型合約,因此新事件串流ES將針對此智慧型合約SC初始化或產生。此步驟係關於識別目前待與智慧型合約相關聯之請求中的新事件。
步驟306描繪基於步驟302中之所接收請求中之事件資料獲得與待在區塊鏈中針對智慧型合約SC產生之新事件串流ES的第一事件E0
相關聯之資料。
步驟308描繪產生用於新事件串流ES之第一區塊鏈交易TX0
,其中n = 0。在一些實施例中,在產生第一交易之前,此步驟亦可包括判定待與待產生之新事件串流ES一起使用之階層式確定性(HD)密鑰鏈K。在一些實施例中,此可由與平台處理器相關聯之HD電子錢包實施來實施,以基於已知BIP 21協定產生自種子或父或主密鑰開始的階層式樹狀密鑰結構。HD密鑰產生及傳送協定極大地簡化了密鑰產生且准許產生可獨立地操作之子代帳戶,從而給予每一父代帳戶監控或控制其子代的能力,即使子代帳戶受損亦如此。HD協定使用單個根種子來產生子代、孫代及具有單獨確定性產生之整數值的其他後代密鑰之階層。每一子代密鑰亦自稱為鏈碼的其父代獲得確定性產生之種子。以此方式,一個鏈碼之任何損害未必損害整個階層之整數序列。除了上文優勢之外,在本發明態樣中,由平台處理器進行此密鑰產生,因此移除了自用戶端產生此密鑰之資源及功能性。因此無需由用戶端實施HD電子錢包。在步驟308中,密鑰鏈K包括自選定父代密鑰對導出的一系列私用/公用密鑰對,使得:
K = Kn=0 至N
,
其中n為自0至N之整數,每一整數n表示與事件串流ES相關聯之事件之當前長度或當前數目,且N表示n之最大值或終值。
在一些實施例中,執行鑑認及授權檢查,其可為對API存取符記之存在的測試,或作業階段檢查或密碼/數位簽章測試,或驗證用戶端或用戶端作出之服務請求的某一其他適合的方法。
步驟310描繪在步驟308中產生的區塊鏈交易TX0
之輸出包括作為塵埃輸出之至少一第一未用交易輸出(UTXO0_dust
)。在一些實施例中,該塵埃輸出與在步驟308中藉由自HD密鑰鏈K導出的一系列密鑰中之第一導出密鑰對K0
確保安全的鎖定指令碼相關聯。塵埃輸出與(數位資產)值相關聯,該值低於交易之經定義限值或具有經定義最小值,亦即,低於使用此交易將需要之挖掘費用。亦可存在與數位資產相關聯之其他輸入,該等輸入與操作性浮動或所維持或相關聯於支付處理器之數位資產或密碼貨幣資金相關聯。交易中亦有可能具有為數位資產改變輸出之其他輸出。
因此,在一些實施例中,用於根據本發明實施例產生事件串流ES的用於區塊鏈交易之產生範本係第一輸入不得為塵埃之範本。此用以有利地指示事件串流中不存在先前條目,且此為第一條目。產生範本亦指定範本之第一輸出為塵埃,且不存在資料載體或資料輸出(因此,無OP_RETURN),此係因為除了新事件串流ES之產生以外,不存在與產生狀態相關聯之事件資料。
步驟312描繪將交易TX0
提交至區塊鏈。此處,可將交易提交至區塊鏈,諸如比特幣SV網路,以用於由與平台處理器相關聯之挖掘者節點或BSV節點軟體包括於後續區塊中。在一些實施例中,一旦被挖掘,交易識別符TX0
可用以唯一地識別新近產生之事件串流ES或與用戶端相關聯之新智慧型合約。
步驟314描繪將與TX0
中之所產生事件串流ES相關聯之結果發送至用戶端,該結果係以HTTP傳輸協定格式提供的。可獨立於區塊鏈來複製或保存與事件串流相關之結果。
圖4係關於藉由將新事件附加至區塊鏈上與智慧型合約相關聯之現有事件串流ES來更新智慧型合約之狀態。
步驟402描繪自用戶端接收請求,該請求用以修正或更新請求中經識別之現有智慧型合約SC。來自用戶端之該請求呈超文字傳送協定(HTTP)傳輸協定格式。
在步驟404中,智慧型合約之當前狀態ESn
n經判定。此係基於特定針對於智慧型合約SC之事件串流ES而判定。事件串流ES儲存或實施於區塊鏈中。在一些情況下,智慧型合約SC之當前狀態亦可自鏈外儲存之事件串流ES之快照或日誌來判定。舉例而言,此日誌或快照資料庫可提供於圖1中之平台100內,或可儲存於一位置中,可由平台處理器自該位置進行擷取或存取。
如關於圖3之步驟308所論述,在一些實施例中,區塊鏈上之事件串流ES與密鑰鏈或種子密鑰對K相關聯,使得K = Kn=0 至N
,其中n為自0至N之整數,每一整數n表示與事件串流ES相關聯之事件之當前長度或當前數目,其中N表示n之最大值或終值。在一些實施例中,執行鑑認及授權檢查,其可為對API存取符記之存在的測試,或作業階段檢查或密碼/數位簽章測試,或驗證用戶端或用戶端作出之服務請求的某一其他適合的方法。
步驟406描繪識別或獲得與事件En
相關聯之資料,此係在步驟402中之所接收請求中基於智慧型合約SC之事件資料在區塊鏈上當前添加或附加至事件串流ES的事件。
步驟408包括識別與智慧型合約SC之事件串流ES相關聯之先前區塊鏈交易TXn-1
。一旦經識別,則判定與經識別先前交易TXn-1
相關聯之密鑰對Kn-1
。如上文所提及,此可基於步驟404中所闡明之同一種子密鑰對K。
步驟410描繪產生用於事件串流ES之當前區塊鏈交易TXn
,其中0 < n < N。在一些實施例中,自種子密鑰對K導出用於當前事件En
之密鑰對Kn
。針對待附加至事件串流ES之當前事件En
產生的區塊鏈交易TXn
包括:
-使用與該先前交易TXn -1
相關聯之塵埃輸出的第一輸入,該使用係藉由用於該先前交易之所獲得密鑰對Kn -1
授權的;
-為該當前交易TXn
之塵埃輸出的第一未用交易輸出(UTXOn _dust
),與鎖定指令碼相關聯之該塵埃輸出係藉由所導出密鑰對確保安全的;以及
-與表示當前事件En
之事件資料相關聯的最終未用交易輸出(UTXOn _data
)。
如上文所提及,塵埃輸出與低於交易之經定義限值或具有經定義最小值的(數位資產)值相關聯。亦可存在基於操作性浮動的與數位資產相關聯之其他輸入。此浮動可由平台處理器控制。交易中亦有可能具有為數位資產改變輸出之其他輸出。
因此,在一些實施例中,用於根據本發明實施例更新事件串流的用於區塊鏈交易之更新範本係第一輸入必須為塵埃且第一輸出必須為塵埃的範本。此將有利地指示先前條目存在於事件串流中。此亦指示所討論事件En
(目前或當前事件資料)發生在智慧型合約SC之先前交易或狀態之後。因此,交易有利地遵循塵埃鏈且在下一狀態之前發生。更新範本包括資料載體,亦即,承載事件資料或與當前事件或狀態相關聯之結果的資料輸出。此可為不可用OP_RETURN輸出。
在交易中使用塵埃輸出對於在區塊鏈中之事件串流ES發生時維持所有交易之不可變依序記錄係有利的。此係因為,儘管藉由將交易發佈至區塊鏈,所有區塊鏈交易皆將經時間戳記且按次序保持在區塊鏈中,但此並不能保證其依序次序之保持。此係因為可在不同時間將交易挖掘至區塊中。用作當前交易之第一輸入的先前交易之塵埃輸出的使用(其中該使用係基於與每一交易之鎖定/解鎖指令碼有關的各別唯一密鑰)確保了事件串流按時間次序之清晰、依序、防篡改記錄。
步驟412描繪將交易TXn
提交至區塊鏈。此處,可將交易提交至區塊鏈,諸如比特幣SV網路,以用於由與平台處理器相關聯之挖掘者節點或BSV節點軟體包括於後續區塊中。在一些實施例中,一旦經挖掘,則交易識別符可用於唯一地識別事件串流ES或智慧型合約SC。
步驟414描繪將與TXn
中之所產生事件串流ES相關聯之結果發送至用戶端,該結果係以HTTP傳輸協定格式提供的。可獨立於區塊鏈來複製或保存結果。在一些實施例中,此可係基於最終未用交易輸出(UTXOn_data
)中之事件資料。在一些實施例中,事件En
在(UTXOn_data
)中之事件資料包括該事件資料之散列,藉此確保了此資料由平台處理器保持私密。散列可由平台處理器應用或由用戶端應用,亦即在一些實施例中,在產生與步驟中在支付處理器處接收的針對事件En
之請求有關的事件資料之前應用。在散列由用戶端應用之情況下,請求中之事件資料甚至在到達平台處理器之前仍係私密的。在其他實施例中,事件資料可提供為可自區塊鏈公開獲得之原始資料。
圖5係關於終止區塊鏈上之現有智慧型合約及對應事件串流。
步驟502描繪自用戶端接收請求,該請求關於終止與使用區塊鏈實施之事件串流ES相關聯的現有智慧型合約SC。來自用戶端之該請求係呈超文字傳送協定(HTTP)傳輸協定格式。
如關於圖3之步驟308所論述,區塊鏈上之事件串流ES與密鑰鏈K相關聯,使得K = Kn=0 至N
,其中n為自0至N之整數,每一整數n表示與事件串流ES相關聯之事件之當前長度或當前數目,其中N表示n之最大值或終值。在一些實施例中,執行鑑認及授權檢查,其可為對API存取符記之存在的測試,或作業階段檢查或密碼/數位簽章測試,或驗證用戶端或作出之請求的某一其他適合的方法。
在步驟504中,智慧型合約之當前狀態ESn
n經判定。此係基於特定針對於智慧型合約SC之事件串流ES而判定。事件串流ES儲存或實施於區塊鏈中。在一些情況下,智慧型合約SC之當前狀態亦可自鏈外儲存之事件串流ES之快照或日誌來判定。舉例而言,此日誌或快照資料庫可提供於圖1中之平台100內,或可儲存於一位置中,可由平台處理器自該位置進行擷取或存取。
步驟506描繪識別或獲得與最終事件EN
相關聯之資料,此係在步驟502中之所接收請求中基於智慧型合約SC之事件資料在區塊鏈上當前添加或附加至事件串流ES的事件。
步驟508包括識別與智慧型合約SC之事件串流ES相關聯之先前區塊鏈交易TXN-1
。一旦經識別,則判定與經識別先前交易TXN-1
相關聯之密鑰對KN-1
。如上文所提及,此係基於步驟504中所闡明之同一種子密鑰對K。
步驟510描繪產生用於新事件串流ES之當前區塊鏈交易TXN
,其中n = N。在一些實施例中,自種子密鑰對K導出用於當前事件EN
之密鑰對KN
。針對當前事件EN
產生以終止智慧型合約之事件串流ES的區塊鏈交易TXN
包括:
-使用與該先前交易TXN -1
相關聯之塵埃輸出的第一輸入,該使用係藉由用於在步驟508中獲得之該先前交易之所獲得密鑰對KN -1
授權的;
-與高於經定義塵埃輸出限值之數位資產相關聯的第一未用交易輸出(UTXON
)。
對於描繪智慧型合約SC之終止狀態的事件串流中之最終事件,所有交易輸出返回改變。不存在塵埃輸出,此係因為不需要追蹤經終止事件串流的下一階段。因此,當n = N時,平台處理器不提供塵埃輸出。換言之,輸出可被視為與事件串流ES相關聯之改變輸出(數位資產支付)。此有利地標記或指示正追蹤的事件串流之最終終止狀態。在一些實施例中,當事件或合約處於終止狀態時,針對輸出亦不存在事件資料或資料載體元素,亦即,無OP_RETURN。因此,單獨的塵埃及資料載體輸出未經產生以終止事件串流ES,且第一輸出高於塵埃限值以傳信此為區塊鏈上之事件串流的末端,以及不存在亦指示終止之資料輸出。可存在與來自操作性浮動之數位資產相關聯之其他輸入或改變輸出。在一些實施例中,與關於圖3及圖4所闡明之塵埃相關聯的數位資產之值可簡單地添加至一或多個其他輸出。
因此,在一些實施例中,用於根據本發明實施例終止事件串流的用於區塊鏈交易之封閉範本係第一輸入必須為塵埃之範本,如圖6中之更新範本的第一輸入。第一輸出不得為塵埃,且此有利地充當分類帳末端標記物,且此外區分封閉範本與更新範本。如同圖3中之產生範本,封閉範本中不存在資料載體,諸如OP_RETURN。
步驟512描繪將交易TXN
提交至區塊鏈。此處,可將交易提交至區塊鏈,諸如比特幣SV網路,以用於由與平台處理器相關聯之挖掘者節點或BSV節點軟體包括於後續區塊中。
步驟514描繪將與TXN
中之所產生事件串流ES相關聯之結果發送至用戶端,該結果係以HTTP傳輸協定格式提供的。
圖6係關於本揭露內容的第二態樣且描繪用於存取用於執行與區塊鏈相關聯之智慧型合約之平台,諸如圖1中展示的平台100的電腦實施方法。圖6之方法由與用戶端相關聯之一或多個處理器實施。
在步驟602中,識別與平台相關聯之應用程式設計介面(API)端點。如之前所提及,此可為與主機平台處理器相關聯之API,且可存在負責實施服務之一或多個其他處理器,每一處理器具有服務端點或目的地位址。
在步驟604中,用戶端準備請求服務,諸如圖1中之運算服務104。該請求與有關智慧型合約SC之一或多個事件En
相關聯。在一些實施例中,步驟包括將散列函數應用於與所請求之事件En
相關聯之事件資料,使得該請求包括事件En
之散列事件資料而非原始資料以供附加私密性及安全性。
在一些實施例中,用戶端在請求中包括用戶端別名或識別符及/或服務識別符,使得請求可經路由至正確端點,且使得平台處理器可檢查請求用戶端之有效性及用戶端使用所請求服務之權限。
在步驟606中,使用超文字傳送協定(HTTP)或類似傳輸協定格式來發送步驟604中準備之請求,此係因為平台處理器被實施為HTTP或REST API。此可由用於上文所論述之平台處理器之閘道器服務管理及/或提供。
步驟608包括獲得一或多個軟體庫及驗證工具以用於處理與該智慧型合約SC相關聯之資料。軟體庫可包括使得能夠基於提供至與智慧型合約SC相關聯之事件串流ES的事件En
之重新執行或恢復而恢復智慧型合約SC之狀態之快照或例項的功能。此可以軟體開發套件(SDK)之形式提供。提供至具有SDK之用戶端之驗證工具有利地使得用戶端能夠比較智慧型合約之任何經恢復或重新執行快照與描繪智慧型合約SC之所得狀態的事件串流ES之各別儲存或獲得例項。此係為了檢查由用戶端接收之任何結果尚未被篡改或不正確結果尚未被提供至用戶端。
在步驟610中,接著接收基於智慧型合約之當前狀態的結果。在一些實施例中,所接收結果係有關與請求中之事件En
相關聯的區塊鏈交易之輸出指令碼。以HTTP傳輸協定格式將此結果提供至用戶端。在一些實施例中,結果可識別如事件串流中當前反映之智慧型合約之狀態。與最新事件En
相關聯之事件串流ES可在平台處理器中或與平台處理器相關聯地獨立於區塊鏈保存於日誌或事件串流儲存器中。
有利地,步驟608中之軟體庫向用戶端提供基於有關用於智慧型合約SC之真實或實際輸入事件En
的測試輸入事件TEn
重新執行或恢復智慧型合約SC之快照或例項的功能性。測試輸入TEn
可基於由平台處理之最新事件En
,或可為由用戶端提供之較早輸入事件En
。基於彼測試事件TEn
之此經恢復快照接著可用於獨立地驗證智慧型合約之狀態ESn
,如事件串流ES中針對彼對應真實事件En
或在彼對應真實事件之後所記錄。
在一些情況下,用戶端可能已經具有與智慧型合約SC之軟體相關聯之可執行程式碼,使得用戶端可基於測試事件TEn
運行軟體。在其他實施例中,用戶端可能夠在不使用用於平台之任何閘道器服務的情況下經由平台處理器直接調用與智慧型合約SC相關聯之可執行程式碼,亦即,直接調用可經由遠端程序調用(RPC)。此使得用戶端可調用程式碼以藉由使用對應測試輸入TEn
基於給定輸入事件En
測試或重新執行給定例項。因此,軟體庫允許出於驗證或審計目的而重新產生與智慧型合約SC之事件串流ES相關聯的真實事件En
,
驗證工具可包括提供至用戶端之一或多個軟體模組或程式碼,其有利地使得用戶端能夠針對給定事件En
比較重新產生或恢復之快照與記錄於(區塊鏈)交易上(亦即,與有關智慧型合約SC之事件串流ES相關聯)之智慧型合約的狀態。應注意,儘管對於經驗證為事件串流ES中之最新事件的真實事件En
並非必要的,但此通常為最常見情況。應注意,有可能基於已發生且已經提供至事件串流ES或寫入至事件串流中之任何其他較早真實事件En
提供測試輸入TEn
。
在一些實施例中,驗證工具亦使得能夠藉由與可鏈外儲存的智慧型合約SC之當前快照或狀態(諸如,在事件日誌或例項快照資料庫中)進行比較來驗證經重新執行或經恢復事件串流,以驗證其是否匹配。在一些實施例中,驗證工具亦可使得用戶端能夠在需要時執行與直接與來自區塊鏈之事件串流ES相關聯之資料的比較。
因此,在一些實施例中,驗證工具結合與用戶端相關聯之SDK(用戶端庫)允許或執行以下步驟:
(a)獲得與智慧型合約SC相關聯之可執行程式碼。在一些實例中,此可基於已可用於用戶端之二進位碼,或用戶端可直接經由執行器平台調用智慧型合約軟體之最新版本。
(b)直接提供,亦即在不使用平台之閘道器或HTTPS API之情況下直接提供測試輸入事件TEn
,其係基於對於智慧型合約已經發生且因此已經寫入至區塊鏈中之實際或真實事件En
。因此,測試事件TEn
與已處理且儲存於區塊鏈上以與日誌(亦即,智慧型合約之事件串流ES)相關聯的真實事件En
相同或基於該真實事件。因此,驗證工具具有直接調用合約軟體以重新執行事件串流ES從而基於使用對應測試輸入事件TEn
驗證之事件En
恢復智慧型合約SC之快照或狀態的功能性。
(c)由於驗證工具經組配以大體上基於測試事件而非已經發生之真實事件調用合約軟體,因此執行器平台100不寫入資料或調用資料寫入操作或服務以將此等測試事件TEn
記錄至與智慧型合約SC相關聯之事件串流ES中。有可能將由驗證工具調用之測試事件之記錄記錄在與用戶端或平台相關聯之另一鏈外日誌或儲存器中。然而,測試事件不寫入至區塊鏈中,且事件串流僅包括已發生之智慧型合約SC的真實事件En
之序列的清楚指示。
有利地,如藉由本揭露內容的第一及第二態樣之方法實施的事件串流及其與區塊鏈相關聯之依序日誌的實施以追蹤智慧型合約之執行為智慧型合約提供關於事件之不變性及事件定序之不變性的保證。一旦經寫入,以以下方式中之任一者篡改智慧型合約之任何嘗試都將被阻止或變得顯而易見:
-改變事件之內容
-重排序事件
-在串流之開始或中間處***事件
-自串流中之任何位置移除事件
換言之,本揭露內容使得關於追蹤智慧型合約之事件串流之以下屬性可證實:
-事件串流中之個別條目自經寫入以來尚未經修改
-尚未在先前連續條目之間***條目
-尚未移除條目
-尚未重排序條目
此等屬性及優勢具有自審計/遵從性日誌至狀態機複製,再至用於針對所有用戶端自區塊鏈讀取資料及將資料寫入至區塊鏈中的更高效、防篡改且準確方法的許多實際應用。
實施實例
諸如事件串流ES之事件日誌之捕獲將適用的事件串流之實例為追蹤及記錄經組配以用於使用區塊鏈之遊戲(諸如Noughts O及Crosses X(或通常稱為井字遊戲))的智慧型合約SC的應用程式。
以下章節查核不同類型之智慧型合約的建構以便說明可如何經由平台服務來遞送特定結果。此處之智慧型合約SC係針對井字遊戲。
井字遊戲係紙筆遊戲,二個玩家X及O輪流在3×3的網格中標記空格。成功將其標記中之三者置放於水平、豎直或對角線列中的玩家為獲勝者。為了贏得遊戲,玩家必須將其標記中之三者置放於水平、豎直或對角線列中。
在圖7中可見對遊戲之說明。
該遊戲由二個玩家O及X來玩。玩家可以被命名並輪流佔據單元格,直至建構單元格之獲勝回合,或者不可建構單元格之此回合。
每一單元格由座標對A1、B1、…、B3、C3標註。單個單元格可為被佔據的或空的。佔據的單元格必須由單個玩家佔據。整個遊戲可模型化為一對巢套式狀態機。在圖7a中可見用於單個單元格之狀態機。
在圖7b中可見外部狀態機,含有上述單元格狀態機之九個例項(A1至C3)。
遊戲之單次玩耍可由描述玩家之一些初始元資料後接依序被佔據之單元格之日誌表示。此為待藉由任何複本或實體或節點重新執行的遊戲及待獨立地驗證之遊戲之結果提供足夠資料。
來自此文件中之較早之實例遊戲(由其事件串流表示)可說明為:
序列 條目
00 O=愛麗絲(Alice),X=鮑勃(Bob),合約=0x34476928...
01 C1
02 A1
03 A3
04 B2
05 C3
06 C2
07 B3
以上日誌中之每一條目將為針對隨後的遊戲(SC)之事件串流ES中之事件En
。
愛麗絲及鮑勃可使用自定義用戶端軟體,諸如行動應用程式以與平台服務閘道器互動。閘道器將與圖1b中可見之基礎執行器平台互動,該基礎執行器平台將進行配置以用於新事件串流ES之建構,接著負責將事件饋送至適合的智慧型合約程式SC中。
在每一輪次之後,囊封為一系列鏈上交易之事件串流ES可複製或發送回至愛麗絲及鮑勃二者,以便允許本端或用戶端側應用程式顯示遊戲之當前狀態ESn
。替代地,在遊戲之快照狀態較小之情況下,遊戲之當前狀態亦可在其經更新時展現回至二個玩家。
玩家在遊戲中進行移動之過程詳細地闡明圖8中之序列流程圖。
在此實例中,不存在展示為經發送至其他玩家的顯式訊息,但此訊息可存在。省略內部傳訊以簡化以上圖式。智慧型合約之事件串流實現合約之事件之觀測器複製的特徵。因此,任何經授權實體可訂閱給定事件串流ES接收更新之通知。類似地,可添加快照通知,但未在上文中展示。
使用井字遊戲之相同實例,以下提供使用事件串流ES提供智慧型合約SC之依序事件之不可變防篡改日誌的實例。
考慮至多n = 4之遊戲(對於智慧型合約,亦即遊戲,自0至4之5個狀態)在以下狀態下:
A | B | C | |
1 | O | O | |
2 | O | ||
3 | X | X |
隨著遊戲繼續進行,藉由第三態樣之方法,基於區塊鏈交易之輸出的日誌可如下記錄:
0 | B2 |
1 | A3 |
2 | A1 |
3 | C3 |
4 | C1 |
考慮嘗試篡改或改變針對此序列維持的日誌之複本,諸如在n=4時針對結果***不同條目,使得日誌並不反映遊戲之實際狀態,如下文所給出:
0 | B2 |
1 | A3 |
2 | A1 |
3 | C3 |
4 | B3 |
4 | C1 |
將能立即自區塊鏈上的事件串流之自動產生的依序日誌的檢查或審計識別出此情況,此係因為使用n=3時的交易之塵埃輸出的交易輸入將不會被驗證。應瞭解,在此類遊戲涉及財務交易(例如,支付以進行遊戲)之情況下,玩家可能希望檢查其遊戲日誌之準確性及給定遊戲提供商是否遵守其正廣告之賠率或難度。藉由如上文所描述在事件串流ES中儲存給定遊戲之個別遊戲條目(或其散列),可保證玩家可獨立於由遊戲提供商維持之任何內部系統檢查及驗證遊戲中事件。
應進一步瞭解,給定事件串流中之每個事件不必對應於遊戲作業階段內發生之個別事件。可針對需要事件之準確、依序、防篡改日誌的該等事件之任何日誌定義事件串流。給定事件串流中之事件之實例可包括例如:本端地或遠端地(較佳為鏈外地)執行之給定智慧型合約的輸入及/或輸出;給定線上傳訊會話之二個或更多個參與者之間發送的訊息;由感測器或IoT裝置執行,以用於量測例如天氣、例如車輛、商品、人之位置等的實體量測;藥物/藥品追蹤-包括例如製造源、運輸方式、分配者位置、處方劑量、接收者資訊等;財務交易,諸如帳戶貸記及/或借記之金額(不論帳戶是以密碼貨幣還是法定貨幣貸記)、匯率改變、交易執行、購買商品或股票之請求等。最後,其中產生及使用事件串流之上下文將由使用平台處理器來產生此事件串流之一方隨意使用。
現在轉向圖9,提供運算裝置2600之說明性簡化方塊圖,該運算裝置可用於實踐本揭露內容之至少一個實施例。在各種實施例中,運算裝置2600可用以實施上文所說明及描述之系統中之任一者。例如,運算裝置2600可經組配以用作圖之DBMS之一或多個組件,或運算裝置2600可經組配為與給定使用者相關聯的用戶端實體,該用戶端實體作出對由圖9之DBMS管理之資料庫的資料庫請求。因此,運算裝置2600可為攜帶型運算裝置、個人電腦,或任何電子運算裝置。如圖9中所示,運算裝置2600可包括具有快取記憶體之一或多個層級及記憶體控制器的一或多個處理器(共同地標記為2602),該等處理器可經組配以與包括主記憶體2608及持久性儲存器2610之儲存子系統2606通訊。主記憶體2608可包括如所示之動態隨機存取記憶體(DRAM) 2618及唯讀記憶體(ROM) 2620。儲存子系統2606及快取記憶體2602且可用於儲存資訊,諸如與如本揭露內容中所描述之交易及區塊相關聯的細節。處理器2602可用以提供如本揭露內容中所描述之任何實施例的步驟或功能性。
處理器2602亦可與一或多個使用者介面輸入裝置2612、一或多個使用者介面輸出裝置2614及網路介面子系統2616通訊。
匯流排子系統2604可提供用於使得運算裝置2600之各種組件及子系統能夠按預期彼此通訊之機制。儘管匯流排子系統2604經示意性地展示為單個匯流排,但匯流排子系統之替代實施例可利用多個匯流排。
網路介面子系統2616可提供至其他運算裝置及網路之介面。網路介面子系統2616可充當用於自其他系統接收資料及將資料自運算裝置2600傳輸至其他系統之介面。例如,網路介面子系統2616可使得資料技術員能夠將裝置連接至網路,使得資料技術員可能夠在處於諸如資料中心之遠端位置時將資料傳輸至裝置及自裝置接收資料。
使用者介面輸入裝置2612可包括:一或多個使用者輸入裝置,諸如鍵盤;指標裝置,諸如整合式滑鼠、軌跡球、觸控板或圖形平板電腦;掃描器;條形碼掃描器;觸控螢幕,其併入至顯示器中;音訊輸入裝置,諸如語音辨識系統、麥克風;及其他類型之輸入裝置。大體而言,術語「輸入裝置」之使用意欲包括用於將資訊輸入至運算裝置2600之所有可能類型的裝置及機構。
一或多個使用者介面輸出裝置2614可包括顯示子系統、印表機或諸如音訊輸出裝置之非視覺顯示器等。顯示子系統可為陰極射線管(CRT)、諸如液晶顯示器(LCD)之平板裝置、發光二極體(LED)顯示器,或投影或其他顯示裝置。大體而言,術語「輸出裝置」之使用意欲包括用於輸出來自運算裝置2600之資訊的所有可能類型的裝置及機構。例如,一或多個使用者介面輸出裝置2614可用以呈現使用者介面以在使用者與應用程式之互動可係適當的時促進此互動,該等應用程式執行所描述之程序及其中之變化。
儲存子系統2606可提供電腦可讀儲存媒體,該電腦可讀儲存媒體用於儲存可提供本揭露內容之至少一個實施例之功能性的基本程式設計及資料構造。應用程式(程式、程式碼模組、指令)在由一或多個處理器執行時可提供本揭露內容之一或多個實施例的功能性,且可儲存於儲存子系統2606中。此等應用程式模組或指令可由一或多個處理器2602執行。儲存子系統2606可另外提供用於儲存根據本揭露內容所使用之資料的儲存庫。例如,主記憶體2608及快取記憶體2602可提供用於程式及資料之依電性儲存器。持久性儲存器2610可提供用於程式及資料之持久性(非依電性)儲存器,且可包括快閃記憶體、一或多個固態驅動機、一或多個磁性硬碟驅動機、具有相關聯可移除媒體之一或多個軟碟驅動機、具有相關聯可移除媒體之一或多個光學驅動機(例如,CD-ROM或DVD或Blue-Ray)驅動機及其他相似儲存媒體。此程式及資料可包括用於進行如本揭露內容中所描述的一或多個實施例之步驟的程式,以及與如本揭露內容中所描述之交易及區塊相關聯的資料。
運算裝置2600可具有各種類型,包括攜帶型電腦裝置、平板電腦、工作站或下文所描述之任何其他裝置。另外,運算裝置2600可包括可通過一或多個埠(例如,USB、頭戴式耳機插口、雷電型連接器等)連接至運算裝置2600的另一裝置。可連接至運算裝置2600之裝置可包括經組配以接受光纖連接器之多個埠。因此,此裝置可經組配以將光學信號轉換成可通過將裝置連接至運算裝置2600之埠傳輸的電信號以供處理。由於電腦及網路不斷改變之本質,出於說明裝置之較佳實施例之目的,圖9中所描繪之運算裝置2600之描述僅意欲作為特定實例。具有比圖9中所描繪之系統更多或更少組件的許多其他組配係可能的。經枚舉實例實施例
本揭露內容特此基於與上文態樣相關之以下條項來論述,該等條項在本文中經提供作為例示性實施例以用於較佳地解釋、描述及理解所主張之態樣及實施例。
1.一種用於使得能夠執行與一區塊鏈相關聯之一或多個智慧型合約之電腦實施方法,該方法由與一應用程式設計介面(API)相關聯之一平台處理器實施,該方法包含以下步驟:
自一用戶端接收一請求,該請求關於一智慧型合約(SC),來自該用戶端之該請求基於一超文字傳送協定(HTTP)傳輸協定格式;
存取有關該請求之該智慧型合約SC;
識別與該區塊鏈相關聯之一事件串流(ES),該事件串流ES特定針對於該智慧型合約SC,該事件串流表示該智慧型合約SC之狀態;
基於經識別事件串流ES判定該智慧型合約SC之一當前狀態ESn
,其中n為自0至N之一整數,每一整數n表示與該智慧型合約SC相關聯之事件之一當前狀態或當前數目,且N表示n之一最大值或終值或狀態;
基於所接收請求調用該智慧型合約SC之執行;
藉由包括以下各者之步驟調用對有關該智慧型合約SC之該事件串流ES之更新:
基於該所接收請求處理一新事件En
;及
基於該新事件En
獲得該智慧型合約之一經更新當前狀態ESn + 1
;以及
基於該智慧型合約之該經更新當前狀態ESn + 1
而儲存或提供一結果。
2.如條項1之方法,其中調用該智慧型合約SC之執行之步驟進一步包含:
自該所接收請求獲得特定針對於該智慧型合約SC之一識別符;
基於該識別符,自一合約儲存器存取給定智慧型合約SC;
將該智慧型合約SC提供至一或多個處理器以用於執行與該智慧型合約相關聯之一或多個軟體常式或程式設計指令。
3.如條項1或2之方法,其中基於n = 0之一判定,處理一新事件En
之步驟包括以下步驟:
將該所接收請求中針對該智慧型合約SC之該新事件En
識別為一第一事件以產生有關該智慧型合約SC之各別事件串流ES;
藉由產生包括為一塵埃輸出之一第一未用輸出UTXO0 _ dust
的一區塊鏈交易TX0
來處理所接收事件En
;
將該交易TX0
提交至該區塊鏈;以及
提供與該經更新事件串流ES相關聯之一結果。
4.如條項3之方法,其中該區塊鏈交易TX0
包括該智慧型合約SC之一識別符或一散列。
5.如條項1或2之方法,其中基於0 < n < N之一判定,處理一新事件En
之該步驟包括以下步驟:
將該所接收請求中針對該智慧型合約SC之該新事件En
識別為一當前事件以修正有關該智慧型合約SC之該各別事件串流ES;
藉由產生一區塊鏈交易TXn
來處理該所接收事件En
,該區塊鏈交易包括:
使用與該事件串流ES之一先前交易相關聯的一塵埃輸出的一第一輸入;
為一塵埃輸出的一第一未用交易輸出UTXOn _ dust
;以及
與表示該當前事件En
之事件資料相關聯的一最終未用交易輸出UTXOn _ data
;
將該交易TXn
提交至該區塊鏈;以及
提供與該經更新事件串流ES相關聯之一結果。
6.如條項5之方法,其中在該當前區塊鏈交易TXn
之該最終未用交易輸出(UTXOn_data
)中的該事件En
之該事件資料包括該事件資料之一散列。
7.如條項6之方法,其中由該平台處理器應用該事件資料之該散列。
8.如條項6之方法,其中該事件資料之該散列由該用戶端應用,之後包括於由該平台處理器接收之該請求中。
9.如條項6之方法,其中在該當前區塊鏈交易TXn
之該最終未用交易輸出(UTXOn_data
)中的該事件En
之該事件資料包括原始事件資料。
10.如條項1或2之方法,其中基於n = N之一判定,處理一新事件En
之該步驟包括以下步驟:
將該所接收請求中針對該智慧型合約SC之該新事件En
識別為一最終事件以終止該事件串流ES;
藉由產生一區塊鏈交易TXN
來處理該所接收事件En
,該區塊鏈交易包括:
使用與該事件串流ES之一先前交易相關聯的一塵埃輸出的一第一輸入;及
與超過一經定義塵埃輸出值之一數位資產相關聯的一最終未用輸出UTXON
;
將所產生交易TXN
提交至該區塊鏈;以及
提供與TXN
中之該事件串流ES相關聯之一結果。
11.如條項3至10中任一項之方法,其中提交步驟包含在與待挖掘之該區塊鏈相關聯之一後續區塊中包括該所產生交易。
12.如條項3至11中任一項之方法,其包含基於與所提交區塊鏈交易相關聯之一交易識別符來識別該事件串流ES的步驟。
13.如條項3至12中任一項之方法,其包含基於與該所提交區塊鏈交易相關聯之一交易識別符來識別該智慧型合約SC之一狀態的步驟。
14.如條項3至13中任一項之方法,其中該所產生區塊鏈交易進一步包含:
與一數位資產相關聯之一輸入;及
與該數位資產相關聯之一或多個改變輸出。
15.如條項14之方法,其中該數位資產與一操作性浮動相關聯。
16.如條項3至15中任一項之方法,其包括判定待與有關該智慧型合約SC之該事件串流ES一起使用之一階層式確定性密鑰鏈K的步驟,其中該密鑰鏈K包括自一選定父代密鑰對導出的一系列私用/公用密鑰對,使得K = Kn=0 至 N
。
17.如前述條項中任一項之方法,其中調用更新有關該智慧型合約之該事件串流ES的該步驟進一步包括存取與該平台處理器相關聯以用於處理該新事件En
的一資料寫入器的步驟。
18.如前述條項中任一項之方法,其中該結果為該智慧型合約SC之一快照狀態,該結果儲存於與該平台處理器相關聯之一例項狀態資料庫中及/或可自與該平台處理器相關聯之一例項狀態資料庫存取。
19.如前述條項中任一項之方法,其中該結果係基於該HTTP傳輸協定格式而提供至該用戶端。
20.如前述條項中任一項之方法,其中與該智慧型合約SC之該當前狀態ESn
相關聯之該結果包括一憑證,該憑證確認以下各者中之至少一者:
-其中該事件En
被提交至該區塊鏈之一交易識別符;
-該交易至該區塊鏈中之一標頭的一Merkle包括證明;
-其中包括該交易之區塊標頭的一複本。
21.如前述條項中任一項之方法,其中該智慧型合約SC被實施為一有限狀態機(FSM)。
22.如前述條項中任一項之方法,其包含將基於針對該智慧型合約SC之該事件串流ES之每一事件的該一或多個結果的一複本或一記錄或一日誌儲存於一鏈外儲存資源中。
23.如前述條項中任一項之方法,其中該API為一超文字傳送協定(HTTP)應用程式設計介面(API)端點,且其中使用HTTP安全(HTTPS)將該端點提供至該用戶端。
24.如條項1至23中任一項之方法,其中該API為與該平台處理器相關聯之一別名,該別名特定針對於該平台處理器並且由一基於別名之定址服務提供,該定址服務具有可自一經定義或熟知位置存取之一機器可讀資源,該機器可讀資源包括有關該平台處理器之一或多個能力,且其中該別名係與用於鑑認之一不對稱密碼密鑰對相關聯。
25.如前述條項中任一項之方法,其中回應於自該用戶端接收到該請求,該方法包含提供一或多個軟體庫及/或驗證工具以用於處理與與該請求相關聯的該智慧型合約SC相關聯之資料的步驟。
26.一種用於存取與一區塊鏈相關聯之一智慧型合約的電腦實施方法,該方法由多個用戶端當中的一給定用戶端之一或多個處理器實施,該方法包含以下步驟:
獲得或識別與一或多個處理器相關聯之一應用程式設計介面(API)端點,該一或多個處理器與一平台相關聯以用於執行一智慧型合約SC;
將對於有關該智慧型合約SC之一或多個事件En
之一請求發送至該平台,其中基於一超文字傳送協定(HTTP)傳輸協定格式而發送該請求;
獲得一或多個軟體庫及驗證工具以用於處理與該智慧型合約SC相關聯之資料;以及
接收基於有關所請求事件En
之一區塊鏈交易之一輸出指令碼的一結果,該結果表示該智慧型合約SC之一經更新狀態,該結果使用一HTTP傳輸協定格式接收。
27.如條項26之方法,其包含將一散列函數應用於該事件En
之事件資料,使得該請求包括該事件En
之經散列事件資料。
28.如條項26或27之方法,其進一步包含以下步驟:
基於該結果,使用該一或多個軟體庫恢復與該智慧型合約SC相關聯之該事件串流ES;
使用該一或多個驗證工具,將經恢復事件串流ES與該結果進行比較以驗證該智慧型合約之該狀態。
29.如條項26至28中任一項之方法,其中該一或多個軟體庫與自該平台接收到之一軟體開發套件(SDK)相關聯。
30.如條項26至27中任一項之方法,其中該用戶端與與該平台處理器相關聯之一別名相關聯,該別名特定針對於該平台處理器並且由一基於別名之定址服務提供,該定址服務具有可自一經定義或熟知位置存取之一機器可讀資源,該機器可讀資源包括有關該用戶端之一或多個能力,且其中該別名係與用於鑑認之一不對稱密碼密鑰對相關聯。
31.一種運算裝置,其包含一處理器及記憶體,該記憶體包括可執行指令,作為由該處理器執行之一結果,該等可執行指令使得該裝置執行如條項1至25中任一項之電腦實施方法,該運算裝置係有關一平台處理器。
32.一種運算裝置,其包含一處理器及記憶體,該記憶體包括可執行指令,作為由該處理器執行之一結果,該等可執行指令使得該裝置執行如條項26或3-中任一項之電腦實施方法,其中該運算裝置係有關一用戶端。
33.一種電腦系統,其包含:
至少一個平台處理器,其經由一無線通訊網路以通訊方式耦接至至少一個用戶端,該至少一個平台處理器與一應用程式設計介面(API)端點相關聯以用於處理來自該至少一個用戶端之HTTP請求,該至少一個平台處理器根據如條項31之運算裝置實施;且該至少一個用戶端根據如條項32之運算裝置實施,其中該至少一個平台處理器經由該無線通訊網路以通訊方式耦接至一平台服務之以下組件中之一或多者,該平台服務為多個用戶端提供與一區塊鏈相關聯之多個服務;
一智慧型合約儲存器;
一事件串流日誌;
一例項狀態資料庫;以及
一資料寫入器。
34.一種電腦可讀儲存媒體,其上儲存有可執行指令,作為由一電腦之一處理器執行之一結果,該等可執行指令使得該電腦執行如條項1至30中任一項之方法。
應注意,上文所提及之態樣及實施例說明而非限制本揭露內容,且熟習此項技術者將能夠設計許多替代性實施例而不偏離本揭露內容之如由所附申請專利範圍定義的範疇。在申請專利範圍中,置放於圓括號中的任何參考符號不應被認為限制申請專利範圍。字組「包含(comprising及comprises)」及其類似者並不排除除任何技術方案或說明書中整體列出之彼等元件或步驟外的元件或步驟之存在。在本說明書中,「包含(comprises及comprising)」意謂「包括或由……組成」。元件之單數參考並不排除此等元件之複數參考,且反之亦然。本揭露內容可藉助於包含若干獨特元件之硬體且藉助於經合適程式化之電腦實施。在枚舉若干構件之裝置技術方案中,此等構件中之若干者可由硬體之同一物件體現。在相互不同之附屬技術方案中敍述某些措施之純粹實情並不指示不能有利地使用此等措施之組合。
100:平台處理器/平台服務
102:資料寫入服務/服務模組或處理資源
104:運算服務/服務模組或處理資源
105:區塊鏈網路
106:商務服務/服務模組或處理資源
108:應用程式設計介面(API)
110:基礎軟體
202,204,206,208,210,212,214,216,302,304,306,308,310,312,314,402,404,406,408,410,412,414,502,504,506,508,510,512,514,602,604,606,608,610:步驟
1000:執行器平台
1000a,1000b:事件閘道器
1001:用戶端應用程式/客戶應用程式
1003:合約儲存器
1004:資料服務
1005:比特幣SV區塊鏈
1006:合約管理API
1007:合約儲存庫
1008:執行器
1009:例項狀態資料庫/例項快照資料庫
2600:運算裝置
2602:處理器/快取記憶體
2604:匯流排子系統
2606:儲存子系統
2608:主記憶體
2610:持久性儲存器
2612:使用者介面輸入裝置
2614:使用者介面輸出裝置
2616:網路介面子系統
2618:動態隨機存取記憶體(DRAM)
2620:唯讀記憶體(ROM)
現將僅作為實例且參考附圖描述本揭露內容之態樣及實施例,在附圖中:
圖1為說明用於與區塊鏈相關聯之多個服務之平台的概述的示意圖。
圖1a為說明根據第一態樣的在圖1中可見之多個服務之平台之運算服務的組件的示意圖。
圖1b為描繪根據第一態樣的圖1a中可見之運算服務之執行器平台或處理器之組件的示意圖。
圖2為描繪用於使得能夠執行如藉由與平台服務相關聯之一或多個處理器實施之一或多個智慧型合約之方法的流程圖。
圖3為描繪用於產生針對如藉由與平台服務相關聯之一或多個處理器實施的智慧型合約之事件串流之方法的流程圖,該事件串流與區塊鏈相關聯。
圖4為描繪用於更新針對如藉由與平台服務相關聯之一或多個處理器實施的智慧型合約之事件串流之方法的流程圖,該事件串流與區塊鏈相關聯。
圖5為描繪用於終止針對如藉由與平台服務相關聯之一或多個處理器實施的智慧型合約之事件串流之方法的流程圖,該事件串流與區塊鏈相關聯。
圖6為描繪根據第二態樣的用於存取如藉由與用戶端相關聯之一或多個處理器實施的與區塊鏈相關聯之智慧型合約之方法的流程圖。
圖7為說明遊戲之執行以作為智慧型合約之執行之實例的示意圖。
圖7a為說明用於實例智慧型合約之一個狀態之狀態機的示意圖。
圖7b為說明用於實例智慧型合約之單個事件之狀態轉變的示意圖。
圖8為描繪與針對實例智慧型合約之事件相關聯之資料及/或過程流程的序列圖。
圖9為說明可實施本揭露內容之各個態樣及實施例的運算環境的示意圖。
202,204,206,208,210,212,214,216:步驟
Claims (34)
- 一種用於使得能夠執行與一區塊鏈相關聯之一或多個智慧型合約之電腦實施方法,該方法由與一應用程式設計介面(API)相關聯之一平台處理器實施,該方法包含以下步驟: 自一用戶端接收一請求,該請求關於一智慧型合約(SC),來自該用戶端之該請求係基於一超文字傳送協定(HTTP)傳輸協定格式; 存取有關該請求之該智慧型合約SC; 識別與該區塊鏈相關聯之一事件串流(ES),該事件串流ES特定於該智慧型合約SC,該事件串流表示該智慧型合約SC之狀態; 基於經識別事件串流ES判定該智慧型合約SC之一當前狀態ESn ,其中n為自0至N之一整數,每一整數n表示與該智慧型合約SC相關聯之事件之一當前狀態或當前數目,且N表示n之一最大值或終值或狀態; 基於所接收請求調用該智慧型合約SC之執行; 藉由包括以下各者之步驟調用對有關該智慧型合約SC之該事件串流ES之更新: 基於該所接收請求處理一新事件En ;以及 基於該新事件En 獲得該智慧型合約之一經更新當前狀態ESn + 1 ;以及 儲存或提供基於該智慧型合約之該經更新當前狀態ESn + 1 的一結果。
- 如請求項1之方法,其中調用該智慧型合約SC之執行之步驟進一步包含: 自該所接收請求獲得特定於該智慧型合約SC之一識別符; 基於該識別符,自一合約儲存器存取給定智慧型合約SC; 將該智慧型合約SC提供至一或多個處理器以用於執行與該智慧型合約相關聯之一或多個軟體常式或程式設計指令。
- 如請求項1或2之方法,其中基於n = 0之一判定,處理一新事件En 之步驟包括以下步驟: 將該所接收請求中針對該智慧型合約SC之該新事件En 識別為一第一事件以產生有關該智慧型合約SC之各別事件串流ES; 藉由產生包括為一塵埃輸出之一第一未用輸出UTXO0 _ dust 的一區塊鏈交易TX0 來處理所接收事件En ; 將該交易TX0 提交至該區塊鏈;以及 提供與經更新事件串流ES相關聯之一結果。
- 如請求項3之方法,其中該區塊鏈交易TX0 包括該智慧型合約SC之一識別符或一散列。
- 如請求項1或2之方法,其中基於0 < n < N之一判定,處理一新事件En 之該步驟包括以下步驟: 將該所接收請求中針對該智慧型合約SC之該新事件En 識別為一當前事件以修正有關該智慧型合約SC之該各別事件串流ES; 藉由產生一區塊鏈交易TXn 來處理該所接收事件En ,該區塊鏈交易包括: 使用與該事件串流ES之一先前交易相關聯的一塵埃輸出的一第一輸入; 為一塵埃輸出的一第一未用交易輸出UTXOn _ dust ;以及 與表示該當前事件En 之事件資料相關聯的一最終未用交易輸出UTXOn _ data ; 將該交易TXn 提交至該區塊鏈;以及 提供與該經更新事件串流ES相關聯之一結果。
- 如請求項5之方法,其中在該當前區塊鏈交易TXn 之該最終未用交易輸出(UTXOn _ data )中的該事件En 之該事件資料包括該事件資料之一散列。
- 如請求項6之方法,其中該事件資料之該散列係由該平台處理器應用。
- 如請求項6之方法,其中該事件資料之該散列在被包括於由該平台處理器接收之該請求中之前係由該用戶端應用。
- 如請求項6之方法,其中在該當前區塊鏈交易TXn 之該最終未用交易輸出(UTXOn _ data )中的該事件En 之該事件資料包括原始事件資料。
- 如請求項1或2之方法,其中基於n = N之一判定,處理一新事件En 之該步驟包括以下步驟: 將該所接收請求中針對該智慧型合約SC之該新事件En 識別為一最終事件以終止該事件串流ES; 藉由產生一區塊鏈交易TXN 來處理該所接收事件En ,該區塊鏈交易包括: 使用與該事件串流ES之一先前交易相關聯的一塵埃輸出的一第一輸入;以及 與超過一經定義塵埃輸出值之一數位資產相關聯的一最終未用輸出UTXON ; 將所產生交易TXN 提交至該區塊鏈;以及 提供與TXN 中之該事件串流ES相關聯之一結果。
- 如請求項3至10中任一項之方法,其中提交步驟包含在與待挖掘之該區塊鏈相關聯之一後續區塊中包括該所產生交易。
- 如請求項3至11中任一項之方法,其包含基於與所提交區塊鏈交易相關聯之一交易識別符來識別該事件串流ES的步驟。
- 如請求項3至12中任一項之方法,其包含基於與該所提交區塊鏈交易相關聯之一交易識別符來識別該智慧型合約SC之一狀態的步驟。
- 如請求項3至13中任一項之方法,其中該所產生區塊鏈交易進一步包含: 與一數位資產相關聯之一輸入;以及 與該數位資產相關聯之一或多個改變輸出。
- 如請求項14之方法,其中該數位資產與一操作性浮動相關聯。
- 如請求項3至15中任一項之方法,其包括判定待與有關該智慧型合約SC之該事件串流ES一起使用之一階層式確定性密鑰鏈K的步驟,其中該密鑰鏈K包括自一選定父代密鑰對導出的一系列私用/公用密鑰對,使得K = Kn = 0 至 N 。
- 如前述請求項中任一項之方法,其中調用更新有關該智慧型合約之該事件串流ES的步驟進一步包括存取與用於處理該新事件En 之該平台處理器相關聯的一資料寫入器的步驟。
- 如前述請求項中任一項之方法,其中該結果為該智慧型合約SC之一快照狀態,該結果儲存於與該平台處理器相關聯之一例項狀態資料庫中及/或可自與該平台處理器相關聯之該例項狀態資料庫存取。
- 如前述請求項中任一項之方法,其中該結果係基於該HTTP傳輸協定格式而提供至該用戶端。
- 如前述請求項中任一項之方法,其中與該智慧型合約SC之該當前狀態ESn 相關聯之該結果包括一憑證,該憑證確認以下各者中之至少一者: -其中該事件En 被提交至該區塊鏈之一交易識別符; -該交易至該區塊鏈中之一標頭的一Merkle包括證明 -其中包括該交易之區塊標頭的一複本。
- 如前述請求項中任一項之方法,其中該智慧型合約SC被實施為一有限狀態機(FSM)。
- 如前述請求項中任一項之方法,其包含將基於針對該智慧型合約SC之該事件串流ES之每一事件的該一或多個結果的一複本或一記錄或一日誌儲存於一鏈外儲存資源中。
- 如前述請求項中任一項之方法,其中該API為一超文字傳送協定(HTTP)應用程式設計介面(API)端點,且其中該端點係使用HTTP安全(HTTPS)被提供至該用戶端。
- 如請求項1至23中任一項之方法,其中該API為與該平台處理器相關聯之一別名,該別名特定於該平台處理器並且由一基於別名之定址服務提供,該定址服務具有可自一經定義或熟知位置存取之一機器可讀資源,該機器可讀資源包括有關該平台處理器之一或多個能力,且其中該別名係與用於鑑認之一不對稱密碼密鑰對相關聯。
- 如前述請求項中任一項之方法,其中回應於自該用戶端接收到該請求,該方法包含提供一或多個軟體庫及/或驗證工具以用於處理跟與該請求相關聯的該智慧型合約SC相關聯之資料的步驟。
- 一種用於存取與一區塊鏈相關聯之一智慧型合約的電腦實施方法,該方法由多個用戶端當中的一給定用戶端之一或多個處理器實施,該方法包含以下步驟: 獲得或識別與一或多個處理器相關聯之一應用程式設計介面(API)端點,該一或多個處理器與一平台相關聯以用於執行一智慧型合約SC; 將對於有關該智慧型合約SC之一或多個事件En 之一請求發送至該平台,其中該請求係基於一超文字傳送協定(HTTP)傳輸協定格式發送; 獲得一或多個軟體庫及驗證工具以用於處理與該智慧型合約SC相關聯之資料;以及 接收基於有關所請求事件En 之一區塊鏈交易之一輸出指令碼的一結果,該結果表示該智慧型合約SC之一經更新狀態,該結果係使用一HTTP傳輸協定格式接收。
- 如請求項26之方法,其包含將一散列函數應用於該事件En 之事件資料,使得該請求包括該事件En 之經散列事件資料。
- 如請求項26或27之方法,其進一步包含以下步驟: 基於該結果,使用該一或多個軟體庫恢復與該智慧型合約SC相關聯之事件串流ES; 使用該一或多個驗證工具,將經恢復事件串流ES與該結果進行比較以驗證該智慧型合約之該狀態。
- 如請求項26至28中任一項之方法,其中該一或多個軟體庫與自該平台接收到之一軟體開發套件(SDK)相關聯。
- 如請求項26至27中任一項之方法,其中該用戶端跟與該平台處理器相關聯之一別名相關聯,該別名特定於該平台處理器並且由一基於別名之定址服務提供,該定址服務具有可自一經定義或熟知位置存取之一機器可讀資源,該機器可讀資源包括有關該用戶端之一或多個能力,且其中該別名係與用於鑑認之一不對稱密碼密鑰對相關聯。
- 一種運算裝置,其包含一處理器及記憶體,該記憶體包括可執行指令,作為由該處理器執行之一結果,該等可執行指令使得該裝置執行如請求項1至25中任一項之電腦實施方法,該運算裝置係有關一平台處理器。
- 一種運算裝置,其包含一處理器及記憶體,該記憶體包括可執行指令,作為由該處理器執行之一結果,該等可執行指令使得該裝置執行如請求項26至3-中任一項之電腦實施方法,其中該運算裝置係有關一用戶端。
- 一種電腦系統,其包含: 至少一個平台處理器,其經由一無線通訊網路以通訊方式耦接到至少一個用戶端,該至少一個平台處理器與一應用程式設計介面(API)端點相關聯以用於處理來自該至少一個用戶端之HTTP請求,該至少一個平台處理器根據如請求項31之運算裝置實施;且該至少一個用戶端根據如請求項32之運算裝置實施,其中該至少一個平台處理器經由該無線通訊網路以通訊方式耦接至一平台服務之以下組件中之一或多者,該平台服務為多個用戶端提供與一區塊鏈相關聯之多個服務: 一智慧型合約儲存器; 一事件串流日誌; 一例項狀態資料庫;以及 一資料寫入器。
- 一種電腦可讀儲存媒體,其上儲存有可執行指令,作為由一電腦之一處理器執行之一結果,該等可執行指令使得該電腦執行如請求項1至30中任一項之方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB2002285.1A GB202002285D0 (en) | 2020-02-19 | 2020-02-19 | Computer-implemented system and method |
GB2002285.1 | 2020-02-19 | ||
GBGB2013929.1A GB202013929D0 (en) | 2020-09-04 | 2020-09-04 | Computer-implemented system and method |
GB2013929.1 | 2020-09-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202139127A true TW202139127A (zh) | 2021-10-16 |
Family
ID=74701528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110105840A TW202139127A (zh) | 2020-02-19 | 2021-02-19 | 用於與區塊鏈相關聯之服務平台之運算服務 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20230095965A1 (zh) |
EP (1) | EP4107687A1 (zh) |
JP (1) | JP2023513848A (zh) |
KR (1) | KR20220143705A (zh) |
CN (1) | CN115280347A (zh) |
TW (1) | TW202139127A (zh) |
WO (1) | WO2021165816A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220012695A1 (en) * | 2020-07-12 | 2022-01-13 | sensePass LTD. | System and method for management of data exchange with multiple protocols in a computer network |
US20230072264A1 (en) * | 2021-08-17 | 2023-03-09 | Julian Coccia | Method For Certification, Validation And Correlation Of Bills Of Materials In A Software Supply Chain |
KR102610011B1 (ko) * | 2021-10-21 | 2023-12-04 | 고려대학교 산학협력단 | DApp의 스마트 컨트랙트 수수료 감소 방법, 이를 수행하기 위한 기록 매체 및 연산 서버 |
US20230412402A1 (en) * | 2022-06-15 | 2023-12-21 | International Business Machines Corporation | Endorsement policy consolidation in blockchain networks |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10333705B2 (en) * | 2016-04-30 | 2019-06-25 | Civic Technologies, Inc. | Methods and apparatus for providing attestation of information using a centralized or distributed ledger |
-
2021
- 2021-02-15 JP JP2022549739A patent/JP2023513848A/ja active Pending
- 2021-02-15 WO PCT/IB2021/051260 patent/WO2021165816A1/en unknown
- 2021-02-15 KR KR1020227031820A patent/KR20220143705A/ko unknown
- 2021-02-15 US US17/800,859 patent/US20230095965A1/en active Pending
- 2021-02-15 EP EP21707789.0A patent/EP4107687A1/en active Pending
- 2021-02-15 CN CN202180015986.8A patent/CN115280347A/zh active Pending
- 2021-02-19 TW TW110105840A patent/TW202139127A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
EP4107687A1 (en) | 2022-12-28 |
US20230095965A1 (en) | 2023-03-30 |
CN115280347A (zh) | 2022-11-01 |
KR20220143705A (ko) | 2022-10-25 |
JP2023513848A (ja) | 2023-04-03 |
WO2021165816A1 (en) | 2021-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11743137B2 (en) | Systems, methods, and apparatuses for implementing a metadata driven rules engine on blockchain using distributed ledger technology (DLT) | |
US20190172026A1 (en) | Cross blockchain secure transactions | |
CN114365133A (zh) | 利用秘密共享和对读取的共识在元数据驱动的区块链上实现被遗忘的权利的***或方法 | |
US20230095965A1 (en) | Compute services for a platform of services associated with a blockchain | |
CN111213340A (zh) | 选择用于密码功能的证明委托并使其安全 | |
US20220156725A1 (en) | Cross-chain settlement mechanism | |
KR102627868B1 (ko) | 블록체인에서 생성된 데이터를 인증하는 방법 및 시스템 | |
TWI646487B (zh) | 具權限分級和避免重複執行的智能合約執行系統及其方法 | |
US20230119035A1 (en) | Platform services verification | |
US20230082545A1 (en) | Event streams for a sequence of events associated with a blockchain | |
KR20210096287A (ko) | 서명 가능 컨트랙트를 이용하여 블록체인에서 생성된 데이터를 인증하는 방법 및 시스템 | |
Sutopo | Blockchain Programming Smart Contract on Polygon | |
Antal et al. | Distributed Ledger Technology Review and Decentralized Applications Development Guidelines. Future Internet 2021, 13, 62 | |
US20230093411A1 (en) | Synchronising event streams | |
US20230412393A1 (en) | Multisignature Custody of Digital Assets | |
EP4107689A1 (en) | Platform services verification | |
Adel | Blockchain Land Registry | |
Ferretti et al. | Blockchain and Smartcontracts: Fundamentals and a Decentralized Application Case-Study |