CN110945548B - Computer-implemented system and method for managing large distributed storage pools in a blockchain network - Google Patents
Computer-implemented system and method for managing large distributed storage pools in a blockchain network Download PDFInfo
- Publication number
- CN110945548B CN110945548B CN201880049013.4A CN201880049013A CN110945548B CN 110945548 B CN110945548 B CN 110945548B CN 201880049013 A CN201880049013 A CN 201880049013A CN 110945548 B CN110945548 B CN 110945548B
- Authority
- CN
- China
- Prior art keywords
- transaction
- node
- transactions
- storage pool
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims abstract description 267
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000012217 deletion Methods 0.000 claims description 24
- 230000037430 deletion Effects 0.000 claims description 24
- 238000013138 pruning Methods 0.000 claims description 16
- 230000008521 reorganization Effects 0.000 claims description 11
- 238000010200 validation analysis Methods 0.000 claims description 10
- 238000011084 recovery Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 4
- 230000009977 dual effect Effects 0.000 claims 1
- 238000009966 trimming Methods 0.000 claims 1
- 238000005065 mining Methods 0.000 abstract description 13
- 238000012795 verification Methods 0.000 description 43
- 230000006870 function Effects 0.000 description 26
- 238000012790 confirmation Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 9
- 230000002441 reversible effect Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000013515 script Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000005295 random walk Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 235000014594 pastries Nutrition 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013479 data entry Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000005304 joining Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 2
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000007480 spreading Effects 0.000 description 2
- 238000003892 spreading Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000006424 Flood reaction Methods 0.000 description 1
- 241000712062 Patricia Species 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000009412 basement excavation Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1865—Transactional file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
-
- 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24565—Triggers; Constraints
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- 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
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- 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
-
- 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/22—Payment schemes or models
- G06Q20/223—Payment schemes or models based on the use of peer-to-peer networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/407—Cancellation 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
- 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/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/3234—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 involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- 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
-
- 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/3247—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 involving digital signatures
-
- 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/3271—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 challenge-response
- H04L9/3273—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 challenge-response for mutual authentication
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Finance (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Quality & Reliability (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Computational Linguistics (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- Computing Systems (AREA)
- Technology Law (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Multi Processors (AREA)
Abstract
描述了一种在区块链网络中实现的计算机实现的方法。验证节点接收关于包括多个交易的新挖掘的区块的数据,并向分布式存储池发送删除请求,以从所述分布式存储池中删除所述多个交易。存储所述分布式存储池的节点存储多个交易,所述多个交易形成等待挖掘到区块链的区块中的交易的分布式存储池的至少一部分。所述计算机实现的方法还包括接收来自所述区块链网络的验证节点的删除请求,所述删除请求识别已经包括在新挖掘的区块中的一个或多个交易,所述删除请求表明所述一个或多个交易应从所述分布式存储池中删除。
A computer-implemented method implemented in a blockchain network is described. A validator node receives data about a newly mined block including a plurality of transactions and sends a delete request to a distributed storage pool to delete the plurality of transactions from the distributed storage pool. A node storing the distributed storage pool stores a plurality of transactions, the plurality of transactions forming at least a portion of a distributed storage pool of transactions awaiting mining into a block of a blockchain. The computer-implemented method further includes receiving a delete request from a validator node of the blockchain network, the delete request identifying one or more transactions that have been included in the newly mined block, the delete request indicating that the one or more transactions should be deleted from the distributed storage pool.
Description
技术领域Technical Field
本申请主要涉及适用于在区块链网络的节点中实现的计算机实现的方法和系统。描述了用于处理大量交易和大交易区块的修改后的区块链节点结构、网络架构和协议。The present application generally relates to computer-implemented methods and systems suitable for implementation in nodes of a blockchain network. A modified blockchain node structure, network architecture, and protocol for processing a large number of transactions and large transaction blocks are described.
背景技术Background Art
在本文中,使用术语“区块链(Blockchain)”来包括所有形式的电子的、基于计算机的分布式分类账(Distributed Ledgers),包括但不限于区块链和交易链技术、许可及未许可的分类账、共享分类账及其变型。应当指出的是,其他的区块链实施方式和协议也落入本发明的范围内。In this document, the term "blockchain" is used to include all forms of electronic, computer-based distributed ledgers, including but not limited to blockchain and transaction chain technology, permissioned and unpermitted ledgers, shared ledgers and their variants. It should be noted that other blockchain implementations and protocols also fall within the scope of the present invention.
区块链是基于共识的电子分类账,所述分类账被实现为由区块组成的基于计算机的去中心化的分布式系统,而区块由交易(transaction)和其他信息组成。每个交易是对区块链系统中参与者之间的数字资产的控制的转移进行编码的数据结构,并且包括至少一个输入和至少一个输出。每个区块包含前一区块的散列,如此,这些区块被链接在一起,以创建一个永久的、不可更改的所有交易的记录,这些交易自区块链诞生之始写入区块链。交易包含小程序,这些小程序称为脚本,嵌入至所述交易的输入和输出中,这些小程序指定了如何以及由谁来访问交易的输出。这些脚本是使用基于堆栈的脚本语言编写的。A blockchain is a consensus-based electronic ledger implemented as a decentralized, distributed computer-based system composed of blocks, which consist of transactions and other information. Each transaction is a data structure that encodes the transfer of control of digital assets between participants in the blockchain system and includes at least one input and at least one output. Each block contains a hash of the previous block, so that the blocks are linked together to create a permanent, unchangeable record of all transactions written to the blockchain since its inception. Transactions contain small programs, called scripts, embedded in the inputs and outputs of the transaction, which specify how and by whom the output of the transaction can be accessed. These scripts are written in a stack-based scripting language.
为了将交易写入区块链,必须对所述交易进行“验证”。一些网络节点执行工作以确保每个交易有效,无效交易则被网络拒绝。例如,安装在所述节点上的软件客户端在引用未花费的交易输出(Unspent Transaction2/46In order for a transaction to be written to the blockchain, it must be "validated". Some network nodes perform work to ensure that each transaction is valid, and invalid transactions are rejected by the network. For example, a software client installed on the node may reference an unspent transaction output (Unspent Transaction2/46
Outputs,简称UTXO)的交易上执行验证工作。可通过执行其锁定和解锁脚本来执行验证。如果锁定和解锁脚本的执行评估为真(TRUE),并且如果满足某些特定条件,则所述交易有效,可将所述交易写入区块链。因此,为了将交易写入区块链,所述交易必须:i)由接收交易的节点进行验证——如果交易经验证通过,则所述节点将所述交易中继到网络中的其他节点;ii)添加新区块中;iii)被挖掘,即添加到过去交易的公共分类帐中。当向区块链添加充分数量的区块以使交易实际上不可逆转时,交易被视为已确认。Verification work is performed on transactions of Unlimited Token Outputs (UTXO). Verification can be performed by executing its locking and unlocking scripts. If the execution of the locking and unlocking scripts evaluates to true (TRUE), and if certain specific conditions are met, the transaction is valid and can be written to the blockchain. Therefore, in order for a transaction to be written to the blockchain, the transaction must: i) be verified by the node that receives the transaction - if the transaction is verified, the node relays the transaction to other nodes in the network; ii) be added to a new block; iii) be mined, that is, added to the public ledger of past transactions. A transaction is considered confirmed when a sufficient number of blocks are added to the blockchain to make the transaction effectively irreversible.
数字企业家已经开始探索使用加密安全系统和可存储在区块链上的数据来实现新系统。如果区块链能够用于自动化任务和流程,那么将是非常有利的。这类解决方案将能够利用区块链的优势(例如,事件的永久防篡改记录、分布式处理等),同时在所述解决方案的应用中更具通用性。Digital entrepreneurs have begun exploring the use of cryptographically secure systems and data that can be stored on blockchains to implement new systems. It would be extremely beneficial if blockchains could be used to automate tasks and processes. Such solutions would be able to leverage the advantages of blockchains (e.g., permanent tamper-proof records of events, distributed processing, etc.) while being more versatile in the application of said solutions.
研究的领域之一是使用区块链来实现“智能合约”(“SmartContract”)。这些智能合约是旨在自动执行机器可读合约或协议条款的计算机程序。与用自然语言编写的传统合约不同,智能合约是一种机器可执行程序,包括可处理输入以产生结果的规则,智能合约可根据这些结果执行操作。One area of research is the use of blockchain to implement "smart contracts". These smart contracts are computer programs designed to automatically execute the terms of a machine-readable contract or agreement. Unlike traditional contracts written in natural language, a smart contract is a machine-executable program that includes rules that process inputs to produce results, and the smart contract can perform actions based on these results.
发明内容Summary of the invention
区块链技术的未来至少部分依赖于能够增加每秒已发行交易量的新架构的提议。这种新架构的一个要求是取消对区块大小限制的当前限制。The future of blockchain technology depends, at least in part, on the proposal of a new architecture that can increase the number of issued transactions per second. One requirement of this new architecture is to remove the current restrictions on the block size limit.
在这种情况下,一个技术问题是如何管理数据的大区块以及如何管理非常大的区块链的存储。另一个技术问题是如何管理等待挖掘到区块中且并入区块链的交易池。本地存储池无法提供足够的存储能力,因此需要设计分布式存储池(Distributed MemoryPool,简称DMP)的新模型。一旦交易被包括在In this case, one technical problem is how to manage large blocks of data and how to manage the storage of very large blockchains. Another technical problem is how to manage the pool of transactions waiting to be mined into blocks and incorporated into the blockchain. The local storage pool cannot provide sufficient storage capacity, so a new model of distributed memory pool (DMP) needs to be designed. Once a transaction is included
区块链中,就希望从这样的分布式存储池中移除交易。然而,另一个技术问3/46In blockchain, it is hoped that transactions can be removed from such a distributed storage pool. However, another technical problem is that
题是如何以安全的方式管理从分布式存储池中移除交易,而不会在分布式存储池中造成数据不一致的问题。另一个技术问题是如何减轻数据不一致的问题,同时提高对试图破坏存储在分布式存储池中的数据的攻击的安全性。The problem is how to manage the removal of transactions from the distributed storage pool in a secure way without causing data inconsistency problems in the distributed storage pool. Another technical problem is how to mitigate the problem of data inconsistency while improving security against attacks that attempt to destroy data stored in the distributed storage pool.
本发明的某些实施例的目的是通过提供本文所述的技术方案来解决这些技术问题。特别地,本申请描述了在区块链网络中验证节点和分布式存储池节点之间的通信和数据管理协议,该协议允许修剪分布式存储池,同时减轻分布式存储池内的数据不一致问题。因此,本发明通过增加区块链网络的容量同时保持其分布式性质来提供技术贡献。The purpose of certain embodiments of the present invention is to solve these technical problems by providing the technical solutions described herein. In particular, the present application describes a communication and data management protocol between verification nodes and distributed storage pool nodes in a blockchain network, which allows pruning of distributed storage pools while mitigating data inconsistency issues within the distributed storage pools. Therefore, the present invention provides a technical contribution by increasing the capacity of a blockchain network while maintaining its distributed nature.
描述了一种用于区块链网络的节点的计算机实现的方法,所述计算机实现的方法包括:A computer-implemented method for a node of a blockchain network is described, the computer-implemented method comprising:
存储多个交易,所述多个交易形成等待挖掘到区块链的区块中的交易的分布式存储池的至少一部分;和storing a plurality of transactions forming at least a portion of a distributed storage pool of transactions awaiting mining into a block of a blockchain; and
接收来自所述区块链网络的验证节点的删除请求,所述删除请求识别已经包括在新挖掘的区块中的一个或多个交易,所述删除请求表明所述一个或多个交易应从所述分布式存储池中删除。A deletion request is received from a verification node of the blockchain network, the deletion request identifying one or more transactions that have been included in a newly mined block, the deletion request indicating that the one or more transactions should be deleted from the distributed storage pool.
前述方法允许验证节点与分布式存储池通信,以移除已经并入区块链并且因此可以从分布式存储池移除的交易。发送/接收表明应该从分布式存储池中删除一个或多个交易的显式删除请求不同于仅已挖掘交易的通知。在现有技术的配置中,直到已经在顶部上挖掘了足够的区块以便确认交易之后,才从存储池中移除已挖掘的交易。因此,存储池包含大量交易,这些交易在挖掘到区块链后的相当长一段时间内不太可能被需要。此外,如果网络节点在一段时间后自动删除交易,而不遵循特定删除请求协议,那么在某些情况下者会导致数据不一致。本发明认识到并解决了这些问题。The foregoing method allows a verification node to communicate with a distributed storage pool to remove transactions that have been incorporated into the blockchain and can therefore be removed from the distributed storage pool. Sending/receiving an explicit delete request indicating that one or more transactions should be deleted from the distributed storage pool is different from notification of only mined transactions. In the configuration of the prior art, mined transactions are not removed from the storage pool until enough blocks have been mined on top to confirm the transaction. Therefore, the storage pool contains a large number of transactions that are unlikely to be needed for a considerable period of time after being mined into the blockchain. In addition, if the network nodes automatically delete transactions after a period of time without following a specific deletion request protocol, then in some cases this will lead to data inconsistencies. The present invention recognizes and solves these problems.
所述方法还可以包括当接收到所述交易的第一门限数量的删除请求时,将所述交易标记为从所述分布式存储池移除。所述方法还可以包括当接收到所述交易的第二门限数量的删除请求时,从所述分布式存储池中物理地移除所述交易。所述第二门限大于所述第一门限。此外,所述第一和第二门限数量的删除请求需要来自所述区块链网络中门限数量的不同验证节点。这些特征要求在分布式存储池中将交易标记为已删除的共识级别,并且在从分布式存储池中物理地移除交易之前需要进一步的共识级别。这减轻了数据不一致的问题,也提高了对试图破坏存储在分布式存储池中的数据的攻击的安全性。交易有效地包括关于所述分布式存储池的三个状态:可用;已移除;和物理上移除。如果需要,标记为已移除的交易可以恢复为在分布式存储池中再次可用。根据系统的配置,物理上移除的交易可能无法恢复。The method may also include marking the transaction as removed from the distributed storage pool when a first threshold number of deletion requests for the transaction are received. The method may also include physically removing the transaction from the distributed storage pool when a second threshold number of deletion requests for the transaction are received. The second threshold is greater than the first threshold. In addition, the first and second threshold numbers of deletion requests need to come from a threshold number of different verification nodes in the blockchain network. These features require a consensus level for marking transactions as deleted in the distributed storage pool, and a further consensus level is required before physically removing transactions from the distributed storage pool. This alleviates the problem of data inconsistency and also improves security against attacks that attempt to destroy data stored in the distributed storage pool. A transaction effectively includes three states with respect to the distributed storage pool: available; removed; and physically removed. If necessary, a transaction marked as removed can be restored to be available again in the distributed storage pool. Depending on the configuration of the system, physically removed transactions may not be recoverable.
交易可以仅在从接收到所述删除请求以来经过门限时间之后,才从所述分布式存储池中物理地移除,在此期间,未接收到所述交易的进一步数据请求。例如,在所述交易并入请求从所述分布式存储池删除的所述区块链之后,所述门限时间可以对应于并入所述区块链的至少1、2、3、4、5、6个或更多个区块。而且,自接收到所述删除请求以来,可以按照递减的时间顺序从所述分布式存储池中物理地移除所述交易,在此期间,未接收到所述交易的进一步数据请求。所述计算机实现的方法还包括当所述交易依赖于先前移除的交易时,将所述交易标记为从所述分布式存储池移除。这些功能进一步有助于减轻数据不一致的问题,还提高了对试图破坏分布式存储池中存储的数据的攻击的安全性。A transaction may be physically removed from the distributed storage pool only after a threshold time has elapsed since the deletion request was received, during which no further data requests for the transaction were received. For example, the threshold time may correspond to at least 1, 2, 3, 4, 5, 6 or more blocks incorporated into the blockchain after the transaction was incorporated into the blockchain requested to be deleted from the distributed storage pool. Moreover, the transaction may be physically removed from the distributed storage pool in a decreasing chronological order since the deletion request was received, during which no further data requests for the transaction were received. The computer-implemented method also includes marking the transaction as removed from the distributed storage pool when the transaction depends on a previously removed transaction. These features further help mitigate data inconsistency issues and also improve security against attacks that attempt to corrupt data stored in the distributed storage pool.
所述删除请求可以存储在与所述分布式存储池关联的新删除请求数据库中。从没有验证所述交易的验证者接收的所述删除请求可以被丢弃。仅在启用检查验证者选项时才丢弃所述交易。还可以监视已经标记为从所述分布式存储池中移除的交易的数据请求的数量。使用这样的系统,对于标记为从所述分布式存储池中移除的所述交易在接收到门限数量的数据请求之后,可以将所述交易标记为恢复到所述分布式存储池的候选。当接收到所述交易的恢复请求时或当接收到所述交易的门限数量的恢复请求时,可以将所述交易取消标记为从所述分布式存储池移除。所述门限数量的恢复请求可能需要来自所述区块链网络中门限数量的不同验证节点。响应于对已从所述分布式存储池中移除的交易的查询,发送表明所述交易已从所述分布式存储池移除的消息。而且,这样的消息可以所述交易已从所述分布式存储池移除,还表明已移除消息接收的删除消息的数量。同样,这些特征进一步有助于减轻数据不一致的问题,还提高对试图破坏存储在分布式存储池中的数据的攻击的安全性。The deletion request may be stored in a new deletion request database associated with the distributed storage pool. The deletion request received from a validator that has not verified the transaction may be discarded. The transaction is discarded only when the check verifier option is enabled. The number of data requests for transactions that have been marked as removed from the distributed storage pool may also be monitored. Using such a system, after receiving a threshold number of data requests for the transaction marked as removed from the distributed storage pool, the transaction may be marked as a candidate for restoration to the distributed storage pool. When a restoration request for the transaction is received or when a threshold number of restoration requests for the transaction is received, the transaction may be unmarked as removed from the distributed storage pool. The threshold number of restoration requests may require a threshold number of different verification nodes from the blockchain network. In response to a query for a transaction that has been removed from the distributed storage pool, a message indicating that the transaction has been removed from the distributed storage pool is sent. Moreover, such a message may indicate that the transaction has been removed from the distributed storage pool and the number of deletion messages received that have been removed. Again, these features further help mitigate the problem of data inconsistency and also improve security against attacks that attempt to destroy data stored in the distributed storage pool.
从所述区块链网络中的分布式存储池存储节点的角度描述了分布式存储池管理协议的上述特征。从所述区块链网络中的验证节点的角度出发,提供了一种计算机实现的方法,所述方法包括:The above features of the distributed storage pool management protocol are described from the perspective of the distributed storage pool storage nodes in the blockchain network. From the perspective of the verification nodes in the blockchain network, a computer-implemented method is provided, the method comprising:
接收关于包括多个交易的新挖掘的区块的数据;和receiving data regarding a newly mined block including a plurality of transactions; and
向分布式存储池发送删除请求,以从所述分布式存储池中删除所述多个交易。A deletion request is sent to the distributed storage pool to delete the plurality of transactions from the distributed storage pool.
所述删除请求应该优选地包含随机数和/或时间戳,以避免散布可能影响共识协议的欺诈性副本。所述删除请求优选地使用所述验证节点的私钥签名。The deletion request should preferably contain a random number and/or a timestamp to avoid spreading fraudulent copies that could affect the consensus protocol. The deletion request is preferably signed using the private key of the verification node.
所述节点可以存储其已验证的交易的记录,并且只发送其先前已验证的交易的删除请求。当启用检查验证者选项时,才可以针对所述节点先前已验证的交易发送删除请求。而且,可以发送恢复请求以使所述交易在所述分布式存储池中再次可用,例如,在区块链重组后发送以保持系统内的数据一致性。The node may store a record of transactions it has verified, and only send delete requests for transactions it has previously verified. When the check verifier option is enabled, delete requests may be sent for transactions that the node has previously verified. Also, restore requests may be sent to make the transaction available again in the distributed storage pool, for example, after a blockchain reorganization to maintain data consistency within the system.
所述删除请求可以由以下一项或多项激活:The deletion request may be activated by one or more of the following:
接收已挖掘的区块;Receive mined blocks;
所述区块链重组;和said blockchain reorganization; and
双重花费或其他形式的交易冲突。Double spending or other forms of transaction conflicts.
6/466/46
来自所述分布式存储池的交易修剪可以由以下一个或多个激活:Transaction pruning from the distributed storage pool may be activated by one or more of the following:
手动修剪;Manual pruning;
交易到期;和the expiry of the transaction; and
所述分布式存储池中的交易达到存储限制。The transaction in the distributed storage pool has reached the storage limit.
本发明的实施例可以以多种形式提供。例如,可以提供一种包括计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在被执行时使一个或多个处理器执行本文所述的方法。还可以提供一种电子设备,所述电子设备包括:接口设备;一个或多个处理器,连接到所述接口设备;存储器,连接到所述一个或多个处理器,所述存储器存储了计算机可执行指令,所述计算机可执行指令在被执行时使得所述一个或多个处理器执行本文所述的方法。此外,还可以提供区块链网络的节点,所述节点用于执行本文所述的方法。Embodiments of the present invention may be provided in a variety of forms. For example, a computer-readable storage medium including computer-executable instructions may be provided, which, when executed, cause one or more processors to perform the methods described herein. An electronic device may also be provided, the electronic device comprising: an interface device; one or more processors connected to the interface device; a memory connected to the one or more processors, the memory storing computer-executable instructions, which, when executed, cause the one or more processors to perform the methods described herein. In addition, a node of a blockchain network may also be provided, the node being used to perform the methods described herein.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
参考本文描述的实施例,本发明的这些和其他方面将变得显而易见并得以阐明。现在仅通过示例并参考附图来描述本发明的实施例,其中:These and other aspects of the invention will become apparent and elucidated with reference to the embodiments described herein. Embodiments of the invention will now be described by way of example only and with reference to the accompanying drawings, in which:
图1示出了区块的整体结构;Figure 1 shows the overall structure of the block;
图2以操作图的形式示出了从用户提交交易到交易在区块链结束的步骤;FIG2 shows the steps from a user submitting a transaction to the transaction being completed on the blockchain in the form of an operation diagram;
图3示出了在存储池中等待确认的交易的总大小的示例的曲线图;FIG3 is a graph showing an example of the total size of transactions awaiting confirmation in a storage pool;
图4示出了链接到内部去中心化存储设施的多个节点。Figure 4 shows multiple nodes linked to an internal decentralized storage facility.
图5示出了一种配置,其中每个节点都是分布式存储池和分布式存储设施的一部分;FIG5 illustrates a configuration in which each node is part of a distributed storage pool and a distributed storage facility;
图6示出了一种网络配置,其中验证节点是存储池的成员,这些池7/46Figure 6 shows a network configuration where validators are members of storage pools.
共同构成去中心化的分布式网络;Together they form a decentralized distributed network;
图7示出了新节点的功能;Figure 7 shows the functionality of the new node;
图8示出了新的默克尔树结构,所述结构构成了对当前协议的修改。FIG8 illustrates a new Merkle tree structure that constitutes a modification to the current protocol.
图9示出了创建布隆过滤器的工作流程;Figure 9 shows the workflow for creating a Bloom filter;
图10示出了说明交易如何在可逆布隆过滤器(Invertible BloomFilters,简称IBFs)和可逆布隆查找表(Invertible Bloom Lookup Tables,简称IBLTs)中编码的工作流程;FIG10 shows a workflow illustrating how transactions are encoded in Invertible Bloom Filters (IBFs) and Invertible Bloom Lookup Tables (IBLTs);
图11示出了包括验证者节点v和存储池节点s的存储池集群。FIG. 11 shows a storage pool cluster including a validator node v and a storage pool node s.
图12示出了验证者节点vn(0≤n<N)接收关于新挖掘的区块的更新Figure 12 shows that the validator node vn (0≤n<N) receives updates about the newly mined block.
——在验证区块后,验证者向分布式存储池(DMP)发送对已发布交易的删除(DELETE)请求,每个存储池节点sm(0≤m<M)跟踪SDB表上的存储请求和RDB表上的移除请求;和——After validating the block, the validator sends a delete (DELETE) request for the published transaction to the distributed storage pool (DMP), and each storage pool node sm (0≤m<M) tracks the storage request on the SDB table and the removal request on the RDB table; and
图13示出了交易idi的状态图——根据从验证者接收的消息的类型(即存储(STORE)、移除(REMOVE)、恢复(REVERT))和数量(例如N、FIG13 shows a state diagram of a transaction id i - depending on the type (i.e., STORE, REMOVE, REVERT) and number (e.g., N,
N*、N**),交易可以将状态更改为可用(Available)、已移除(Removed)或物理地移除(Physically removed)。N*, N**), a transaction can change the state to Available, Removed, or Physically removed.
具体实施方式DETAILED DESCRIPTION
区块链网络节点的类型Types of blockchain network nodes
区块链网络可描述为点对点开放式成员网络,任何人都可以加入,无需邀请,无需经其他成员同意。运行区块链协议(区块链网络在区块链协议下运行)实例的分布式电子设备可以参与区块链网络。这种分布式电子设备可以称为节点。A blockchain network can be described as a peer-to-peer open membership network that anyone can join without an invitation or consent from other members. Distributed electronic devices that run an instance of the blockchain protocol (under which the blockchain network runs) can participate in the blockchain network. Such distributed electronic devices can be called nodes.
运行区块链协议并形成区块链网络的节点的电子设备可以是各种8/46The electronic devices that run the blockchain protocol and form the nodes of the blockchain network can be various 8/46
类型的,包括例如计算机(如台式计算机、笔记本电脑、平板电脑、服务器、计算机农场)、移动设备(如智能手机)、可穿戴计算机(如智能手表)、或其他电子设备。Types include, for example, computers (such as desktop computers, laptops, tablet computers, servers, computer farms), mobile devices (such as smartphones), wearable computers (such as smart watches), or other electronic devices.
区块链网络的节点使用合适的通信技术彼此连接,所述通信技术可以包括有线和无线通信技术。在许多情况下,区块链网络至少部分地在互联网上实现,并且一些节点可以位于地理上分散的位置。The nodes of the blockchain network are connected to each other using suitable communication technologies, which may include wired and wireless communication technologies. In many cases, the blockchain network is implemented at least in part on the Internet, and some nodes may be located in geographically dispersed locations.
当前,节点维护区块链上所有交易的全局分类帐,所有交易分组到多个区块中,其中每个区块包含区块链上前一个区块的散列。全局分类账是分布式分类账,每个节点可以存储全局分类账的完整副本或部分副本。影响全局分类账的节点的交易由其他节点验证,从而保持全局分类账的有效性。本领域的普通技术人员将会理解实现和操作区块链网络的细节。Currently, nodes maintain a global ledger of all transactions on the blockchain, with all transactions grouped into multiple blocks, where each block contains a hash of the previous block on the blockchain. The global ledger is a distributed ledger, and each node can store a full copy or a partial copy of the global ledger. Transactions of nodes that affect the global ledger are verified by other nodes, thereby maintaining the validity of the global ledger. One of ordinary skill in the art will understand the details of implementing and operating a blockchain network.
每个交易通常具有一个或多个输入和一个或多个输出。嵌入到输入和输出中的脚本指定了如何以及谁可以访问所述交易的输出。交易的输出可以是作为交易结果的值被转移到的地址。然后,所述值与所述输出地址相关联,作为未花费的交易输出(UnspentTransaction Output,简称UTXO)。随后的交易可以将所述地址作为输入来花费或分散所述值。Each transaction typically has one or more inputs and one or more outputs. The scripts embedded in the inputs and outputs specify how and who can access the output of the transaction. The output of a transaction can be an address to which the value is transferred as a result of the transaction. The value is then associated with the output address as an unspent transaction output (UTXO). Subsequent transactions can use the address as an input to spend or disperse the value.
节点可以根据其功能而具有不同的类型或类别。已经提出了与节点相关联的四个基本功能:钱包、挖掘、全区块链维护和网络路由。这些功能可能有所不同。节点可具有多个功能。例如,“全节点”(“Full Node”)提供了所有四种功能。轻量级节点,例如可以在数字钱包中实现,并且可以仅具有钱包和网络路由功能。数字钱包可跟踪区块头,而不是存储全区块链,区块头在查询区块时用作索引。节点使用面向连接的协议(例如传输控制协议(Transmission Control Protocol,简称TCP/IP))相互通信。Nodes can be of different types or categories depending on their functions. Four basic functions associated with nodes have been proposed: wallet, mining, full blockchain maintenance, and network routing. These functions may vary. Nodes may have multiple functions. For example, a "full node" provides all four functions. Lightweight nodes, such as those implemented in digital wallets, may only have wallet and network routing functions. Instead of storing the full blockchain, digital wallets may track block headers, which are used as indexes when querying blocks. Nodes communicate with each other using connection-oriented protocols such as the Transmission Control Protocol (TCP/IP).
可提供节点的附加类型或类别:商户节点(Merchant Node)(本Additional types or categories of nodes can be provided: Merchant Node (
文有时称为“M节点”)。M节点旨在专注于交易的快速传播。M节点可存储9/46M nodes are designed to focus on the rapid propagation of transactions. M nodes can store 9/46
也可不存储全区块链,并且不执行挖掘功能。从这个意义上讲,M节点与轻量级节点或钱包类似。但是,M节点包括附加功能以实现交易的快速传播。It may not store the full blockchain and does not perform mining functions. In this sense, M-nodes are similar to lightweight nodes or wallets. However, M-nodes include additional features to enable fast propagation of transactions.
M节点的操作重点是未确认交易的快速验证和传播,特别是传播到其他M节点,未确认交易被从这些M节点快速推出到区块链网络中的其他节点。为了便于实现此功能,允许M节点进行更多数量的传入连接,特别是传出连接,否则,这些连接可能会被允许用于管理协议下的节点。The operation of the M-node is focused on the rapid verification and propagation of unconfirmed transactions, especially to other M-nodes, from which unconfirmed transactions are quickly pushed out to other nodes in the blockchain network. To facilitate this function, M-nodes are allowed to make a greater number of incoming connections, especially outgoing connections, which might otherwise be allowed to be used to manage nodes under the protocol.
M节点可统称为商户网络(Merchant Network,简称“M-net”)(或“M网络”)。术语“商户”可解释为“专用的”。M节点可集成到区块链网络中。每个M节点都是区块链网络上的一个专用节点,满足特定的硬件和性能能力,确保其能够执行M节点的功能。也就是说,M网络可视为区块链网络内的一个子网,并通过区块链网络分布。M节点可设置用于执行一个或多个专用功能或服务。M-nodes can be collectively referred to as merchant networks (M-nets) (or M-networks). The term "merchant" can be interpreted as "dedicated". M-nodes can be integrated into blockchain networks. Each M-node is a dedicated node on a blockchain network that meets specific hardware and performance capabilities to ensure that it can perform the functions of an M-node. In other words, an M-network can be considered a subnet within a blockchain network and distributed across the blockchain network. M-nodes can be set up to perform one or more dedicated functions or services.
为了使M网络可靠地运行,能够在一定的安全级别上提供服务,M节点需要保持对整个M网络的良好概览,因此需要建立有效的路由协议。每当M节点接收到启动交易时,M节点需要将交易广播给其他几个M节点以及其他节点。在M网络环境下,这相当于寻找多旅行商问题(MultipleTraveling Salesman Problem,简称MTSP)的解决方案。有许多解决方案可以解决多旅行商问题,其中任何一个方案都可运用于M网络。每个M节点都以某种最新的形式运行路由优化。In order for the M network to operate reliably and provide services at a certain level of security, the M nodes need to maintain a good overview of the entire M network, so an effective routing protocol needs to be established. Whenever an M node receives a start transaction, the M node needs to broadcast the transaction to several other M nodes and other nodes. In the context of the M network, this is equivalent to finding a solution to the Multiple Traveling Salesman Problem (MTSP). There are many solutions to the Multiple Traveling Salesman Problem, any of which can be applied to the M network. Each M node runs routing optimization in some form of state-of-the-art.
在一些实施方式中,M网络实现为去中心化的IP多播类型的网络。也就是说,为了使传入交易能够快速扩散到区块链网络,可以使用多播来确保交易在整个M网络中快速广播,从而使得所有M节点专注于将交易转发到区块链网络中的其他节点。In some embodiments, the M network is implemented as a decentralized IP multicast type network. That is, in order to enable incoming transactions to quickly spread to the blockchain network, multicast can be used to ensure that the transaction is quickly broadcast throughout the M network, so that all M nodes focus on forwarding transactions to other nodes in the blockchain network.
多播网络架构允许同时向一组目的节点分布数据的可能性,无需为每个对接收信息感兴趣的节点复制数据。如果节点想要接收多播传输,那么节点加入多播组(注册阶段),此后所述节点将能够接收通过多播组发送的所有数据。IP多播不需要具备有多少个接收器的先验知识就能扩展到更大的接收器群,通过仅要求源发送一次数据包,就可以有效地利用网络基础结构。对于多播网络的性质,由于与大量其他节点同时通信,因此使用面向连接的协议(如TCP)是不切实际的。据此,使用无连接协议。The multicast network architecture allows the possibility to distribute data to a group of destination nodes simultaneously, without duplicating the data for each node interested in receiving the information. If a node wants to receive a multicast transmission, it joins the multicast group (registration phase), after which said node will be able to receive all data sent through the multicast group. IP multicast can be extended to a larger group of receivers without the need for a priori knowledge of how many receivers there are, and by requiring the source to send a packet only once, the network infrastructure can be efficiently utilized. Due to the nature of multicast networks, it is impractical to use connection-oriented protocols such as TCP due to the simultaneous communication with a large number of other nodes. Accordingly, connectionless protocols are used.
一些区块链网络使用TCP进行节点对节点的通信。使用TCP发送的数据包具有相关联的序列号,所述序列号用于排序。除此之外,TCP协议在建立连接和终止连接时都涉及三次握手过程。通过TCP发送的数据包有相关的开销,所述数据包具有相关联的序列号和一个三次握手协议。建立连接时,传输了128-136字节,而关闭连接花费160字节。因此,包传输中的握手成本高达296字节。此外,当节点接收新交易时,所述节点通过包含交易散列的库存(INV)消息通知其他节点。接收INV消息的节点检查所述交易的散列是否已经被看到过;如果没有看到过,则所述节点将通过发送获取数据(GETDATA)消息来请求交易。交易从节点A传输到节点B所需的时间为T1=verification+TCP(inv+detdata+tx),其中,TCP()表示由TCP握手程序引入的时间开销。Some blockchain networks use TCP for node-to-node communication. Data packets sent using TCP have associated sequence numbers, which are used for sorting. In addition to this, the TCP protocol involves a three-way handshake process both when establishing a connection and when terminating a connection. Data packets sent over TCP have associated sequence numbers and a three-way handshake protocol. When establishing a connection, 128-136 bytes are transmitted, while closing a connection costs 160 bytes. Therefore, the handshake cost in packet transmission is as high as 296 bytes. In addition, when a node receives a new transaction, the node notifies other nodes through an inventory (INV) message containing the transaction hash. The node receiving the INV message checks whether the hash of the transaction has been seen before; if not, the node will request the transaction by sending a GetData message. The time required for a transaction to be transmitted from node A to node B is T1=verification+TCP(inv+detdata+tx), where TCP() represents the time overhead introduced by the TCP handshake procedure.
M节点可用于使用TCP与现有协议授权的其他节点通信。然而,M节点可使用无连接协议(如用户数据报协议(User Datagram Protocol,简称UDP))在多播情况下从M节点到M节点的通信,甚至更合适地从M节点到多个M节点通信。与TCP不同,UDP不涉及握手协议,因此M节点能够更快地传播交易。这也可以避免恶意节点不发送实际交易而是通过发送重复的INV消息来捆绑其他节点。M-nodes can be used to communicate with other nodes authorized by existing protocols using TCP. However, M-nodes can use connectionless protocols such as User Datagram Protocol (UDP) to communicate from M-node to M-node in multicast situations, or even more appropriately from M-node to multiple M-nodes. Unlike TCP, UDP does not involve a handshake protocol, so M-nodes are able to propagate transactions faster. This can also prevent malicious nodes from bundling other nodes by sending repeated INV messages instead of sending actual transactions.
UDP的轻量级特性与某些权衡相关联。错误检查较少,也没有错误恢复。在一些实施方式中,可以通过将错误恢复、排序和重新传输作为应用层的功能来在应用级别克服UDP的这些限制。把错误检查放在应用级别消除了网络的开销。The lightweight nature of UDP is associated with certain tradeoffs. There is less error checking and no error recovery. In some implementations, these limitations of UDP can be overcome at the application level by making error recovery, sequencing, and retransmission functions of the application layer. Putting error checking at the application level eliminates the overhead of the network.
在一个示例情况下,区块链网络上的常规节点生成其希望通过M网络处理的交易(例如基于商户的支付)。常规节点可以将交易发送到M节点,然后所述M节点使用多播将交易广播到其他M节点,或者如果常规节点知道M节点的IP多播地址,则可以将交易直接发送到多个M节点。在一些示例中,M网络的所有M节点都是单个多播地址的成员,因此发送到所述地址的所有交易都被所有M节点接收。然而,在一些情况下,可能有多个与M网络相关联的多播地址,并且接收M节点可以从路由信息中评估是否需要将交易进一步广播到其他多播地址,以将交易传播到全M网络。In one example scenario, a regular node on a blockchain network generates a transaction (e.g., a merchant-based payment) that it wishes to process through the M network. The regular node can send the transaction to an M node, which then broadcasts the transaction to other M nodes using multicast, or can send the transaction directly to multiple M nodes if the regular node knows the IP multicast address of the M node. In some examples, all M nodes of an M network are members of a single multicast address, so all transactions sent to that address are received by all M nodes. However, in some cases, there may be multiple multicast addresses associated with an M network, and the receiving M node can evaluate from the routing information whether the transaction needs to be further broadcast to other multicast addresses to propagate the transaction to the entire M network.
多播有助于确保新交易快速初始传播到所有M节点;但是,多播解决方案并不一定解决由增加的交易吞吐量引起的区块链网络的可伸缩性问题。网络中的每个节点通常都维护一个存储池(Mempool),所述存储池包含其已经看到的未确认的交易,这些交易还没有被完成工作量证明的网络节点合并到区块链。支付处理中使用的交易数量的显著增长会增加每个存储池中存储的交易数量。因此,尽管M网络中的节点能够几乎同时接收新的交易,但是所述节点对于大型且快速变化的存储池可能具有存储能力的限制。Multicast helps ensure rapid initial propagation of new transactions to all M nodes; however, multicast solutions do not necessarily address the scalability issues of blockchain networks caused by increased transaction throughput. Each node in the network typically maintains a storage pool (Mempool) containing unconfirmed transactions it has seen that have not yet been merged into the blockchain by the network nodes that have completed the proof of work. A significant increase in the number of transactions used in payment processing can increase the number of transactions stored in each storage pool. Therefore, although nodes in the M network are able to receive new transactions almost simultaneously, the nodes may have storage capacity limitations for large and rapidly changing storage pools.
为了解决这个问题,M节点可以使用通过分布式散列表(Distributed HashTable,简称DHT)实现的共享存储池,作为使用多播的替代。To solve this problem, M nodes can use a shared storage pool implemented through a distributed hash table (DHT) as an alternative to using multicast.
假设交易(TX)的平均大小为500字节,交易速率为大约104个交易/秒,则M网络可以接收大约400GB的每日传入数据。所有这些数据都需要在未确认交易的存储池中存储不同的时间。因此,M网络需要大量存储空间和快速存储数据的能力。为了不对每个单独的M节点提出太多的要求,M节点实现一个依赖于DHT的共享存储池。不是让每个M节点将所有传入的交易保存在自己的存储池中,而是每个M节点只存储总数的某一部分,以及存储其余部分的散列和相关密钥值。Assuming an average transaction (TX) size of 500 bytes and a transaction rate of approximately 104 transactions/second, the M network can receive approximately 400GB of daily incoming data. All of this data needs to be stored in a storage pool of unconfirmed transactions for varying periods of time. Therefore, the M network requires a lot of storage space and the ability to store data quickly. In order not to place too many demands on each individual M node, the M nodes implement a shared storage pool that relies on DHT. Instead of having each M node save all incoming transactions in its own storage pool, each M node only stores a certain portion of the total, as well as the hash and associated key values for the rest.
DHTs是一类去中心化的分布式系统,允许在节点之间对密钥集进行成员划分,能够以有效且优化的方式仅向给定密钥的所有者发送消息。网络的每个节点都可以看作是散列表阵列的一个单元。DHTs旨在管理大量节点,允许新节点加入网络,旧节点离开网络或崩溃,而不损害共享数据的完整性。DHTs确保去中心化(没有中心权力,也没有中心协调)、可伸缩性(系统具有数百万节点的高效行为)和容错性(系统可靠,能够管理加入和离开网络或崩溃的节点)。网络中的每个节点可以只与少数其他节点保持联系,因此在出现变化或新数据时,网络不会过载。DHTs are a class of decentralized distributed systems that allow for the partitioning of membership of key sets between nodes, enabling messages to be sent only to the owner of a given key in an efficient and optimized manner. Each node of the network can be seen as a cell of an array of hash tables. DHTs are designed to manage a large number of nodes, allowing new nodes to join the network, old nodes to leave the network or crash, without compromising the integrity of the shared data. DHTs ensure decentralization (there is no central authority and no central coordination), scalability (the system has efficient behavior with millions of nodes), and fault tolerance (the system is reliable and is able to manage nodes that join and leave the network or crash). Each node in the network can be in contact with only a few other nodes, so the network is not overloaded when changes or new data appear.
这种概念同样可应用于UTXO数据库,所述数据库包含区块链上所有未花费的输出的集合。可以使用DHT构建UTXO数据库,以便在一组节点之间共享内容。This concept can also be applied to the UTXO database, which contains the set of all unspent outputs on the blockchain. The UTXO database can be built using a DHT to share the contents among a group of nodes.
许多可能的DHT结构和协议可用于实现M网络的共享存储池。一个例子是PastryTM,此外还有许多其他的例子。PastryTM是一种旨在维护覆盖网络的协议,所述网络能够在分布式系统上存储和传输信息。PastryTM网络中的每个节点都分配有一个128位标识符,所述标识符用于指示节点在圆形节点标识符(ID)空间中的位置(范围从0到2128-1)。当节点加入网络时,随机分配所述ID。每个节点维护一个路由表、一个邻域集和一个叶集。Many possible DHT structures and protocols can be used to implement a shared storage pool for an M network. One example is Pastry TM , but there are many others. Pastry TM is a protocol designed to maintain an overlay network that can store and transmit information over a distributed system. Each node in a Pastry TM network is assigned a 128-bit identifier that indicates the node's position in a circular node identifier (ID) space (ranging from 0 to 2 128 -1). When a node joins the network, the ID is randomly assigned. Each node maintains a routing table, a neighborhood set, and a leaf set.
在确定稳定的DHT的维数时,需要考虑的一个因素是确保整个网络的鲁棒性和可靠性所需的副本数量。如前所述,节点可以加入和离开网络,这不应影响数据的可用性。如果存储交易A的节点离开网络,则有必要在网络的另一部分中找到交易A。在现有的区块链网络中,网络的数量或区块链副本的数量等于网络中全节点的数量(平均5000个副本),但这影响了可伸缩性。One factor to consider when determining the dimensionality of a stable DHT is the number of replicas required to ensure robustness and reliability of the entire network. As mentioned earlier, nodes can join and leave the network, which should not affect the availability of data. If the node storing transaction A leaves the network, it is necessary to find transaction A in another part of the network. In existing blockchain networks, the number of networks or the number of blockchain replicas is equal to the number of full nodes in the network (5000 replicas on average), but this affects scalability.
在一个M网络配置中,存储池不是在每个M节点上完全复制的,而是通过DHT来实现。为了提供可靠性,可将DHT实现为具有一些重叠;即每个交易数据项都在多个M节点中复制,尽管不是在每个M节点中都复制。例如,可将DHT实现为指定最少数量的2个副本,同时假设两个节点之间的完全独立性为这将可能导致两个节点在任何给定时间内同时停机。In an M-network configuration, the storage pool is not fully replicated on each M-node, but is implemented via a DHT. To provide reliability, the DHT can be implemented with some overlap; that is, each transaction data item is replicated in multiple M-nodes, although not in every M-node. For example, the DHT can be implemented to specify a minimum number of 2 replicas, while assuming complete independence between the two nodes. This would potentially result in two nodes being down at any given time.
因此,用于在分布式存储池中存储新交易的过程可包括以下步骤,其中使用DHT实现分布式存储池。所述过程包括:节点将交易发送到M节点。M节点根据所述实现来散列交易或交易ID以获得密钥值。密钥值指示所述M节点或多个M节点(在复制数据的情况下),交易存储在所述M节点或多个M节点。然后,M节点将交易存储在分布式存储池中,可包括:基于密钥值和M网络中M节点的分配ID,将交易路由到要存储交易的正确的M节点。根据所涉及的DHT协议,M节点可能会收到确认。当M节点从常规节点接收新交易时,M节点可以执行某些验证操作以验证交易的真实性。Therefore, a process for storing a new transaction in a distributed storage pool may include the following steps, wherein the distributed storage pool is implemented using a DHT. The process includes: a node sends a transaction to an M node. The M node hashes a transaction or a transaction ID according to the implementation to obtain a key value. The key value indicates the M node or multiple M nodes (in the case of replicated data) where the transaction is stored. The M node then stores the transaction in the distributed storage pool, which may include: routing the transaction to the correct M node where the transaction is to be stored based on the key value and the assigned ID of the M node in the M network. Depending on the DHT protocol involved, the M node may receive a confirmation. When the M node receives a new transaction from a regular node, the M node may perform certain verification operations to verify the authenticity of the transaction.
可以将交易散列以生成用于交易的密钥。密钥可以指示在DHT中交易应存储的位置,所述位置可以在当前M节点以外的其他节点上。M节点评估交易是否已在运行的DHT中。基于组成M网络的M节点之间的密钥空间划分,每个M节点具有一部分存储的交易。在一些配置中,密钥空间在参与的M节点之间划分。划分可能涉及重叠,以引起网络弹性的复制。在一些实施方式中(例如使用PastryTM),每个M节点都分配了唯一的密钥或ID号码,交易可以基于交易密钥值的接近度存储在所述M节点或多个M节点(在需要复制的情况下)。M节点可以在本地具有交易的存储部分以及其余部分的散列或密钥值。因此,M节点能够基于运行中的本地数据来评估新交易是否在DHT中。The transaction can be hashed to generate a key for the transaction. The key can indicate where the transaction should be stored in the DHT, which can be on a node other than the current M node. The M node evaluates whether the transaction is already in the running DHT. Based on the key space partitioning between the M nodes that make up the M network, each M node has a portion of stored transactions. In some configurations, the key space is divided between the participating M nodes. The division may involve overlap to cause replication for network resilience. In some embodiments (for example, using Pastry TM ), each M node is assigned a unique key or ID number, and transactions can be stored in the M node or multiple M nodes (where replication is required) based on the proximity of the transaction key value. The M node can have a hash or key value of the stored portion of the transaction and the rest locally. Therefore, the M node is able to evaluate whether a new transaction is in the DHT based on the local data in operation.
如果交易不在DHT中,那么在操作中,M节点根据其密钥值将交易存储在DHT中。一般来说,这可以采取put(k,tx)操作的形式,其中k是密钥值,tx是交易。适用的DHT路由协议确保交易发送到并存储在适当的M节点。基于所选择的实施方式,DHT可以根据分布式散列表的各种协议来操作。使用DHT在M网络中存储交易避免了在M网络中使用库存/获取数据(INV/GETDATA)消息来将交易路由到每个M节点。If the transaction is not in the DHT, then in operation, the M-node stores the transaction in the DHT according to its key value. In general, this can take the form of a put(k,tx) operation, where k is the key value and tx is the transaction. The applicable DHT routing protocol ensures that the transaction is sent to and stored at the appropriate M-node. Based on the selected implementation, the DHT can operate according to various protocols for distributed hash tables. Using the DHT to store transactions in the M-network avoids the use of inventory/get data (INV/GETDATA) messages in the M-network to route transactions to each M-node.
在本示例的操作中,M节点可根据区块链网络的正常交易转发协议将交易发送到区块链网络中的常规节点。例如,到普通节点的通信可以使用TCP进行节点对节点的连接。In the operation of this example, the M node can send the transaction to a regular node in the blockchain network according to the normal transaction forwarding protocol of the blockchain network. For example, the communication to the ordinary node can use TCP for node-to-node connection.
在一种配置中,M节点包括处理器、网络接口、和存储器。可以使用任何合适的计算硬件来实现所述M节点,所述计算硬件具有网络连接性和足够的处理与存储资源来执行本文描述的功能。所述M节点可包括处理器可执行指令以实现本文描述的功能。在一些情况下,处理器可执行指令可称为区块链商户节点应用,但可以理解,基于硬件和操作系统,指令可以在一个或多个模块、应用程序、脚本、或其他编程结构中实现。处理器可包括多核处理器和/或多个处理器。In one configuration, the M node includes a processor, a network interface, and a memory. The M node can be implemented using any suitable computing hardware that has network connectivity and sufficient processing and storage resources to perform the functions described herein. The M node may include processor executable instructions to implement the functions described herein. In some cases, the processor executable instructions may be referred to as a blockchain merchant node application, but it is understood that based on the hardware and operating system, the instructions may be implemented in one or more modules, applications, scripts, or other programming structures. The processor may include a multi-core processor and/or multiple processors.
存储器部分地基于其DHT密钥值(即M节点ID)存储数据,包括基于DHT的存储池的分配部分。在此示例实施方式中,存储器还存储路由表、邻域集和叶集。路由表包含M网络内特定路由目的地的列表,当节点接收到数据包时,会参考路由表以了解将数据发送到何处。路由表还可包含有关每个目的地与M节点间距离的信息。邻域集(例如基于邻近度量(ping延迟))包含关于接近的M节点的信息。叶集包含数字上接近的M节点。如果M节点的密钥值(节点ID)在数字上接近,那么所述节点在数字上接近。存储器还包括M节点信誉表,这将在下文中进一步说明。The memory stores data based in part on its DHT key value (i.e., M node ID), including an allocated portion of a DHT-based storage pool. In this example embodiment, the memory also stores a routing table, a neighborhood set, and a leaf set. The routing table contains a list of specific routing destinations within the M network, and when a node receives a data packet, it will refer to the routing table to understand where to send the data. The routing table may also contain information about the distance between each destination and the M node. The neighborhood set (e.g., based on a proximity metric (ping delay)) contains information about M nodes that are close. The leaf set contains M nodes that are close in number. If the key value (node ID) of the M node is close in number, then the node is close in number. The memory also includes an M node reputation table, which will be further described below.
为了提供可伸缩性,除了使用DHT实现存储池之外,M网络还允许节点加入M网络。新节点需要具有至少一个已经是M网络一部分的M节点的地址,以便所述新节点可以将其加入请求定向到其中一个M节点。M节点可以执行某些验证动作,这可能涉及查询新节点。例如,M网络可以具有一组与加入其指定给M节点的M网络相关联的最低标准。举例来说,所述标准可包括可用的最小处理资源、可用的最小空闲存储或连接性要求。In order to provide scalability, in addition to implementing storage pools using DHT, the M-network also allows nodes to join the M-network. The new node needs to have the address of at least one M-node that is already part of the M-network so that the new node can direct its joining request to one of the M-nodes. The M-node can perform certain verification actions, which may involve querying the new node. For example, the M-network can have a set of minimum standards associated with joining the M-network that is assigned to the M-node. For example, the standards may include minimum processing resources available, minimum free storage available, or connectivity requirements.
假设M节点完成为检验新节点而执行的任何验证操作,那么M节点根据控制DHT操作的任何DHT协议,将加入请求(Joinrequest())转发到DHT。DHT与新节点通信,以向新节点提供路由表,密钥值(节点ID)和任何其他数据,以使新节点能够充当M网络上的新M节点。Assuming the M-node completes any verification operations performed to validate the new node, the M-node forwards a join request (Joinrequest()) to the DHT in accordance with any DHT protocol that controls the operation of the DHT. The DHT communicates with the new node to provide the new node with the routing table, key value (node ID), and any other data to enable the new node to act as a new M-node on the M-network.
应当理解,节点能够轻易加入M网络造成了恶意节点也容易加入网络。为了识别和隔离潜在的恶意节点,一种配置提供M节点存储M节点信誉表,用于跟踪和更新节点行为排名。当新节点加入网络时,所述节点可以被添加到M节点信誉表中,如节点ID字段所示。在一些实施方式中,所述表还可以包括加入时间。所述表还包括所述M节点的分数或评级。It should be understood that the ease with which nodes can join the M network makes it easy for malicious nodes to join the network. In order to identify and isolate potential malicious nodes, a configuration provides that the M node stores an M node reputation table for tracking and updating node behavior rankings. When a new node joins the network, the node can be added to the M node reputation table, as shown in the node ID field. In some embodiments, the table may also include the joining time. The table also includes the score or rating of the M node.
分数可以根据某些行为指标向上或向下调整。例如,如果M节点未能转发交易,保持一段时间的静默,用被确定为非交易性的流量淹没M网络,或者以其他方式参与负面行为,那么所述M节点的排名可能被降低或递减。如果节点的分数低于预设的最小值,那么可以将所述节点从M网络中排除。Scores can be adjusted up or down based on certain behavioral indicators. For example, if an M-node fails to forward transactions, remains silent for a period of time, floods the M-network with traffic determined to be non-transactional, or otherwise engages in negative behavior, then the ranking of the M-node may be lowered or decremented. If a node's score falls below a preset minimum, then the node may be excluded from the M-network.
维护在特定M节点上的M节点信誉表可仅限于跟踪其邻居的分数,而不是全M网络。因此,当新M节点在t时刻加入网络时,其邻居的M节点信誉表不包含有关新节点的任何信息,但是从t时刻开始,所述邻居开始建立新节点的信誉,将信息存储在节点注册表中。例如,如果新节点是静默节点,这意味着所述节点不传输通过网络接收到的信息,那么所有邻居都开始在其各自的M节点信誉表中记录此行为(例如给新节点的ID分配负值)。在一定时间t+n之后,如果知道新节点的所有节点的M节点信誉表都包含负值,那么节点可决定隔离新节点并将新节点从网络禁止。The M-node reputation table maintained on a particular M-node may be limited to tracking the scores of its neighbors, rather than the entire M-network. Thus, when a new M-node joins the network at time t, the M-node reputation tables of its neighbors do not contain any information about the new node, but starting at time t, the neighbors begin to build the reputation of the new node, storing the information in the node registry. For example, if the new node is a silent node, meaning that the node does not transmit information received over the network, then all neighbors begin to record this behavior in their respective M-node reputation tables (e.g., assigning a negative value to the ID of the new node). After a certain time t+n, if the M-node reputation tables of all nodes that know the new node contain negative values, then the node may decide to isolate the new node and ban the new node from the network.
M网络的分布式存储池中的交易可能需要等待相当长的时间才能被确认,即在被合并到添加到区块链并被确认的区块中之前。当足够数量的后续区块添加到其上方的区块链中时,所述区块被视为“已确认”,这样,扭转链中的增长并删除区块以更改为不同的分支或分叉在计算上不可行。Transactions in the M network's distributed storage pool may have to wait a considerable amount of time before being confirmed, i.e. before being incorporated into a block that is added to the blockchain and confirmed. A block is considered "confirmed" when a sufficient number of subsequent blocks are added to the blockchain above it, such that it is computationally infeasible to reverse growth in the chain and remove blocks to change to a different branch or fork.
由于存储池的大小和灵活性以及交易量,给定交易可能比某些区块链实施方式中的交易的未确认时间更长。在传统的实施方式中,一旦将交易合并到区块中,所述交易便从存储池中删除。这意味着,如果所述区块最终成为孤立块,那么所述区块中的所有交易都会在网络上重新传输。在快速交易网络的情况下,这可能不切实际,或者可能导致对某些交易的确认长时间延迟。Due to the size and flexibility of the storage pool and the volume of transactions, a given transaction may remain unconfirmed longer than in some blockchain implementations. In traditional implementations, once a transaction is incorporated into a block, it is removed from the storage pool. This means that if the block ends up being orphaned, all transactions in the block are retransmitted across the network. In the case of fast transaction networks, this may not be practical or may result in long delays in the confirmation of certain transactions.
因此,在一些实施方式中,存储池可以跟踪已并入交易的区块的确认数量,即在并入了交易的区块之后添加到区块链的区块的数量。只有在确认的预定数量发生后,交易才会从存储池中删除。预定数量可以是4、5、6、7或对于给定实施方式的任何合适的数量。存储池数据条目可构建为包括交易ID字段,交易字段和确认数量(Number of Confirmations,简称NoC)字段。在另一实施方式中,存储池数据条目可以简单地记录区块数量,而不跟踪NoC。根据区块链的当前区块数量,所述存储池数据条目可以从区块数量中评估发生了多少次确认。Thus, in some embodiments, the storage pool may track the number of confirmations of the block into which the transaction has been incorporated, i.e., the number of blocks added to the blockchain after the block into which the transaction has been incorporated. The transaction will only be removed from the storage pool after a predetermined number of confirmations have occurred. The predetermined number may be 4, 5, 6, 7, or any suitable number for a given embodiment. The storage pool data entry may be structured to include a transaction ID field, a transaction field, and a number of confirmations (NoC) field. In another embodiment, the storage pool data entry may simply record the number of blocks without tracking the NoC. Based on the current number of blocks in the blockchain, the storage pool data entry may assess how many confirmations have occurred from the number of blocks.
一旦发生必要数量的确认,交易就可以安全地从存储池中删除。这样,在孤立区块的情况下不会有交易损失,并且在必要数量的确认之后,交易将被永久删除。Once the necessary number of confirmations has occurred, the transaction can be safely removed from the storage pool. This way, there is no loss of transactions in the event of orphaned blocks, and after the necessary number of confirmations, the transaction is permanently deleted.
本说明书下文中描述的解决方案利用了如前所述的修改后类型的快速验证节点。描述了一种新的全节点配置,所述配置实际上是具有大规模存储功能和修改后的操作协议的M节点验证体系结构。M节点和存储节点共同构成了新的全节点的核心。详细描述了新的节点结构,包括必要的技术要求和技术解决方案,并提供了可持续激励模型。The solution described below in this specification utilizes a modified type of fast verification node as described above. A new full node configuration is described, which is actually an M-node verification architecture with large-scale storage capabilities and a modified operating protocol. M-nodes and storage nodes together form the core of the new full node. The new node structure is described in detail, including the necessary technical requirements and technical solutions, and a sustainable incentive model is provided.
区块大小和存储要求Block size and storage requirements
当前区块大小为1Mb。当前,区块由包含所谓的幻数(总是相同的值)的字段、表明区块实际大小的值、所谓的区块头、区块中包含的交易数量、以及实际交易列表组成。实际交易列表总是从币库交易开始。在图1中,示出了区块的整体结构。The current block size is 1Mb. Currently, a block consists of a field containing a so-called magic number (always the same value), a value indicating the actual size of the block, a so-called block header, the number of transactions contained in the block, and a list of actual transactions. The list of actual transactions always starts with the coinbase transaction. In Figure 1, the overall structure of a block is shown.
区块头包含以下内容:The block header contains the following:
1.版本号(4字节)1. Version number (4 bytes)
2.前一个区块头的散列(32字节)2. Hash of the previous block header (32 bytes)
3.默克尔根散列(Merkle root hash)(32字节)3. Merkle root hash (32 bytes)
4.时间(4字节)4. Time (4 bytes)
5.目标门限(编码为nBits–4字节)5. Target threshold (encoded as nBits–4 bytes)
6.只被使用一次的非重复的随机数(4字节)6. A non-repeating random number that is used only once (4 bytes)
当前,区块包含大约2000个交易,并且大约每10分钟挖掘一次(10分钟的区块时间设置为第一确认时间和在链拆分上浪费的时间之间的折衷)。这提供了大约每秒3.5个交易的交易速率,理论上每秒最多7个交易。相比之下,VISA以大约每秒10000个交易的速率运行,并且每秒可以达到50000多个交易。Currently, blocks contain about 2,000 transactions and are mined approximately every 10 minutes (the 10-minute block time is set as a compromise between first confirmation time and time wasted on chain splits). This provides a transaction rate of about 3.5 transactions per second, with a theoretical maximum of 7 transactions per second. In comparison, VISA operates at a rate of about 10,000 transactions per second, and can reach more than 50,000 transactions per second.
显然,为了建立有竞争力的支付系统,有必要对当前的限制条件进行某种规避。由于已经确定10分钟的区块时间,因此必须考虑区块大小的变化,进而考虑区块链本身的变化。在本说明书中,描述了一种可伸缩的解决方案,所述解决方案每秒大约能够处理例如50000个交易。Clearly, in order to build a competitive payment system, some circumvention of the current constraints is necessary. Since a 10 minute block time has been established, changes in block size and, therefore, changes in the blockchain itself must be considered. In this specification, a scalable solution is described that is capable of handling, for example, approximately 50,000 transactions per second.
增加当前区块的大小,甚至完全取消限制,是一个备受讨论的话题,有时也是有争议的话题。双方似乎都有强有力的论据,因为保持现有大小和增加大小都有明显的好处和权衡。Increasing the current block size, or even removing the limit altogether, is a much discussed and sometimes controversial topic. There appear to be strong arguments on both sides, as there are clear benefits and trade-offs to both keeping the current size and increasing it.
假设交易速率为r,我们可以计算出必要的区块大小。下面假设区块时间(平均)10分钟。因此,假设每个区块的交易数量为T(r)。我们得到Assuming a transaction rate of r, we can calculate the necessary block size. Let's assume that the block time is (on average) 10 minutes. Therefore, let's assume that the number of transactions per block is T(r). We get
T(r)=r·6·102block-1 T(r)=r·6·10 2 block -1
如果sTx是平均交易大小(以字节为单位),则区块大小B(r,sTx)可以表示为If s Tx is the average transaction size (in bytes), the block size B(r,s Tx ) can be expressed as
B(r,sTx)=sTx·T(r)=sTx·r·6·102 B(r,s Tx )=s Tx ·T(r)=s Tx ·r·6·10 2
因此,考虑到50000个交易/秒和sTx=500字节的情况,快速回溯计算得出:So, considering 50,000 transactions/second and s Tx = 500 bytes, a quick back calculation shows:
这反过来又导致了的存储需求。很明显,对于这种大小的区块,我们需要稍微不同的区块传播和存储方法。下表1示出了交易速率、平均交易大小、区块大小以及每月和每年所需存储空间量之间的关系。This in turn led to Storage requirements. Clearly, for blocks of this size, we need a slightly different approach to block propagation and storage. Table 1 below shows the relationship between transaction rate, average transaction size, block size, and the amount of storage space required per month and per year.
表1:交易速率、平均交易大小、区块大小以及每月和每年所需存储空间量之间的关系Table 1: Relationship between transaction rate, average transaction size, block size, and the amount of storage space required per month and per year
图2示出了从用户提交交易到交易在区块链结束的操作示意图。FIG2 shows a schematic diagram of the operation from the user submitting a transaction to the transaction being completed in the blockchain.
提供了一种系统,其中特殊验证节点(通过分布式散列表DHT维护特殊验证节点之间的共享存储池)接收交易,验证交易,并在存储池分配交易。验证节点向网络节点提供服务,即提供有效交易散列的列表。网络节点根据这些散列来组装预区块(区块骨架)(BlockSkeletons),并尝试解决散列难题。找到难题的解决方案时,获胜的网络节点将区块骨架发送回验证节点。所述验证节点验证区块并确保区块存储。最初,验证节点存储区块本身是可能且可行的。当区块大小最终超过某个大小门限时,验证节点将:a)扩展自身的存储能力;或b)将存储外包给专门的存储节点。本说明书下文将讨论这两种体系结构。A system is provided in which special verification nodes (a shared storage pool between special verification nodes is maintained through a distributed hash table DHT) receive transactions, verify transactions, and distribute transactions in the storage pool. The verification node provides services to the network nodes, namely, a list of valid transaction hashes. The network nodes assemble pre-blocks (block skeletons) (BlockSkeletons) based on these hashes and try to solve hash puzzles. When a solution to the puzzle is found, the winning network node sends the block skeleton back to the verification node. The verification node verifies the block and ensures block storage. Initially, it is possible and feasible for the verification node to store the block itself. When the block size eventually exceeds a certain size threshold, the verification node will: a) expand its own storage capacity; or b) outsource storage to a dedicated storage node. These two architectures will be discussed below in this specification.
新的全节点New full node
按照顺序的区块大小,依靠PC型节点来提供用于托管区块链全图像的存储能力似乎不再可行。相反,需要提供GB或更多存储的设备(见表1)。挑战就变成了创建一个既能容纳新区块又能保持网络的分布式、去中心化和不信任性的系统。In order With the block size of , it seems no longer feasible to rely on PC-type nodes to provide the storage capacity for hosting the full image of the blockchain. Instead, The challenge then becomes creating a system that can accommodate new blocks while maintaining the distributed, decentralized, and trustless nature of the network.
设想了两种类型的全节点结构,以及这两种类型的组合:Two types of full node architectures are envisioned, as well as combinations of the two types:
1.带有相关联的千兆兆字节存储机架的验证节点1. A validator node with an associated petabyte storage rack
2.基于内部去中心化的分布式点对点(Peer-to-Peer,简称P2P)单节点网络的带有关联存储池验证节点2. A verification node with an associated storage pool based on an internally decentralized distributed peer-to-peer (P2P) single-node network
3.1和2的组合Combination of 3.1 and 2
所提出的解决方案试图通过引入类似于在当今的所谓全节点的节点,来解决一直保持区块链的分布式和去中心化的记录的问题,但是相比之下,这些节点具有随着区块的大小和交易数量的增加而扩展的能力。The proposed solution seeks to address the problem of keeping a distributed and decentralized record of the blockchain by introducing nodes similar to today’s so-called full nodes, but with the ability to scale as the size of blocks and the number of transactions increase.
区别不仅限于纯粹的结构和硬件相关问题。与撰写本文时运行的基于家用电脑的全节点相比,本文提出的新节点将是专用节点。所述新节点需要大量的投资,因此,激励措施将大不相同。在可扩展的范例中,M节点(验证节点)和新的全节点(验证和存储节点的组合)都将期望对其服务进行补偿。The differences are not limited to purely architectural and hardware related issues. The new nodes proposed in this article will be dedicated nodes, compared to the home computer-based full nodes running at the time of writing. Said new nodes require a significant investment, and therefore, the incentives will be very different. In a scalable paradigm, both M-nodes (validation nodes) and new full nodes (combination of validation and storage nodes) will expect to be compensated for their services.
另一方面,我们拥有去中心化的分布式存储解决方案,这些解决方案主要由单个节点组成。Storj(Wilkinson et al.,2016)、Sia(NebulousLabs)和MaidSafe(maidsafe)是很好的例子。On the other hand, we have decentralized distributed storage solutions that are mostly composed of a single node. Storj (Wilkinson et al., 2016), Sia (NebulousLabs), and MaidSafe (maidsafe) are good examples.
如上所述,也可以想到由千兆兆字节(Pb)机架和点对点(P2P)存储系统组成的超级节点。As mentioned above, supernodes consisting of petabyte (Pb) racks and peer-to-peer (P2P) storage systems are also conceivable.
显然,对所有全节点进行补偿是很重要的。因为网络节点将依靠他们(赢得的)区块最终进入公共区块链。Obviously, it is important to compensate all full nodes, as the network will rely on their (winning) blocks to eventually make it into the public blockchain.
节点将组成为池,这些池充当超级节点。为了保持区块链的分布式性质,必须有一定数量的此类超级节点(≥100)。超级节点连接但不重叠。Nodes will be organized into pools, which act as supernodes. In order to maintain the distributed nature of the blockchain, there must be a certain number of such supernodes (≥100). Supernodes are connected but do not overlap.
技术要求Technical requirements
如上所述,在讨论新的全节点时,需要考虑两种完全不同的体系结构(见表2)。As mentioned above, there are two completely different architectures to consider when discussing new full nodes (see Table 2).
新的全节点需要维护两种类型的存储:New full nodes need to maintain two types of storage:
1)存储池的类似随机存取存储器(Random Access Memory,简称RAM)的分布式散列表(DHT)存储器/存储。1) A distributed hash table (DHT) memory/storage similar to random access memory (RAM) of the storage pool.
2)区块链的永久性磁带/磁盘式存储。2) Persistent tape/disk storage of blockchain.
如上所述,对于50000个交易/秒的交易速率,区块预计为这意味着年存储需求为~365×24×6×15Gb=7.9·105Gb=0.8Pb/yr(见表1)。As mentioned above, for a transaction rate of 50,000 transactions/second, blocks are expected to be This means that the annual storage requirement is 365×24×6×15 Gb=7.9·10 5 Gb=0.8 Pb/yr (see Table 1).
表2示出了当前全节点和未来全节点之间的比较:Table 2 shows the comparison between current full nodes and future full nodes:
同时,机架/集群需要维护存储池。这样可以快速恢复区块。存储池的必要大小更难评估。当前,区块大小约为1兆字节每秒约有4个交易在存储池中等待的交易总大小在2兆字节到约70兆字节之间波动。图3示出了在存储池中等待确认的交易的总大小的示例图。At the same time, racks/clusters need to maintain a storage pool. This allows for fast recovery of chunks. The necessary size of the storage pool is more difficult to estimate. Currently, chunk sizes are around 1 megabyte. About 4 transactions per second The total size of transactions waiting in the storage pool ranges from 2 megabytes to about 70 megabytes. FIG3 shows an example graph of the total size of transactions waiting for confirmation in the storage pool.
如上所述,我们设想了两种根本上不同的、能够存储大量数据的结构,以及两种结构的组合。图4和图5中示出了这两种结构。图4示出了包括能够访问内部去中心化存储设施的多个节点的配置。图5示出了一种配置,其中每个节点都是分布式存储池和分布式存储设施的一部分。图4所描述的体系结构似乎适合拥有并维护多个验证节点的较大实体,这些节点都可以访问实体自身的存储设施。相比之下,图5中描述的架构是完全去中心化的。这一解决方案适用于希望加入共享的分布式存储池的单个节点(例如具有足够存储容量的家用PC)。已经存在用于此目的的底层存储技术(例如Storj、Sia、MaidSafe)。As mentioned above, we envision two fundamentally different structures capable of storing large amounts of data, as well as a combination of the two structures. These two structures are illustrated in Figures 4 and 5. Figure 4 shows a configuration that includes multiple nodes with access to an internal decentralized storage facility. Figure 5 shows a configuration in which each node is part of a distributed storage pool and a distributed storage facility. The architecture described in Figure 4 seems suitable for larger entities that own and maintain multiple verification nodes, all of which have access to the entity's own storage facilities. In contrast, the architecture described in Figure 5 is fully decentralized. This solution is suitable for a single node (such as a home PC with sufficient storage capacity) that wants to join a shared distributed storage pool. There are already underlying storage technologies for this purpose (e.g., Storj, Sia, MaidSafe).
图6显示了一种网络配置,其中验证节点是存储池的成员。这些池共同构成一个去中心化的分布式网络。Figure 6 shows a network configuration where validators are members of storage pools. Together, these pools form a decentralized distributed network.
全节点操作Full Node Operation
在大区块场景中,我们将面临另一种情况,而不仅仅是由于空间需求。存储池应能够容纳相当于一个区块的量,即大约15千兆字节(~15Gb),最好是下一个要挖掘的区块的等量。这也将与需要考虑的开销相结合。In the large block scenario, we will face another situation, and not just due to space requirements. The storage pool should be able to hold the equivalent of one block, which is about 15 gigabytes (~15Gb), and preferably the equivalent of the next block to be mined. This will also be combined with the overhead that needs to be considered.
1)存储池需要与其他验证节点同步。这涉及交换可逆布隆过滤器查找表(MichaelT.Goodrich,2011年)1) The storage pool needs to be synchronized with other validating nodes. This involves exchanging reversible bloom filter lookup tables (Michael T. Goodrich, 2011)
2)需要仔细检查IBLTs,检索丢失的交易(Tx)2) Need to double check IBLTs and retrieve lost transactions (Tx)
3)需要验证额外检索的交易3) Transactions that require additional retrieval for verification
4)基于从网络节点或其他全节点接收到的区块骨架来组装区块新的全节点保持最新的存储池。它通过与网络节点交换IBLTs和其他验证以及新的全节点来实现。4) Assemble blocks based on block skeletons received from network nodes or other full nodes. The new full node keeps the latest storage pool. It does this by exchanging IBLTs and other validations with network nodes and new full nodes.
网络节点发送一个包含以下内容的区块骨架(元组)(Tuple):The network node sends a block skeleton (Tuple) containing the following:
1.只被使用一次的非重复的随机数,n1. A non-repeating random number that is used only once, n
2.IBLT2.IBLT
3.币库交易3. Coinbase transactions
基于此,新的全节点相应地对交易进行排序(根据一组特定的规则),并组装新挖掘的区块。新的全节点继续将区块存储在自己的存储中,并将骨架传播到其他新的全节点。本说明书的下文将更详细地描述协议。Based on this, the new full node sorts the transactions accordingly (according to a specific set of rules) and assembles the newly mined block. The new full node continues to store the block in its own storage and propagates the skeleton to other new full nodes. The protocol will be described in more detail later in this specification.
激励excitation
特定配置的一个重要特征是将激励内置到系统中,以激励提供新的节点结构和服务。由于存储区块链需要大量成本,因此需要激励措施。图7示出了新的全节点的功能。An important feature of a particular configuration is that incentives are built into the system to incentivize the provision of new node structures and services. Incentives are needed because storing a blockchain requires a lot of costs. Figure 7 shows the functionality of a new full node.
[交易]验证节点将通过收费系统补偿交易验证。[Transaction] Validation nodes will be compensated for transaction validation via a fee system.
激励在于100个区块确认时间T100。The incentive lies in the 100 block confirmation time T 100 .
1)网络节点需要等待时间t约为T100。1) The network node needs to wait for a time t of about T 100 .
2)验证节点需要等待时间t约为T100,才能收到验证区块中交易的费用。2) The verification node needs to wait for a time t of approximately T 100 before receiving the fee for verifying the transactions in the block.
3)新的全节点需要等待时间t约为T100,才能收到区块组装费和取决于大小的存储费用。3) A new full node needs to wait for a time t of approximately T 100 before receiving the block assembly fee and storage fees depending on the size.
因此,100个区块的确认时间将为网络节点提供必要的激励,以将骨架区块(包括支付)传播到一系列新的全节点,并且激励新的全节点将骨架区块传播到其他新的全节点。Therefore, a confirmation time of 100 blocks will provide the necessary incentive for network nodes to propagate the skeleton block (including the payment) to a series of new full nodes, and incentivize new full nodes to propagate the skeleton block to other new full nodes.
还应指出,网络节点可以自由选择他们希望包含在区块中的(交易)列表。因此,我们设想了一个市场,由验证节点组成,验证节点通过编制已验证的交易的列表进行竞争,网络节点可以通过承诺交易从验证过的交易中选择和购买。It should also be noted that network nodes are free to choose the list of transactions they wish to include in a block. Therefore, we envision a market consisting of validating nodes that compete by compiling lists of verified transactions from which network nodes can select and purchase through commitment transactions.
重访挖掘Revisiting the Excavation
网络节点从存储池(或者如本文所设想的,从专门的验证节点)中收集交易(Txs),将交易组织为区块,尝试找到解决散列难题的方案(只被使用一次的非重复的随机数)。区块头包含区块链上前一个区块的散列、交易的默克尔树的根、以及网络节点包含的只被使用一次的非重复的随机数。所述难题的解决包括计算与前一个区块散列和默克尔根串联的只被使用一次的非重复的随机数(迭代选择)的双SHA256散列,检查其是否小于所谓的难度目标。如果小于难度目标,则难题得以解决;如果大于难度目标,则只被使用一次的非重复的随机数的迭代继续。这在新的范例中保持不变。构成挑战的是极大地扩大的区块大小和已挖掘区块在整个网络中的分布。对于千兆字节大小的区块,通过网络广播整个区块不一定可行。The network nodes collect transactions (Txs) from a storage pool (or, as envisioned in this article, from dedicated validation nodes), organize the transactions into blocks, and try to find a solution to a hash puzzle (a non-repeating random number used only once). The block header contains the hash of the previous block on the blockchain, the root of the Merkle tree of transactions, and a non-repeating random number used only once contained by the network node. The solution of the puzzle consists of calculating a double SHA256 hash of a non-repeating random number used only once (chosen iteratively) concatenated with the previous block hash and the Merkle root, and checking whether it is less than the so-called difficulty target. If it is less than the difficulty target, the puzzle is solved; if it is greater than the difficulty target, the iteration of non-repeating random numbers used only once continues. This remains unchanged in the new paradigm. What poses a challenge is the greatly enlarged block size and the distribution of mined blocks throughout the network. For gigabyte-sized blocks, broadcasting the entire block through the network is not necessarily feasible.
相反,我们提出一种解决方案,包括以下步骤:Instead, we propose a solution consisting of the following steps:
1.网络节点从验证/M节点和/或新的全节点接收已验证的交易的列表。1. The network node receives a list of verified transactions from the validating/M-node and/or the new full node.
2.网络节点本身可能或可能不操作自己的交易散列值存储池,所述存储池遵循特定排序惯例。2. The network nodes themselves may or may not operate their own storage pool of transaction hash values that follows a specific ordering convention.
3.网络节点通过确定只被使用一次的非重复的随机数n来解决散列难题。3. Network nodes solve the hash puzzle by determining a non-repeating random number n that is used only once.
4.接下来,计算散列树(默克尔树,下文称为HT),存储默克尔树的根(见下一节)。4. Next, the hash tree (Merkle tree, hereinafter referred to as HT) is calculated and the root of the Merkle tree is stored (see the next section).
5.交易列表用于创建IBLT。IBLT可用于计算两个集合(例如存储池)之间的内容差异,以及协调两个集合。5. The transaction list is used to create an IBLT. IBLT can be used to calculate the content difference between two collections (such as storage pools) and to coordinate the two collections.
6.元组{n;IBLT;CoinBase Tx;HT root}被广播到验证/M节点。6. The tuple {n; IBLT; CoinBase Tx; HT root} is broadcasted to the validation/M nodes.
7.新的全节点为区块链的存储池和存储操作DHT。7. The new full node is the blockchain’s storage pool and storage operation DHT.
8.池基于元组{n;IBLT;CoinBase Tx;HT root}重新组装区块,并通过a)自身存储区块或b)通过存储在专用存储节点上,将区块记录在区块链上。8. The pool reassembles the block based on the tuple {n; IBLT; CoinBase Tx; HT root} and records the block on the blockchain by a) storing the block itself or b) by storing it on a dedicated storage node.
避免网络节点之间的竞争Avoid contention between network nodes
网络节点能够从由多个验证节点组成的市场中选择已验证的交易列表。除非另有说明,否则假设网络节点将选择最大化其潜在收入的列表是合理的。细心的读者可能会指出,这可能导致网络节点主要从同一节点选择同一列表。反过来,这会导致一些网络节点相互竞争,试图挖掘同一区块的情况。这有利于具有最大散列能力的网络节点。Network nodes are able to select a list of verified transactions from a market consisting of multiple validating nodes. Unless otherwise stated, it is reasonable to assume that network nodes will select the list that maximizes their potential revenue. A careful reader may point out that this can lead to network nodes predominantly selecting the same list from the same node. This, in turn, can lead to a situation where some network nodes compete with each other, trying to mine the same block. This favors the network nodes with the most hashing power.
我们提出在区块头中添加一个额外字段。所述字段包含每个网络节点选择的随机数。这保证了每个网络节点从不同的起点开始,因此防止将解决区块仅归结为散列能力。这又将模拟现在的情况,即网络节点倾向于挖掘相似但独立选择且略有不同的区块。We propose to add an extra field to the block header. Said field contains a random number chosen by each network node. This ensures that each network node starts from a different starting point, thus preventing solving a block from being attributed solely to hashing power. This in turn will simulate the current situation where network nodes tend to mine similar but independently chosen and slightly different blocks.
协议protocol
在此,我们对操作新的全节点所必需的协议进行说明。Here, we describe the protocols necessary to operate a new full node.
为了使所提出的系统发挥作用,所涉及的节点(验证者、新的全节点……)的存储池应遵循交易的排序惯例。在此,我们提出使用加文·安德烈森(Gavin Andresen)提出的规范顺序。在所述排序中,排序与区块中的交易列表有关,但是在此,我们提出了一个想法:所有验证节点和新的全节点都对其存储池使用相同的约定。In order for the proposed system to work, the storage pools of the involved nodes (validators, new full nodes, ...) should follow a convention for ordering transactions. Here, we propose to use the canonical order proposed by Gavin Andresen. In said ordering, the ordering is related to the list of transactions in the block, but here, we propose an idea: all validators and new full nodes use the same convention for their storage pools.
约定可以总结如下:The convention can be summarized as follows:
1)按照相对于前一个交易散列的升序对交易进行排序。1) Sort transactions in ascending order relative to the previous transaction hash.
2)从排序列表中添加不依赖于后续交易的第一个交易。2) Add the first transaction from the sorted list that does not depend on subsequent transactions.
如前所述,区块包含所谓的默克尔根散列。它是通过散列所有交易(包括币库交易),然后散列串接的散列,直到达到默克尔根散列而产生的。显然,如果网络节点没有正在制造币库交易,验证节点可以计算整个默克尔树,从而计算默克尔根和相应的散列。As mentioned before, blocks contain what is called a Merkle root hash. It is produced by hashing all transactions (including coinbase transactions) and then hashing the concatenated hashes until the Merkle root hash is reached. Obviously, if the network nodes are not producing coinbase transactions, the validating nodes can calculate the entire Merkle tree and thus the Merkle root and the corresponding hash.
在此,我们提出通过以下方式的程序来计算默克尔树:Here, we propose a procedure to compute the Merkle tree in the following way:
验证者节点计算一个小默克尔根(Little Merkle Root)。所述程序与计算标准默克尔根时的程序相同,但有几处例外:The validator node calculates a Little Merkle Root. The procedure is the same as when calculating a standard Merkle root, with a few exceptions:
1)排出币库交易。1) Exclude coinbase transactions.
2)包括所谓的承诺交易。2) Includes so-called commitment transactions.
3)网络节点制造币库交易,并将其与小默克尔根散列串联起来,产生默克尔根散列。3) The network node creates a coinbase transaction and concatenates it with the small Merkle root hash to produce the Merkle root hash.
图8示出了新的默克尔树结构。注意,所述结构构成了对当前协议的修改。The new Merkle tree structure is shown in Figure 8. Note that the structure constitutes a modification to the current protocol.
修改区块头Modify block header
如上所述,我们提出在区块头中添加一个额外字段,其中包含网络节点选择的随机数。因此,散列难题的解决变化如下:As mentioned above, we propose to add an extra field to the block header containing a random number chosen by network nodes. Therefore, the solution to the hash puzzle changes as follows:
SHA256[SHA256[Prev.Block Hash//Merkle Root//nonce]]SHA256[SHA256[Prev.Block Hash//Merkle Root//nonce]]
SHA256[SHA256[RND||Prev.Block Hash//Merkle Root//nonce]]SHA256[SHA256[RND||Prev.Block Hash//Merkle Root//nonce]]
因此,我们提出用包含随机数的额外字段来增强已挖掘的新区块的区块头。区块头将包含以下内容:Therefore, we propose to enhance the block header of a newly mined block with an additional field containing a random number. The block header will contain the following:
1.版本号(4字节)1. Version number (4 bytes)
2.前一个区块头的散列(32字节)2. Hash of the previous block header (32 bytes)
3.默克尔根散列(Merkle Root Hash)(32字节)3. Merkle Root Hash (32 bytes)
4.时间(4字节)4. Time (4 bytes)
5.目标门限(编码为nBits–4字节)5. Target threshold (encoded as nBits–4 bytes)
6.只被使用一次的非重复的随机数(4字节)6. A non-repeating random number that is used only once (4 bytes)
7.随机数(4字节)7. Random number (4 bytes)
验证→网络节点Verification → Network Node
验证节点:Validation Node:
ο根据请求,验证节点(可能是也可能不是新的全节点)准备要挖掘的已验证的交易的列表。o Upon request, a validating node (which may or may not be a new full node) prepares a list of verified transactions to be mined.
ο验证者节点创建承诺交易。οThe validator node creates a commitment transaction.
ο计算所谓的小默克尔根(Little Merkle Root)(见前面的小节),其中包括承诺交易。ο Compute the so-called Little Merkle Root (see previous subsection), which includes the Commitment Transaction.
ο验证者节点准备两个IBLT:οThe validator node prepares two IBLTs:
1)为区块中的所有交易(IBLT1);和1) for all transactions in the block (IBLT1); and
2)为区块中所有对应的交易标识符(TxID)(IBLT2)2) All corresponding transaction identifiers (TxID) in the block (IBLT2)
ο验证者节点向网络节点发送:οThe validator node sends to the network node:
1)小默克尔根。1) Little Merkel root.
2)IBLT1。2)IBLT1.
3)IBLT2(可选——仅当网络节点使用自己的TxID-/存储池运行时)。3) IBLT2 (optional - only if the network node runs with its own TxID-/storage pool).
4)前一区块散列。4) Previous block hash.
5)上述散列校验和。5) The above hash checksum.
网络节点:Network Nodes:
ο从验证者节点接收数据后,网络节点继续创建币库交易。此外,币库交易包含带有机密的输出字段,所述机密字段与承诺交易中的机密匹配。After receiving the data from the validator node, the network node proceeds to create a coinbase transaction. In addition, the coinbase transaction contains an output field with a secret that matches the secret in the commitment transaction.
ο网络节点使用从验证者节点收到的小默克尔根,并将其与币库交易结合起来以创建默克尔根散列。ο The network node uses the small Merkle root received from the validator node and combines it with the coinbase transaction to create the Merkle root hash.
ο网络节点现在掌握了开始解决散列难题所需的所有信息。ο The network nodes now have all the information they need to start solving the hash puzzle.
ο按照前述进行挖掘。οExcavate as described above.
网络节点→新的全节点Network node → new full node
网络节点:Network Nodes:
ο挖掘一个区块后,网络节点将以下内容发送到新的全节点列表:After mining a block, the network node sends the following to the new full node list:
ο只被使用一次的非重复的随机数(难题的解决方案),n。ο A non-repeating random number that is used only once (the solution to the puzzle), n.
ο币库交易。οCoinbase transactions.
ο区块头。οBlock header.
ο默克尔根。ο Merkle root.
ο小默克尔根。οLittle Merkel root.
οIBLT1。οIBLT1.
οIBLT2(可选)。οIBLT2 (optional).
ο散列校验和。ο Hash checksum.
新的全节点:New full node:
ο节点通过计算校验和(散列)来检查接收到的数据是否一致。The o node checks whether the received data is consistent by calculating a checksum (hash).
ο节点使用IBLT1来确保区块中的交易存在于存储池中。οNodes use IBLT1 to ensure that transactions in a block are present in the storage pool.
ο使用IBLT1查询存储池,节点组装区块。然后存储所述区块(见有关新的区节点和存储的部分)。o Using IBLT1 to query the storage pool, the node assembles the chunk. It then stores the chunk (see the section on new chunk nodes and storage).
ο从网络节点收到的数据将广播到其他新的全节点。οData received from network nodes will be broadcast to other new full nodes.
定制交易列表Customized transaction list
我们设想这样一种情况,即已验证的交易的市场将适应网络节点的需求。网络节点倾向于选择最大化其潜力的列表,而验证M节点将顺应这类趋势。We envision a situation where the market for verified transactions will adapt to the needs of network nodes. Network nodes tend to choose listings that maximize their potential, and validating M-nodes will follow these trends.
在某些情况下,网络节点可能希望通过合并两个或多个列表中的交易来自定义其区块。通过计算两个IBLT之间的差异,可以在两个集合之间进行集合对账。然后,网络节点将包含差异的IBLT发送回其中一个提供节点,以此方式检索制作列表所需的信息,所述列表包含两个列表中的所有交易。In some cases, a network node may wish to customize its blocks by merging transactions from two or more lists. A set reconciliation can be performed between two sets by calculating the difference between two IBLTs. The network node then sends the IBLT containing the difference back to one of the providing nodes, in this way retrieving the information needed to make a list containing all transactions from both lists.
显然,如果网络节点想要根据几份列表编制自己的列表,就会带来额外的挑战。本文简要地介绍一下各个要点。Obviously, if a network node wants to compile its own list based on several lists, this will introduce additional challenges. This article briefly describes the key points.
如果网络节点要合并来自各个验证节点的列表,不清楚应该如何合并默克尔根。在此,我们提出以下建议:If network nodes want to merge lists from various validators, it is unclear how to merge the Merkle roots. Here, we make the following suggestions:
构建多个单个小默克尔根的大小默克尔根(Big Little Merkle Root);和Constructing a Big Little Merkle Root of multiple individual Little Merkle Roots; and
将大小默克尔根与币库交易相结合。Combine big and small Merkle roots with coinbase transactions.
额外费用与添加到列表/区块的额外交易量不成比例。由于可以合理假设各种存储池大量重叠,因此合并列表等于从另一个列表中添加了一些(相对而言)交易。然而,为了合并列表,网络节点必须从每个验证节点“购买”全列表(通过承诺交易)。这是否是一种对于网络节点有利可图的方法还有待观察。The additional fee is not proportional to the additional amount of transactions added to the list/block. Since it is reasonable to assume that the various storage pools overlap a lot, merging lists is equivalent to adding a few (relatively speaking) transactions from another list. However, in order to merge lists, network nodes must "buy" the full list from each validating node (via commitment transactions). Whether this is a profitable approach for network nodes remains to be seen.
合并来自多个验证节点的列表需要网络节点和每个提供验证节点之间的承诺。可以想到,网络节点可能会滥用所述系统。目前,尚无规则/协议强制所有承诺交易都将在区块中结束。一种可能是验证节点可以检查每个区块并否决包含其交易的那些区块。Merging lists from multiple validating nodes requires a commitment between the network node and each providing validation node. It is conceivable that the network node could abuse the system. Currently, there is no rule/protocol that forces all committed transactions to end up in a block. One possibility is that the validating node could check each block and veto those that contain its transactions.
节点结构和操作的总结Summary of node structure and operation
随着交易量的大幅增加,集中在挖掘方面不一定可行。本说明书中描述的解决方案将各种任务降级到相应的专用节点,网络节点本身也变得更加专用。编制已验证的交易清单、基于区块骨架重新构建区块、以及存储都是需要大量资源的功能。我们已经在本说明书中详细描述了这些问题。With a significant increase in transaction volume, it may not be feasible to focus on mining. The solution described in this specification relegates various tasks to corresponding specialized nodes, and the network nodes themselves become more specialized. Compiling a list of verified transactions, reconstructing blocks based on block skeletons, and storage are all functions that require a lot of resources. We have described these issues in detail in this specification.
本说明书介绍的元素包括:The elements described in this manual include:
o新型的节点结构,本文称为新的全节点或超级节点,可能是也可能不是验证M节点的扩展。o A new type of node structure, referred to in this article as a new full node or super node, may or may not be an extension of the validating M node.
o节点根据协议进行操作,所述协议有效地允许从验证节点到网络节点以及从网络节点到新的全节点的千兆字节大小的区块的广播。o Nodes operate according to a protocol that efficiently allows the broadcast of gigabyte-sized blocks from validating nodes to network nodes and from network nodes to new full nodes.
o用于存储区块链的两个整体存储结构,可能是也可能不是所提出的新的全节点的一部分。o Two overall storage structures for storing the blockchain, which may or may not be part of the proposed new full nodes.
o激励模型,允许建立已验证的交易的预区块列表市场,在挖掘后进行区块组装和存储。o Incentive model that allows for a market for pre-block lists of verified transactions to be assembled and stored in blocks after mining.
o新的默克尔树结构,使得网络节点无需维护自己的存储池。oThe new Merkle tree structure eliminates the need for network nodes to maintain their own storage pools.
o在区块头中添加一个带有由网络节点选择的随机数的额外字段,以避免挖掘行为变成纯粹基于散列能力的竞争。o Adding an extra field in the block header with a random number chosen by network nodes to avoid mining becoming a competition based purely on hashing power.
根据一种实现方式,提供了一种用于区块链网络的节点的计算机实现的方法,所述计算机实现的方法包括:According to one implementation, a computer-implemented method for a node of a blockchain network is provided, the computer-implemented method comprising:
从对应于多个已验证交易的所述区块链网络接收已挖掘数据;receiving mined data from the blockchain network corresponding to a plurality of verified transactions;
基于所述已挖掘数据组装区块;和Assembling blocks based on the mined data; and
将已组装区块发送到存储实体以存储在区块链上。The assembled blocks are sent to a storage entity for storage on the blockchain.
这种方法使得节点能够构造要存储在存储实体上的大区块,无需网络节点构造和存储大区块并通过区块链网络传输此类区块。此外,所述架构允许使用专用于存储大的且不断增长的区块链的大型存储实体。This approach enables nodes to construct large blocks to be stored on a storage entity without requiring network nodes to construct and store large blocks and transmit such blocks across the blockchain network. In addition, the described architecture allows the use of large storage entities dedicated to storing large and growing blockchains.
所述计算机实现的方法可进一步包括:The computer-implemented method may further include:
从所述区块链网络接收所述交易;Receiving the transaction from the blockchain network;
验证从所述区块链网络接收的所述交易;verifying the transaction received from the blockchain network;
与所述区块链网络中其他节点一起维护所述已验证交易的分布式、去中心化存储;和Maintaining, together with other nodes in the blockchain network, a distributed, decentralized storage of the verified transactions; and
将对应于所述已验证交易的数据分配到所述区块链网络以用于挖掘,所述数据包括所述验证交易的列表。每个列表都可以提供已验证的交易的完整列表,以挖掘到区块中。Data corresponding to the verified transactions are distributed to the blockchain network for mining, the data including a list of the verified transactions. Each list can provide a complete list of verified transactions to be mined into a block.
这种计算机实现的方法有效地消除了网络节点执行验证功能的要求,同时与区块链网络中其他节点一起保留了已验证交易的分布式、去中心化存储。此外,所述方法使得交易验证节点能够通过准备和分配对应于已验证交易的数据到区块链网络用于挖掘来向网络节点提供服务。例如,所述方法可以准备和分配已验证的交易的列表。This computer-implemented method effectively eliminates the requirement for network nodes to perform verification functions while retaining a distributed, decentralized storage of verified transactions with other nodes in the blockchain network. In addition, the method enables transaction verification nodes to provide services to network nodes by preparing and distributing data corresponding to verified transactions to the blockchain network for mining. For example, the method can prepare and distribute a list of verified transactions.
与所述区块链网络中的其他交易验证节点一起维护所述已验证交易的分布式、去中心化存储的步骤可包括同步所述区块链网络上的交易验证节点,以去中心化和分布式的方式维护所述已验证的交易的最新列表。例如,可以通过交换可逆布隆过滤器查找表来同步所述验证节点。所述已验证交易按定义的顺序排序,以便在所述区块链网络中的交易验证节点上使用通用排序系统,以维护所述已验证交易的分布式、去中心化存储。例如,可使用规范的排序系统来维护所述已验证交易的分布式、去中心化存储。已得知这是一个特别有效的在保持去中心化的、分布式存储的同时确保以一致的方式维护网络上的交易数据的方法。The step of maintaining the distributed, decentralized storage of the verified transactions with other transaction verification nodes in the blockchain network may include synchronizing the transaction verification nodes on the blockchain network to maintain the latest list of the verified transactions in a decentralized and distributed manner. For example, the verification nodes may be synchronized by exchanging reversible bloom filter lookup tables. The verified transactions are sorted in a defined order so that a common sorting system is used on the transaction verification nodes in the blockchain network to maintain the distributed, decentralized storage of the verified transactions. For example, a canonical sorting system may be used to maintain the distributed, decentralized storage of the verified transactions. It has been found that this is a particularly effective method of ensuring that transaction data on the network is maintained in a consistent manner while maintaining a decentralized, distributed storage.
所述将对应于所述验证交易的数据分配到所述区块链网络以用于挖掘的步骤可包括:准备对应于所述已验证的交易的列表的数据(例如可逆布隆查找表和对应于所述已验证交易列表的任何附带数据,其中所述已验证交易包含在所述区块中)。此外,所述将对应于所述已验证的交易的数据分配到所述区块链网络以用于挖掘的步骤包括:为所述数字资产创建承诺交易,以换取向网络节点提供对应于所述验证交易列表的所述数据。例如,计算散列树、帕特里夏(Patricia)树、或另一类型的基数树,所述承诺交易包括在内。The step of distributing data corresponding to the verified transactions to the blockchain network for mining may include preparing data corresponding to the list of verified transactions (e.g., a reversible Bloom lookup table and any accompanying data corresponding to the list of verified transactions, wherein the verified transactions are included in the block). In addition, the step of distributing data corresponding to the verified transactions to the blockchain network for mining includes creating a commitment transaction for the digital asset in exchange for providing the data corresponding to the list of verified transactions to a network node. For example, a hash tree, a Patricia tree, or another type of radix tree is computed, and the commitment transaction is included.
在通过解决相关联的密码难题(例如散列难题)来分配和挖掘对应于验证交易的数据之后,已挖掘数据被发送回交易验证节点,而不是由网络节点直接存储在区块链上。已挖掘数据可以组装成(大)区块,并存储在专门为存储大量数据而配置的存储实体上和/或分布式存储系统中。如前所述,这使得验证节点能够构造要存储在存储实体上的大区块,无需网络节点构造和存储大区块并通过区块链网络传输此类区块。此外,所述架构允许使用专用于存储大的且不断增长的区块链的大型存储实体。After distributing and mining the data corresponding to the verified transaction by solving an associated cryptographic puzzle (e.g., a hash puzzle), the mined data is sent back to the transaction verification node, rather than being stored directly on the blockchain by the network nodes. The mined data can be assembled into (large) blocks and stored on storage entities and/or distributed storage systems that are specifically configured to store large amounts of data. As previously described, this enables the verification nodes to construct large blocks to be stored on the storage entities, without the need for network nodes to construct and store large blocks and transmit such blocks over the blockchain network. In addition, the described architecture allows the use of large storage entities dedicated to storing large and growing blockchains.
从所述区块链网络接收的所述已挖掘数据可包括对应于所述已验证交易的区块头。所述已挖掘数据还可包括用于数字资产的交易,以换取基于所述已挖掘数据组装所述区块。此外,所述方法可包括在接收所述数字资产之前等待与最小数量的所述区块相关联的时间段t的要求。这提供了用于提供验证节点的激励方案。在接收数字资产之前需要一个最短的时间,激发网络节点将骨架区块(包括支付)传播到一系列节点,并且将激励节点将骨架区块传播到其他节点。The mined data received from the blockchain network may include block headers corresponding to the verified transactions. The mined data may also include transactions for digital assets in exchange for assembling the blocks based on the mined data. In addition, the method may include a requirement to wait for a time period t associated with a minimum number of blocks before receiving the digital assets. This provides an incentive scheme for providing verification nodes. A minimum time is required before receiving digital assets, network nodes are incentivized to propagate skeleton blocks (including payments) to a series of nodes, and nodes are incentivized to propagate skeleton blocks to other nodes.
基于所述已挖掘数据来组装所述区块的步骤可涉及组装大区块,每个区块具有例如至少2、4、6、8、10、50、100、500、1000或10000兆字节的大小。尽管上限会随着时间增加,但可以指定1PB的额定上限值。每个区块可包括例如至少5000、10000、500000、100000、500000或1000000个交易。尽管上限会随着时间增加,但可以指定每个区块1012个交易的额定上限值。如前所述,本文所述的方法、节点和区块链网络架构使大区块能够被构造和存储在存储实体上,无需网络节点构造和存储大量交易。这使得系统能够应对大幅提高的交易速率。The step of assembling the blocks based on the mined data may involve assembling large blocks, each block having, for example, a size of at least 2, 4, 6, 8, 10, 50, 100, 500, 1000, or 10,000 megabytes. Although the upper limit will increase over time, a nominal upper limit value of 1 PB may be specified. Each block may include, for example, at least 5,000, 10,000, 500,000, 100,000, 500,000, or 1,000,000 transactions. Although the upper limit will increase over time, a nominal upper limit value of 10 12 transactions per block may be specified. As previously described, the methods, nodes, and blockchain network architectures described herein enable large blocks to be constructed and stored on storage entities without the need for network nodes to construct and store a large number of transactions. This enables the system to cope with significantly increased transaction rates.
在本文所述的方法中,可以将区块修改为包括包含由网络节点提供的随机数的区块头。即,交易验证节点可以用于处理区块,所述区块包括区块头,所述区块头包含由网络节点在从区块链网络接收已解决的交易时提供的随机数。这构成了对区块头的更改,因此网络节点可以选择或随机生成一个插入区块头的数字。这有助于确保即使许多网络节点选择了同一交易列表,所述网络节点在尝试挖掘相同区块时也不会相互竞争。In the methods described herein, a block may be modified to include a block header that includes a random number provided by a network node. That is, a transaction verification node may be used to process a block that includes a block header that includes a random number provided by a network node when receiving a resolved transaction from a blockchain network. This constitutes a change to the block header, so that the network node may select or randomly generate a number to be inserted into the block header. This helps ensure that even if many network nodes select the same transaction list, the network nodes do not compete with each other when attempting to mine the same block.
用于存储前述的数据的大区块的存储实体可以在所述区块链网络上的多个交易验证节点之间共享,所述多个交易验证节点在所述区块链网络上形成超级节点,其中,所述共享存储实体是公共存储节点、分布式存储或两者的组合。这种架构使得在区块链网络上形成一个超级节点,并允许提供专用存储设施来存储区块链和服务区块链网络。The storage entity for storing the aforementioned large blocks of data can be shared among multiple transaction verification nodes on the blockchain network, and the multiple transaction verification nodes form a super node on the blockchain network, wherein the shared storage entity is a public storage node, distributed storage, or a combination of the two. This architecture enables the formation of a super node on the blockchain network and allows the provision of dedicated storage facilities to store blockchains and serve blockchain networks.
鉴于上述内容,还提供了一种区块链网络的超级节点,所述超级节点包括:In view of the above, a super node of a blockchain network is also provided, and the super node includes:
如前所述的多个验证节点;和A plurality of validating nodes as previously described; and
用于存储所述区块链的共享存储实体,a shared storage entity for storing said blockchain,
其中,所述共享存储实体是公共存储节点、分布式存储或两者的组合,和Wherein, the shared storage entity is a public storage node, a distributed storage or a combination of the two, and
其中,由所述多个节点组装的区块被发送到并存储在所述共享存储实体,由此所述共享存储实体维护所述区块链。The blocks assembled by the multiple nodes are sent to and stored in the shared storage entity, whereby the shared storage entity maintains the blockchain.
这种架构更适合于处理实现期望的交易速率增加所需的大区块大小,这是本文描述的方法和配置的目的。例如,共享存储实体可配置为具有至少100G的存储容量,并且更优选地具有至少1、10、100或1000GB的存储容量。虽然上限会随着时间而增加,但可以指定106TB甚至106YB的额定上限值。This architecture is better suited to handle the large block sizes required to achieve the desired increase in transaction rates, which is the purpose of the methods and configurations described herein. For example, the shared storage entity may be configured to have a storage capacity of at least 100G, and more preferably at least 1, 10, 100, or 1000GB. Although the upper limit will increase over time, a nominal upper limit value of 10 6 TB or even 10 6 YB may be specified.
就总体网络架构而言,可以提供包括多个这种超级节点的区块链网络。所述超级节点可以连接(但不重叠)在所述区块链网络上,每个所述超级节点的共享存储实体用于存储所述区块链的副本。超级节点实际上包括一组节点,这些节点形成了用作超级节点的池。为了保持区块链的分布式性质,应该有利地有一定数量的这样的超级节点(例如,至少10、50、100或1000个,并且可选地小于100,000,000个)。In terms of the overall network architecture, a blockchain network comprising a plurality of such supernodes may be provided. The supernodes may be connected (but not overlapping) on the blockchain network, and a shared storage entity of each supernode is used to store a copy of the blockchain. A supernode actually comprises a group of nodes that form a pool that serves as a supernode. In order to maintain the distributed nature of the blockchain, there should advantageously be a certain number of such supernodes (e.g., at least 10, 50, 100, or 1000, and optionally less than 100,000,000).
布隆过滤器和可逆布隆查找表(IBLT)Bloom Filter and Invertible Bloom Lookup Table (IBLT)
在本节中,我们总结了所谓的布隆过滤器的属性以及对这些过滤器的扩展,称为可逆布隆查找表。In this section, we summarize the properties of so-called Bloom filters and an extension of these filters called reversible Bloom lookup tables.
最简单的形式是布隆过滤器是一个阵列。所述阵列有两个与其相关联的参数M和k。M是所述阵列中的位数,而k是不同散列函数Hk的数量,因此In its simplest form, a Bloom filter is an array. The array has two parameters M and k associated with it. M is the number of bits in the array, and k is the number of different hash functions H k , so
其中S16是十六进制字符串的空间,散列函数作用于所述空间。为了确定交易Tx0是否属于布隆过滤器所针对的集合,我们需要计算H1(Tx0)…Hk(Tx0),然后检查阵列中相应的位是否设置为1。图9示出了创建布隆过滤器的工作流程。Where S 16 is the space of hexadecimal strings on which the hash function is applied. To determine whether transaction Tx 0 belongs to the set targeted by the Bloom filter, we need to calculate H1(Tx 0 )…Hk(Tx 0 ) and then check whether the corresponding bit in the array is set to 1. Figure 9 shows the workflow for creating a Bloom filter.
如果一个或多个为否,则Tx0绝对不在查询的集合中。但是,布隆过滤器确实允许误报。这是因为散列函数将位更改为1的概率为p=1/|size of array|=1/M。因此,没有使用所谓的给定散列函数 将位设置为1。If one or more are no, then Tx 0 is definitely not in the queried set. However, Bloom filters do allow for false positives. This is because the probability that the hash function changes a bit to 1 is p = 1/|size of array| = 1/M. Therefore, there is no so-called given hash function used. Set the bit to 1.
因此,如果有k个散列函数,则给定位不被设置为1的概率为Therefore, if there are k hash functions, the probability that a given bit is not set to 1 is
如果需要插入n个元素,则所述概率变成If n elements need to be inserted, the probability becomes
布隆过滤器的一个明显缺点是它既不跟踪也不保持任何特定的顺序。很显然,如果我们希望维护要过滤的项目的索引,则需要扩展过滤器的功能。这就是可逆布隆过滤器(IBFs)和可逆布隆查找表(IBLTs)的作用。An obvious drawback of a Bloom filter is that it neither tracks nor maintains any particular order. Clearly, if we wish to maintain an index of the items being filtered, we need to extend the functionality of the filter. This is where reversible Bloom filters (IBFs) and reversible Bloom lookup tables (IBLTs) come into play.
不同于只激活阵列中的位,密钥的异或和、散列值(像以前一样)和总计数器存储在IBF的每个字段中。所述过程如图10所示,图10示出了说明交易如何在IBF/IBLT中编码的工作流程。Instead of just activating bits in the array, the XOR sum of the key, the hash value (as before) and the total counter is stored in each field of the IBF. The process is illustrated in Figure 10, which shows a workflow illustrating how a transaction is encoded in an IBF/IBLT.
应用application
我们假设有两个节点N1和N2,分别维护存储池m1和m2。每个存储池包含来自十六进制字符串S16的元素。我们进一步假设存储池遵循由安德烈森(Andresen)提出并且已在本说明书前文概述的排序惯例。We assume that there are two nodes N1 and N2 , maintaining pools m1 and m2 respectively. Each pool contains elements from the hexadecimal string S 16. We further assume that the pools follow the ordering convention proposed by Andresen and outlined earlier in this specification.
现在,N1发送m1给N2,N2现在可以通过两种方式处理集合对帐:Now, N1 sends m1 to N2 . N2 can now handle the collection reconciliation in two ways:
1)通过△m=m2-m1计算集合差(见(David Eppstein,2011),(MichaelT.Goodrich,2011))1) Calculate the set difference by △m=m 2 -m 1 (see (David Eppstein, 2011), (Michael T. Goodrich, 2011))
2)迭代m2中的交易,检查所述交易是否存在于的存储池中2) Iterate the transactions in m2 and check whether the transaction exists in the storage pool
我们看出IBLT至少可以用于两个目的:We see that IBLT can be used for at least two purposes:
1)让节点根据其存储池中已经存在的交易组装已挖掘的区块,帮助识别和检索其没有的区块。1) Let nodes assemble mined blocks based on transactions already in their storage pool, helping to identify and retrieve blocks they do not have.
2)在属于不同节点的存储池之间保持一定级别的同步。2) Maintain a certain level of synchronization between storage pools belonging to different nodes.
在分布式存储池上修剪Pruning on a distributed storage pool
如上所述,区块链技术的未来至少部分依赖于能够增加每秒已发行交易量的新架构的提议。这种新架构的一个要求是取消对区块大小限制的当前限制。在这种情况下,本地存储池无法提供足够的存储能力,因此需要设计分布式存储池(DMP)的新模型。用于管理分布式存储池的修改后的架构提供了以下功能:As mentioned above, the future of blockchain technology relies, at least in part, on the proposal of a new architecture that can increase the number of issued transactions per second. One requirement of this new architecture is to remove the current restrictions on block size limits. In this case, local storage pools cannot provide sufficient storage capacity, so a new model of distributed storage pools (DMPs) needs to be designed. The modified architecture for managing distributed storage pools provides the following capabilities:
对存储在分布式存储池中的交易的有效性的全局共识;Global consensus on the validity of transactions stored in a distributed storage pool;
存储信息的一致性和完整性;Consistency and integrity of stored information;
快速读写操作;和Fast read and write operations; and
分布式存储池中抵御路由和存储攻击的安全机制。Security mechanisms against routing and storage attacks in distributed storage pools.
一旦交易被包括在新挖掘的区块中,DMP的相应副本可不再需要存储。在本节中,我们通过提供从DMPs中安全删除交易的协议来扩展先前的架构。Once a transaction is included in a newly mined block, the corresponding copy of the DMP no longer needs to be stored. In this section, we extend the previous framework by providing a protocol for securely deleting transactions from DMPs.
我们提供了DMP架构和分布式散列表操作的概要。我们还介绍了一种新的机制来达成分布式共识,以修剪DMP内部的交易。此外,还介绍了解决DMP内部数据不一致的不同政策,包括:We provide an overview of the DMP architecture and distributed hash table operations. We also introduce a new mechanism to reach a distributed consensus to prune transactions inside the DMP. In addition, we introduce different policies for resolving data inconsistencies inside the DMP, including:
交易可以标记为已移除,但仍然本地存储在存储池节点中;Transactions can be marked as removed but still stored locally in the storage pool node;
同一交易可以在一个存储池节点中标记为已移除,并且在另一个存储池节点中仍然可用;The same transaction can be marked as removed in one storage pool node and still be available in another storage pool node;
区块链重组可能需要先前从存储池中移除的交易的存储。A blockchain reorganization may require storage of transactions that were previously removed from the storage pool.
单个节点可以视为提供分布式存储池(DMP)的节点集群。提出的DMP依赖于分布式散列表结构,所述结构部署在由诚实节点之间的个体信任关系组成的网络中。节点的连接集合建立在路由和应用程序级信息的集合之上。信任证书的发布或存储不涉及任何中央机构:每个节点维护其自己的受信对等方的记录。A single node can be viewed as a cluster of nodes providing a distributed storage pool (DMP). The proposed DMP relies on a distributed hash table structure deployed in a network consisting of individual trust relationships between honest nodes. The connected set of nodes is built on a collection of routing and application-level information. No central authority is involved in the issuance or storage of trust certificates: each node maintains its own record of trusted peers.
恶意实体需要加入网络来执行某些形式的攻击。例如,女巫攻击(Sybil Attacks)的重点是创建大量的虚假身份以破坏系统[John R.Douceur,The Sybil Attack,FirstInternational Workshop on Peer-to-Peer Systems,Springer-Verlag,London,UK,2002]。连接到网络的女巫节点可能会中断或延迟合法路由查询,并传播错误的路由信息。本文描述的分布式散列表路由协议具有子线性时间和空间复杂性,并且基于以下假设:Malicious entities need to join the network to perform some form of attack. For example, Sybil Attacks focus on creating a large number of false identities to disrupt the system [John R. Douceur, The Sybil Attack, First International Workshop on Peer-to-Peer Systems, Springer-Verlag, London, UK, 2002]. Sybil nodes connected to the network may interrupt or delay legitimate routing queries and propagate incorrect routing information. The distributed hash table routing protocol described in this paper has sublinear time and space complexity and is based on the following assumptions:
节点不能区分诚实和恶意节点;Nodes cannot distinguish between honest and malicious nodes;
大多数诚实节点与其他诚实节点有更多的连接;和Most honest nodes have more connections with other honest nodes; and
每个节点负责存储关于密钥空间分区的信息。Each node is responsible for storing information about key space partitions.
分布式散列表协议提供两个主要功能:The distributed hash table protocol provides two main functions:
更新()用于构建路由表,并在每个分布式散列表节点插入密钥;和update() is used to build the routing table and insert the key in each distributed hash table node; and
DHT节点x使用GET(x,k)来查找由密钥k表示的目标密钥值记录。A DHT node x uses GET(x, k) to look up the target key-value record represented by key k.
每个DHT节点x通常由公钥Px和当前的IP地址addrx来标识。该信息与记录signx(Px,addrx)安全链接,其中signx()表示带有相应私钥的签名。节点ID使用签名记录存储在DHT中。当节点改变位置或接收到新的IP地址时,必须将新记录[Px,addrx]存储到DHT中。恶意节点可能插入错误的密钥-值对(Key-Value Pair)。GET方法负责验证返回的密钥-值记录中的签名。Each DHT node x is typically identified by a public key P x and the current IP address addr x . This information is securely linked to the record sign x (P x , addr x ), where sign x () represents a signature with the corresponding private key. Node IDs are stored in the DHT using signed records. When a node changes location or receives a new IP address, a new record [P x , addr x ] must be stored in the DHT. Malicious nodes may insert incorrect key-value pairs. The GET method is responsible for verifying the signature in the returned key-value record.
数据路由网络可以用无向图表示。恶意边缘将恶意节点连接到诚实节点,而诚实边缘连接两个诚实节点。虽然创建任意数量的女巫身份对于恶意实体来说在计算上是可以承受的,但是创建恶意边缘需要说服诚实节点建立到女巫控制的身份之一的受信链接。如果没有稀疏切割将诚实区域分成两部分,则从诚实节点开始的短随机行走可能会在诚实节点结束。The data routing network can be represented as an undirected graph. A malicious edge connects a malicious node to an honest node, while an honest edge connects two honest nodes. While creating an arbitrary number of Sybil identities is computationally affordable for a malicious entity, creating a malicious edge requires convincing an honest node to establish a trusted link to one of the Sybil-controlled identities. If there is no sparse cut that divides the honest region into two, a short random walk starting from an honest node may end at an honest node.
可以通过在网络中发起独立的随机行走来构建节点的路由表。该节点将从每次行走的接收节点收集一个或多个随机密钥-值记录。该路由信息在查找过程中使用:如果本地表不包含所述密钥,则查找消息被多播到节点集合。一个或多个接收节点可能本地存储了查询的密钥-值记录。没有发送对其他节点表的直接请求。因此,恶意节点不能任意增加远程表中错误条目的数量。A node's routing table can be built by initiating independent random walks in the network. The node will collect one or more random key-value records from the receiving nodes on each walk. This routing information is used in the lookup process: if the local table does not contain the key in question, the lookup message is multicast to the set of nodes. One or more of the receiving nodes may have the queried key-value record stored locally. No direct requests to other nodes' tables are sent. Therefore, a malicious node cannot arbitrarily increase the number of incorrect entries in the remote table.
密钥不使用确定性函数(例如散列)存储在共享空间中,以防止恶意节点强行执行期望的输出,并在两个诚实密钥之间插入错误的密钥。因此,将不会定义测量两个密钥之间距离的功能。每个节点x构建长距离路由表,所述表包含指向ID均匀分布在密钥空间中的其他节点的指针。通过发起随机行走和从结束节点收集随机ID来存储指针。短距离路由表包含密钥-值记录。根据预定义的顺序,这些密钥最接近节点的ID。The keys are not stored in a shared space using deterministic functions (such as hashing) to prevent malicious nodes from brute-forcing the expected output and inserting a false key between two honest keys. Therefore, no function for measuring the distance between two keys will be defined. Each node x builds a long-distance routing table that contains pointers to other nodes whose IDs are evenly distributed in the key space. Pointers are stored by initiating random walks and collecting random IDs from the end nodes. The short-distance routing table contains key-value records. These keys are closest to the IDs of the nodes according to a predefined order.
路由结构能够管理:(a)节点故障,即路由表中的冗余提供了检索密钥值的替代路径;(b)密钥改变,即添加或删除密钥导致DHT空间中密钥分配和长距离指针分配之间的不一致;和(c)网络连接的变化,即只要没有稀疏切割分割诚实网络并且没有端点变得恶意,则添加或移除受信连接不会影响路由性能。新密钥的同步和可用性通过定期更新(UPDATE)调用来提供。The routing fabric is able to manage: (a) node failures, i.e., redundancy in the routing table provides alternative paths for retrieving key values; (b) key changes, i.e., adding or removing keys causes inconsistencies between key distribution and long-distance pointer distribution in the DHT space; and (c) changes in network connectivity, i.e., adding or removing trusted connections does not affect routing performance as long as no sparse cuts partition the honest network and no endpoints become malicious. Synchronization and availability of new keys is provided through periodic UPDATE calls.
受信连接的概念对于在DHT架构中提供安全性和完整性至关重要。可以使用两种不同的机制在网络中创建新的边缘。The concept of trusted connections is critical to providing security and integrity in the DHT architecture. New edges can be created in the network using two different mechanisms.
主观联系建立在对等体之间的社会或职业关系上:例如,全球或当地知名实体的友谊、合约和信任。例如,非营利组织、研究机构、政府实体以及签署特定协议的私营公司都可以成为受信关系。Subjective ties are based on social or professional relationships between peers: for example, friendship, contracts, and trust with globally or locally known entities. For example, nonprofit organizations, research institutions, government entities, and private companies that sign a specific agreement can all be trusted relationships.
传递连接基于逻辑属性和信任度,以增加网络上随机路径的数量。逐跳(Hop-by-Hop)行走中的随机性增加,使得恶意节点更难利用恶意边缘的漏洞。可以在对等体之间交换签名消息,以了解其他节点之间的受信连接。节点可以决定为其受信连接分配不同的权重,以便调整在随机行走中选择单个跳的概率,或者初始化新的可传递连接。每个节点负责自己的权重。诚实节点将根据其对等节点的路由行为调整其连接的权重:如果密钥应落入其短距离路由表中,则节点可能无法提供有效的密钥-值记录。因此,可以组织新的随机行走通过弱边缘,恶意节点的影响将随着时间的推移而降低。Transitive connections are based on logical properties and trust to increase the number of random paths on the network. The increased randomness in the hop-by-hop walks makes it harder for malicious nodes to exploit vulnerabilities in malicious edges. Signed messages can be exchanged between peers to learn about trusted connections between other nodes. Nodes can decide to assign different weights to their trusted connections in order to adjust the probability of selecting a single hop in a random walk, or to initialize new transitive connections. Each node is responsible for its own weight. Honest nodes will adjust the weight of their connections based on the routing behavior of their peers: if the key should fall into its short-distance routing table, the node may not be able to provide a valid key-value record. Therefore, new random walks can be organized through weak edges, and the influence of malicious nodes will decrease over time.
DMP功能由专用节点的集群提供。在集群中,验证者节点收集并验证新的传入交易,而存储池节点负责持久存储已验证的交易。图11示出了具有验证者节点v和存储池节点s的存储池集群的设计。这两种类型节点的功能可以由相同的物理实体提供,也可以嵌入不同的实体中。The DMP functionality is provided by a cluster of dedicated nodes. In the cluster, the validator nodes collect and verify new incoming transactions, while the storage pool nodes are responsible for persistent storage of verified transactions. Figure 11 shows the design of a storage pool cluster with validator nodes v and storage pool nodes s. The functionality of these two types of nodes can be provided by the same physical entity or embedded in different entities.
DMP提供两个基本操作:存储和检索已验证的交易。给定交易ti,标识符id(ti)可以分配为idi=H(ti),其中H代表散列函数。标识符将在DMP用作密钥。使用特定的多播地址,可以从群集中的多个验证者接收交易。然后,每个验证者将独立地验证该交易。然而,底层DHT结构没有在密钥空间中嵌入交易ID来防止密钥群集攻击。因此,交易可以存储在DMP的随机节点中。对于给定的交易或交易集合,验证者节点可以向随机存储池节点发送R存储(RSTORE)消息请求,其中R是数据复制因子。DMP provides two basic operations: storing and retrieving verified transactions. Given a transaction t i , an identifier id(t i ) can be assigned as id i =H(t i ), where H represents a hash function. The identifier will be used as a key in the DMP. Using a specific multicast address, transactions can be received from multiple validators in the cluster. Each validator will then verify the transaction independently. However, the underlying DHT structure does not embed transaction IDs in the key space to prevent key cluster attacks. Therefore, transactions can be stored in random nodes of the DMP. For a given transaction or set of transactions, the validator node can send an R storage (RSTORE) message request to a random storage pool node, where R is the data replication factor.
假设N个验证者将独立验证交易ti。每个验证者v都维护称为VDB的本地数据库。数据库的每个条目都包含交易idi的标识符和用于验证的二进制决策。每个验证者将根据本地决定向DMP发送存储(STORE)(ti,idi)或拒绝(REJECT)(idi)消息Assume that N validators will independently verify transaction t i . Each validator v maintains a local database called V DB . Each entry of the database contains an identifier of transaction id i and a binary decision for verification. Each validator will send a STORE (t i , id i ) or REJECT (id i ) message to the DMP based on the local decision.
只有当接收到N/2+1存储消息时,每个存储池节点s才会存储ti。或者,一旦节点接收到第一存储消息,它激活定时器来接收到达定额所需的N/2更多STORE消息。如果超时且未收到足够的确认,则交易将被丢弃。每个存储池节点sm还将保留ti的接收确认的数量Ni,m>N/2+1。Each storage pool node s will store ti only if it receives N/2+1 STORE messages. Alternatively, once a node receives the first STORE message, it activates a timer to receive N/2 more STORE messages required to reach the quota. If it times out and does not receive enough confirmations, the transaction will be discarded. Each storage pool node sm will also keep the number of received confirmations of ti, N i,m > N/2+1.
检索已验证的交易ti需要广播消息查询(QUERY)(idi)。负责存储ti的存储池节点将向查询节点发送消息数据(DATA)(ti)。如果需要M个存储池节点来存储ti,查询节点应该至少接收M/2+1个数据消息,以考虑所存储的交易的一致性。此外,查询节点可以用有效性请求(VALIDITY REQ)(ti)消息询问N/2+1个随机验证者,以根据存储在VDB的信息评估ti的有效性。Retrieving a verified transaction ti requires broadcasting the message QUERY(id i ). The storage pool node responsible for storing ti will send the message DATA(t i ) to the query node. If M storage pool nodes are required to store ti , the query node should receive at least M/2+1 data messages to consider the consistency of the stored transactions. In addition, the query node can query N/2+1 random validators with a VALIDITY REQ(t i ) message to evaluate the validity of ti based on the information stored in V DB .
用于管理不断增加的交易活动的可扩展体系结构要求使用大量数据操作的存储基础架构。例如,10K txn/s的交易速率和1KB的交易平均大小要求每月存储约27TB的区块。A scalable architecture for managing increasing transaction activity requires a storage infrastructure that operates with large amounts of data. For example, a transaction rate of 10K txn/s and an average transaction size of 1KB requires storing approximately 27TB of blocks per month.
在M网络集群中,提出了两种不同的存储体系结构(或它们的组合)。第一种体系结构适用于拥有和维护多个验证节点的较大实体,这些节点都可以访问集中式存储设施。相比之下,完全去中心化的体系结构适合具有足够存储容量、希望加入共享和分布式存储池的单个节点。In the M Network cluster, two different storage architectures (or their combination) are proposed. The first architecture is suitable for larger entities that own and maintain multiple verification nodes, all of which have access to centralized storage facilities. In contrast, the fully decentralized architecture is suitable for single nodes with sufficient storage capacity that wish to join a shared and distributed storage pool.
在下文中,我们使用以下术语来表示交易相关性:In the following, we use the following terms to represent transaction dependencies:
交易可以花费前一个称为父(Parent)交易的输出;A transaction can spend the output of a previous transaction called the Parent transaction;
交易可以为称为子(Child)交易的后续交易创建输出。Transactions can create outputs for subsequent transactions called child transactions.
可以创建交易相关性或交易链来表示复杂的交易工作流程,该工作流程需要在父之前添加子。当交易链通过网络传输时,数据到达顺序可能与数据传输顺序不匹配。在这种情况下,接收节点使用孤儿交易池(OrphanTransaction Pool)来存储引用未知父交易的交易。一旦知道了父,引用所述父创建的UTXO的任何孤儿都会从孤立池中释放出来,并递归地重新验证。然后按照正确的顺序重构整个交易链,并将其包括在交易池中。因此,当新交易被添加到存储池时,它没有存储池中的子,因为这些子将是孤儿。Transaction dependencies or chains of transactions can be created to represent complex transaction workflows that require children to be added before parents. When a transaction chain is transmitted over the network, the order in which data arrives may not match the order in which data is transmitted. In this case, the receiving node uses an OrphanTransaction Pool to store transactions that reference unknown parent transactions. Once the parent is known, any orphans that reference UTXO created by said parent are released from the Orphan Pool and recursively revalidated. The entire transaction chain is then reconstructed in the correct order and included in the transaction pool. Therefore, when a new transaction is added to the storage pool, it has no children in the storage pool because those children will be orphans.
为了防止拒绝服务攻击(Denial-of-Service Attack),存储在存储器中的孤儿交易数量受到限制。如果池中的孤儿交易数量超过了允许的最大值,将从池中逐出随机选择的孤儿交易,直到池的大小回到限制范围内。To prevent Denial-of-Service attacks, the number of orphan transactions stored in memory is limited. If the number of orphan transactions in the pool exceeds the maximum allowed, randomly selected orphan transactions will be evicted from the pool until the pool size returns to within the limit.
本地存储池包含与节点对区块链的视角一致的交易集合。出于以下原因之一,可以从本地存储池中删除交易:The local storage pool contains a collection of transactions that is consistent with the node's view of the blockchain. Transactions can be removed from the local storage pool for one of the following reasons:
已挖掘区块中的交易发布。验证新区块时,其交易将从存储池中移除。Transactions in mined blocks are published. When a new block is verified, its transactions are removed from the storage pool.
区块链重组(reorg)。如果区块与区块链断开连接,则其交易将移回存储池。Blockchain reorganization (reorg). If a block is disconnected from the blockchain, its transactions are moved back to the storage pool.
与区块内交易冲突(双重花费)(Double Spending)。验证新区块时,与该区块中的交易冲突的所有交易及其所有相关关系都将从存储池中移除。Conflict with transactions in the block (Double Spending). When validating a new block, all transactions that conflict with transactions in that block and all their related relationships will be removed from the storage pool.
此外,根据本地存储池的配置,可以考虑以下其他情况:Additionally, depending on the configuration of the local storage pool, the following additional scenarios may be considered:
手动修剪;Manual pruning;
期满;和expiry; and
本地存储大小限制。Local storage size limit.
删除交易及其子交易时,必须在执行实际移除之前计算完整的交易集合,否则存储可能会处于无法检索父交易的不一致状态。标记为要移除的给定交易的所有祖先都需要更新。因此,在更新所有相关交易的状态之前,不能删除链中的中间交易。When deleting a transaction and its children, the complete set of transactions must be computed before performing the actual removal, otherwise the storage may be left in an inconsistent state where parent transactions cannot be retrieved. All ancestors of a given transaction marked for removal need to be updated. Therefore, intermediate transactions in the chain cannot be removed before the state of all dependent transactions has been updated.
在重组的情况下,新交易可能有存储池子交易,导致状态不一致,因为可能有来自断开连接的区块的交易的后代交易。在这种情况下,必须检查存储池中区块内交易的区块外后代。函数子代更新(UpdateForDescendants)用于更新添加到存储池的单个交易的后代,并且可以在存储池中具有子交易。In case of a reorganization, new transactions may have pool child transactions, leading to inconsistent state, as there may be descendant transactions of the transaction from the disconnected block. In this case, the out-of-block descendants of the in-block transaction in the pool must be checked. The function UpdateForDescendants is used to update the descendants of a single transaction added to the pool and can have child transactions in the pool.
如前所述,获胜网络节点将区块骨架发送回验证节点。区块骨架由随机数、可逆布隆过滤器查找表(IBLT)和币库交易组成。基于此,验证者节点可以:As mentioned before, the winning network node sends the block skeleton back to the validator node. The block skeleton consists of a random number, an invertible bloom filter lookup table (IBLT), and a coinbase transaction. Based on this, the validator node can:
1.根据一组特定规则订购交易;1. Ordering transactions according to a specific set of rules;
2.组装新挖掘的区块;2. Assemble newly mined blocks;
3.继续将区块存储在其自己的存储器中;3. Continue to store the block in its own memory;
4.将骨架传播到其他新的全节点。4. Propagate the skeleton to other new full nodes.
因此,验证节点知道新发布的交易。每个验证者节点可以独立地向DMP发送包含交易ID列表的删除消息。验证者只能发送对先前已验证交易(已启用check_validator_send)的删除请求。该信息存储在数据库VDB(验证者数据库)(Validator Database)中。根据该模型,存储池节点可以丢弃从未验证交易(已启用check_validator_rcv)的验证者接收的删除请求。该信息存储在数据库SDB(存储数据库)(Storage Database)中。所述两个check_validator_send和check_validator_rcv选项可以是硬编码的或独立配置的。所述删除消息使用验证者的私钥签名。消息必须包含随机数或时间戳,以避免传播可能影响共识协议的欺诈性副本。Therefore, the verification node is aware of the newly published transactions. Each verifier node can independently send a delete message containing a list of transaction IDs to the DMP. A verifier can only send delete requests for previously verified transactions (check_validator_send is enabled). This information is stored in the database V DB (Validator Database). According to this model, storage pool nodes can discard delete requests received from verifiers who have not verified transactions (check_validator_rcv is enabled). This information is stored in the database S DB (Storage Database). The two check_validator_send and check_validator_rcv options can be hard-coded or independently configured. The delete message is signed with the private key of the verifier. The message must contain a random number or a timestamp to avoid spreading fraudulent copies that may affect the consensus protocol.
图12显示了验证者节点vn(0≤n<N),该节点接收有关新挖掘的区块的更新。验证区块后,验证者发送已发布交易的删除请求到DMP。每个存储池节点sm(0≤m<M)跟踪SDB表上的存储请求和RDB表上的删除请求。如图12所示,每个存储池节点使用新的表RDB(删除数据库)(Removal Database)来跟踪每个已存储交易的删除请求。给定从存储池节点m<M的验证者n<N对交易ti的删除请求,则本地RDB(m)表将包含布尔rmn值。例如,如果N=100,并且每个存储池节点每10分钟存储10M交易3天,则RDB(m)的大小可以限制为:100·107·3·24·6=432GB。请注意,该数字代表了极不可能的最坏情况,即过去3天本地存储的所有交易都尚未得到确认,并且每个表条目都需要1个字节。至少小一个或两个数量级(例如,大约4GB)的表格大小可能代表一种更现实的情况。但是,由于存储池节点具有所需的高存储能力,因此我们不对本地表的最大大小施加任何限制。Figure 12 shows a validator node v n (0≤n<N) that receives updates about newly mined blocks. After validating a block, the validator sends a removal request for the published transaction to the DMP. Each storage pool node s m (0≤m<M) tracks storage requests on the S DB table and removal requests on the R DB table. As shown in Figure 12, each storage pool node uses a new table R DB (Removal Database) to track removal requests for each stored transaction. Given a removal request for transaction ti from a validator n<N of a storage pool node m<M, the local R DB (m) table will contain a Boolean r mn value. For example, if N = 100, and each storage pool node stores 10M transactions every 10 minutes for 3 days, the size of R DB (m) can be limited to: 100·10 7 ·3·24·6=432GB. Note that this number represents the extremely unlikely worst-case scenario, where all transactions stored locally in the past 3 days have not been confirmed and each table entry requires 1 byte. Table sizes at least one or two orders of magnitude smaller (e.g., around 4GB) would likely represent a more realistic situation. However, since storage pool nodes have the required high storage capacity, we do not impose any limits on the maximum size of local tables.
让NMAX>N为可以向群集发送存储或删除消息的验证者的最大数量。根据所选的分布式体系结构,NMAX可能对应于网络中验证者的总数,也可能与特定DMP群集的大小成比例。DMP群集的大小由存储池节点的数量和/或可本地存储的交易总量给出。Let NMAX >N be the maximum number of validators that can send a store or delete message to the cluster. Depending on the chosen distributed architecture, NMAX may correspond to the total number of validators in the network or it may be proportional to the size of a particular DMP cluster. The size of a DMP cluster is given by the number of storage pool nodes and/or the total amount of transactions that can be stored locally.
我们引入了一些标准来确定是否应该删除集群内本地存储池节点sm中存储的交易ti:We introduce some criteria to determine whether a transaction ti stored in a local storage pool node sm within the cluster should be deleted:
至少有N*<NMAX个验证者发送删除请求。验证者实际上可以促进N*,取决于check_validator_send和check_validator_rcv设置。如果设置了一个或两个选项,则可以施加N*≈N(近似值)。如果没有设置选项,则建议使用N*>N,以便达成尽可能高的共识。At least N*<N MAX validators send deletion requests. Validators can actually promote N*, depending on the check_validator_send and check_validator_rcv settings. If one or both options are set, N*≈N (approximately) can be imposed. If no options are set, it is recommended to use N*>N in order to achieve the highest possible consensus.
ti取决于先前移除的交易tj。如果两个交易都存储在sm中,并且tj被安全移除,则ti也可以安全移除(如果达成了删除交易的共识,那么从属交易必须被视为无效,并被标记为已移除)。无需向其他存储池节点发送信号。 ti depends on a previously removed transaction tj . If both transactions are stored in sm , and tj is safely removed, then ti can also be safely removed (if consensus is reached to remove the transaction, the dependent transaction must be considered invalid and marked as removed). No signaling is required to other storage pool nodes.
我们不强制DMP将交易链存储在单个存储池节点中,以防止特定的拒绝服务攻击。因此,由于链中各个交易的状态,存储池节点可能处于不一致的状态。只要需要与交易链相关的数据的节点通过向DMP发出特定的查询请求了解到不一致性,就不会出现问题。例如,节点向DMP请求交易ti。该交易取决于第二交易tj。在向DMP查询第二交易之后,节点发现tj不再被存储。因此,即使仍然存储在DMP的一些存储池节点中,节点也有责任考虑ti不可用。长期的不一致将通过永久修剪来解决。We do not force the DMP to store a chain of transactions in a single storage pool node to prevent specific denial of service attacks. Therefore, a storage pool node may be in an inconsistent state due to the state of individual transactions in the chain. As long as the nodes that need data related to the chain of transactions learn about the inconsistency by issuing specific query requests to the DMP, there will be no problem. For example, a node requests transaction ti from the DMP. This transaction depends on a second transaction tj . After querying the DMP for the second transaction, the node finds out that tj is no longer stored. Therefore, the node is responsible for considering ti unavailable even if it is still stored in some storage pool nodes of the DMP. Long-term inconsistencies will be resolved by permanent pruning.
如果达成共识,交易ti将被本地标记为已移除。但是,出于安全原因,交易可能不会被物理地删除。我们引入了两个标准来确定何时应从sm中物理地删除交易:If consensus is reached, transaction t i will be locally marked as removed. However, for security reasons, the transaction may not be physically deleted. We introduce two criteria to determine when a transaction should be physically removed from s m :
至少有N**≥N*个验证者发送了删除请求。N**的值应该足够高,以考虑修剪共识完全安全。At least N**≥N* validators have sent pruning requests. The value of N** should be high enough to consider pruning consensus fully safe.
自接收到最后一个删除请求后经过了ΔTi>ΔT*的时间量,并且没有转发对ti的进一步数据请求。ΔT*的值应该足够高,以至于可以忽略重组事件的概率。根据6区块确认规则,交易在新挖掘的区块中发布大约1小时后,可以安全地认为已被网络接受。The amount of time ΔT i > ΔT* has passed since the last deletion request was received, and no further data requests for t i have been forwarded. The value of ΔT* should be high enough that the probability of a reorganization event is negligible. According to the 6-block confirmation rule, a transaction can be safely considered accepted by the network approximately 1 hour after it is published in a newly mined block.
然而,根据sm的存储限制,即使不满足上述标准,ti也可以被移除。交易可以按降序ΔTi排序,并选择永久删除。属于链并存储在sm中的交易必须立即删除。无需通知验证者关于交易链的修剪。需要与交易链相关的数据的节点通过向DMP发出特定的查询请求来了解不一致性。However, depending on the storage limit of sm , ti can be removed even if the above criteria are not met. Transactions can be sorted in descending order ΔTi and selected for permanent deletion. Transactions that belong to the chain and are stored in sm must be deleted immediately. There is no need to notify validators about the pruning of the transaction chain. Nodes that need data related to the transaction chain learn about the inconsistency by issuing specific query requests to the DMP.
存储池节点可以收集已标记为已移除的交易的数据请求。接收单个交易的多个数据请求可能有不同的含义:Storage pool nodes can collect data requests for transactions that have been marked as removed. Receiving multiple data requests for a single transaction can have different implications:
保留无用数据的拒绝服务攻击;Denial of service attacks that retain useless data;
区块链重组以及将交易转回DMP的需要。Blockchain reorganization and the need to transfer transactions back to the DMP.
由于请求可能不合法,存储池节点不会因数据请求而采取任何操作。数据请求计数器可用于将已移除的交易标记为恢复的候选。这些候选仍可以被考虑进行物理修剪。在实施物理修剪的优先级策略的情况下,可以将较低的优先级分配给用于恢复的候选交易。The storage pool node does not take any action due to the data request, as the request may not be legitimate. The data request counter can be used to mark removed transactions as candidates for recovery. These candidates can still be considered for physical pruning. In the case of a priority policy for physical pruning, a lower priority can be assigned to candidate transactions for recovery.
标记为已移除但仍在本地存储的交易只有在收到来自验证者的恢复消息时才能被恢复。如果发生链重组,则验证者有责任向DMP发出信号。存储池节点需要收集一定数量的唯一恢复消息,以使交易再次可用。我们建议许多消息作为N、N*和/或N**参数的函数。例如,恢复消息的最小数量可以等于N和N*之间的平均值。Transactions marked as removed but still stored locally can only be recovered if they receive a recovery message from a validator. If a chain reorganization occurs, it is the responsibility of the validator to signal this to the DMP. Storage pool nodes need to collect a certain number of unique recovery messages to make transactions available again. We recommend a number of messages as a function of the N, N*, and/or N** parameters. For example, the minimum number of recovery messages could be equal to the average between N and N*.
表1总结了修剪协议使用的可配置参数。Table 1 summarizes the configurable parameters used by the pruning protocol.
表2:可配置参数。Table 2: Configurable parameters.
管理交易的协议包括以下消息。The protocol governing transactions consists of the following messages.
已接收(ti)。当接收到新的未验证的交易ti时,触发验证者的回调。Received(t i ). The validator callback is triggered when a new unverified transaction t i is received.
存储(ti,idi)。验证者存储有效交易ti和密钥idi的请求。Store (t i , id i ). The verifier stores the request for a valid transaction t i and key id i .
存储(idi)。验证者存储有效交易密钥idi的优化请求。Store (id i ). The validator stores the optimization request for the valid transaction key id i .
查询(idi)。通用节点对具有密钥idi的交易的请求。Query(id i ). A request by a general node for a transaction with key id i .
数据(ti)。存储池节点对交易ti查询请求的回复。Data (t i ). The storage pool node’s response to the query request for transaction t i .
有效性_请求(VALIDITY_REQ)(ti)。通用节点要求重新检查交易ti的有效性。VALIDITY_REQ(t i ). The general node requests to recheck the validity of transaction t i .
有效性_确认(VALIDITY_ACK)(ti)。验证者对交易ti有效性请求的回答。VALIDITY_ACK (t i ). The validator’s response to the validity request for transaction t i .
此处显示的扩展需要以下附加消息。The extensions shown here require the following additional messages.
移除(idi)。验证者请求移除idi标识的交易。Remove(id i ). The validator requests to remove the transaction identified by id i .
恢复(idi)。验证者请求在链重组后恢复idi标识的交易。Restore(id i ). The validator requests that the transaction identified by id i be restored after a chain reorganization.
已移除(idi)。存储池节点对idi标识的已移除交易的查询请求的答复。如果信息仍然可用,则该消息可包含存储池节点为idi标识的交易接收的移除消息数。Removed(id i ). The storage pool node's reply to a query request for the removed transaction identified by id i . If the information is still available, this message may contain the number of removal messages received by the storage pool node for the transaction identified by id i .
图13示出了由idi根据验证者的请求标识的交易的完整状态图。根据从验证者接收的消息的类型(即存储、移除、恢复)和数量(例如,N、N*、N**),交易可以将状态更改为可用、已移除或物理地删除。无法恢复“物理地删除”的交易状态。但是,根据本地文件系统和操作系统提供的功能,数据仍然可以恢复。FIG13 shows a complete state diagram of a transaction identified by id i based on a verifier's request. Depending on the type (i.e., store, remove, restore) and number (e.g., N, N*, N**) of messages received from the verifier, the transaction can change state to available, removed, or physically deleted. It is not possible to restore a transaction state of "physically deleted". However, data may still be recoverable based on the capabilities provided by the local file system and operating system.
应当说明的是,上述实施例说明而非限制本发明,在不脱离本发明的由所附权利要求限定的范围的情况下,本领域技术人员将能够设计出许多替代性实施例。例如,应当理解,用户可以改为使用本文所述的方法和系统来交换其他资源(例如信息、合同)。智能合约本身可以存储在区块链外,也可以存储在一个或多个交易中。It should be noted that the above embodiments illustrate rather than limit the present invention, and those skilled in the art will be able to design many alternative embodiments without departing from the scope of the present invention as defined by the appended claims. For example, it should be understood that users can instead use the methods and systems described herein to exchange other resources (e.g., information, contracts). The smart contract itself can be stored outside the blockchain or in one or more transactions.
在权利要求中,括号中的任何附图标记不应解释为对权利要求的限制。词语“包括(Comprising)”和“包括(Comprises)”等并非在整体上排除其他元件和步骤的存在,尽管这些元件和步骤并没有在任何权利要求或说明书中列出。在本说明书中,“包括(Comprises)”意指“包括(Includes)或由......组成(Consists of)”,“包括(Comprising)”意指“包括(Including)或由......组成(Consisting of)”。元件的单数引用不意味着排除这些元件的复数引用,反之亦然。本发明可以借助包括若干不同元件的硬件,以及借助适当编程的计算机来实施。在列举了若干装置的设备权利要求中,这些装置中的若干个可以由硬件的同一个部件来体现。不争的事实是,在相互不同的从属权利要求中列举了某些方法,并不代表这些方法的结合不能获得有益效果。In the claims, any reference signs in brackets shall not be construed as limiting the claims. The words "comprising" and "comprises" etc. do not exclude the presence of other elements and steps as a whole, even if these elements and steps are not listed in any claim or in the specification. In this specification, "comprising" means "includes or consists of" and "comprising" means "including or consists of". The singular reference of an element does not exclude the plural reference of these elements and vice versa. The present invention may be implemented by means of hardware comprising several different elements and by means of a suitably programmed computer. In a device claim enumerating several means, several of these means may be embodied by the same component of hardware. The indisputable fact that certain methods are enumerated in mutually different dependent claims does not mean that the combination of these methods cannot achieve beneficial results.
参考资料References
An Integrated World.(n.d.).Retrieved fromhttps://www.anintegratedworld.com/whats-in-a-block/An Integrated World.(n.d.).Retrieved fromhttps://www.anintegratedworld.com/whats-in-a-block/
David Eppstein,M.T.(2011).What's the Difference?EfficientSetReconciliation without Prior Context.ACM.David Eppstein,M.T.(2011).What's the Difference? EfficientSetReconciliation without Prior Context.ACM.
maidsafe.(n.d.).Retrieved from github.com:https://github.com/maidsafe/Whitepapersmaidsafe.(n.d.).Retrieved from github.com:https://github.com/maidsafe/Whitepapers
Michael T.Goodrich,M.M.(2011).Invertible Bloom LookupTables.Communication,Control,and Computing(Allerton),2011 49th AnnualAllertonConference on.Michael T.Goodrich,M.M.(2011).Invertible Bloom LookupTables.Communication,Control,and Computing(Allerton),2011 49th AnnualAllertonConference on.
NebulousLabs.(n.d.).Retrieved from github.com:https://github.com/NebulousLabs/SiaNebulousLabs.(n.d.).Retrieved from github.com:https://github.com/NebulousLabs/Sia
O(1)Block Propagation.(n.d.).Retrieved from github.com:https://gist.github.com/gavinandresen/e20c3b5a1d4b97f79ac2O(1)Block Propagation.(n.d.).Retrieved from github.com:https://gist.github.com/gavinandresen/e20c3b5a1d4b97f79ac2
Wikipedia.(n.d.).Retrieved fromhttps://en.wikipedia.org/wiki/Distributed_hash_tableWikipedia.(n.d.).Retrieved fromhttps://en.wikipedia.org/wiki/Distributed_hash_table
Wilkinson et al.(2016,December 15).Retrieved fromhttps://storj.io/storj.pdfWilkinson et al.(2016,December 15).Retrieved fromhttps://storj.io/storj.pdf
John R.Douceur.The Sybil Attack.First International Workshop onPeer-to-Peer Systems.Springer-Verlag,London,UK,2002John R.Douceur.The Sybil Attack.First International Workshop onPeer-to-Peer Systems.Springer-Verlag,London,UK,2002
Claims (28)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411439453.4A CN119441347A (en) | 2017-07-24 | 2018-07-16 | Computer-implemented systems and methods for managing large distributed storage pools in blockchain networks |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1711879.5A GB201711879D0 (en) | 2017-07-24 | 2017-07-24 | Computer-implemented system and method |
GB1711879.5 | 2017-07-24 | ||
PCT/IB2018/055238 WO2019021107A1 (en) | 2017-07-24 | 2018-07-16 | Computer-implemented system and method for managing a large distributed memory pool in a blockchain network |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202411439453.4A Division CN119441347A (en) | 2017-07-24 | 2018-07-16 | Computer-implemented systems and methods for managing large distributed storage pools in blockchain networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110945548A CN110945548A (en) | 2020-03-31 |
CN110945548B true CN110945548B (en) | 2024-11-01 |
Family
ID=59771595
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880049013.4A Active CN110945548B (en) | 2017-07-24 | 2018-07-16 | Computer-implemented system and method for managing large distributed storage pools in a blockchain network |
CN202411439453.4A Pending CN119441347A (en) | 2017-07-24 | 2018-07-16 | Computer-implemented systems and methods for managing large distributed storage pools in blockchain networks |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202411439453.4A Pending CN119441347A (en) | 2017-07-24 | 2018-07-16 | Computer-implemented systems and methods for managing large distributed storage pools in blockchain networks |
Country Status (6)
Country | Link |
---|---|
US (1) | US12346298B2 (en) |
EP (3) | EP4209980B1 (en) |
JP (3) | JP6999023B2 (en) |
CN (2) | CN110945548B (en) |
GB (1) | GB201711879D0 (en) |
WO (1) | WO2019021107A1 (en) |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118967246A (en) * | 2017-12-01 | 2024-11-15 | 快特网络有限公司 | Blockchain communication and sequencing |
EP3496020A1 (en) * | 2017-12-08 | 2019-06-12 | CoreLedger AG | Method for carrying out transactions |
CN111782725A (en) * | 2018-02-27 | 2020-10-16 | 阿里巴巴集团控股有限公司 | Interaction method and device, system and electronic device across blockchain |
CN108805569A (en) | 2018-05-29 | 2018-11-13 | 阿里巴巴集团控股有限公司 | Transaction processing method and device, electronic equipment based on block chain |
CN108881491A (en) * | 2018-08-07 | 2018-11-23 | 长沙拓扑陆川新材料科技有限公司 | It is a kind of for excavating the method and system of the block in block chain |
CN110868434B (en) * | 2018-08-27 | 2022-07-01 | 深圳物缘科技有限公司 | Block chain consensus method and system of multilayer fragment architecture |
ES2812282T3 (en) * | 2018-08-31 | 2021-03-16 | Siemens Ag | Block formation equipment and procedure, node equipment and block confirmation procedure |
US20200160340A1 (en) * | 2018-11-21 | 2020-05-21 | Capital One Services, Llc | Distributed fraud detection system within mesh networks |
US11184446B2 (en) * | 2018-12-05 | 2021-11-23 | Micron Technology, Inc. | Methods and apparatus for incentivizing participation in fog networks |
CN109636388B (en) * | 2018-12-07 | 2024-02-23 | 深圳市智税链科技有限公司 | Data processing method, device, medium and electronic equipment in block chain network |
CA3119039A1 (en) * | 2019-02-04 | 2020-08-13 | Navier, Inc. | Interpreting packet communications |
CN111640012A (en) * | 2019-03-01 | 2020-09-08 | 中国银联股份有限公司 | Block chain transaction tracing method and device |
GB2582978B (en) * | 2019-04-12 | 2022-05-04 | Nchain Holdings Ltd | Methods and devices for propagating blocks in a blockchain network |
CN111768202B (en) * | 2019-04-24 | 2024-06-18 | 北京京东尚科信息技术有限公司 | Payment verification method, payment verification node, full-quantity node and storage medium |
US11482074B1 (en) * | 2019-05-06 | 2022-10-25 | Matthew Dickson | Cryptocurrency transactional systems and methods |
GB2583766A (en) | 2019-05-10 | 2020-11-11 | Nchain Holdings Ltd | Methods and devices for recording work history and proving reputation in a blockchain network |
GB2583770A (en) * | 2019-05-10 | 2020-11-11 | Nchain Holdings Ltd | Methods and devices for registering and authenticating miner identity in a blockchain network |
US11516001B2 (en) | 2019-05-23 | 2022-11-29 | Mastercard International Incorporated | Method and system for generalized provenance solution for blockchain supply chain applications |
US11711202B2 (en) * | 2019-05-29 | 2023-07-25 | International Business Machines Corporation | Committing data to blockchain based on approximate hash verification |
CN112115101B (en) * | 2019-06-20 | 2022-07-22 | 北京大学 | Method and system for determinacy deletion of data in cloud storage |
GB2586865A (en) * | 2019-09-06 | 2021-03-10 | Nchain Holdings Ltd | Methods and Devices for Tracking and Measuring Proof-of-Work Contributions in a Mining Pool |
CN112529572B (en) * | 2019-09-18 | 2025-06-13 | 上海树图区块链研究院 | Transaction forwarding method, system, device and P2P network based on short transaction ID |
CN112565796A (en) * | 2019-09-25 | 2021-03-26 | 北京硬核聚视科技有限公司 | Video content decentralized access method and system |
GB2588138A (en) * | 2019-10-09 | 2021-04-21 | Nchain Holdings Ltd | Methods and devices for secure symbiotic mining |
CN110751475A (en) * | 2019-10-24 | 2020-02-04 | 杭州趣链科技有限公司 | Cross-chain method, system, equipment and storage medium for blockchain transaction |
KR102363271B1 (en) * | 2019-11-06 | 2022-02-14 | 알리페이 (항저우) 인포메이션 테크놀로지 씨오., 엘티디. | Data security of shared blockchain data storage based on error correction codes |
SG10201912999VA (en) * | 2019-12-23 | 2020-09-29 | Islamic Res And Training Institute | Method and System for Transaction Validation in a Distributed Computing System |
IL272861B2 (en) * | 2020-02-23 | 2024-03-01 | Cognyte Tech Israel Ltd | System and method for cryptocurrency networks |
EP3834157B1 (en) | 2020-04-22 | 2023-09-13 | Alipay (Hangzhou) Information Technology Co., Ltd. | Managing transaction requests in ledger systems |
CN111597262B (en) * | 2020-05-14 | 2023-05-02 | 北京众享比特科技有限公司 | A management method and management system for block data in a blockchain |
CN111651521B (en) * | 2020-05-27 | 2023-10-17 | 山大地纬软件股份有限公司 | Electronic contract block chain structure, electronic contract signing device and method |
CN111612471A (en) * | 2020-06-08 | 2020-09-01 | 杭州复杂美科技有限公司 | Block restoring method, equipment and storage medium |
CN111639939A (en) * | 2020-06-08 | 2020-09-08 | 杭州复杂美科技有限公司 | Block restoring method, equipment and storage medium |
WO2022010300A1 (en) * | 2020-07-10 | 2022-01-13 | 주식회사 미디움 | Peer terminal and method for processing block data by peer terminal |
CN112102078B (en) * | 2020-08-07 | 2024-05-21 | 柳州市蓝海数链科技有限公司 | Block chain consensus calculation method, device, computer equipment and storage medium |
CN112100271B (en) * | 2020-09-08 | 2022-07-15 | 四川大学 | A Visualization Method of EOS Consensus Mechanism Utility Based on Workload Rank Differences |
US12111820B2 (en) * | 2020-09-14 | 2024-10-08 | International Business Machines Corporation | Ensuring secure provisioning of blockchain infrastructure |
EP4002786B1 (en) * | 2020-11-11 | 2023-06-21 | Deutsche Post AG | Distributed ledger system |
CN112565368B (en) * | 2020-11-26 | 2023-05-19 | 中国船舶集团有限公司系统工程研究院 | Blockchain-based maritime equipment ad hoc network system, method and medium |
GB2601540A (en) * | 2020-12-04 | 2022-06-08 | Nchain Holdings Ltd | Methods and systems for synchronizing a streamed template to a solved block |
CN112765278B (en) * | 2021-01-28 | 2023-03-24 | 西华大学 | Wireless Internet of things system based on block chain |
WO2022177670A1 (en) * | 2021-02-16 | 2022-08-25 | Mastercard International Incorporated | Method and system for generalized provenance solution for blockchain supply chain applications |
CN112988891B (en) * | 2021-03-11 | 2023-04-21 | 重庆文理学院 | Method and device for storing blockchain ledger, electronic equipment and storage medium |
CN112950211B (en) * | 2021-05-14 | 2021-07-30 | 腾讯科技(深圳)有限公司 | Transaction duplication checking method, device, equipment and medium |
WO2022241571A1 (en) * | 2021-05-21 | 2022-11-24 | Zeu Technologies, Inc. | System and method for the safe custody of private data using blockchain |
GB2608842A (en) * | 2021-07-14 | 2023-01-18 | Nchain Licensing Ag | Blockchain Blocks & Proof-of-existence |
CN113342838B (en) * | 2021-08-06 | 2021-11-09 | 腾讯科技(深圳)有限公司 | Data processing method, device and equipment based on block chain and readable storage medium |
US12277092B2 (en) | 2021-08-13 | 2025-04-15 | Bank Of America Corporation | Isolating and reinstating nodes in a distributed ledger using proof of innocence |
KR102762158B1 (en) * | 2021-12-20 | 2025-02-05 | 주식회사 블로코 | Data management method for blockchain |
CN114390063B (en) * | 2022-02-25 | 2023-09-29 | 蚂蚁区块链科技(上海)有限公司 | Message broadcasting method for blockchain network, blockchain node and blockchain system |
GB2627298A (en) * | 2023-02-20 | 2024-08-21 | Nchain Licensing Ag | Propagating blockchain messages |
CN116567002B (en) * | 2023-05-18 | 2025-07-18 | 东南大学 | Improved Gossip protocol method, device, equipment and medium for incentivizing block forwarding |
LU505736B1 (en) * | 2023-12-08 | 2025-06-10 | Luxembourg Inst Science & Tech List | Blockchain maintenance method |
CN117407467B (en) * | 2023-12-15 | 2024-03-22 | 烟台大学 | Blockchain encoding storage system combining Bloom filter and DHT |
CN119402502A (en) * | 2025-01-02 | 2025-02-07 | 杭州高新区(滨江)区块链与数据安全研究院 | Blockchain transaction cancellation method, device and blockchain transaction system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201605123D0 (en) * | 2016-03-24 | 2016-05-11 | Mount Watatic Ltd | Device, method and system for a distributed ledger |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH113260A (en) * | 1997-06-13 | 1999-01-06 | Hitachi Ltd | Database management method |
US7590236B1 (en) * | 2004-06-04 | 2009-09-15 | Voltage Security, Inc. | Identity-based-encryption system |
US7424499B2 (en) | 2005-01-21 | 2008-09-09 | Microsoft Corporation | Lazy timestamping in transaction time database |
EP2096564B1 (en) * | 2008-02-29 | 2018-08-08 | Euroclear SA/NV | Improvements relating to handling and processing of massive numbers of processing instructions in real time |
US9417977B2 (en) * | 2008-12-31 | 2016-08-16 | Sap Se | Distributed transactional recovery system and method |
JP5269221B1 (en) * | 2012-02-29 | 2013-08-21 | 楽天株式会社 | Information processing apparatus, information processing method, information processing program, and recording medium |
CN103577339B (en) * | 2012-07-27 | 2018-01-30 | 深圳市腾讯计算机系统有限公司 | A kind of date storage method and system |
US9037556B2 (en) * | 2012-12-03 | 2015-05-19 | Vmware, Inc. | Distributed, transactional key-value store |
US8924664B2 (en) | 2012-12-13 | 2014-12-30 | Infinidat Ltd. | Logical object deletion |
AT514141B1 (en) | 2013-04-12 | 2015-08-15 | Blum Gmbh Julius | Drive device for a movable furniture part |
JP2015041146A (en) * | 2013-08-20 | 2015-03-02 | キヤノン株式会社 | Server device, client device, system, information processing method, and program |
US9818092B2 (en) | 2014-06-04 | 2017-11-14 | Antti Pennanen | System and method for executing financial transactions |
US9715353B2 (en) * | 2014-09-16 | 2017-07-25 | International Business Machines Corporation | Data set management |
WO2016128491A1 (en) * | 2015-02-11 | 2016-08-18 | British Telecommunications Public Limited Company | Validating computer resource usage |
US10158492B2 (en) * | 2015-02-25 | 2018-12-18 | Guardtime Ip Holdings Limited | Blockchain-supported device location verification with digital signatures |
US10812274B2 (en) * | 2015-05-07 | 2020-10-20 | Blockstream Corporation | Transferring ledger assets between blockchains via pegged sidechains |
US20160342977A1 (en) | 2015-05-20 | 2016-11-24 | Vennd.io Pty Ltd | Device, method and system for virtual asset transactions |
US20160342989A1 (en) * | 2015-05-21 | 2016-11-24 | Mastercard International Incorporated | Method and system for processing blockchain-based transactions on existing payment networks |
US10075298B2 (en) * | 2015-06-02 | 2018-09-11 | ALTR Solutions, Inc. | Generation of hash values within a blockchain |
EP3317775B1 (en) * | 2015-07-02 | 2022-02-16 | Nasdaq, Inc. | Systems and methods of secure provenance for distributed transaction databases |
US20170017955A1 (en) | 2015-07-14 | 2017-01-19 | Fmr Llc | Point-to-Point Transaction Guidance Apparatuses, Methods and Systems |
JP6452156B2 (en) | 2015-09-03 | 2019-01-16 | 日本電信電話株式会社 | License information management system, user terminal, rights holder terminal, license information management method, and license information management program |
US10521780B1 (en) * | 2015-12-16 | 2019-12-31 | United Services Automobile Association (Usaa) | Blockchain based transaction management |
EP3394818A4 (en) * | 2015-12-21 | 2019-08-14 | Kochava Inc. | AUTOREGULATING TRANSACTION SYSTEM AND ASSOCIATED METHODS |
WO2017109140A1 (en) * | 2015-12-22 | 2017-06-29 | Bigchaindb Gmbh | Decentralized, tamper-resistant, asset-oriented database system and method of recording a transaction |
JP6657972B2 (en) * | 2016-01-08 | 2020-03-04 | 日本電気株式会社 | Load distribution system, load distribution device, load distribution method, and program |
US20170236120A1 (en) * | 2016-02-11 | 2017-08-17 | Oracle International Corporation | Accountability and Trust in Distributed Ledger Systems |
KR101694455B1 (en) * | 2016-03-14 | 2017-01-17 | 주식회사 스트리미 | Method and apparatus for exchanging or remitting blockchain-based virtual currency |
US10198325B2 (en) * | 2016-05-24 | 2019-02-05 | Mastercard International Incorporated | Method and system for desynchronization recovery for permissioned blockchains using bloom filters |
US20170357966A1 (en) * | 2016-06-09 | 2017-12-14 | Mastercard International Incorporated | Method and system for use of a proprietary private blockchain |
US11128603B2 (en) * | 2016-09-30 | 2021-09-21 | Nec Corporation | Method and system for providing a transaction forwarding service in blockchain implementations |
US10360191B2 (en) * | 2016-10-07 | 2019-07-23 | International Business Machines Corporation | Establishing overlay trust consensus for blockchain trust validation system |
US11146535B2 (en) * | 2016-10-12 | 2021-10-12 | Bank Of America Corporation | System for managing a virtual private ledger and distributing workflow of authenticated transactions within a blockchain distributed network |
US10291627B2 (en) * | 2016-10-17 | 2019-05-14 | Arm Ltd. | Blockchain mining using trusted nodes |
CN106506638B (en) | 2016-11-04 | 2020-01-07 | 江苏通付盾科技有限公司 | Block storage method and device in block chain |
US20180130034A1 (en) * | 2016-11-07 | 2018-05-10 | LedgerDomain, LLC | Extended blockchains for event tracking and management |
US10554746B2 (en) * | 2016-11-14 | 2020-02-04 | International Business Machines Corporation | Decentralized immutable storage blockchain configuration |
CN106650494B (en) | 2016-12-16 | 2019-07-16 | 杭州嘉楠耘智信息科技有限公司 | Data processing method and device |
US10257206B2 (en) * | 2016-12-21 | 2019-04-09 | International Business Machines Corporation | Monitoring actions performed by a network of peer devices using a blockchain |
GB201709518D0 (en) * | 2017-06-15 | 2017-08-02 | Nchain Holdings Ltd | Computer-implemented system and method |
EP3468095A1 (en) * | 2017-10-06 | 2019-04-10 | Siemens Aktiengesellschaft | Transaction selection device for selecting blockchain transactions |
-
2017
- 2017-07-24 GB GBGB1711879.5A patent/GB201711879D0/en not_active Ceased
-
2018
- 2018-07-16 EP EP22211987.7A patent/EP4209980B1/en active Active
- 2018-07-16 WO PCT/IB2018/055238 patent/WO2019021107A1/en active IP Right Grant
- 2018-07-16 CN CN201880049013.4A patent/CN110945548B/en active Active
- 2018-07-16 CN CN202411439453.4A patent/CN119441347A/en active Pending
- 2018-07-16 EP EP24164376.6A patent/EP4383639A3/en active Pending
- 2018-07-16 JP JP2020501834A patent/JP6999023B2/en active Active
- 2018-07-16 US US16/633,836 patent/US12346298B2/en active Active
- 2018-07-16 EP EP18755312.8A patent/EP3659086B1/en active Active
-
2021
- 2021-12-21 JP JP2021206728A patent/JP7408619B2/en active Active
-
2023
- 2023-12-20 JP JP2023214345A patent/JP7691480B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201605123D0 (en) * | 2016-03-24 | 2016-05-11 | Mount Watatic Ltd | Device, method and system for a distributed ledger |
Also Published As
Publication number | Publication date |
---|---|
JP6999023B2 (en) | 2022-02-04 |
JP7408619B2 (en) | 2024-01-05 |
WO2019021107A1 (en) | 2019-01-31 |
EP4383639A3 (en) | 2024-07-24 |
JP2024019632A (en) | 2024-02-09 |
GB201711879D0 (en) | 2017-09-06 |
JP2020528607A (en) | 2020-09-24 |
EP3659086A1 (en) | 2020-06-03 |
CN119441347A (en) | 2025-02-14 |
EP4209980B1 (en) | 2024-10-02 |
JP7691480B2 (en) | 2025-06-11 |
CN110945548A (en) | 2020-03-31 |
EP3659086B1 (en) | 2023-08-23 |
JP2022028010A (en) | 2022-02-14 |
US12346298B2 (en) | 2025-07-01 |
EP4383639A2 (en) | 2024-06-12 |
EP4209980A1 (en) | 2023-07-12 |
US20230334036A1 (en) | 2023-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110945548B (en) | Computer-implemented system and method for managing large distributed storage pools in a blockchain network | |
JP7518220B2 (en) | Methods for nodes in a blockchain network | |
JP7477576B2 (en) | Method and system for consistent distributed memory pool in a blockchain network | |
JP2022185070A (en) | Methods and specialized network nodes for fast propagation in blockchain networks | |
JP7703549B2 (en) | Distributed Database | |
CN114556864A (en) | Method and device for safe symbiotic mining | |
Liu et al. | Mainstay: A hybrid protocol ensuring ledger temporality and security | |
CN120387890A (en) | A transaction processing method and system for integrating reinforcement learning with sharded blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |