TW202312057A - 電腦實施方法及系統 - Google Patents
電腦實施方法及系統 Download PDFInfo
- Publication number
- TW202312057A TW202312057A TW111133443A TW111133443A TW202312057A TW 202312057 A TW202312057 A TW 202312057A TW 111133443 A TW111133443 A TW 111133443A TW 111133443 A TW111133443 A TW 111133443A TW 202312057 A TW202312057 A TW 202312057A
- Authority
- TW
- Taiwan
- Prior art keywords
- transaction
- asset
- transactions
- blockchain
- data
- 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/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/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- 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
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- 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/08—Payment architectures
- G06Q20/12—Payment architectures specially adapted for electronic shopping systems
- G06Q20/123—Shopping for digital content
-
- 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/08—Payment architectures
- G06Q20/14—Payment architectures specially adapted for billing systems
- G06Q20/145—Payments according to the detected use or quantity
-
- 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
- G06Q2220/00—Business processing using cryptography
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一種用於在一區塊鏈上追蹤與一資產互動之至少二個用戶端的電腦實施方法,其中該區塊鏈包含與該資產相關聯之一交易集合及與各用戶端相關聯之一交易集合。資產追蹤包含:接收一資產互動事件請求,該資產互動事件請求包含基於與一資產互動事件相關聯之至少二個用戶端的資料及指示該資產之資料;產生一事件交易,該事件交易包含對與該資產相關聯之該交易集合的一參考及對與該等至少二個用戶端相關聯之該等交易集合的參考;以及將該事件交易提交至該區塊鏈。
Description
發明領域
本揭露內容係關於用於實施與用於多個使用者及所有者之分散式分類帳,亦即區塊鏈相關聯的一或多個服務之平台的方法及系統。更特定而言,本揭露內容提供但不限於與區塊鏈相關聯之資產的資產提供及事件管理。
發明背景
區塊鏈係指分散式資料結構之形式,其中區塊鏈之複本被維持在分散式同級間(P2P)網路(在下文被稱作「區塊鏈網路」)中之多個節點中之各者處並被廣泛公佈。區塊鏈包含資料區塊之鏈,其中各區塊包含一或多個交易。除所謂的「比特幣基地(coinbase)交易」以外,各交易亦指回至序列中之前述交易,該序列可橫跨一或多個區塊,追溯至一或多個比特幣基地交易。下文論述比特幣基地交易。經提交至區塊鏈網路之交易包括在新區塊中。新區塊係藉由常常被稱作「挖掘(mining)」之程序創建,該程序涉及多個節點中之各者競爭以執行「工作量證明」,亦即基於等待包括在區塊鏈之新區塊中的有序及經驗證之未決交易之經界定集合的表示而解決密碼編譯難題。應注意,可在節點處修剪區塊鏈,並且可經由僅公佈區塊標頭來達成區塊之公佈。
區塊鏈中之交易用於執行以下各者中之一或多者:傳達數位資產(亦即,數個數位符記(token)),在虛擬化分類帳或登記表中對日誌條目集合進行排序,接收並處理時戳條目,及/或按時間次序索引指標。亦可利用區塊鏈以便對區塊鏈之頂部上的額外功能性進行分層。區塊鏈協定可允許將額外使用者資料或資料之索引儲存在交易中。對於可儲存在單個交易內之最大資料容量不存在預先指定之限制,並且因此可併入愈來愈複雜之資料。舉例而言,此可用於將電子文件、或音訊或視訊資料儲存在區塊鏈中。
區塊鏈網路之節點(其常常被稱作「挖掘器」)執行將在下文詳細描述之分散式交易登記及校驗程序。總之,在此程序期間,節點驗證交易且將其插入至區塊範本中,針對該區塊範本,該等交易嘗試識別有效的工作量證明解決方案。一旦找到有效解決方案,便將新區塊傳播至網路之其他節點,因此使得各節點能夠在區塊鏈上記錄新區塊。為了使交易經記錄在區塊鏈中,使用者(例如,區塊鏈用戶端應用程式)將交易發送至網路之節點中之一者以供傳播。接收交易之節點可競相尋找將經驗證交易併入至新區塊中之工作量證明解決方案。各節點經組配以強制執行相同節點協定,其將包括使交易有效之一或多個條件。無效交易將不被傳播或併入至區塊中。假定交易經驗證且由此經接受至區塊鏈上,則交易(包括任何使用者資料)將因此在區塊鏈網路中之節點中之各者處保持經登記及索引化為不可變的公用記錄。
成功地解決工作量證明難題以創建最新區塊之節點通常獲得被稱為「比特幣基地交易」之新交易的獎勵,該新交易分配一定金額之數位資產,亦即數個符記。對無效交易之偵測及拒絕係藉由競爭節點之動作強制執行,該等競爭節點充當網路之代理並且經激勵以報告並阻止非法行為。資訊之廣泛公佈允許使用者連續地審計節點之效能。對僅區塊標頭之公佈允許參與者確保區塊鏈之持續完整性。
在「基於輸出」之模型(有時被稱作基於UTXO之模型)中,給定交易之資料結構包含一或多個輸入及一或多個輸出。任何可使用輸出皆包含指定可自交易之進行序列中得出的一定金額之數位資產的元素。可使用輸出有時被稱作UTXO (「未使用交易輸出」)或「輸出」。該輸出可進一步包含指定用於未來兌換該輸出之條件的鎖定指令碼。鎖定指令碼係界定驗證及轉移數位符記或資產所必需之條件的述語。交易(除比特幣基地交易以外)之各輸入包含指向前述交易中之此類輸出的指標(亦即,參考),並且可進一步包含用於解除鎖定所指向輸出之鎖定指令碼的解除鎖定指令碼。因此,考慮一對交易,將其稱為第一交易及第二交易(或「目標」交易)。第一交易包含至少一個輸出,其指定一定金額之數位資產且包含界定解除鎖定該輸出之一或多個條件的鎖定指令碼。第二目標交易包含至少一個輸入,其包含指向第一交易之輸出的指標及用於解除鎖定第一交易之輸出的解除鎖定指令碼。
在此類模型中,當將第二目標交易發送至區塊鏈網路以在區塊鏈中傳播及記錄時,在各節點處應用之有效性準則中之一者將係解除鎖定指令碼符合第一交易之鎖定指令碼中所界定的所有一或多個條件。另一準則將係第一交易之輸出尚未由另一較早有效交易兌換。根據此等條件中之任一者發現目標交易無效的任何節點將不會傳播該目標交易(作為有效交易,但可能登記無效交易),亦不將該目標交易包括在新區塊中以記錄在區塊鏈中。
交易模型之替代類型係基於帳戶之模型。在此情況下,各交易皆不會藉由返回參考過去交易序列中之前述交易之UTXO來界定待轉移之金額,而是參考絕對帳戶餘額。所有帳戶之當前狀態由獨立於區塊鏈之節點儲存,並且不斷更新。
發明概要
根據第一態樣,一種用於在區塊鏈上追蹤資產之所有權及使用的電腦實施方法,其包含以下步驟:接收創建請求以在區塊鏈上使資產與第一所有者相關聯,接收包含指示使用者使用資產之資料的至少一個使用訊息,並且在接收到各使用訊息時:將使用交易提交至區塊鏈,使用交易包含基於所使用之資產及使用資產之使用者的資料;接收包含指示第二所有者之資訊的所有權更新請求,並且在接收到所有權更新請求時:將更新交易提交至區塊鏈,更新交易包含基於資產、第一所有者及第二所有者之資訊。
根據第二態樣,本揭露內容提供一種經組配以執行第一態樣之方法的裝置及一種系統,該系統包含經組配以執行第一態樣之方法的伺服器,以及經組配以協調更新訊息至伺服器之傳輸的第一所有權裝置及第二所有權裝置。
根據第三態樣,本揭露內容提供一種用於在區塊鏈上追蹤與資產互動之至少二個用戶端的電腦實施方法,其中區塊鏈包含與資產相關聯之交易集合、與至少二個用戶端中之第一用戶端相關聯的第一交易集合,以及與至少二個用戶端中之第二用戶端相關聯的第二交易集合,該方法包含以下步驟:接收資產互動事件請求,該資產互動事件請求包含指示與資產互動事件相關聯之至少二個用戶端的資料及指示資產之資料,基於以下各者而產生事件交易:對與資產相關聯之交易集合的至少一個參考;對與第一用戶端相關聯之交易集合的至少一個參考;以及對與第二用戶端相關聯之交易集合的至少一個參考,以及將事件交易提交至區塊鏈。
根據第四態樣,本揭露內容提供一種經組配以執行第三態樣之方法的裝置及一種系統,該系統包含經組配以執行第三態樣之方法的伺服器、經組配以協調資產互動事件請求至伺服器之傳輸的第一用戶端裝置及第二用戶端裝置。
根據第五態樣,本揭露內容提供一種用於在區塊鏈上追蹤資產之事件的電腦實施方法,其包含以下步驟:接收創建與資產相關聯之交易集合的創建請求,產生第一所有權交易並將其提交至區塊鏈,該第一所有權交易相關聯於與資產相關聯之交易集合且相關聯於與第一所有者相關聯之交易集合,接收包含指示第二所有者之資訊的所有權更新請求,並且在接收到所有權更新請求時:產生更新交易並將其提交至區塊鏈,更新交易包含指示資產、第一所有者及第二所有者之資訊。
根據第六態樣,本揭露內容提供一種經組配以執行第五態樣之方法的裝置及一種系統,該系統包含經組配以執行第五態樣之方法的伺服器、經組配以協調所有權更新請求至伺服器之傳輸的第一所有者裝置及第二用戶端裝置。
現參考隨附圖式而僅作為例示來描述所揭露方法之一些特定組件及實施例,在該等隨附圖式中,相似參考編號指代相似特徵。
較佳實施例之詳細說明
因此,期望實施安全、低複雜度、使用者友好、高效且穩固之技術,該技術將允許無論運算上是否複雜之任何用戶端皆能夠以運算上及功能上較不繁重之簡單、快速、準確、可靠且安全方式瞬時存取與區塊鏈相關聯之有用應用程式並與之互動。更特定而言,期望提供對與資產相關聯之事件(包括使用及所有權轉移)的安全、簡單、快速、準確且同步追蹤(以及其他技術及真實世界互動)。
現已設計出此類經改良之解決方案。本揭露內容藉由提出一或多種技術來解決以上技術問題,藉此跨越多個使用者及用戶端的真實世界事件及與資產之互動可藉由在該資產中具有股權或利息的該等用戶端簡單地、安全地、有序地及/或瞬時地記錄或自區塊鏈獲得。提供用於與區塊鏈相關聯之一或多個服務的應用程式設計介面(API)的方法、裝置及系統,而此類用戶端無需實施用於使用區塊鏈之任何處理或功能性以及用於使用者管理之任何處理或功能性,同時仍能夠利用與區塊鏈相關聯之所有優點。
根據第一態樣,本揭露內容提供一種用於在區塊鏈上追蹤資產之所有權及使用的電腦實施方法,其包含以下步驟:接收創建請求以在區塊鏈上使資產與第一所有者相關聯,接收包含指示使用者使用資產之資料的至少一個使用訊息,並且在接收到各使用訊息時:將使用交易提交至區塊鏈,使用交易包含基於所使用之資產及使用資產之使用者的資料;接收包含指示第二所有者之資訊的所有權更新請求,並且在接收到所有權更新請求時:將更新交易提交至區塊鏈,更新交易包含基於資產、第一所有者及第二所有者之資訊。
有利地,區塊鏈及區塊鏈交易之使用向本發明態樣及任何相關聯態樣提供不可變性、安全性及可審計性。此係尤其重要的,因為其提供了使得本發明態樣之使用者能夠建立及/或維持/更新防篡改記錄或日誌之技術特徵,或確認事件之依序發生的憑證,其中本發明態樣中之事件係資產之使用及/或所有權轉移。
任擇地,區塊鏈包含以下各者中之任一或多者:與資產相關聯之交易集合、與使用者相關聯之交易集合、與第一所有者相關聯之交易集合以及與第二所有者相關聯之交易集合。
有利地,交易集合提供資產、所有者及使用者中之各者的基於區塊鏈之資料表示。此進一步使得與本發明態樣相關聯之任何當事方(亦即,審計者、所有者、使用者或其他)能夠高效且容易地分類、附加、搜尋或進行與資產、所有者、使用者等相關之任何資料相關動作。如貫穿全文呈現,在審計資產或與資產互動,諸如轉移所有權時使用此等資料相關動作。亦如本文中所論述,事件之分類係由於區塊鏈之技術特徵而經維持,尤其係經由使用塵埃鏈使用關係而經維持。亦由於塵埃鏈使用關係,在區塊鏈上有序地自動記錄任何附加動作。
任擇地,與資產相關聯之交易集合係相關聯於與資產相關聯之智慧型合約,與第一所有者相關聯之交易集合係相關聯於與第一所有者相關聯之智慧型合約,與第二使用者相關聯之交易集合係相關聯於與第二使用者相關聯之智慧型合約,並且與使用者相關聯之交易集合係相關聯於與使用者相關聯之智慧型合約。
任擇地,與資產相關聯之交易集合係關於與資產相關聯之事件串流,與使用者相關聯之交易集合係關於與使用者相關聯之事件串流,與第一所有者相關聯之交易集合係關於與第一所有者相關聯之事件串流,並且與第二所有者相關聯之交易集合係關於與第二所有者相關聯之事件串流。較佳地,各事件串流表示一智慧型合約,使得事件串流追蹤與智慧型合約相關聯之事件序列。
有利地,本發明態樣使得能夠建立及/或維持/更新防篡改記錄或日誌,或確認與事件串流相關聯之事件之依序發生的憑證,其中事件係基於用於給定智慧型合約之所接收用戶端輸入,以用於執行智慧型合約。因此,本發明實施例提出用於使得能夠處理,亦即創建、更新及/或終止事件串流ES之方法、裝置及系統,該事件串流使用區塊鏈實施且自動地創建與關於事件串流ES之智慧型合約SC相關聯之事件的防篡改日誌或記錄。
任擇地,使用交易包含:第一資料酬載,其包含基於對與資產相關聯之交易集合之至少一個參考的資料;以及第二資料酬載,其包含基於對來自與使用者相關聯之交易集合之交易的至少一個參考之資料。較佳地,第一及第二資料酬載中之各者係基於第一及第二參考。更佳地,第一參考係對下一交易之參考,並且第二參考係對交易集合中之先前交易的參考。甚至更佳地,第二參考係包含儲存在先前交易上之資料的參考,並且第一參考係下一交易使用(或將使用)之輸出點(outpoint)。最佳地,各資料酬載係默克爾樹根。
任擇地,與資產相關聯之交易集合包含、指示或係基於資產之所有權歷史。
任擇地,更新交易包含:第三資料酬載,其包含基於對來自與資產相關聯之交易集合之交易的第三參考之資料;第四資料酬載,其包含基於對來自與第一所有者相關聯之交易集合之交易的第四參考之資料;以及第五資料酬載,其包含基於對來自與第二所有者相關聯之交易集合之交易的第五參考之資料。較佳地,在確認至區塊鏈之更新交易時,資產之所有權被視為自第一所有者轉移至第二所有者。
任擇地,第三、第四及第五酬載中之各者係基於對其各別交易集合中之交易的二個參考。較佳地,二個參考係先前交易參考及下一交易參考。甚至更佳地,先前交易參考係包含儲存在先前交易上之資料的參考,並且下一交易參考係下一交易使用(或將使用)之輸出點。更佳地,各酬載係默克爾樹根。
任擇地,本發明態樣進一步包含以下步驟:自請求器接收包含對資產之參考的歷史請求,並且回應於接收到歷史請求:將資產之使用之歷史提供至請求器,其中資產之使用之歷史包含來自與資產相關聯之交易集合的資訊及/或係使用來自與資產相關聯之交易集合的資訊來校驗。
有利地,經由使用默克爾樹根及默克爾樹證明,資產歷史係可校驗的,同時亦可選擇性地揭露,從而允許對資料之較細粒度安全控制。
任擇地,使用訊息包含指示由使用者使用資產之資料,並且使用交易包含指示或基於資產之使用的資料。有利地,此提供使得人員能夠審計及確認其使用之技術特徵。
任擇地,資產係按使用付費的不可替代商品、產品或服務。較佳地,資產係歌曲,並且指示使用之資料包含使用者已收聽該歌曲之次數及/或時長。
根據第二態樣,本揭露內容提供一種經組配以執行第一態樣之方法的裝置及一種系統,該系統包含經組配以執行第一態樣之方法的伺服器,以及經組配以協調更新訊息至伺服器之傳輸的第一所有權裝置及第二所有權裝置。
根據第三態樣,本揭露內容提供一種用於在區塊鏈上追蹤與資產互動之至少二個用戶端的電腦實施方法,其中區塊鏈包含與資產相關聯之交易集合、與至少二個用戶端中之各第一用戶端相關聯的第一交易集合,以及與至少二個用戶端中之第二用戶端相關聯的第二交易集合,該方法包含以下步驟:接收資產互動事件請求,該資產互動事件請求包含指示與資產互動事件相關聯之至少二個用戶端的資料及指示資產之資料,基於以下各者而產生包含資料之事件交易:對與資產相關聯之交易集合的至少一個參考;以及對與至少二個用戶端第一用戶端相關聯之交易集合的至少一個參考;以及對與第二用戶端相關聯之交易集合的至少一個參考,以及將事件交易提交至區塊鏈。
任擇地,該方法進一步包含以下步驟:獲得對與資產相關聯之交易集合的參考,以及獲得對相關聯於與資產互動事件相關聯之用戶端之各交易集合的參考。
任擇地,對與資產相關聯之交易集合的至少一個參考中之第一參考包含或係相關聯於與資產相關聯之交易集合的資產交易輸出點。較佳地,資產交易輸出點指向與資產相關聯之交易集合中之下一交易。
任擇地,對與資產相關聯之交易集合的至少一個參考中之第二參考包含儲存在與資產相關聯之交易集合中之最新交易上的資料。較佳地,對與資產相關聯之交易集合的至少一個參考中之第二參考係與資產相關聯之交易集合中之最新交易的經儲存之資料酬載之部分。
有利地,基於區塊鏈交易之不同性質(即儲存在交易輸出上之交易輸出點及資料)而儲存二個參考增加了交易集合之安全性。
任擇地,對與至少二個用戶端相關聯之交易集合的參考中之各者包含相關聯於與至少二個用戶端相關聯之交易集合中之各者的交易輸出點。較佳地,各交易輸出點指向與用戶端相關聯之各各別交易集合中之最新交易。
任擇地,一旦已在區塊鏈上確認事件交易,便可將事件交易視為與資產相關聯之交易集合及與至少二個用戶端相關聯之交易集合中之各者的部分。
任擇地,與資產相關聯之交易集合係關於與資產相關聯之事件串流,並且與至少二個用戶端當中之給定用戶端相關聯的各交易集合係關於與該給定用戶端相關聯之事件串流。亦即,與至少二個用戶端中之第一用戶端相關聯的交易集合係關於與第一用戶端相關聯之事件串流,並且與至少二個用戶端中之第二用戶端相關聯的交易集合係關於與第二用戶端相關聯之事件串流。較佳地,各事件串流表示各別智慧型合約,使得事件串流追蹤與智慧型合約相關聯之事件序列。任擇地,各交易集合表示各別智慧型合約。替代地,在本發明實施例中存在與所有事件串流相關聯之一個智慧型合約。該一個智慧型合約更新多個事件串流。
任擇地,事件交易包含基於資產互動事件之資料。較佳地,基於資產互動事件之資料儲存在事件交易之不可使用輸出上。更佳地,不可使用輸出包含OP_RETURN作業碼。
任擇地,資產係按使用付費的不可替代商品、產品或服務。較佳地,資產係歌曲及/或資產互動事件係在至少二個用戶端之間交換資產之所有權。
任擇地,該方法進一步包含以下步驟:接收創建與資產相關聯之交易集合的創建請求,以及產生第一所有權交易並將其提交至區塊鏈,該第一所有權交易相關聯於與資產相關聯之交易集合且相關聯於與至少二個用戶端中之第一用戶端相關聯的交易集合。較佳地,第一所有權交易包含基於唯一地識別資產之數位指紋的資料。
任擇地,事件交易包含用於事件交易所屬之各交易集合的酬載。較佳地,事件交易包含相關聯於與資產相關聯之交易集合的第一酬載、相關聯於與第一用戶端相關聯之交易集合的第二酬載,以及相關聯於與第二用戶端相關聯之交易集合第三酬載。更佳地,第一酬載係基於對與資產相關聯之交易集合的至少一個參考,第二酬載係基於對與第一用戶端相關聯之交易集合的至少一個參考,並且第三酬載係基於對與第二用戶端相關聯之交易集合的至少一個參考。任擇地,第一、第二及第三酬載係默克爾樹根,並且該方法進一步包含以下步驟:產生各默克爾樹以及計算默克爾樹根。任擇地,酬載各自儲存在事件交易之輸出上。
任擇地,該方法進一步包含以下步驟:基於指示與資產互動事件相關聯之至少二個用戶端的資料及指示資產之資料而產生資料酬載。較佳地,資料酬載係默克爾樹根。更佳地,產生資料酬載之步驟包含產生默克爾樹,該默克爾樹包含指示與資產互動事件相關聯之至少二個用戶端的資料及指示資產之資料。甚至更佳地,資料酬載儲存在事件交易之輸出上。
任擇地,資產互動事件係所有權更新請求,該所有權更新請求包含指示資產之所有權自至少二個用戶端中之第一者轉移至至少二個用戶端中之第二者的資訊。較佳地,事件交易包含基於第一用戶端將所有權轉移至第二用戶端的資料。
根據第四態樣,本揭露內容提供一種經組配以執行第三態樣之方法的裝置及一種系統,該系統包含經組配以執行第三態樣之方法的伺服器、經組配以協調資產互動事件請求至伺服器之傳輸的第一用戶端裝置及第二用戶端裝置。
熟習此項技術者應瞭解,根據此等第三及第四態樣之數個實施例提供與參考第一及/或第二態樣所描述相同或類似的優點。
根據第五態樣或替代地,作為第三態樣之另一實施例,本揭露內容提供一種用於在區塊鏈上追蹤資產之事件的電腦實施方法,其包含以下步驟:接收創建與資產相關聯之交易集合的創建請求,產生第一所有權交易並將其提交至區塊鏈,該第一所有權交易相關聯於與資產相關聯之交易集合且相關聯於與第一所有者相關聯之交易集合,接收包含指示第二所有者之資訊的所有權更新請求,並且在接收到所有權更新請求時:產生更新交易並將其提交至區塊鏈,更新交易包含基於資產、第一所有者及第二所有者之資料。
任擇地,在上文呈現為第三態樣之實施例的情況下,此處之所有者中之各者可被視為類似於前述態樣中之用戶端中之各者。
任擇地,基於資產之資料係對與資產相關聯之交易集合的參考,基於第一所有者之資料係對與第一所有者相關聯之交易集合的參考,並且基於第二所有者之資料係對與第二所有者相關聯之交易集合的參考。較佳地,參考係基於儲存在相同交易集合中之先前交易上的資料及/或基於為作為相同交易集合之部分之交易提供資金的交易輸出點。
任擇地,對交易集合之參考包含或係參考交易集合中之交易的輸出點。較佳地,輸出點係指各交易集合中之下一交易。亦即,較佳地,對與資產相關聯之交易集合的參考包含或係與資產相關聯之交易集合中之交易的輸出點,對與第一所有者相關聯之交易集合的參考包含或係與第一所有者相關聯之交易集合中之交易的輸出點,並且對與第二所有者相關聯之交易集合的參考包含或係與第二所有者相關聯之交易集合中之交易的輸出點。
任擇地,與資產相關聯之交易集合係關於與資產相關聯之事件串流,與第一所有者相關聯之交易集合係關於與第一所有者相關聯之事件串流,並且與第二所有者相關聯之交易集合係關於與第二所有者相關聯之事件串流。
任擇地,各事件串流表示各別智慧型合約,使得事件串流追蹤與該各別智慧型合約相關聯之事件序列。替代地,在本發明實施例中存在與所有事件串流相關聯之一個智慧型合約。該一個智慧型合約更新多個事件串流。
任擇地,初始交易包含基於唯一地識別資產之數位指紋的資料。
任擇地,更新交易包含基於第一所有者將所有權轉移至第二所有者的資料。較佳地,基於所有權轉移之資料儲存在更新交易之不可使用輸出上。更佳地,不可使用輸出包含OP_RETURN作業碼。任擇地,不可使用輸出另外包含OP_0作業碼。
任擇地,資產係按使用付費的不可替代商品、產品或服務。較佳地,資產係歌曲。
根據第六態樣,本揭露內容提供一種經組配以執行第五態樣之方法的裝置及一種系統,該系統包含經組配以執行第五態樣之方法的伺服器、經組配以協調所有權更新請求至伺服器之傳輸的第一所有者裝置及第二用戶端裝置。
熟習此項技術者應瞭解,根據此第四態樣之數個實施例提供與參考第一、第二及/或第三態樣所描述相同或類似的優點。
根據另一態樣,提供一種經組配以執行前述態樣中之任一者之方法的裝置。
有利地,使用上文所描述之態樣,第一所有者能夠追蹤與其自身之資產相關聯的事件。追蹤係安全、不可變的,並且已知相對於發生之其他事件係有序的。如本文中所描述,事件可與資產之真實世界使用相關。追蹤與資產之互動及/或條件相關之事件對於所有者/所有者之裝置尤其重要,此係因為其可觸發進一步必要之修復,並且因為事件序列(包括使用資產之最後使用者)恰當地使任何所需修復與可已引起條件之此類改變之使用者相關聯。
在資產係按使用付費的不可替代商品、產品或服務之情況下,本發明態樣提供追蹤資產之使用、所有權或任何其他種類之互動以及諸如資產之劣化及/或資產之折舊的與互動相關聯之任何其他效應的優點。追蹤此等真實世界互動之實施例之技術特徵使得追蹤系統能夠更流線型、即時且安全。
有利地,交易集合之使用可提供對已儲存在區塊鏈上之事件資料的隱私保持讀取存取。希望檢驗區塊鏈上所追蹤之資產之事件歷史的潛在所有者或其他審計者具有在其壽命期間僅檢視與資產相關聯之交易集合的能力。類似地,資產之使用者可藉由僅遍歷其交易集合及/或經由使用所提供默克爾證明及針對鏈上儲存之默克爾樹根進行校驗來審計其自身對不同資產之使用。任擇地,此類隱私特徵可來自在將事件資料提交至區塊鏈之前加密該事件資料,及/或將存在證明儲存在區塊鏈上,同時使事件資料自身在鏈外且不可公開讀取。在需要時,可向審計者提供資料以確認儲存在區塊鏈上之存在證明與實際資料協調(諸如經由使用默克爾樹證明)。
在前述態樣中之任一者的實施例中,裝置(由例如資產之潛在購買者操作)可傳輸資產歷史請求。在接收到此類請求時,關於資產之使用的資料經提供至請求器。較佳地,藉由遍歷及/或存取與資產相關聯之交易集合來獲得關於使用之資料。較佳地,使用與資產相關聯之交易集合來校驗關於使用之資料。
實例系統概述
圖1展示用於實施區塊鏈150之實例系統100。系統100可包含封包交換式網路101,通常為諸如網際網路之廣域網際網路。封包交換式網路101包含多個區塊鏈節點104,該等區塊鏈節點可經配置以在封包交換式網路101內形成同級間(P2P)網路106。雖然未例示,但區塊鏈節點104可經配置為接近完整的圖。各區塊鏈節點104因此高度連接至其他區塊鏈節點104。
各區塊鏈節點104包含同級者之電腦裝備,其中節點104中之不同者屬於不同同級者。各區塊鏈節點104包含:處理設備,其包含一或多個處理器,例如一或多個中央處理單元(CPU)、加速器處理器、特殊應用處理器及/或場可規劃閘陣列(FPGA);以及其他裝備,諸如特殊應用積體電路(ASIC)。各節點亦包含記憶體,亦即呈一或多個非暫時性電腦可讀媒體之形式的電腦可讀儲存裝置。記憶體可包含一或多個記憶體單元,該一或多個記憶體單元採用一或多個記憶體媒體,例如,諸如硬碟之磁性媒體;諸如固態硬碟(SSD)、快閃記憶體或EEPROM之電子媒體;及/或諸如光碟機之光學媒體。
區塊鏈150包含資料區塊151之鏈,其中在分散式或區塊鏈網路160中之多個區塊鏈節點104中之各者處維持區塊鏈150之各別複本。如上文所提及,維持區塊鏈150之複本未必意謂完整地儲存區塊鏈150。實情為,只要各區塊鏈節點150儲存各區塊151之(下文論述的)區塊標頭,便可修剪區塊鏈150之資料。鏈中之各區塊151包含一或多個交易152,其中在此上下文中之交易係指一種資料結構。資料結構之性質將取決於用作交易模型或方案之部分的交易協定之類型。給定區塊鏈將始終使用一個特定交易協定。在一種常見類型之交易協定中,各交易152之資料結構包含至少一個輸入及至少一個輸出。各輸出指定表示作為財產之數位資產之數量的金額,其實例係輸出以密碼編譯方式被鎖定至的使用者103 (需要彼使用者之簽名或其他解決方案以便解除鎖定且由此兌換或使用)。各輸入均指回至前述交易152之輸出,由此鏈接交易。任擇地,輸入係指交易輸出點,其中輸出點係交易id及經參考輸出之索引。
各區塊151亦包含區塊指標155,該區塊指標指回至鏈中之先前創建的區塊151以便界定區塊151之依序次序。各交易152 (除比特幣基地交易以外)包含指回至先前交易之指標,以便界定交易序列之次序(注意:允許交易152之序列進行分支)。區塊151之鏈一直返回至起源區塊(Gb) 153,該起源區塊係該鏈中之第一區塊。鏈150中較早之一或多個原始交易152指向起源區塊153,而非前述交易。
區塊鏈節點104中之各者經組配以將交易152轉遞至其他區塊鏈節點104,並且由此使得交易152在整個網路106中傳播。各區塊鏈節點104經組配以創建區塊151,並且將相同區塊鏈150之各別複本儲存在其各別記憶體中。各區塊鏈節點104亦維持等待併入至區塊151中之交易152的有序集合154。有序集合154常常被稱作「記憶體池」。本文中之此術語不意欲限於任何特定區塊鏈、協定或模型。該術語係指節點104已接受為有效的交易之有序集合,並且對於該有序集合,節點104不必接受嘗試使用相同輸出之任何其他交易。
在給定之目前交易152j中,該(或各)輸入包含參考交易序列中之前述交易152i之輸出的指標,指定此輸出將在目前交易152j中經兌換或「使用」。一般而言,前述交易可為有序集合154或任何區塊151中之任何交易。當目前交易152j經創建或甚至經發送至網路106時不必一定存在前述交易152i,但前述交易152i將需要存在且經驗證以便使目前交易為有效的。因此,本文中之「前述」係指藉由指標鏈接之邏輯序列中的前置者,未必為時間序列中之創建或發送之時間,並且因此,其未必排除無序地創建或發送交易152i、152j (參見下文關於孤立交易之論述)。前述交易152i同樣可被稱為前期或前置交易。
目前交易152j之輸入亦包含輸入授權,例如前述交易152i之輸出鎖定至之使用者103a的簽名。繼而,目前交易152j之輸出可以密碼編譯方式鎖定至新使用者或實體103b。目前交易152j因此可將前述交易152i之輸入中所界定之金額轉移至目前交易152j之輸出中所界定之新使用者或實體103b。在一些情況下,交易152可具有多個輸出以在多個使用者或實體(其中之一者可為原始使用者或實體103a以便產生改變)之間劃分輸入金額。在一些情況下,交易亦可具有多個輸入以將來自一或多個前述交易之多個輸出的金額收集在一起,並且重新分配至當前交易之一或多個輸出。
根據基於輸出之交易協定,諸如比特幣,當諸如使用者或機器之實體103希望實行新交易152j時,實體接著將新交易自其電腦終端102發送至接收者。實體或接收者將最終將此交易發送至網路106之區塊鏈節點104中之一或多者(該等區塊鏈節點如今通常為伺服器或資料中心,但原則上可為其他使用者終端)。亦不排除實行新交易152j之實體103可將交易發送至區塊鏈節點104中之一或多者,且在一些實例中不發送至接收者。接收交易之區塊鏈節點104根據應用於區塊鏈節點104中之各者處之區塊鏈節點協定來檢查該交易是否為有效的。區塊鏈節點協定通常需要區塊鏈節點104檢查新交易152j中之密碼編譯簽名是否與預期簽名匹配,此取決於交易152之有序序列中之先前交易152i。在此類基於輸出之交易協定中,此檢查可包含檢查新交易152j之輸入中所包括的實體103之密碼編譯簽名或其他授權是否與新交易指派之前述交易152i之輸出中所界定的條件匹配,其中此條件通常包含至少檢查新交易152j之輸入中之密碼編譯簽名或其他授權是否解除鎖定新交易之輸入鏈接至的先前交易152i之輸出。條件可至少部分地由前述交易152i之輸出中所包括的指令碼界定。替代地,其可簡單地由區塊鏈節點協定單獨確定,或其可由此等之組合確定。無論如何,若新交易152j有效,則區塊鏈節點104將其轉遞至區塊鏈網路106中之一或多個其他區塊鏈節點104。此等其他區塊鏈節點104根據相同區塊鏈節點協定應用相同測試,且因此將新交易152j轉遞至一或多個其他節點104上,等等。以此方式,新交易在區塊鏈節點104之整個網路中傳播。
在基於輸出之模型中,是否指派給定輸出(例如,UTXO)之界定係其是否尚未根據區塊鏈節點協定而由另一向前交易152j之輸入有效地兌換。用於交易有效之另一條件係該交易試圖指派或兌換之前述交易152i之輸出尚未由另一交易指派/兌換。再次,若並非有效的,則將不在區塊鏈150中傳播(除非經標記為無效,且經傳播以用於警示)或記錄交易152j。此防止雙重使用,藉此交易者嘗試多於一次地指派同一交易之輸出。另一方面,基於帳戶之模型藉由維持帳戶餘額來防止雙重使用。因為另外存在經界定之交易次序,所以帳戶餘額在任一時間皆具有單個經界定狀態。
除驗證交易之外,區塊鏈節點104亦競相率先在通常被稱作挖掘之程序中創建交易區塊,該程序係由「工作量證明」支援。在區塊鏈節點104處,新交易經添加至有效交易之有序集合154,該等有效交易尚未出現在經記錄在區塊鏈150上之區塊151中。區塊鏈節點接著競相藉由嘗試解決密碼編譯難題而組合來自交易之有序集合154的交易152之新有效區塊151。通常,此包含搜尋「隨機數」值,使得當隨機數與交易之有序集合154的表示串接且經雜湊時,雜湊之輸出接著符合預定條件。例如,預定條件可為雜湊之輸出具有某一預定數目個前置零。應注意,此僅為一種特定類型之工作量證明難題,並且不排除其他類型。雜湊函數之性質係該雜湊函數相對於其輸入具有不可預測的輸出。因此,此搜尋可僅藉由蠻力執行,因此在正嘗試解決難題之各區塊鏈節點104處消耗了大量的處理資源。
解決該難題之第一區塊鏈節點104將此宣佈給網路106,從而提供解決方案作為證明,其接著可由網路中之其他區塊鏈節點104容易地檢查(一旦給定雜湊之解決方案,便直接檢查其是否使得雜湊之輸出符合該條件)。第一區塊鏈節點104將區塊傳播至接受該區塊且因此強制執行協定規則的其他節點之臨限共識。交易之有序集合154接著藉由區塊鏈節點104中之各者而記錄為區塊鏈150中之新區塊151。區塊指標155亦經指派至指回鏈中先前創建之區塊151n-1之新區塊151n。創建工作量證明解決方案所需之例如呈雜湊形式的大量工作傳信第一節點104之意圖以遵循區塊鏈協定之規則。此類規則包括在交易將相同輸出指派為先前驗證之交易之情況下,不接受該交易為有效的,除非該交易已知為雙重使用。一旦經創建,區塊151便不可修改,此係因為在區塊鏈網路106中之區塊鏈節點104中之各者處辨識且維持該區塊。區塊指標155亦將對區塊151施加依序次序。由於交易152記錄於網路106中之各區塊鏈節點104處的有序區塊中,因此,此提供交易的不可變公用分類帳。
應注意,不同區塊鏈節點104競相在任何給定時間解決難題可基於尚待公佈之交易之有序集合154在任何給定時間的不同快照而進行,此取決於該等節點何時開始搜尋解決方案或接收該等交易之次序。不論誰首先解決其各別難題均界定哪些交易152且以哪一次序包括在下一新區塊151n中,且更新未公佈交易之當前集合154。區塊鏈節點104接著繼續競相自未公佈之交易的最新界定之未完成的有序集合154創建區塊,等等。亦存在用於解決可能出現之任何「分叉」之協定,該分叉係二個區塊鏈節點104在彼此極短時間內解決其難題以使得區塊鏈的衝突視圖在節點104之間傳播之處。簡言之,無論分叉之哪個支叉生長得最長,皆成為決定性區塊鏈150。應注意,此不應影響網路之使用者或代理,此係因為相同交易將出現在二個分叉中。
根據比特幣區塊鏈(及大部分其他區塊鏈),成功地建構新區塊之節點104經授予在新特殊種類之交易中指派所接受金額之數位資產的能力,該新特定種類之交易分配所界定數量之數位資產(相對於代理間或使用者間交易,其將一定金額之數位資產自一個代理或使用者轉移至另一代理或使用者)。此特定類型之交易通常被稱作「比特幣基地交易」,但亦可被稱為「起始交易」。其通常形成新區塊151n之第一交易。工作量證明傳信建構新區塊之節點遵循協定規則,從而允許稍後兌換此特殊交易的意圖。在可兌換此特殊交易之前,區塊鏈協定規則可能需要成熟期,例如100個區塊。常常,常規(非產生)交易152亦將在其輸出中之一者中指定額外交易費用,以進一步獎勵創建了在其中公佈彼交易之區塊151n的區塊鏈節點104。此費用通常被稱作「交易費用」,且在下文論述。
歸因於交易驗證及公佈中涉及之資源,通常,區塊鏈節點104中之至少各者採用伺服器之形式,該伺服器包含一或多個實體伺服器單元或甚至整個資料中心。然而,原則上,任何給定區塊鏈節點104可採用使用者終端或經網路連接在一起之使用者終端之群組的形式。
各區塊鏈節點104之記憶體儲存軟體,該軟體經組配以在區塊鏈節點104之處理設備上運行以便執行其各別一或多個角色且根據區塊鏈節點協定處置交易152。應理解,本文中歸於區塊鏈節點104之任何動作可由在各別電腦裝備之處理設備上運行的軟體執行。節點軟體可實施在應用層或諸如作業系統層或協定層之下部層或此等層之任何組合處的一或多個應用程式中。
亦連接至網路101的係充當消費使用者之角色的多個當事方103中之各者的電腦裝備102。此等使用者可與區塊鏈網路互動,但不參與驗證、建構或傳播交易及區塊。此等使用者或代理103中之一些可在交易中充當發送者及接收者。其他使用者可與區塊鏈150互動,而未必充當發送者或接收者。舉例而言,一些當事方可充當儲存區塊鏈150之複本(例如,已自區塊鏈節點104獲得區塊鏈之複本)的儲存實體。
當事方103中之一些或全部可作為不同網路,例如覆蓋在區塊鏈網路106之頂部上之網路的部分而連接。區塊鏈網路之使用者(常常被稱作「用戶端」)可被稱為包括區塊鏈網路之系統的部分;然而,此等使用者並非區塊鏈節點104,此係因為該等使用者不執行區塊鏈節點所需之角色。實情為,各當事方103可與區塊鏈網路106互動,並且由此,藉由連接至區塊鏈節點106 (亦即,與該區塊鏈節點通訊)而利用區塊鏈150。出於例示性目的展示二個當事方103及其各別裝備102:第一當事方103a及他/她的各別電腦裝備102a,以及第二當事方103b及他/她的各別電腦裝備102b。應理解,更多此類當事方103及其各別電腦裝備102可存在且參與系統100中,但為方便起見不對其加以例示。各當事方103可為個人或組織。僅僅作為例示,第一當事方103a在本文中被稱作愛麗絲(Alice),且第二當事方103b被稱作鮑勃(Bob),但應瞭解,此不具限制性,並且在本文中對愛麗絲或鮑勃之任何參考可分別用「第一當事方」及「第二當事方」替換。
各當事方103之電腦裝備102包含各別處理設備,該處理設備包含一或多個處理器,例如一或多個CPU、GPU、其他加速器處理器、特殊應用處理器及/或FPGA。各當事方103之電腦裝備102進一步包含記憶體,亦即呈一或多個非暫時性電腦可讀媒體之形式的電腦可讀儲存裝置。此記憶體可包含一或多個記憶體單元,該一或多個記憶體單元採用一或多個記憶體媒體,例如,諸如硬碟之磁性媒體;諸如SSD、快閃記憶體或EEPROM之電子媒體;及/或諸如光碟機之光學媒體。各當事方103之電腦裝備102上之記憶體儲存軟體,該軟體包含經配置以在處理設備上運行之至少一個用戶端應用程式105的各別例項。應理解,本文中歸於給定當事方103之任何動作可使用在各別電腦裝備102之處理設備上運行的軟體來執行。各當事方103之電腦裝備102包含至少一個使用者終端,例如桌上型或膝上型電腦、平板電腦、智慧型手機或諸如智慧型手錶之可穿戴裝置。給定當事方103之電腦裝備102亦可包含一或多個其他經網路連接之資源,諸如經由使用者終端存取之雲端運算資源。
用戶端應用程式105最初可在適合的一或多個電腦可讀儲存媒體上經提供至任何給定當事方103之電腦裝備102,例如自伺服器下載,或經設置在抽取式儲存裝置上,該抽取式儲存裝置諸如抽取式SSD、快閃記憶體鍵、抽取式EEPROM、抽取式磁碟機、磁性軟碟或磁帶、諸如CD或DVD ROM之光碟或抽取式光碟機等。
用戶端應用程式105包含至少一「電子錢包」功能。此具有二個主要功能性。此等功能性中之一者係使得各別當事方103能夠創建、授權(例如,簽名)及發送交易152至一或多個比特幣節點104以接著在區塊鏈節點104之整個網路中傳播且由此包括在區塊鏈150中。另一功能性係將其當前所有之數位資產的金額報告給各別當事方。在基於輸出之系統中,此第二功能性包含核對散佈在整個區塊鏈150中之各種交易152的輸出中所界定之金額,該等金額屬於所討論之當事方。
應注意:雖然各種用戶端功能性可經描述為整合至給定用戶端應用程式105中,但此未必為限制性的,並且實情為,本文中所描述之任何用戶端功能性可替代地實施在一套二個或更多個不同應用程式中,該等應用程式例如經由API介接,或一個應用程式係另一應用程式之外掛程式。更一般而言,用戶端功能性可實施在應用層或諸如作業系統之下部層或此等層之任何組合處。下文將關於用戶端應用程式105進行描述,但應瞭解,此不具限制性。
各電腦裝備102上之用戶端應用程式或軟體105的例項可操作地耦接至網路106之區塊鏈節點104中之至少一者。此使得用戶端105之電子錢包功能能夠將交易152發送至網路106。用戶端105亦能夠接觸區塊鏈節點104以便針對各別當事方103係接收者之任何交易查詢區塊鏈150 (或實際上檢驗區塊鏈150中之其他當事方之交易,此係因為在實施例中,區塊鏈150係公用設施,其部分地經由其公用可見性而在交易中提供信任)。各電腦裝備102上之電子錢包功能經組配以根據交易協定來制定及發送交易152。如上文所闡明,各區塊鏈節點104運行軟體,該軟體經組配以根據區塊鏈節點協定來驗證交易152,並且轉遞交易152以便在整個區塊鏈網路106中傳播該等交易。交易協定及節點協定彼此對應,並且給定交易協定與給定節點協定相配,一起實施給定交易模型。相同交易協定用於區塊鏈150中之所有交易152。相同節點協定係由網路106中之所有節點104使用。
當給定當事方103,比如愛麗絲,希望發送待包括在區塊鏈150中之新交易152j時,她接著根據相關交易協定來制定新交易(使用她的用戶端應用程式105中之電子錢包功能)。她接著將交易152自用戶端應用程式105發送至她所連接至之一或多個區塊鏈節點104。例如,此可為最佳地連接至愛麗絲之電腦102的區塊鏈節點104。當任何給定區塊鏈節點104接收新交易152j時,該區塊鏈節點根據區塊鏈節點協定及其各別角色來處置該新交易。此包含首先檢查新接收之交易152j是否符合為「有效的」某一條件,不久將更詳細地論述該條件之實例。在一些交易協定中,可藉由包括在交易152中之指令碼基於每交易來組配驗證條件。替代地,條件可簡單地為節點協定之內置特徵,或可由指令碼及節點協定之組合界定。
只要新接收之交易152j通過被視為有效的測試(亦即,只要其「經驗證」),則接收交易152j之任何區塊鏈節點104將會把新的經驗證交易152添加至在彼區塊鏈節點104處維持的交易之有序集合154。此外,接收交易152j之任何區塊鏈節點104將會把經驗證交易152向前傳播至網路106中之一或多個其他區塊鏈節點104。由於各區塊鏈節點104應用相同協定,因此接著假定交易152j係有效的,此意謂該交易將迅速在整個網路106中傳播。
一旦被納入在給定區塊鏈節點104處維持的交易之有序集合154,則彼區塊鏈節點104將開始競爭以解決關於包括新交易152的其各別交易之有序集合154之最新版本的工作量證明難題(前已述及,其他區塊鏈節點104可嘗試基於交易之不同有序集合154解決難題,但率先解決難題者將界定包括在最新區塊151中之交易之有序集合。最終,區塊鏈節點104將解決包括愛麗絲之交易152j的有序集合154之部分的難題)。一旦針對包括新交易152j之有序集合154進行工作量證明,其便不可變地變為區塊鏈150中之區塊151中之一者的部分。各交易152包含指回至較早交易之指標,因此亦不可變地記錄交易之次序。
不同區塊鏈節點104可首先接收給定交易之不同例項,並且因此具有其例項在於新區塊151中公佈一個例項之前係「有效的」之衝突視圖,此時,所有區塊鏈節點104同意經公佈例項係唯一有效的例項。若區塊鏈節點104將一個例項接受為有效的,並且接著發現第二例項已記錄在區塊鏈150中,則彼區塊鏈節點104必須接受此情形且將丟棄其最初接受之該例項(亦即,尚未在區塊151中公佈之例項) (亦即,將其視為無效的)。
由一些區塊鏈網路操作的交易協定之替代類型可被稱作「基於帳戶」之協定,作為基於帳戶之交易模型的部分。在基於帳戶之情況下,各交易並不藉由返回參考過去交易序列中之前述交易之UTXO來界定待轉移金額,而是參考絕對帳戶餘額。所有帳戶之當前狀態由與區塊鏈分離的彼網路之節點儲存,並且不斷更新。在此類系統中,使用帳戶之運行交易計數(亦被稱為「位置」)來對交易進行排序。此值係由發送者簽名作為交易之密碼編譯簽名之部分,且經雜湊作為交易參考計算之部分。另外,任擇之資料欄位亦可對交易進行簽名。舉例而言,若先前交易ID包括在資料欄位中,則此資料欄位可指回至先前交易。
基於UTXO 之模型
圖2例示實例交易協定。此係基於UTXO之協定之實例。交易152 (簡稱為「Tx」)係區塊鏈150之基本資料結構(各區塊151包含一或多個交易152)。下文將參考基於輸出或基於「UTXO」之協定來描述。然而,此並不限於所有可能的實施例。應注意,雖然參考比特幣描述實例基於UTXO之協定,但其可同樣地實施在其他實例區塊鏈網路上。
在基於UTXO之模型中,各交易(「Tx」) 152包含資料結構,該資料結構包含一或多個輸入202及一或多個輸出203。各輸出203可包含未使用交易輸出(UTXO),其可用作另一新交易之輸入202的源(若該UTXO尚未被兌換)。UTXO包括指定數位資產之金額的值。此表示分散式分類帳上之符記的設定數目。UTXO亦可含有其所來自的交易之交易ID以及其他資訊。交易資料結構亦可包含標頭201,該標頭可包含輸入欄位202及輸出欄位203之大小之指示符。標頭201亦可包括交易之ID。在實施例中,交易ID係交易資料(不包括交易ID自身)之雜湊,並且儲存在經提交至節點104之原始交易152的標頭201中。
比如愛麗絲103a希望創建將所討論之一定金額之數位資產轉移至鮑勃103b的交易152j。在圖2中,愛麗絲之新交易152j經標記為「
Tx
1 」。該交易獲取在序列中之前述交易152i之輸出203中鎖定至愛麗絲的一定金額之數位資產且將此數位資產中之至少一些轉移至鮑勃。在圖2中,前述交易152i經標記為「
Tx
0 」。
Tx
0 及
Tx
1 僅係任意標記。其未必意謂
Tx
0 係區塊鏈151中之第一交易,或
Tx
1 係池154中之緊接著的下一交易。
Tx
1 可指回至仍具有鎖定至愛麗絲之未使用輸出203的任何前述(亦即,前期)交易。
在愛麗絲創建她的新交易
Tx
1 時,或至少至她將新交易發送至網路106時,前述交易
Tx
0 可能已經驗證且包括在區塊鏈150之區塊151中。該交易彼時可能已經包括在區塊151中之一者中,或該交易可能仍在有序集合154中等待,在此情況下,該交易將迅速包括在新區塊151中。替代地,
Tx
0 及
Tx
1 可經創建且一起發送至網路106,或若節點協定允許緩衝「孤立」交易,則
Tx
0 甚至可在
Tx
1 之後發送。如本文中所使用之術語「前述」及「後續」在交易序列之上下文中係指交易中指定之交易指標所界定的序列中之交易的次序(哪一交易指回至哪一其他交易,等等)。該等術語同樣可用「前置」及「後置」或「前期」及「後期」、「親代」及「子代」等來替換。其未必暗示該等交易經創建、發送至網路106或到達任何給定區塊鏈節點104之次序。然而,直至且除非親代交易經驗證,否則將不驗證指向前述交易(前期交易或「親代」)之後續交易(後期交易或「子代」)。在其親代之前到達區塊鏈節點104之子代被視為孤立的。取決於節點協定及/或節點行為,子代可被捨棄或緩衝一段時間以等待親代。
前述交易
Tx
0 之一或多個輸出203中之一者包含特定UTXO,其在此處經標記為
UTXO
0 。各UTXO包含指定由UTXO表示之一定金額之數位資產的值,以及鎖定指令碼,該鎖定指令碼界定必須由後續交易之輸入202中之解除鎖定指令碼符合的條件,以便驗證後續交易且因此成功地兌換UTXO。通常,鎖定指令碼將該金額鎖定至特定當事方(其中包括該鎖定指令碼之交易的受益人)。亦即,鎖定指令碼界定解除鎖定條件,其通常包含如下條件:後續交易之輸入中之解除鎖定指令碼包含前述交易鎖定至的當事方之密碼編譯簽名。
鎖定指令碼(亦稱為scriptPubKey)係用節點協定辨識之區域特定語言編寫的一段程式碼。此類語言之特定實例被稱為「指令碼(Script)」(S為大寫),其係由區塊鏈網路使用。鎖定指令碼指定需要何種資訊來使用交易輸出203,例如愛麗絲之簽名的要求。解除鎖定指令碼出現在交易之輸出中。解除鎖定指令碼(亦稱為scriptSig)係用區域特定語言編寫的一段程式碼,該區域特定語言提供滿足鎖定指令碼準則所需之資訊。舉例而言,其可含有鮑勃之簽名。解除鎖定指令碼出現在交易之輸入202中。
因此,在所例示之實例中,
Tx
0 之輸出203中之
UTXO
0 包含鎖定指令碼[Checksig
P
A ],該鎖定指令碼需要愛麗絲之簽名Sig
P
A 以便兌換
UTXO
0 (嚴格地,以便使嘗試兌換
UTXO
0 之後續交易係有效的)。[Checksig
P
A ]含有來自愛麗絲之公用-私用金鑰對之公用金鑰
P
A 的表示(亦即,雜湊)。
Tx
1 之輸入202包含指回至
Tx
1 之指標(例如,藉助於其交易ID,
TxID
0 ,其在實施例中係整個交易
Tx
0 之雜湊)。
Tx
1 之輸入202包含識別
Tx
0 內之
UTXO
0 的索引,以在
Tx
0 之任何其他可能的輸出當中識別
UTXO
0 。
Tx
1 之輸入202進一步包含解除鎖定指令碼<Sig
P
A >,其包含愛麗絲之密碼編譯簽名,該密碼簽名藉由愛麗絲將她的來自金鑰對之私用金鑰應用於資料之預界定部分(在密碼編譯中有時被稱為「訊息」)而創建。需要由愛麗絲簽名以提供有效簽名之資料(或「訊息」)可由鎖定指令碼或由節點協定或由此等之組合來界定。
當新交易
Tx
1 到達區塊鏈節點104時,該節點應用節點協定。此包含一起運行鎖定指令碼及解除鎖定指令碼以檢查解除鎖定指令碼是否符合鎖定指令碼中所界定之條件(其中此條件可包含一或多個準則)。在實施例中,此涉及串接二個指令碼: <Sig
P
A > <
P
A > || [Checksig
P
A ] 其中「||」表示串接,且「<…>」意謂將資料置放在堆疊上,並且「[…]」係鎖定指令碼所包含之函數(在此實例中係基於堆疊之語言)。更佳地,「<…>」係指PUSHDATA經編碼資料。等效地,指令碼可使用共同堆疊一個接一個地運行,而非串接指令碼。無論如何,當一起運行時,指令碼使用如包括在
Tx
0 之輸出中之鎖定指令碼中的愛麗絲之公用金鑰
P
A ,以鑑認
Tx
1 之輸入中之解除鎖定指令碼含有對資料之預期部分進行簽名的愛麗絲之簽名。亦需要包括資料自身(「訊息」)之預期部分,以便執行此鑑認。在實施例中,經簽名資料包含整個
Tx
1 (因此不需要包括單獨元素來以明文指定資料之經簽名部分,此係因為其已經固有地存在)。
藉由公用-私用密碼編譯之鑑認的細節將為熟習此項技術者所熟悉。基本上,若愛麗絲已使用其私用金鑰對訊息進行簽名,則明確給定了愛麗絲之公用金鑰及訊息,諸如節點104之另一實體能夠鑑認該訊息一定已由愛麗絲簽名。簽名通常包含對訊息進行雜湊、對雜湊進行簽名以及將此標示至訊息上作為簽名,因此使得公用金鑰之任何持有者能夠鑑認該簽名。因此,應注意,本文中對特定資料片段或交易之部分或其類似者進行簽名之任何參考在實施例中可意謂對彼資料片段或交易之部分的雜湊進行簽名。
若
Tx
1 中之解除鎖定指令碼符合
Tx
0 之鎖定指令碼中指定的一或多個條件(因此在所展示之實例中,若愛麗絲之簽名經提供在
Tx
1 中且經鑑認),則區塊鏈節點104將
Tx
1 視為有效的。此意謂區塊鏈節點104將把
Tx
1 添加至交易之有序集合154。區塊鏈節點104亦將把交易
Tx
1 轉遞至網路106中之一或多個其他區塊鏈節點104,使得該交易將在整個網路106中傳播。一旦
Tx
1 已經驗證且包括在區塊鏈150中,則此將來自
Tx
0 之
UTXO
0 界定為已使用。應注意,
Tx
1 可僅在其使用未使用交易輸出203的情況下係有效的。若
Tx
1 嘗試使用已由另一交易152使用之輸出,則
Tx
1 將為無效的,即使符合所有其他條件亦如此。因此,區塊鏈節點104亦需要檢查是否已使用前述交易
Tx
0 中所參考之UTXO (亦即,其是否已形成至另一有效交易之有效輸入)。此係區塊鏈150將經界定次序強加於交易152上很重要的一個原因。實務上,給定區塊鏈節點104可維持單獨的資料庫,其標記在哪些交易152中使用了哪些UTXO 203,但最終什麼界定了是否已使用UTXO在於其是否已形成至區塊鏈150中之另一有效交易之有效輸入。
若給定交易152之所有輸出203中所指定的總金額大於由所有其輸入202指向之總金額,則此係大多數交易模型中之無效性的另一基礎。因此,此類交易將不被傳播,亦不包括在區塊151中。
應注意,在基於UTXO之交易模型中,需要將給定UTXO作為整體使用。其無法「留下」UTXO中界定為已使用之一小部分金額,同時使用另一小部分。然而,來自UTXO之金額可在下一交易之多個輸出之間進行劃分。例如,
Tx
0 中之
UTXO
0 中所界定之金額可在
Tx
1 中之多個UTXO之間進行劃分。因此,若愛麗絲不想將
UTXO
0 中所界定之所有金額給予鮑勃,則她可使用其餘部分在
Tx
1 之第二輸出中給自己作為零錢,或付錢給另一當事方。
實務上,愛麗絲亦將通常需要包括用於公佈她的交易之比特幣節點104的費用。若愛麗絲不包括此類費用,則
Tx
0 可能被區塊鏈節點104拒絕,並且因此儘管技術上有效,但可能不會被傳播及包括在區塊鏈150中(若區塊鏈節點104不想接受交易152,則該節點協定不會強迫該等區塊鏈節點接受該等交易)。在一些協定中,交易費用不需要其自身單獨之輸出203 (亦即,不需要單獨UTXO)。實情為,由給定交易152之輸入202所指向的總金額與輸出203中所指定的總金額之間的任何差額被自動地給予公佈該交易之區塊鏈節點104。例如,比如指向
UTXO
0 之指標係至
Tx
1 之唯一輸入,並且
Tx
1 僅具有一個輸出
UTXO
1 。若
UTXO
0 中所指定之數位資產之金額大於
UTXO
1 中所指定之金額,則該差額可由公佈含有
UTXO
1 之區塊的節點104指派。然而,替代地或另外,未必排除可在交易152之其自身的UTXO 203中之一者中明確指定交易費用。
愛麗絲及鮑勃之數位資產由在區塊鏈150中任何位置處之任何交易152中鎖定至愛麗絲及鮑勃的UTXO組成。因此,通常,給定當事方103之資產遍及整個區塊鏈150中之各種交易152的UTXO而散佈。區塊鏈150中任何位置處皆未儲存界定給定當事方103之總餘額的一個數字。用戶端應用程式105中之電子錢包功能的角色係將鎖定至各別當事方且尚未在另一後續交易中使用之所有各種UTXO的值一起核對。其可藉由查詢儲存在比特幣節點104中之任一者處的區塊鏈150之複本來進行此操作。
應注意,通常示意性地表示指令碼程式碼(亦即,不使用確切語言)。舉例而言,吾人可使用操作碼(作業碼)來表示特定函數。「OP_…」係指指令碼語言之特定作業碼。作為實例,OP_RETURN係指令碼語言之作業碼,其會在鎖定指令碼之開端處以OP_FALSE開頭時創建可在交易內儲存資料的交易之不可使用輸出,並且由此將資料不可變地記錄在區塊鏈150中。例如,資料可包含需要儲存在區塊鏈中之文件。
以此方式使用OP_RETURN係使用證明不可使用指令碼以用於基於比特幣之區塊鏈系統的特定實例。任擇地,除OP_RETURN之外,亦使用OP_0。熟習此項技術者應瞭解,不同區塊鏈系統將具有不同機制及資料格式以用於確保指令碼係不可使用的及/或將資料儲存在交易中。
通常,交易之輸入具有對應於公用金鑰
P
A 之數位簽名。在實施例中,此係基於使用橢圓曲線secp256k1之ECDSA。數位簽名對特定資料片段進行簽名。在一些實施例中,對於給定交易,簽名將對交易輸入之部分及交易輸出中之一些或全部進行簽名。數位簽名所簽名之輸出之特定部分取決於SIGHASH旗標。SIGHASH旗標通常係4位元組程式碼,其包括在簽名之末端處,以選擇對哪些輸出進行簽名(且因此在簽名時固定)。
鎖定指令碼有時被稱為「scriptPubKey」,其係指其通常包含各別交易所鎖定至之當事方的公用金鑰之事實。解除鎖定指令碼有時被稱為「scriptSig」,其係指其通常供應對應簽名之事實。然而,更一般而言,在區塊鏈150之所有應用程式中,兌換UTXO之條件不一定包含鑑認簽名。更一般而言,指令碼處理語言可用於界定任一或多個條件。因此,更一般術語「鎖定指令碼」及「解除鎖定指令碼」可為較佳的。
如圖1中所展示,愛麗絲及鮑勃之電腦裝備102a、120b中之各者上的用戶端應用程式可分別包含額外通訊功能性。此額外功能性使得愛麗絲103a能夠與鮑勃103b建立單獨旁側通道301 (在任一當事方或第三當事方之推動下)。旁側通道301使得能夠與區塊鏈網路分開地進行資料交換。此類通訊有時被稱作「鏈外」通訊。舉例而言,此可用於在愛麗絲與鮑勃之間交換交易152,而無需(尚未)將交易登記至區塊鏈網路106上或使其進入鏈150,直至當事方中之一者選擇將其廣播至網路106。以此方式共用交易有時被稱作共用「交易範本」。交易範本可能缺乏形成完整交易所需之一或多個輸入及/或輸出。替代地或另外,旁側通道301可用於交換任何其他交易相關資料,諸如金鑰、協商的金額或條款、資料內容等。
可經由與區塊鏈網路106相同之封包交換式網路101建立旁側通道301。替代地或另外,可經由諸如行動蜂巢式網路之不同網路或諸如局域無線網路之局域網路或甚至愛麗絲之裝置102a與鮑勃之裝置102b之間的直接有線或無線鏈路來建立旁側通道301。一般而言,在本文中任何位置處被提及之旁側通道301可包含經由一或多個網路連接技術或通訊媒體之任一或多個鏈路,以用於「鏈外」,亦即與區塊鏈網路106分開地,交換資料。在使用多於一個鏈路之情況下,鏈外鏈路之集束或集合整體上可被稱作旁側通道301。因此,應注意,若據稱愛麗絲及鮑勃經由旁側通道301交換某些資訊或資料片段或其類似者,則此未必暗示必須經由完全相同的鏈路或甚至相同類型之網路來發送所有此等資料片段。
用戶端軟體
圖3A例示用於實施本發明所揭露方案之實施例的用戶端應用程式105之實例實施方式。用戶端應用程式105包含交易引擎351及使用者介面(UI)層352。交易引擎351經組配以根據上文所論述且稍後將進一步詳細論述之方案實施用戶端105之基礎交易相關功能性,以便制定交易152、經由旁側通道301接收及/或發送交易及/或其他資料,及/或將交易發送至一或多個節點104以經由區塊鏈網路106進行傳播。根據本文中所揭露之實施例,各用戶端105之交易引擎351包含功能353……
UI層352經組配以經由各別使用者之電腦裝備102之使用者輸入/輸出(I/O)構件來顯現使用者介面,包括經由裝備102之使用者輸出構件來將資訊輸出至各別使用者103,以及經由裝備102之使用者輸入構件自各別使用者103接收回輸入。舉例而言,使用者輸出構件可包含用於提供視覺輸出之一或多個顯示螢幕(觸控式或非觸控式螢幕)、用於提供音訊輸出之一或多個揚聲器,及/或用於提供觸覺輸出之一或多個觸覺輸出裝置等。使用者輸入構件可包含例如以下各者之輸入陣列:一或多個觸控式螢幕(與用於輸出構件之觸控式螢幕相同或不同);一或多個基於游標之裝置,諸如滑鼠、軌跡墊或軌跡球;一或多個麥克風及話音或語音辨識演算法,其用於接收話音或聲音輸入;一或多個基於姿勢之輸入裝置,其用於接收呈手勢或身體姿勢之形式的輸入;或一或多個機械按鈕、開關或操縱桿等。
應注意:雖然本文中之各種功能性可描述為整合至相同用戶端應用程式105中,但此未必為限制性的,並且實情為,其可實施在一套二個或更多個不同應用程式中,例如一個應用程式係另一應用程式之外掛程式或經由應用程式設計介面(API)介接。舉例而言,交易引擎351之功能性可實施在與UI層352分離之應用程式中,或諸如交易引擎351之給定模組之功能性可在多於一個應用程式之間進行劃分。亦不排除可在比如作業系統層處實施所描述功能性中之一些或全部。在本文中任何位置皆參考單個或給定應用程式105或其類似者的情況下,應瞭解,此僅作為實例,且更一般而言,所描述功能性可以任何形式之軟體實施。
圖3B提供使用者介面(UI) 360之實例的模型,該使用者介面可由愛麗絲之裝備102a上之用戶端應用程式105a的UI層352顯現。應瞭解,類似UI可由鮑勃之裝備102b或任何其他當事方之裝備上的用戶端105b顯現。
作為例示,圖3B自愛麗絲之視角展示UI 360。UI 360可包含經由使用者輸出構件顯現為不同UI元件之一或多個UI元件362、362、363。
舉例而言,UI元件可包含一或多個使用者可選擇元件362,其可為諸如不同螢幕上按鈕或選單中之不同選項或其類似者。使用者輸入構件經配置以使得使用者103 (在此情況下,愛麗絲103a)能夠選擇或以其他方式操作選項中之一者,諸如藉由點擊或觸碰螢幕上之UI元件,或說出所需選項之名稱(注意:如本文中所使用之術語「手動」僅意謂與自動相對,且未必限於使用手)。
替代地或另外,UI元件可包含一或多個資料鍵入欄位362,經由該等資料鍵入欄位使用者可……此等資料鍵入欄位經由使用者輸出構件(例如螢幕上)顯現,並且資料可經由使用者輸入構件(例如鍵盤或觸控式螢幕)而經鍵入至欄位中。替代地,可例如基於話音辨識而口頭接收資料。
替代地或另外,UI元件可包含一或多個資訊元件363,其經輸出以將資訊輸出至使用者。例如,可在螢幕上或有聲地顯現此/此等元件。
應瞭解,顯現各種UI元件、選擇選項以及鍵入資料之特定構件並不重要。稍後將更詳細地論述此等UI元件之功能性。亦應瞭解,圖3中展示之UI 360僅係圖示模型,並且實務上,其可包含一或多個其他UI元件,出於簡明起見不對其加以例示。
節點軟體
圖4例示在基於UTXO或基於輸出之模型之實例中的在網路106之各區塊鏈節點104上運行的節點軟體450之實例。應注意,另一實體可運行節點軟體450,而不被分類為網路106上之節點104,亦即不執行節點104所需之動作。節點軟體450可含有但不限於協定引擎451、指令碼引擎452、堆疊453、應用程式層級決策引擎454,以及一或多個區塊鏈相關功能模組之集合455。各節點104可運行節點軟體,該節點軟體含有但不限於以下各者中之所有三者:共識模組455C (例如,工作量證明)、傳播模組455P以及儲存模組455S (例如,資料庫)。協定引擎351通常經組配以辨識交易152之不同欄位,並且根據節點協定處理該等欄位。當接收到具有指向另一前述交易152i (
)之輸出(例如,UTXO)的輸入之交易152j (
)時,協定引擎451接著識別
中之解除鎖定指令碼且將其傳送至指令碼引擎452。協定引擎451亦基於
之輸入中的指標而識別及擷取
可在區塊鏈150上公佈,在此情況下,協定引擎可自儲存在節點104處之區塊鏈150的區塊151之複本擷取
。替代地,
可能尚未在區塊鏈150上公佈。在彼情況下,協定引擎451可自由節點104維持之未公佈交易之有序集合154擷取
。無論以何種方式,指令碼引擎451皆會識別
之經參考輸出中的鎖定指令碼,並且將此傳送至指令碼引擎452。
指令碼引擎452因此具有
之鎖定指令碼及來自
之對應輸入之解除鎖定指令碼。舉例而言,在圖2中例示經標記為
及
之交易,但此可適用於任一對交易。指令碼引擎452如先前所論述一起運行二個指令碼,其將包括根據正使用之基於堆疊之指令碼處理語言(例如,指令碼)而將資料置放至堆疊453上以及自該堆疊擷取資料。
藉由一起運行指令碼,指令碼引擎452判定解除鎖定指令碼是否符合鎖定指令碼中所界定之一或多個準則-亦即,其是否「解除鎖定」其中包括鎖定指令碼之輸出? 指令碼引擎452將此判定之結果返回至協定引擎451。若指令碼引擎452判定解除鎖定指令碼確實符合對應鎖定指令碼中所指定之一或多個準則,則其返回結果「真」。否則,其返回結果「假」。
在基於輸出之模型中,來自指令碼引擎452之結果「真」係交易之有效性的條件中之一者。通常,亦存在藉由協定引擎451評估的亦必須符合之一或多個其他協定層級條件;諸如
之輸出中指定之數位資產的總金額不超過由其輸入指向之總金額,以及
之所指向輸出尚未由另一有效交易使用。協定引擎451評估來自指令碼引擎452之結果連同一或多個協定層級條件,並且僅在該結果及該一或多個協定層級條件皆係真之情況下驗證交易
。協定引擎451將交易是否有效之指示輸出至應用程式層級決策引擎454。僅在確實驗證了
之條件下,決策引擎454可選擇控制共識模組455C及傳播模組455P二者以執行其關於
之各別區塊鏈相關功能。此包含共識模組455C將
添加至節點的交易之各別有序集合154以用於併入區塊151中,以及傳播模組455P將
轉遞至網路106中之另一區塊鏈節點104。任擇地,在實施例中,應用程式層級決策引擎454可在觸發此等功能中之任一者或二者之前應用一或多個額外條件。例如,決策引擎可僅在交易有效且留下足夠交易費用之條件下選擇公佈交易。
亦應注意,本文中之術語「真」及「假」未必限於返回以僅單個二進位數字(位元)之形式表示的結果,但當然為一個可能的實施方式。更一般而言,「真」可指指示成功或肯定結果之任何狀態,並且「假」可指指示不成功或非肯定結果之任何狀態。舉例而言,在基於帳戶之模型中,結果「真」可由簽名之隱式協定層級驗證及智慧型合約之額外肯定輸出的組合指示(總體結果在二個個別結果係真之情況下被視為信號真)。
一旦給定本文中之揭露內容,所揭露技術之其他變體或使用案例對於熟習此項技術者可變得顯而易見。本揭露內容之範圍不受所描述實施例限制而僅受隨附申請專利範圍限制。
舉例而言,以上一些實施例已關於比特幣網路106、比特幣區塊鏈150及比特幣節點104而進行描述。然而,應瞭解,比特幣區塊鏈係區塊鏈150之一個特定實例,並且以上描述通常可適用於任何區塊鏈。亦即,本發明絕不限於比特幣區塊鏈。更一般而言,以上對比特幣網路106、比特幣區塊鏈150及比特幣節點104之任何參考可分別用對區塊鏈網路106、區塊鏈150及區塊鏈節點104之參考來替換。區塊鏈、區塊鏈網路及/或區塊鏈節點可共用如上文所描述之比特幣區塊鏈150、比特幣網路106及比特幣節點104之所描述性質中的一些或全部。
在本發明之較佳實施例中,區塊鏈網路106係比特幣網路,並且比特幣節點104執行創建、公佈、傳播以及儲存區塊鏈150之區塊151的所描述功能中之至少全部。不排除可存在僅執行此等功能中之一者或一些而非全部的其他網路實體(或網路元件)。亦即,網路實體可執行傳播及/或儲存區塊而不創建及公佈區塊之功能(前已述及,此等實體不被視為較佳比特幣網路106之節點)。
在本發明之非較佳實施例中,區塊鏈網路106可能並非比特幣網路。在此等實施例中,不排除節點可執行創建、公佈、傳播及儲存區塊鏈150之區塊151的功能中之至少一者或一些而非全部。舉例而言,在彼等其他區塊鏈網路上,「節點」可用於指網路實體,該網路實體經組配以創建及公佈區塊151,而非將彼等區塊151儲存及/或傳播至其他節點。
甚至更一般而言,對以上術語「比特幣節點」104之任何參考可用術語「網路實體」或「網路元件」替換,其中此類實體/元件經組配以執行創建、公佈、傳播以及儲存區塊之角色中之一些或全部。此類網路實體/元件之功能可以上文參考區塊鏈節點104所描述之相同方式實施在硬體中。
資產及事件追蹤
圖5係關於根據本揭露內容之第一態樣的系統500,其用於提供與資產516相關聯之事件的基於區塊鏈之同步、有序、不可變日誌,較佳地作為提供與區塊鏈101相關聯之多個服務的平台處理器504之部分。較佳地,事件係指與資產之互動,包括資產之使用。平台處理器504任擇地係如下文關於圖10及圖11更詳細地描述之平台。平台處理器504經組配以與區塊鏈101、資產所有者502、資產使用者506及/或資產516通訊及/或以其他方式互動。為易於例示性目的,平台處理器504在本文中被描述為整體伺服器。在使用「用戶端」、「使用者」或類似術語之情況下,應理解,此可指由該用戶端或使用者擁有及/或控制之裝置。熟習此項技術者應瞭解,平台處理器504可實施為單個伺服器、大型主機、伺服器之集合、微型服務、微型服務之集合、雲端服務、一或多個前述及/或其他運算平台之任何組合。
熟習此項技術者應瞭解,雖然此實例提供待追蹤之一個資產,但平台服務504可經組配以追蹤具有相同或不同及/或多個資產所有者的多個資產。較佳地,存在資產516之至少一個使用者506。
此實例之系統500包含第一所有者502及第二所有者(圖5中未展示)。所有者擁有資產及/或在使用資產516及/或與之互動時具有利息及/或股權。任擇地,資產516具有在任一時間與其相關聯之多個所有者。
較佳地,所有者502、使用者506及資產516中之各者經組配以將事件資料傳輸至平台處理器504,使得平台處理器可處理及記錄事件。較佳地,事件資料包含指示事件及參與事件之人的資料,並且任擇地包括其他後設資料,諸如發生事件之時間。較佳地,經由API請求傳輸事件資料,如下文參考圖10及圖11所描述。事件之表示或事件之至少子部分經記錄在區塊鏈101上。替代於在區塊鏈上儲存事件自身,儲存該事件之存在證明。存在證明較佳地將係事件資料之雜湊。藉由儲存事件之證明而非事件自身,區塊鏈上之儲存空間可減少,交易費用將很可能較低,並且事件之隱私被保留在鏈上,同時仍維持與基於區塊鏈之不可變、有序日誌相關聯的所有相同優點。
任擇地,事件資料經處理以產生代表性事件資料。代表性事件資料可被視為基於事件資料。因此,代表性事件資料可包括以下各者中之任一或多者:未經修改事件資料自身、事件資料之雜湊、包含事件資料之密碼編譯結構之根雜湊或另一資料處理步驟之輸出。
代表性事件資料較佳地作為交易之部分儲存在區塊鏈上。代表性事件資料保存在交易之不可使用OP_RETURN輸出中。此係指令碼作業碼,其可用於在區塊鏈上寫入任意資料且亦將交易輸出標記為無效的。作為另一實例,OP_RETURN係指令碼語言之作業碼,其用於創建交易之不可使用輸出,該輸出可儲存交易內之資料,諸如後設資料,並且由此將後設資料不可變地記錄在區塊鏈101上。任擇地,除OP_RETURN之外,亦使用OP_0。
較佳地,區塊鏈101包含與所有者502、使用者506及資產516中之各者相關聯的交易集合。各交易集合表示或係相關聯於與適當所有者、使用者或資產相關聯的事件之同步、有序、不可變日誌。更佳地,交易集合係與如下文在標題「事件串流」下所描述的事件串流相關聯。甚至更佳地,事件串流係相關聯於與其表示之所有者、使用者或資產相關聯的智慧型合約。交易集合中之各交易較佳地由平台處理器504創建且提交至區塊鏈。
如本文中所使用之事件應理解為廣泛的而非特定於本文中所提供之實例。系統500內之不同所有者502、使用者506或資產516將具有與其相關聯的不同類型之事件。舉例而言,與所有者502相關聯之事件可為以下各者中之任一或多者: ● 購買及/或創建資產, ● 使用資產, ● 資產折舊, ● 出售資產,以及 ● 更新及/或修復資產。
舉例而言,與資產516相關聯之事件可為以下各者中之任一或多者: ● 使用資產, ● 在資產係化學製造製程中之組件的情況下,已達至一定臨界溫度, ● 資產之組件接近於斷裂或已斷裂, ● 在資產係汽車時,已超過一定速度或距離,以及 ● 資產在給定週期內已使用之次數。
舉例而言,與使用者506相關聯之事件可為以下各者中之任一或多者: ● 資產之使用連同時長、次數或其他使用量度, ● 在使用資產時記錄資產之狀態(特定而言,資產是否未正確執行),以及 ● 在確認資產之狀態或條件的情況下歸還/放棄資產。
熟習此項技術者應瞭解其他事件係可能的。在提及事件儲存在區塊鏈101上之情況下,事件較佳地作為如上文所論述之代表性事件資料儲存在區塊鏈上。此代表性事件資料可基於描述事件內容之文本,並且包括任何相關變量,諸如溫度、使用時段、電壓、密碼編譯金鑰及更多。所儲存之資料之類型及格式可取決於事件。熟習此項技術者應瞭解,不同事件將需要不同資料類型來表示該等事件。
值得注意地,數個此等事件係與所有者502、使用者506及/或資產516中之二者或更多者相關聯。在此等情況下,與各所有者、使用者或資產相關聯之各交易集合需要用包含新事件之交易經更新。較佳地,在基元上(使得並非僅一個交易集合獲得包含事件之新交易-所有集合或無集合接收該事件)及/或同步地(使得在此當前事件之前已發生的涉及多個所有者、使用者或資產之事件並不相對於任何交易集合被無序地添加至交易集合)更新各交易集合。較佳地,相對於其他事件在基元上及同步地更新交易集合。
較佳地,與事件相關之各交易集合係經由使用屬於所有交易集合之單個交易在基元上加以更新,該等所有交易集合係相關聯於與事件相關聯之所有者、使用者或資產。舉例而言,若由第一所有者向第二所有者出售資產,則單個交易將屬於以下所有者:(i)與資產相關聯之交易集合、(ii)與第一所有者相關聯之交易集合,(iii)以及與第二所有者相關聯之交易集合。下文參考圖9、圖10C或圖10D之進一步描述提供此類交易可如何與二個或更多個交易集合相關聯的實例。
系統500較佳地進一步提供所有者502及/或使用者506讀取由平台處理器504儲存之任何事件資料的能力。對事件資料之此讀取較佳地藉由將請求提交至平台處理器504來進行。替代地或另外,可直接自區塊鏈101獲得資料。
圖6A至圖6C例示實例方法600、610、620,其中在交易中提交不同類型之事件以用於記錄在區塊鏈上。各交易係與交易集合相關聯,該交易集合係相關聯於與事件相關之所有者、使用者及/或資產中之各者。圖7例示交易集合在已發生數個事件之後的狀態。數個交易702-722經展示為與不同交易集合740-748相關聯。各交易集合740-748經描繪為沿該圖向下之豎直線,其中包含豎直線上之區塊的每個交易702-722係作為與該線相關聯之交易集合之部分的交易。
在本發明實例中,已在此之前建立交易集合740-748。任擇地,與資產相關聯之交易集合740創建在創建交易702中。較佳地,此創建交易702包含唯一地識別資產之資訊,諸如序號或數位憑證。在資產係歌曲之情況下,創建交易702包含唯一地識別歌曲之數位指紋。類似地,各其他交易集合包含創建交易(未展示)。此等交易亦將包含識別資訊,諸如使用者之公用金鑰及/或數位簽名。
圖6A及圖6B之方法600、610描述正記錄之二個特定類型之事件。較佳地,平台處理器504經組配以進行方法600、610二者。所有權轉移方法600提供更新三個交易集合之實例,並且資產使用者事件方法610提供更新二個交易集合之實例。熟習此項技術者應瞭解,此等係用於提交至區塊鏈之資產相關事件的特定實例,並且事件交易之其他實例係可能的,其中不同交易集合需要經同步。
以圖6A開始,展示了記錄資產之所有權轉移的方法600。該方法較佳地由平台處理器504進行。
在所展示方法之前,較佳地接收創建請求以使資產與第一所有者相關聯。較佳地,若尚未創建交易集合,則亦同時創建與資產相關聯之交易集合及與第一所有者相關聯之交易集合中之任一者或二者。更佳地,將交易提交至與資產及第一所有者交易集合二者相關聯之區塊鏈。此類交易之實例在圖7中可被視為第一交易702。
首先,接收602更新資產之所有權的請求。該請求較佳地由資產之第一所有者或第二所有者產生。
請求包含識別資產之資料以及資訊,使得第一及第二所有者二者同意所有權轉移。任擇地,此類資料係第一及第二所有者二者之密碼編譯簽名。
接下來,產生所有權更新交易,該所有權更新交易係基於指示資產、第一所有者及第二所有者之資料。較佳地,所有權更新交易屬於與資產相關聯之交易集合740、與第一所有者相關聯之交易集合742,以及與第二所有者相關聯之交易集合748。
更佳地,指示資產之資料用於使所有權更新交易相關聯於與資產相關聯之交易集合740。此類似地適用於與第一及第二所有者相關的資料以及其各別交易集合742、748。
將所有權更新交易提交606至區塊鏈。
參考圖7,展示實例第一所有權更新交易702及第二所有權更新交易712。在此等交易702、712中,資產首先記錄為由第一所有者擁有(如由資產集合740及第一所有者集合742二者中之第一所有權更新交易702所展示),並且接著經轉移(如由在所有資產740、第一所有者742及第二所有者748之交易集合中之第二所有權更新交易所展示)。第一所有權更新交易702表示在區塊鏈上創建之資產(或與資產相關聯之交易集合)。可看出,該交易702存在於(或屬於)與資產相關聯之交易集合740及與第一所有者相關聯之交易集合742二者中。因此,在一個基元交易中一起更新二個交易集合。任擇地,在提交第一所有權更新交易702時創建與資產相關聯之交易集合及與第一所有者相關聯之交易集合二者。
接下來,第二更新所有權交易712表示資產之所有權自第一所有者轉移至第二所有者。此交易712係基於指示哪一所有者正失去所有權且哪一所有者正獲得所有權之資料(任擇地,若例如第一所有者想要將50%之所有權轉移至第二所有者,則此亦可以百分比進行)。如可看出,交易702、712係基元的,使得所有表示各資產之交易集合740及表示所有者之交易集合742、748同時經更新。此係歸因於區塊鏈交易之技術特徵,並且特定而言,不允許甚至藉由區塊鏈網路中之惡意節點修改交易。修改交易(藉由例如移除基於第二所有者之任何資料)將使該交易無效,並且因此不能夠儲存在區塊鏈上。
一旦已將交易提交至區塊鏈,該交易便可被視為其參考之交易集合之不可變部分。為繼續圖6A之此實例,一旦所有權更新交易已提交至區塊鏈(經由交易成功地被挖掘至區塊中),該交易將不可變地屬於與資產相關聯之交易集合、與第一所有者相關聯之交易集合以及與第二所有者相關聯之交易集合。此類似地適用於本文中所描述之其他事件交易,包括圖6B之資產使用者事件交易及圖6C之事件互動交易。
任擇地,在已將交易提交至區塊鏈之後,接收該交易已成功地被挖掘至區塊中之指示。如上文所提及,此指示交易現在不可變地包括至與資產及任何其他使用者、所有者或參與事件之用戶端相關聯的交易集合中。藉由此指示,更新此事件之鏈外表示以確認事件已成功地記錄至區塊鏈上且事件係與適當交易集合不可變地相關聯。
圖6B展示在使用者與資產之間發生事件之情況下的方法610。此互動可為使用者使用資產。
首先,接收612記錄與資產及使用者相關聯之事件的請求。資產事件請求612包含識別相關聯資產及相關聯使用者之資料。資產使用者事件請求較佳地進一步包含與事件相關之資料。舉例而言,若事件係使用者使用資產達30分鐘,則資產事件請求進一步包含指示資產已使用30分鐘之資料。
接下來,產生614資產使用者事件交易,該資產使用者事件交易係基於指示資產及使用者之資料。基於所接收資產事件請求而產生614資產事件交易。較佳地,資產使用者事件交易屬於與資產相關聯之交易集合740及與使用者相關聯之交易集合744。
如同上文所描述之更新所有權方法600,指示資產之資料較佳地用於使交易相關聯於與資產相關聯之交易集合740。此類似地適用於與第一使用者相關之資料及與第一使用者相關聯之交易集合744。
將資產使用者事件交易提交616至區塊鏈。
參考圖7,展示資產使用者事件交易704、706、708、710、714、716、718、720、722。在此等資產使用者事件交易中,資產正由第一及第二使用者使用,如由屬於與資產相關聯之交易集合740及與第一使用者相關聯之交易集合744,或與資產相關聯之交易集合740及與第二使用者相關聯之交易集合746的此等資產使用者事件交易所證明。較佳地,此等資產使用者事件交易進一步包含關於事件之資訊。
參考圖6C,展示與處理事件互動請求相關之方法620。此方法620可被視為圖6A及圖6B中所描述之方法600、610之抽象版本。
首先,接收622事件互動請求。事件互動請求包含識別正與之互動之資產、哪些所有者或使用者正與資產互動以及互動類型(如上文在圖6A及圖6B中所提供之實例中所論述,該互動類型可為使用資產或轉移資產之所有權)的資訊。
接下來,獲得628指示與事件相關聯之所有者或使用者(本文中任擇地描述為「用戶端」)的資料。較佳地,與事件相關聯之用戶端係基於所接收事件互動請求而經識別,並且與各用戶端相關聯之交易集合經識別。另外或替代地,與事件相關聯之用戶端係基於請求已自何處發送而經識別。此處,指示與事件相關聯之用戶端的資料係或包含對與用戶端相關聯之交易集合的參考。
較佳地,對交易之參考係或包含對儲存在交易上之資料及/或與適當交易集合相關聯之交易輸出點(其中交易輸出點係交易id及輸出索引)的參考。更佳地,對與用戶端相關聯之交易集合的第一參考係與適當用戶端相關聯之交易集合中之下一交易的交易輸出點。仍更佳地,對與適當用戶端相關聯之交易集合中之最新交易的第二參考係基於儲存在最新交易上之資料。
另外或替代地,指示與事件相關聯之用戶端的資料已存在於事件互動請求中。另外或替代地,在請求包含一或多個事件串流識別符之情況下,與事件相關聯之用戶端係基於一或多個事件串流識別符而判定。
「最新交易」或「交易集合中之最新交易」較佳地係指緊接在當前正產生及/或提交之交易之前的交易。任擇地,在所有事件待記錄在區塊鏈上之情況下,最新交易係指表示在鏈上正表示之當前事件之前的事件之交易。
較佳地,如同用戶端,類似地獲得對與資產相關聯之交易集合的參考。
接下來,產生624事件互動交易。事件互動交易係基於指示哪些用戶端參與事件之資料及指示該事件之資料。較佳地,事件互動交易包含基於參與事件之用戶端的代表性事件資料,使得事件互動交易屬於或相關聯於與參與事件之用戶端相關聯的各交易集合。
最終,將事件互動交易提交626至區塊鏈。
參考圖8,展示如何建構及/或界定交易集合之實施例。較佳地,交易集合經界定成使得在各集合中之至少一交易子集之間存在使用關係。更佳地,當事件中之各者具有事件發生之相關聯次序/時間時,與各事件相關聯之交易之間的使用關係經建構,使得表示較早(在時間上)事件之交易800a包含表示下一事件之交易800b在其輸入802b中之一者上使用的輸出804a。因此,交易集合可被視為交易鏈,其各自表示事件。
較佳地,界定交易集合中之使用關係的此等輸入802a、802b及輸出804a、804b係使用「塵埃」。塵埃輸出係與低於交易之經界定限值或具有經界定最小值的(數位資產)值相關聯。
交易中之輸入/輸出的此鏈之使用係有利且關鍵的,以用於在所有交易針對有序、僅附加事件日誌(且特定而言,針對如下文所描述之事件串流)而發生時維持該等交易之不可變依序記錄。此係因為,儘管藉由將交易發佈至區塊鏈,一旦交易在區塊鏈上經確認或添加至該區塊鏈,所有區塊鏈交易便將被打上時戳且保持特定次序,但此不保證維持其依序次序。此係因為交易可能在不同時間經挖掘至區塊中及/或即使在同一區塊內,交易亦呈不同次序。使用由序列中之下一交易之第一輸入使用的塵埃輸出有利地確保按時間順序追蹤交易之次序且創建事件自身及事件之依序排序二者的防篡改記錄。此係因為一旦經挖掘至區塊中,塵埃自先前交易至序列中之下一交易的支付便確保:根據比特幣協定規則,所嵌入資料載體元素之序列(其被稱為酬載且在下文論述)無法經重排序,且不會發生可改變序列而不會立即明顯發現事件串流已受損之插入或刪除。在一些實施例中,比特幣協定固有的雙重使用預防機制確保密碼貨幣(例如,塵埃)在不同交易輸入及輸出之間的移動保持拓樸次序。塵埃交易之鏈接利用拓樸排序以提供區塊間及區塊內交易(以及因此相關聯的事件及資料)次序保持。因此,此改良了交易集合及與該等交易集合相關聯之資料的完整性。
任擇地,交易集合亦另外或替代地基於第二參考類型。基於此第二參考類型之資料可儲存在交易中之一者之輸出上,並且該參考可指交易集合中之前述交易或任擇地下一交易。不涉及使用任何輸出之參考避免了到達區塊鏈之原始限值。較佳地,此第二非使用參考用於其間具有使用關係的交易子集之間。任擇地,第二參考係同一交易集合中之交易之交易id,或第二參考係同一交易集合中之交易中之一者使用或將使用的輸出點集合。關於此類參考之其他細節論述在英國專利申請案第2102314.8號(在2021年2月18日以nChain控股有限公司之名義申請)中。此等參考經描述為該英國專利申請案中之變出(Change-out)及變入(Change-in)參考/交易。關於此類參考之其他細節亦論述在英國專利申請案第2204293.1號(在2022年3月25日以nChain控股有限公司之名義申請)中。
任擇地,交易集合另外或替代地由第三參考類型界定。此參考類型較佳地參考緊接在其之前的事件及/或交易。此參考包含或係前述事件及/或交易之部分的雜湊。較佳地,參考係前述交易之事件資料或資料區段的雜湊。此雜湊為事件串流及/或交易集合提供防篡改性。在此第三參考類型係儲存在先前交易上之事件資料之雜湊的情況下,對先前事件資料之任何修改亦將修改雜湊,且因此在過去修改資料之任何嘗試將由任何未來不同交易中之不同雜湊偵測到。關於此類參考之其他細節論述在同一上述英國專利申請案第2102314.8號(在2021年2月18日以nChain控股有限公司之名義申請)中。此等參考經描述為該英國專利申請案中參考圖6A之第三後向參考。關於此類參考之其他細節亦論述在英國專利申請案第2204293.1號(在2022年3月25日以nChain控股有限公司之名義申請)中。此等參考
如上文所論述的交易集合之使用關係的例外狀況係交易集合之第一交易及最後交易。如上文所論述任擇地包含識別交易集合與何相關聯之資訊的第一交易並不使用來自先前事件之交易,此係因為將不存在先前事件。類似地,交易集合中之最終交易未由任何其他交易使用,此係因為不存在使用該最終交易之其他事件。
各事件交易較佳地包含酬載806a、806b。如上文所描述,酬載包含OP_RETURN程式碼(及任擇地OP_0程式碼),以使其不可使用且允許交易儲存資料。
亦可存在基於操作性浮動資金的與數位資產相關聯之其他輸入。此浮動資金可由平台處理器控制。交易中亦有可能具有作為數位資產零錢輸出之其他輸出。較佳地,事件交易800a、800b進一步包含資金輸入808a、808b及零錢輸出810a、810b。資金輸入之總值經選擇以涵蓋交易費用(有時被稱為挖掘器之費用)以幫助確保挖掘器將挑選交易且將其包括在區塊中。資金服務可提供一或多個輸入以確保總值為輸入係足夠的。交易費用係動態的,並且將取決於網路之負載。每位元組可以中本聰幣(或區塊鏈系統使用的任何幣/符記)量測交易費用(其中中本聰幣係單個比特幣之億分之一)。因此,若酬載較大,則該費用將亦需要較大,並且將相應地調整資金輸入。由於UTXO模型,所支付之總費用受在輸入中參考之UTXO及輸出上之UTXO二者的值來控制。來自涵蓋交易費用的剩餘零錢任擇地經發送回至相同運算裝置,該運算裝置管理、創建此等交易及將此等交易提交至區塊鏈。資金輸入及由該等資金輸入產生之零錢操作為浮動資金,並且由該資金服務管理。
熟習此項技術者應瞭解,塵埃建構鏈提供交易之間的後向參考,使得存取區塊鏈之當事方可前向或後向遍歷此等任何交易集合。有利地,此遍歷可在並無除存在於區塊鏈上之資訊以外的任何資訊之情況下發生。
自給定交易之前向遍歷係藉由判定哪一輸出索引將由下一交易使用(例如圖8及圖9中之第零輸出)而進行。較佳地,系統及方法始終將相同輸出索引用於所有交易集合,或至少在遍歷之前可判定輸出索引。因此,待使用之輸出點係藉由獲得給定交易之id及索引而建構。搜尋區塊鏈以定位在其輸入中之一者中使用此輸出點的交易。重複程序,直至定位最終交易,無法定位輸出點,且因此遍歷已位於最新事件交易,及/或遍歷器已到達其尋找之交易為止。
自給定交易之後向遍歷類似地起作用。輸出點係自經判定輸入(例如圖8及圖9中之第零輸入)獲得。用以遍歷之先前交易將具有輸出點之交易id。接著針對具有彼id之交易搜尋區塊鏈。接著重複程序,直至到達交易集合之開始及/或遍歷器已到達其尋找之交易為止。
塵埃鏈中用於將新交易/事件添加至交易集合之相關輸出點通常係交易集合中之最新交易的輸出點。較佳地,產生用於新事件之交易的裝置將係產生先前事件交易之同一裝置,且因此將具有已自此儲存之輸出點。替代地,塵埃鏈經遍歷至最新交易,接著塵埃輸出之交易id及索引用於產生相關輸出點。
參考圖9,展示交易如何建構及/或界定成使得其屬於或相關聯於多個交易集合的實施例。此處,展示具有包含在(或相關聯於)所有三個交易集合L、M、N中之一個多設定交易902的三個交易集合L、M及N。三個集合僅係作為實例提供。熟習此項技術者應瞭解,亦可在僅對所呈現之資料結構進行輕微修改的情況下使用不同數目個交易集合。展示標記為A、B及C之三個塵埃鏈,並且其中除多設定交易902以外,第零輸入(標記為0)係塵埃輸入,且第零輸出(標記為0)係如參考圖8所描述之塵埃輸出。交易(除多設定交易902以外)之第一輸出(標記為1)包含酬載。亦可看出資金輸入及輸出標記有「浮動資金」輸入及「零錢」輸出。熟習此項技術者應瞭解,此等輸入及輸出之次序僅係作為實例,可使用其他次序。
多設定交易902經展示為所有三個塵埃鏈A、B、C之部分,並且因而該交易902被視為各交易集合L、M、N之部分(或與其相關聯)。多設定交易902亦可經描述為「基元交易」或「會合交易」。
為了繼續如圖6A之方法600及圖7中所描述的資產所有權轉移實例,第一交易集合L與資產相關聯,第二交易集合M與第一所有者相關聯,並且第三交易集合N與第二所有者相關聯。此處在此實例中之多設定交易902與如上文所描述之所有權更新交易712相同。接著可看出資產所有權交易包含指示資產之資料、指示第一所有者之資料及指示第二所有者之資料。此資料可包含在酬載中,或替代地,此資料包含在所有權更新交易之使用關係中,亦即在所有權更新交易正使用來自與資產、第一所有者及第二所有者中之各者相關聯的交易集合之輸出的情況下。
因此,基元或會合區塊鏈交易係跨越多個M個交易集合之交易,其中各交易集合係與所有者、使用者、資產或其他相關聯。基元交易涉及建構多個塵埃鏈,各塵埃鏈作為第一輸入對應於多個M個交易集合當中的給定交易集合。因此,基元交易包含: ● n = M個輸入,各輸入與多個交易集合當中之各別交易集合相關聯,各第n輸入使用與各別交易集合之先前交易TXn-1相關聯的塵埃輸出, ● 對於n個輸入中之各者,各別未使用交易輸出(UTXOn_dust)係與各別交易集合相關聯之基元交易TXn的第n塵埃輸出,以及 ● 與表示當前事件之事件資料,亦即資料載體相關聯的未使用交易輸出(UTXOn_data)。
可存在額外輸入,諸如適當時涵蓋網路挖掘費用之資金輸入,並且亦可存在其他輸出,諸如零錢輸出或資料載體輸出,諸如與用於基元交易之各事件串流相關聯的OP_RETURN。
如上文所描述,塵埃輸入及輸出用於防止日誌中之條目的重排序,防止事後插入/刪除、分叉,亦即替代時線等,從而充分利用區塊鏈網路之安全性、不可變性及雙重使用預防。由一系列資料載體交易上之第n輸入/輸出對形成的此塵埃鏈共同地保護各別單個交易集合(或較佳地,各別單個事件串流ESn)。
會合交易(特定而言,在事件串流之上下文中的會合交易)之其他細節論述在英國專利申請案第2020279.2號(在2020年12月21日以nChain控股有限公司之名義申請)中。
參考圖10A及圖10B,展示交易1022、1026a、1028a及資料結構1000。交易及資料結構以建構及/或界定交易集合之額外或替代實例方式來闡明。
較佳地,資料結構1000係默克爾樹或其他類似密碼編譯資料結構。資料結構包含根「S」1008、中間節點、葉節點以及葉節點所基於之資料1002、1004、1006。根S可經描述為「狀態摘要」,此係因為其可表示事件串流之當前狀態之摘要。
葉節點係基於其各別輸入而產生。較佳地,葉節點係基於對其各別輸入資料進行雜湊二次1010,在圖中用H
2()表示。在本發明實例中,葉節點係基於PREV 1002、H
D' 1004及NEXT 1006。此實例默克爾樹經建構為二元樹,其中各節點具有二個子代(除葉以外)。由於存在奇數個輸入資料項目(且因此存在奇數個葉),因此使最後一個不成對葉節點重複。熟習此項技術者應瞭解,並非必需嚴格依循默克爾樹之此呈現形式,且存在亦可起作用之其他形式。
在較佳實施例中,默克爾樹係基於先前交易參考(PREV)、下一交易參考(NEXT)及狀態用戶端資料摘要(H
D')。任擇地,狀態用戶端資料摘要(H
D')係基於所接收之事件資料之雜湊(H
Dn)且任擇地與事件及/或事件串流相關聯之任何後設資料。較佳地,狀態用戶端資料摘要係默克爾樹之默克爾樹根,其包含所接收之事件資料之雜湊(H
Dn)及任何其他後設資料。較佳地,與此事件相關之互動所涉及的任何當事方之簽名儲存在相關聯的狀態用戶端資料摘要默克爾樹中。
其中「Merklize」函數自作為葉之資料元素之有序集合產生默克爾根,並且其中
係基於元素之葉之有序集合。葉中之各者最初在Merklize函數中經雙雜湊。值得注意地,由於雜湊及默克爾樹起作用方式,至其之輸入集合之次序至關重要,因此不論何時創建、重新創建或校驗默克爾樹,輸入之次序皆必須相同,使得針對相同輸入資料產生相同樹(及因此相同狀態摘要)。
作為默克爾樹結構之替代方案,狀態摘要可藉由對原像進行雜湊來產生,其中原像係藉由串接狀態資料所基於之對象而建構。因此,在狀態摘要係基於先前交易參考、狀態用戶端資料摘要及下一交易參考之實例中,公式可具有以下形式:
任擇地,鹽亦可併入至原像。舉例而言,鹽可串接在原像之開端或末端。
作為默克爾樹根之另一替代方案,狀態摘要可藉由使用雜湊鏈來產生。雜湊鏈經建構以使得各中間雜湊結果前置有狀態摘要所基於之項目。舉例而言,在狀態摘要係基於先前交易參考、狀態用戶端資料摘要(H
D')及下一交易參考之情況下,公式可具有以下形式:
任擇地,將鹽併入至雜湊鏈中。任擇地,藉由將鹽前置於各中間原像來併入鹽。
作為默克爾樹結構之替代方案,所有PREV、NEXT及H
D' (或H
D)儲存在區塊鏈上而無需進行雜湊或處理。
先前交易參考 ( PREV )
如上文所論述,狀態摘要較佳地係基於對先前交易之參考。較佳地,對交易集合中之先前交易的參考係基於所參考之該先前交易之狀態資料。更佳地,對先前交易之參考係儲存在區塊鏈上的所參考之該先前交易之狀態資料。先前交易參考任擇地被稱為親代交易參考,並且當前交易係其子代。
下一交易參考 ( NEXT )
如上文所論述,狀態摘要較佳地係基於對下一交易之參考。較佳地,對交易集合中之下一交易的參考係基於至下一交易之輸入。有利地,雖然下一交易之許多成分並不知曉(由於其存在於未來且基於由用戶端提交之資料)且因此該等未知成分不可用作參考,但用於為交易提供資金之一或多個輸入UTXO可預先判定且在其經認可至區塊鏈時將對僅彼交易係唯一的。較佳地,輸入UTXO可由輸出點參考。輸出點包含UTXO所屬之交易之交易id (被稱為TxID)及該參考交易上之輸出之索引(被稱為vout)。下一交易參考任擇地被稱為子代交易參考,並且當前交易係其親代。
參考圖10B,展示交易集合中之三個實例交易1022、1026a、1028a。交易TxIDn 1022包含資金輸入1038及資料酬載1024a,其中資料酬載包含資料摘要(H
Dn)及狀態摘要(Sn) 1030a,並且狀態摘要係基於對先前交易1026a之參考1032a、狀態用戶端資料摘要(H
D') 1036a及對下一交易1028a之參考1034a的樹之默克爾樹根。可看出,狀態用戶端資料摘要(H
D') 1036a係基於資料摘要(HDn)、鹽(SALT)、認可鏈中之第一交易之TxID (TxIDcreate) (此係事件、事件串流及/或交易集合之實例後設資料)及由「…」表示之其他後設資料的默克爾樹之默克爾樹根。
對先前交易之參考1032a係先前交易1026a之狀態摘要(S)。對下一交易之參考1034a係至下一交易1028a之資金輸入的輸出點。
因此,可看出當前交易1022包含狀態摘要(S)。任擇地,交易亦包含事件資料H
Dn之雜湊。因此,可看出,交易及/或包含在交易中之資料係至少基於事件資料、對交易集合中之先前交易的參考及對交易集合中之下一交易的參考。
圖10B之交易TxIDn僅作為實例呈現。熟習此項技術者應瞭解,僅需要一個參考來建立相關聯交易(前向或後向)之集合。熟習此項技術者亦應瞭解,用戶端資料之雜湊任擇地儲存在交易TxIDn之酬載上。
參考圖10C,展示交易如何建構及/或界定成使得其屬於或相關聯於多個交易集合1040的實施例。此處,展示具有包含在(或相關聯於)所有三個交易集合n1、n2、nk中之一個多設定交易1042的三個交易集合n1、n2及nk。三個集合僅係作為實例提供。熟習此項技術者應瞭解,亦可在僅對所呈現之資料結構進行輕微修改的情況下使用不同數目個交易集合。
多設定交易1042經展示為所有三個交易集合n1、n2、nk之部分。多設定交易1042亦可經描述為「基元交易」或「會合交易」。
可看出,會合交易係其部分之每交易集合使用一個輸出1044、1046、1048。舉例而言,若會合交易係三個交易集合之部分,則會合交易包含三個輸出。各交易輸出包含與各別交易集合相關之酬載。
較佳地,會合交易之各輸出1044、1046、1048具有與上文參考如參考圖10A及圖10B描述之非會合交易描述相同的形式,其中輸出包含資料摘要及狀態摘要(S) (狀態摘要係基於對鏈中之先前及下一交易的參考,以及狀態用戶端資料)。
會合交易之各輸出1044、1046、1048亦具有對應資金輸入。任擇地,此資金輸入具有與如參考圖10A及圖10B所描述之非會合交易相同的形式及金額。有利地,藉由使用相同UTXO資金輸入參考方法,非會合交易仍可在下一交易參考中參考會合交易而無需任何其他修改(此係因為會合交易將仍具有資金輸入要參考)。類似地,會合交易仍包含各輸出上之狀態摘要(S),使得參考會合交易之認可鏈中之下一交易仍可使用相同較佳先前交易參考。
因此,如圖中可看出,各會合交易輸出1044、1046、1048係基於經由使用狀態摘要(Sn1-1、Sn2-1、Snk-1)的對其對應先前非會合交易1050、1052、1054之參考。而且,可看出,各會合交易輸出係基於使用下一非會合交易參考(On1+1、On2+1、Onk+1)之資金輸入參考的對其對應下一非會合交易1056、1058、1060之參考。
有利地,藉由使用相同UTXO資金輸入參考方法,非會合交易仍可在下一交易參考中參考會合交易而無需任何其他修改(此係因為會合交易將仍具有資金輸入要參考)。類似地,會合交易仍包含各輸出上之狀態摘要(S),使得參考會合交易之認可鏈中之下一交易仍可使用相同較佳先前交易參考。
參考圖10D,展示建構會合交易之替代方法。此處,使用單個交易輸入及輸出,而非TxIDi所屬之每認可鏈不同輸入及輸出(如圖10C中所展示)。
實情為,TxIDi之資料摘要(HD)係基於跨越所有不同鏈提交之所有用戶端資料D。較佳地,資料摘要係默克爾樹根,其中默克爾樹經產生,各葉節點係基於各鏈之用戶端提交的資料。較佳地,使用各用戶端資料之雜湊。以此方式,儲存在區塊鏈上的資料摘要之大小保持相同,而與交易TxIDi係其部分的認可鏈之數目無關。
類似地,狀態摘要係基於所有先前交易參考以及所有下一交易參考。代替僅包含PREV、HD及NEXT作為至葉節點之原像的默克爾樹,跨越不同認可鏈之所有PREV參考、跨越不同認可鏈之所有HD及跨越所有不同認可鏈之所有NEXT參考係葉節點。此提供類似優點,即TxIDi之單個輸出的大小不會增加,即使其係基於潛在地實質上較大量資料。
替代如先前二個段落中所描述之默克爾樹,跨越不同認可鏈之所有所接收用戶端資料經串接及雜湊以得到最終資料摘要,並且跨越所有不同認可鏈之所有PREV、HD及NEXT經串接及雜湊以得到最終狀態摘要。
為了繼續如圖6A之方法600及圖7中所描述的資產所有權轉移實例,第一交易集合n1與資產相關聯,第二交易集合n2與第一所有者相關聯,並且第三交易集合nk與第二所有者相關聯。此處在此實例中之多設定交易1042與如上文所描述之所有權更新交易712相同。接著可看出資產所有權交易包含基於指示資產之資料、指示第一所有者之資料及指示第二所有者之資料的資料。
關於圖10A至圖10D之此類資料結構及交易佈局的其他細節論述在英國專利申請案第2204293.1號(在2022年3月25日以nChain控股有限公司之名義申請)中。
在默克爾樹根儲存在區塊鏈上之情況下,默克爾樹證明可接著用於證明某些資料用於與默克爾樹根相關聯之默克爾樹之建構中。
較佳地,在接收到校驗請求時,平台處理器(或存取用於建構原始默克爾樹之資料的其他裝置)經組配以提供校驗回應,其中校驗回應包含默克爾樹證明。更佳地,校驗請求包含待校驗之資料之標記,並且校驗回應包含基於待校驗之資料之標記的事件資料及/或與事件相關聯之資料,以及經組配以證明該事件資料及/或與事件相關聯之資料用於與儲存在區塊鏈上之默克爾樹根相關聯的默克爾樹之建構中的默克爾樹證明。替代地,校驗回應包含用於建構默克爾樹之所有資料,並且校驗回應之接收器建構默克爾樹自身以獲得匹配默克爾樹根(僅在其有效之情況下匹配)。值得注意地,由於H
D' (其用於包含根S之默克爾樹之創建中)亦係默克爾樹根,因此默克爾樹證明可經產生,使得可證明默克爾樹之任意資料已為所創建之原始默克爾樹根之部分。舉例而言,第三當事方可能希望存取與事件相關聯之後設資料,但不存取事件資料自身。默克爾樹證明可經建構以使得僅顯露所請求後設資料,並且不顯露用於建構默克爾樹之任何其他特徵。
有利地,具有選擇性地揭露默克爾樹之部分的能力尤其使得資產之賣方能夠允許買方詢問他們想要購買的一或多個資產之某些特徵,在無需向買方揭露機密資訊。資產之所有者(或與資產相關聯之事件串流的控制器)可藉由選擇包含在默克爾樹證明中之內容來組配待揭露之資訊量。
用於在區塊鏈中實施此類選擇性揭露內容之實例機制闡明在2022年5月6日由nChain控股有限公司申請之英國專利申請案第2206682.3號中。
藉由僅儲存基於事件資料及/或至少一個參考(及較佳地二個參考)之默克爾樹根,可看到數個優點。特定而言,默克爾樹根可充當事件資料之存在證明,而不必在區塊鏈自身上儲存事件資料,由此節省區塊鏈上之空間。此外,使用具有已知大小之默克爾樹根使得總體交易之大小能夠被知曉且恆定,由此使儲存在區塊鏈上之交易之資金得以簡化。此外,藉由僅將默克爾樹根儲存在區塊鏈上,惡意第三當事方在無進一步資訊(諸如默克爾樹證明)之情況下無法檢驗交易集合。在鏈上,默克爾樹根看起來類似於任何其他雜湊資料片段,並且因此交易添加至交易集合之速率以及其他特徵被隱藏,由此增加所儲存之資料之安全性。
任擇地,一起使用參考圖8及圖9之實例的交易集合及參考圖10A至圖10C之實例的交易集合二者。在此實施例中,可經由使用使用關係來建構一些參考,並且可經由使用包含指示先前及/或下一交易之資料的默克爾樹來建構其他參考。舉例而言,交易之資產集合係經由使用使用關係鏈維持,並且其他使用者之互動及各類資料係經由默克爾樹資料結構維持。此特定實例可為有利的,此係因為與資產之互動之數目係公開可存取的,然而,彼等互動係什麼(無論其係使用、所有權轉移抑或其他)被隱藏。
較佳地,如參考圖6A至圖6C所描述之實施例中的所產生604、614、624及所提交606、616、626之交易具有如參考圖9及/或圖10C及圖10D所描述的上文所描述之「會合交易」形式。
在區塊鏈並非基於UTXO之系統(可為基於帳戶之系統,諸如與以太坊一起使用之系統)的情況下,亦可使用在基元上/同步地相關聯交易之替代方式。舉例而言,可在以太坊區塊鏈上建立具有自與資產及任何其他用戶端(諸如所有者或使用者)相關聯的電子錢包進行使用之權限的智慧型合約,使得當一或多個用戶端與資產互動時,交易經創建,使得其自與資產相關聯之第一位址至與資產相關聯之第二位址進行使用,並且任何用戶端與資產之互動係類似的。在可能的情況下,產生使用資產及在單個交易中進行使用的用戶端之資產的單個交易,或亦可使用另一基元機制。
任擇地,確定性地判定此等電子錢包位址。任擇地,電子錢包係根據BIP-32或BIP-44或其他適當階層式確定性方法產生。
在確定性地產生電子錢包之位址的情況下,與例如資產相關聯之交易集合可藉由判定可能電子錢包位址之清單,且接著針對發送至經判定可能電子錢包位址中之任一者或自經判定可能電子錢包位址中之任一者發送的任何交易掃描區塊鏈來判定。此階層式確定性電子錢包配置亦可與UTXO模型一起使用。有利地,此配置可進一步向用戶端之相關聯交易集合引入隱私,此係因為更難以判定發送實體與接收實體相同,此係因為公用金鑰及簽名對於不同金鑰係不同的。
事件串流
在本發明實施例中,與不同所有者、使用者、資產或其他相關聯之交易集合用於表示事件串流。事件串流ES較佳地特定於智慧型合約SC,並且表示智慧型合約SC之狀態(因此,資產、所有者及使用者中之各者皆藉由智慧型合約追蹤)。用於實施區塊鏈中之事件串流之實例機制闡明在由nChain控股有限公司在2020年2月19日申請之英國專利申請案第2002285.1號中。事件串流提供有序地執行的事件之確切序列之日誌且實施在區塊鏈上。關於智慧型合約SC之事件串流ES可直接自區塊鏈獲得,或此可自複製區塊鏈上之事件串流的鏈外日誌或資料庫獲得。舉例而言,平台處理器(或其他裝置)可與快照例項資料庫相關聯,該快照例項資料庫經組配以提供或指示智慧型合約SC之目前狀態,如在任何給定時間記錄在區塊鏈中之各別事件串流ES中。每智慧型合約將僅存在與多個用戶端當中的給定用戶端相關聯之一個事件串流。在一些實施例中,多個用戶端當中的各用戶端可與可用於識別與各別用戶端相關聯之特定智慧型合約SC的帳戶或識別符相關聯。
在一些實施例中,可存在與多個事件串流相關聯之一個智慧型合約。任擇地,一個智慧型合約更新多個不同事件串流,其中各事件串流仍表示不同資產、使用者、所有者或用戶端。
如上文所提及,在一些實施例中,事件串流與狀態機相關,並且表示實施為區塊鏈中之有限狀態機的機器可讀合約或智慧型合約。有限狀態機(FSM)係熟知之運算數學模型。其係在任何給定時間可恰好處於有限數目個狀態中之一者的抽象機。 FSM可回應於一些外部輸入自一個狀態改變至另一狀態,自一個狀態至另一狀態之改變被稱為轉變。 FSM可由其狀態、其初始狀態及各轉變之條件的清單界定。在比特幣SV區塊鏈中,UTXO集合可被視為狀態機,其中給定輸出之已使用狀態隨至交易(機器)之先前輸入而變。因此,藉由重新執行所有交易,可使用區塊鏈來確定性地建立任何輸出之當前使用狀態及UTXO集合之當前內容。因此,在一些實施例中,請求可被視為更改智慧型合約之當前狀態的請求,在區塊鏈中實施為事件串流ES。
本文中已描述用於建立事件串流ES (或大體上僅為交易集合)之不可變依序日誌或記錄直至其在區塊鏈上之當前狀態的技術。在一些實施例中,如上文所提及,(除儲存在區塊鏈上之外)亦可鏈外地提供或儲存日誌。事件串流可表示應用於使用FSM、DFA等實施之智慧型合約的依序輸入。
有利地,如由本揭露內容之方法實施的與區塊鏈相關聯之事件串流及其交易集合的實施方式提供了與事件之不可變性及事件定序之不可變性相關的保證。一旦經寫入,按以下方式中之任一者篡改事件串流之任何嘗試都將被阻止或變得顯而易見: ● 改變事件之內容 ● 重排序事件 ● 在串流之開始或中間處插入事件 ● 自串流中之任何位置移除事件
換言之,本文中所描述之方法可證明與事件串流相關之以下屬性: ● 事件串流中之個別條目自經寫入以來尚未經修改 ● 尚未在先前連續條目之間插入條目 ● 尚未移除條目 ● 尚未重排序條目
此等性質及優點具有自審計/遵從性日誌至狀態機複製,再至用於針對所有用戶端自區塊鏈讀取資料及將資料寫入至區塊鏈中的更高效、防篡改且準確方法的許多實務應用。
實例使用案例
本文中所描述之方法及系統之實例用途係追蹤按使用付費的不可替代商品、產品或服務之所有權及使用。對於特定實例,資產係按收聽付費的音樂串流傳輸模型之上下文中的音樂播放軌或歌曲。此實例之音樂播放軌等效於本文中所描述之態樣的資產。
在本發明實例中,當使用者收聽歌曲時,將資產互動請求提供至平台處理器。平台處理器接著進行如圖6B中所描述之方法610且將表示此收聽事件之交易提交至區塊鏈。交易任擇地包含歌曲被收聽之次數,或交易任擇地包含基於歌曲被收聽之次數的資料。較佳地,交易屬於與音樂播放軌相關聯之交易集合及與收聽者相關聯之交易集合。此交易之效果係表示此特定收聽者已收聽此特定歌曲-並且此資訊存在於與歌曲及使用者相關聯之二個交易集合中。
類似地,可使用如參考圖6A所描述之方法600改變音樂播放軌之所有權。在此情況下,產生相關聯於與資產、第一所有者及第二所有者相關聯之交易集合的交易且將交易提交至區塊鏈。
較佳地,與音樂播放軌相關聯之交易集合包含一交易,該交易包含能夠唯一地識別該歌曲之資料(或係基於資料)。較佳地,識別該歌曲之資料係數位指紋。
有利地,用於此實例中的本文中所描述之方法及系統使得音樂播放軌之權利的潛在購買者可能夠校驗自使用區塊鏈追蹤歌曲以來的收入歷史。此使得潛在購買者能夠公平地評估音樂播放軌之價值。
有利地,收聽者/使用者可校驗其完整收聽資訊及歷史,使得其可校驗其計費歷史。
有利地,歌曲所有者可確定歌曲產生之收入。
上文所提供之優點同樣適用於任何其他按使用付費的不可替代商品、產品或服務。
平台服務
根據一態樣,與資產互動追蹤及/或交易集合相關之前述態樣中之任一或多者可與如此處所描述之平台處理器一起使用。較佳地,平台處理器經組配以接收資產互動資訊並提供由API 1508提供的資料服務1502、運算服務1504及/或商務服務1506存取。特定而言,資料服務1502態樣經提供以用於儲存事件資料。本發明態樣可為平台即服務(PaaS)及軟體即服務(SaaS),其有利地使得能夠使用諸如BSV區塊鏈之區塊鏈網路來快速遞送有用的真實世界業務及技術應用,諸如經軟體控制的技術系統或智慧型合約之管理。
平台服務之概述可見於圖11中,其展示系統之高層級示意圖。平台服務具有提供API 1508之平台處理器1500,可由一或多個用戶端經由該API存取服務。
如此圖11中所展示之平台服務1500由三個服務系列構成,並且旨在允許使用者及組織容易且安全地利用由區塊鏈之獨特性質提供的優點,而實際上無需在用戶端末端處實施任何基於區塊鏈之軟體、知識或庫。此等服務係: ● 資料服務1502,其旨在簡化鏈作為商品資料分類帳之使用。資料服務較佳地使用本文中所提供之資料結構及方法以用於實施將資料寫入至區塊鏈及自區塊鏈讀取資料。 ● 運算服務1504,其旨在提供由諸如比特幣SV之數位資產所支援的通用運算框架。 ● 商務服務1506,其提供用於使用諸如比特幣SV之數位資產進行交易的企業級能力。
可經由或使用HTTPS協定在API處自用戶端接收請求,此係因為API被實施為網路服務。接著由一或多個服務模組或處理資源1502-1506使用基礎軟體1510實施所請求服務,此類基礎軟體1510係與區塊鏈相關聯,亦即以實施資源、庫及/或金鑰管理電子錢包實施方式以用於創建、處理及提交與區塊鏈相關聯之交易。一旦經處理,可將交易提交至區塊鏈網路1512 (而非實施任何此類功能性或交易庫之用戶端)。至多,用戶端可或能夠實施與密碼貨幣或某一其他數位資產相關聯之數位電子錢包或其類似者,但此並非必需的,此係因為平台服務1500亦可能夠提供及管理用於用戶端之數位資產。
圖12提供與區塊鏈相關聯之多個服務的較細化示意圖,並且該等服務可由與API相關聯之平台1600實施,經由該API可存取所提供服務中之任一或多者。如此圖12中所見,資料服務1602可包括資料寫入器1602a及資料讀取器服務1602b。資料寫入器服務1602a使得用戶端能夠以簡單、安全且最佳化方式將資料寫入至區塊鏈中。資料讀取器服務1602b使得用戶端能夠發送查詢,該查詢返回儲存在區塊鏈中之資料。此可使用經濾波串流,其中用戶端可預界定其希望臨時或定期地(亦即,在某一時間框內)自區塊鏈讀取的資料類型,或與區塊鏈1610中處理的相關或不相關事件或文件之集合相關聯的彼等資料類型。資料封存特徵允許存取指定事件或合約之先前交易之日誌。
平台1600之運算服務1606包括與智慧型合約相關聯之應用程式1606a及框架1606b,其在一些實施例中可表示為區塊鏈1610中之狀態機。運算服務1606與資料服務1602互動,此係因為資料將需要被輸入且結果需要被提供至用戶端以用於任何此類運算。
商務服務1604負責經由企業電子錢包1604a提供企業級能力,以用於基於一流的安全實踐及技術在區塊鏈1610上進行交易。舉例而言,在一些實施例中,企業電子錢包可實施在多於一個人員、使用者或帳戶可能需要在符合所界定準則,亦即與高於某一預界定限值之較大密碼貨幣值相關聯之交易上簽出時能夠進行區塊鏈交易處理的功能性。企業電子錢包亦可包括實施臨限數目及/或類型之簽名以移動大量數位資產,諸如密碼貨幣或表示另一資源之符記的功能性。可接著基於由此企業電子錢包實施方式應用之準則在處理之後在區塊鏈上表示此等資產之移動。
SPV服務1608 (簡化之支付校驗)係需要來自區塊鏈之資訊但並不包括至區塊鏈之直接鏈路的應用程式,此係因為該等服務並不運行挖掘器節點。此類SPV服務1608允許輕型用戶端校驗交易是否包括在區塊鏈中,而無需下載整個區塊鏈1610。
平台裝置
現在轉向圖13,提供運算裝置2600之例示性簡化方塊圖,該運算裝置可用於實踐本揭露內容之至少一個實施例。在各種實施例中,運算裝置2600可用於實施上文所例示及描述之系統或方法中之任一者。舉例而言,運算裝置2600可經組配以用作圖5之先前所描述系統500中的一或多個組件。運算裝置2600可經組配為與給定使用者相關聯之用戶端實體;該用戶端實體向平台處理器作出資料庫請求及/或提交。運算裝置2600可經組配為經委派使用者。在接收到其經委派授權符記時,經委派使用者可向平台處理器作出資料請求及/或提交。因此,運算裝置2600可為攜帶型運算裝置、個人電腦,或任何電子運算裝置。如圖12中所展示,運算裝置2600可包括具有快取記憶體之一或多個層級的一或多個處理器以及可經組配以與包括主記憶體2608及持久性儲存裝置2610之儲存子系統2606通訊的記憶體控制器(共同地標記為2602)。主記憶體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之埠傳輸的電氣信號以供處理。歸因於電腦及網路不斷改變之性質,出於例示裝置之較佳實施例之目的,圖13中所描繪之運算裝置2600之描述僅意欲作為特定實例。具有比圖13中所描繪之系統多或少之組件的許多其他組配係可能的。
上文所描述之各種方法可由電腦程式實施。電腦程式可包括電腦程式碼,其經配置以指示電腦執行上文所描述之各種方法中之一或多者的功能。電腦程式及/或用於執行此等方法之程式碼可在一或多個電腦可讀媒體上,或更一般而言,在電腦程式產品上經提供至諸如電腦之設備。電腦可讀媒體可為暫時性或非暫時性的。舉例而言,一或多個電腦可讀媒體可為電子、磁性、光學、電磁、紅外線或半導體系統,或用於資料傳輸,例如用於經由網際網路下載程式碼之傳播媒體。替代地,一或多個電腦可讀媒體可能呈一或多個實體電腦可讀媒體之形式,諸如半導體或固態記憶體、磁帶、抽取式電腦磁片、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、剛性磁碟,以及光碟,諸如CD-ROM、CD-R/W或DVD。
在一實施方式中,本文描述之模組、組件及其他特徵可被實施為離散組件,或整合在諸如ASICS、FPGA、DSP或類似裝置的硬體組件之功能性中。
「硬體組件」或「硬體模組」係有形(例如,非暫時性)實體組件(例如,一或多個處理器之集合),其能夠執行某些操作且可以某一實體方式經組配或配置。硬體組件可包括永久地經組配以執行某些操作之專用電路系統或邏輯。硬體組件可為或包括專用處理器,諸如場可規劃閘陣列(FPGA)或ASIC。硬體組件亦可包括由軟體暫時地組配以執行某些操作之可規劃邏輯或電路系統。
因此,應將片語「硬體組件」或「硬體模組」理解為涵蓋有形實體,其可經實體建構、永久組配(例如,固線式)或暫時組配(例如,經規劃)來以某一方式操作或執行本文中所描述之某些操作。
另外,模組及組件可被實施為硬體裝置內之韌體或功能性電路系統。此外,模組及組件可實施於硬體裝置及軟體組件之任何組合中,或僅實施於軟體中(例如,儲存或者實施於機器可讀媒體中或傳輸媒體中之程式碼)。
除非另外具體地陳述,否則,如自以下論述顯而易見,應瞭解,貫穿描述,利用諸如「判定」、「提供」、「計算」、「運算」、「識別」、「組合」、「發送」、「接收」、「儲存」、「估計」、「檢查」、「產生」、「獲得」或其類似者之術語的論述係指電腦系統或類似電子運算裝置之動作及程序,該電腦系統或類似電子運算裝置將電腦系統之暫存器及記憶體內之表示為實體(電子)量之資料操縱且變換成電腦系統記憶體或暫存器或其他此類資訊儲存、傳輸或顯示裝置內之類似地表示為實體量之其他資料。
如本說明書及申請專利範圍中所使用之術語「包含」意謂「至少部分地由……組成」。當解譯本說明書及申請專利範圍中之包括術語「包含」的各語句時,亦可存在除前面有該術語之彼或彼等特徵以外的特徵。諸如「包含(comprise)」及「包含(comprises)」之相關術語將以相同方式解釋。
如本文中所使用,術語「及/或」意謂「及」或「或」或二者。
如本文中所使用,名詞之後的「(多個) (s)」意謂該名詞之複數及/或單數形式。
元件之單數參考並不排除此類元件之複數參考,且反之亦然。
應理解,上文描述意欲為例示性且非限定性的。熟習此項技術者在閱讀及理解上文描述後將顯而易見許多其他實施方式。儘管本揭露內容已參考特定實例實施方式進行描述,但應認識到,本揭露內容不限於所描述之實施方式但可在具有在隨附申請專利範圍之範疇內之修改及更改的情況下實踐。因此,應在例示性意義上而非限制性意義上看待本說明書及圖式。因此,應參考所附申請專利範圍連同申請專利範圍所具有的等效物之全部範疇來判定本揭露內容的範疇。
101:封包交換式網路/網路 102a:電腦裝備/愛麗絲之裝置/愛麗絲之裝備 102b:電腦裝備/鮑勃之裝置/鮑勃之裝備 103a:使用者/原始使用者或實體/第一當事方/愛麗絲 103b:新使用者或實體/第二當事方/鮑勃 104:區塊鏈節點/節點/第一區塊鏈節點/第一節點/比特幣節點 105:用戶端應用程式/用戶端 105a:用戶端應用程式 105b:用戶端 106:同級間網路/網路/區塊鏈網路/比特幣網路 150:區塊鏈/鏈/比特幣區塊鏈 151n-1:先前創建之區塊 151n:新區塊/下一新區塊/區塊 152:交易/原始交易/新的經驗證交易/經驗證交易/新交易/給定交易 152i:前述交易/交易/先前交易 152j:目前交易/交易/新交易/向前交易/新接收之交易/愛麗絲之交易/愛麗絲之新交易 153:起源區塊 154:有序集合/當前集合/池 155:區塊指標 201:標頭 202:輸入/輸入欄位 203:輸出/輸出欄位/未使用輸出/未使用交易輸出 301:旁側通道 351:交易引擎 352:使用者介面層 353:功能 360:使用者介面 362:使用者介面元件/使用者可選擇元件/資料鍵入欄位 363:使用者介面元件/資訊元件 450:節點軟體 451:協定引擎 452:指令碼引擎 453:堆疊 454:應用程式層級決策引擎/決策引擎 455:一或多個區塊鏈相關功能模組之集合 455C:共識模組 455P:傳播模組 455S:儲存模組 500:系統 502:資產所有者/第一所有者/所有者 504,1500:平台處理器/平台服務 506:資產使用者/使用者 510,512,514:通訊/互動 516:資產 600:方法/所有權轉移方法/更新所有權方法 602,622:接收 604,614,624:產生 606,616,626:提交 610:方法/資產使用者事件方法 612:接收/資產事件請求 620:方法 628:獲得 702:交易/創建交易/第一交易/第一所有權更新交易 704,706,708,710,714,716,718,720:資產使用者事件交易 712:第二所有權更新交易/交易/所有權更新交易 722:交易/資產使用者事件交易 740:交易集合/資產集合/資產 742:交易集合/第一所有者集合/第一所有者 744,746:交易集合 748:交易集合/第二所有者 800a,800b:交易/事件交易 802a,802b:輸入 804a,804b:輸出 806a,806b:酬載 808a,808b:資金輸入 810a,810b:零錢輸出 902:多設定交易 1000:資料結構 1002:資料/PREV 1004:資料/H
D' 1006:資料/NEXT 1008:根 1010:雜湊二次 1022:交易/交易TxIDn/當前交易 1024a:資料酬載 1026a:交易/先前交易 1028a:交易/下一交易 1030a:狀態摘要 1032a,1034a:參考 1036a:狀態用戶端資料摘要 1038:資金輸入 1040:交易集合 1042:多設定交易 1044,1046,1048:輸出/會合交易輸出 1050,1052,1054:先前非會合交易 1056,1058,1060:下一非會合交易 1502:資料服務/服務模組/處理資源 1504:運算服務/服務模組/處理資源 1506:商務服務/服務模組/處理資源 1508:應用程式設計介面 1510:基礎軟體 1512:區塊鏈網路 1600:平台 1602:資料服務 1602a:資料寫入器/資料寫入器服務 1602b:資料讀取器服務 1604:商務服務 1604a:企業電子錢包 1606:運算服務 1606a:應用程式 1606b:框架 1608:SPV服務 1610:區塊鏈 2600:運算裝置 2602:快取記憶體/處理器 2604:匯流排子系統 2606:儲存子系統 2608:主記憶體 2610:持久性儲存裝置 2612:使用者介面輸入裝置 2614:使用者介面輸出裝置 2616:網路介面子系統 2618:動態隨機存取記憶體 2620:唯讀記憶體 A,B,C:塵埃鏈 L:第一交易集合 M:第二交易集合 N:第三交易集合 S:根 Tx
0:前述交易 Tx
1:新交易 TxID
0:交易ID
圖1描繪用於實施區塊鏈之實例系統。 圖2例示實例交易協定。 圖3A及圖3B例示用戶端應用程式及其使用者介面之實例實施方式。 圖4例示在網路之各區塊鏈節點上運行的節點軟體之實例。 圖5係例示平台處理器、區塊鏈網路及用戶端之間的互動之示意圖。 圖6A至圖6C例示用於記錄事件及與資產之互動的實例方法。 圖7例示展示實例交易集合及包含在其中之交易的示意圖。 圖8例示實例交易格式。 圖9例示用於與多個交易集合相關聯之交易的實例交易格式。 圖10A至圖10D例示實例資料格式及與該實例資料格式相關聯之交易格式。 圖11係根據一態樣的描繪用於與區塊鏈相關聯之多個服務之平台的概述之示意圖。 圖12係根據一態樣的描繪與區塊鏈相關聯之多個服務之平台的組件之示意圖。 圖13係例示其中可實施本揭露內容之各種態樣及實施例的運算環境之示意圖。
101:封包交換式網路/網路
500:系統
502:資產所有者/第一所有者/所有者
504:平台處理器/平台服務
506:資產使用者/使用者
510,512,514:通訊/互動
516:資產
Claims (44)
- 一種用於在一區塊鏈上追蹤與一資產互動之至少二個用戶端的電腦實施方法,其中該區塊鏈包含與該資產相關聯之一交易集合、與該等至少二個用戶端中之一第一用戶端相關聯的一第一交易集合,以及與該等至少二個用戶端中之一第二用戶端相關聯的一第二交易集合,該方法包含以下步驟: 接收一資產互動事件請求,該資產互動事件請求包含指示與一資產互動事件相關聯之至少二個用戶端的資料及指示該資產之資料, 基於以下各者而產生一事件交易: 對與該資產相關聯之該交易集合的至少一個參考; 對與該第一用戶端相關聯之該交易集合的至少一個參考;以及 對與該第二用戶端相關聯之該交易集合的至少一個參考,以及 將該事件交易提交至該區塊鏈。
- 如請求項1之方法,其中對與該資產相關聯之該交易集合的該至少一個參考中之一第一參考包含相關聯於與該資產相關聯之該交易集合的一資產交易輸出點。
- 如請求項2之方法,其中該資產交易輸出點指向與該資產相關聯之該交易集合中之一下一交易。
- 如前述請求項中任一項之方法,其中對與該資產相關聯之該交易集合的該至少一個參考中之一第二參考包含儲存在與該資產相關聯之該交易集合中之最新交易上的資料。
- 如請求項4之方法,其中對與該資產相關聯之該交易集合的該至少一個參考中之該第二參考係與該資產相關聯之該交易集合中之該最新交易的經儲存之資料酬載之部分。
- 如前述請求項中任一項之方法,其中對與該第一用戶端及該第二用戶端相關聯之該等交易集合的該至少一個參考中之一第一者中之各者包含相關聯於與第一用戶端及該第二用戶端相關聯之該交易集合中之各者的一交易輸出點。
- 如請求項6之方法,其中各交易輸出點指向與該等用戶端相關聯之各個各別交易集合中之一下一交易。
- 如前述請求項中任一或多項之方法,其中與該資產相關聯之該交易集合係關於與該資產相關聯之一事件串流,並且與該等至少二個用戶端當中之一給定用戶端相關聯的各交易集合係關於與該給定用戶端相關聯之一事件串流。
- 如請求項8之方法,其中各事件串流表示一各別智慧型合約,使得該事件串流追蹤與該智慧型合約相關聯之一事件序列。
- 如前述請求項中任一項之方法,其中該事件交易包含基於該資產互動事件之資料。
- 如請求項10之方法,其中指示該資產互動事件之該資料儲存在該事件交易之一不可使用輸出上。
- 如前述請求項中任一項之方法,其中該資產係一歌曲及/或該資產互動事件係在該等至少二個用戶端之間交換該資產之所有權。
- 如前述請求項中任一項之方法,其進一步包含以下步驟: 獲得對與該資產相關聯之該交易集合的一參考,以及 獲得對相關聯於與該資產互動事件相關聯之該等用戶端的各交易集合的參考。
- 如前述請求項中任一項之方法,其中該事件交易包含用於該事件交易所屬之各交易集合的一酬載。
- 如請求項14之方法,其中該事件交易包含相關聯於與該資產相關聯之該交易集合的一第一酬載、相關聯於與該第一用戶端相關聯之該交易集合的一第二酬載,以及相關聯於與該第二用戶端相關聯之該交易集合的一第三酬載。
- 如請求項15之方法,其中該第一酬載係基於對與該資產相關聯之該交易集合的該至少一個參考,該第二酬載係基於對與該第一用戶端相關聯之該交易集合的該至少一個參考,並且該第三酬載係基於對與該第二用戶端相關聯之該交易集合的該至少一個參考。
- 如請求項15或請求項16之方法,其中該第一酬載、該第二酬載及該第三酬載係默克爾樹根,並且該方法進一步包含以下步驟:產生各默克爾樹以及基於各所產生默克爾樹而計算各默克爾樹根。
- 如請求項15至17中任一項之方法,其中該等酬載各自儲存在該事件交易之輸出上。
- 如前述請求項中任一項之方法,其進一步包含以下步驟: 基於指示與該資產互動事件相關聯之至少二個用戶端的資料及指示該資產之資料而產生一資料酬載。
- 如任何請求項19之方法,其中該資料酬載係一默克爾樹根。
- 如請求項20之方法,其中產生該資料酬載之步驟包含產生一默克爾樹,該默克爾樹包含指示與該資產互動事件相關聯之至少二個用戶端的資料及指示該資產之資料。
- 如請求項21之方法,其中該資料酬載儲存在該事件交易之一輸出上。
- 如前述請求項中任一項之方法,其進一步包含以下步驟: 接收創建與該資產相關聯之一交易集合的一創建請求,以及 產生一第一所有權交易並將其提交至該區塊鏈,該第一所有權交易相關聯於與該資產相關聯的該交易集合且相關聯於與該等至少二個用戶端中之一第一用戶端相關聯的一交易集合。
- 如請求項23之方法,其中該第一所有權交易包含唯一地識別該資產之一數位指紋。
- 如前述請求項中任一項之方法,其中該資產互動事件係一所有權更新請求,該所有權更新請求包含指示該資產之所有權自該等至少二個用戶端中之該第一者轉移至該等至少二個用戶端中之該第二者的資訊。
- 如請求項25之方法,其中該事件交易包含基於該第一用戶端將所有權轉移至該第二用戶端之資料。
- 如請求項26之方法,其中基於該所有權轉移之該資料儲存在更新交易之一不可使用輸出上。
- 如請求項26之方法,其中該事件交易包含基於該第一用戶端使用該資產之資料。
- 一種裝置,其經組配以執行如前述請求項中任一或多項之方法。
- 一種系統,其包含: 如請求項29之裝置的一伺服器,以及 一第一用戶端裝置及一第二用戶端裝置,該第一用戶端裝置及該第二用戶端裝置經組配以協調資產互動事件請求至該伺服器之傳輸。
- 一種用於在一區塊鏈上追蹤一資產之所有權及使用的電腦實施方法,其包含以下步驟: 接收一創建請求以在該區塊鏈上使一資產與一第一所有者相關聯, 接收包含指示一使用者使用該資產之資料的至少一個使用訊息,並且在接收到各使用訊息時: 將一使用交易提交至該區塊鏈,該使用交易包含基於所使用之該資產及使用該資產之一使用者的資料; 接收包含指示一第二所有者之資訊的一所有權更新請求,並且在接收到該所有權更新請求時: 將一更新交易提交至該區塊鏈,該更新交易包含基於該資產、該第一所有者及該第二所有者之資訊。
- 如請求項31之方法,其中該區塊鏈包含以下各者中之任一或多者:與該資產相關聯之一交易集合、與該使用者相關聯之一交易集合、與該第一所有者相關聯之一交易集合,以及與該第二所有者相關聯之一交易集合。
- 如請求項32之方法,其中與該資產相關聯之該交易集合係相關聯於與該資產相關聯之一智慧型合約,與該第一所有者相關聯之該交易集合係相關聯於與該第一所有者相關聯之一智慧型合約,與該第二使用者相關聯之該交易集合係相關聯於與該第二使用者相關聯之一智慧型合約,並且與該使用者相關聯之該交易集合係相關聯於與該使用者相關聯之一智慧型合約。
- 如請求項32之方法,其中與該資產相關聯之該交易集合係關於與該資產相關聯之一事件串流,與該使用者相關聯之該交易集合係關於與該使用者相關聯之一事件串流,與該第一所有者相關聯之該交易集合係關於與該第一所有者相關聯之一事件串流,並且與該第二所有者相關聯之該交易集合係關於與該第二所有者相關聯之一事件串流。
- 如請求項34之方法,其中各事件串流表示一智慧型合約,使得該事件串流追蹤與一智慧型合約相關聯之一事件序列。
- 如請求項32至35中任一或多項之方法,其中該使用交易包含:一第一資料酬載,其包含基於對與該資產相關聯之該交易集合之至少一個參考的資料;以及一第二資料酬載,其包含基於對與該使用者相關聯之該交易集合之至少一個參考的資料。
- 如請求項32至36中任一項之方法,其中與該資產相關聯之該交易集合包含、指示、係基於該資產之所有權歷史。
- 如請求項32至37中任一項之方法,其中該更新交易包含:一第三資料酬載,其包含基於對來自與該資產相關聯之該交易集合之一交易的一第三參考之資料;一第四資料酬載,其包含基於對來自與該第一所有者相關聯之該交易集合之一交易的一第四參考之資料;以及一第五資料酬載,其包含基於對來自與該第二所有者相關聯之該交易集合之一交易的一第五參考之資料。
- 如請求項38之方法,其中在確認至該區塊鏈之該更新交易時,該資產之所有權被視為自該第一所有者轉移至該第二所有者。
- 如請求項32至39中任一或多項之方法,其進一步包含以下步驟: 自一請求器接收包含對該資產之一參考的一歷史請求,並且回應於接收到該歷史請求: 將該資產之使用之一歷史提供至該請求器,其中該資產之該等使用之該歷史包含來自與該資產相關聯之該交易集合的資訊及/或係使用來自與該資產相關聯之該交易集合的資訊來校驗。
- 如請求項31至40中任一或多項之方法,其中該使用訊息包含基於一使用者對該資產之使用的資料,並且該使用交易包含指示該資產之使用的資料。
- 如前述請求項中任一項之方法,其中該資產係一歌曲,並且指示使用之該資料包含一使用者已收聽該歌曲之次數及/或時長。
- 一種裝置,其經組配以執行如請求項31至41中任一或多項之方法。
- 一種系統,其包含: 如請求項43之裝置的一伺服器,以及 一第一所有權裝置及一第二所有權裝置,該第一所有權裝置及該第二所有權裝置經組配以協調一更新訊息至該伺服器之傳輸。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB2112503.4A GB202112503D0 (en) | 2021-09-02 | 2021-09-02 | A computer implemented method and system |
GB2112503.4 | 2021-09-02 | ||
GB2204293.1 | 2022-03-25 | ||
GBGB2204293.1A GB202204293D0 (en) | 2022-03-25 | 2022-03-25 | A computer implemented method and system |
GB202206682 | 2022-05-06 | ||
GB2206682.3 | 2022-05-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202312057A true TW202312057A (zh) | 2023-03-16 |
Family
ID=83362421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111133443A TW202312057A (zh) | 2021-09-02 | 2022-09-02 | 電腦實施方法及系統 |
Country Status (2)
Country | Link |
---|---|
TW (1) | TW202312057A (zh) |
WO (1) | WO2023031368A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2948230C (en) * | 2016-11-10 | 2022-05-31 | The Toronto-Dominion Bank | Systems and method for tracking subdivided ownership of connected devices using block-chain ledgers |
US10373159B2 (en) * | 2016-12-07 | 2019-08-06 | International Business Machines Corporation | Concomitance of an asset and identity block of a blockchain |
-
2022
- 2022-09-01 WO PCT/EP2022/074396 patent/WO2023031368A1/en unknown
- 2022-09-02 TW TW111133443A patent/TW202312057A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023031368A1 (en) | 2023-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202220410A (zh) | 默克爾證明實體 | |
WO2022058134A1 (en) | Commensal token system | |
JP2023524855A (ja) | ブロックチェーンを介したデータの効率的かつセキュアな処理、アクセス、および送信のためのコンピュータで実施されるシステムおよび方法 | |
US20230325825A1 (en) | Methods and systems for synchronised and atomic tracking | |
EP4381410A1 (en) | A computer implemented method and system | |
TW202312057A (zh) | 電腦實施方法及系統 | |
US20240020681A1 (en) | Digital tokens using blockchain | |
EP4208833A1 (en) | Methods and systems for synchronised and atomic tracking | |
US20230084490A1 (en) | Methods, data structures, and systems for ordered data logging | |
CN118235154A (zh) | 一种计算机实现的方法和系统 | |
GB2608840A (en) | Message exchange system | |
WO2022258400A1 (en) | A computer implemented method and system of maintaining a status of a stream on a blockchain | |
EP4352641A1 (en) | A computer implemented method and system | |
WO2023180486A1 (en) | Ordered, append-only data storage | |
TW202329668A (zh) | 證明及驗證有序事件序列之技術 | |
WO2024061546A1 (en) | Enforcing constraints on blockchain transactions | |
TW202334847A (zh) | 用於安全且有效之資料儲存之電腦實現方法及系統 | |
CN117693926A (zh) | 区块链区块和存在证明 | |
CN117337436A (zh) | 多方区块链地址方案 |