TWI706278B - 基於區塊鏈的交易處理方法及裝置、電子設備 - Google Patents
基於區塊鏈的交易處理方法及裝置、電子設備 Download PDFInfo
- Publication number
- TWI706278B TWI706278B TW108109327A TW108109327A TWI706278B TW I706278 B TWI706278 B TW I706278B TW 108109327 A TW108109327 A TW 108109327A TW 108109327 A TW108109327 A TW 108109327A TW I706278 B TWI706278 B TW I706278B
- Authority
- TW
- Taiwan
- Prior art keywords
- nonce
- transactions
- transaction
- record
- available
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 9
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims description 37
- 238000012423 maintenance Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 150000001875 compounds Chemical group 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
-
- 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/386—Payment protocols; Details thereof using messaging services or messaging apps
-
- 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
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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
- 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
- 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
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公開一種基於區塊鏈的交易處理方法,所述區塊鏈中維護了與所述使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;所述方法包括:從所述Nonce列表中為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可Nonce記錄;將獲取到的可用Nonce記錄分別添加至所述多筆交易;將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備將所述客戶端發佈的交易中的可用Nonce記錄與所述Nonce列表中的Nonce記錄進行匹配,並在所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配時,受理所述交易,以及並行執行已受理的交易中具有相同分組標識的多筆交易。
Description
本說明書一個或多個實施例關於區塊鏈技術領域,尤其關於一種基於區塊鏈的交易處理方法及裝置、電子設備。
區塊鏈技術,也被稱之為分布式帳本技術,是一種由若干台計算設備共同參與“記帳”,共同維護一份完整的分布式資料庫的新興技術。由於區塊鏈技術具有去中心化、公開透明、每台計算設備可以參與資料庫記錄、並且各計算設備之間可以快速的進行資料同步的特性,利用區塊鏈技術來搭建去中心化系統,並在區塊鏈的分布式資料庫中收錄各種執行程式進行自動執行,已在眾多的領域中廣泛的進行應用。
本說明書提出一種基於區塊鏈的交易處理方法,應用於客戶端,所述區塊鏈中維護了與所述使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;所述方法包括:
從所述Nonce列表中為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄;
將獲取到的可用Nonce記錄分別添加至所述多筆交易;
將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備將所述客戶端發佈的交易中的可用Nonce記錄與所述Nonce列表中的Nonce記錄進行匹配,並在所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配時,受理所述交易,以及並行執行已受理的交易中具有相同分組標識的多筆交易。
可選的,所述需要並行執行的多筆交易,包括交易類型相同的多筆交易。
可選的,還包括:
如果使用者透過使用者帳戶發起的交易中存在所包含的多筆交易需要並行執行的多組交易,確定所述多組交易的執行順序;
從所述Nonce列表中為所述多組交易分別獲取分組標識相同,並且所述分組標識指示所述多組交易的執行順序的可用Nonce記錄。
可選的,從所述Nonce列表中為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄之前,還包括:
響應於針對所述客戶端的初始化指令,獲取所述區塊鏈中維護的所述Nonce列表,並將獲取到的所述Nonce列表在所述客戶端本地進行維護;
從所述Nonce列表中為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄,包括:
從所述客戶端本地維護的所述Nonce列表中,為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄。
可選的,所述客戶端本地維護的所述Nonce列表中的Nonce記錄默認被標記為可用;
所述方法還包括:
從所述客戶端本地維護的所述Nonce列表中,為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄之後,在所述Nonce列表中將所述可用Nonce記錄標記為不可用。
可選的,還包括:
確定是否接收到所述節點設備返回的所述交易被受理的通知消息;
如果是,基於預設幅度對所述可用Nonce記錄中的Nonce值進行單調遞增,並在所述Nonce值單調遞增之後,在所述Nonce列表中將所述可用Nonce記錄重新標記為可用。
可選的,所述客戶端為多執行緒客戶端;所述Nonce列表中的Nonce記錄的數量,指示所述使用者帳戶的交易並行能力。
可選的,所述Nonce記錄還包括:所述Nonce記錄的索引標識。
本說明書還提出一種基於區塊鏈的交易處理方法,應用於區塊鏈中的節點設備,所述區塊鏈維護了Nonce列表集合;所述Nonce列表集合包括與若干使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;所述方法包括:
接收客戶端發送的使用者透過使用者帳戶發起的交易;其中,所述交易被添加了從所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中獲取到的可用Nonce記錄;
將接收到的交易中的可用Nonce記錄,與所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中的Nonce記錄進行匹配;
如果所述可用Nonce記錄,與所述Nonce列表中的任一目標Nonce記錄匹配,受理所述交易;以及,並行執行已受理的交易中具有相同分組標識的多筆交易。
可選的,所述客戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易;所述客戶端為所述多組交易添加的可用Nonce記錄中的分組標識指示所述多組交易的執行順序;
所述方法還包括:
如果所述客戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易,按照所述多組交易的分組標識所指示的執行順序,順序執行所述多組交易。
可選的,還包括:
如果所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配,基於預設幅度對所述目標Nonce記錄的Nonce值進行單調遞增;以及,
向所述客戶端返回所述交易被受理的通知消息。
可選的,所述Nonce記錄還包括:所述Nonce記錄的索引標識。
本說明書還提出一種基於區塊鏈的交易處理裝置,應用於客戶端,所述區塊鏈中維護了與所述使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;所述方法包括:
獲取模組,從所述Nonce列表中為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄;
添加模組,將獲取到的可用Nonce記錄分別添加至所述多筆交易;
發佈模組,將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備將所述客戶端發佈的交易中的可用Nonce記錄與所述Nonce列表中的Nonce記錄進行匹配,並在所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配時,受理所述交易,以及並行執行已受理的交易中具有相同分組標識的多筆交易。
可選的,所述需要並行執行的多筆交易,包括交易類型相同的多筆交易。
可選的,所述獲取模組進一步:
如果使用者透過使用者帳戶發起的交易中存在所包含的多筆交易需要並行執行的多組交易,確定所述多組交易的執行順序;
從所述Nonce列表中為所述多組交易分別獲取分組標識相同,並且所述分組標識指示所述多組交易的執行順序的可用Nonce記錄。
可選的,所述獲取模組進一步:
在從所述Nonce列表中為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄之前,響應於針對所述客戶端的初始化指令,獲取所述區塊鏈中維護的所述Nonce列表,並將獲取到的所述Nonce列表在所述客戶端本地進行維護;
從所述客戶端本地維護的所述Nonce列表中,為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄。
可選的,所述客戶端本地維護的所述Nonce列表中的Nonce記錄默認被標記為可用;
所述獲取模組:
從所述客戶端本地維護的所述Nonce列表中,為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄之後,在所述Nonce列表中將所述可用Nonce記錄標記為不可用。
可選的,所述獲取模組進一步:
確定是否接收到所述節點設備返回的所述交易被受理的通知消息;
如果是,基於預設幅度對所述可用Nonce記錄中的Nonce值進行單調遞增,並在所述Nonce值單調遞增之後,在所述Nonce列表中將所述可用Nonce記錄重新標記為可用。
可選的,所述客戶端為多執行緒客戶端;所述Nonce列表中的Nonce記錄的數量,指示所述使用者帳戶的交易並行能力。
可選的,所述Nonce記錄還包括:所述Nonce記錄的索引標識。
本說明書還提出一種基於區塊鏈的交易處理裝置,應用於區塊鏈中的節點設備,所述區塊鏈維護了Nonce列表集合;所述Nonce列表集合包括與若干使用者帳戶對應的Nonce列表;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;所述方法包括:
接收模組,接收客戶端發送的使用者透過使用者帳戶發起的交易;其中,所述交易被添加了從所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中獲取到的可用Nonce記錄;
匹配模組,將接收到的交易中的可用Nonce記錄,與所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中的Nonce記錄進行匹配;
執行模組,如果所述可用Nonce記錄,與所述Nonce列表中的任一目標Nonce記錄匹配,受理所述交易;以及,並行執行已受理的交易中具有相同分組標識的多筆交易。
可選的,所述客戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易;所述客戶端為所述多組交易添加的可用Nonce記錄中的分組標識指示所述多組交易的執行順序;
所述執行模組進一步:
如果所述客戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易,按照所述多組交易的分組標識所指示的執行順序,順序執行所述多組交易。
可選的,所述執行模組進一步:
如果所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配,基於預設幅度對所述目標Nonce記錄的Nonce值進行單調遞增;以及,
向所述客戶端返回所述交易被受理的通知消息。
可選的,所述Nonce記錄還包括:所述Nonce記錄的索引標識。
本說明書還提出一種電子設備,包括:
處理器;
用於儲存機器可執行指令的記憶體;
其中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
從區塊鏈中維護的與使用者帳戶對應的Nonce列表中,為使用者透過所述使用者帳戶發起的需要並行執行的多筆交易,分別獲取分組標識相同的可用Nonce記錄;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;
將獲取到的可用Nonce記錄分別添加至所述多筆交易;
將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備將所述客戶端發佈的交易中的可用Nonce記錄與所述Nonce列表中的Nonce記錄進行匹配,並在所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配時,受理所述交易,以及並行執行已受理的交易中具有相同分組標識的多筆交易。
本說明書還提出一種電子設備,包括:
處理器;
用於儲存機器可執行指令的記憶體;
其中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
接收客戶端發送的使用者透過使用者帳戶發起的交易;其中,所述交易被添加了從所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中獲取到的可用Nonce記錄;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;
將接收到的交易中的可用Nonce記錄,與所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中的Nonce記錄進行匹配;
如果所述可用Nonce記錄,與所述Nonce列表中的任一目標Nonce記錄匹配,受理所述交易;以及,並行執行已受理的交易中具有相同分組標識的多筆交易。
透過以上實施例,可以在避免針對交易的重送攻擊的基礎上,來進一步提升客戶端上的單帳戶的交易並行能力的技術方案。
區塊鏈領域的重送攻擊,是指透過在區塊鏈中發佈重複的交易,進而導致一筆相同的交易被執行多次,對使用者造成損失的攻擊行為;
例如,比特幣網路中經典的“雙重消費”(double spending)問題,就是一種較為典型的重送攻擊行為。一筆轉帳交易在經過使用者私鑰的簽名許可後,如果被非法節點截獲,那麼該非法節點可以在該筆交易執行完畢後,基於截獲的該筆交易,發起重送攻擊,在區塊鏈中重複發佈並執行該筆交易,造成一筆轉帳交易被執行多次,進而對使用者造成資金損失。
在示出的一種實施方式中,通常可以在交易中攜帶一個緻密遞增的Nonce值(緻密遞增的整數)的方式,來應對針對該筆交易的重送攻擊風險;
請參見圖1,圖1為本說明書示出的一種對交易進行重送攻擊檢測的示意圖。
如圖1所示,使用者在客戶端上透過個人的使用者帳戶發起的每筆交易,都可以指定一個Nonce值,並使用使用者持有的私鑰對該筆交易的交易體和指定的Nonce值進行簽名。其中,簽名是對[交易體,Nonce值]的整體簽名,這樣可以保障該筆交易中的Nonce無法被篡改。
當簽名完成後,客戶端可以將該筆交易在區塊鏈中進行發佈。而區塊鏈中的節點設備,在收到該筆交易後,除了需要驗證該筆交易的簽名是否合法以外,還需要檢測該筆交易中的Nonce值,是否與之前已經成功受理的最近一筆交易中的Nonce值保持嚴格的緻密遞增;如果該筆交易與已經成功受理的最近一筆交易中的Nonce值保持緻密遞增,則可以受理該筆交易;反之,可以認定該比較交易為非法的交易。
例如,假設使用者在客戶端上透過個人的使用者帳戶Account1發起了一筆Nonce值為1的交易,該筆交易在被區塊鏈成功受理後,使用者在客戶端上透過Account1再次發起交易的時候,必須將該交易中的Nonce值指定為2,才會被區塊鏈中的節點設備認定為一筆合法的交易進行受理。
相應的,區塊鏈系統會維護使用者個人的使用者帳戶的Nonce狀態,每成功受理Account1發起的一筆交易,區塊鏈系統會將該使用者帳戶的Nonce值自增1;區塊鏈中的節點設備在收到客戶端發佈的一筆交易後,會將該筆交易中的Nonce值,與維護的Nonce狀態中的Nonce值進行比較,來判斷該筆交易中的Nonce值,是否與已經成功受理的最近一筆交易中的Nonce值嚴格遞增1;如果是,則可以受理該筆交易。
透過以上方式,雖然在某種程度上可以避免交易的重送攻擊風險,但對於使用者帳戶而言,需要在前一筆交易被受理後,才可以繼續發起下一筆交易,因此單帳戶的交易並行能力不足,無法在高並行的場景下進行應用。
基於此,在本說明書中,在以上示出的重送攻擊防護方案的基礎上,提出一種能夠提升客戶端上單帳戶的交易並行能力的技術方案。
在實現時,可以在區塊鏈中維護一個Nonce列表集合,在該Nonce列表集合中,可以包括與若干使用者帳戶對應的Nonce列表;而在上述Nonce列表中,可以包括若干條Nonce記錄;每一條Nonce記錄由分組標識和Nonce值構成。
當使用者在客戶端上透過個人的使用者帳戶發起需要並行執行的多筆交易後,客戶端可以從上述Nonce列表為該多筆交易,分別獲取分組標識相同的可用Nonce記錄,並將獲取到的可用Nonce記錄添加至上述多筆交易,然後再將該目多筆交易發佈至區塊鏈。
而區塊鏈中的節點設備在收到客戶端發送的交易之後,可以將該交易中攜帶的可用Nonce記錄,與區塊鏈中維護的與該使用者帳戶對應的上述Nonce列表中的Nonce記錄進行匹配,來對該交易進行重送攻擊檢測;如果上述可用Nonce記錄,與所述Nonce列表中的任一目標Nonce記錄匹配,針對該交易的重送攻擊檢測通過,此時節點設備可以受理該交易;
進一步的,節點設備可以再次確認所有已經受理的交易中,是否存在所攜帶的Nonce記錄中的分組標識相同的多筆交易;如果是,表明該多筆交易需要並行執行,此時節點設備可以並行執行已受理的交易中具有相同分組標識的該多筆交易。在以上實施例中,透過將為多筆交易添加相同的分組標識,來觸發區塊鏈中的節點設備並行執行具有相同分組標識的多筆交易的技術方案,與針對交易的重送攻擊檢測進行結合,可以在避免針對交易的重送攻擊的基礎上,來進一步提升客戶端上的單帳戶的交易並行能力。
下面透過具體實施例並結合具體的應用場景對本說明書進行描述。
請參考圖2,圖2是本說明書一實施例提供的一種基於區塊鏈的交易處理方法;所述方法執行以下步驟:步驟202,客戶端從區塊鏈中維護的與使用者帳戶對應的Nonce列表中,為使用者透過所述使用者帳戶發起的需要並行執行的多筆交易,分別獲取分組標識相同的可用Nonce記錄;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;步驟204,客戶端將獲取到的可用Nonce記錄分別添加至所述多筆交易,並將所述多筆交易發佈至所述區塊鏈;步驟206,區塊鏈中的節點設備將接收到的交易中的可用Nonce記錄,與所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中的Nonce記錄進行匹配;如果所述可用Nonce記錄,與所述Nonce列表中的任一目標Nonce記錄匹配,受理所述交易;以及,並行執行已受理的交易中具有相同分組標識的多筆交易。
在本說明書所描述的區塊鏈,具體可以包括私有鏈、共有鏈以及聯盟鏈等,在本說明書中不進行特別限定。
例如,在一個場景中,上述區塊鏈具體可以是由第三方支付平臺的伺服器、境內銀行伺服器、境外銀行伺服器、以及若干使用者節點設備作為成員設備組成的一個聯盟鏈。該聯盟鏈的營運方可以依託於該聯盟鏈,來在線部署諸如基於聯盟鏈的跨境轉帳、資產轉移等在線業務。
其中,需要說明的是,在本說明書中所描述的交易(Transaction),是指使用者透過區塊鏈的客戶端創建,並需要最終發佈至區塊鏈的分布式資料庫中的一筆資料。
區塊鏈中的交易,通常存在狹義的交易以及廣義的交易之分。狹義的交易是指使用者向區塊鏈發佈的一筆價值轉移;例如,在傳統的比特幣區塊鏈網路中,交易可以是使用者在區塊鏈中發起的一筆轉帳。而廣義的交易是指使用者向區塊鏈發佈的一筆具有業務意圖的業務資料;例如,營運方可以基於實際的業務需求搭建一個聯盟鏈,依託於聯盟鏈部署一些與價值轉移無關的其它類型的在線業務(比如,防偽校驗業務、租房業務、車輛調度業務、保險理賠業務、信用服務、醫療服務等),而在這類聯盟鏈中,交易可以是使用者在聯盟鏈中發佈的一筆具有業務意圖的業務消息或者業務請求。
在本說明書中,上述客戶端具體可以是一個多執行緒客戶端;也即,客戶端可以同時啟用多個執行緒,每一個執行緒都可以獨立運行,從而使用者可以透過調用客戶端的多個執行緒,透過個人的使用者帳戶來同時發起多筆交易。
當客戶端收到使用者透過使用者帳戶發起的多筆交易後,可以確定使用者透過使用者帳戶發起的交易中,是否存在需要並行執行的多筆交易;
其中,在本說明書中,需要並行執行的多筆交易,可以包括任意類型的,交易之間並不存在嚴格的交易執行順序,能夠進行並行處理和執行的交易;
例如,如果一筆交易的執行,需要將另一筆交易的執行結果作為輸入,那麼這兩筆交易,將無法進行並行處理和執行;反之,如果兩筆交易之間,並沒有以上所描述的這種資料依賴關係,那麼就可以進行並行處理和執行。
在實現時,需要並行執行的多筆交易,可以由使用者在透過使用者帳戶發起交易的過程中,來人為指定;
例如,在示出的一種實施方式中,使用者在發起了眾多筆交易後,可以透過客戶端提供的使用者界面來基於需求人工指定,需要並行執行的多筆交易。
在實際應用中,需要並行執行的多筆交易,也可以由客戶端基於預設的並行處理規則,來進行動態確認。
其中,上述並行處理規則的具體內容,在本說明書中不進行特別限定,在實際應用中,本領域技術人員可以基於實際的並行處理需求,來靈活的定義;例如,在示出的一種實施方式中,上述並行執行規則,可以是“針對交易類型相同的交易進行並行執行”的規則;在這種情況下,客戶端在收到使用者發起的眾多交易後,可以進一步檢查這些交易的具體交易類型;然後,將交易類型相同的多筆交易,確定為需要並行執行的交易;比如,如果區塊鏈所支持的交易類型,包括用於創建帳戶的交易類型、用於轉帳的交易類型,則客戶端可以確定出使用者所發起的眾多交易中,用於創建帳戶的交易類型、和用於轉帳的交易類型,然後將與這兩類交易類型對應的多筆交易,確定為需要並行執行的交易。
當然,在實際應用中,上述並行處理規則,除了可以是“針對交易類型相同的交易進行並行執行”的規則以外,也可以是其它形式的並行處理規則,在本說明書中不再進行一一列舉。
在本說明書中,可以在區塊鏈中維護一個Nonce列表集合,在該Nonce列表集合中,可以包括與若干使用者帳戶對應的Nonce列表。在上述Nonce列表中,均可以包括多條Nonce記錄。而每一條Nonce記錄可以包括輔助參數和Nonce值。
也即,在本說明書中,上述Nonce記錄具體可以是一條由包含Nonce值在內的多個欄位構成的複合結構。
在實現時,上述區塊鏈的營運方,可以預先為每一個
使用者帳戶分配可用的Nonce值,並在分配的可用的Nonce值的基礎上,為每一個Nonce值設置對應的輔助欄位,再基於每一個可用的Nonce值和對應的輔助欄位,來構造出多條Nonce記錄;然後,可以基於產生的多條Nonce記錄為該使用者帳戶構造Nonce列表;最後,可以基於為各個使用者帳戶構造的Nonce列表,創建上述Nonce列表集合,並將上述Nonce列表集合發佈至上述區塊鏈,由上述區塊鏈中的節點設備進行共識處理,並在共識通過後,將上述Nonce列表集合儲存在上述區塊鏈的分布式資料進行儲存和維護。
其中,需要說明的是,上述輔助參數的具體參數內容,在本說明書中不進行特別限定;在實際應用中,上述輔助參數,具體可以包括上述區塊鏈的營運方基於實際的需求,在使用者帳戶可用的Nonce值的基礎上擴展出的任意形式的參數;或者參數組合。
也即,在實際應用中,上述輔助參數中所能包含的參數數量以及類別,可以不固定;可以在Nonce值的基礎上擴展出任意一種參數來作為輔助參數;也可以在Nonce值的基礎上擴展出多種參數進行組合來作為輔助參數。
在本說明書中,上述Nonce列表中的Nonce記錄中的輔助參數,具體可以包括分組標識;其中,該分組標識具體用於表示交易所在的分組,屬於同一分組的交易則為需要並行執行的交易;其中,對於上述Nonce列表集合中的與各個使用者帳戶對應的Nonce列表而言,均可以包括多條分組標識相同的Nonce記錄,從而當使用者透過個人的使用者帳戶發起了多筆需要並行執行的多筆交易時,使得客戶端可以從上述Nonce列表中為該多筆交易獲取到分組標識相同的Nonce記錄。
在示出的一種實施方式中,上述Nonce列表中的Nonce記錄中的輔助參數,除了可以包括上述分組標識以外,還可以進一步包括上述Nonce記錄的索引標識(比如索引編號)。其中,上述索引標識,具體用於表示Nonce記錄在Nonce列表中的順序以及位置。
例如,請參見圖3,以上述Nonce列表中的Nonce記錄中的輔助參數,同時包含上述分組標識和上述Nonce記錄的索引標識為例,此時上述Nonce記錄具體可以是一個Group ID(分組標識)、Index(索引標識)、Value(Nonce值)等欄位組成的複合結構。在這種情況下,在區塊鏈中維護的Nonce列表集合,可以表示成如圖3所示出的形式。
其中,上述Nonce記錄以及上述Nonce記錄中的Nonce值和上述輔助參數的具體的位元組長度,在本說明書中不進行特別限定;在實際應用中,可以基於上述區塊鏈的營運方的實際需求,進行靈活的設定(比如,營運方可以透過所佔用的位元組長度,來控制Nonce值以及輔助參數的具體取值範圍);
例如,在一種實現方式中,上述Nonce記錄具體可以是一個16位元組組成的複合結構;其中,4位元組表示Group ID(分組標識)、4位元組表示Index(索引標識)、8位元組表示Value(Nonce值)。
透過在Nonce值的基礎上,擴展出多種參數進行組合來作為輔助參數,使得上述Nonce表中的Nonce記錄能夠涵蓋豐富的取值欄位,從而可以降低上述Nonce表中的多條Nonce記錄由於取值相同發生衝突的概率;
例如,兩條由Group ID(分組標識)和Value(Nonce值)構成的總長度為12位元組的Nonce記錄完全相同發生衝突的概率,會遠低於,兩條由Group ID(分組標識)、Index (索引標識)和Value(Nonce值)構成的總長度為16位元組的Nonce記錄完全相同發生衝突的概率。
請參見圖4,當使用者在客戶端上調用客戶端啟用的多個執行緒,透過個人的使用者帳戶發起需要並行執行的多筆交易後,客戶端可以從區塊鏈上維護的與該使用者帳戶對應的上述Nonce列表中,為該多筆交易分別獲取分組標識相同的可用Nonce記錄(即為多筆交易添加相同的分組標識)。
由於上述Nonce列表中包括多條Nonce記錄,使得客戶端啟動的多執行緒均能夠從上述Nonce列表中為發起的交易獲取到可用Nonce記錄,進而使用者可以使用個人的使用者帳戶透過上述客戶端同時發起多筆交易;因此,在本說明書中,上述Nonce列表中的Nonce記錄的數量,實際上可以用於指示使用者個人的使用者帳戶的交易並行能力。比如,上述Nonce列表包括4條Nonce記錄,那麼使用者可以透過使用者帳戶同時發起4筆交易。
基於這一點,在實際應用中,區塊鏈的營運方,可以基於客戶端自身的性能,來靈活的為上述Nonce列表指定所包含的Nonce記錄的數量;或者,客戶端可以向區塊鏈系統主動上報自身的性能,由區塊鏈的營運方來靈活的指定上述Nonce列表所包含的Nonce記錄的數量;
例如,假設客戶端的性能決定,該客戶端可以同時啟動4個執行緒來發起交易,那麼在為登錄該客戶端的使用者帳戶創建上述Nonce列表時,可以為該Nonce列表添加4條可用Nonce記錄。
在示出的一種實施方式中,客戶端可以在初始化階段,預先將區塊鏈上維護的上述Nonce列表“下載”到本地進行維護;
例如,在實現時,客戶端在啟動運行,或者與區塊鏈中的節點設備之間的連接斷開需要重新進行連接時,透過都需要進行初始化操作。在這種情況下,當客戶端收到使用者觸發的針對該客戶端的初始化指令(比如啟動指令、重連指令等)時,則可以響應該初始化指令,與區塊鏈中的節點設備建立連接,並基於該連接存取區塊鏈的分布式資料庫,獲取區塊鏈中維護的上述Nonce列表,然後可以將獲取到的上述Nonce列表本地進行儲存和維護。
在這種情況下,當客戶端需要為該多筆交易分別獲取分組標識相同的可用Nonce記錄時,可以直接從本地維護的上述Nonce列表中獲取可用Nonce記錄。
透過這種方式,可以避免與區塊鏈上的節點設備進行資料交互,從區塊鏈中維護的上述Nonce列表中讀取資料,為該目標交易獲取可用Nonce記錄,可以提升客戶端的處理性能。
其中,在實際應用中,使用者透過使用者帳戶發起的交易中,可能會存在所包含的多筆交易需要並行執行的多組交易,並且該多組交易之間,可能會保持一定的執行順序;在這種情況下,如果使用者透過使用者帳戶發起的交易中,存在所包含的多筆交易需要並行執行的多組交易,此時客戶端還可以進一步確認該多組交易的執行順序;
其中,該多組交易的執行順序,可以由使用者進行人工定義,也可以由客戶端基於實際的業務流程進行動態確認,在本說明書中不進行具體的限定。
進一步的,客戶端在確定該多組交易的執行順序之後,除了需要為該多組交易中所包含的多筆交易添加相同的分組標識以外,還需要確保為該多組交易中所包含的多筆交易添加的分組標識,能夠指示該多組交易的執行順序;
這種情況下,上述Nonce列表中則需要包括分組標識相同,並且不同的交易分組的分組標識在數值上也存在差異的多組Nonce記錄;也即,同一交易分組中的交易的分組標識保持相同,而不同的交易分組中的交易分組標識在數值上要保持一定的差異;從而,確保能夠從上述Nonce列表中,為上述多組交易中的交易,獲取到分組標識相同,並且所述分組標識指示所述多組交易的執行順序的可用Nonce記錄。其中,利用分組標識來指示多組交易的執行順序,具體可以透過為該多組交易添加在數值上保持單調遞增的分組標識的方式來實現;
例如,假設如果使用者透過使用者帳戶發起的交易中,存在所包含的交易需要並行執行的兩組交易{A1,B1,C1}和{A2,B2,C2};在這種情況下,客戶端可以從上述Nonce列表中為交易A1,B1,C1獲取一條包含相同的分組標識1的可用Nonce記錄,為交易A2,B2,C2獲取一條包含相同的分組標識2的可用Nonce記錄,利用分組標識數值上的遞增,來表示交易分組{A1,B1,C1},需要先於交易分組{A2,B2,C2}執行。也即,交易分組的執行順序,與被添加的交易標識的取值從小到大的順序保持一致。
在示出的一種實施方式中,對於客戶端在本地維護的上述Nonce列表,可以由客戶端為該Nonce列表中的Nonce記錄,均默認添加一個表示“可用”的標記。
例如,請參見圖5,仍以上述Nonce記錄為圖4中示出的16位元組組成的複合結構為例,可以為Nonce列表中的Nonce記錄,擴展出一個1位元組的Available欄位;其中,當Available欄位取值為T時,表示該條Nonce記錄“可用”;當Available欄位取值為F時,表示該條Nonce記錄“不可用”。
一方面,當客戶端上啟用的執行緒,在從客戶端本地維護的上述Nonce列表中為使用者發起的多筆交易獲取可用Nonce記錄時,可以從上述Nonce列表中所有被標記為“可用”的Nonce記錄來隨機選擇多筆分組標識相同的Nonce記錄作為可用Nonce記錄。
另一方面,當客戶端上啟用的執行緒,從客戶端本地維護的上述Nonce列表中為使用者發起的多筆交易獲取到可用Nonce記錄之後,可以對該可用Nonce記錄攜帶的標記進行修改更新,為該可用Nonce記錄重新添加一個表示“不可用”的標記,以將該可用Nonce記錄標記為不可用。
在本說明書中,當客戶端為使用者發起的需要並行執行的多筆交易獲取到可用Nonce記錄之後,可以將獲取到的可用Nonce記錄添加至上述多筆交易中;
例如,請繼續參見圖4,客戶端在為交易獲取到可用Nonce記錄之後,可以對交易的交易體,和上述可用Nonce記錄進行打包,然後提示使用者基於持有的私鑰對打包後的[交易體,Nonce記錄]進行整體簽名,這樣可以保障該筆交易中的Nonce記錄無法被篡改。
進一步的,當客戶端將獲取到的可用Nonce記錄添加至上述多筆交易之後,客戶端可以將上述多筆交易發佈至區塊鏈;
例如,將上述多筆交易發佈至該客戶端存取的節點設備,或者將該多筆交易在區塊鏈中進行廣播發佈;其中,客戶端將上述多筆交易發佈至區塊鏈的具體方式,通常取決於區塊鏈所採用的共識機制,在本說明書中不進行特別限定。
而當區塊鏈中的節點設備在收到客戶端發佈的交易之後,首先可以在區塊鏈採用的共識算法,發起針對收到的交易的共識處理;其中,區塊鏈採用的共識算法,以及基於共識算法對上述目標交易的共識處理過程,在本說明書中不再進行詳述,本領域技術人員在將本說明書記載的技術方案付諸實現時,可以參考相關技術中的記載。
當收到的交易共識通過後,此時上述區塊鏈中的節點設備,可以進一步發起針對收到的交易的合法性檢測。
其中,在本說明書中,針對交易的合法性檢測至少可以包括,針對交易攜帶的簽名的合法性檢測、以及,針對交易的重送攻擊檢測。
在實現時,上述區塊鏈中的節點設備首先可以基於與上述使用者持有的私鑰對應的公鑰,對收到的交易的簽名進行驗證;如果交易的簽名失敗,可以認定交易為不合法的交易,上述節點設備可以直接透過客戶端向使用者返回交易執行失敗的提示消息。
如果交易的簽名驗證通過,此時上述節點設備,可以進一步基於該目交易中攜帶的可用Nonce記錄,和區塊鏈中維護的與該使用者個人的使用者帳戶對應的Nonce列表,針對該交易進行重送攻擊檢測。
一方面,請繼續參見圖4,上述節點設備可以將交易中攜帶的Nonce記錄,從區塊鏈上維護的與該使用者帳戶對應的Nonce列表中的Nonce記錄逐一進行匹配;如果交易中攜帶的Nonce記錄,與上述Nonce列表中的任一目標
Nonce記錄匹配,可以確定該交易通過重送攻擊檢測;在這種情況下,該節點設備可以受理該交易。
另一方面,當該交易被受理後,該節點設備可以基於預設幅度對上述目標Nonce記錄中的Nonce值進行單調遞增;其中,上述預設幅度可以基於實際需求進行自定義;例如,上述預設幅度仍然可以是1,上述節點設備可以在該交易被受理後,將在上述Nonce列表中匹配到的上述目標Nonce記錄中的Nonce值自增1。
透過這種方式,如果交易在被受理之後,又再次在區塊鏈中進行了重複發佈,由於上述Nonce列表中與該交易攜帶的可用Nonce記錄匹配的目標Nonce記錄中的Nonce值,已經發生了更新,該重複發佈的該交易在重送攻擊檢測階段,將無法在上述Nonce列表中匹配到對應的Nonce記錄;因此,該重複發佈的交易將不會被再次受理,從而可以有效的避免透過在區塊鏈中重複發佈該交易進行重送攻擊。
在示出的一種實施方式中,當交易被受理後,可以向上述客戶端返回上述交易被受理的通知消息;而客戶端在將使用者透過個人的使用者帳戶發起的交易發佈至區塊鏈後,可以確定是否接收到節點設備返回的交易被受理的通知消息。
如果確認收到交易被受理的通知消息:一方面,可以基於預設幅度,對從客戶端本地維護的上述Nonce列表中為發起的交易獲取到的上述可用Nonce記錄中的Nonce值進行單調遞增;比如,將在上述可用Nonce記錄中的Nonce值也自增1,以與區塊鏈中維護的上述Nonce列表保持內容同步。
另一方面,由於此前該可用Nonce記錄已經被標記為了“不可用”;因此,在基於預設幅度,對該可用Nonce記錄中的Nonce值進行單調遞增後,可以將該可用Nonce記錄的Available欄位的取值,置位為“T”。
在本說明中,當客戶端發送的由使用者發起的交易均被受理後,此時區塊鏈中的節點設備,可以進一步確定客戶端發送的已經被受理的交易中,是否存在分組標識相同的多筆交易;
如果已經被受理的交易中,存在分組標識相同的多筆交易,此時區塊鏈中的節點設備,可以並行執行該多筆交易,並在該多筆交易執行完畢後,將該多筆交易以及該多筆交易的執行結果,在區塊鏈的分布式資料庫中進行儲存。
相應的,如果客戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易;並且,客戶端為該多組交易添加的可用Nonce記錄中的分組標識指示該多組交易的執行順序;在這種情況下,區塊鏈中的節點設備,在收到客戶端發送的添加了分組標識的交易,並確定客戶端發送的交易中,存在所包含的多筆交易的分組標識相同的多筆交易之後,還可以按照該多筆交易的交易標識所指示出的交易順序,順序的執行該多組交易。
例如,仍以使用者透過使用者帳戶發起的交易中,存在所包含的交易需要並行執行的兩組交易{A1,B1,C1}和{A2,B2,C2};並且,客戶端為交易A1,B1,C1添加了一條包含相同的分組標識1的可用Nonce記錄,為交易A2,B2,C2添加了一條包含相同的分組標識2的可用Nonce記錄為例;在這種情況下,區塊鏈中的節點設備,在以上交易A1,B1,C1,A2,B2,C2均被受理後,會先並行執行分組標識為1的交易分組中的交易A1,B1,C1,再並行執行分組標識為2的交易分組中的交易A2,B2,C2。
在以上方案中,透過將為多筆交易添加相同的分組標識,來觸發區塊鏈中的節點設備並行執行具有相同分組標識的多筆交易的技術方案,與針對交易的重送攻擊檢測進行結合,可以在避免針對交易的重送攻擊的基礎上,來進一步提升客戶端上的單帳戶的交易並行能力。
與上述方法實施例相對應,本說明書還提供了一種基於區塊鏈的交易處理裝置的實施例。本說明書的基於區塊鏈的交易處理裝置的實施例可以應用在電子設備上。裝置實施例可以透過軟體實現,也可以透過硬體或者軟硬體結合的方式實現。以軟體實現為例,作為一個邏輯意義上的裝置,是透過其所在電子設備的處理器將非揮發性記憶體中對應的計算機程式指令讀取到內部記憶體中運行形成的。從硬體層面而言,如圖6所示,為本說明書的基於區塊鏈的交易處理裝置所在電子設備的一種硬體結構圖,除了圖6所示的處理器、內部記憶體、網路介面、以及非揮發性記憶體之外,實施例中裝置所在的電子設備通常根據該電子設備的實際功能,還可以包括其他硬體,對此不再贅述。
圖7是本說明書一示例性實施例示出的一種基於區塊鏈的交易處理裝置的框圖。
請參考圖7,所述基於區塊鏈的交易處理裝置70可以應用在前述圖6所示的電子設備中,包括有:獲取模組701、添加模組702和發佈模組703。
獲取模組701,從區塊鏈中維護的與使用者帳戶對應的Nonce列表中,為使用者透過所述使用者帳戶發起的需要並行執行的多筆交易,分別獲取分組標識相同的可用Nonce記錄;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;
添加模組702,將獲取到的可用Nonce記錄分別添加至所述多筆交易;
發佈模組703,將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備將所述客戶端發佈的交易中的可用Nonce記錄與所述Nonce列表中的Nonce記錄進行匹配,並在所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配時,受理所述交易,以及並行執行已受理的交易中具有相同分組標識的多筆交易。
在本實施例中,所述需要並行執行的多筆交易,包括交易類型相同的多筆交易。
在本實施例中,所述獲取模組701進一步:
如果使用者透過使用者帳戶發起的交易中存在所包含的多筆交易需要並行執行的多組交易,確定所述多組交易的執行順序;
從所述Nonce列表中為所述多組交易分別獲取分組標識相同,並且所述分組標識指示所述多組交易的執行順序的可用Nonce記錄。
在本實施例中,所述獲取模組701進一步:
在從所述Nonce列表中為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄之前,響應於針對所述客戶端的初始化指令,獲取所述區塊鏈中維護的所述Nonce列表,並將獲取到的所述Nonce列表在所述客戶端本地進行維護;
從所述客戶端本地維護的所述Nonce列表中,為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄。
在本實施例中,所述客戶端本地維護的所述Nonce列表中的Nonce記錄默認被標記為可用;
所述獲取模組701:
從所述客戶端本地維護的所述Nonce列表中,為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄之後,在所述Nonce列表中將所述可用Nonce記錄標記為不可用。
在本實施例中,所述獲取模組701進一步:
確定是否接收到所述節點設備返回的所述交易被受理的通知消息;如果是,基於預設幅度對所述可用Nonce記錄中的Nonce值進行單調遞增,並在所述Nonce值單調遞增之後,在所述Nonce列表中將所述可用Nonce記錄重新標記為可用。
在本實施例中,所述客戶端為多執行緒客戶端;所述Nonce列表中的Nonce記錄的數量,指示所述使用者帳戶的交易並行能力。
在本實施例中,所述Nonce記錄還包括:所述Nonce記錄的索引標識。
圖8是本說明書一示例性實施例示出的另一種基於區塊鏈的交易處理裝置的框圖。
請參考圖8,所述基於區塊鏈的交易處理裝置80也可以應用在前述圖6所示的電子設備中,包括有:接收模組801、匹配模組802和執行模組803。
接收模組801,接收客戶端發送的使用者透過使用者帳戶發起的交易;其中,所述交易被添加了從所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中獲取到的可用Nonce記錄;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;匹配模組802,將接收到的交易中的可用Nonce記錄,與所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中的Nonce記錄進行匹配;執行模組803,如果所述可用Nonce記錄,與所述
Nonce列表中的任一目標Nonce記錄匹配,受理所述交易;以及,並行執行已受理的交易中具有相同分組標識的多筆交易。
在本實施例中,所述客戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易;所述客戶端為所述多組交易添加的可用Nonce記錄中的分組標識指示所述多組交易的執行順序;所述執行模組803進一步:如果所述客戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易,按照所述多組交易的分組標識所指示的執行順序,順序執行所述多組交易。
在本實施例中,所述執行模組803進一步:如果所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配,基於預設幅度對所述目標Nonce記錄的Nonce值進行單調遞增;以及,向所述客戶端返回所述交易被受理的通知消息。
在本實施例中,所述Nonce記錄還包括:所述Nonce記錄的索引標識。
上述裝置中各個模組的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對於裝置實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的模組可以是或者也可以不是物理上分開的,作為模組顯示的部件可以是或者也可以不是物理模組,即可以位於一個地方,或者也可以分佈到多個網路模組上。可以根據實際的需要選擇其中的部分或者全部模組來實現本說明書方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
上述實施例闡明的系統、裝置、模組或模組,具體可以由計算機晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為計算機,計算機的具體形式可以是個人計算機、膝上型計算機、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放器、導航設備、電子郵件收發設備、遊戲控制台、平板計算機、可穿戴設備或者這些設備中的任意幾種設備的組合。
與上述方法實施例相對應,本說明書還提供了一種電子設備的實施例。該電子設備包括:處理器以及用於儲存機器可執行指令的記憶體;其中,處理器和記憶體通常透過內部匯流排相互連接。在其他可能的實現方式中,所述設備還可能包括外部介面,以能夠與其他設備或者部件進行通訊。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
從區塊鏈中維護的與使用者帳戶對應的Nonce列表中,為使用者透過所述使用者帳戶發起的需要並行執行的多筆交易,分別獲取分組標識相同的可用Nonce記錄;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;
將獲取到的可用Nonce記錄分別添加至所述多筆交易;
將所述多筆交易發佈至所述區塊鏈,以由所述區塊鏈中的節點設備將所述客戶端發佈的交易中的可用Nonce記錄與所述Nonce列表中的Nonce記錄進行匹配,並在所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配時,受理所述交易,以及並行執行已受理的交易中具有相同分組標識的多筆交易。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
如果使用者透過使用者帳戶發起的交易中存在所包含的多筆交易需要並行執行的多組交易,確定所述多組交易的執行順序;
從所述Nonce列表中為所述多組交易分別獲取分組標識相同,並且所述分組標識指示所述多組交易的執行順序的可用Nonce記錄。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
從所述Nonce列表中為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄之前,響應於針對所述客戶端的初始化指令,獲取所述區塊鏈中維護的所述Nonce列表,並將獲取到的所述Nonce列表在所述客戶端本地進行維護;
從所述客戶端本地維護的所述Nonce列表中,為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄;
在本實施例中,所述客戶端本地維護的所述Nonce列表中的Nonce記錄默認被標記為可用;
透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
從所述客戶端本地維護的所述Nonce列表中,為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄之後,在所述Nonce列表中將所述可用Nonce記錄標記為不可用。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
確定是否接收到所述節點設備返回的所述交易被受理的通知消息;
如果是,基於預設幅度對所述可用Nonce記錄中的Nonce值進行單調遞增,並在所述Nonce值單調遞增之後,在所述Nonce列表中將所述可用Nonce記錄重新標記為可用。
與上述方法實施例相對應,本說明書還提供了另一種電子設備的實施例。該電子設備包括:處理器以及用於儲存機器可執行指令的記憶體;其中,處理器和記憶體通常透過內部匯流排相互連接。在其他可能的實現方式中,所述設備還可能包括外部介面,以能夠與其他設備或者部件進行通訊。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:
接收客戶端發送的使用者透過使用者帳戶發起的交易;其中,所述交易被添加了從所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中獲取到的可用Nonce記錄;其中,所述Nonce列表包括多條Nonce記錄;所述Nonce記錄包括分組標識和Nonce值;
將接收到的交易中的可用Nonce記錄,與所述區塊鏈中維護的與所述使用者帳戶對應的Nonce列表中的Nonce記錄進行匹配;
如果所述可用Nonce記錄,與所述Nonce列表中的任一目標Nonce記錄匹配,受理所述交易;以及,並行執行已受理的交易中具有相同分組標識的多筆交易。
在本實施例中,所述客戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易;所述客戶端為所述多組交易添加的可用Nonce記錄中的分組標識指示所述多組交易的執行順序;透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:如果所述客戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易,按照所述多組交易的分組標識所指示的執行順序,順序執行所述多組交易。
在本實施例中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,所述處理器被促使:如果所述可用Nonce記錄與所述Nonce列表中的任一目標Nonce記錄匹配,基於預設幅度對所述目標Nonce記錄的Nonce值進行單調遞增;以及,向所述客戶端返回所述交易被受理的通知消息。
本領域技術人員在考慮說明書及實踐這裡公開的發明後,將容易想到本說明書的其它實施方案。本說明書旨在涵蓋本說明書的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本說明書的一般性原理並包括本說明書未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本說明書的真正範圍和精神由下面的申請專利範圍指出。
應當理解的是,本說明書並不局限於上面已經描述並在圖式中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本說明書的範圍僅由所附的申請專利範圍來限制。
以上所述僅為本說明書的較佳實施例而已,並不用以限制本說明書,凡在本說明書的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書保護的範圍之內。
202:步驟
204:步驟
206:步驟
1:使用者帳戶
N:使用者帳戶
70:基於區塊鏈的交易處理裝置
701:獲取模組
702:添加模組
703:發佈模組
80:基於區塊鏈的交易處理裝置
801:接收模組
802:匹配模組
803:執行模組
圖1是一示例性實施例提供的一種對交易進行重送攻擊檢測的示意圖。
圖2是一示例性實施例提供的一種基於區塊鏈的交易處理方法的流程圖。
圖3是一示例性實施例提供的一種在區塊鏈中維護的Nonce列表集合的結構示意圖。
圖4是一示例性實施例提供的另一種對交易進行重送攻擊檢測的示意圖。
圖5是一示例性實施例提供的一種客戶端維護的Nonce列表的結構示意圖。
圖6是一示例性實施例提供的一種電子設備的結構示意圖。
圖7是一示例性實施例提供的一種基於區塊鏈的交易處理裝置的框圖。
圖8是一示例性實施例提供的另一種基於區塊鏈的交易處理裝置的框圖。
Claims (24)
- 一種基於區塊鏈的交易處理方法,應用於客戶端,該區塊鏈中維護了與該使用者帳戶對應的Nonce列表;其中,該Nonce列表包括多條Nonce記錄;該Nonce記錄包括分組標識和Nonce值;該方法包括:從該Nonce列表中為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄;將獲取到的可用Nonce記錄分別添加至該多筆交易;將該多筆交易發佈至該區塊鏈,以由該區塊鏈中的節點設備將該客戶端發佈的交易中的可用Nonce記錄與該Nonce列表中的Nonce記錄進行匹配,並在該可用Nonce記錄與該Nonce列表中的任一目標Nonce記錄匹配時,受理該交易,以及並行執行已受理的交易中具有相同分組標識的多筆交易;其中,在該交易被受理時,基於預設幅度對該可用Nonce記錄中的Nonce值進行單調遞增。
- 根據請求項1之方法,還包括:如果使用者透過使用者帳戶發起的交易中存在所包含的多筆交易需要並行執行的多組交易,確定該多組交易的執行順序;從該Nonce列表中為該多組交易分別獲取分組標識相同,並且該分組標識指示該多組交易的執行順序的可用Nonce記錄。
- 根據請求項1之方法,從該Nonce列表中為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄之前,還包括:響應於針對該客戶端的初始化指令,獲取該區塊鏈中維護的該Nonce列表,並將獲取到的該Nonce列表在該客戶端本地進行維護;從該Nonce列表中為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄,包括:從該客戶端本地維護的該Nonce列表中,為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄。
- 根據請求項3之方法,該客戶端本地維護的該Nonce列表中的Nonce記錄默認被標記為可用;該方法還包括:從該客戶端本地維護的該Nonce列表中,為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄之後,在該Nonce列表中將該可用Nonce記錄標記為不可用。
- 根據請求項4之方法,還包括:確定是否接收到該節點設備返回的該交易被受理的通知消息;如果是,在基於預設幅度對該可用Nonce記錄中的Nonce值進行單調遞增之後,在該Nonce列表中將該可用 Nonce記錄重新標記為可用。
- 根據請求項1之方法,該客戶端為多執行緒客戶端;該Nonce列表中的Nonce記錄的數量,指示該使用者帳戶的交易並行能力。
- 根據請求項6之方法,該Nonce記錄還包括:該Nonce記錄的索引標識。
- 一種基於區塊鏈的交易處理方法,應用於區塊鏈中的節點設備,該區塊鏈維護了Nonce列表集合;該Nonce列表集合包括與若干使用者帳戶對應的Nonce列表;其中,該Nonce列表包括多條Nonce記錄;該Nonce記錄包括分組標識和Nonce值;該方法包括:接收客戶端發送的使用者透過使用者帳戶發起的交易;其中,該交易被添加了從該區塊鏈中維護的與該使用者帳戶對應的Nonce列表中獲取到的可用Nonce記錄;將接收到的交易中的可用Nonce記錄,與該區塊鏈中維護的與該使用者帳戶對應的Nonce列表中的Nonce記錄進行匹配;如果該可用Nonce記錄,與該Nonce列表中的任一目標Nonce記錄匹配,受理該交易;以及,並行執行已受理的交易中具有相同分組標識的多筆交易;其中,在該交易被受理時,基於預設幅度對該可用Nonce記錄中的Nonce值進行單調遞增。
- 根據請求項8之方法,該客戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易; 該客戶端為該多組交易添加的可用Nonce記錄中的分組標識指示該多組交易的執行順序;該方法還包括:如果該客戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易,按照該多組交易的分組標識所指示的執行順序,順序執行該多組交易。
- 根據請求項8之方法,還包括:如果該可用Nonce記錄與該Nonce列表中的任一目標Nonce記錄匹配,基於預設幅度對該目標Nonce記錄的Nonce值進行單調遞增;以及,向該客戶端返回該交易被受理的通知消息。
- 根據請求項10之方法,該Nonce記錄還包括:該Nonce記錄的索引標識。
- 一種基於區塊鏈的交易處理裝置,應用於客戶端,該區塊鏈中維護了與該使用者帳戶對應的Nonce列表;其中,該Nonce列表包括多條Nonce記錄;該Nonce記錄包括分組標識和Nonce值;該方法包括:獲取模組,從該Nonce列表中為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄;添加模組,將獲取到的可用Nonce記錄分別添加至該多筆交易;發佈模組,將該多筆交易發佈至該區塊鏈,以由該區塊鏈中的節點設備將該客戶端發佈的交易中的可用Nonce 記錄與該Nonce列表中的Nonce記錄進行匹配,並在該可用Nonce記錄與該Nonce列表中的任一目標Nonce記錄匹配時,受理該交易,以及並行執行已受理的交易中具有相同分組標識的多筆交易;其中,在該交易被受理時,基於預設幅度對該可用Nonce記錄中的Nonce值進行單調遞增。
- 根據請求項12之裝置,該獲取模組進一步:如果使用者透過使用者帳戶發起的交易中存在所包含的多筆交易需要並行執行的多組交易,確定該多組交易的執行順序;從該Nonce列表中為該多組交易分別獲取分組標識相同,並且該分組標識指示該多組交易的執行順序的可用Nonce記錄。
- 根據請求項12之裝置,該獲取模組進一步:在從該Nonce列表中為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄之前,響應於針對該客戶端的初始化指令,獲取該區塊鏈中維護的該Nonce列表,並將獲取到的該Nonce列表在該客戶端本地進行維護;從該客戶端本地維護的該Nonce列表中,為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄。
- 根據請求項14之裝置,該客戶端本地維護的該Nonce列表中的Nonce記錄默認被標記為可用;該獲取模組:從該客戶端本地維護的該Nonce列表中,為使用者透過使用者帳戶發起的需要並行執行的多筆交易分別獲取分組標識相同的可用Nonce記錄之後,在該Nonce列表中將該可用Nonce記錄標記為不可用。
- 根據請求項15之裝置,該獲取模組進一步:確定是否接收到該節點設備返回的該交易被受理的通知消息;如果是,在基於預設幅度對該可用Nonce記錄中的Nonce值進行單調遞增之後,在該Nonce列表中將該可用Nonce記錄重新標記為可用。
- 根據請求項11之裝置,該客戶端為多執行緒客戶端;該Nonce列表中的Nonce記錄的數量,指示該使用者帳戶的交易並行能力。
- 根據請求項17之裝置,該Nonce記錄還包括:該Nonce記錄的索引標識。
- 一種基於區塊鏈的交易處理裝置,應用於區塊鏈中的節點設備,該區塊鏈維護了Nonce列表集合;該Nonce列表集合包括與若干使用者帳戶對應的Nonce列表;其中,該Nonce列表包括多條Nonce記錄;該Nonce記錄包括分組標識和Nonce值;該方法包括: 接收模組,接收客戶端發送的使用者透過使用者帳戶發起的交易;其中,該交易被添加了從該區塊鏈中維護的與該使用者帳戶對應的Nonce列表中獲取到的可用Nonce記錄;匹配模組,將接收到的交易中的可用Nonce記錄,與該區塊鏈中維護的與該使用者帳戶對應的Nonce列表中的Nonce記錄進行匹配;執行模組,如果該可用Nonce記錄,與該Nonce列表中的任一目標Nonce記錄匹配,受理該交易;以及,並行執行已受理的交易中具有相同分組標識的多筆交易;其中,在該交易被受理時,基於預設幅度對該可用Nonce記錄中的Nonce值進行單調遞增。
- 根據請求項19之裝置,該客戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易;該客戶端為該多組交易添加的可用Nonce記錄中的分組標識指示該多組交易的執行順序;該執行模組進一步:如果該客戶端發送的交易中存在所包含的多筆交易的分組標識相同的多組交易,按照該多組交易的分組標識所指示的執行順序,順序執行該多組交易。
- 根據請求項19之裝置,該執行模組進一步:向該客戶端返回該交易被受理的通知消息。
- 根據請求項21之裝置,該Nonce記錄還 包括:該Nonce記錄的索引標識。
- 一種電子設備,包括:處理器;用於儲存機器可執行指令的記憶體;其中,透過讀取並執行該記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,該處理器被促使:從區塊鏈中維護的與使用者帳戶對應的Nonce列表中,為使用者透過該使用者帳戶發起的需要並行執行的多筆交易,分別獲取分組標識相同的可用Nonce記錄;其中,該Nonce列表包括多條Nonce記錄;該Nonce記錄包括分組標識和Nonce值;將獲取到的可用Nonce記錄分別添加至該多筆交易;將該多筆交易發佈至該區塊鏈,以由該區塊鏈中的節點設備將該客戶端發佈的交易中的可用Nonce記錄與該Nonce列表中的Nonce記錄進行匹配,並在該可用Nonce記錄與該Nonce列表中的任一目標Nonce記錄匹配時,受理該交易,以及並行執行已受理的交易中具有相同分組標識的多筆交易;其中,在該交易被受理時,基於預設幅度對該可用Nonce記錄中的Nonce值進行單調遞增。
- 一種電子設備,包括:處理器;用於儲存機器可執行指令的記憶體; 其中,透過讀取並執行該記憶體儲存的與基於區塊鏈的交易處理的控制邏輯對應的機器可執行指令,該處理器被促使:接收客戶端發送的使用者透過使用者帳戶發起的交易;其中,該交易被添加了從該區塊鏈中維護的與該使用者帳戶對應的Nonce列表中獲取到的可用Nonce記錄;其中,該Nonce列表包括多條Nonce記錄;該Nonce記錄包括分組標識和Nonce值;將接收到的交易中的可用Nonce記錄,與該區塊鏈中維護的與該使用者帳戶對應的Nonce列表中的Nonce記錄進行匹配;如果該可用Nonce記錄,與該Nonce列表中的任一目標Nonce記錄匹配,受理該交易;以及,並行執行已受理的交易中具有相同分組標識的多筆交易;其中,在該交易被受理時,基於預設幅度對該可用Nonce記錄中的Nonce值進行單調遞增。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811253444.0 | 2018-10-25 | ||
CN201811253444.0A CN109598504B (zh) | 2018-10-25 | 2018-10-25 | 基于区块链的交易处理方法及装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202016787A TW202016787A (zh) | 2020-05-01 |
TWI706278B true TWI706278B (zh) | 2020-10-01 |
Family
ID=65957010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108109327A TWI706278B (zh) | 2018-10-25 | 2019-03-19 | 基於區塊鏈的交易處理方法及裝置、電子設備 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11481765B2 (zh) |
EP (1) | EP3816910B1 (zh) |
CN (2) | CN109598504B (zh) |
SG (1) | SG11202100309PA (zh) |
TW (1) | TWI706278B (zh) |
WO (1) | WO2020082893A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11416852B1 (en) * | 2017-12-15 | 2022-08-16 | Worldpay, Llc | Systems and methods for generating and transmitting electronic transaction account information messages |
CN109598504B (zh) * | 2018-10-25 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 基于区块链的交易处理方法及装置、电子设备 |
CN110175831B (zh) * | 2019-04-23 | 2023-09-29 | 创新先进技术有限公司 | 一种基于区块链的信用转移方法、装置及电子设备 |
CN110070445B (zh) * | 2019-04-28 | 2024-03-01 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的交易处理方法及装置 |
CN110264348B (zh) * | 2019-05-07 | 2021-08-20 | 北京奇艺世纪科技有限公司 | 一种交易上链的处理方法、装置及存储介质 |
US11108545B2 (en) | 2019-05-31 | 2021-08-31 | Advanced New Technologies Co., Ltd. | Creating a blockchain account and verifying blockchain transactions |
CN110264354B (zh) * | 2019-05-31 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 创建区块链账户及验证区块链交易的方法及装置 |
CN110648124B (zh) * | 2019-08-30 | 2021-06-29 | 创新先进技术有限公司 | 在区块链中并发执行交易的方法和装置 |
CN110796545B (zh) * | 2019-10-25 | 2024-03-29 | 杭州趣链科技有限公司 | 一种区块链交易的批处理方法、设备和存储介质 |
CN112202564B (zh) * | 2020-09-14 | 2022-09-20 | 成都质数斯达克科技有限公司 | 交易传递方法、装置、电子设备及可读存储介质 |
CN113225368B (zh) * | 2021-02-07 | 2022-04-19 | 武汉卓尔信息科技有限公司 | 一种区块链交易方法、装置、电子设备及存储介质 |
US11936794B2 (en) * | 2021-09-16 | 2024-03-19 | Masterard International Incorporated | Method and system for parallel processing of smart contracts in permissioned blockchains |
CN114493602B (zh) * | 2022-04-08 | 2022-07-22 | 恒生电子股份有限公司 | 区块链交易的执行方法、装置、电子设备和存储介质 |
CN116634025B (zh) * | 2023-07-25 | 2023-12-29 | 武汉趣链数字科技有限公司 | 一种确定交易顺序的方法、设备、系统和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI517069B (zh) * | 2014-03-14 | 2016-01-11 | 謝宛霖 | 雲端即時租賃方法 |
CN106815722A (zh) * | 2016-12-22 | 2017-06-09 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 基于区块链的信息处理方法和装置 |
CN108053211A (zh) * | 2017-12-27 | 2018-05-18 | 北京欧链科技有限公司 | 基于区块链的交易处理方法及装置 |
US20180284755A1 (en) * | 2016-05-09 | 2018-10-04 | StrongForce IoT Portfolio 2016, LLC | Methods and systems for data storage in an industrial internet of things data collection environment with large data sets |
Family Cites Families (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7856660B2 (en) * | 2001-08-21 | 2010-12-21 | Telecommunication Systems, Inc. | System for efficiently handling cryptographic messages containing nonce values |
US7529371B2 (en) * | 2004-04-22 | 2009-05-05 | International Business Machines Corporation | Replaceable sequenced one-time pads for detection of cloned service client |
US7725927B2 (en) * | 2005-10-28 | 2010-05-25 | Yahoo! Inc. | Low code-footprint security solution |
US20080077795A1 (en) * | 2006-09-25 | 2008-03-27 | Macmillan David M | Method and apparatus for two-way authentication without nonces |
US20080148052A1 (en) * | 2006-10-25 | 2008-06-19 | Motorola, Inc. | Method and system for authentication bonding two devices and sending authenticated events |
US20100275020A1 (en) * | 2006-11-02 | 2010-10-28 | Takashi Aramaki | Communication method, communication system, mobile node and communication node |
US8850197B2 (en) * | 2009-07-31 | 2014-09-30 | Futurewei Technologies, Inc. | Optical network terminal management control interface-based passive optical network security enhancement |
US20140133656A1 (en) * | 2012-02-22 | 2014-05-15 | Qualcomm Incorporated | Preserving Security by Synchronizing a Nonce or Counter Between Systems |
EP3183595A1 (en) * | 2014-08-22 | 2017-06-28 | Philips Lighting Holding B.V. | Localization system comprising multiple beacons and an assignment system |
WO2016161073A1 (en) * | 2015-03-31 | 2016-10-06 | Nasdaq, Inc. | Systems and methods of blockchain transaction recordation |
EP3317775B1 (en) * | 2015-07-02 | 2022-02-16 | Nasdaq, Inc. | Systems and methods of secure provenance for distributed transaction databases |
US10339132B2 (en) * | 2015-07-09 | 2019-07-02 | Netapp, Inc. | Flow control technique for EOS system |
US20170228731A1 (en) * | 2016-02-09 | 2017-08-10 | Fmr Llc | Computationally Efficient Transfer Processing and Auditing Apparatuses, Methods and Systems |
WO2017091530A1 (en) * | 2015-11-24 | 2017-06-01 | Gartland & Mellina Group | Blockchain solutions for financial services and other transaction-based industries |
US10230756B2 (en) * | 2015-11-25 | 2019-03-12 | International Business Machines Corporation | Resisting replay attacks efficiently in a permissioned and privacy-preserving blockchain network |
EP3403213B1 (fr) * | 2016-01-15 | 2024-10-23 | Enrico Maim | Procédés et systèmes mis en oeuvre dans une architecture en réseau de noeuds susceptibles de réaliser des transactions basées sur messages |
US10255108B2 (en) * | 2016-01-26 | 2019-04-09 | International Business Machines Corporation | Parallel execution of blockchain transactions |
CA3014727A1 (en) * | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to an automated payroll method and system based on smart contracts |
CN109314636B (zh) * | 2016-02-23 | 2022-01-11 | 区块链控股有限公司 | 用于从区块链中安全提取数据的密码方法和系统 |
EP3420456B8 (en) * | 2016-02-25 | 2020-11-04 | Trusona, Inc. | Anti-replay systems and methods |
GB201607476D0 (en) * | 2016-04-29 | 2016-06-15 | Eitc Holdings Ltd | Operating system for blockchain IOT devices |
US10333705B2 (en) * | 2016-04-30 | 2019-06-25 | Civic Technologies, Inc. | Methods and apparatus for providing attestation of information using a centralized or distributed ledger |
KR101781583B1 (ko) | 2016-08-31 | 2017-09-27 | 서강대학교산학협력단 | 블록체인을 기반으로 한 파일 관리/검색 시스템 및 파일 관리/검색 방법 |
WO2018049234A1 (en) * | 2016-09-09 | 2018-03-15 | Trusona, Inc. | Systems and methods for distribution of selected authentication information for a network of devices |
CN106452785B (zh) * | 2016-09-29 | 2019-05-17 | 财付通支付科技有限公司 | 区块链网络、分支节点及区块链网络应用方法 |
CN108075895B (zh) | 2016-11-15 | 2020-03-24 | 深圳银链科技有限公司 | 一种基于区块链的节点许可方法和系统 |
EP3568794B1 (fr) * | 2017-01-16 | 2024-03-13 | Enrico Maim | Procédés et systèmes pour l'exécution de contrats intelligents dans des environnements sécurisés |
US11316868B2 (en) * | 2017-02-24 | 2022-04-26 | Nec Corporation | Information verification system, information verification device, method and program |
WO2018165940A1 (en) * | 2017-03-16 | 2018-09-20 | Hong Kong R & D Centre for Logistics and Supply Chain Management Enabling Technologies Limited | A system and method for controlling a ledger of transactions |
CN106991607B (zh) * | 2017-03-29 | 2020-04-10 | 杭州溪塔科技有限公司 | 一种基于区块链账户模型的无序交易控制方法 |
EP3382616A1 (de) * | 2017-03-31 | 2018-10-03 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zum rechnergestützten bereitstellen eines sicherheitsgeschützten digitalen zwillings |
EP3382629A1 (de) * | 2017-03-31 | 2018-10-03 | Siemens Aktiengesellschaft | Verfahren und zeitgeber zum bereitstellen von sicherheitsgeschützten zeitangaben |
US20180293547A1 (en) * | 2017-04-06 | 2018-10-11 | Jaspreet Randhawa | Methods and systems for employment and education verification using blockchain |
EP3388994A1 (de) * | 2017-04-12 | 2018-10-17 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zum rechnergestützten testen einer blockkette |
WO2018195364A1 (en) * | 2017-04-19 | 2018-10-25 | Baton Systems, Inc. | Time stamping systems and methods |
US20210083852A1 (en) * | 2017-06-07 | 2021-03-18 | nChain Holdings Limited | Computer-implemented system and method for managing large blocks over a blockchain network |
EP4254301A3 (en) * | 2017-06-07 | 2023-10-11 | nChain Licensing AG | Credential generation and distribution method and system for a blockchain network |
US10581613B2 (en) * | 2017-06-09 | 2020-03-03 | Ecole Polytechnique Federale De Lausanne (Epfl) | Cryptographically verifiable data structure having multi-hop forward and backwards links and associated systems and methods |
WO2019015904A1 (en) * | 2017-07-17 | 2019-01-24 | Radix Dlt Limited | DISTRIBUTED REGISTRY TECHNOLOGY |
GB201711867D0 (en) * | 2017-07-24 | 2017-09-06 | Nchain Holdings Ltd | Computer-implemented system and method |
CN107688999B (zh) | 2017-08-11 | 2020-11-13 | 杭州溪塔科技有限公司 | 一种基于区块链的并行交易执行方法 |
CN107678865A (zh) * | 2017-09-20 | 2018-02-09 | 中国银行股份有限公司 | 基于交易分组的区块链的验证方法以及系统 |
GB201715423D0 (en) * | 2017-09-22 | 2017-11-08 | Nchain Holdings Ltd | Computer-implemented system and method |
EP3462313A1 (de) * | 2017-09-27 | 2019-04-03 | Siemens Aktiengesellschaft | Verfahren und verteiltes datenbanksystem zum rechnergestützten ausführen eines programmcodes |
US11316696B2 (en) * | 2017-09-29 | 2022-04-26 | R3 Ltd. | Hash subtrees for grouping components by component type |
GB2569278A (en) * | 2017-10-23 | 2019-06-19 | Cygnetise Ltd | Methods and apparatus for verifying a user transaction |
US11449864B2 (en) * | 2017-10-31 | 2022-09-20 | R3 Ltd. | Reissuing obligations to preserve privacy |
CN107993147A (zh) * | 2017-11-13 | 2018-05-04 | 中国银行股份有限公司 | 热点账户的余额控制方法及装置 |
US11042934B2 (en) * | 2017-11-13 | 2021-06-22 | Bank Of America Corporation | Crypto-machine learning enabled blockchain based profile pricer |
US20190164150A1 (en) * | 2017-11-29 | 2019-05-30 | Bank Of America Corporation | Using Blockchain Ledger for Selectively Allocating Transactions to User Accounts |
CN107943976B (zh) * | 2017-11-29 | 2022-02-25 | 中国银行股份有限公司 | 一种海量交易日志中基于账户的热点交易识别方法及系统 |
US10567156B2 (en) * | 2017-11-30 | 2020-02-18 | Bank Of America Corporation | Blockchain-based unexpected data detection |
US12130706B2 (en) * | 2017-12-14 | 2024-10-29 | International Business Machines Corporation | Redundancy reduction in blockchains |
US11016456B2 (en) * | 2018-01-11 | 2021-05-25 | Lancium Llc | Method and system for dynamic power delivery to a flexible datacenter using unutilized energy sources |
JP6897973B2 (ja) * | 2018-02-15 | 2021-07-07 | 株式会社アクセル | サーバ装置、処理システム、処理方法及び処理プログラム |
EP3777018B1 (en) * | 2018-03-29 | 2024-06-12 | Telefonaktiebolaget LM Ericsson (publ) | Technique for computing a block in a blockchain network |
CN108282334B (zh) * | 2018-04-13 | 2021-04-27 | 浪潮集团有限公司 | 一种基于区块链的多方密钥协商装置、方法及系统 |
US11005664B2 (en) * | 2018-04-16 | 2021-05-11 | R3 Ltd. | Blockchain post-quantum signature scheme |
CN108667632B (zh) | 2018-04-19 | 2020-10-30 | 创新先进技术有限公司 | 基于区块链的信用记录共享方法及装置、电子设备 |
CN108805569A (zh) * | 2018-05-29 | 2018-11-13 | 阿里巴巴集团控股有限公司 | 基于区块链的交易处理方法及装置、电子设备 |
US11556874B2 (en) * | 2018-06-11 | 2023-01-17 | International Business Machines Corporation | Block creation based on transaction cost and size |
US20200013050A1 (en) * | 2018-07-06 | 2020-01-09 | Keir Finlow-Bates | Blockchain based payments for digital certificate provisioning of internet of things devices |
US11204939B2 (en) * | 2018-07-18 | 2021-12-21 | Bank Of America Corporation | Data manifest as a blockchain service |
US10965466B2 (en) * | 2018-08-03 | 2021-03-30 | National Taiwan University | Estimable proof-of-work for blockchain |
US11159307B2 (en) * | 2018-08-08 | 2021-10-26 | International Business Machines Corporation | Ad-hoc trusted groups on a blockchain |
CN109242484A (zh) * | 2018-08-09 | 2019-01-18 | 玄章技术有限公司 | 一种区块链的共识激励方法 |
US11063760B2 (en) * | 2018-08-22 | 2021-07-13 | Sasken Technologies Ltd | Method for ensuring security of an internet of things network |
IL261679A (en) * | 2018-09-06 | 2018-10-31 | Acuant Inc | System and method for management of digital id |
AU2019236667B2 (en) * | 2018-09-28 | 2023-10-05 | Infosys Limited | System and method for decentralized identity management, authentication and authorization of applications |
US10756912B2 (en) * | 2018-10-12 | 2020-08-25 | Avaya Inc. | Distributed ledger and blockchain to confirm validity of call recordings |
US20200119904A1 (en) * | 2018-10-15 | 2020-04-16 | Ca, Inc. | Tamper-proof privileged user access system logs |
US11133923B2 (en) * | 2018-10-24 | 2021-09-28 | Landis+Gyr Innovations, Inc. | Cryptographic operations using internet of things device pool |
CN109598504B (zh) * | 2018-10-25 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 基于区块链的交易处理方法及装置、电子设备 |
-
2018
- 2018-10-25 CN CN201811253444.0A patent/CN109598504B/zh active Active
- 2018-10-25 CN CN202011103271.1A patent/CN112232817B/zh active Active
-
2019
- 2019-03-19 TW TW108109327A patent/TWI706278B/zh active
- 2019-08-29 SG SG11202100309PA patent/SG11202100309PA/en unknown
- 2019-08-29 EP EP19874820.4A patent/EP3816910B1/en active Active
- 2019-08-29 WO PCT/CN2019/103238 patent/WO2020082893A1/zh unknown
-
2021
- 2021-01-27 US US17/160,203 patent/US11481765B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI517069B (zh) * | 2014-03-14 | 2016-01-11 | 謝宛霖 | 雲端即時租賃方法 |
US20180284755A1 (en) * | 2016-05-09 | 2018-10-04 | StrongForce IoT Portfolio 2016, LLC | Methods and systems for data storage in an industrial internet of things data collection environment with large data sets |
CN106815722A (zh) * | 2016-12-22 | 2017-06-09 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 基于区块链的信息处理方法和装置 |
CN108053211A (zh) * | 2017-12-27 | 2018-05-18 | 北京欧链科技有限公司 | 基于区块链的交易处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3816910A4 (en) | 2021-09-15 |
CN109598504B (zh) | 2020-09-01 |
SG11202100309PA (en) | 2021-02-25 |
EP3816910B1 (en) | 2022-12-28 |
US11481765B2 (en) | 2022-10-25 |
CN109598504A (zh) | 2019-04-09 |
US20210150519A1 (en) | 2021-05-20 |
EP3816910A1 (en) | 2021-05-05 |
TW202016787A (zh) | 2020-05-01 |
WO2020082893A1 (zh) | 2020-04-30 |
CN112232817B (zh) | 2024-12-27 |
CN112232817A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI706278B (zh) | 基於區塊鏈的交易處理方法及裝置、電子設備 | |
TWI734088B (zh) | 基於區塊鏈的交易處理方法及裝置、電子設備 | |
TWI737977B (zh) | 基於區塊鏈的交易處理方法及裝置、電子設備 | |
CN112767158B (zh) | 基于区块链的交易执行方法及装置、电子设备 | |
TWI735820B (zh) | 資產管理方法及裝置、電子設備 | |
US11250395B2 (en) | Blockchain-based transaction processing methods and apparatuses and electronic devices | |
CN108492180B (zh) | 资产管理方法及装置、电子设备 | |
TW201935383A (zh) | 資產管理方法及裝置、電子設備 | |
TW201935375A (zh) | 資產管理方法及裝置、電子設備 | |
EP3905172A1 (en) | Blockchain-based invoice voiding method and apparatus, and electronic device | |
US11816714B2 (en) | Service verification method and apparatus |