TW202040457A - 在區塊鏈網路上實施轉移之電腦實施系統及方法 - Google Patents
在區塊鏈網路上實施轉移之電腦實施系統及方法 Download PDFInfo
- Publication number
- TW202040457A TW202040457A TW109104082A TW109104082A TW202040457A TW 202040457 A TW202040457 A TW 202040457A TW 109104082 A TW109104082 A TW 109104082A TW 109104082 A TW109104082 A TW 109104082A TW 202040457 A TW202040457 A TW 202040457A
- Authority
- TW
- Taiwan
- Prior art keywords
- transaction
- resource
- merkle
- blockchain
- bob
- 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/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/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/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
- G06Q20/0658—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
-
- 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/22—Payment schemes or models
- G06Q20/223—Payment schemes or models based on the use of peer-to-peer networks
-
- 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
- G06Q20/3678—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 e-cash details, e.g. blinded, divisible or detecting double spending
-
- 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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- 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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for 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/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- 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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key 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/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
-
- 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/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- 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/3218—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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- 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
-
- 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/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- 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
-
- 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
Abstract
本發明提供用於區塊鏈實施轉移之改良型驗證解決方案。其適合、但不限於一SPV錢包中之實作態樣。根據一項實施例,提供一種方法、系統或資源,其致使Bob能夠向Alice發送一付款交易範本(templateTx
3)並請求:用於所有輸入交易(Tx
1、Tx
2)之完全交易資料,其包含至少一個輸出,Alice想動用該輸出作為一轉移(Tx
3)之輸入;用於所有輸入交易(Tx
1、Tx
2)之Merkle路徑,Merkle路徑將該等輸入交易連結至與其相應區塊標頭相關聯之其相應Merkle根;已完成轉移交易(Tx
3)。Alice提供此資訊加上她的簽章,以及任選地提供一變更位址。Bob可接著使用交易Tx
1與Tx
2、其對應Merkle路徑Path
1、Path
2、以及Bob之局部區塊標頭清單,對輸入交易Tx
1、Tx
2進行局部SPV檢查。Bob向P2P網路廣播轉移交易(Tx
3)。
Description
本發明大致係有關於經由網路之資源傳遞及轉移,並且更特別有關於透過區塊鏈網路及數位錢包進行之轉移。本發明特別適合、但不限於錢包,用於處理在區塊鏈上實施或透過區塊鏈傳遞之加密貨幣、符記及其他資源之轉移。本發明提供設備及技巧,其提供許多技術優點,包括但不限於提升數位錢包及基於區塊鏈之通訊的安全性、通用性、彈性及效率。
在本文件中,我們使用「區塊鏈」一詞來包括所有形式之電子、電腦為基之、分散式分類帳。這些包括基於共識之區塊鏈及交易鏈技術、許可及未許可之分類帳、共享分類帳以及其變體。雖然已提出並開發其他區塊鏈實作態樣,區塊鏈技術最廣為人知之應用仍是比特幣分類帳。儘管本文中為了方便及說明目的可意指為比特幣,應知,本發明仍不受限於配合比特幣區塊鏈使用,並且替代之區塊鏈實作態樣及協定仍落入本發明之範疇內。本文中將「比特幣」一詞用於包括衍生自或實施比特幣協定之任何變體的協定或實作態樣之所有變例。「使用者」一詞在本文中可意指為一人類或一處理器為基之資源。
一區塊鏈是一種點對點、電子分類帳,其係實施成一電腦為基之分散型、分散式系統,由諸區塊所構成,該等區塊進而由諸交易所構成。各交易係一資料結構,其編碼區塊鏈系統中諸參與者之間一數位資產之支配權移轉、並且包括至少一個輸入及至少一個輸出。各區塊含有前一個區塊之一雜湊,諸區塊與之變為鏈接在一起,以建立所有交易之一永久、不可更改記錄,自其起始以來便已將該等交易寫入至該區塊鏈。各區塊之標頭含有針對該區塊提供Merkle根之一欄位。Merkle根係藉由將來自區塊之成對交易ID一起重複散列直到得出單一雜湊為止。Merkle根提供一種有效率的機制,用於驗證一交易是否係一區塊之部分,因為其允許使用者驗證一特定交易而無需下載整個區塊鏈。
交易含有小程式,係稱為嵌入其輸入及輸出之指令碼,其指定可如何及由誰來存取該等交易之該等輸出。在比特幣平台上,這些指令碼係使用堆疊式指令碼語言來編寫。
為了將一交易寫入至區塊鏈,必須對其進行「驗核」。網路節點(礦工)進行工作以確保各交易有效,並且將無效交易從網路拒絕。安裝在節點上之軟體用戶端藉由執行其鎖定及解鎖指令碼,對一未動用交易(UTXO)進行此驗核工作。如果鎖定及解鎖指令碼之執行評估為成立,則交易有效,並且將交易寫入至區塊鏈。因此,為了將一交易寫入至區塊鏈,其必須i)藉由接收交易之第一節點來驗核 - 如果交易經過驗核,則節點將其轉發至網路中之其他節點;ii)加入由一礦工所建置之一新區塊;以及iii)受開採,即加入過去交易之公開分類帳。(注意:如上述之驗核不應與如本文中所用之「驗證」一詞混淆,以意指確認或檢查是否已將一特定交易包括在區塊鏈上之一區塊中)。
一旦作為一UTXO儲存於區塊鏈中,一使用者便可將相關聯加密貨幣之控制轉移至與另一交易中之一輸入相關聯之另一位址。這通常係使用儲存與使用者之加密貨幣相關聯之公開與私用金鑰對的一數位錢包來完成。已知加密貨幣錢包有各種形式,包括SPV錢包(簡化付款驗證)。
在Alice與Bob之間一基於SPV之加密貨幣交換中,兩當事方都使用相同類型之SPV錢包。SPV錢包儲存使用者之私用及公開金鑰、未動用交易以及區塊標頭。其亦具有連線至區塊鏈網路之能力。「區塊標頭」一詞在所屬技術領域中屬於已知,並且係用於意指為設置在一區塊鏈交易區塊之頂端處之資料。區塊標頭獨特地識別區塊,所以可位於區塊鏈上。其包含資料欄位,該等資料欄位提供整個區塊之內容之一獨特彙總或指紋。區塊標頭包括Merkle根,其係該區塊中所有交易之一雜湊。一使用者接著能夠搜尋具有該根之Merkle樹,以檢查(即驗證)區塊鏈上之一特定區塊中是否包括一特定交易,而不必下載整個區塊鏈。
SPV錢包之一優點在於,其致使諸如手機及膝上型電腦等電力及儲存受到約束之裝置能夠在比特幣生態系統內運作,因為其僅需要檢查一交易是否已由該網路驗證被包括在該網路中(因此稱為「簡化付款驗證」),而不是按照其他形式之錢包對區塊鏈進行一完全檢查。由於一SPV錢包僅下載區塊標頭而不包括任何交易,因此這會將所需之儲存空間從159 GB (截至2018年11月)減少到43 MB,並且即使比特幣調整規模,儲存要求每年仍只會固定增加4.2 MB。
假設Alice希望向Bob發送某種加密貨幣或一符記化資產/資源。使用習知的SPV錢包時,Alice與Bob之間的通訊流程如下:
1. Alice建立了一區塊鏈交易(TX),在輸出中指定Bob之位址並針對輸入(從先前未動用交易到Alice)提供簽章。
2. Alice向區塊鏈網路廣播交易。
3. Bob查詢網路以驗證是否已接受交易。
本質上,區塊鏈網路當作Alice之錢包與Bob之錢包之間的一媒介。然而,這不僅係一資源密集程序,還需要網路連線能力。如果上有執行Alice之錢包的裝置因某種理由而離線,則無法完成轉移。因此,存在技術挑戰,包括、但不限於如何提供用於實施一更可靠且有效率之機制的方法、系統及裝置,以供進行從一個實體(例如:運算資源/節點/數位錢包)到另一實體之一電子轉移。
從而期望提供至少解決這些技術問題之一解決方案。現已擬出此一改良型解決方案。因此,根據本發明,提供有如隨附申請專利範圍中定義之系統及方法。根據本發明,可提供有一種電腦及/或區塊鏈實施方法以及對應系統及/或資源。該資源可以是或包含一電腦實施資源或(諸)裝置。
本發明可提供一種電腦實施資源,其可操作以在一區塊鏈網路上或透過該區塊鏈網路(於一轉移者與一受轉移者之間)促進或實現一資產之一轉移。轉移者(資產之發送者)在本文中可稱為Alice,而受轉移者(資產之接受者)可稱為Bob。資產可以是或包含任何類型之可轉移電子實體,例如,一部分之加密貨幣或一符記、或可經由一區塊鏈交易採用某種方式數位轉移之任何其他東西。
另外或替代地,該資源可操作以促進或實現一區塊鏈交易之驗證。「操作以」一詞在本文中係用於至少包括「被布置」及「被組配」等詞。
該資源可操作以:
從一進一步資源,接收及/或請求:
與至少一筆區塊鏈交易有關之完整交易資料;以及
該至少一筆區塊鏈交易用之一Merkle路徑;以及
針對該至少一筆交易使用該Merkle路徑來驗證一Merkle證明。
該資源可以是該受轉移者,並且該進一步資源可以是該轉移者。
在根據一區塊鏈協定足以形成一有效區塊鏈交易之概念中,該交易資料可以是完整交易資料。其可稱為「完全」交易資料。
可提供一對應方法。其可藉由一電腦實施資源來實施,並且包含以下步驟:
從一進一步電腦實施資源接收及/或請求:
與至少一筆區塊鏈交易有關之完整交易資料;以及
該至少一筆區塊鏈交易用之一Merkle路徑;以及
針對該至少一筆交易使用該Merkle路徑來驗證一Merkle證明。
另外或替代地,根據本發明之一方法可包含以下步驟:
在一電腦實施資源處及從一進一步電腦實施資源接收包含至少一個輸出(UTXO)之一第一區塊鏈交易用之完全交易資料、以及該第一區塊鏈交易用之一Merkle路徑;
使用該Merkle路徑在該電腦實施資源處檢查該第一區塊鏈交易是否在一區塊鏈中;以及
如果該第一區塊鏈交易在該區塊鏈中,則將一第二區塊鏈交易提交到一區塊鏈、或相同之區塊鏈。
該第一區塊鏈交易可以是如圖8及圖10所示之Tx1或Tx2。該第二交易可以是Tx3。可由該電腦實施資源回應於一請求從該進一步電腦實施資源接收該區塊鏈交易;該電腦實施資源可向該進一步電腦實施資源發送一轉移金額及一輸出(付款)位址;該第一區塊鏈交易可包含向由該電腦實施資源指定之一(輸出/付款)位址動用一加密貨幣金額(該轉移金額)之一輸出(UTXO)。
該進一步電腦實施資源可以是一(數位)錢包或包含此一錢包之一資源。該錢包可以是一輕型/SPV錢包。其可以是實質在本文中關於Alice所述、及題為「離線SPV錢包」之章節中所述之一資源或錢包。
下文或本文中關於一系統或資源所述之任何特徵係同等地適用於本發明之方法,反之亦然。本發明之實施例可實質如關於Bob所述、或本文中所提供題為「PoS SPV錢包」之章節中所述。該資源(及/或該進一步資源)可包含硬體與軟體之一組合,或可純粹以軟體為基礎。
該資源在下文中可稱為Bob,而該進一步資源可稱為Alice。
該方法可包含以下步驟:在該資源處儲存、接收及/或請求至少一個公開金鑰及/或至少一個私用金鑰。其可更包含以下步驟:儲存、接收及/或請求至少一個區塊標頭。這致使能夠驗證一特定區塊中是否已包括一交易。這可當作已發生之一轉移事件之一付款收據或其他記錄。
該至少一個區塊標頭可接收自一進一步資源。該進一步資源可以是一數位錢包,例如一加密貨幣錢包、輕型錢包或SPV錢包、付款卡等。可從該區塊鏈下載或存取、或由另一當事方提供該(等)區塊標頭。
該方法可包含以下步驟:向該進一步資源請求該Merkle路徑及完整交易資料。其可包含向該進一步資源發送:一公開金鑰位址;及/或一轉移值。該轉移值可以是一加密貨幣金額。其可以是要轉移之資產或該資產之值。其可以是一付款金額。該輸出可稱為一付款位址或接收者位址。其可以是要將一資產(例如:加密貨幣金額)轉移過去之位址。
該方法可更包含以下步驟:針對轉移資料向該進一步電腦實施資源發送一請求,該轉移資料包含下列至少一者:
與至少一個未動用區塊鏈交易輸出(UTXO)有關之資料;
含有該至少一個未動用區塊鏈交易輸出(UTXO)之一交易用之一交易ID (TXID);
用於動用該至少一個未動用區塊鏈交易輸出(UTXO)之一簽章;
含有該至少一個未動用區塊鏈交易輸出(UTXO)之一交易用之一Merkle路徑;以及/或一公開金鑰位址。
有助益的是,可將該Merkle路徑從該進一步資源(Alice)提供給該資源(Bob),而不必從區塊鏈網路上之對等方取得。這允許Bob對該至少一筆交易進行一局部SPV檢查,而無需存取該區塊鏈或網路或與之通訊。
此外,可使用一鏈外通訊在Bob與Alice之間發送資料、請求及回應。「鏈外通訊」一詞係意欲表示該通訊不經由區塊鏈或區塊鏈網路進行、向其查詢或與其互動。
該轉移資料可由該資源提出請求。其可向該進一步資源發送一信號或其他請求。另外或替代地,其可接收自該進一步電腦實施資源。換句話說,程序可由Bob或Alice擇一觸發或發起,但在一較佳實施例中,Bob針對必要資料向Alice發送一請求。所請求轉移資料之請求及/或傳送可使用一鏈外通訊來進行,意味著該通訊不涉及區塊鏈網路及/或區塊鏈本身。
Bob之請求及/或Alice之資料發送可使用一區塊鏈交易範本來進行。該範本可包含形成一有效區塊鏈交易所需之一些資訊,但不是全部資訊。為了供Bob完成所欲轉移,有些資料可能遺漏。該方法可包含以下步驟:藉由該進一步資源、藉由更新或完成一區塊鏈交易範本來提供該轉移資料。該範本可藉由該資源來提供。該範本亦可稱為「不完整(區塊鏈)交易」。該方法可包含以下步驟:以一完整或部分完整區塊鏈交易之形式從該進一步資源接收該轉移資料。
該方法可包含以下步驟:針對該至少一筆區塊鏈交易,在成功驗證該Merkle證明後,便將一區塊鏈交易提交到一區塊鏈網路。成功驗證可意味著該Merkle證明確立該至少一筆區塊鏈交易存在於該區塊鏈上,亦即已被開採成一區塊。該方法可包含以下步驟:產生該區塊鏈交易或將其接收自該進一步資源。這可以是圖8及10中稱為Tx3之交易。這可以是如本文中所述及所揭示之Tx3。其可以是包含一輸入之一區塊鏈交易,該輸入動用該至少一筆區塊鏈交易之一輸出(UTXO)。
本發明亦提供一種系統,其包含:一處理器;以及包括可執行指令之記憶體,該等可執行指令隨著藉由該處理器執行而令該系統進行本文中所述電腦實施方法之任何實施例。
本發明亦提供一種上有儲存可執行指令之非暫時性電腦可讀儲存媒體,該等可執行指令因藉由一電腦系統之一處理器執行而令該電腦系統至少進行本文中所述電腦實施型方法之一實施例。
先前技術:Merkle
樹
由於本發明利用一Merkle樹之概念而有所助益,因此我們僅以背景方式來提供一解釋。
Merkle樹係能夠對資料集合進行安全驗證之階層式資料結構。在一Merkle樹中,樹中各節點均已被給予一索引對(i, j
),並且係表示為N
(i, j
)。索引i, j
單純只是與樹中一特定位置有關之數值標籤。Merkle樹之一重要特徵在於其各節點之構造受以下(已簡化)方程式支配:
其中且H
係一密碼編譯雜湊函數。
圖11中展示根據這些方程式建構之帶標籤、二元Merkle樹,我們可從圖11看到,i = j
狀況對應於一葉節點,其單純只是資料Di
之對應第i
封包之雜湊。狀況對應於一內部或上代節點,其係藉由遞迴地散列及串連子代節點直到找到一個上代節點(Merkle根)為止來產生。
一Merkle樹之主要功能是用來驗證某資料封包是否係個資料封包之一清單或集合之一成員。用於驗證之機制稱為一Merkle證明,並且由針對一給定資料封包及Merkle根取得稱為Merkle路徑之一雜湊集合所組成。用於一資料封包之Merkle路徑單純只是以重複散列及串連之方式重構根所需之最小雜湊清單,通常稱為「認證路徑」。如果所有資料封包對證明者都屬於已知,則可瑣碎地進行存在性證明。然而,這的確需要比Merkle路徑大很多之一儲存額外負荷,並且要求證明者可使用整個資料集。下表中展示使用一Merkle路徑與使用整個清單之間的比較,其中我們已使用一二元Merkle樹,並且已假設資料塊之數量N
恰好等於一整數乘冪2。如非這樣,則Merkle證明所需之雜湊數量在各例子中將相差±1。
表格:一Merkle樹中葉節點數量與一Merkle證明所需雜湊數量之間的關係。
Merkle 樹 | |||||
資料封包數量 | 8 | 32 | 64 | 256 | |
存在性證明所需之雜湊數量 | 3 | 5 | 7 | 9 |
在資料封包數量等於葉節點數量之這種簡化情境中,我們發現運算一Merkle證明所需之雜湊值數量呈對數增減。顯然,運算涉及log K
N
雜湊之一Merkle證明比儲存N
資料雜湊並運算瑣碎證明更有效率且實用許多。方法
給定一Merkle根R
,如果我們希望證明資料塊屬於以表示之集合,則我們可進行一Merkle證明,如下
i. 從一受信賴源取得Merkle根。
ii. 從一來源取得Merkle路徑。在這種狀況中,係雜湊集合:。
iii. 使用及運算一Merkle證明,如下:
a. 散列資料塊以取得:。
b. 與串連並散列以取得:。
c. 與串連並散列以取得:。
d. 與串連並散列以取得根:,。
e. 將計算之根與(i)中取得之根作比較:
I. 如果,則確認樹中存在並因此存在資料集。
II. 如果,則證明失敗,並且未確認為之一成員。
這是一種有效率的機制,用於針對一些資料提供一存在性證明作為以一Merkle樹及其根所表示資料集之部分。舉例而言,如果資料對應於一區塊鏈交易,並且根可公開當作一區塊標頭之部分,則我們可快速證明已將交易包括在該區塊中。
圖12展示認證D1
之存在性作為我們例示性Merkle樹之部分的程序,其展示使用一Merkle路徑以一根R
表示之樹中資料塊D1
之一Merkle存在性證明。這展現針對一給定區塊D1
及根R
進行Merkle證明正在藉由僅使用最少量必要雜湊值來有效地「向上」遍歷Merkle樹。
本發明使用這些技巧來提供一更有效率且安全之驗證解決方案,我們現在將注意力轉向討論該驗證解決方案。簡化驗證付款(SPV)
由於本發明提供改良型SPV解決方案,為了易於參考,我們現在對已知SPV驗證技巧提供一概述。
接下來,我們考量希望在一些商品之銷售點進行交易之Alice (一客戶)與Bob (一商家)。如Nakamoto白皮書(「Bitcoin: A Peer-to-Peer Electronic Cash System」,Satoshi Nakamoto, [2008] www.bicoin.org/bitcoin.pdf )中所略述,我們使用傳統方法,審查如何使用簡化付款驗證(SPV)發生此互動。稍後在題為「本發明之概述」之章節中以本發明之一說明性實施例說明相同之互動。在兩種狀況中,我們都考量三筆區塊鏈交易(Tx
)之角色。兩筆交易具有由Alice自有之可動用輸出(UTXO):
‧Tx
1 –具有一可動用輸出(vout-1)之一交易
‧Tx
2 –具有一可動用輸出(vout-0)之一交易
這些交易Tx
1、Tx
2將在本文中稱為輸入交易
,以一簡潔方式來說,其係包含輸出之交易,該等輸出正由某後續交易之輸入所動用,該後續交易例如為一Tx
3。
第三區塊鏈交易係付款交易:
‧Tx
3 –使用vout-0及vout-1作為其兩個輸入並使用一個輸出付款給Bob之一付款(轉移)交易。為了使本發明之展現更簡單,只有兩個輸入及一個輸出。
圖8中示意性展示這三筆交易、以及可用於使該等交易與區塊(標頭)產生關係之Merkle路徑。
SPV之基本概念自Nakamoto白皮書以來便已存在,並且已在原始比特幣用戶端中實施(v 0.1, 2009)。本質上,SPV利用比特幣區塊鏈之兩種性質:
1.Merkle 證明
,可輕易地將其用於驗證一給定交易是否被包括在一Merkle樹中,並且係以一Merkle根表示;以及
2.區塊標頭
,其藉由包括交易之一Merkle樹之Merkle根來表示交易之區塊。
藉由組合這兩種性質,一輕型比特幣用戶端僅需要針對整個區塊鏈維持區塊標頭之一副本,而不是針對全部區塊維持,即可驗證網路是否已處理一交易。為了驗證是否已處理一給定交易並將該給定交易包括在一區塊中,一SPV用戶端僅需要:
‧最新區塊標頭之一完全清單;
‧用於所論交易之Merkle路徑。
從性質1可得出,SPV使用者單純地藉由進行如上節中所解釋之一Merkle路徑認證證明,即可驗證給定交易是否係一Merkle樹之部分,以一Merkle根表示。接著,從性質2可得出,如果SPV用戶端具有包括此Merkle根之一有效區塊標頭,則交易亦為區塊鏈中一區塊之部分。在比特幣中進行這種類型之付款驗證將在本文中稱為進行一「SPV檢查」。
如Nakamoto所規定之此SPV機制告知SPV用戶端實作態樣之現有方法,包括銷售點處之現有方法。重要的是,SPV實作態樣中之最新技術係基於一使用者藉以透過確認(至區塊鏈上之一適當深度,例如6)一區塊中是否已包括一付款來驗證是否已收到該付款之典範。實際上,這是對一交易之一 後廣播
檢查,用以驗證是否已開採該交易。
相比之下,本發明要求 在一交易之廣播
之前,先對該交易之輸入進行必要之SPV檢查。此變動的重點在於大幅降低處理無效交易時網路上之負擔及流量。
現有SPV系統中之一第二重要典範在於,一SPV用戶端必須查詢網路上之完全節點,以取得SPV檢查所需之Merkle路徑。這可在比特幣開發人員指南(https://bitcoin.org/en/developer-guide)中看到,該指南陳述「SPV用戶端知道Merkle根及相關聯之交易資訊,並且從一完全節點請求相應之Merkle分支」。
本揭露之實施例提供涉及SPV檢查之機制及方法,該等機制及方法藉由規定輕型比特幣用戶端使用者保持、維持或至少有權存取與由其自有未動用交易輸出有關之其自有Merkle路徑副本來移除網路上之這種負擔。
用於(在交易點)實施SPV之傳統方法如下,並且請參照圖9:
[1]訊息:Bob至Alice
‧Bob (商家)向Alice (客戶)發送他的公開金鑰位址。除了作為Bob所選贖回指令碼之雜湊而提供之任何其他動用條件以外,他的訊息還可包括要付款之金額。
‧Alice亦將付款交易Tx
3之交易IDTxID
3傳遞給Bob (圖未示)。
[2] P2P網路調解Alice與Bob之間的交換:
[2.i]訊息:Alice 至P2P 網路
‧Alice向網路廣播Tx
3。
[2.ii]訊息:Bob 至P2P 網路
‧Bob查詢網路以檢查是否為了開採成區塊鏈而接受Tx
3。
‧Bob發送連續查詢[2.ii],直到他確信網路將付款視為有效。請注意,他可在[2.i]發生之前開始查詢。
‧如果Bob感到滿意,他可將交易視為完成,而無需任何當事方等待下一個要開採之區塊。
[3] SPV CHECK (訊息):Bob至P2P網路
‧Bob等待下一個要開採之區塊,並且在網路上廣播新區塊標頭時下載該等區塊標頭。
‧Bob向網路發送一「SPV檢查」請求。這是對於與Tx
3對應之Merkle路徑提出之請求,該路徑將其連結至一最近開採區塊中之Merkle根。
‧如果網路可向Bob提供Merkle路徑,則他可使用自己之SPV錢包自己運算Merkle證明,並且檢查是否已處理付款Tx
3。
圖9中繪示此通訊流程。應知,[2.i]、[2.ii]及[3]係由P2P網路調解,並且因此有助於網路上之流量。還應知,在現有之SPV典範中,進行必要之SPV檢查[3]:
‧在
提交付款(Tx
3)之後進行;
‧對付款
(Tx
3)本身進行;
‧藉助
其他提供Merkle路徑之網路對等方進行。
我們現在將這種已知方法與本發明之方法進行對比。本揭露之實施例之概述
本揭露之實施例提供改良型安全性解決方案,用於使用一低頻寬SPV系統在一區塊鏈網路(為方便起見,我們在下文中將其稱為「比特幣」網路)上之驗證。根據本發明之一實施例,資源之發送者(例如:客戶)不需要上線也能由接收者(例如:商家)建立及/或接受交易。僅接收者需要上線。為了方便及易於參考,將使用「客戶」或「Alice」一詞代替「發送者」,並且將使用「商家」或「Bob」一詞代替「接收者」。
本發明相對於習知SPV交易運用諸當事方之間的一新穎通訊流程,因為這種通訊流程僅需要將商家之錢包連線至網路。這是藉由商家之錢包隨客戶需要提供之例如一變更位址、簽章等資訊建立一範本(可稱為一「不完整交易」)來達成。商家一旦從客戶收到此請求之資訊,便向網路廣播交易。
因此,在比特幣網路上之一簡單付款驗證期間,本發明引起交易當事方與網路之間的通訊及交換程序之一基礎變化,該變化是從:
商家à客戶à網路à商家
至:
商家à客戶à商家à網路
Alice與Bob可使用舉例如WO 2017145016中所述之一秘密共享協定來安全地交換訊息。
這種程序變化引起客戶錢包及商家錢包兩者都需要一新穎設計之技術問題。這對現有布置結構係一顯著架構變更。因此,本發明之實施例至少提供以下所述:
1. Alice用之一新穎客戶錢包(我們將其稱為「離線錢包」):
這儲存Alice之公開金鑰、私用金鑰、含有可動用輸出之交易、所有區塊標頭,重要的是,還有所儲存交易之Merkle路徑
(其移除Alice連線至網路之要求)
2. Bob用之一新穎商家錢包(我們將其稱為「銷售點(PoS)錢包」:
這儲存Bob之公開金鑰及所有區塊標頭。
現在提供這些組件之一更詳細說明。
根據本發明之一實施例,提供用於實施SPV (在交易點)之一說明性方法,如下,請參照圖10:
[1]訊息:Bob至Alice
‧Bob向Alice發送一付款交易範本(templateTx
3),並且向Alice請求以下資訊:
o 用於所有輸入交易(Tx
1及Tx
2)之完全交易資料,包含至少一個輸出,Alice想動用該輸出作為付款(Tx
3)之輸入;
o 供所有輸入交易(Tx
1及Tx
2)將其連結至與其相應區塊標頭相關聯之其相應Merkle根的Merkle路徑;
o 已完成(即已填寫範本)付款交易(Tx
3)。
‧請注意,Bob正在向Alice請求資訊,而不是發送他的位址。
[2] 訊息:Alice至Bob
‧Alice將所請求資訊發送給Bob:
o 用於所有輸入交易(Tx
1及Tx
2)之完全交易資料,包含至少一個輸出,Alice想動用該輸出作為付款(Tx
3)之輸入;
o 供所有輸入交易(Tx
1及Tx
2)將其連結至其相應區塊標頭的Merkle路徑;
o 已完成(即已填寫範本)付款交易(Tx
3)。除了填寫範本以外,Alice還提供她的簽章。
[3]SPV檢查(局部):Bob
‧Bob對輸入交易Tx
1及Tx
2進行SPV檢查,使用的是:
o 交易Tx
1及Tx
2;
o 對應之Merkle路徑Path
1及Path
2;
o Bob之區塊標頭之局部清單。
‧這些檢查由Bob局部進行,而且不透過P2P網路進行;
‧在一較佳實施例中,在這個階段,Bob還對他從Alice收到之付款Tx3
進行適當檢查,以確保:
o 付款Tx3
符合Bob之預期;
o Alice之簽章對於此交易有效。
[4] 訊息:Bob至P2P網路
‧ Bob向P2P網路廣播付款交易(Tx
3)。在現有典範中,Alice會將交易提交到網路。
‧只在對Tx
3之所有輸入進行之SPV檢查[3]結果為肯定時才這樣做。
[5] SPV CHECK (訊息):Bob至P2P網路
‧此步驟與SPV方法之現有典範中之步驟[3]完全相同(參見前文)。
圖10中繪示此通訊流程。應知,P2P網路僅調解[4]及[5]。步驟[5]只不過是現有SPV技巧之一重複,並且 非
為我們所提方法之一必要特徵;這裡是為了完備性及為了區別現有典範與本發明才將其包括進來。
請注意,根據本發明之實施例,進行必要之SPV檢查[3]:
‧在
提交付款交易(Tx
3)之前進行;
‧ 對輸入交易
(Tx
1及Tx
2)至付款交易(Tx
3 )進行;
‧未
藉助網路對等方而提供Merkle路徑(由Alice提供)來進行。
本發明之實施例之特徵包括、但不限於:
‧Alice不必自己上線或向網路提交任何資訊。這對於Alice更加可靠。亦允許她使用諸如智慧卡等不具有連線至網路能力之一裝置。
‧Merkle路徑之含納允許Bob快速拒絕來自Alice之任何無效輸入。這藉由拒絕憑藉無效Merkle路徑提交「濫發」交易來減輕過度網路流量。
‧Bob可具有連至網路之一特別快速連線,所以可供他更快驗核一交易。
‧ Bob建立交易以供Alice簽署,因此對交易之內容更具有支配權,舉例而言,他可選擇更多交易費用之付款,這將確保網路接受交易。
‧Bob之錢包不需要含有任何私用金鑰。這提升安全性,因為一未經授權第三方無法存取或破解私用金鑰。
‧Bob有責任將交易提交到網路。
‧Alice之SPV錢包必須具有一私用金鑰及簽署交易之能力。因此,其必須具有足以進行橢圓曲線點乘法之處理能力。
我們現在更詳細地考量本發明之各種組件。離線SPV 錢包
離線SPV之一實施係於圖1中示意性展示,並且包含以下特徵:
1.TX –
預載、完全交易資料,其含有Alice之可用未動用交易輸出。此完全交易資料與一Merkle路徑之組合構成Alice正在動用之交易係有效交易的一Merkle證明。散列完全交易將給予針對Alice想要完成之新交易作為輸入資料之部分所需之交易ID (TXID)。請注意,單獨提供TXID會不足夠,因為Bob必須能夠驗證TXID是否的確係交易之雜湊。這只在她向Bob提供完全
交易資料時才有可能,因此,她必須將其儲存或至少在需要時有權對其進行存取。
2.私用/ 公開金鑰–
錢包必須有權存取一私用金鑰集合以便簽署交易輸出,還必須有權存取公開金鑰以在進行交易時指定變更位址。
3.Merkle 路徑–
含有交易輸出(UTXO)之各筆交易之(完整) Merkle路徑。這將由商家之銷售點錢包用於驗證TX是否有效。應知,儘管此錢包所提供之Merkle證明未防止一雙重動用,其仍確實作為對抗濫發攻擊之一失效快速(fail-fast)機制,從而改善錢包之穩健性及安全性。
4.最低限度處理–
需要用以簽署未動用交易之離線SPV錢包才能動用該等交易。這要求離線錢包(及上有安裝該離線錢包之裝置)能夠實施諸如ECDSA之一密碼編譯演算法,這意味著需要足以進行橢圓曲線點乘法及執行運算雜湊函數之處理能力。
5.區塊標頭( 任選)–
離線SPV錢包可能希望包括區塊標頭,以驗證是否已處理對銷售點SPV錢包之付款。這還需要在與一銷售點錢包互動之後儲存TXID及Merkle路徑。
在一或多項實施例中,可將以上實施成兼具線上與離線狀態或功能之一錢包。當錢包需要更新其UTXO集合及Merkle路徑時,這會有所助益。
在此一實施例中,Alice之錢包可藉由採用與一傳統SPV錢包所為相同之方式暫時連線至網路來下載資料。這在圖2中有說明,並且為方便起見,可稱為一線上與離線SPV錢包。
一旦連線,Alice之錢包便可下載完全交易、Merkle路徑及區塊標頭。如所屬技術領域中已知具有1個輸入及2個輸出之一標準P2PKH交易係226位元組,區塊標頭係80位元組,並且用於含有100,000筆交易之一區塊中之一交易的一Merkle路徑大約係560位元組。將這三者全部組合意味著更新Alice之SPV錢包每個新輸入僅需要下載少於1 MB之資料。這即使憑藉一低頻寬連線仍可達成,其高度有所助益。
使用此實作態樣之一錢包有所助益,因為其提供以下效益:能夠使用一區塊鏈促進離線付款及驗證,同時維持視需要及在需要時連線至網路之能力。附加線上狀態可用於更新區塊標頭清單、取得新TX及相關聯之Merkle路徑,甚至還可用於視要求及在有要求時發送交易。
一線上與離線SPV有多種可能使用案例,包括軟體應用程式及非接觸式付款卡。PoS SPV 錢包
PoS SPV錢包係經設計以實現Bob從Alice接受一轉移所需之最低功能,Alice正在使用如上述之一離線SPV錢包。這些要求係Bob必須有能力:
‧產生一銷售點交易範本。
‧運算與區塊標頭相關聯之Merkle證明。
‧連線並廣播至網路,包括UTXO集之查詢。
‧管理公開金鑰位址以供接收付款
‧更新他的完全TX資料清單,該清單含有Alice之UTXO。
一PoS SPV錢包根據圖3所示之示意性設計符合所有以上要求,並且包含以下特徵:
1.區塊標頭
– PoS SPV錢包維持與區塊鏈中之區塊對應之一區塊標頭資料清單之一最新副本。當呈現有一交易及其Merkle路徑時,PoS SPV錢包可藉由重複散列至Merkle根來進行一簡單Merkle證明。
藉由將此根與相關區塊標頭中之一個根作比較,Bob具有一有效率之失效快速機制以供偵測錯誤性或詐欺性付款。
2.網路連線能力
– PoS SPV錢包具有連線至網路之能力。這包括但不限於向區塊鏈網路廣播一新已簽署交易、以及查詢目前UTXO集中是否存在特定UTXO之能力。
3.公開金鑰儲存–
PoS SPV錢包僅需要儲存Bob想要接收資產或付款之公開金鑰位址。這可採用數種方式來完成,舉例如,藉由使用一確定性秘密(諸如WO 2017/145016中所揭示)或使用一階層式確定性錢包結構來完成。
藉由在銷售點僅儲存公開金鑰位址,而不是相關聯之私用金鑰,「卡片存在」交易之安全性由於Bob之私用金鑰不易破解而得以大幅提升,並且資金因此受到保護。
4.最低限度處理
–需要PoS SPV錢包以基於Alice填寫之範本,僅對一Merkle證明進行最低限度處理。
這大幅降低反覆處理完全區塊以獨立取得Merkle路徑之負擔,其加快銷售點/交易程序、加快橫跨網路之資源轉移、以及為Bob及Alice提升效率。
應知,在至少一項實施例中,銷售點SPV錢包將維持整個區塊標頭清單之一副本,以確保Bob可一直針對區塊鏈之歷程中之任何交易在一Merkle路徑上進行SPV檢查。然而,Bob可能選擇不保持完全區塊標頭清單,例如那些與不含具有可動用輸出之交易的區塊對應之區塊標頭。在這種狀況中,應了解的是,Bob可能需要偶爾查詢一第三方以取得他尚未具有之區塊標頭。在下一節中,我們詳細介紹根據一或多項實施例,Bob發送給Alice之商家銷售點範本,並且應了解的是,如果Bob不具有全部區塊標頭之一完整清單,則他可將對於與她的未動用交易輸出相關聯之區塊標頭提出之一請求併入此範本。PoS SPV 錢包範本
請參照圖4,Bob之PoS SPV錢包採用以下格式向Alice之離線(或離線/線上)錢包請求資訊:
1.TX/UTX –
來自Alice之可動用交易的完全交易資料(如上述)。
2.交易範本–
一部分完整之區塊鏈交易,其(至少)包含Bob之輸出位址及向Alice請求之加密貨幣金額。為了完成交易,Alice之離線錢包必須(至少)提供出自她未動用交易輸出之TXID、用於要使用之各可動用TX輸出的一有效簽章、以及一變更位址。
3.Merkle 路徑–
與完全、已完成交易組合時,可建構一Merkle證明來驗證Alice之TX是否被包括在一區塊中且因此有效
請注意,在最簡單之狀況中,Alice需要向Bob提供一有效付款交易Tx3
,以在P-o-S處交換商品。根據本發明之至少一項實施例,Bob提供商家範本以促進這一點,但也可想到不使用一範本。舉例而言,如果Alice已經事先知道價格及Bob之位址,則她可建構她的付款並將其直接傳送給Bob。Alice還可提供所需簽章及輸出點(outpoint)參考,而無需明確「填寫」範本本身。
完全交易(參見圖4中之(1))及Merkle證明(參見圖4中之(3))可由Alice發送並由Bob處理。這可平行、及獨立於Alice完成Bob之範本(參見圖4中之(2))。延遲交易提交:
在一些狀況中,諸如對於一線上零售商,以規律性間隔批次提交付款交易可有所助益。這對於諸如等待改良型/最佳網路連線能力可用等技術性理由、對於會計目的、或對於降低所引起交易費用總值可有效益。
對於商家Bob,這未帶來附加挑戰,但對於客戶Alice,這意味著與Alice之變更位址相關聯之加密貨幣在Bob最終向網路提交已簽署交易之前均無法供她使用。
該問題之一解決方案是讓Bob在他提供給Alice之範本內指定處理一交易時之人工延遲。Alice之離線錢包可將此解讀為意味著,向Bob付款所產生之變更將無法在商家向網路提交他們的批次交易前之預定時間內動用。應知,Bob在這種情境中沒有附加風險,因為如果商家在他提交這批交易之前發現一雙重動用之證據,則可取消已購買商品之交付。PoS SPV 錢包之延伸– 拆分錢包
作為上述PoS SPV錢包之一延伸,Bob可能期望利用數個具有不同功能之已連線錢包,可將其視為單一拆分錢包
系統。
因此,本發明之某些實施例藉由引進可協調一個或許多銷售點錢包之一更進階主控 SPV
而建置在銷售點(P-o-S) SPV之基本概念上。主控SPV與一或多個PoS SPV之組合在本文中將視為一「拆分錢包」系統。
根據本發明之實施例,拆分錢包系統包含至少一個PoS SPV錢包,其當作一付款終端機,係藉由一主控SPV組件來協調。一主控SPV之功能使錢包能夠:
‧儲存與一PoS SPV之公開金鑰位址相關聯之私用金鑰。
‧運算與區塊標頭相關聯之Merkle證明。
‧連線並廣播至區塊鏈網路,包括UTXO集之查詢。
‧與至少一個當作一付款終端機之PoS SPV錢包通訊。
正如所有簡單之付款驗證系統,主控錢包應能夠進行一良好SPV之所有基本功能,諸如針對一給定交易檢查Merkle存在性證明。這意味著Bob可檢查是否網路已接受並且在一區塊中包括他從銷售點廣播之任何交易。然而,重要的是,根據本發明之一實施例,一主控錢包與至少一個更簡單之PoS SPV錢包通訊並且協調由該PoS SPV錢包處理之付款。
其對於主控SPV針對Bob之付款位址儲存私用金鑰可有所助益。這允許Bob在使用一拆分錢包系統時,對他的付款處理具有大更多之安全性。然而,儲存Bob之私用金鑰係主控錢包之一任選能力,並且其主要功能是用來匯集並協調來自多個銷售點錢包之付款。
在僅使用一基本主控SPV之一商家拆分錢包之此實作態樣中,未嚴格修改商家與客戶之互動。PoS SPV錢包仍必須在Merkle路徑上進行相同檢查,並且向網路進行有關UTXO集之相同查詢。程序之差異包括:
‧要由Alice與Bob使用之PoS SPV終端機之選擇。
‧主控SPV應該在背景中持續與區塊鏈同步。
‧與Bob之付款位址相關聯之私用金鑰從主控錢包接收專屬管理。這將結構新增到先前僅藉由在銷售點錢包處儲存公開金鑰位址所引進之安全性。
應知,為了安全性考量及實用主義,用作為一拆分錢包實作態樣之部分的一主控錢包通常會駐留於與銷售點SPV分離之一位置,諸如一公司後台或總局。可視覺化商家與客戶之互動,如圖5所示。
如所論述,使用一簡單主控SPV作為一商家拆分錢包之部分的此實作態樣具有供Bob用之公用程式,但如果拆分錢包是用來提供一適當層級之雙重動用保護,則仍然有賴於網路回應於UTXO集之查詢。
這可根據一或多項實施例來因應,其中主控SPV係以一更強大類型之主控錢包來取代,該主控錢包還保持其對於記憶池之自有副本。配備此一主控錢包之拆分錢包架構不需要查詢網路即可檢查一客戶之UTXO是否係目前UTXO集之部分。
具有其對於記憶池之自有副本的一主控錢包作用類似於一典型非挖礦「完全節點」用戶端,但有助益的是,其不需要保持區塊鏈之一完全副本。取而代之地,這種類型之主控錢包僅保持區塊標頭及其對於記憶池之自有局部副本。記憶池之副本可藉由與網路同步來局部建構,或源自於一受信賴第三方或服務。
使用具有其對於記憶池之自有副本的一主控SPV錢包之實作態樣從商家之觀點變更商家與客戶之互動。
步驟4及5中彰顯從以上關於圖5所述者對互動之主要變化:
‧在步驟4中,商家僅將交易廣播到網路,而不是新增UTXO集之附加查詢
‧在步驟5中,商家現在藉由針對一衝突交易檢查記憶池來對客戶之交易之有效性進行其自有檢查。商家可接著基於其對於記憶池之同步副本之狀態來決定要採取什麼動作。本發明使用中之例示
考量一般商家與客戶之互動,Alice想從Bob購買某物。根據本發明之一實施例,程序係如下面略述並且參照圖6進行:
1. Bob建立一部分完整區塊鏈交易,並且向Alice請求以下資訊。可將這一起打包成一範本以供Alice填寫:
a. Alice為了完成購買而將動用之TX輸出
b. 針對Alice之一(比特幣)變更位址
c. 來自Alice之一簽章
d. 針對TX之Merkle路徑(這未形成交易之部分)
2. Alice藉由提供所需資訊來完成範本。
3. Bob進行Merkle證明以檢查Alice所提供TX之有效性。如果證明為無效,則Bob知道Alice之TX在區塊鏈中從未有效,並且拒絕交易。有助益的是,這是一種失效快速機制。
4. Bob將完整交易廣播到網路並查詢UTXO集。
a. 該廣播允許礦工開始嘗試將交易開採成一區塊。
b. 該查詢詢問由Alice所提供表面上有效之UTXO是否仍在UTXO集中。
這是用於防止Alice進行一雙重動用之機制。
5. 網路對Bob之UTXO查詢作出回應。這允許Bob採取以下行動過程之一:
a. 如果Alice之UTXO仍然是UTXO集之部分,則Bob可接受付款且一雙重動用之風險降到最低。
i. Bob承擔之風險可藉由在某時間間隔內繼續以此詢問輪詢網路節點來降到最低。
ii. 可善用貝氏分析來確保Bob在某信賴區間內查詢最實在之大量節點。
b. 如果Alice之UTXO不是UTXO集之部分,則Bob拒絕Alice之付款。
如上述,本發明之實施例適合以各種形式使用及實施。舉例而言,這些可包括付款卡。
如所屬技術領域中已知,一傳統SPV錢包藉由檢查其在區塊鏈內之深度來驗證一交易非為一雙重動用,這是藉由查詢網路來進行。一旦一礦工已驗核一交易並將該交易包括在一區塊中,該交易便具有1次確認。新增到區塊鏈之每一個附加區塊均使確認數增加1,並且各新確認使一雙重動用之風險降低。一傳統SPV錢包會將一交易顯示為「n/未確認」直到其具有6次確認為止。
然而,預設之6次確認規則非為比特幣之基礎。並非所有商家都希望先等待產生6個區塊(或甚至1個區塊)再來確信付款。所屬技術領域中將「0-conf」一詞用於表示尚未包括在一區塊中之一交易。一旦Alice完成交易,她便將該交易廣播到網路,而Bob (起碼)應該能夠在記憶池中找到該交易。
本發明將廣播交易之負擔移給接收者Bob,而不是發送者Alice,從而使CPU要求降到最低,並且改善Alice之體驗。Bob由於不需要依賴Alice與網路之連線而對交易程序具有一更大程度之支配權,但該支配權不足以損及Alice之安全性。本質上,Alice (僅)具有藉由提供一數位簽章來接受或拒絕交易之權限。
Merkle路徑檢查不阻止雙重動用,因為只有Bob看到交易正在由網路轉發且在記憶池中,才得以達成0-conf。取而代之地,其當作一失效快速機制,允許Bob立即拒絕動用不存在之UTXO的嘗試。這有用處,因為其防止將Bob用作為濫發攻擊之一媒介,原因尤其在於,如果連線不良,則廣播然後查詢一完全節點所取用之時間可能多於數秒鐘。
啟用離線付款後,可將諸如預付智慧卡之硬體整合到比特幣生態系統裡。付款卡將需要用以儲存私用金鑰以及UTXO、完整交易及Merkle路徑之資料容量。其還需要一些處理能力以便實施ECDSA簽章演算法。表1展示建檔時一些可用電子卡類型之一清單。
表1:一般付款卡規格雙重動用保護
最大資料容量 | 處理能力 | 卡片成本 ( 美元 ) | 讀取器 / 連線之成本 | |
磁條卡 | 140位元組 | 無 | $0.20-$0.75 | $750 |
積體電路記憶卡 | 1 kB | 無 | $1-$2.50 | $500 |
積體電路處理器卡片 | 8 kB | 8位元CPU (未來最大擴大到23位元) | $7-$15 | $500 |
假設一客戶Alice希望在一商店中用加密貨幣交換實體商品。傳統上,Alice在銷售點(POS)將一交易發送至區塊鏈網路,而商家Bob僅在他看到此交易出現以下情境時才允許Alice帶著商品離開
(a)向他傳回被網路接受之傳言;或
(b)在一區塊(或對於n
-conf,則為n
個區塊)中被確認。
在情境(a)中,Bob知道Alice對他的付款交易有效,並且礦工將嘗試將此付款開採成一區塊。雖然這並未保護Bob免受由Alice遠端提交一衝突交易而發起之一簡單雙重動用所影響,此情境仍與基於習知區塊標頭之SPV相容。
在情境(b)中,Bob知道付款交易不僅有效還尚未被雙重動用。然而,這需要Bob執行一完全節點並原位下載下一(幾)個區塊。同樣地,在比特幣網路上,這在Alice可帶著商品離開處所前平均將用掉10分鐘。
應知,在此問題陳述中,我們假設0-conf安全性對於Bob來說令人滿意,因為我們正在嘗試減輕之攻擊係Alice進行之一簡單雙重動用。要求一或多個區塊是要減輕一不同攻擊傳播媒介,即一第三敵手Carol壓迫整個網路之攻擊傳播媒介。
下表說明對於此一客戶與商家之互動,場景(a)及(b)都是如何不可獨立接受。此表格展示情境a)及b)之交易特徵:
*這表示此當事方沒有完全節點要求。對於大部分交易,Bob (商家)及Alice (客戶)都僅可接受一符合所有這些準則之解決方案。
因素 | 情境(a) | 情境(b) |
對於Bob之雙重動用保護 | 否 | 可接受 |
<10秒平均交易時間 | 可接受 | 否 |
<10分鐘平均交易時間 | 可接受 | 否 |
SPV相容* (Bob) | 可接受 | 否 |
SPV相容* (Alice) | 可接受 | 可接受 |
本文中所揭示之商家PoS錢包之實施例提供以下優點:
‧對於商家之雙重動用保護
‧瞬時(<<10秒)平均交易時間
‧客戶及商家都可在銷售點處使用SPV錢包。
因素 | 情境(a) | 情境(b) | 商家SPV |
對於Bob之雙重動用保護 | 否 | 是 | 是 |
<10秒平均交易時間 | 是 | 否 | 是 |
<10分鐘平均交易時間 | 是 | 否 | 是 |
SPV相容* (Bob) | 是 | 否 | 是 |
SPV相容* (Alice) | 是 | 是 | 是 |
設想本發明之實施例能夠提供對現有SPV/加密貨幣交易速率將是一顯著改善之效能及結果,並且就瞬時性而言,至少與現有晶片PIN碼式(chip-and-pin)/非接觸式終端機付款互動匹敵。
此外,本發明亦提供允許在大約一個小時內(即6-conf)以高度確定性將付款視為已清算及核準。這遠遠優於目前多達60天之付款清算時間,即VISA及Mastercard之清算時間。可變風險
另外,Bob可在產生範本時針對交易設定開採費用。這筆費用由誰付款並不一定重要,但可將值用作為一參數,用於將雙重動用之風險設定到商家視為可接受之層級。
總言之,交易之銷售點時間延遲及開採費用是可由商家設定並由客戶之數位簽章同意之兩個參數,該數位簽章可根據狀況有效地校準效率及風險。舉例而言,這可取決於要交換之商品之價值,
現請參照圖7,提供有一運算裝置2600之一說明性、簡化方塊圖,其可用於實踐本揭露之至少一項實施例。在各項實施例中,運算裝置2600可用於實施以上所示及所述系統中任何一者。舉例而言,可為了當作一資料伺服器、一網頁伺服器、一可攜式運算裝置、一個人電腦、或任何電子運算裝置使用而組配運算裝置2600。如圖7所示,運算裝置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或藍光)驅動機、以及其他相似之儲存媒體。此類程式及資料可包括用於實行如本揭露所述一或多項實施例之步驟之程式、以及與如本揭露所述交易及區塊相關聯之資料。
運算裝置2600可呈各種類型,包括一可攜式電腦裝置、平板電腦、一工作站、或下面所述之任何其他裝置。另外,運算裝置2600可包括可透過一或多個連接埠(例如:USB、一耳機插孔、Lightning連接器等)連接至運算裝置2600之另一裝置。可連接至運算裝置2600之裝置可包括組配來接受光纖連接器之複數個連接埠。因此,此裝置可組配成將光學信號轉換成電氣信號,可透過將裝置連接至運算裝置2600之連接埠傳送該電氣信號以供處理。由於電腦及網路不斷變化之本質,為了說明裝置之較佳實施例,圖7所示運算裝置2600之說明僅意欲作為一特定實例。許多其他組態有可能比圖7所示系統具有更多或更少組件。
「區塊鏈交易」一詞可用於意指為一資料結構,該資料結構實施將一密碼編譯金鑰用於經由一區塊鏈網路實現一數位資源或資產之支配權轉移。如上述,為了將一交易寫入至區塊鏈,其必須i)藉由接收交易之第一節點來驗核 - 如果交易經過驗核,則節點將其轉發至網路中之其他節點;ii)被新增到由一礦工所建置之一新區塊;以及iii)受開採,即被新增到過去交易之公開分類帳。將了解的是,礦工所進行之工作之本質將取決於用於維持區塊鏈之共識機制之類型。儘管工作證明(PoW)與原始比特幣協定相關聯,將了解的是,仍可使用其他共識機制,諸如權益證明(PoS)、權益委託證明(DPoS)、容量證明(PoC)、經過時間證明(PoET)、權限證明(PoA)等。不同共識機制對於節點之間如何分布開採有所不同,成功開採一區塊之勝算取決於例如一礦工之散列能力(PoW)、一礦工所持有之一加密貨幣金額(PoS)、資助一委派礦工之一加密貨幣金額(DPoS)、一礦工對一密碼編譯謎題儲存一預定解決方案之能力(PoC)、隨機指派給一礦工之一等待時間(PoET)等。
一般而言,為了開採一區塊而向礦工提供一誘因或獎勵。舉例而言,比特幣區塊鏈以新發行之加密貨幣(比特幣)及與區塊中之交易相關聯之費用(交易費用)獎勵礦工。對於比特幣區塊鏈,發行之加密貨幣金額隨著時間而消減,誘因最終僅由交易費用所組成。因此,將了解的是,交易費用之處置係用於向諸如比特幣區塊鏈之公開區塊鏈承諾資料之基礎機制之一部分。
如前述,一給定區塊中之各交易均對區塊鏈系統中諸參與者之間的一數位資產之支配權轉移進行編碼。數位資產不一定必須對應於一加密貨幣。舉例而言,數位資產可涉及一文件、影像、實體物件等之一數位表示型態。將加密貨幣及/或交易費付款給礦工可單純地當作藉由進行必要工作來維持區塊鏈中諸區塊有效性之一誘因。與區塊鏈相關聯之加密貨幣可針對礦工當作一擔保,且區塊鏈本身對於與加密貨幣除外之數位資產有主要關係之交易係一分類帳。在一些狀況中,諸參與者之間的加密貨幣轉移可由與將區塊鏈用於維持一交易分類帳之實體不同之一實體來處置。
應知上述實施例說明而不是限制本發明,並且所屬技術領域中具有通常知識者將能夠設計許多替代實施例而不脫離如隨附申請專利範圍所定義之本發明之範疇。在請求項中,置放於括號內的任何參照符號不得視為限制請求項。「包含」一詞及其變體、及類似者不排除存在任何請求項或本說明書中整體所列者外之元件或步驟。在本說明書中,「包含」意味著「包括或由以下所組成」,並且「包含」之變體意味著「包括或由以下所組成」。元件之單數參照不排除此類元件之複數參照,反之亦然。本發明可藉助於包含數個相異元件之硬體、及藉由一適當程式規劃之電腦來實施。在列舉數個構件之裝置請求項中,這些構件中有數個可藉由相同硬體項目來具體實現。在互不相同之附屬項中明載某些量測的唯一事實不在於指出這些量測之一組合無法用於產生利益。
2600:運算裝置
2602:處理器
2604:匯流排子系統
2606:儲存子系統
2608:主記憶體
2610:永續性儲存器
2612:使用者介面輸入裝置
2614:使用者裝置輸出裝置
2616:網路介面子系統
2618:動態隨機存取記憶體
2620:唯讀記憶體
本發明之這些及其他態樣將經由本文中所述之實施例而顯而易見,並且參照該實施例來闡明。本發明之一實施例現將僅以舉例方式、並且參照附圖作說明,其中:
圖1根據本揭露之一實施例,展示一「離線SPV錢包」的一例示。
圖2根據本揭露之一實施例,展示一「線上與離線SPV錢包」的一例示。
圖3根據本揭露之一實施例,展示一「PoS SPV錢包」的一例示。
圖4根據本揭露之一實施例,展示一部分及已完成範本交易以及相關Merkle證明。
圖5根據本揭露之一實施例,展示當使用一拆分SPV錢包進行一交易時,Alice與Bob之間的資料流動及互動。
圖6展示本揭露之一實施例在使用時的一示意性例示。
圖7係一示意圖,其繪示可實施各項實施例之一運算環境。
圖8係一示意圖,其展示三筆交易及可用於使該等交易與區塊(標頭)產生關係之Merkle路徑。
圖9繪示傳統SPV付款方法。
圖10根據本揭露之一實施例,展示一方法的一例示。
圖11展示如先前技術已知之一二元Merkle樹之一實例。
圖12根據先前技術,使用一Merkle路徑,展示以一根R
所表示之一樹中一資料塊D1
之一Merkle存在證明。
Claims (15)
- 一種在區塊鏈網路上轉移資產之電腦實施方法,其包含以下步驟: 由係為該資產之一受轉移者的一資源及從係為該資產之一轉移者的一進一步資源接收及/或請求: 與至少一筆區塊鏈交易有關之完整交易資料;以及 該至少一筆區塊鏈交易用之一Merkle路徑;以及 針對該至少一筆交易使用該Merkle路徑來驗證一Merkle證明。
- 如請求項1之方法,且其更包含以下步驟:在該資源處或上儲存:至少一個公開金鑰及/或至少一個私用金鑰。
- 如請求項1或2之方法,且其更包含以下步驟:在該資源處或上儲存、接收及/或請求:至少一個區塊標頭。
- 如請求項3之方法,其中該至少一個區塊標頭係接收自該進一步資源,並且其中該進一步資源包含一數位錢包。
- 如前述請求項中任一項之方法,且其更包含以下步驟:由該資源及向該進一步資源請求該等Merkle路徑及完整交易資料。
- 如前述請求項中任一項之方法,且其更包含以下步驟:向該進一步資源發送:一公開金鑰位址;以及/或一轉移值。
- 如前述請求項中任一項之方法,且其包含以下步驟:從該資源向該進一步資源發送轉移資料之一請求,該轉移資料包含下列至少一者: 與至少一個未動用區塊鏈交易輸出(UTXO)有關之資料; 含有該至少一個未動用區塊鏈交易輸出(UTXO)之一交易用之一交易ID (TXID); 用於動用該至少一個未動用區塊鏈交易輸出(UTXO)之一簽章; 含有該至少一個未動用區塊鏈交易輸出(UTXO)之一交易用之一Merkle路徑;及/或 一公開金鑰位址。
- 如請求項7之方法,其中該轉移資料係使用一區塊鏈交易範本,由該電腦實施資源提出請求,及/或接收自該進一步者。
- 如請求項6或7之方法,其中該轉移資料係以一完整區塊鏈交易或一部分完整區塊鏈交易之形式接收自該進一步資源。
- 如前述請求項中任一項之方法,且其更包含以下步驟:針對該至少一筆區塊鏈交易,在成功驗證該Merkle證明後,便將一區塊鏈交易提交到一區塊鏈網路。
- 如前述請求項中任一項之方法,其中該資源包含一數位錢包。
- 一種電腦實施系統,其包含操作以在一區塊鏈網路上促進一資產之一轉移的一資源,並且被布置來: 從係為該資產之一轉移者的一進一步資源,接收及/或請求: 與至少一筆區塊鏈交易有關之完整交易資料;以及 該至少一筆區塊鏈交易用之一Merkle路徑; 以及針對該至少一筆交易使用該Merkle路徑來驗證一Merkle證明。
- 如請求項12之電腦實施系統,以及其中: 該區塊鏈交易係由該資源回應於一請求而接收自該進一步資源; 該資源係操作以向該進一步資源發送一轉移金額及一輸出位址; 第一筆區塊鏈交易包含向該資源所指定或確定之一位址動用一加密貨幣金額之一輸出(UTXO)。
- 如請求項12或13之電腦實施系統,且其更包含: 一處理器;以及 包括可執行指令之記憶體,該等可執行指令因藉由該處理器執行而令該系統進行請求項1至11中任一項之方法之任何實施例。
- 一種非暫時性電腦可讀儲存媒體,其上儲存有可執行指令,該等可執行指令因藉由一電腦系統之一處理器執行而令該電腦系統至少進行如請求項1至11之方法之一實施例。
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1902089.0 | 2019-02-15 | ||
GBGB1902090.8A GB201902090D0 (en) | 2019-02-15 | 2019-02-15 | Computer-implemented system and method |
GB1902086.6 | 2019-02-15 | ||
GB1902088.2 | 2019-02-15 | ||
GBGB1902089.0A GB201902089D0 (en) | 2019-02-15 | 2019-02-15 | Computer-implemented system and method |
GBGB1902086.6A GB201902086D0 (en) | 2019-02-15 | 2019-02-15 | Computer-implemented system and method |
GBGB1902088.2A GB201902088D0 (en) | 2019-02-15 | 2019-02-15 | Computer-implemented system and method |
GB1902090.8 | 2019-02-15 | ||
GBGB1902092.4A GB201902092D0 (en) | 2019-02-15 | 2019-02-15 | Computer-implemented system and method |
GB1902092.4 | 2019-02-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202040457A true TW202040457A (zh) | 2020-11-01 |
TWI836003B TWI836003B (zh) | 2024-03-21 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI764811B (zh) * | 2021-08-17 | 2022-05-11 | 英屬開曼群島商現代財富控股有限公司 | 分層確定性錢包的金鑰生成系統及其方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI764811B (zh) * | 2021-08-17 | 2022-05-11 | 英屬開曼群島商現代財富控股有限公司 | 分層確定性錢包的金鑰生成系統及其方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI828857B (zh) | 在區塊鏈網路上實施轉移之電腦實施系統及方法 | |
KR101964254B1 (ko) | 블록체인과 dht를 이용한 p2p 거래 방법 및 장치 | |
JP2021168171A (ja) | 複数のトランザクションをブロックチェーンに記録する方法及びシステム | |
US20160342977A1 (en) | Device, method and system for virtual asset transactions | |
JP7146093B2 (ja) | ブロックチェーンでノード間のブロック及び電子文書を共有及び検証する方法 | |
KR20200114324A (ko) | 블록체인 기반의 암호화폐를 이용한 송금 처리 시스템 | |
JP2023502057A (ja) | ブロックチェーントランザクションを使用したアイデンティティ検証プロトコル | |
CN114331397B (zh) | 信息处理方法、装置、电子设备和存储介质 | |
TWI836003B (zh) | 在區塊鏈網路上實施轉移之電腦實施系統及方法 | |
CN117941322A (zh) | 基于区块链的交易协议 | |
CN114219649A (zh) | 跨链资产转移方法、计算机设备和存储介质 | |
CN113516461A (zh) | 一种基于分布式账本的量子货币交易方法 |