TW202338646A - 經劃分之區塊鏈網路中區塊鏈之區塊維持技術 - Google Patents

經劃分之區塊鏈網路中區塊鏈之區塊維持技術 Download PDF

Info

Publication number
TW202338646A
TW202338646A TW112117670A TW112117670A TW202338646A TW 202338646 A TW202338646 A TW 202338646A TW 112117670 A TW112117670 A TW 112117670A TW 112117670 A TW112117670 A TW 112117670A TW 202338646 A TW202338646 A TW 202338646A
Authority
TW
Taiwan
Prior art keywords
block
transaction
node
shards
blockchain
Prior art date
Application number
TW112117670A
Other languages
English (en)
Other versions
TWI836988B (zh
Inventor
狄恩 克拉瑪
馬汀 西威爾
巴席姆 阿瑪爾
Original Assignee
安地卡及巴布達商區塊鏈控股有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GBGB1806911.2A external-priority patent/GB201806911D0/en
Priority claimed from GBGB1806907.0A external-priority patent/GB201806907D0/en
Priority claimed from GBGB1806914.6A external-priority patent/GB201806914D0/en
Priority claimed from GBGB1806930.2A external-priority patent/GB201806930D0/en
Priority claimed from GBGB1806909.6A external-priority patent/GB201806909D0/en
Application filed by 安地卡及巴布達商區塊鏈控股有限公司 filed Critical 安地卡及巴布達商區塊鏈控股有限公司
Publication of TW202338646A publication Critical patent/TW202338646A/zh
Application granted granted Critical
Publication of TWI836988B publication Critical patent/TWI836988B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment 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/3674Payment 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 involving authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment 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/3678Payment 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, 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/401Transaction verification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3297Cryptographic 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 involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Abstract

本發明提供一種電腦實施之方法及系統,該電腦實施之方法及系統維持跨越一分片化區塊鏈網路之數個節點之一區塊鏈的數個區塊,其中每一節點為多個作用中分片中之一或多個分片的一成員。該方法及系統使用一給定節點以產生表示該區塊鏈之一新區塊之資料並儲存表示該新區塊的該資料,該給定節點係該多個作用中分片之一特定子集的一成員。此資料包括i)係該新區塊之部分且與該多個作用中分片之該特定子集相關聯的交易之交易識別符的一清單,及/或ii)該新區塊的一局部默克爾樹(Partial Merkle Tree)。

Description

經劃分之區塊鏈網路中區塊鏈之區塊維持技術
本揭露內容大體上係關於處理區塊鏈交易的電腦實施之系統及方法,且更確切而言係關於劃分一區塊鏈以及驗證一經劃分區塊鏈之交易及區塊的系統及方法。
在本文中,術語「區塊鏈」指若干類型之基於電腦之電子分散式分類帳中之任一者。此等分類帳包括基於共識之區塊鏈及交易鏈技術、許可及未許可分類帳、共用分類帳及其變化。區塊鏈技術之最廣泛已知之應用為比特幣區塊鏈,儘管已提議並開發了其他區塊鏈實施方案。雖然比特幣之實例本文中出於本揭露內容中之方便及說明目的提及,但應注意,本揭露內容不限於與比特幣區塊鏈一起使用;且替換性區塊鏈實施方案及協定屬於本揭露內容之範疇內。舉例而言,本揭露內容可用於其他區塊鏈實施方案中,該等實施方案具有類似於比特幣的關於哪些約束可在交易內經編碼的限制。
區塊鏈為藉由基於電腦之非集中式分散式系統產生並維持的同級間電子分類帳。分類帳由區塊構成,該等區塊又由交易及其他資訊構成。區塊鏈系統或區塊鏈網路包含多個區塊鏈節點及一組操作。區塊鏈節點可能經組配以執行該組操作中之操作中的一些或全部。各種區塊鏈節點可能實施為藉由節點操作者操作之電腦硬體、電腦軟體或兩者的組合,其中節點操作者可為獨立的,且不與其他節點操作者相關。區塊鏈節點可能各自維持區塊鏈分類帳或該區塊鏈分類帳之某部分的複本。該組操作可能包括產生交易、傳播交易、讀取區塊鏈分類帳、評估區塊鏈分類帳、產生(挖掘)針對對區塊鏈分類帳之所提議添加的新區塊、與其他區塊鏈節點通信,及為使用者提供電子錢包功能以產生交易且管理區塊鏈資產。
區塊鏈分類帳為非集中式的在於,不存在決定分類帳得到修改之時間的單一區塊鏈節點或實體。實情為,區塊鏈節點各自在瞭解區塊鏈協定之規則情況下程式化以便校驗區塊鏈分類帳且校驗藉由其他區塊鏈節點進行之動作符合彼等規則。術語「區塊鏈」可指如下事實:區塊鏈分類帳包含一系列鏈接區塊,每一區塊各自表示為電腦記憶體中之資料結構、藉由電腦程序可讀取且可作為資料傳輸而傳輸。區塊包含一或多個交易,該一或多個交易亦可表示為電腦記憶體中之資料結構、藉由電腦程序可讀取且作為資料傳輸而傳輸。區塊經鏈接在於,官方地添加至區塊鏈之每一新區塊含有對直接先前區塊的不可變參考,該先前區塊含有對其直接之前區塊之不可變參考等。
對於給定交易,為了包括於將寫入至區塊鏈之區塊中,一或多個節點驗證交易且可能將交易傳播至其他節點,節點挖掘交易之區塊,其中該區塊包括給定交易,且其他節點校驗區塊之有效性及該區塊中交易的有效性。由於挖掘節點將在牢記此等規則情況下經程式化或組配,因此挖掘節點將不大可能包括交易至將使區塊失效的區塊中,因此區塊將不被其他節點接受且挖掘節點將不獲得益處。舉例而言,在許多區塊鏈網路中,區塊可包括「獎勵」交易,其中指定量的值被分配至挖掘節點之操作者。以此方式,成功挖掘者藉由運用區塊產生之價值補償。此外,交易可包括交易費用,該等交易費用亦對挖掘節點之操作者有益。
區塊鏈網路中之交易含有各種資料元素,包括值單位及其他資料元素。值單位可為密碼貨幣(諸如比特幣SV),但使用其他數位資產之其他變化有可能。在非集中式之分散式分類帳系統中,分類帳可為公眾的,使得任何人可檢視分類帳並存取儲存於分類帳之區塊中的交易。
區塊鏈網路,例如比特幣區塊鏈網路,可遭受與藉由交易之網路傳播中的延遲引起之交易驗證相關的效能限制,此係由於每一交易需要在該交易可向前傳播至其他節點以供挖掘之前予以驗證。此外,隨著區塊鏈之大小增長,對驗證交易及區塊之節點的儲存要求同樣增長。
發明概要 因此,需要提供經由使用劃分或分片化來改良區塊鏈分類帳之可擴展性的改良式系統及方法。
將一區塊鏈網路劃分成數個分片使得使用者能夠選擇其自身參與區塊鏈網路的等級。每一使用者可選擇成為一或多個分片之成員。係少於全部的分片之成員的使用者需要較少儲存空間來儲存分配至使用者係成員之分片的所有交易。基於其交易id分配交易至分片提供如下優勢:所得分片大小將大約相等,藉此避免相對於較小分片之成員對較大分片之成員施加不當負擔,而同時使得交易及關聯校驗能夠準確且無任何不當延遲地執行。
本文中提及之使用者可與一或多個節點或者計算裝置相關聯,且此等節點亦可被稱作經劃分區塊鏈網路中的用戶端實體。下文中,對使用者之提及亦可理解為對與使用者相關聯之節點或實體(其可擁有或控制係分片化或經劃分區塊鏈網路之部分的節點或實體)的提及。每一節點可與經劃分區塊鏈中網路中之至少一或多個其他節點通信耦接。
本文中所論述之與本揭露內容之此態樣以及其他態樣(下文論述)相關聯的此等優勢係歸因於節點之結構及分片化區塊鏈網路之所得網路拓樸及架構以及與網路節點相關聯的協定。在此分片化網路中接收、儲存及/或驗證UTXO使用所描述及所主張之方法,用於通信、資料儲存及資料共用的規則及協定以及用於每一分片內之節點之驗證技術以及基於與屬於不同分片之節點通信的關聯規則及協定來執行。
此等特定結構、資料流之方法、交易分配及驗證協定將在下文相對於本揭露內容之各種實施例來進一步解釋。有利地,分片化網路結構或架構及本文中所描述之用於交易分配及此類經分配交易在分片化區塊鏈網路內的驗證之關聯方法賦予用於資料流、資料儲存及UTXO驗證檢查的新穎技術。此外,此等技術有利地防止雙重支付(double spend attack),諸如鑒於結構及資料通信/驗證協定之比特幣區塊鏈中的女巫攻擊(Sybil attack)。
因此,根據本揭露內容,可提供一種跨越一分片化區塊鏈網路之數個節點維持一區塊鏈的數個區塊之電腦實施之方法及系統,其中每一節點為多個作用中分片中之一或多個分片的一成員。該方法及系統使用係多個作用中分片之特定子集之一成員的一給定節點,其中該給定節點經組配以產生表示該區塊鏈之新區塊的資料且儲存表示該新區塊之資料。此資料包括i)針對為該新區塊之部分且與該多個作用中分片之該特定子集相關聯的交易之交易識別符的一清單,及/或ii)針對該新區塊的一局部默克爾樹(Partial Merkle Tree)。i)之交易識別符之該清單並不包括針對為該新區塊之部分且不與該多個作用中分片之該特定子集相關聯的交易之交易識別符。
在實施例中,i)之交易識別符之該清單可藉由以下操作來產生:基於包括於該新區塊中之資料構建針對該新區塊之交易識別符的一初始清單,及藉由移除對應於一交易的任何交易識別符處理交易識別符之該初始清單,該交易不與該多個作用中分片的該特定子集相關聯。
在實施例中,ii)之該局部默克爾樹包括自為該新區塊之部分且不與該多個作用中分片之該特定子集相關聯的交易導出之散列值,同時省略自為該新區塊之部分且與該多個作用中分片之該特定子集相關聯的交易導出之散列值。
在實施例中,ii)之該局部默克爾樹可藉由以下操作來產生:基於包括於該新區塊中之資料構建針對該新區塊之一全默克爾樹,及處理該全默克爾樹以取代針對自為該新區塊之部分且與該多個作用中分片之該特定子集相關聯的交易導出之散列值的占位符。
在實施例中,處理該全默克爾樹可進一步包括自該全默克爾樹之一底部層級迭代至根部層級及移除針對一鄰接節點對之兩個散列值並留下一父散列值。
在實施例中,處理該全默克爾樹可進一步包括自該全默克爾樹之一底部層級迭代至根部層級且取代針對一父樹節點之該散列值的一占位符,該父樹節點具有兩個子節點,該兩個子節點並不都表示自不與該多個作用中分片之該特定子集相關聯之交易導出的一散列值。
在實施例中,該節點可操作以處理該局部默克爾樹以在不需要對該等交易進行存取的情況下計算針對區塊驗證之一默克爾根部散列值,該等交易為該區塊之部分且並不與該多個作用中分片之該特定子集相關聯。
在實施例中,處理該局部默克爾樹以計算該默克爾根部散列值可涉及自該局部默克爾樹之一底部層級迭代至根部層級,用來自i)之交易識別符清單之對應散列值替換底部層級中之任何占位符,及用自局部默克爾樹之對應子散列值替換高於底部層級之層級中的任何占位符。
在實施例中,i)之該交易識別符清單及ii)之該局部默克爾樹可基於節點成員資格及該等交易而在該等分片之間的該分配在該等節點之間發生變化。
在實施例中,為新區塊之部分的交易可基於交易識別符與多個作用中分片之數個分片相關聯(或分配至該等分片)。
在其他實施例中,為新區塊之部分的交易可基於父區塊鏈交易與多個作用中分片之數個分片相關聯(或分配至該等分片,其中父交易藉由對應於子區塊鏈交易之輸入的輸出界定,且其中該父交易及子交易兩者與同一分片相關聯。
在實施例中,藉由節點維持之區塊資料可省略了為節點不屬於之分片部分的交易資料,因此節省節點儲存空間。因此,一些節點可儲存針對區塊鏈之交易之有限子集的區塊鏈之資料結構,而其他節點儲存區塊鏈之所有交易的資料結構。在此狀況下,儲存區塊鏈之有限子集之資料結構的節點之資料儲存容量可遠小於儲存整個區塊鏈之資料結構之節點的資料儲存容量。
在實施例中,在產生表示該新區塊之該資料時,該節點可驗證了為該新區塊之部分且與該多個作用中分片之該特定子集相關聯的交易,同時略過了為該新區塊之部分且不與該多個作用中分片之該特定子集相關聯的交易之驗證。此類處理可減小區塊驗證操作之計算工作。此優勢連同針對區塊鏈網路之某些分片的減小之資料儲存容量要求可允許節點在有限之計算資源情況下有效地參與區塊鏈網路。
因此,根據本揭露內容,提供一種如隨附技術方案中所界定之方法。
根據本揭露內容,可提供一種包括一處理器、電腦記憶體及一網路介面裝置的電子裝置。該記憶體已在上面儲存有電腦可執行指令,該等電腦可執行指令在執行時組配該處理器以執行如本文中所描述之方法。
根據本揭露內容,可提供一種非暫時性電腦可讀儲存媒體。該電腦可讀儲存媒體包括電腦可執行指令,該等指令在經執行時組配處理器以執行如本文中所描述之方法。
較佳實施例之詳細說明 首先將參看圖1A,其說明根據本揭露內容之實施例的與區塊鏈相關聯之實例區塊鏈網路100。在實施例中,區塊鏈網路100包含:區塊鏈節點,其可能被實施為各自執行軟體之個例的同級間分散式電子裝置;及/或硬體,該硬體執行遵循區塊鏈協定之操作,該區塊鏈協定在區塊鏈節點之操作者之間整體或部分地達成協議。在一些實例中,此等分散式電子裝置簡稱為「節點」,諸如圖1A中之節點102。區塊鏈協定之一實例係比特幣協定。
節點102可包含任何合適之計算裝置(例如,資料中心中之伺服器,諸如桌上型電腦、膝上型電腦、平板電腦、智慧型電話等的用戶端計算裝置),包含計算資源服務提供商之分散式系統中的多個計算裝置或諸如圖9之計算裝置2600之任何合適電子用戶端裝置。節點102可具有輸入以接收資料訊息或代表交易及/或區塊之物件以及與其他節點相關的資訊。節點102可查詢其維持之資訊,諸如其對交易之狀態的理解。
如圖1A中所示,一些節點102係以通信方式耦接至節點102中之一或多個其他節點。關於哪些節點102可與哪些其他節點通信,彼等細節不需要集中地判定。區塊鏈網路100中之作用總節點能夠與一或多個其他節點102通信,使得自一個節點102傳遞至另一節點102之訊息可貫穿區塊鏈網路100(或該區塊鏈網路之某重要部分)傳播,這樣便足夠了,其中假設該訊息為區塊鏈協定指示應被轉遞的訊息。一個此訊息可為發佈由節點102A中之一者提議之交易,該訊息將接著沿著諸如路徑106之一路徑傳播。另一此訊息可為發佈提議包括於區塊鏈上的新區塊。
節點102可儲存分佈式區塊鏈分類帳(或區塊鏈),其含有對應於交易之資料及對應於交易區塊的資料。節點102可儲存區塊鏈分類帳的完整複本或其一部分。舉例而言,一些節點可儲存整個區塊鏈分類帳之資料,而其他節點可儲存僅未花費交易的資料,同時其他節點可能維持整個區塊鏈分類帳。節點102可能包括驗證其接收到之每一區塊及此區塊中之交易的功能性。節點102中之一些可為挖掘者節點,其收集交易且產生交易之區塊,使得新區塊可被添加至區塊鏈分類帳。挖掘者節點可被預期為執行某工作,該工作既為複雜的(以避免惡意節點輕易產生不當區塊)且又係取決於所包括之交易的資料(使得惡意節點無法提前執行複雜操作),其中彼等任務之執行易於由其他節點校驗。在產生新區塊時,多個挖掘者節點有可能競爭以執行必要的工作。此被稱作「工作量證明」挖掘。替代地,新區塊之挖掘者節點取決於新區塊之亦界定為權益的價值而可以判定性方式選擇。此被稱作「權益證明」挖掘或鍛造。挖掘者節點將新區塊傳播至其他節點以供驗證。其他節點驗證新區塊及嵌入於新區塊中之交易。若藉由節點執行之驗證操作成功,則節點將新區塊添加至區塊鏈並將新區塊傳播至其他節點。此將新區塊提交至區塊鏈分類帳。
在一些實例中,區塊係常常用先前區塊之時戳及「指紋」(例如,散列)進行標記的交易之分組。以此方式,每一區塊變為鏈接至先前區塊,藉此產生鏈接區塊鏈分類帳中之區塊的「鏈」。每一區塊包括指區塊之交易群組的資料(例如,交易識別符)。在實施例中,有效區塊藉由區塊鏈網路中節點之共識被添加至區塊鏈分類帳。又,在一些實例中,區塊鏈分類帳包含經驗證區塊之有序清單。圖1B說明具有三個區塊1221、1223及1223之鏈的區塊鏈分類帳1216。應注意,區塊1222包括指區塊1222之交易之群組的資料(例如,區塊標頭1230及交易識別符1231(1)、1231(2)、1231(3)……)。
本揭露內容旨在經由使用劃分來改良區塊鏈分類帳之可擴展性。劃分在此項技術中考慮兩個特定尺寸:水平尺寸及垂直尺寸。在水平劃分中,資料經劃分成稱作分片之不同區段,該等分片有效地為特定資料庫方案之多個個例,其中資料越過此等個例中之每一者散佈(折扣個例冗餘)。在垂直劃分中,給定資料庫方案越過多個節點散佈,藉此特定物件之屬性使用正規化散佈。
本揭露內容將水平劃分方案用於被稱作「分片」之關聯節點群組當中區塊鏈分類帳的資料結構。每一分片被指派有唯一識別符。存在涵蓋所有分片之被稱作「所有分片」的一個群組。區塊鏈網路之每一節點可屬於一或多個分片(包括「所有分片」群組)。屬於分片之節點可被稱作該分片之成員。在圖2之實例中,節點A1及A2為分片A之成員(屬於分片A),節點B1及B2為分片B之成員(屬於分片B),節點C為分片A及B之成員(屬於分片A及B),且節點D為「所有分片」群組的成員(屬於「所有分片」群組)。亦可使用其他分片。此外,每一節點經組配以儲存區塊鏈分類帳之資料結構,該等資料結構對應於區塊鏈分類帳屬於之一或多個分片。在圖2之實例中,區塊鏈分類帳之資料結構包括分片之比特幣相關資料結構,該資料結構包括針對分片之UTXO集合、分片之交易佇列(記憶體池(mempool))、分片之交易資料(標記為TX資料)及分片的區塊資料。分片之UTXO集合表示可作為至新交易之輸入花費的未花費交易輸出(UTXO)。
在如本文中所描述之實施例中,藉由給定節點維持之區塊資料包括給定節點屬於之一或多個分片的區塊資料。此區塊資料包括表示區塊鏈分類帳之區塊的資料,且可包括每一區塊之以下資料:i )包括局部默克爾樹連同區塊之其他資料的區塊標頭,及/或ii)係區塊之部分的交易之交易識別符的清單;此清單包括僅針對係區塊之部分且與給定節點屬於之一或多個分片相關聯之交易的交易識別符;且清單並不包括針對係區塊之部分且不與給定節點屬於之一或多個分片相關聯的交易之交易識別符。儲存於區塊標頭中之局部默克爾樹包括自係區塊之部分且與給定節點並不屬於之一或多個分片相關聯之交易導出的散列值,但省略自係區塊之部分且與給定節點屬於之一或多個分片相關聯的交易導出之散列值。局部默克爾樹可用以允許節點針對區塊驗證計算區塊之默克爾樹根散列值而不需要對交易之存取,該等交易為區塊之部分且並不與節點屬於之一或多個分片相關聯。以此方式,藉由不同分片之節點經儲存作為區塊資料之部分的給定區塊之i)之局部默克爾樹及ii)的清單可基於節點成員資格及分片當中交易的分佈在節點之間發生變化。有利地,使用區塊之與區塊標頭相關聯的局部默克爾樹與其他資料,如在本實施例中所描述鑒於分片化區塊鏈網路之狹窄性以及用於建立每一節點可儲存或不儲存之資訊的本文中所描述之協定有可能以便仍準確地固持並使用區塊之必要細節以被驗證並傳輸,而不需要每一節點儲存並驗證與給定交易相關的所有UTXO。如本文中將進一步解釋,用於處理區塊資訊之局部默克爾樹的產生及使用藉由以下各者來促進:分片化網路之此結構,及藉由分片化網路內的用於同一分片內之通信及資料流的節點應用之協定,外加用於與節點相關聯之分片外部之一或多個節點的通信及資料流之其他協定。
在圖2之實例中,節點A1及A2儲存分片A之UTXO集合之複本、分片A之交易佇列(記憶體池)的複本、分片A之交易資料的複本及分片A之區塊資料的複本。節點A1及A2並不儲存以下各者:其他分片(除分片A外)之UTXO設定的複本、其他分片(除分片A外)之交易佇列(記憶體池)的複本、其他分片(除分片A外)之交易資料的複本。此外,分片A之區塊資料包括表示區塊鏈分類帳之區塊的資料且可包括每一區塊之以下資料:i)包括局部默克爾樹連同區塊之其他資料的區塊標頭,及ii)係區塊之部分的交易之交易識別符的清單;此清單包括僅針對係區塊之部分且與分片A相關聯之交易的交易識別符;且清單並不包括針對係區塊之部分且不與分片A相關聯的交易之交易識別符。儲存於區塊標頭中之局部默克爾樹包括自係區塊之部分且不與分片A相關聯之交易導出的散列值,但省略自係區塊之部分且與分片A相關聯之交易導出的散列值。
節點B1及B2儲存分片B之UTXO設定的複本、分片B之交易佇列(記憶體池)之複本、分片B之交易資料的複本及分片B之區塊資料的複本。節點B1及B2並不儲存以下各者:其他分片(除分片B外)之UTXO設定的複本、其他分片(除分片B外)之交易佇列(記憶體池)的複本、其他分片(除分片B外)之交易資料的複本。此外,分片B之區塊資料包括表示區塊鏈分類帳之區塊的資料且可包括每一區塊之以下資料:i)包括局部默克爾樹連同區塊之其他資料的區塊標頭,及ii)係區塊之部分的交易之交易識別符的清單;此清單包括僅針對係區塊之部分且與分片B相關聯之交易的交易識別符;且清單並不包括針對係區塊之部分且不與分片B相關聯的交易之交易識別符。儲存於區塊標頭中之局部默克爾樹包括自係區塊之部分且不與分片B相關聯之交易導出的散列值,但省略自係區塊之部分且與分片B相關聯之交易導出的散列值。
節點C儲存分片A之UTXO設定的複本、分片B之UTXO設定、分片A之交易佇列(記憶體池)之複本、分片B之交易佇列(記憶體池)之複本、分片A之交易資料的複本、分片B之交易資料的複本、分片A及B之區塊資料的複本。節點C並不儲存以下各者:其他分片(除分片A及B外)之UTXO設定的複本、其他分片(除分片A及B外)之交易佇列(記憶體池)的複本及其他分片(除分片A及B外)之交易資料的複本。此外,分片A及B之區塊資料包括表示區塊鏈分類帳之區塊的資料且可包括每一區塊之以下資料:i)包括局部默克爾樹連同區塊之其他資料的區塊標頭,及ii)係區塊之部分的交易之交易識別符的清單;此清單包括僅針對係區塊之部分且與分片A或B相關聯之交易的交易識別符;且清單並不包括係區塊之部分且不與分片A或B相關聯的交易之交易識別符。儲存於區塊標頭中之局部默克爾樹包括自係區塊之部分且不與分片A或B相關聯之交易導出的散列值,但省略自係區塊之部分且與分片A或B相關聯之交易導出的散列值。
節點D儲存所有分片之UTXO設定的複本、所有分片之交易佇列(記憶體池)的複本、所有分片之交易資料的複本,及所有分片之區塊資料的複本。
應注意,藉由節點維持之區塊資料可省略係節點並不屬於之分片之部分的交易資料,因此節省節點儲存空間。因此,一些節點(例如,節點A1、A2、B1、B2及C)儲存區塊鏈分類帳之交易之僅有限子集的區塊鏈分類帳之資料結構,而其他節點(例如,節點D)儲存區塊鏈分類帳之交易之全部的資料結構。在此狀況下,儲存區塊鏈分類帳之受限子集之資料結構的節點(例如,節點A1、A2、B1、B2及C)的資料儲存容量可遠小於儲存整個區塊鏈分類帳之資料結構之節點(例如,節點D)的資料儲存容量。應注意,在其他區塊鏈分類帳中,其他資料結構可針對不同分片予以儲存並維持。
圖2之水平劃分方案允許節點之操作者選取或選擇以變成區塊鏈網路之一或多個分片的成員。此允許具有受限資料儲存容量之小型當事人(諸如,沉溺者)選擇為單一分片之成員,而具有較大資料儲存容量之大型當事人(諸如,財務機構)可選取或選擇或變成所有分片的成員。
此外,每一節點可經組配以執行僅驗證與節點屬於之一或多個分片相關聯之彼等交易的區塊驗證操作。在此類操作中,與節點並不屬於之另一分片相關聯的任何交易之驗證被略過且並不影響區塊是否被節點視為有效的。在此狀況下,選擇為單一分片之成員的操作者藉由驗證區塊鏈分類帳中交易之受限集合而具有較輕權重安全性涉及,而選擇為所有分片之成員的操作者藉由驗證區塊鏈分類帳中之所有交易而具有較大安全性涉及。
應注意,節點可經組配以與單一分片內之多個其他節點通信,以防止女巫攻擊。此等攻擊可實際上省略發送自節點之交易,從而防止其經由網路的進一步傳播。給定分片中之一或多個節點亦可被指派以交換與其他分片中之節點相關的資訊,且此類指派可隨時間在給定分片中之節點當中旋轉。每一節點可廣播其接收之每一交易至該節點耦接至之其他節點,且若該給定節點並非該分片之成員而非進行全交易驗證,則其在向前傳播交易之前執行基本交易層級檢查。
在不同或特定時間/時刻,關於其他節點之細節亦可在特定分片中之節點之間共用。此係使用 addr協定訊息之經修改版本根據本揭露內容之第二實施例執行。當前作為比特幣協定之部分存在的 addr訊息之實施方案用以列舉或識別一或多個IP位址及埠。舉例而言, getaddr請求可用以獲得含有一束已知作用中同級間裝置之 位址訊息(例如,用於啟動)。 addr訊息常常含有僅一個位址,但有時含有許多且在一些實例中高達1000個位址。在一些實例中,所有節點週期性地亦即每24小時一次地廣播含有其自身IP位址的 addr。節點接著可將此等訊息中繼至其同級間裝置,且在訊息對於節點為新情況下可儲存經中繼之位址。以此方式,在網路中之節點可具有合理地清晰的圖像,其IP在連接至網路時或在連接至網路之後連接至網路。在大多數狀況下,IP位址因為初始 addr廣播被添加至每一人之位址資料庫。
除上述內容外,根據本揭露內容之經修改 addr協定的實施方案可能能夠傳輸關於特定節點屬於之分片的額外資訊。舉例而言,在經修改之位址協定中,當諸如圖1b之共用網路中的節點加入網路中之特定分片時,則作為 addr訊息之部分廣播的內容亦可包括識別節點係其成員之一或多個分片的欄位。此資訊亦因此回應於來自圖1b之網路中同級間裝置的 getaddr請求被傳回。如在第一實施例中所論述,此資訊可係基於與每一節點及/或節點與之相關聯之每一分片相關聯的資料結構。
圖3A及圖3B共同為說明產生並驗證以及挖掘區塊鏈交易作為分片化區塊鏈分類帳諸如圖2之分片化區塊鏈分類帳之部分的流程圖。
在框301中,用戶端節點產生區塊鏈交易,其中區塊鏈交易係與區塊鏈網路之一或多個分片相關聯(或指派或分配至該一或多個分片)。與有效區塊鏈交易相關聯之分片可為與區塊鏈交易自身相關聯之分片,或與有效區塊鏈交易之一或多個交易輸入或交易輸出相關聯的分片。舉例而言,在一個實施例中,與有效區塊鏈交易相關聯之分片可係基於區塊鏈交易之交易識別符,該交易識別符藉由將SHA256函數應用至區塊鏈交易之交易資料來產生。更具體而言,與有效區塊鏈交易相關聯之分片可藉由應用區塊鏈網路上當前在作用中之分片之數目的模運算至交易識別符來判定,亦即,分片識別符=TX ID mod n,其中n為當前作用中分片的數目。在另一實施例中,與有效區塊鏈交易相關聯之分片可係基於區塊鏈交易之第一或其他輸入及輸入指向之較早交易的輸出。在此情形下,輸出藉由後續交易之第一輸入參考之交易被稱作「父」交易,且後續交易被稱作「子」交易。應注意,將第一輸入用以界定對於該方法並非必需的父交易;任何輸入可經選擇以在存在多個輸入情況下執行方法。舉例而言,若子交易之特定數目個輸入指與父交易相同之分片中的交易之輸出,則較早交易可界定為子交易的父交易。輸入之數目可界定子交易的大量輸入。此等機構之細節闡述於英國專利申請案第1806907.0號及英國專利申請案第1806909.6號中,前述兩者共同指派至本申請案之受讓人且以全文引用的方式併入本文中。在另其他實施例中,其他機構可用以關聯區塊鏈交易與區塊鏈網路之一或多個分片。
在框303中,用戶端節點廣播區塊鏈交易以供傳達至屬於與區塊鏈交易相關聯之一或多個分片的節點(且可能傳達至屬於並非與區塊鏈交易相關聯之分片的其他節點)。
在框305中,屬於與區塊鏈交易相關聯之一或多個分片的節點接收區塊鏈交易。
在框307中,屬於與區塊鏈交易相關聯之一或多個分片的節點驗證所接收之區塊鏈交易或其部分,且若且在接收到之區塊鏈交易或其部分被視為有效時,每一此節點將區塊鏈交易傳播至節點屬於之分片中的其他節點。
在一個實施例(被稱作「交易分片驗證」)中,框307之交易驗證藉由交易關聯或分配至之分片施行。如上文所述,交易可使用應用至交易之交易識別符之模函數的結果而與分片相關聯(或指派至該分片)。因為交易可具有來自分片之輸入,所以節點可與其他分片的節點通信用於UTXO檢查。具體而言,屬於一或多個分片之節點可對屬於其他分片之節點進行請求以提取其他分片之UTXO設定。若節點皆不具有所請求之UTXO設定,則給出空回應,且論述中之交易被視為無效的。在交易輸入被視為有效的時,交易被添加至交易相關聯或分配至的分片之交易佇列(記憶體池)(框309),且交易被傳播至此分片中之其他節點(框311)。
在另一實施例(被稱作「基於UTXO分片之驗證」)中,框307之交易驗證基於輸入驗證交易,該等輸入與係在與執行驗證之節點相同之分片內的UTXO設定相關。與不同分片中之UTXO設定相關的輸入並不予以驗證。每一輸入之驗證可涉及檢查確認經參考之輸出之UTXO尚未花費,校驗(例如,指令碼校驗)輸入經授權以收集經參考之輸入的值以及其他檢查之數目。在輸入無效之狀況下(諸如當與輸入相關之UTXO並不存在,交易之輸出的值大於對應輸入之UXTO,或存在指令碼錯誤時),交易被丟棄且並不傳播至同一分片中的其他節點。若輸入被視為有效的,則交易被添加至執行驗證(框309)之節點之分片的交易佇列(記憶體池),且交易被傳播至此分片中之其他節點(框311)。
「交易分片驗證」實施例及「基於UTXO分片之驗證」實施例之細節闡述於英國專利申請案第1806911.2及英國專利申請案第1806914.6號中,前述兩者被共同指派至本申請案之受讓人且以全文引用的方式併入本文中。
在實施例中,框307之交易的驗證亦可涉及檢查確認整體上係關於交易,諸如檢查確認交易之語法及資料結構是否為正確的,檢查確認交易小於所允許之區塊大小且大於或等於100個位元組,及檢查確認鎖定時間小於最大允許數目。
在框309中,屬於與有效區塊鏈交易相關聯之分片的節點將該有效區塊鏈交易添加至與有效區塊鏈交易相關聯之分片的交易佇列(記憶體池)。
在框311中,一或多個節點(例如,挖掘者)自分片之交易佇列(記憶體池)(例如,「所有分片」群組的記憶體池)形成區塊,且將此新區塊傳播至其他節點。
在框313中,節點接收新區塊並基於共識協定處理新區塊以用於區塊驗證及區塊提交。
圖4A及圖4B共同地為描述驗證藉由針對並非所有分片之成員之節點的挖掘者產生之新區塊中的圖3A及圖3B之框313之操作的流程圖。在此狀況下,節點屬於作用中分片之受限子集,且因此並不屬於一或多個作用中分片。請注意,係所有分片之成員的任何節點可使用熟知區塊驗證程序驗證新區塊。
在框401中,節點接收新區塊。在實施例中,區塊包括區塊標頭,且列舉表示區塊之TX識別符之有序序列的資料。在如圖2中所示之比特幣類型之分散式區塊鏈系統中,區塊標頭可包括以下資料欄位: [1] 區塊版本號,其指示哪一區塊驗證規則集合予以遵循: [2] 先前塊標頭散列,其係先前區塊之標頭之內部位元組次序的SHA256(SHA256())散列。此情形確保無先前區塊可在亦不改變此區塊之標頭的情況下改變; [3] 自包括於此區塊中之所有交易的散列導出之默克爾根部散列,從而確保彼等交易皆不可在不修改標頭情況下修改; [4] 區塊時間,其係挖掘者開始使標頭散列(根據挖掘者)的Unix出現時間; [5] nBits,其係此區塊之標頭散列必須小於或等於之目標臨限值的經編碼版本;及 [6] 臨時標誌,其係挖掘者改變以修改標頭散列以便產生低於或等於目標臨限值之散列的任意數目。 具有該等欄位之實例區塊展示於圖6A中。
在框403中,節點提取如儲存於在框401中接收到之區塊中的表示交易識別符(「TX識別符」或「TX Id」)之有序序列清單。區塊之交易識別符之實例清單示意性地展示於圖6A中。
在框405中,節點產生表示在框403中提取之區塊之交易識別符之有序序列的全默克爾樹之資料。全默克爾樹為具有葉節點之有序序列的樹,該等葉節點對應於區塊之交易識別符的有序序列。每一葉節點包括藉由對應交易識別符參考之交易資料的散列,且每一非葉節點包括其子節點之散列值的密碼編譯散列。全默克爾樹之非葉節點在自葉(底部)至根部向上延伸的數個層級上邏輯地組織,該根部儲存全默克爾樹之根部散列值,如所熟知。區塊之實例全默克爾樹示意性地展示於圖6A中。
在框407中,節點提取如儲存於在框401中接收之區塊之標頭中的默克爾根部散列值,且節點比較所提取之默克爾根部散列值與在框405中產生之全默克爾樹的根部散列值。
在框409中,節點評估框407之比較值以判定所提取之默克爾根部散列值與框405中產生之全默克爾樹之根部散列值是否匹配。若否,則操作繼續至區塊439及441。若是,則操作繼續至框411。
在框411中,節點針對區塊之有效性評估其他標頭條件。
在框413中,節點檢查確認框411之評估以判定針對區塊之有效性之其他標頭條件是否已被滿足。若否,則操作繼續至框439及441。若是,則操作繼續至框415。
在框415中,節點組配通過如框403中提取之區塊之交易識別符之有序序列的循環,且在循環中針對每一給定交易識別符執行框417至425的操作。
在框417中,節點識別對應於藉由給定交易識別符參考之交易的分片。對應於交易之分片可為與交易自身相關聯之分片或與交易之一或多個交易輸入或交易輸出相關聯的分片。可用以指定交易與一或多個分片之間的關聯(或對應)之機構的實例在上文相對於圖3A及圖3B之框301描述。
在框419中,節點檢查確認其是否屬於框417中識別的分片。若否,則操作繼續至框421。若是,則操作繼續至框422。
在框421中,節點自如在框403中提取的區塊之交易識別符之有序序列移除給定交易識別符,且操作繼續至框425。
在框423中,節點檢查確認藉由給定交易識別符參考之交易是否為有效的。若藉由給定交易識別符參考之交易判定為有效的,則操作繼續至框425。若否,則操作繼續至框439及441。在實施例中,節點可檢查確認藉由給定交易識別符參考之交易是否儲存於節點屬於之分片的交易佇列(記憶體池)中。若是,則交易可被視為有效的,且操作繼續至框425。若否,則節點可與網路之另一節點通信,以請求並獲得交易之複本。一旦接收到,節點便可執行用於驗證接收到之交易的操作。此等驗證操作之實例在上文參看圖3A及圖3B之框307予以描述。在交易被認為有效的情況下,操作繼續至框425。在交易被視為無效的情況下,操作繼續至框439及441。
在框425中,節點檢查確認所有交易識別符是否已在通過如在框415中所組配之交易識別符的有序序列之循環中處理。若否,則操作恢復至框415以針對清單中之下一交易識別符繼續循環。若是,則操作繼續至框427。
請注意,框419至425之操作檢查係與節點屬於之分片相關聯之交易的有效性,且因此略過檢查與節點並不屬於之分片相關聯的交易之驗證。
在框427中,節點可產生且儲存將區塊標記為有效的資料。
在框429中,節點儲存包括針對區塊之交易識別符之所得清單的資料。交易識別符的此所得清單可省略係與節點並不屬於之分片相關聯的交易識別符,且因此避免儲存針對區塊之交易識別符之有序序列的完整清單。
在框431中,節點導出表示區塊之局部默克爾樹的資料。下文參考圖5來描述此等操作之細節。
在框433中,節點更新區塊之標頭資料以包括如在框431中導出之區塊的局部默克爾樹。
在框435中,節點儲存表示區塊之資料(包括框433中用針對區塊之局部默克爾樹更新的標頭,及包括如框429中儲存之區塊之所得清單的資料)作為節點屬於之一或多個分片的區塊資料之部分。此類操作可儲存表示區塊至持久儲存器,諸如磁碟或其他形式之持久資料儲存器。表示區塊之實例標頭資料及交易清單資料示意性地展示於圖6D中。
請注意,框431之局部默克爾樹可省略自與節點並不屬於之分片相關聯的交易導出之分支,且包括沿著分支之占位符(對於散列值),該等占位符自係與節點屬於之分片相關聯的交易導出。因此,在許多狀況下,局部默克爾樹之節點及層級相對於全默克爾樹之常規形式將為不平衡的。重要的是,減小全默克爾樹以產生局部默克爾樹之操作可用以減小針對節點屬於之一或多個分片之區塊資料之標頭中的局部默克爾樹之儲存要求。由於默克爾樹分支為分支或分支下面之葉之級聯及散列的結果,因此全默克爾樹可基於樹中之完整路徑來減小。在分支導致充分完整葉之處,可移除此等分支,從而僅留下其散列。自默克爾根部至葉之每一散列可經移除,使得局部默克爾樹之根部散列可藉由占位符替換再次產生。藉由施行此程序,需要局部默克爾樹中之儲存的散列之數目可被減小,從而降低儲存要求。
在框437中,節點可將如於框401中接收之新區塊傳播至其他節點。
在框439中,節點可產生且儲存將區塊標記為無效的資料。
在框441中,節點可捨棄表示無效區塊之資料,且避免將無效區塊傳播至其他節點。節點亦可捨棄係如指派至分片之無效區塊之部分的一或多個交易之交易資料,且在適當時將此等交易之UTXO傳回至分片的UTXO設定。
圖5為說明藉由節點施行以導出表示區塊之局部默克爾樹之資料的例示性操作之流程圖。
在框501中,節點讀取區塊標頭及區塊之交易識別符的有序清單。
在框503中,節點使用如在框501中讀取之區塊之交易識別符的清單產生表示區塊的全默克爾樹的資料。
在框505中,節點組配通過區塊之交易識別符之有序清單的交易識別符之循環,該等交易識別符對應於在全默克爾樹之底部層級中的散列值(自左至右)。循環針對清單中之每一給定交易識別符執行框507至513的操作。
在框507中,節點檢查確認藉由給定交易識別符參考之交易是否對應於節點屬於之分片。可用以指定交易與一或多個分片之間的關聯或對應之機構的實例在上文相對於圖3A及圖3B之框301描述。若藉由給定交易識別符參考之交易並不對應於節點屬於之分片,則操作繼續至框509及框513。若藉由給定交易識別符參考之交易的確對應於節點屬於之分片,則操作繼續至框511。
在框511中,節點用占位符替換清單之給定交易識別符(散列值),且操作者繼續至框513。占位符為相對於清單之交易識別符之編碼大小具有較小編碼大小的資料值或字符。占位符亦經組配,使得該占位符易於自清單之交易識別符的可允許值可辨別。在實施例中,占位符可為空值或特定字符。理想地,占位符應相對於256位散列提供最大空間減小。替代地,占位符相對於256位元散列值可提供某其他最小至最大空間減小。
在框513中,節點檢查確認任何交易識別符是否保持在如在框505中組配之通過交易識別符之迴路予以處理。若是,則操作恢復至框505以針對清單中之下一交易識別符繼續循環。若否,則操作繼續至框515。
請注意,框507至513之操作用來自全默克爾樹之底部(葉)層級中之交易識別符的占位符取代對應於節點屬於之分片的交易。
在框515中,節點設定默克爾樹當前層級指標為全默克爾樹的如藉由在框503中產生之資料表示的底部(或葉節點層級)。
在框517中,節點檢查確認默克爾樹當前層級指標是否指向全默克爾樹中的根部層級。若否,則操作繼續至框533。若是,則操作繼續至框519。
在框519中,節點在全默克爾樹之當前層級(其藉由默克爾樹當前等級指標參考) 組配通過鄰接節點對的循環。此循環在全默克爾樹之當前層級針對每一給定鄰接節點對執行框521至529的操作。
在框521中,節點檢查確認給定鄰接節點對之兩個節點是否各自含有散列值(如與占位符可區分)。請注意,在全默克爾樹之底部層級處之鄰接節點對之節點指由如上文所述之框505至513之操作產生的交易及占位符之有序清單中的對應元素,其中此對應藉由使交易及占位符之清單中之位置與全默克爾樹之底部層級中葉節點位置(自左至右)匹配來指明。若此條件並未被滿足,則給定鄰接節點對之兩個節點在框523中獨自留下,給定鄰接節點對之父樹節點的散列值在框525中用占位符替換,且操作繼續至框529。若此條件被滿足,則節點移除給定鄰接節點對之兩個節點,且在框527中獨自留下鄰接節點對之父樹節點的散列值,且操作繼續至框529。
在框529中,節點檢查確認全默克爾樹之當前層級處任何更多鄰接節點保持在通過如框519中組配之鄰接節點對之循環中予以處理。若是,則操作恢復至框519以針對全默克爾樹之當前層級之鄰接節點對繼續迴路。若否,則操作繼續至框531。
在框531中,節點調整默克爾樹當前層級指標以指向全默克爾樹之下一層級,且操作繼續以針對全默克爾樹之下一層級重複框517至529的操作。
在框533中,節點用占位符替換或取代全默克爾樹的根部節點散列值,且操作結束。
圖6A說明例示性區塊的全默克爾樹。
圖6B說明圖5之流程圖之框519至529針對圖6A之例示性區塊之全默克爾樹之操作的結果。在此等操作中,占位符已替換了全默克爾樹之底部層級中六個交易的散列值(交易識別符),其中此等交易對應於節點屬於之分片。
圖6C說明圖5之流程圖之框519至529針對圖6A之全默克爾樹的操作之結果。在此等操作中,全默克爾樹之底部層級中的兩個鄰接散列值(在全默克爾樹之左側上)已被移除,此係因為此等散列值自並不對應於節點屬於之分片的交易導出。此外,在鄰接節點並不皆具有對應散列值且因此自對應於節點屬於之分片之至少一個交易導出的三個狀況下,占位符已替換了全默克爾樹之第二層級中的鄰接葉節點之父節點(在全默克爾樹的左側上)。
圖6D說明圖5之流程圖之操作結果針對圖6A之全默克爾樹的局部默克爾樹。
圖7A至圖7C共同地為藉由並非所有分片之成員之節點施行以驗證作為分片化區塊鏈分類帳諸如圖2之分片化分類帳之部分儲存的區塊之操作的流程圖。在此狀況下,節點屬於作用中分片之受限子集,且因此並不屬於一或多個作用中分片。請注意,係所有分片之成員的任何節點可使用熟知區塊驗證程序驗證新區塊。
在框701中,節點自節點屬於之分片的區塊資料讀取區塊。區塊資料包括區塊標頭,該區塊標頭包括表示區塊之局部默克爾樹的資料。區塊標頭可同樣包括其他欄位。區塊資料亦包括彼等交易之交易識別符的有序清單,該等交易係區塊之部分且對應於節點屬於之分片。實例區塊資料示意性地展示於圖8A中。
在框703中,節點提取如儲存於框701中讀取之區塊資料中的區塊之交易識別符的次序清單。交易識別符清單可能省略係區塊之部分且對應於節點並不屬於之一或多個分片的交易,且因此避免儲存區塊之交易識別符之有序序列的完整清單。
在框705中,節點提取表示如儲存於在框701中讀取之區塊資料中的區塊之局部默克爾樹的資料。
在框707中,節點設定局部默克爾樹當前層級指標為如藉由框705中提取之資料表示的局部默克爾樹的底部層級。
在框709中,節點組配通過局部完全默克爾樹之當前層級之樹節點的循環(該當前層級係如在框707中所設定藉由局部默克爾樹當前層級指標參考的底部層級)。此循環在局部默克爾樹之底部層級針對每一給定樹節點執行框711至717的操作。
在框711中,節點檢查確認給定樹節點是否為占位符。若否,則節點在框713中跳過樹節點,且繼續至框717。若否,則節點繼續至節點用來自在框703中提取之清單的對應交易識別符(散列值)替換占位符的框715,且操作繼續至框717。請注意,占位符與來自在框703中提取之清單的交易識別符(散列值)之間的對應可藉由局部默克爾樹之底部層級中占位符的排序與在框703中提取之清單中交易識別符的排序之間的對應指明。
在框717中,節點檢查確認局部默克爾樹之當前層級的任何更多樹節點(其不再藉由局部默克爾樹當前層級指標參考)是否保持在如在框709中組配之通過樹節點的循環中處理。若是,則操作恢復至框709以針對下一樹節點繼續循環。若否,則操作繼續至框719。
在框719中,節點設定局部默克爾樹當前層級至如藉由在框705中提取之資料表示的局部默克爾樹之下一層級(其係高於底部葉節點層級之層級)。
在框721中,節點檢查確認局部默克爾樹當前層級指標是否指向局部默克爾樹中的根部層級。若是,則操作繼續至框735。若否,則操作繼續至框723。
在框723中,節點組配通過局部全默克爾樹之當前層級之樹節點的循環(該局部全默克爾樹藉由如在框719或733中設定之局部默克爾樹當前層級指標參考)。此循環針對局部默克爾樹之當前層級的每一給定樹節點執行框725至731的操作。
在框725中,節點檢查確認給定樹節點是否為占位符。若否,則在框727中,節點跳過樹節點,且繼續至框731。若否,則節點繼續至節點基於給定樹節點之兩個子節點的散列值計算散列值且用此計算之散列值替換占位符的框729,且操作繼續至框729。
在框729中,節點檢查確認局部默克爾樹之當前層級的任何更多樹節點(其藉由局部默克爾樹當前層級指標參考)保持在如在框723中組配之通過樹節點的循環處理。若是,則操作恢復至框723以針對下一樹節點繼續循環。若否,則操作繼續至框733。
在框733中,節點調整局部默克爾樹當前層級指標以指向局部默克爾樹之下一層級,且操作恢復至框721以處理局部默克爾樹中的下一層級。
在框735中,節點基於如自框709至731之操作判定的根部節點之兩個子節點計算散列值,且用此所計算之散列值替換根部節點的占位符。
在框737中,節點提取如作為在框701中讀取之區塊資料之部分儲存於區塊之標頭中的默克爾根部散列值,且節點比較所提取之默克爾根部散列值與在框735中計算之局部默克爾樹的根部散列值。
在框739中,節點評估框737之比較值以判定所提取之默克爾根部散列值與框735中計算之局部默克爾樹之根部散列值是否匹配。若是,則操作繼續至框741。若否,則操作繼續至框755及757。
在框741中,節點針對區塊之有效性評估其他標頭條件。
在框743中,節點檢查確認框741之評估以判定針對區塊之有效性之所有其他標頭條件是否已被滿足。若是,則操作繼續至框745。若否,則操作繼續至框755及757。
在框745中,節點組配通過在框703中提取之交易識別符之清單的循環。交易識別符清單可能省略係與節點並不屬於之分片相關聯的交易,且因此避免儲存針對區塊之交易識別符之有序序列的完整清單。此循環針對此清單中之每一給定交易識別符執行框747至749的操作。
在框747中,節點檢查確認藉由給定交易識別符參考之交易是否為有效的。若藉由給定交易識別符參考之交易判定為有效的,則操作繼續至框749。若否,則操作繼續至框755及757。在實施例中,節點可檢查確認藉由給定交易識別符參考之交易是否儲存於節點屬於之分片的交易佇列(記憶體池)中。若是,則交易可被視為有效的,且操作繼續至框749。若否,則節點可與網路之另一節點通信,以請求並獲得交易之複本。一旦接收到,節點便可執行用於驗證接收到之交易的操作。此等驗證操作之實例在上文參看圖3A及圖3B之框307予以描述。在交易被認為有效的情況下,操作繼續至框749。在交易被視為無效的情況下,操作繼續至框755及757。
在框749中,節點檢查確認任何交易識別符保持在如在框745中組配之通過交易識別符的循環中處理。若是,則操作恢復至框745以針對清單中之下一交易識別符繼續循環。若否,則操作繼續至框751及753。
在框751中,節點產生且儲存將區塊標記為有效的資料。
在框753中,節點可傳播表示有效區塊之資料至屬於與節點相同之分片集合之其他節點。
在框755中,節點產生且儲存將區塊標記為無效的資料。
在框757中,節點可捨棄表示無效區塊之區塊資料且避免將表示無效區塊之區塊資料傳播至其他節點。節點亦可捨棄係如指派至分片之無效區塊之部分的一或多個交易之交易資料,且在適當時將此等交易之UTXO傳回至分片的UTXO設定。
圖8A說明例示性區塊的局部默克爾樹。
圖8B說明圖7A至圖7D之流程圖之框709至717對圖8A之局部默克爾樹的操作之結果。在此等操作中,局部默克爾樹之較低(葉)層級中之五個占位符已由作為在框703中提取之交易識別符之清單之部分的對應散列值(交易識別符)替換。
圖8C說明圖7A至圖7D之流程圖之框723至731對圖8A之局部默克爾樹的操作之結果。在此等操作中,局部默克爾樹之第二層級中的三個占位符已用自子節點散列值導出之散列值替換。
圖8D說明圖7A至圖7D之流程圖之框723至737對圖8A之局部默克爾樹的操作之結果。在此等操作中,局部默克爾樹之根部的散列值自子節點散列值導出,且與儲存於區塊之區塊標頭中之默克爾根部散列值比較以供驗證。
圖9係可用以實踐本揭露內容之至少一個實施例的計算裝置2600之說明性簡化方塊圖。在各種實施例中,計算裝置2600可用以實施上文所說明及描述之系統中之任一者。舉例而言,計算裝置2600可經組配以用作資料伺服器、網頁伺服器、攜帶型計算裝置、個人電腦或任何電子計算裝置。如圖9中所展示,計算裝置2600可包括可經組配以經由匯流排子系統2604與數個周邊子系統通信且以操作方式耦接至數個周邊子系統的一或多個處理器2602。作為如本文所描述之驗證花費交易的部分,處理器2602可用於處理使指令碼解除鎖定及鎖定。此等周邊子系統可包括儲存子系統2606,包含記憶體子系統2608及檔案/磁碟儲存子系統2610;一或多個使用者介面輸入裝置2612;一或多個使用者介面輸出裝置2614;及網路介面子系統2616。此儲存子系統2606可用於資訊,諸如與本揭露內容中描述之交易及區塊相關聯之細節的臨時或長期儲存。
匯流排子系統2604可提供用於使計算裝置2600之各種組件及子系統能夠按預期相互通信之機制。儘管匯流排子系統2604經示意性地展示為單一匯流排,但匯流排子系統之替換實施例可利用多個匯流排。網路介面子系統2616可提供至其他計算裝置及網路之介面。網路介面子系統2616可充當用於自其他來自計算裝置2600之系統接收資料及將資料傳輸至該等其他系統之一介面。舉例而言,網路介面子系統2616可使資料技術員能夠將裝置連接至一無線網路,使得資料技術員可能夠當在遠端位置(諸如,使用者資料中心)時傳輸及接收資料。匯流排子系統2604可用於將諸如細節、搜尋項目等之資料傳達至本揭露內容之監督模型,且可用於經由網路介面子系統2616將監督模型之輸出傳達至一或多個處理器2602及商家及/或債權人。
使用者介面輸入裝置2612可包括一或多個使用者輸入裝置,諸如鍵盤;指標裝置,諸如整合式滑鼠、軌跡球、觸控板或圖形平板電腦;掃描器;條形碼掃描器;併入至顯示器中之觸控螢幕;音訊輸入裝置,諸如語音辨識系統、麥克風;及其他類型之輸入裝置。一般而言,術語「輸入裝置」之使用意欲包括用於將資訊輸入至計算裝置2600之所有可能類型之裝置及機構。該一或多個使用者介面輸出裝置2614可包括顯示子系統、印表機或非視覺顯示器(諸如,音訊輸出裝置等)。顯示子系統可為陰極射線管(;cathode ray tubeCRT)、諸如液晶顯示器(flat - panel device;LCD)之平板裝置、發光二極體(light emitting diode;LED)顯示器或投影或其他顯示裝置。一般而言,術語「輸出裝置」之使用意欲包括用於自計算裝置2600輸出資訊的所有可能類型之裝置及機構。該一或多個使用者介面輸出裝置2614可用以(例如)呈現使用者介面以有助於使用者與執行描述之過程及其變化之應用程式互動(當此互動可為適當時)。
儲存子系統2606可提供用於儲存可提供本揭露內容之至少一個實施例之功能性的基本程式設計及資料建構的電腦可讀儲存媒體。應用程式(程式、程式碼模組、指令)在由一或多個處理器執行時可提供本揭露內容之一或多個實施例的功能性,且可儲存於儲存子系統2606中。此等應用程式模組或指令可由一或多個處理器2602執行。儲存子系統2606可另外提供用於儲存根據本揭露內容所使用之資料的儲存庫。儲存子系統2606可包括記憶體子系統2608及檔案/磁碟儲存子系統2610。
記憶體子系統2608可包括數個記憶體,包括用於在程式執行期間儲存指令及資料之主隨機存取記憶體(RAM) 2618及可儲存固定指令之唯讀記憶體(ROM) 2620。檔案/磁碟儲存子系統2610可提供用於程式及資料檔案之非暫時性永久(非揮發性)儲存,且可包括硬碟機、連同相關聯之抽取式媒體之軟碟機、緊密光碟唯讀記憶體(CD-ROM)驅動機、光碟機、抽取式媒體盒及其他類似儲存媒體。
計算裝置2600可包括至少一個本端時鐘2624。本端時鐘2624可為表示已自一特定開始日期發生的滴答聲之數目的計數器,且可整體位於計算裝置2600內。本端時鐘2624可用以以特定時脈脈衝同步化在用於計算裝置2600之處理器與其中包括之所有子系統中的資料傳送,且可用以協調計算裝置2600與資料中心中之其他系統之間的同步操作。在一個實施例中,本端時鐘2624為原子時鐘。在另一實施例中,本端時鐘為一可規劃間隔計時器。
計算裝置2600可具有各種類型,包括攜帶型電腦裝置、平板電腦、工作站或下文所描述之任何其他裝置。另外,計算裝置2600可包括可經由一或多個埠(例如,USB、頭戴式耳機插口、Lightning連接器等)連接至計算裝置2600的另一裝置。可連接至計算裝置2600之裝置可包括經組配以接受光纖連接器之多個埠。因此,此裝置可經組配以將光學信號轉換成可經由將裝置連接至計算裝置2600之埠傳輸的電信號以供處理。歸因於電腦及網路不斷改變之本質,出於說明裝置之較佳實施例之目的,圖9中所描繪之計算裝置2600之描述僅意欲作為特定實例。具有比圖9中所描繪之系統更多或更少組件的許多其他組態係可能的。
描述本發明之某些態樣或實施例之額外範例:
第1範例,一種用於維持跨越一分片化區塊鏈網路之數個節點之一區塊鏈之數個區塊的電腦實施之方法,其中每一節點為多個作用中分片中之一或多個分片的一成員,該方法包含:藉由一給定節點產生表示該區塊鏈之一新區塊的資料,該給定節點為該多個作用中分片之一特定子集的一成員;及藉由該給定節點儲存表示該新區塊之該資料;其中表示該新區塊之該資料包括i)針對為該新區塊之部分且與該多個作用中分片之該特定子集相關聯的交易之交易識別符的一清單,及/或ii)針對該新區塊之一局部默克爾樹(Partial Merkle Tree)。
第2範例,如第1範例之電腦實施之方法,其中:i)之交易識別符之該清單並不包括針對為該新區塊之部分且不與該多個作用中分片之該特定子集相關聯的交易之交易識別符。
第3範例,如第2範例之電腦實施之方法,其中:i)之交易識別符之該清單藉由以下操作來產生:基於包括於該新區塊中之資料構建針對該新區塊之交易識別符的一初始清單,及處理交易識別符之該初始清單以移除對應於一交易的任何交易識別符,該交易不與該多個作用中分片的該特定子集相關聯。
第4範例,如第1範例之電腦實施之方法,其中:ii)之該局部默克爾樹包括自為該新區塊之部分且不與該多個作用中分片之該特定子集相關聯的交易導出之散列值,同時省略自為該新區塊之部分且與該多個作用中分片之該特定子集相關聯的交易導出之散列值。
第5範例,如第1範例之電腦實施之方法,其中:ii)之該局部默克爾樹藉由以下操作來產生:基於包括於該新區塊中之資料構建針對該新區塊之一全默克爾樹,及處理該全默克爾樹以取代針對自為該新區塊之部分且與該多個作用中分片之該特定子集相關聯的交易導出之散列值的占位符。
第6範例,如第5範例之電腦實施之方法,其中:處理該全默克爾樹進一步包括自該全默克爾樹之一底部層級迭代至根部層級及移除針對一鄰接節點對之兩個散列值並留下一父散列值。
第7範例,如第5範例之電腦實施之方法,其中:處理該全默克爾樹進一步包括自該全默克爾樹之一底部層級迭代至根部層級且取代針對一父樹節點之該散列值的一占位符,該父樹節點具有兩個子節點,該兩個子節點並不都表示自不與該多個作用中分片之該特定子集相關聯之交易導出的一散列值。
第8範例,如第1範例之電腦實施之方法,該方法進一步包含:操作該節點以處理該局部默克爾樹以在不需要對該等交易進行存取的情況下計算針對區塊驗證之一默克爾根部散列值,該等交易為該區塊之部分且並不與該多個作用中分片之該特定子集相關聯。
第9範例,如第8範例之電腦實施之方法,其中:處理該局部默克爾樹以計算該默克爾根部散列值自該局部默克爾樹之一較低層級迭代至根部層級,並用自該局部默克爾樹之對應子散列值計算的一散列值替換一占位符。
第10範例,如第1範例之電腦實施之方法,其中i)之該交易識別符清單及ii)之該局部默克爾樹基於節點成員資格及該等交易在該等分片之間的分配而在該等節點之間發生變化。
第11範例,如第1範例之電腦實施之方法,其中:在產生表示該新區塊之該資料中,該節點驗證了為該新區塊之部分且與該多個作用中分片之該特定子集相關聯的交易,同時略過了為該新區塊之部分且不與該多個作用中分片之該特定子集相關聯的交易之驗證。
第12範例,如第1範例之電腦實施之方法,其中:為該新區塊之部分的該等交易基於交易識別符與該多個作用中分片之數個分片相關聯。
第13範例,如第1範例之電腦實施之方法,其中:為該新區塊之部分的該等交易基於一父區塊鏈交易與該多個作用中分片之數個分片相關聯,其中該父交易藉由對應於一子區塊鏈交易之一輸入的一輸出定義,且其中該父交易及該子交易兩者與同一分片相關聯。
第14範例,一種系統,其包含:一處理器;及包括可執行指令之記憶體,此等指令由於藉由該處理器之執行使得該系統執行至少部分如第1至14範例中任一項之電腦實施之方法。
第15範例,一種上面儲存有可執行指令之非暫時性電腦可讀儲存媒體,此等指令由於藉由一電腦系統之一處理器執行使得該電腦系統執行至少部分如第1至14範例中任一項之電腦實施之方法。
應注意,上文所提及之實施例說明而非限制本揭露內容,且熟習此項技術者將能夠設計許多替換性實施例而不偏離本揭露內容之如由附加申請專利範圍定義的範疇。在申請專利範圍中,置放於圓括號中的任何參考標識不應被認作限制申請專利範圍。詞語「包含」及其類似者並不排除除任何請求項或說明書中作為整體列出之彼等元件或步驟外的元件或步驟之存在。在本說明書中,「包含(comprise、comprising)」意謂「包括(include、including)或由……組成(consist of、consisting of)」。對元件之單數參考並不排除此類元件之複數參考,且反之亦然。本揭露內容可藉助於包含若干獨特元件之硬體且藉助於經合適程式化之電腦實施。在枚舉若干構件之裝置項中,此等構件中之若干者可藉由硬體之同一項目來體現。在彼此不同之獨立技術方案中敍述某些措施的純粹事實並非指示此等措施之組合不能有利地使用。
應理解,以上描述內容意欲為說明性且非限定性的。熟習此項技術者在閱讀及理解上文描述後將明白許多其他實施方案。儘管本揭露內容已參看特定實例實施方案予以描述,但應認識到,本揭露內容不限於所描述之實施方案但可在係在隨附申請專利範圍之範疇內的修改及變更情況下實踐。因此,本說明書及圖式應在說明性意義上而非限定性意義上對待。因此,應參考所附申請專利範圍連同申請專利範圍所具有的等效物之全部範疇來判定本揭露內容的範疇。
100:實例區塊鏈網路 102:節點 301、303、305、307、309、311、313、401、403、405、407、409、411、413、415、417、419、421、423、425、427、429、431、433、435、437、439、441、501、503、505、507、509、511、513、515、517、519、521、523、525、527、529、531、533、701、703、705、707、709、711、713、715、717、719、721、723、725、727、729、731、733、735、737、739、741、743、745、747、749、751、753、755、757:框 1216:區塊鏈分類帳 1221、1222、1223:區塊 1230:區塊標頭 1231(1)、1231(2)、1231(3):交易識別符 2600:計算裝置 2602:處理器 2604:匯流排子系統 2606:儲存子系統 2608:記憶體子系統 2610:檔案/磁碟儲存子系統 2612:使用者介面輸入裝置 2614:使用者介面輸出裝置 2616:網路介面子系統 2618:主隨機存取記憶體(RAM) 2620:唯讀記憶體(ROM) 2624:本端時鐘
本揭露內容之此等及其他態樣將自本文描述之實施例顯而易見且參考本文中所描述之實施例進行闡明。現在將僅藉助於實例且參看隨附圖式來描述本揭露內容的實施例,其中:
圖1A說明可實施各種實施例之區塊鏈網路。
圖1B說明區塊鏈分類帳及代表性區塊,其可藉由圖1A之區塊鏈網路維持且其中可實施各種實施例。
圖2說明一說明性分片化區塊鏈網路之節點連同藉由該等節點維持之分片化區塊鏈分類帳的資料結構。
圖3A及圖3B共同為說明產生並驗證以及挖掘區塊鏈交易作為分片化區塊鏈分類帳諸如圖2之分片化區塊鏈分類帳之部分的流程圖。
圖4A及圖4B共同地為描述藉由一節點施行之操作的流程圖,該節點並非驗證藉由挖掘者產生之新區塊中所有分片的成員。
圖5為描述藉由一節點施行之操作的流程圖,該節點並非構建新區塊之局部默克爾樹中所有分片的一成員。
圖6A至圖6D為圖5之操作的示意圖。
圖7A至圖7D共同地為描述藉由節點施行之操作的流程圖,該節點並非驗證藉由節點維持之區塊資料中所有分片的一成員;此類操作處理區塊之局部默克爾樹以計算局部默克爾樹的默克爾根部散列值。
圖8A至圖8D為圖7A至圖7D之操作的示意性說明。
圖9說明可實施各種實施例之計算環境。

