Systems, methods, and computer program products for preventing miner extractable value (MEV) attacks in blockchain networks
By using multiple summary and proof of work protocols in the blockchain network, the problem of miner extractable value (MEV) attacks is solved, and the fairness and security of transactions are achieved while maintaining the privacy of transaction data.
Patent Information
- Application Number
- CN202380047944.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-22
- Filing Date
- 2023-06-22
- Publication Date
- 2025-02-18
AI Technical Summary
Miners’ withdrawable value (MEV) attacks in the blockchain network lead to unfair transactions, and miners increase returns through means such as preemptive transactions, which damages the fairness and security of the blockchain.
By using multiple digests in the blockchain network, transaction requests are transmitted to multiple mining nodes, and block data is generated based on the Proof of Work protocol to ensure the privacy and fairness of transaction data.
It effectively prevents MEV attacks, ensures the fairness of transactions and the security of blockchain, while allowing certain aspects of transaction data to remain private.
Smart Images

Figure CN119487786A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of U.S. Provisional Patent Application No. 63 / 354,301, filed on June 22, 2022, the disclosure of which is incorporated herein by reference in its entirety. Technical Field
[0003] The present disclosure relates generally to blockchain networks and, in non-limiting embodiments, to systems, methods, and computer program products for preventing miner extractable value (MEV) attacks in blockchain networks. Background Art
[0004] In a blockchain network operating under a proof-of-work protocol, when a transaction requester wants to publish a transaction to the blockchain, they send it to a mining node's memory pool (e.g., a "mempool"). The mining node selects transactions from the mempool, assembles them into blocks, and then performs proof of work.
[0005] Mining nodes can operate to maximize the MEV from processing transaction requests into blocks. In some examples, colluding miner nodes can launch a "MEV attack" to increase their earnings, including "front-running" (e.g., using bots to bid higher "gas fees") or copying arbitrage transactions with the mining node as the recipient (rather than the original transaction requester). Summary of the invention
[0006] According to non-limiting embodiments or aspects, a method is provided, comprising: transmitting, using at least one processor, a plurality of digests to each of a plurality of mining nodes in a blockchain network, each of the plurality of digests being generated based on a transaction request including transaction data without including the transaction data in the digest; receiving, using the at least one processor, block data generated based on a proof-of-work protocol and at least a portion of the plurality of digests from at least one of the plurality of mining nodes; requesting, using the at least one processor, the transaction data for each of a plurality of transaction requests corresponding to the at least a portion of the digests; and publishing, using the at least one processor, a new block to the blockchain network based on the transaction data and the block data.
[0007] In a non-limiting embodiment or aspect, the method further comprises: receiving a plurality of transaction requests with the at least one processor; and generating the plurality of digests based on the plurality of transaction requests. In a non-limiting embodiment or aspect, the method further comprises: determining a subset of transaction requests in the plurality of transaction requests based on a plurality of bids associated with the plurality of transaction requests, each of the plurality of digests corresponding to a transaction request in the subset of transaction requests. In a non-limiting embodiment or aspect, the at least one mining node is a single mining node. In a non-limiting embodiment or aspect, in response to receiving block data generated based on the proof of work protocol, requesting the transaction data for each transaction request. In a non-limiting embodiment or aspect, the method further comprises: in response to receiving block data generated based on the proof of work protocol, assigning a reward to an address corresponding to the at least one mining node. In a non-limiting embodiment or aspect, the reward is assigned as a layer 2 transaction on a blockchain network. In a non-limiting embodiment or aspect, the method further comprises: in response to the transaction requester canceling the transaction request, issuing a penalty to the transaction requester.
[0008] According to non-limiting embodiments or aspects, a system is provided, the system comprising at least one processor, the at least one processor being programmed or configured to: transmit a plurality of digests to each mining node of a plurality of mining nodes in a blockchain network, each of the plurality of digests being generated based on a transaction request including transaction data without including the transaction data in the digest; receive block data generated based on a proof-of-work protocol and at least a portion of the plurality of digests from at least one mining node of the plurality of mining nodes; request the transaction data for each transaction request of a plurality of transaction requests corresponding to the at least a portion of the digests; and publish a new block to the blockchain network based on the transaction data and the block data.
[0009] In a non-limiting embodiment or aspect, the at least one processor is further programmed or configured to: receive a plurality of transaction requests; and generate the plurality of digests based on the plurality of transaction requests. In a non-limiting embodiment or aspect, the at least one processor is further programmed or configured to: determine a subset of transaction requests in the plurality of transaction requests based on a plurality of bids associated with the plurality of transaction requests, each of the plurality of digests corresponding to a transaction request in the subset of transaction requests. In a non-limiting embodiment or aspect, the at least one mining node is a single mining node. In a non-limiting embodiment or aspect, in response to receiving block data generated based on the proof of work protocol, requesting the transaction data for each transaction request. In a non-limiting embodiment or aspect, the at least one processor is further programmed or configured to: in response to receiving block data generated based on the proof of work protocol, assigning a reward to an address corresponding to the at least one mining node. In a non-limiting embodiment or aspect, the reward is assigned as a layer 2 transaction on a blockchain network. In a non-limiting embodiment or aspect, the at least one processor is further programmed or configured to: issue a penalty to the transaction requester in response to the transaction requester canceling the transaction request.
[0010] According to a non-limiting embodiment or aspect, a computer program product is provided, the computer program product comprising at least one non-transitory computer-readable medium, the at least one non-transitory computer-readable medium comprising program instructions, the program instructions, when executed by at least one processor, causing the at least one processor to: transmit a plurality of digests to each of a plurality of mining nodes in a blockchain network, each of the plurality of digests being generated based on a transaction request including transaction data without including the transaction data in the digest; receive block data generated based on a proof-of-work protocol and at least a portion of the digests from at least one of the plurality of mining nodes; request the transaction data for each of a plurality of transaction requests corresponding to the at least a portion of the digests; and publish a new block to the blockchain network based on the transaction data and the block data.
[0011] In a non-limiting embodiment or aspect, the at least one processor is further programmed or configured to: receive a plurality of transaction requests; and generate the plurality of digests based on the plurality of transaction requests. In a non-limiting embodiment or aspect, the at least one processor is further programmed or configured to: determine a subset of transaction requests in the plurality of transaction requests based on a plurality of bids associated with the plurality of transaction requests, each of the plurality of digests corresponding to a transaction request in the subset of transaction requests. In a non-limiting embodiment or aspect, the at least one mining node is a single mining node. In a non-limiting embodiment or aspect, in response to receiving block data generated based on the proof of work protocol, requesting the transaction data for each transaction request. In a non-limiting embodiment or aspect, the at least one processor is further programmed or configured to: in response to receiving block data generated based on the proof of work protocol, assigning a reward to an address corresponding to the at least one mining node. In a non-limiting embodiment or aspect, the reward is assigned as a layer 2 transaction on a blockchain network. In a non-limiting embodiment or aspect, the at least one processor is further programmed or configured to: issue a penalty to the transaction requester in response to the transaction requester canceling the transaction request.
[0012] Other non-limiting embodiments or aspects are set forth in the following numbered clauses:
[0013] Clause 1: A method comprising: utilizing at least one processor to transmit a plurality of digests to each of a plurality of mining nodes in a blockchain network, each of the plurality of digests being generated based on a transaction request including transaction data without including the transaction data in the digest; utilizing the at least one processor to receive block data generated based on a proof-of-work protocol and at least a portion of the plurality of digests from at least one of the plurality of mining nodes; utilizing the at least one processor to request the transaction data for each of a plurality of transaction requests corresponding to the at least a portion of the digests; and utilizing the at least one processor to publish a new block to the blockchain network based on the transaction data and the block data.
[0014] Clause 2: The method of clause 1, further comprising: receiving, using the at least one processor, a plurality of transaction requests; and generating the plurality of digests based on the plurality of transaction requests.
[0015] Clause 3: The method according to clause 1 or 2 further includes: determining a subset of transaction requests among the multiple transaction requests based on a plurality of bids associated with the multiple transaction requests, each summary of the multiple summaries corresponding to a transaction request in the subset of transaction requests.
[0016] Clause 4: A method according to any of clauses 1-3, wherein the at least one mining node is a single mining node.
[0017] Clause 5: A method according to any one of clauses 1-4, wherein the transaction data is requested for each transaction request in response to receiving block data generated based on the proof-of-work protocol.
[0018] Clause 6: The method according to any one of clauses 1-5 further includes: in response to receiving block data generated based on the proof of work protocol, allocating a reward to an address corresponding to the at least one mining node.
[0019] Clause 7: A method according to any of clauses 1-6, wherein the reward is distributed as a layer 2 transaction on the blockchain network.
[0020] Clause 8: The method of any one of clauses 1-7, further comprising: in response to the transaction requester canceling the transaction request, issuing a penalty to the transaction requester.
[0021] Clause 9: A system comprising at least one processor programmed or configured to: transmit a plurality of digests to each of a plurality of mining nodes in a blockchain network, each of the plurality of digests being generated based on a transaction request including transaction data without including the transaction data in the digest; receive block data generated based on a proof-of-work protocol and at least a portion of the plurality of digests from at least one of the plurality of mining nodes; request the transaction data for each of a plurality of transaction requests corresponding to the at least a portion of the digests; and publish a new block to the blockchain network based on the transaction data and the block data.
[0022] Clause 10: The system of clause 9, the at least one processor further programmed or configured to: receive a plurality of transaction requests; and generate the plurality of digests based on the plurality of transaction requests.
[0023] Clause 11: In the system of clause 9 or 10, the at least one processor is further programmed or configured to: determine a subset of transaction requests among the multiple transaction requests based on a plurality of bids associated with the multiple transaction requests, each summary of the multiple summaries corresponding to a transaction request in the subset of transaction requests.
[0024] Clause 12: The system of any of clauses 9-11, wherein the at least one mining node is a single mining node.
[0025] Clause 13: A system according to any of clauses 9-12, wherein the transaction data is requested for each transaction request in response to receiving block data generated based on the proof-of-work protocol.
[0026] Clause 14: In a system according to any one of clauses 9-13, the at least one processor is further programmed or configured to: in response to receiving block data generated based on the proof-of-work protocol, allocate a reward to an address corresponding to the at least one mining node.
[0027] Clause 15: A system according to any of clauses 9-14, wherein the reward is distributed as a layer 2 transaction on the blockchain network.
[0028] Clause 16: The system of any of clauses 9-15, the at least one processor further programmed or configured to: in response to the transaction requester canceling the transaction request, issue a penalty to the transaction requester.
[0029] Clause 17: A computer program product comprising at least one non-transitory computer-readable medium, the at least one non-transitory computer-readable medium comprising program instructions, which, when executed by at least one processor, cause the at least one processor to: transmit a plurality of digests to each of a plurality of mining nodes in a blockchain network, each of the plurality of digests being generated based on a transaction request including transaction data without including the transaction data in the digest; receive block data generated based on a proof-of-work protocol and at least a portion of the plurality of digests from at least one of the plurality of mining nodes; request the transaction data for each of a plurality of transaction requests corresponding to the at least a portion of the digests; and publish a new block to the blockchain network based on the transaction data and the block data.
[0030] Clause 18: The computer program product of clause 17, the at least one processor further programmed or configured to: receive a plurality of transaction requests; and generate the plurality of digests based on the plurality of transaction requests.
[0031] Clause 19: In the computer program product of clause 17 or 18, the at least one processor is further programmed or configured to determine a subset of transaction requests among the plurality of transaction requests based on a plurality of bids associated with the plurality of transaction requests, each of the plurality of summaries corresponding to a transaction request in the subset of transaction requests.
[0032] Clause 20: A computer program product as described in any of clauses 17-19, wherein the at least one mining node is a single mining node.
[0033] Clause 21: A computer program product according to any of clauses 17-20, wherein each transaction request requests the transaction data in response to receiving block data generated based on the proof-of-work protocol.
[0034] Clause 22: A computer program product according to any one of clauses 17-21, wherein the at least one processor is also programmed or configured to: in response to receiving block data generated based on the proof of work protocol, allocate a reward to an address corresponding to the at least one mining node.
[0035] Clause 23: A computer program product according to any of clauses 17-22, wherein the reward is distributed as a layer 2 transaction on the blockchain network.
[0036] Clause 24: The computer program product of any of clauses 17-23, the at least one processor further programmed or configured to: issue a penalty to the transaction requester in response to the transaction requester canceling a transaction request.
[0037] These and other features and characteristics of the present disclosure, as well as methods of operation and functions of related structural elements and combinations of parts and economies of manufacture, will become more apparent when considering the following description and appended claims with reference to the accompanying drawings, all of which form a part of this specification, wherein like reference numerals designate corresponding parts in the various figures. It is to be expressly understood, however, that the drawings are for purposes of illustration and description only and are not intended as a definition of the limitations of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0038] Additional advantages and details are explained in more detail below with reference to non-limiting exemplary embodiments shown in the schematic drawings, in which:
[0039] Figure 1 is a schematic diagram of a system for preventing MEV attacks in a blockchain network according to a non-limiting embodiment or aspect;
[0040] Figure 2 illustrates exemplary components of an apparatus for use with a non-limiting embodiment or aspect; and
[0041] Figure 3 is a flow chart of a method for preventing MEV attacks in a blockchain network according to a non-limiting embodiment or aspect. DETAILED DESCRIPTION
[0042] For the purposes of the following description, the terms "end," "upper," "lower," "right," "left," "vertical," "horizontal," "top," "bottom," "lateral," "longitudinal," and their derivatives shall relate to the orientation of the embodiments in the accompanying drawings. However, it shall be understood that the embodiments may employ various alternative variations and step sequences, except where expressly specified to the contrary. It shall also be understood that the specific devices and processes shown in the accompanying drawings and described in the following specification are merely exemplary embodiments or aspects of the present invention. Accordingly, specific dimensions and other physical characteristics related to the embodiments or aspects disclosed herein shall not be considered limiting.
[0043] The aspects, parts, elements, structures, actions, steps, functions, instructions, etc. used herein should not be understood as critical or necessary unless explicitly described as such. Moreover, as used herein, the article "one" is intended to include one or more items, and can be used interchangeably with "one or more" and "at least one". In addition, as used herein, the term "set" is intended to include one or more items (e.g., related items, unrelated items, a combination of related items and unrelated items, etc.), and can be used interchangeably with "one or more" or "at least one". In the case of wishing only one item, the term "one" or similar language is used. Moreover, as used herein, the term "having" and / or its analogs are intended to be open terms. In addition, unless otherwise explicitly stated, the phrase "based on" is intended to mean "based at least in part on".
[0044] As used herein, the term "communication" may refer to the reception, acceptance, transmission, transfer, provision, etc. of data (e.g., information, signals, messages, instructions, commands, etc.). A unit (e.g., a device, a system, a component of a device or system, a combination thereof, and / or the like) communicating with another unit means that the unit is able to directly or indirectly receive information from the other unit and / or send information to the other unit. This may refer to a direct or indirect connection (e.g., a direct communication connection, an indirect communication connection, and / or the like) that is wired and / or wireless in nature. In addition, although the information sent may be modified, processed, relayed, and / or routed between the first unit and the second unit, the two units may also communicate with each other. For example, even if the first unit passively receives information and does not actively send information to the second unit, the first unit may communicate with the second unit. As another example, if at least one intermediate unit processes the information received from the first unit and transmits the processed information to the second unit, the first unit may communicate with the second unit.
[0045] As used herein, the term "computing device" may refer to one or more electronic devices configured to process data. In some examples, a computing device may include the necessary components for receiving, processing, and outputting data, such as a processor, a display, a memory, an input device, a network interface, etc. The computing device may be a mobile device. As an example, a mobile device may include a cellular phone (e.g., a smartphone or a standard cellular phone), a portable computer, a wearable device (e.g., a watch, glasses, lenses, clothing, etc.), a personal digital assistant (PDA), and / or other similar devices. A computing device may also be a desktop computer or other form of non-mobile computer.
[0046] As used herein, the term "server" may refer to or include one or more computing devices operated by or facilitating communications and processing by multiple parties in a network environment such as the Internet, but it should be understood that communications may be facilitated through one or more public or private network environments, and that there may be various other arrangements. In addition, multiple computing devices (e.g., servers, point of sale (POS) devices, mobile devices, etc.) that communicate directly or indirectly in a network environment may constitute a "system." As used herein, references to "servers" or "processors" may refer to previously described servers and / or processors, different servers and / or processors, and / or combinations of servers and / or processors stated to perform previous steps or functions. For example, as used in the specification and claims, a first server and / or first processor stated to perform a first step or function may refer to the same or different servers and / or processors stated to perform a second step or function.
[0047] The non-limiting embodiment produces an improved blockchain network that is resistant to MEV attacks. Using the system architecture described herein, transactions conducted through the improved blockchain network can resist attacks that may involve front-running transactions, tailing transactions, transaction reordering, and sandwich attacks. In addition, the non-limiting embodiment provides a way to publish new blocks to the blockchain network without exposing transaction data, thereby allowing certain aspects of transaction data to remain private while still conducting transactions in the blockchain network. Other advantages are achieved from the non-limiting embodiments described herein.
[0048] Figure 1A system 1000 for preventing MEV attacks in a blockchain network according to a non-limiting embodiment or aspect is depicted. The operator 100 may include one or more computing devices in communication with the blockchain network 106. In some examples, the operator 100 may be a computing device operating as a node (e.g., a management node, etc.) in the blockchain network 106. The operator 100 communicates with a plurality of transaction requesters 102 (102A, 102B, 102C, etc.), which submit transaction requests to the operator 100 (e.g., a request to record a transaction on the blockchain network 106 so that it is a part of a distributed ledger maintained by a node in the blockchain network 106). The operator may receive a plurality of transaction requests and / or summaries based on the plurality of transaction requests. For example, a predetermined or dynamic number of transaction requests may be packaged into a single summary and received from the transaction requester. In some non-limiting embodiments, the summary may include only a hash of the transaction data, but not the transaction data itself. In this way, the operator 100 may not have access to all underlying transaction data.
[0049] In some examples, blockchain network 106 may be an Ethereum blockchain network. However, it should be appreciated that other blockchain networks may be used, and such blockchain networks may be public or private in nature. Blockchain network 106 may include a Bitcoin network, networks associated with different cryptocurrencies, and the like.
[0050] Continue to refer Figure 1 Once the operator 100 obtains the digest representing the transaction request, the digest can be sent to the memory pool of the mining nodes 104 (e.g., 104A, 104B, 104C, 104D, etc.). The mining node 104 may include a computing device that operates as a cryptocurrency miner in the blockchain network 106. The mining node 104 receives the digest and processes the digest based on the hashed transaction data (e.g., using multi-party computing, secure hardware, etc.) to receive a reward (e.g., a certain amount of cryptocurrency). As an example, the mining node 104 may process the digest using a proof of work (POW) protocol. When the mining node 104A, 104B, 104C, 104D completes a block (e.g., generates a fully mined block based on the digest), the mining node notifies the operator 100. As an example, in Figure 1 In the example, mining node 104A may return a completed block to operator 100 before mining nodes 104B, 104C, and 104D. In response to receiving the block, operator 100 may transfer a reward to successful mining node 104A. In some examples, the reward may be transferred on layer 2 of blockchain network 106.
[0051] Still reference Figure 1, after receiving the completed block from the mining node 104A, the operator 100 notifies the transaction requester 102 that the submitted transaction request is included in the processed summary. The actual transaction data for each transaction request can then be sent from the transaction requester 102 to the operator 100, and the operator 100 can push the block 101 to be published to the blockchain network 106. The transaction requester 102 can then transfer the payment to the operator 100 (e.g., "gas fee"). In some non-limiting embodiments, the payment to the operator 100 (and the reward for the successful mining node 104A) can be based on an auction process conducted by the transaction requester 102, the operator 100, and / or another party. For example, before sending the summary to the operator 100, the transaction requester 102 can enter an auction process conducted by the operator 100, in which the transaction requester 102 submits a bid on how much they are willing to pay to process transactions on the blockchain network 106. The operator 100 can implement various rules for determining which bids to accept. For example, the operator 100 can accept bids up to a predetermined number. The predetermined number of bids may be the number of transactions in a single block.
[0052] In a non-limiting embodiment, the operator 100 may impose penalties. For example, if a transaction requester cancels a transaction request after submitting it in the digest, a penalty may be assessed against the transaction requester and transferred to the operator 100. Similarly, if the operator 100 fails to successfully publish a block to the blockchain network 106, it may pay a penalty to one or more parties (e.g., all mining nodes 104 and all transaction requesters 102, including non-winners of the auction). The penalty may be transferred on layer 2 of the blockchain network 106.
[0053] Reference now Figure 3 , showing a flowchart of a method for preventing MEV attacks in a blockchain network according to a non-limiting embodiment or aspect. Figure 3 The steps shown in are for illustrative purposes only. It should be understood that in various embodiments, different, additional, fewer and / or different orders of steps may be used. In a non-limiting embodiment, Figure 3 The steps shown in the flowchart may be automatically executed in response to the previous step without human intervention, so that some or all of the flowchart may be automatically executed. Figure 3 The steps shown in may be performed by a computing device, such as an operator as described herein. However, it should be understood that one or more devices, entities and / or systems may perform Figure 3 One or more steps in .
[0054] exist Figure 3At step 300, a plurality of transaction requests are received from an entity requesting to perform a transaction (e.g., a transaction requester). The transaction request may request, for example, to transfer a specified amount of digital currency from a first address on a blockchain network to a second address on the blockchain network. It should be appreciated that various types of requests may be involved in different non-limiting embodiments. The transaction request may be hashed to form a summary from transaction data, for example, the transaction data includes one or more bids, transaction amounts, recipient addresses, payer addresses, etc. The request may be received through the blockchain network or outside the blockchain network. At step 302, a subset of the transaction requests in the plurality of transaction requests (and / or summaries) is determined based on a plurality of bids associated with the plurality of transaction requests (e.g., included in the transaction requests).
[0055] Continue to refer Figure 3 At step 304, a block may be formed (e.g., generated) based on the subset of transaction requests and / or digests determined at step 302. Each of the plurality of digests may correspond to a transaction request of the subset of transaction requests determined at step 302. The block formed at step 304 may include a plurality of digests corresponding to transaction requests with the highest bids, and the digests may be generated by the transaction requesters in a manner that hides the underlying transaction data (e.g., via hashing). Then, at step 306, the plurality of digests corresponding to the block formed at step 304 may be transmitted to a plurality of mining nodes in the blockchain network.
[0056] Still refer to Figure 3 At step 308, it is determined whether the block data is received based on a POW protocol executed by one of the mining nodes. The block data can be generated by the mining node based on at least a portion of the digests of the plurality of digests and a POW algorithm to produce a solution to the digest that can be transmitted to prove its participation in the successful processing. In response to receiving the block data at step 308, the process continues to step 310.
[0057] In a non-limiting embodiment, steps 300-308 may be part of an auction process (e.g., a storage pool auction) in which a transaction requester transmits a plurality of transaction requests received at step 300 along with one or more bids, such that a subset of transaction requests determined at step 302 is based on the bids. For example, the highest portion of the bids may be part of the subset. In some examples, step 302 involves determining the top k bids. The bids represent the cost (e.g., the amount of "gas") that the transaction requester is willing to spend.
[0058] In a non-limiting embodiment, the mining node that first solves the POW based on the digest (e.g., the winner of the mining pool) can immediately get paid from the operator, so that the operator is the direct payee and a certain amount of digital currency can be transferred to the mining node. In some examples, the reward digital currency for solving the POW can be sent on layer 2 of the blockchain protocol, for example, for reasons of speed and lack of fees.
[0059] exist Figure 3 At step 310, transaction data is requested for each transaction in a subset of transaction requests (e.g., corresponding to at least a portion of the digests processed by the mining node). Prior to receiving such data, both the miner and the operator do not have all the underlying transaction data for each transaction request. The transaction data is requested from the transaction requester together with the accepted bid so that the transaction can be conducted. At step 312, a new block is generated based on the block data received at step 308 and published to the blockchain network. If the transaction requester aborts or does not respond at step 310, the transaction requester may be punished by automatically transferring a certain amount of digital currency to the operator through a smart contract on the blockchain network. If the operator does not publish a block, it may pay a penalty to all miners and all transaction requesters (including the unsuccessful transaction requesters). Other penalty possibilities may be specified between the parties through smart contracts, etc. In some examples, the penalty digital currency may be sent on layer 2 of the blockchain protocol, for example, for reasons of speed and lack of cost. The auction may then be resumed by receiving new transaction requests (eg, step 300) and / or forming a new block from already received requests and / or digests (eg, step 304).
[0060] Reference now Figure 2 , a diagram showing exemplary components of an apparatus 900 according to a non-limiting embodiment. As an example, the apparatus 900 may correspond to Figure 1 In some non-limiting embodiments, such a system or device may include at least one device 900 and / or at least one component of the device 900. The number and arrangement of the components shown are provided as examples. In some non-limiting embodiments, Figure 1 The device 900 may include additional components, fewer components, different components, or components arranged in a different manner than those shown in . Additionally or alternatively, a set of components (e.g., one or more components) of the device 900 may perform one or more functions described as being performed by another set of components of the device 900.
[0061] like Figure 2As shown, the device 900 may include a bus 902, a processor 904, a memory 906, a storage component 908, an input component 910, an output component 912, and a communication interface 914. The bus 902 may include components that permit communication between components of the device 900. In some non-limiting embodiments, the processor 904 may be implemented in hardware, firmware, or a combination of hardware and software. For example, the processor 904 may include a processor (e.g., a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), etc.), a microprocessor, a digital signal processor (DSP), and / or any processing component that can be programmed to perform a function (e.g., a field programmable gate array (FPGA), an application-specific integrated circuit (ASIC), etc.). The memory 906 may include a random access memory (RAM), a read-only memory (ROM), and / or another type of dynamic or static storage device (e.g., flash memory, magnetic memory, optical memory, etc.) that stores information and / or instructions for use by the processor 904.
[0062] Continue to refer Figure 2 , the storage component 908 may store information and / or software related to the operation and use of the device 900. For example, the storage component 908 may include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optical disk, a solid-state disk, etc.) and / or another type of computer-readable medium. The input component 910 may include a component that allows the device 900 to receive information, for example, through user input (e.g., a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, a microphone, etc.). In addition or alternatively, the input component 910 may include a sensor for sensing information (e.g., a global positioning system (GPS) component, an accelerometer, a gyroscope, an actuator, etc.). The output component 912 may include a component that provides output information from the device 900 (e.g., a display, a speaker, one or more light-emitting diodes (LEDs), etc.). The communication interface 914 may include a transceiver-like component (e.g., a transceiver, a separate receiver and a transmitter, etc.) that enables the device 900 to communicate with other devices, for example, through a wired connection, a wireless connection, or a combination of wired and wireless connections. The communication interface 914 may allow the device 900 to receive information from another device and / or provide information to another device. For example, the communication interface 914 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, Interface, cellular network interface, etc.
[0063] The device 900 can perform one or more processes described herein. The device 900 can perform these processes based on the processor 904 executing software instructions stored by computer-readable media such as memory 906 and / or storage component 908. The computer-readable medium may include any non-transitory memory device. The memory device includes a memory space located inside a single physical storage device or a memory space extended across multiple physical storage devices. The software instructions can be read from another computer-readable medium or from another device to the memory 906 and / or storage component 908 through the communication interface 914. When executed, the software instructions stored in the memory 906 and / or storage component 908 can cause the processor 904 to perform one or more processes described herein. In addition or alternatively, the hard-wired circuit system can replace the software instructions or be used in combination with the software instructions to perform one or more processes described herein. Therefore, the embodiments described herein are not limited to any specific combination of hardware circuit systems and software. The term "programmed or configured" used herein refers to the arrangement of software, hardware circuit systems, or any combination thereof on one or more devices.
[0064] Although the embodiments have been described in detail for the purpose of illustration, it should be understood that such details are used for that purpose only, and the present disclosure is not limited to the disclosed embodiments, but on the contrary, is intended to cover modifications and equivalent arrangements within the spirit and scope of the appended claims. For example, it should be understood that the present disclosure contemplates that, to the extent possible, one or more features of any embodiment can be combined with one or more features of any other embodiment.
Claims
1. A method comprising: transmitting, using at least one processor, a plurality of digests to each mining node of a plurality of mining nodes in a blockchain network, each digest of the plurality of digests being generated based on a transaction request including transaction data without including the transaction data in each digest; receiving, with the at least one processor, block data generated based on a proof-of-work protocol and at least a portion of the plurality of digests from at least one mining node of the plurality of mining nodes; requesting, with the at least one processor, the transaction data for each transaction request of a plurality of transaction requests corresponding to the at least a portion of the digest; as well as The at least one processor is used to publish a new block to the blockchain network based on the transaction data and the block data.
2. The method according to claim 1, further comprising: receiving, with the at least one processor, a plurality of transaction requests; as well as The plurality of digests are generated based on the plurality of transaction requests.
3. The method according to claim 2, further comprising: A subset of trade requests in the plurality of trade requests is determined based on a plurality of bids associated with the plurality of trade requests, each digest in the plurality of digests corresponding to a trade request in the subset of trade requests.
4. The method according to claim 1, wherein: The at least one mining node is a single mining node.
5. The method according to claim 1, wherein: In response to receiving block data generated based on the proof-of-work protocol, the transaction data is requested for each transaction request.
6. The method according to claim 1, further comprising: In response to receiving block data generated based on the proof-of-work protocol, a reward is distributed to an address corresponding to the at least one mining node.
7. The method according to claim 6, wherein: The rewards are distributed as layer 2 transactions on the blockchain network.
8. The method according to claim 1, further comprising: In response to the transaction requester canceling the transaction request, a penalty is issued to the transaction requester.
9. A system comprising at least one processor, wherein the at least one processor is programmed or configured to: transmitting a plurality of digests to each mining node of a plurality of mining nodes in a blockchain network, each digest of the plurality of digests being generated based on a transaction request including transaction data without including the transaction data in each digest; receiving, from at least one mining node of the plurality of mining nodes, block data generated based on a proof-of-work protocol and at least a portion of the plurality of digests; requesting the transaction data for each transaction request of a plurality of transaction requests corresponding to the at least a portion of the digest; and Publishing a new block to the blockchain network based on the transaction data and the block data.
10. The system of claim 9, wherein the at least one processor is further programmed or configured to: receiving multiple transaction requests; and The plurality of digests are generated based on the plurality of transaction requests.
11. The system of claim 10, wherein the at least one processor is further programmed or configured to: A subset of trade requests in the plurality of trade requests is determined based on a plurality of bids associated with the plurality of trade requests, each digest in the plurality of digests corresponding to a trade request in the subset of trade requests.
12. The system according to claim 9, wherein: The at least one mining node is a single mining node.
13. The system according to claim 9, wherein: In response to receiving block data generated based on the proof-of-work protocol, the transaction data is requested for each transaction request.
14. The system according to claim 9, wherein: The at least one processor is further programmed or configured to: In response to receiving block data generated based on the proof-of-work protocol, a reward is distributed to an address corresponding to the at least one mining node.
15. The system of claim 14, wherein: The rewards are distributed as layer 2 transactions on the blockchain network.
16. The system of claim 9, wherein: The at least one processor is further programmed or configured to: In response to the transaction requester canceling the transaction request, a penalty is issued to the transaction requester.
17. A computer program product comprising at least one non-transitory computer readable medium, the at least one non-transitory computer readable medium comprising program instructions that, when executed by at least one processor, cause the at least one processor to: transmitting a plurality of digests to each mining node of a plurality of mining nodes in a blockchain network, each digest of the plurality of digests being generated based on a transaction request including transaction data without including the transaction data in each digest; receiving, from at least one mining node of the plurality of mining nodes, block data generated based on a proof-of-work protocol and at least a portion of the plurality of digests; requesting the transaction data for each transaction request of a plurality of transaction requests corresponding to the at least a portion of the digest; and Publishing a new block to the blockchain network based on the transaction data and the block data.
18. The computer program product of claim 17, wherein: The at least one processor is further programmed or configured to: receiving multiple transaction requests; and The plurality of digests are generated based on the plurality of transaction requests.
19. The computer program product of claim 18, wherein: The at least one processor is further programmed or configured to: A subset of trade requests in the plurality of trade requests is determined based on a plurality of bids associated with the plurality of trade requests, each digest in the plurality of digests corresponding to a trade request in the subset of trade requests.
20. The computer program product of claim 17, wherein: The at least one mining node is a single mining node.