TWI721699B - 用於平行處理區塊鏈交易之系統及方法 - Google Patents
用於平行處理區塊鏈交易之系統及方法 Download PDFInfo
- Publication number
- TWI721699B TWI721699B TW108145068A TW108145068A TWI721699B TW I721699 B TWI721699 B TW I721699B TW 108145068 A TW108145068 A TW 108145068A TW 108145068 A TW108145068 A TW 108145068A TW I721699 B TWI721699 B TW I721699B
- Authority
- TW
- Taiwan
- Prior art keywords
- blockchain
- transaction
- block
- transactions
- data structure
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- 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
-
- 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/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/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
- 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
-
- 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/80—Wireless
- H04L2209/805—Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Power Engineering (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
提供了用於平行處理區塊鏈交易的方法、系統和裝置,包括編碼在電腦儲存媒體上的電腦程式。方法之一包括:獲得用於添加至區塊鏈的多個候選交易;將所述候選交易分組為一個或多個交易組;創建所述區塊鏈的最新區塊的資料結構的至少一部分的一個或多個副本;將所述一個或多個交易組分別與所述資料結構的所述一個或多個副本相關聯;執行每個所述交易組中的候選交易並更新所述資料結構的關聯副本;以及合併所述資料結構的更新副本,以獲得要添加至所述區塊鏈的新區塊的新資料結構的至少一部分。
Description
本申請一般涉及用於平行處理區塊鏈交易之方法及設備。
區塊鏈結合了網際網路的開放性和加密法的安全性,來提供一種更快、更安全的方式驗證金鑰資訊並建立信任。然而,區塊鏈交易的軟體和硬體性能在各種參數上仍然滯後於傳統分散式系統。在當前技術中,為執行多個交易,鎖定狀態樹以用於更新並在更新後解鎖,且交易在更新期間被串列執行。這種連續處理方式限制了區塊鏈的TPS(每秒交易)性能。例如,每秒只能夠執行7個比特幣交易。因此,期望提高區塊鏈系統的性能,諸如用於容納更大量的交易的執行效率。
本文各種實施例包括但不限於用於平行處理區塊鏈交易的系統、方法和非暫態電腦可讀媒體。
在一些實施例中,一種電腦實現的用於平行處理區塊鏈交易的方法,包括:獲得用於添加至區塊鏈的多個候選交易;將所述候選交易分組為一個或多個交易組;創建所述區塊鏈的最新區塊的資料結構的至少一部分的一個或多個副本;將所述一個或多個交易組分別與所述資料結構的所述一個或多個副本相關聯;執行每個所述交易組中的候選交易並更新所述資料結構的關聯副本;以及合併所述資料結構的更新副本,以獲得要添加至所述區塊鏈的新區塊的新資料結構的至少一部分。
在另一實施例中,所述一個或多個交易組是獨立交易組。
在又一實施例中,將所述候選交易分組一個或多個交易組,包括:將所述候選交易中均涉及至少一個共同交易帳戶的兩個或更多個候選交易分組在所述一個或多個交易組中的同一交易組下。
在還一實施例中,將所述候選交易分組為一個或多個交易組,包括:將所述候選交易中不涉及任何共同交易帳戶的兩個或更多個候選交易分組在所述一個或多個交易組中的不同交易組下。
在一些實施例中,所述區塊鏈基於帳戶/餘額模型;以及所述資料結構包括默克爾派特裡夏(Merkle Patricia)樹,其包括儲存在所述最新區塊中的單個狀態根節點以及未儲存在所述最新區塊中的多個中間節點和葉節點。
在另一實施例中,執行每個所述交易組中的候選交易並更新所述資料結構的關聯副本,包括:平行地執行每個所述交易組中的候選交易並更新所述資料結構的關聯副本。
在又一實施例中,執行相應的所述交易組中的候選交易,包括:由多核處理器執行相應的所述交易組中的候選交易。
在還一實施例中,更新所述資料結構的關聯副本包括以下中的至少一個:更新所述資料結構的關聯副本之一中的交易帳戶的餘額;移除所述交易帳戶;或添加新交易帳戶。
在一些實施例中,合併所述資料結構的更新副本包括:透過組合和合併在所述資料結構的更新副本中進行的更新來更新所述區塊鏈的所述最新區塊的所述資料結構的至少一部分。
在另一實施例中,所述方法還包括:將所述新區塊添加至所述區塊鏈,其中,所述新資料結構的所述部分包括新狀態根節點,且所述新區塊包括所述新狀態根節點。
在又一實施例中,一種用於平行處理區塊鏈交易的系統,包括:一個或多個處理器;以及耦接至所述一個或多個處理器且其上儲存有指令的一個或多個電腦可讀記憶體,所述指令可由所述一個或多個處理器執行以執行如前述任一實施例所述的方法。
在又一實施例中,一種用於平行處理區塊鏈交易的裝置,包括:用於執行執行如前述任一實施例所述的方法。
在一些實施例中,一種其上儲存有指令的非暫態電腦可讀媒體,當所述指令由設備的處理器執行時,促使所述設備執行如前述任一實施例所述的方法。
在另一實施例中,一種用於平行處理區塊鏈交易的系統,包括:一個或多個處理器;以及耦接至所述一個或多個處理器且其上儲存有指令的一個或多個電腦可讀記憶體,所述指令可由所述一個或多個處理器執行以促使所述系統執行操作,所述操作包括:獲得用於添加至區塊鏈的多個候選交易;將所述候選交易分組為一個或多個交易組;創建所述區塊鏈的最新區塊的資料結構的至少一部分的一個或多個副本;將所述一個或多個交易組分別與所述資料結構的所述一個或多個副本相關聯;執行每個所述交易組中的候選交易並更新所述資料結構的關聯副本;以及合併所述資料結構的更新副本以獲得要添加至所述區塊鏈的新區塊的新資料結構的至少一部分。
在又一實施例中,所述處理器包括多核處理器。
在還一實施例中,一種其上儲存有指令的非暫態電腦可讀媒體,當所述指令由所述一個或多個處理器執行時,促使所述一個或多個處理器執行操作,所述操作包括:獲得用於添加至區塊鏈的多個候選交易;將所述候選交易分組為一個或多個交易組;創建所述區塊鏈的最新區塊的資料結構的至少一部分的一個或多個副本;將所述一個或多個交易組分別與所述資料結構的所述一個或多個副本相關聯;執行每個所述交易組中的候選交易並更新所述資料結構的關聯副本;以及合併所述資料結構的更新副本以獲得要添加至所述區塊鏈的新區塊的新資料結構的至少一部分。
根據一些實施例,一種用於平行處理區塊鏈交易的裝置,包括:獲得模組,用於獲得用於添加至區塊鏈的多個候選交易;分組模組,用於將所述候選交易分組為一個或多個交易組;創建模組,用於創建所述區塊鏈的最新區塊的資料結構的至少一部分的一個或多個副本;關聯模組,用於將所述一個或多個交易組分別與所述資料結構的所述一個或多個副本相關聯;執行模組,用於執行每個所述交易組中的候選交易並更新所述資料結構的關聯副本;以及合併模組,用於合併所述資料結構的更新副本以獲得要添加至所述區塊鏈的新區塊的新資料結構的至少一部分。
本文所公開的實施例具有一個或多個技術效果,在一些實施例中,在共識驗證(挖掘)候選交易池之後並且在執行之前,候選交易可以被分組為各種獨立組。在其他實施例中,候選交易組可以由更新狀態樹的副本的多核處理器(例如,CPU)同時執行。在其他實施例中,透過創建狀態樹資料結構的副本,可以在副本中平行處理獨立候選交易組,而不必鎖定資料結構。在其他實施例中,在更新所有獨立組之後,可以合併狀態樹資料結構的副本以獲得新區塊的新資料結構,從而實現新區塊的有效挖掘。在一些實施例中,可以顯著改善諸如TPS和其他處理效率測量的區塊鏈性能。
在參考附圖考慮以下描述和所附申請專利範圍之後,本文公開的系統、方法和非暫態電腦可讀媒體的這些特徵和其它特徵,以及操作方法和結構的相關元件的功能以及部件的組合和製造的經濟性將變得更加明顯,所有附圖形成本文的一部分,其中,在各個附圖中,相同的附圖標記表示對應的部件。然而,應當清楚地理解,附圖僅用於說明和描述的目的,而不意圖進行限制。
因為操作由網路中的各個節點(例如,計算設備)執行,區塊鏈可以被認為是去中心化的資料庫,通常被稱為分散式帳本。任何資訊都可以被寫入並被保存至區塊鏈中或從區塊鏈被讀取。任何人都可以建立伺服器並作為節點加入區塊鏈網路。任何節點都可以透過執行諸如雜湊計算的複雜計算以向當前區塊鏈添加區塊,從而對維持區塊鏈貢獻計算能力,並且所添加的區塊可以包含各種類型的資料或資訊。可以用代幣(例如,數位貨幣單位)對為所添加的區塊貢獻計算能力的節點進行獎勵。由於區塊鏈沒有中心節點,所以每個節點是等同的,並且保存整個區塊鏈資料庫。
節點是例如支援區塊鏈網路並保持其平穩運行的計算設備或大型電腦系統。在示例性“工作量證明”系統中,存在兩種類型的節點,全節點和輕節點。全節點保存區塊鏈的完整副本。區塊鏈網路上的全節點驗證它們接收的交易和區塊,並將這些交易和區塊中繼到連接的對等點,以提供交易的共識驗證。另一方面,輕節點僅下載區塊鏈的一小部分。例如,輕節點用於數位貨幣交易。當輕節點想要進行交易時,輕節點將與全節點通信。
這種去中心化屬性可以説明防止處於控制位置的管理中心出現。例如,比特幣/乙太坊區塊鏈的維護是由運行區域中(裝有)比特幣/乙太坊軟體的通信節點組成的網路執行。也就是說,取代傳統意義上的銀行、機構或管理員,多個中間角色以執行比特幣/乙太坊軟體的電腦伺服器的形式存在。這些電腦伺服器形成經由網際網路連接的網路,其中任何人都可能加入該網路。由網路容納的交易可以是“用戶A想向用戶B發送Z個比特幣/乙太幣”的形式,其中利用準備好的可用軟體應用將交易組播至網路。電腦伺服器用作比特幣/乙太坊伺服器,所述伺服器可被操作以驗證這些金融交易,將他們的記錄添加至其帳本的副本中,然後將這些帳本組播添加至網路的其他伺服器。本文使用一個或多個區塊鏈或數位貨幣,例如比特幣和乙太幣。本領域的普通技術人員應當理解本文所公開的技術方案可以使用或應用於其他類型的區塊鏈和數位貨幣。
圖1示出了根據各種實施例的用於執行各種所公開的步驟和方法的示例性系統100。如圖所示,區塊鏈網路可以包括多個區塊鏈節點(例如,節點1、節點2、…、節點i)。區塊鏈節點可以在伺服器、電腦等中實施。每個區塊鏈節點可以對應於透過諸如TCP/IP的各種類型的通信方法耦接在一起的一個或多個物理硬體設備或虛擬裝置。取決於分類,區塊鏈節點可以包括全節點、Geth節點、共識節點等。在一個示例中,在“工作量證明”系統下,區塊鏈節點可以包括礦工的設備,所述設備應用它們的硬體和計算能力來驗證區塊鏈的區塊並接收獎勵。不執行此類驗證的區塊鏈節點包括輕節點。在另一示例中,在“權益/服務證明”系統下,具有一定級別投票權的區塊鏈節點可以被稱為共識/主節點,與非共識節點不同,其承擔了交易驗證的責任。共識節點可以生成新的區塊鏈區塊並為區塊鏈做出決策,例如,為區塊鏈設置服務費。共識節點可以與大量加密貨幣相關聯,並基於共同商定的特定共識規則驗證新的交易。在本文中,上述或另一區塊鏈系統中的全節點、共識節點或其他等效節點可以作為區塊鏈節點驗證交易。
此外,如圖1中所示的,用戶A可能想要透過將用戶A的帳戶中的一些資產轉移至用戶B的帳戶中,來與用戶B交易。用戶A和用戶B可使用安裝有用於交易的適當區塊鏈軟體(例如,加密貨幣錢包)的相應設備。用戶A的設備可稱為發起節點A,其發起與用戶B的設備(稱為接收節點B)的交易。節點A可透過與節點1的通信來存取區塊鏈,節點B可透過與節點2的通信來存取區塊鏈。例如,節點A和節點B可經過節點1和節點2向區塊鏈提交交易,以請求將交易添加到區塊鏈。在區塊鏈之外,節點A和節點B可以具有其他通信通道(例如,不經過節點1和節點2的常規網際網路通信)。在一些實施例中,節點A上的區塊鏈軟體可以被認為是區塊鏈節點1的前端,並且區塊鏈節點1運行區塊鏈軟體的後端。
圖1中的每個節點可以包括處理器(例如,多核處理器)和配置有指令的非暫態電腦可讀儲存媒體,所述指令可由處理器執行以促使節點(例如,處理器)執行本文描述的用於平行處理區塊鏈交易的各種步驟。每個節點可以安裝有軟體(例如,交易程式)和/或硬體(例如,有線、無線連接)以與其他節點和/或其他設備通信。例如,諸如節點A和節點B的用戶設備可以安裝有諸如加密貨幣錢包的用戶端軟體,且區塊鏈節點可以安裝有區塊鏈交易處理軟體。節點硬體和軟體的進一步細節稍後參考圖6進行描述。
區塊鏈節點可以各自耦接至記憶體。在一些實施例中,記憶體可以儲存池資料庫,池資料庫可以被多個區塊鏈節點以分散式方式存取。例如,池資料庫可以分別儲存在區塊鏈節點的記憶體中。池資料庫可以儲存透過諸如由用戶操作的節點A和節點B的一個或多個用戶設備提交的多個交易。
在一些實施例中,在接收到未確認的交易的交易請求後,可以將未確認的交易儲存在池資料庫中。一個或多個區塊鏈節點可以執行共識驗證以驗證該未確認的交易。在驗證成功時,區塊鏈節點可以將交易打包以添加至區塊鏈。如果驗證失敗,則未確認的交易被拒絕。
驗證交易並添加至區塊鏈的過程被稱為“挖礦”,且那些進行此類維護的被獎勵以最新創建的比特幣/乙太幣和交易費。例如,區塊鏈節點可以基於區塊鏈網路已同意的共識規則集來確定交易是否有效。礦工可位於任何大陸上,並透過驗證每一交易是有效的以及將該交易添加至區塊鏈中來處理支付。透過由多個礦工提供的共識實現這種驗證,並且假定不存在系統串通。最後,所有資料將是一致的,因為計算必須滿足某些要求才是有效的,並且所有區塊鏈節點將被同步以確保區塊鏈是一致的。因此,資料可以被一致地儲存在區塊鏈節點的分散式系統中。
透過挖礦過程,交易諸如資產轉移被網路節點驗證並被添加至區塊鏈的區塊的增長鏈中。透過遍歷整個區塊鏈,驗證可包括例如付款方是否有權存取轉帳資產、資產是否以前已經被花費、轉帳金額是否正確等。例如,在由諸如發起者節點的發送方簽發並提交至所耦接的區塊鏈節點的假設交易中,所耦接的區塊鏈節點可以將提出的交易廣播至區塊鏈網路以便區塊鏈節點挖礦。礦工需要根據區塊鏈歷史檢查交易是否有資格被執行。如果根據現有的區塊鏈歷史,發送方的錢包餘額具有足夠的資金,則認為交易是有效的,並且可以將該交易添加至區塊中。資產轉移一旦被驗證,其可以被包含於下一待被添加至區塊鏈的區塊中。
區塊非常像資料庫記錄。每次寫入資料時創建一個區塊。這些區塊被連結並使用密碼術被保護以成為互連的網路。每個區塊都連接至前一區塊,這也是名稱“區塊鏈”的起源。每個區塊通常包含前一區塊的加密雜湊值、生成時間和實際資料。例如,每個區塊包含兩個部分:記錄當前區塊的特徵值的區塊頭,以及記錄實際資料(例如,交易資料)的主體。區塊的鏈透過區塊頭連結。每個區塊頭可以包含多個特徵值,例如版本、前一區塊雜湊值、默克爾(Merkle)根、時間戳記、難度目標和工作量證明隨機數(或簡稱為隨機數)。前一區塊雜湊值不僅包含前一區塊的位址,而且包含前一區塊內部的資料的雜湊值,從而使得區塊鏈不可變。隨機數是當被包括時產生具有指定數量的前導零位元的雜湊值的數。
為了挖礦,區塊鏈節點獲得新區塊的內容的雜湊值。隨機數(例如,隨機字串)被附加到該雜湊值,從而獲得新字串。新字串被再次進行雜湊處理。然後,將最終的雜湊值與難度目標(例如,級別)進行比較,並確定最終的雜湊值是否實際小於難度目標。如果最終的雜湊值不小於難度目標,則改變隨機數,並且再次重複該過程。如果最終的雜湊值小於難度目標,則將所述區塊添加至鏈中,更新公開帳本並提醒所述添加。負責成功添加的區塊鏈節點獲得比特幣/乙太幣獎勵,例如,透過向新區塊添加對自身的獎勵交易。附加地或可選地,交易發起方可以包括交易費來獎勵成功挖掘出最新添加至區塊的交易的區塊鏈節點。
即,對於每個輸出“Y”,如果k是從最小熵(min-entropy)高的分佈中選擇的,則不可能找到輸入x以使得H(k|x)=Y,其中k是隨機數,x是區塊的雜湊值,Y是難度目標,並且“|”表示級聯(concatenation)。由於加密雜湊值基本上是隨機的,由於加密雜湊值的輸出不能從其輸入預測,僅存在一種找到隨機數的已知方法:一個接一個地嘗試整數,例如1、然後2、然後3、等等,這可以被稱為蠻力。前導零的數量越大,找到必需的隨機數Y所花費的平均時間就越長。在一個示例中,比特幣系統不斷地調整前導零的數量,使得找到隨機數的平均時間約為十分鐘。這樣,由於計算硬體的處理能力隨著時間提高,接下來幾年,比特幣協議將只需要更多的前導零位元,以使得實現挖礦總是花費大約十分鐘的持續時間。
如上所述,雜湊處理是區塊鏈的重要基礎。可以將雜湊演算法理解為將任何長度的訊息壓縮成固定長度訊息摘要的函數。MD5和SHA是更常使用的。在一些實施例中,區塊鏈的雜湊值長度是256位元,這意味著無論原始內容是什麼,最終都計算256位元的二進位數字。並且只要原始內容不同,就可以保證相應的雜湊值是唯一的。例如,字串“123”的雜湊值是
a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0(十六進位),其當被轉換為二進位時具有256位元,並且僅“123”具有這個雜湊值。區塊鏈中的雜湊演算法是不可逆的,即,正向計算是容易的(從“123”至
a8fdc205a9f19cc1c7507a60c4f01b1c7507a60c4f01b13d11d7fd0),並且即使耗盡所有計算資源,也不能完成逆向計算。因此,區塊鏈的每個區塊的雜湊值是唯一的。
此外,如果區塊的內容改變,則其雜湊值也將改變。區塊和雜湊值一一對應,並且針對區塊頭具體計算每個區塊的雜湊值。即,連接區塊頭的特徵值以形成長字串,然後為所述字串計算雜湊值。例如,“雜湊值=SHA256(區塊頭)”是區塊雜湊值計算公式,SHA256是應用於區塊頭的區塊鏈雜湊演算法。雜湊值由區塊頭而不是區塊主體唯一地確定。如上所述,區塊頭包含許多內容,包括當前區塊的雜湊值和前一區塊的雜湊值。這意味著如果當前區塊的內容改變,或者如果前一區塊的雜湊值改變,則將導致當前區塊中的雜湊值改變。如果駭客修改了區塊,則所述區塊的雜湊值改變。由於下一區塊必須包含前一區塊的雜湊值,為了使後面的區塊連接至被修改的區塊,駭客必須依次修改所有隨後的區塊。否則,被修改的區塊將脫離區塊鏈。由於設計原因,雜湊值計算是耗時的,幾乎不可能在短時間內修改多個區塊,除非駭客已經掌握了整個網路51%以上的計算能力。因此,區塊鏈保證了其自身的可靠性,並且一旦資料被寫入,資料就不能被篡改。
一旦礦工找到了新區塊的雜湊值(即,合格的簽名或解決方案),礦工就將該簽名廣播至所有其它礦工(區塊鏈節點)。現在,其它礦工依次驗證所述解決方案是否與發送方的區塊的問題相對應(即,確定雜湊值輸入是否實際上導致所述簽名)。如果所述解決方案是有效的,則其它礦工將確認該解決方案,並同意可將新區塊添加至區塊鏈。因此,達成了新區塊的共識。這也被稱為“工作量證明”。已經達成共識的區塊現在可以被添加至區塊鏈中,並且與其簽名一起被廣播至網路上的所有區塊鏈節點。只要區塊內的交易在所述時間點正確地對應於當前錢包餘額(交易歷史),區塊鏈節點就將接受該區塊並將保存該區塊於節點的交易資料。每當在所述區塊的頂部添加新的區塊時,所述添加還可算作為對其之前的區塊的另一“確認”。例如,如果交易被包括在區塊502中,並且區塊鏈有507個區塊,這意味著交易具有五個確認(對應於區塊507至區塊502)。交易具有越多的確認,攻擊者就越難改變。
如圖所述,區塊鏈是具有共用狀態的加密安全交易單例機。“加密安全”可以指示數位貨幣的創建是透過複雜的數學演算法來保證的,這些演算法很難破解。它們使得幾乎不可能欺騙系統(例如,創建虛假交易、擦除交易等)。“交易單例機”可以指示機器的單個規範實例負責在系統中創建的所有交易。換句話說,每個人都相信單個全域事實。“具有共用狀態”可以指示儲存在這台機器上的狀態是共用的,並且對所有人開放。比特幣和乙太幣都實現了區塊鏈範式,但是基於區塊鏈交易背景下討論的不同模型。所描述的模型僅僅是示例性的,並且所公開的系統和模型可以基於其他模型來實現。
在一些實施例中,為了將某些資產轉移到用戶B,用戶A可以透過區塊鏈節點構建包含關於交易的資訊的記錄。交易的主題可以包括例如貨幣、代幣、數位貨幣、合約、契約、醫療記錄、客戶明細、股票、債券、股權或可以以數位形式描述的任何其他資產。記錄可以用用戶A的簽名金鑰(私密金鑰)簽名,並包含用戶A的驗證公開金鑰和用戶B的驗證公開金鑰。與在新區塊中的相同時間視窗內發生的其他記錄捆綁的記錄可以被廣播到全節點。在接收到記錄後,全節點可以將記錄合併到區塊鏈系統中發生的所有交易的帳本中,透過上述挖礦過程將新區塊添加到先前接受的區塊鏈,並針對網路的共識規則驗證新區塊。
比特幣基於UTXO(未被花費的交易輸出)模型。根據UTXO,資產由尚未被花費的區塊鏈交易的輸出表示,所述輸出可以用作新交易中的輸入。對於每個交易,輸出可以不小於輸入。例如,用戶A的待轉移的資產可以是UTXO的形式。為了花費(交易)資產,用戶A必須用私密金鑰簽名。比特幣是使用UTXO模型的數位貨幣的示例。在有效的區塊鏈交易的情況下,未被花費的輸出可用於實現進一步的交易。在一些實施例中,在進一步的交易中可以僅使用未被花費的輸出,以防止重複交易和欺詐。為此,區塊鏈上的輸入在交易發生時被刪除,同時創建UTXO形式的輸出。這些未被花費的交易輸出可以(由私密金鑰持有者,例如,具有數位貨幣錢包的人)用於未來交易。
乙太坊基於帳戶/餘額模型(或稱為基於帳戶的交易模型),其持續跟蹤每個帳戶的餘額作為全域狀態。在交易中,檢查帳戶餘額,以確保帳戶餘額大於或等於花費的交易金額。提供了帳戶/餘額模型如何在乙太坊中工作的示例:
1. Alice透過挖礦獲得5個乙太幣。在系統中記錄Alice具有5個乙太幣。
2. Alice想給Bob 1個乙太幣,因此系統將首先從Alice的帳戶中扣除1個乙太幣,因此Alice現在具有4個乙太幣。
3. 然後,系統將Bob的帳戶增加1個乙太幣。該系統知道Bob本來有2個乙太幣,因此Bob的餘額增加到3個乙太幣。
乙太坊區塊鏈可以被視為基於交易的狀態機。在電腦科學中,狀態機指的是讀取一系列輸入的東西,並且基於這些輸入,將轉換到新狀態。在帳戶/餘額模型下,區塊鏈(例如,乙太坊區塊鏈)開始於“起源狀態”,其對應於區塊鏈的第一個區塊(起源區塊)。從這一點(第0塊的起源狀態)開始,諸如交易、合約和挖礦等活動將不斷改變區塊鏈的“狀態”。例如,當執行交易時,該起源狀態轉換到狀態1,然後在執行更多交易時轉換到狀態2,等等。乙太坊的狀態將數百萬個交易分組為“區塊”。區塊包含一系列交易,並且每個區塊與其前一區塊連結在一起,如前所述。要使從一個狀態轉換到下一狀態,交易必須有效。一個交易要被視為有效,它會經歷前面描述的稱為挖礦的驗證處理。對應於上面提到的“具有共用狀態的交易單例機”,正確的當前狀態是單個全域事實,每個區塊鏈節點必須接受該事實。
乙太坊的全域狀態包括帳戶位址和帳戶狀態之間的映射。帳戶能夠透過訊息傳遞框架相互交互。每個帳戶具有與之關聯的狀態和20位元組的位址。乙太坊中的位址是用於標識任何帳戶的160位元識別字。存在兩種類型的帳戶:外部擁有的帳戶,其由私密金鑰控制且沒有與之關聯的代碼;以及合約帳戶,其由合約代碼控制並具有與之相關的代碼。外部擁有的帳戶可以透過創建交易並使用其私密金鑰對交易簽名,將訊息發送到其他外部擁有的帳戶或其他合約帳戶。兩個外部擁有的帳戶之間的訊息只是價值轉移。但是,從外部擁有的帳戶到合約帳戶的訊息會啟動合約帳戶的代碼,允許它執行各種動作(例如,轉移代幣、寫入內部儲存設備、造新的代幣、執行一些計算、創建新合約等)。與外部擁有的帳戶不同,合約帳戶無法自行發起新的交易。而是,合約帳戶只能回應於他們接收到的其他交易(來自外部擁有的帳戶或來自其他合約帳戶)觸發交易。因此,在乙太坊區塊鏈上發生的任何動作都可以透過從外部控制的帳戶觸發的交易來啟動。
帳戶狀態可以包括四個組成部分,無論帳戶類型如何,它們都存在:帳戶隨機數、餘額、儲存根(
storageRoot)和代碼雜湊值(codeHash)。對於帳戶隨機數,如果該帳戶是外部擁有的帳戶,則該數字表示從該帳戶的位址發送的交易數量。如果該帳戶是合約帳戶,則該隨機數是該帳戶創建的合約數量。餘額是該地址擁有的Wei的數量。每個乙太幣有1e+18個Wei。儲存根是默克爾派特裡夏樹(Merkle Patricia Tree(MPT))的狀態根節點的雜湊值。該樹對該帳戶的儲存內容的雜湊值進行編碼且預設情況下為空。代碼雜湊值是該帳戶的EVM(乙太坊虛擬機器)代碼的雜湊值。對於合約帳戶,代碼雜湊值是被雜湊處理並儲存為代碼雜湊值的代碼。對於外部擁有的帳戶,代碼雜湊值欄位是空字串的雜湊值。
帳戶位址和帳戶狀態之間的映射儲存在稱為默克爾派特裡夏樹(Merkle Patricia Tree(MPT))的資料結構中。默克爾派特裡夏樹是一種Merkle樹(或者也稱為“Merkle trie”),默克爾樹是一種狀態樹,狀態樹是一種資料結構。默克爾樹是包括節點集的二叉樹,其中有:樹底部包含底層資料的大量葉節點,中間節點集,每個中間節點是其兩個子節點的雜湊值,以及單個狀態根節點,也由其兩個子節點的雜湊值形成,表示樹的頂部。透過將待儲存的資料分成塊,然後將塊分成桶(bucket),隨後獲得每個桶的雜湊值並重複相同的過程直到剩餘的所有雜湊值變為一個根雜湊值,來生成樹底部的資料。該樹需要其中儲存的每個值都具有一個鍵。從樹的狀態根節點開始,鍵應指示要跟進哪個子節點以獲得儲存在葉節點中的相應值。在乙太坊中,狀態樹的鍵/值映射是位址與其關聯帳戶之間的映射,包括每個帳戶的餘額、隨機數、代碼雜湊值和儲存根(其中儲存根本身就是一個樹)。這種相同的樹結構也用於儲存交易和收據。例如,每個區塊具有一個“頭”,它儲存三個不同的默克爾樹結構的狀態根節點的雜湊值,包括:狀態樹、交易樹、收據樹。儘管使用狀態樹作為示例,但是在所公開的系統和方法中可以使用各種其他樹和資料結構。
參照圖2。圖2示出了根據各種實施例的示例性區塊鏈中的兩個區塊(區塊N和區塊N+1)和對應的狀態樹。圖2中示出的節點可以指代資料結構中的節點,而不是節點1、節點A等被稱為區塊鏈節點的設備。如圖所示,每個區塊包含前一區塊的雜湊值,從而創建區塊鏈。區塊N(和任何區塊)中的狀態根節點包含整個區塊鏈系統中所有帳戶(外部帳戶和合約帳戶)的狀態摘要。狀態根節點可以由根雜湊值表示。每個塊可以儲存根雜湊值,並且可以透過基於根雜湊值查詢資料庫來獲得狀態樹,並且該區塊可以不必儲存整個狀態樹。
例如,帳戶A是參與交易的帳戶之一,帳戶A可以在區塊N的狀態根節點下的某個位置找到。在添加新區塊N+1之前,區塊N是區塊鏈的最新節點。帳戶A的節點分支為儲存帳戶資訊的各種節點,例如,10個乙太幣的餘額。假設當新的區塊N+1被挖掘並附加到區塊鏈時,系統中只有一個變化:向帳戶A添加5個乙太幣。該變化由新計算的雜湊值(在塊N+1的狀態樹中)示出,其通向區塊N+1的新狀態根節點,而其他子節點與前一區塊映射。在交易之後,帳戶A的帳戶餘額更新為狀態根節點下的同一節點位置處的15個乙太幣。MPT結構現在顯示了其實用性,因為它允許在變化後快速計算狀態樹根,而無需計算整個樹。
透過在區塊中提供狀態根節點,作為接受該新區塊並確認其中的交易的一部分,組成區塊鏈系統的所有區塊鏈節點必須就整個系統的狀態達到相同視圖。因此,系統中的每個區塊鏈節點,作為在將已挖掘區塊包括在區塊鏈中之前驗證該已挖掘區塊的一部分,必須獨立地運行新的交易和計算(如果這些交易中的一些是針對合約的),更新所有帳戶的相應狀態,並得出相同的最終結果。
使用默克爾派特裡夏樹的另一個好處是該結構的狀態根節點在加密方面依賴於儲存在樹中的資料,因此狀態根節點的雜湊值可以用作該資料的安全標識。在乙太坊中的樹上執行的每個函數(放置、修改和刪除)使用確定性加密雜湊。由於區塊頭包括狀態、交易和收據樹的根雜湊值,因此任何區塊鏈節點可以驗證乙太坊狀態的一小部分而無需儲存整個狀態,整個狀態的大小可能是無限的。樹的狀態根節點的唯一加密雜湊值可以用作樹未被篡改的證據。此外,更新樹是有效的。例如,如果區塊鏈節點想要添加、修改或刪除葉子,則區塊鏈節點可以修改葉子,然後更新從該葉子到該樹的根的路徑上的每個節點,而不必更改同一棵樹中的相關路徑部分。
在交易中,區塊頭中的狀態需要經常更新。例如,帳戶的餘額和隨機數經常變化,經常插入新帳戶,並且經常插入和刪除儲存的金鑰。透過更新狀態樹來實現交易的執行。如果執行成功,則提交狀態樹更新,並且不再進行進一步的更改。如果執行失敗,則狀態樹將在執行前恢復為原始狀態。
圖3A示出了根據各種實施例的用於平行處理區塊鏈交易的示例性步驟300。步驟300可以由圖1的系統100的一個或多個元件(例如,節點A、節點1、節點A和節點1的組合、節點2、節點i)來實現。為了說明圖3A中的某些步驟,圖3B示出了根據各種實施例的狀態樹的兩個副本的示例性合併。下面的操作旨在說明。取決於實現,示例性步驟可以包括以各種順序或並存執行的附加、更少或替代步驟。
在步驟301,可以提交多個候選交易用於挖掘。候選交易可以儲存在池資料庫中。
在步驟302,候選交易可以被分組為各種獨立組(例如,交易組G1、G2、…、GN)。“獨立”可以表明這些組彼此不干擾。在一些實施例中,均涉及至少一個共同交易帳戶(common transaction account)的任何兩個或更多個候選交易可以被分組在相同(交易)組下,並且不涉及任何共同交易帳戶的任何兩個或更多個候選交易可以被分組在不同(交易)組下。例如,對於候選交易池,A向B發送內容,B向C發送內容,D向E發送內容,A和B之間以及B和C之間的交易可以一起分組在第一組下,因為B是兩個交易中涉及的共同交易帳戶,並且D和E之間的交易可以放在第二組中,因為C和D不涉及第一個組中的兩個交易中的任何一個。
在步驟303,可以創建當前區塊(區塊鏈的最新區塊)的狀態樹的至少一部分的副本。當前區塊的狀態樹可以被標記為T0,並且副本可以被標記為T1,T2,…,TN。副本的數量可以對應於獨立組的數量。例如,可以創建狀態樹的根雜湊值的副本,並且透過基於根雜湊值的副本查詢資料庫,可以獲得狀態樹的副本。
在步驟304,獨立組可以對應地與副本相關聯。例如,G1與T1相關聯得到(G1, T1)。類似地,可以獲得(G2, T2)…(GN, TN)。
在步驟305,基於關聯的副本Ti執行每個獨立組Gi中的交易。透過執行,針對組更新狀態樹的關聯副本。當在每個組內執行每個交易時,狀態樹的相應副本被更新(對於成功交易)或恢復到原始狀態(對於失敗交易)。在樹結構中,可以基於父節點的子節點更新父節點。在圖3A和圖3B中,同一副本的背景變暗以指示交易執行的完成。
在一些實施例中,更新可以應用於下級節點而不應用於上級節點(對於不同級別的節點,參見圖2)。下級節點可以捕獲帳戶變化,例如對帳戶的任何添加、刪除和修改,以及帳戶內的變化,例如餘額變化。可以在下一步驟更新通向狀態根節點的上級節點。例如,參考圖3B,G1與副本1相關聯,並且G2與副本2相關聯。圖3B示出了副本1和副本2,其狀態樹副本分別基於G1和G2更新。變暗的儲存格表示在交易執行中已更新的節點。在副本1和副本2中,節點K1、節點K2和狀態根節點是上級節點,在合併步驟之前可能不需要更新。在副本1中,帳戶B已從350更新為300,帳戶A尚未更新。在副本2中,帳戶A已從10更新為15,帳戶B尚未更新。葉節點處的更新可以向上傳播以更新上面的節點。合併副本1和2以在下一步驟306中獲得合併的狀態樹。在合併的狀態樹中,組合對帳戶A和帳戶B的更新。此外,隨著K1更新到K3,K2更新到K4,並且狀態根節點更新到新狀態根節點,對上級節點的更新可被傳播。
可選地,在一些實施例中,可以更新包括副本的狀態根節點的上級節點,並且可以在下一合併步驟期間再次更新上級節點。例如,副本1和副本2的狀態樹副本可以分別基於G1和G2一直更新到狀態根節點,從而獲得副本1的更新的狀態根節點1,以及副本2的更新的狀態根節點2。更新的狀態根節點1和更新的狀態根節點2(以及當有更多交易組時類似的更新的狀態根節點)可以在下一步中使用,以透過查詢資料庫獲得它們各自的葉節點,然後組合葉節點並向上傳播以獲得新的狀態根節點。
在步驟306,在執行所有N個組以後,將狀態樹的更新副本合併到新狀態樹T0。在一個示例中,為了合併狀態樹的更新副本,可以將在步驟305已經更新的節點(例如,葉節點和/或中間節點)合併到狀態樹T0中(例如,更新舊節點值、添加新節點/帳戶、刪除舊節點/帳戶)。由於原始分組確保組是獨立的,因此合併不會改變在步驟305執行的更新。在合併之後,葉節點可以向上傳播以獲得父節點等等,直到到達新的狀態根節點。例如,可以更新上級節點以生成下一區塊的狀態根節點來添加到區塊鏈。還可以透過基於新狀態根節點查詢資料庫來獲得整個新狀態樹。由於狀態樹是MPT,因此狀態根節點是基於節點值確定的,並且與資料更新的順序無關。只要分組正確,就可以準確、快速地獲得下一區塊的狀態根節點。
圖4示出了根據各種實施例的用於平行處理區塊鏈交易的示例性方法400的流程圖。方法400可以由圖1的系統100的一個或多個元件(例如,節點A、節點1、節點A和節點1的組合、節點2、節點i)來實現。方法400可以由一個或多個區塊鏈節點實現。方法400可以由系統或設備(例如,電腦,伺服器)實現。該系統或設備可以包括一個或多個處理器以及一個或多個非暫態電腦可讀儲存媒體(例如,一個或多個記憶體),其耦接到一個或多個處理器並配置有可由一個或多個處理器執行以促使所述系統和設備(例如,處理器)執行方法400的指令。以下呈現的方法400的操作旨在說明。取決於實現,示例性方法400可以包括以各種順序或並存執行的附加、更少或替代步驟。
框441包括:獲得用於添加到區塊鏈的多個候選交易。例如,各種輕節點可以向各種全節點提交候選交易以請求對區塊鏈進行驗證和添加。
框442包括:將候選交易分組為一個或多個交易組。在一些實施例中,一個或多個交易組是獨立交易組。在一些實施例中,將候選交易分組為一個或多個交易組包括:將均涉及至少一個共同交易帳戶的兩個或更多個候選交易分組在一個或多個交易組中的同一交易組下。例如,一個或多個獨立交易組中的每一個不包括受另一獨立交易組中的另一候選交易影響的候選交易。例如,均涉及同一交易帳戶的任何兩個候選交易可以被分組在同一交易組下。在一些實施例中,將候選交易分組為一個或多個交易組包括:將不涉及任何共同交易帳戶的兩個或更多個候選交易分組在一個或多個交易組中的不同交易組下。例如,一個或多個獨立交易組中的每一個不包括涉及完全不同的交易帳戶的兩個候選交易。例如,涉及完全不同的交易帳戶的任何兩個候選交易可以分組在不同的交易組下。
框443包括:創建區塊鏈的最新區塊的資料結構(例如,狀態樹)的至少一部分的一個或多個副本。在一些實施例中,資料結構可以包括狀態樹或另一類似的資料結構。資料結構的該部分可以包括狀態樹的狀態根節點或者可以包括狀態樹的下級節點。對於狀態樹,可以使用狀態根節點來表示狀態樹。可以透過基於狀態根節點查詢資料庫來獲得狀態樹的中間節點和葉節點。因此,資料結構或資料結構的一部分的副本可以指(1)狀態根節點的副本,(2)狀態根節點和資料結構的另一部分的副本,(3)完整的資料結構副本等。
在一些實施例中,區塊鏈基於帳戶/餘額模型;資料結構包括默克爾派特裡夏樹,其包括儲存在最新區塊中的單個狀態根節點以及未儲存在最新區塊中的多個中間節點和葉節點。
框444包括:分別將一個或多個交易組與資料結構(例如,狀態樹)的一個或多個副本相關聯。例如,交易組可以分別與最新區塊的狀態根節點的副本相關聯。可以透過查詢資料庫獲得完整的副本狀態樹。
框445包括:執行每個交易組中的候選交易並更新資料結構(例如,狀態樹)的關聯副本。例如,可以更新資料結構(例如,狀態樹)的關聯副本以執行每個交易組中的候選交易。在一些實施例中,執行每個交易組中的候選交易並更新資料結構的關聯副本包括:並存執行每個交易組中的候選交易並且更新資料結構的關聯副本。
在一些實施例中,執行對應的交易組中的候選交易包括:由多核處理器執行對應的交易組中的候選交易。也就是說,可以例如透過多核處理器平行處理交易組。可以委派每個核來處理一個交易組。處理每個交易組可以包括透過更新資料結構的關聯副本來處理交易組中的候選交易。因此,平行處理交易組可以顯著提高整體處理速度。
在一些實施例中,更新資料結構的關聯副本包括:更新資料結構的關聯副本之一中的交易帳戶的餘額、移除交易帳戶、和/或添加新交易帳戶。所述更新可以包括對本文公開的各種資料結構節點的各種其他改變。
框446包括:合併資料結構的更新副本以獲得要添加到區塊鏈的新區塊的新資料結構(例如,新狀態樹)的至少一部分。例如,新資料結構的一部分可以包括新狀態根節點。獲得的新資料結構具有新狀態根節點以包括在新區塊中,從而添加到區塊鏈。在一些實施例中,合併資料結構的更新副本包括:透過組合和合併在資料結構的更新副本中進行的至少一部分更新,來更新區塊鏈的最新區塊的資料結構的至少一部分。如參考圖3A和圖3B所討論的那樣,可以合併對各種資料結構副本的改變以生成新資料結構的至少一部分。透過從葉節點向中間節點並向上更新,可以獲得新狀態根節點。
可選框447包括:將新區塊添加到區塊鏈。新資料結構的一部分包括新狀態根節點,並且新區塊包括新狀態根節點。
圖5示出了根據一些實施例的用於執行區塊鏈合約的系統510的方塊圖。系統510(例如,電腦系統)可以是節點1、節點2、節點A、節點B或類似設備,或者任何節點和附加設備的組合(例如,節點1和節點A)的實現的示例。例如,方法400可以由系統510實現。系統510可以包括一個或多個處理器以及一個或多個非暫態電腦可讀儲存媒體(例如,一個或多個記憶體),其耦接到一個或多個處理器並配置有可由一個或多個處理器執行以促使所述系統或設備(例如,處理器)執行上述例如方法400的方法和操作的指令。系統510可以包括與指令的各種單元/模組(例如,軟體指令)。
在一些實施例中,系統510可以被稱為用於平行處理區塊鏈交易的裝置。該裝置可以包括獲得模組511,用於獲得用於添加到區塊鏈的多個候選交易;分組模組512,用於將候選交易分組為一個或多個交易組;創建模組513,用於創建區塊鏈的最新區塊的資料結構的至少一部分的一個或多個副本;關聯模組514,用於將一個或多個交易組分別與資料結構的一個或多個副本相關聯;執行模組515,用於執行每個交易組中的候選交易並更新資料結構的關聯副本;合併模組516,用於合併資料結構的更新副本,以獲得新區塊的新資料結構的至少一部分,從而添加到區塊鏈。可選地,該裝置還可以包括添加模組517,用於將新區塊添加到區塊鏈,其中,新資料結構的一部分包括新狀態根節點,且新區塊包括新狀態根節點。
這裡描述的技術由一個或多個專用計算設備實現。專用計算設備可以是桌上型電腦系統、伺服器電腦系統、可擕式電腦系統、手持設備、網路設備或包含硬連線和/或程式邏輯以實現這些技術的任何其他設備或設備的組合。專用計算設備可以被實現為個人電腦、膝上型電腦、蜂巢式電話、照相電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件設備、遊戲控制台、平板電腦、可穿戴設備或其組合。計算設備通常由作業系統軟體控制和協調。傳統的作業系統控制和調度用於執行的電腦進程,執行記憶體管理,提供檔案系統、網路、I/O服務,以及提供使用者介面功能,例如圖形化使用者介面(“GUI”)等。這裡描述的各種系統、裝置、儲存媒體、模組和單元可以在專用計算設備或者一個或多個專用計算設備的一個或多個計算晶片中實現。在一些實施例中,這裡描述的指令可以在專用計算設備上的虛擬機器中實現。當被執行時,指令可以促使專用計算設備執行本文描述的各種方法。虛擬機器可以包括軟體、硬體或其組合。
圖6是示出了可以在其上實現本文描述的任何實施例的電腦系統600的方塊圖。系統600可以執行本文描述的任何方法(例如,方法400和)。系統600可以在本文描述的任何系統(例如,系統100或510)中實現。系統600可以在本文描述的任何節點中實現,並且被配置為執行用於平行處理區塊鏈交易的相應步驟。電腦系統600包括用於交流資訊的匯流排602或其他通信機制、與匯流排602耦接的用於處理資訊的一個或多個硬體處理器604。例如,硬體處理器604可以是一個或多個通用微處理器。
電腦系統600還包括耦接至匯流排602的用於儲存資訊和要由處理器604執行的指令的主記憶體606,諸如隨機存取記憶體(RAM)、快取記憶體和/或其他動態儲存設備。主記憶體606還可以用於在執行可由處理器604執行的指令期間儲存臨時變數或其他中間資訊。當這些指令儲存在處理器604可存取的儲存媒體中時,將電腦系統600呈現到為執行指令中指定的操作而定制的專用機器中。電腦系統600還包括唯讀記憶體(ROM)608或耦接到匯流排602的用於儲存靜態資訊和處理器604的指令的其他靜態儲存設備。提供諸如磁片、光碟或USB拇指驅動器(快閃記憶體驅動器)等的儲存設備610並將其耦接到匯流排602以儲存資訊和指令。
電腦系統600可使用定制的硬接線邏輯、一個或多個ASIC或FPGA、韌體和/或程式邏輯,其與電腦系統結合而使得電腦系統600成為專用機器或將電腦系統600程式設計成為專用機器,來實現本文描述的技術。根據一個實施例,本文描述的操作、方法和過程由電腦系統600回應於處理器604執行主記憶體606中包含的一個或多個指令的一個或多個序列來執行。這些指令可以從諸如儲存設備610的另一儲存媒體讀取到主記憶體606中。執行主記憶體606中包含的指令序列會使得處理器604執行本文描述的處理步驟。在替代實施例中,可以使用硬連線電路代替軟體指令或與軟體指令組合。
主記憶體606、ROM 608和/或儲存設備610可包括非暫時性儲存媒體。這裡使用的術語“非暫時性媒體”和類似術語是指儲存促使機器以特定方式操作的資料和/或指令的媒體,所述媒體不包括暫時性信號。這種非暫時性媒體可以包括非易失性媒體和/或易失性媒體。例如,非易失性媒體包括光碟或磁片,諸如儲存設備610。易失性媒體包括動態儲存裝置器,諸如主記憶體606。常規形式的非暫時性媒體包括,例如,軟磁碟、軟碟、硬碟、固態驅動器、磁帶或任何其他磁資料儲存媒體、CD-ROM、任何其他光學資料儲存媒體、具有孔圖案的任何物理媒體、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他記憶體晶片或盒式磁帶以及它們的網路版本。
電腦系統600還包括耦接到匯流排602的網路介面618。網路介面618為連接到一個或多個本地網路的一個或多個網路連結提供雙向資料通信耦合。例如,網路介面618可以是整合式服務數位網路(ISDN)卡、纜線數據機、衛星數據機、或者向相應類型的電話線提供資料通信連接的數據機。作為另一示例,網路介面618可以是區域網路(LAN)卡以提供資料通信連接至相容的LAN(或與WAN通信的WAN組件)。還可以實現無線鏈路。在任何這種實施中,網路介面618發送和接收攜帶表示各種類型資訊的數位資料流程的電信號、電磁信號或光信號。
電腦系統600可透過網路、網路連結和網路介面618來發送訊息和接收包括程式碼的資料。在網際網路示例中,伺服器可透過網際網路、ISP、本地網路和網路介面618來傳送應用程式的請求代碼。
接收到的代碼可在接收時由處理器604執行,和/或儲存在儲存設備610或其他非易失性記憶體中,用於以後執行。
前面部分中描述的每個處理、方法和演算法可以體現在由包括電腦硬體的一個或多個電腦系統或者電腦處理器執行的代碼模組中並且被其完全或部分自動化地實現。處理和演算法可以部分或全部地在專用電路中實現。
上述各種特徵和處理可彼此獨立地使用,或者可以各種方式組合。所有可能的組合和子組合都旨在落入本文的範圍內。另外,在一些實施方式中可以省略某些方法或處理框。本文描述的方法和處理也不限於任何特定順序,與其相關的框或狀態可以以適當的其他循序執行。例如,所描述的框或狀態可以以不同於具體公開的循序執行,或者多個框或狀態可以在單個框或狀態中組合。框或狀態的示例可以串列、平行或以某種其他方式執行。可以將框或狀態添加到所公開的實施例中或從所公開的實施例中移除。這裡描述的系統和元件的示例可以與所描述的不同地被配置。例如,與所公開的實施例相比,可以添加、移除或重新佈置元件。
本文描述的方法的各種操作可以至少部分地由被臨時配置(例如,透過軟體)或被永久配置為執行相關操作的一個或多個處理器執行。無論是臨時配置還是永久配置,這樣的處理器可以構成處理器實現的引擎,所述處理器實現的引擎用於執行本文描述的一個或多個操作或功能。
類似地,這裡描述的方法可以至少部分地由處理器實現,其中特定處理器是硬體的示例。例如,所述方法的至少一些操作可以由一個或多個處理器或處理器實現的引擎執行。此外,一個或多個處理器還可操作以支持“雲端計算”環境中的相關操作的性能,或作為“軟體即服務”(SaaS)操作。例如,至少一些操作可以由一組電腦(作為包括處理器的機器的示例)執行,這些操作可以經由網路(例如,網際網路)經由一個或多個適當的介面(例如,應用程式介面(API))被存取。
某些操作的性能可以在處理器之間分配,不僅駐留在單個機器中,而且跨多個機器被部署。在一些實施例中,處理器或處理器實現的引擎可以位於單個地理位置(例如,在家庭環境、辦公室環境或伺服器群內)。在其他實施例中,處理器或處理器實現的引擎可以分佈在多個地理位置。
在本文中,多個實例可以實現作為單個實例所描述的元件、操作或結構。儘管一個或多個方法的各個操作被示出並描述為獨立的操作,但是可以同時執行一個或多個獨立的操作,並且不需要以所示的循序執行所述操作。在配置中作為獨立元件呈現的結構和功能可以實現為組合結構或元件。類似地,作為單個元件呈現的結構和功能可以實現為獨立的元件。這些和其他變化、修改、添加和改進都落入本文中的主題的範圍內。此外,這裡使用的相關術語(諸如“第一”、“第二”、“第三”等)不表示任何順序、高度或重要性,而是用於將一個元件與另一元件區分開。此外,術語“一”、“一個”和“多個”在本文中並不表示對數量的限制,而是表示存在至少一個所述的物品。
儘管已經參考具體實施例描述了主題的概述,但是在不脫離本文的實施例的較寬範圍的情況下,可以對這些實施例進行各種修改和改變。具體實施方式不應被視為具有限制意義,並且各種實施例的範圍僅由所附申請專利範圍以及這些申請專利範圍所賦予的等同物的全部範圍限定。
100:示例性系統
300:步驟
301:步驟
302:步驟
303:步驟
304:步驟
305:步驟
306:步驟
400:示例性方法
441:框
442:框
443:框
444:框
445:框
446:框
447:框
510:系統
511:獲得模組
512:分組模組
513:創建模組
514:關聯模組
515:執行模組
516:合併模組
517:添加模組
600:電腦系統
602:匯流排
604:處理器
606:主記憶體
608:唯讀記憶體(ROM)
610:儲存設備
618:網路介面
[圖1] 示出了根據各種實施例的用於平行處理區塊鏈交易的示例性系統。
[圖2] 示出了根據各種實施例的區塊鏈的兩個示例性區塊和對應的狀態樹。
[圖3A] 示出了根據各種實施例的用於平行處理區塊鏈交易的示例性方法的流程圖。
[圖3B] 示出了根據各種實施例的兩個狀態樹副本的示例性合併。
[圖4] 示出了根據各種實施例的用於平行處理區塊鏈交易的示例性方法的流程圖。
[圖5] 示出了根據各種實施例的用於平行處理區塊鏈交易的示例性裝置的流程圖。
[圖6] 示出了可實施本文描述的任意實施例的示例性電腦系統的方塊圖。
Claims (12)
- 一種電腦實現的用於平行處理區塊鏈交易的方法,包括:獲得用於添加至區塊鏈的多個候選交易;將所述候選交易分組為一個或多個交易組;創建所述區塊鏈的最新區塊的狀態樹資料結構的至少一部分的一個或多個副本;將所述一個或多個交易組分別與所述區塊鏈的所述最新區塊的所述狀態樹資料結構的所述一個或多個副本相關聯,其中所述一個或多個交易組尚未被添加至所述區塊鏈;透過執行每個所述交易組中的候選交易並透過更新所述區塊鏈的所述最新區塊的所述狀態樹資料結構的關聯副本以平行地處理所述一個或多個交易組,其中所述狀態樹資料結構的所述更新關聯副本尚未被添加至所述區塊鏈;透過合併所述狀態樹資料結構的更新關聯副本以產生新狀態根節點;產生包括所述新狀態根節點的新區塊;以及傳送包括所述新狀態根節點的所述新區塊至一個或多個區塊鏈節點以供共識驗證,其中包括所述新狀態根節點的所述新區塊在透過所述區塊鏈的多個節點的所述新區塊的共識驗證後被添加至所述區塊鏈。
- 如請求項1所述的方法,其中:所述一個或多個交易組是獨立交易組。
- 如請求項1所述的方法,其中,將所述候選交易分組為一個或多個交易組,包括:將所述候選交易中均涉及至少一個共同交易帳戶的兩個或更多個候選交易分組在所述一個或多個交易組中的同一交易組下。
- 如請求項1所述的方法,其中,將所述候選交易分組為一個或多個交易組,包括:將所述候選交易中不涉及任何共同交易帳戶的兩個或更多個候選交易分組在所述一個或多個交易組中的不同交易組下。
- 如請求項1所述的方法,其中:所述狀態樹資料結構包括默克爾派特裡夏Merkle Patricia樹,其包括儲存在所述最新區塊中的單個狀態根節點以及未儲存在所述最新區塊中的多個中間節點和葉節點。
- 如請求項1所述的方法,其中,執行相應的所述交易組中的候選交易,包括:由多核處理器執行相應的所述交易組中的候選交易。
- 如請求項1所述的方法,其中,更新所述狀態樹資料結構的關聯副本包括以下中的至少一個:更新所述狀態樹資料結構的關聯副本之一中的交易帳戶的餘額;移除所述交易帳戶;或添加新交易帳戶。
- 如請求項1所述的方法,其中,合併所述狀態樹資料結構的更新關聯副本,包括:透過組合和合併在所述狀態樹資料結構的更新副本中進行的更新,來更新所述區塊鏈的所述最新區塊的所述狀態樹資料結構的至少一部分。
- 如請求項1所述的方法,其中:在所述新區塊被添加至所述區塊鏈後,包括所述新狀態根節點的所述新區塊被同步至所述區塊鏈的每個節點上的所述區塊鏈的本地副本。
- 一種用於平行處理區塊鏈交易的系統,包括:一個或多個處理器;以及耦接至所述一個或多個處理器且其上儲存有指令的一個或多個電腦可讀記憶體,所述指令能由所述一個或多個處理器執行以執行如請求項1至9中任一項所述的方法。
- 一種用於平行處理區塊鏈交易的裝置,包括用於執行如請求項1至9中任一項所述的方法的多個模組。
- 一種其上儲存有指令的非暫態電腦可讀儲存媒體,當所述指令由一個或多個處理器執行時,促使所述一個或多個處理器執行如請求項1至9中任一項所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
WOPCT/CN2019/080036 | 2019-03-28 | ||
PCT/CN2019/080036 WO2019120320A2 (en) | 2019-03-28 | 2019-03-28 | System and method for parallel-processing blockchain transactions |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202037108A TW202037108A (zh) | 2020-10-01 |
TWI721699B true TWI721699B (zh) | 2021-03-11 |
Family
ID=66994287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108145068A TWI721699B (zh) | 2019-03-28 | 2019-12-10 | 用於平行處理區塊鏈交易之系統及方法 |
Country Status (10)
Country | Link |
---|---|
US (2) | US11310032B2 (zh) |
EP (1) | EP3610450A4 (zh) |
JP (1) | JP6955026B2 (zh) |
KR (1) | KR102315473B1 (zh) |
CN (1) | CN110869967B (zh) |
AU (1) | AU2019204722B2 (zh) |
CA (1) | CA3055108C (zh) |
SG (1) | SG11201908294TA (zh) |
TW (1) | TWI721699B (zh) |
WO (1) | WO2019120320A2 (zh) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111466096B (zh) | 2017-09-08 | 2021-12-31 | 尤利杰公司 | 提供不可变记录的系统和方法 |
CN111567009B (zh) * | 2017-10-04 | 2022-07-12 | 阿尔戈兰德公司 | 声明式智能合约 |
US11956346B2 (en) * | 2018-08-31 | 2024-04-09 | Simplecredit Micro-Lending Co., Ltd. | Blockchain system, information sharing method and related equipment |
WO2019120334A2 (en) * | 2019-04-12 | 2019-06-27 | Alibaba Group Holding Limited | Performing parallel execution of transactions in a distributed ledger system |
SG11201910057QA (en) | 2019-04-12 | 2019-11-28 | Alibaba Group Holding Ltd | Performing parallel execution of transactions in a distributed ledger system |
CN111767337B (zh) * | 2019-05-24 | 2024-04-05 | 北京沃东天骏信息技术有限公司 | 区块的验证方法、装置及设备 |
US10764062B2 (en) * | 2019-06-03 | 2020-09-01 | Alibaba Group Holding Limited | Blockchain ledger compression |
CN111837115B (zh) * | 2019-07-11 | 2024-09-10 | 创新先进技术有限公司 | 共享的区块链数据存储 |
WO2019179540A2 (en) | 2019-07-11 | 2019-09-26 | Alibaba Group Holding Limited | Shared blockchain data storage |
WO2019179539A2 (en) | 2019-07-11 | 2019-09-26 | Alibaba Group Holding Limited | Shared blockchain data storage |
CN110445627B (zh) * | 2019-08-12 | 2021-10-26 | 腾讯科技(深圳)有限公司 | 群组更新方法、装置、计算机设备以及计算机存储介质 |
US10992459B2 (en) * | 2019-08-30 | 2021-04-27 | Advanced New Technologies Co., Ltd. | Updating a state Merkle tree |
US10831452B1 (en) * | 2019-09-06 | 2020-11-10 | Digital Asset Capital, Inc. | Modification of in-execution smart contract programs |
CN110599169B (zh) * | 2019-09-16 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、终端及介质 |
JP2021057887A (ja) * | 2019-09-29 | 2021-04-08 | 工藤 健司 | データ構造 |
KR102335058B1 (ko) * | 2019-11-19 | 2021-12-06 | 한양대학교 산학협력단 | 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법, 이를 이용하는 블록체인 노드 및 프로그램 |
US11520776B1 (en) | 2020-02-11 | 2022-12-06 | Two Six Labs, LLC | Consensus protocol for blockchain structure |
CN111343177B (zh) * | 2020-02-25 | 2022-11-29 | 百度在线网络技术(北京)有限公司 | 轻量级节点的监管方法、装置、设备和介质 |
WO2021184325A1 (en) * | 2020-03-19 | 2021-09-23 | Wang Chau Tyler Kot | Ethereum state data storage optimization method, ethereum system and storage medium |
CN111432009B (zh) * | 2020-03-30 | 2023-04-07 | 深圳壹账通智能科技有限公司 | 一种区块链数据的同步方法、装置及电子设备、存储介质 |
CN111506783B (zh) | 2020-04-08 | 2023-12-22 | 百度在线网络技术(北京)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
SG11202102371QA (en) * | 2020-04-15 | 2021-04-29 | Alipay Hangzhou Inf Tech Co Ltd | Distributed blockchain data storage under account model |
SG11202103246SA (en) | 2020-04-20 | 2021-04-29 | Alipay Hangzhou Inf Tech Co Ltd | Distributed blockchain data storage under account model |
CN111640020B (zh) * | 2020-05-22 | 2023-09-19 | 百度在线网络技术(北京)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
CN111651790B (zh) * | 2020-06-11 | 2023-04-11 | 上海分布信息科技有限公司 | 一种开放区块链中隐私信息的保护方法及系统 |
CN111861744A (zh) * | 2020-06-30 | 2020-10-30 | 上海简苏网络科技有限公司 | 一种实现区块链交易并行化的方法及区块链节点 |
US11563559B2 (en) | 2020-07-29 | 2023-01-24 | International Business Machines Corporation | Parallel processing of blockchain procedures |
CN111935315B (zh) * | 2020-09-25 | 2021-01-12 | 支付宝(杭州)信息技术有限公司 | 区块同步方法及装置 |
KR102473672B1 (ko) * | 2020-10-20 | 2022-12-02 | 주식회사 커먼컴퓨터 | 트리 구조의 상태 데이터베이스를 포함하는 블록체인에 대한 상태 관리 방법 및 시스템 |
KR102378377B1 (ko) * | 2020-11-13 | 2022-03-24 | 고려대학교 산학협력단 | 스마트 컨트랙트 내의 취약 트랜잭션 시퀀스 획득 장치 및 방법 |
CN113077344B (zh) * | 2021-04-15 | 2023-06-30 | 恒生电子股份有限公司 | 基于区块链的交易方法、装置、电子设备及存储介质 |
CN113256417B (zh) * | 2021-05-14 | 2022-07-12 | 杭州链网科技有限公司 | 一种基于交易共享的共识出块方法及系统 |
CN113592639B (zh) * | 2021-05-21 | 2023-10-13 | 上海简苏网络科技有限公司 | 一种区块链交易删除方法及系统 |
KR102309503B1 (ko) * | 2021-05-28 | 2021-10-07 | 주식회사 바스스토어 | 블록체인을 이용한 트랜잭션 방법, 노드 장치 및 컴퓨터 판독 가능한 기록 매체 |
US11790353B2 (en) * | 2021-06-16 | 2023-10-17 | Song Hwan KIM | System and method for online/offline payment with virtual currency for nodes included in mobile-based blockchain distributed network |
US11836714B2 (en) * | 2021-07-07 | 2023-12-05 | Ava Labs, Inc. | Secure and trustworthy bridge for transferring assets across networks with different data architecture |
CN113641664A (zh) * | 2021-07-13 | 2021-11-12 | 华中科技大学 | 一种适用于图式区块链的轻量化数据存储装置及方法 |
CN113704917B (zh) * | 2021-08-27 | 2024-07-09 | 清华大学 | 基于本体的机械产品数字孪生模型演化管理方法及装置 |
US11936794B2 (en) * | 2021-09-16 | 2024-03-19 | Masterard International Incorporated | Method and system for parallel processing of smart contracts in permissioned blockchains |
US11854009B2 (en) * | 2021-10-07 | 2023-12-26 | Chia Network Inc. | Method for pooling in a proof-of-space-based blockchain via singletons |
EP4213438A1 (en) * | 2022-01-13 | 2023-07-19 | Unify Patente GmbH & Co. KG | Method and system for multi-block mining by a single node, in (a) single round(s), under different consensus schemes |
CN114500433B (zh) * | 2022-01-21 | 2024-04-19 | 北京送好运信息技术有限公司 | 基于区块链与默克尔树的多邮件数据保全方法 |
GB2615598A (en) * | 2022-02-15 | 2023-08-16 | Nchain Licensing Ag | Attesting to a set of unconsumed transaction outputs |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018144302A1 (en) * | 2017-01-31 | 2018-08-09 | Rush Thomas Jay | Blockchain data-processing engine |
TW201837821A (zh) * | 2017-04-07 | 2018-10-16 | 張華升 | 區塊鏈網路及其操作方法 |
CN109146677A (zh) * | 2017-06-14 | 2019-01-04 | 深圳区块链金融服务有限公司 | 并行构建区块链视图的方法、计算机系统和可读存储介质 |
US20190081793A1 (en) * | 2017-09-12 | 2019-03-14 | Kadena, LLC | Parallel-chain architecture for blockchain systems |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9594644B2 (en) * | 2014-09-19 | 2017-03-14 | Sybase, Inc. | Converting a serial transaction schedule to a parallel transaction schedule |
US10114970B2 (en) | 2015-06-02 | 2018-10-30 | ALTR Solutions, Inc. | Immutable logging of access requests to distributed file systems |
US10042782B2 (en) | 2015-06-02 | 2018-08-07 | ALTR Solutions, Inc. | Immutable datastore for low-latency reading and writing of large data sets |
US10366247B2 (en) | 2015-06-02 | 2019-07-30 | ALTR Solutions, Inc. | Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data |
US10075298B2 (en) | 2015-06-02 | 2018-09-11 | ALTR Solutions, Inc. | Generation of hash values within a blockchain |
US10089489B2 (en) | 2015-06-02 | 2018-10-02 | ALTR Solutions, Inc. | Transparent client application to arbitrate data storage between mutable and immutable data repositories |
US9881176B2 (en) | 2015-06-02 | 2018-01-30 | ALTR Solutions, Inc. | Fragmenting data for the purposes of persistent storage across multiple immutable data structures |
US10193696B2 (en) | 2015-06-02 | 2019-01-29 | ALTR Solutions, Inc. | Using a tree structure to segment and distribute records across one or more decentralized, acylic graphs of cryptographic hash pointers |
US10121019B2 (en) | 2015-06-02 | 2018-11-06 | ALTR Solutions, Inc. | Storing differentials of files in a distributed blockchain |
WO2017112664A1 (en) * | 2015-12-21 | 2017-06-29 | Kochava Inc. | Self regulating transaction system and methods therefor |
US10255108B2 (en) * | 2016-01-26 | 2019-04-09 | International Business Machines Corporation | Parallel execution of blockchain transactions |
KR101735708B1 (ko) | 2016-02-02 | 2017-05-15 | 주식회사 코인플러그 | 파일에 대한 노터리 서비스를 제공하고 상기 노터리 서비스를 사용하여 기록된 파일에 대한 검증을 수행하는 방법 및 서버 |
US10417217B2 (en) | 2016-08-05 | 2019-09-17 | Chicago Mercantile Exchange Inc. | Systems and methods for blockchain rule synchronization |
CN106330431A (zh) | 2016-08-29 | 2017-01-11 | 北京瑞卓喜投科技发展有限公司 | 基于区块链技术的数据处理方法、装置及系统 |
WO2018125989A2 (en) | 2016-12-30 | 2018-07-05 | Intel Corporation | The internet of things |
US20180247191A1 (en) | 2017-02-03 | 2018-08-30 | Milestone Entertainment Llc | Architectures, systems and methods for program defined entertainment state system, decentralized cryptocurrency system and system with segregated secure functions and public functions |
CN106980649B (zh) | 2017-02-28 | 2020-07-10 | 创新先进技术有限公司 | 写入区块链业务数据的方法和装置及业务子集合确定方法 |
US10762479B2 (en) * | 2017-04-05 | 2020-09-01 | Samsung Sds Co., Ltd. | Method and system for processing blockchain-based real-time transaction |
EP3631719A1 (en) | 2017-05-26 | 2020-04-08 | Nchain Holdings Limited | Script-based blockchain interaction |
CA3065319A1 (en) * | 2017-06-01 | 2018-12-06 | Schvey, Inc. d/b/a/ Axoni | Distributed privately subspaced blockchain data structures with secure access restriction management |
AU2018277270A1 (en) * | 2017-06-01 | 2019-11-07 | Etoro Group Ltd. | Smart contract for copy trading |
CN107423961B (zh) | 2017-07-11 | 2024-06-14 | 北京泛融科技有限公司 | 一种基于随机相关性分析的优化共识方法 |
US10761877B2 (en) | 2017-07-21 | 2020-09-01 | Intel Corporation | Apparatuses, methods, and systems for blockchain transaction acceleration |
US20190065593A1 (en) | 2017-08-28 | 2019-02-28 | Forward Blockchain, LLC | Distributed Ledger Registry System |
CN107678865A (zh) * | 2017-09-20 | 2018-02-09 | 中国银行股份有限公司 | 基于交易分组的区块链的验证方法以及系统 |
CN108846659B (zh) * | 2018-06-13 | 2021-09-14 | 深圳前海微众银行股份有限公司 | 基于区块链的转账方法、装置及存储介质 |
US11070360B2 (en) * | 2018-08-13 | 2021-07-20 | International Business Machines Corporation | Parallel transaction validation and block generation in a blockchain |
CN108932348B (zh) | 2018-08-16 | 2020-06-30 | 北京京东尚科信息技术有限公司 | 区块链的合并处理方法、装置、区块链节点及存储介质 |
-
2019
- 2019-03-28 KR KR1020197028449A patent/KR102315473B1/ko active IP Right Grant
- 2019-03-28 SG SG11201908294T patent/SG11201908294TA/en unknown
- 2019-03-28 AU AU2019204722A patent/AU2019204722B2/en active Active
- 2019-03-28 CN CN201980003274.7A patent/CN110869967B/zh active Active
- 2019-03-28 EP EP19732219.1A patent/EP3610450A4/en not_active Ceased
- 2019-03-28 JP JP2019553286A patent/JP6955026B2/ja active Active
- 2019-03-28 WO PCT/CN2019/080036 patent/WO2019120320A2/en unknown
- 2019-03-28 CA CA3055108A patent/CA3055108C/en active Active
- 2019-03-28 US US16/490,834 patent/US11310032B2/en active Active
- 2019-12-10 TW TW108145068A patent/TWI721699B/zh active
-
2020
- 2020-01-06 US US16/735,233 patent/US10700852B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018144302A1 (en) * | 2017-01-31 | 2018-08-09 | Rush Thomas Jay | Blockchain data-processing engine |
TW201837821A (zh) * | 2017-04-07 | 2018-10-16 | 張華升 | 區塊鏈網路及其操作方法 |
CN109146677A (zh) * | 2017-06-14 | 2019-01-04 | 深圳区块链金融服务有限公司 | 并行构建区块链视图的方法、计算机系统和可读存储介质 |
US20190081793A1 (en) * | 2017-09-12 | 2019-03-14 | Kadena, LLC | Parallel-chain architecture for blockchain systems |
Also Published As
Publication number | Publication date |
---|---|
US20200044824A1 (en) | 2020-02-06 |
AU2019204722B2 (en) | 2020-10-29 |
CA3055108C (en) | 2021-10-05 |
CN110869967B (zh) | 2024-04-16 |
JP6955026B2 (ja) | 2021-10-27 |
KR102315473B1 (ko) | 2021-10-21 |
CA3055108A1 (en) | 2019-06-27 |
WO2019120320A2 (en) | 2019-06-27 |
TW202037108A (zh) | 2020-10-01 |
EP3610450A2 (en) | 2020-02-19 |
US11310032B2 (en) | 2022-04-19 |
JP2020519983A (ja) | 2020-07-02 |
SG11201908294TA (en) | 2019-10-30 |
US10700852B2 (en) | 2020-06-30 |
CN110869967A (zh) | 2020-03-06 |
WO2019120320A3 (en) | 2020-02-06 |
KR20200116011A (ko) | 2020-10-08 |
US20200145197A1 (en) | 2020-05-07 |
EP3610450A4 (en) | 2020-06-10 |
AU2019204722A1 (en) | 2019-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI721699B (zh) | 用於平行處理區塊鏈交易之系統及方法 | |
TWI706275B (zh) | 用於資訊保護的系統和方法 | |
CN110089069B (zh) | 用于信息保护的系统和方法 | |
US10700850B2 (en) | System and method for information protection | |
CA3037833C (en) | System and method for information protection | |
BR112019007907A2 (pt) | sistema e método para proteção de informações | |
AU2019101607A4 (en) | System and method for parallel-processing blockchain transactions | |
US20220036346A1 (en) | Systems and methods for re-organizing blockchains for efficient operations | |
AU2019101581A4 (en) | System and method for information protection | |
Lin et al. | A tree structure-based blockchain | |
CN118216122A (zh) | 用于分布式区块链功能的方法和系统 | |
Oluchi et al. | Blockchain Platforms, Architectures, and Consensus Algorithm |