Claims (14)

  1. 一種用於維持跨越一水平分片化區塊鏈網路之數個節點之一區塊鏈之數個區塊的電腦實施之方法,其中每一節點為多個作用中水平分片中之一或多個水平分片的一成員,該方法包含: 藉由一給定節點產生表示該區塊鏈之一新區塊的資料,該給定節點為該多個作用中水平分片之一特定子集的一成員;及 藉由該給定節點儲存表示該新區塊之該資料; 其中表示該新區塊之該資料包括i)針對為該新區塊之部分且與該多個作用中水平分片之該特定子集相關聯的交易之交易識別符的一清單,及/或ii)針對該新區塊之一局部默克爾樹(Partial Merkle Tree)。
  2. 如請求項1之電腦實施之方法,其中: i)中之交易識別符之該清單並不包括針對係該新區塊之部分且不與該多個作用中水平分片之該特定子集相關聯的交易之交易識別符。
  3. 如請求項2之電腦實施之方法,其中: i)中之交易識別符之該清單藉由以下操作來產生:基於包括於該新區塊中之資料構建針對該新區塊之交易識別符的一初始清單,及處理交易識別符之該初始清單以移除對應於一交易的任何交易識別符,該交易不與該多個作用中水平分片的該特定子集相關聯。
  4. 如請求項1之電腦實施之方法,其中: ii)中之該局部默克爾樹藉由以下操作來產生:基於包括於該新區塊中之資料構建針對該新區塊之一全默克爾樹,及處理該全默克爾樹以取代針對從係該新區塊之部分且與該多個作用中水平分片之該特定子集相關聯的交易所導出之散列值的占位符。
  5. 如請求項4之電腦實施之方法,其中: 處理該全默克爾樹進一步包括自該全默克爾樹之一底部層級迭代至根部層級及移除針對一鄰接節點對之兩個散列值並留下一父散列值。
  6. 如請求項4之電腦實施之方法,其中: 處理該全默克爾樹進一步包括自該全默克爾樹之一底部層級迭代至根部層級且取代針對一父樹節點之該散列值的一占位符,該父樹節點具有兩個子節點,該兩個子節點並不都表示自不與該多個作用中水平分片之該特定子集相關聯之交易所導出的一散列值。
  7. 如請求項1之電腦實施之方法,該方法進一步包含: 操作該節點以處理該局部默克爾樹以在不需要對該等交易進行存取的情況下計算針對區塊驗證之一默克爾根部散列值,該等交易為該區塊之部分且並不與該多個作用中水平分片之該特定子集相關聯。
  8. 如請求項7之電腦實施之方法,其中: 處理該局部默克爾樹以計算該默克爾根部散列值自該局部默克爾樹之一較低層級迭代至根部層級,並用自該局部默克爾樹之對應子散列值所計算的一散列值替換一占位符。
  9. 如請求項1之電腦實施之方法,其中 i)中之該交易識別符清單及ii)中之該局部默克爾樹基於節點成員資格及該等交易在該等水平分片之間的分配而在該等節點之間發生變化。
  10. 如請求項1之電腦實施之方法,其中: 在產生表示該新區塊之該資料中,該節點驗證了係該新區塊之部分且與該多個作用中水平分片之該特定子集相關聯的交易,同時略過了係該新區塊之部分且不與該多個作用中水平分片之該特定子集相關聯的交易之驗證。
  11. 如請求項1之電腦實施之方法,其中: 為該新區塊之部分的該等交易係基於交易識別符來與該多個作用中水平分片之數個分片相關聯。
  12. 如請求項1之電腦實施之方法,其中: 為該新區塊之部分的該等交易係基於一父區塊鏈交易來與該多個作用中水平分片之數個分片相關聯,其中該父交易藉由對應於一子區塊鏈交易之一輸入的一輸出定義,且其中該父交易及該子交易兩者與同一分片相關聯。
  13. 一種用於處理區塊鏈交易之系統,其包含: 一處理器;及 包括可執行指令之記憶體,此等指令由於藉由該處理器之執行使得該系統執行至少部分如請求項1至12中任一項之電腦實施之方法。
  14. 一種上面儲存有可執行指令之非暫時性電腦可讀儲存媒體,此等指令由於藉由一電腦系統之一處理器執行使得該電腦系統執行至少部分如請求項1至12中任一項之電腦實施之方法。
TW112117670A 2018-04-27 2019-04-25 用於維持經劃分之區塊鏈網路中區塊鏈之區塊之電腦實施之方法、系統及電腦可讀儲存媒體 TWI836988B (zh)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
GBGB1806911.2A GB201806911D0 (en) 2018-04-27 2018-04-27 A computer-implemented method and system
GB1806914.6 2018-04-27
GBGB1806907.0A GB201806907D0 (en) 2018-04-27 2018-04-27 A computer-implemented method and system
GB1806930.2 2018-04-27
GB1806909.6 2018-04-27
GBGB1806914.6A GB201806914D0 (en) 2018-04-27 2018-04-27 A computer-implemented method and system
GB1806911.2 2018-04-27
GB1806907.0 2018-04-27
GBGB1806930.2A GB201806930D0 (en) 2018-04-27 2018-04-27 Computer-implemented systems and methods
GBGB1806909.6A GB201806909D0 (en) 2018-04-27 2018-04-27 A computer-implemented method and system

Publications (2)

Publication Number Publication Date
TW202338646A true TW202338646A (zh) 2023-10-01
TWI836988B TWI836988B (zh) 2024-03-21

Family

ID=

Also Published As

Publication number Publication date
EP3785204A1 (en) 2021-03-03
US20210234665A1 (en) 2021-07-29
SG11202008894XA (en) 2020-11-27
KR20210003214A (ko) 2021-01-11
KR20210003212A (ko) 2021-01-11
JP2024032953A (ja) 2024-03-12
US11973869B2 (en) 2024-04-30
EP3785207A1 (en) 2021-03-03
US20240048378A1 (en) 2024-02-08
KR20210003132A (ko) 2021-01-11
CN112055864A (zh) 2020-12-08
CN112041873A (zh) 2020-12-04
EP3785208A1 (en) 2021-03-03
TW201946015A (zh) 2019-12-01
JP7362654B2 (ja) 2023-10-17
EP3785206A1 (en) 2021-03-03
TWI816781B (zh) 2023-10-01
US20210233074A1 (en) 2021-07-29
US11856100B2 (en) 2023-12-26
KR20210003213A (ko) 2021-01-11
WO2019207504A1 (en) 2019-10-31
KR20210003234A (ko) 2021-01-11
TWI820124B (zh) 2023-11-01
JP2021522710A (ja) 2021-08-30
JP7379371B2 (ja) 2023-11-14
US20240154807A1 (en) 2024-05-09
US20210243007A1 (en) 2021-08-05
SG11202009189XA (en) 2020-11-27
TW201946016A (zh) 2019-12-01
JP2023168539A (ja) 2023-11-24
CN112041872A (zh) 2020-12-04
JP2021522702A (ja) 2021-08-30
CN112041870A (zh) 2020-12-04
JP2021522709A (ja) 2021-08-30
SG11202008896QA (en) 2020-11-27
JP2021522704A (ja) 2021-08-30
US20210233065A1 (en) 2021-07-29
SG11202008987RA (en) 2020-11-27
SG11202008861TA (en) 2020-11-27
JP2024032950A (ja) 2024-03-12
WO2019207503A1 (en) 2019-10-31
TW201946018A (zh) 2019-12-01
CN112041873B (zh) 2024-04-19
TW201945974A (zh) 2019-12-01
TW201946017A (zh) 2019-12-01
TWI809096B (zh) 2023-07-21
JP2021522706A (ja) 2021-08-30
WO2019207500A1 (en) 2019-10-31
WO2019207502A1 (en) 2019-10-31
EP3785205A1 (en) 2021-03-03
CN112041871A (zh) 2020-12-04
US11743045B2 (en) 2023-08-29
WO2019207501A1 (en) 2019-10-31
JP2024032951A (ja) 2024-03-12
US20210240733A1 (en) 2021-08-05

Similar Documents

Publication Publication Date Title
TWI809096B (zh) 經劃分之區塊鏈網路中區塊鏈之區塊維持技術
CN114944932B (zh) 将区块添加到被许可的区块链的方法和系统
US11663090B2 (en) Method and system for desynchronization recovery for permissioned blockchains using bloom filters
EP3659086B1 (en) Computer-implemented system and method for managing a large distributed memory pool in a blockchain network
TW202405713A (zh) 去信任確定性狀態機之電腦實施方法
CN113711202A (zh) 用于在分布式数据库中实现状态证明和分类帐标识符的方法和装置
US20210160077A1 (en) Methods and systems for a consistent distributed memory pool in a blockchain network
US20220217004A1 (en) Systems and methods for non-parallelised mining on a proof-of-work blockchain network
JP2022551874A (ja) セキュアな共生(Symbiosis)マイニングのための方法および装置
TWI836988B (zh) 用於維持經劃分之區塊鏈網路中區塊鏈之區塊之電腦實施之方法、系統及電腦可讀儲存媒體
US20220277027A1 (en) Method and system for grouping of blockchain nodes