WO2021011893A1 - Relay system for blockchain - Google Patents

Relay system for blockchain Download PDF

Info

Publication number
WO2021011893A1
WO2021011893A1 PCT/US2020/042600 US2020042600W WO2021011893A1 WO 2021011893 A1 WO2021011893 A1 WO 2021011893A1 US 2020042600 W US2020042600 W US 2020042600W WO 2021011893 A1 WO2021011893 A1 WO 2021011893A1
Authority
WO
WIPO (PCT)
Prior art keywords
relay
cryptocurrency
node
relay node
transaction
Prior art date
Application number
PCT/US2020/042600
Other languages
French (fr)
Inventor
Jing Chen
Yossi Gilad
Original Assignee
Algorand Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Algorand Inc. filed Critical Algorand Inc.
Publication of WO2021011893A1 publication Critical patent/WO2021011893A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Definitions

  • This description relates generally to a relay system for a blockchain network.
  • a public ledger is a tamperproof sequence of data that can be read and augmented.
  • Shared public ledgers can revolutionize the way a modem society operates.
  • Traditional transactions such as payments, asset transfers, and titling— can be secured in an order in which they occur.
  • New types of transactions such as cryptocurrencies and smart contracts can be enabled. Corruption can be reduced, intermediaries removed, and a new paradigm for trust can be ushered in.
  • a relay node of a cryptocurrency network transmits a relay registration transaction to one or more other nodes of the cryptocurrency network.
  • the relay registration transaction includes relay registration data.
  • the relay registration transaction is to be committed to the blockchain.
  • the relay node receives a cryptocurrency transaction including a relay value.
  • the relay node accepts an amount of cryptocurrency including a portion of the relay value.
  • the relay node transmits the cryptocurrency transaction to the one or more other nodes of the cryptocurrency network.
  • the cryptocurrency transaction has a signature including a hash of the cryptocurrency transaction, wherein the cryptocurrency transaction is a cryptocurrency transaction.
  • the signature includes an identity of the relay node and the relay value.
  • the relay node accesses a list of user nodes of the cryptocurrency network.
  • the cryptocurrency network is a cryptocurrency network.
  • the relay node accesses, a list of one or more other relay nodes of the cryptocurrency network.
  • the accepting the amount of cryptocurrency includes identifying, by the relay node, another cryptocurrency transaction on the blockchain.
  • the other cryptocurrency transaction credits the relay node the portion of the relay value.
  • the relay node is associated with exclusive access to a portion of staked cryptocurrency.
  • the relay node includes a stored copy of the blockchain.
  • the blockchain is a cryptocurrency blockchain.
  • the relay registration data includes at least one of a logical address of the relay node, a measurement of available bandwidth of the relay node, a geographic location of the relay node, a number of connections allowed by the relay node, a fee of the relay node, or a service period of the relay node.
  • the relay node verifies that the relay registration transaction has been committed to the blockchain.
  • FIG. 1 illustrates an example block diagram of a relay system for a blockchain, in accordance with one or more embodiments.
  • FIG. 2 illustrates a relay network, in accordance with one or more embodiments.
  • FIG. 3 illustrates a process for operation of a relay system for a blockchain, in accordance with one or more embodiments.
  • FIG. 4 is a high-level block diagram showing an example of a hardware architecture that can be used to implement some or all of a relay system for a blockchain, in accordance with one or more embodiments.
  • the embodiments discloses herein provide methods, systems, and apparatuses for enabling a relay system for a blockchain.
  • the embodiments are directed to a relay system or a relay market that is implemented on a blockchain.
  • Implementing the relay system on a blockchain generates incentives for running relay operations on the blockchain.
  • a blockchain consensus protocol that is secure against network attacks is supported.
  • the blockchain consensus protocol does not fork even when the blockchain network is partitioned.
  • the embodiments disclosed herein thus enable the blockchain to use untrusted relay nodes to efficiently spread messages in the network without imposing permission controls about which nodes may act as relays.
  • any node can register itself as a relay on the blockchain.
  • a node performing relay operations competes with other nodes to spread cryptocurrency transactions.
  • the node obtains remuneration when a cryptocurrency transaction that the node relayed is committed to the blockchain.
  • the relay system disclosed encourages a larger number of nodes to join the blockchain network as relays and compete on quality of service, thus contributing to network decentralization.
  • a relay node of a cryptocurrency network transmits a relay registration transaction to one or more other nodes of the cryptocurrency network.
  • the relay registration transaction includes relay registration data.
  • the relay registration transaction is to be committed to the blockchain.
  • the relay node receives a cryptocurrency transaction including a relay value.
  • the relay node accepts an amount of cryptocurrency including a portion of the relay value.
  • the relay node transmits the cryptocurrency transaction to the one or more other nodes of the cryptocurrency network.
  • connecting elements such as solid or dashed lines or arrows
  • the absence of any such connecting elements is not meant to imply that no connection, relationship, or association can exist.
  • some connections, relationships, or associations between elements are not shown in the drawings so as not to obscure the disclosure.
  • a single connecting element is used to represent multiple connections, relationships or associations between elements.
  • a connecting element represents a communication of signals, data, or instructions
  • such element represents one or multiple signal paths (e.g., a bus), as may be needed, to affect the communication.
  • FIG. 1 illustrates an example block diagram of a relay system 100 for a blockchain 104, in accordance with one or more embodiments.
  • the relay system 100 includes a network 108, and the blockchain 104.
  • the blockchain 104 is a cryptocurrency blockchain.
  • the network 108 includes portions of the Internet 428 and network link 420 illustrated and described in more detail with reference to FIG. 4.
  • the network 108 is a cryptocurrency network.
  • the relay system 100 can include additional or fewer components, and the components can be connected in a different manner.
  • the relay system 100 is implemented on the blockchain 104, for example, the Algorand blockchain.
  • the relay system 100 is sometimes referred to as a“relay market.”
  • the relay system 100 generates incentives for running relay operations using nodes (e.g., node 112) designated as relay nodes.
  • the relay system 100 supports a consensus protocol, for example, the Algorand consensus protocol, that is secure against network attacks.
  • the consensus protocol does not fork even when the network 108 is partitioned.
  • the blockchain 104 can use untrusted relay nodes (e.g., node 112) to efficiently spread messages in the network 108 without imposing permission controls with respect to which nodes of the network 108 can operate as relay nodes.
  • any node (e.g., node 112) of the network 108 can register itself as a relay node on the blockchain 104.
  • Relay nodes can compete with respect to propagating cryptocurrency transactions (e.g., transaction 148) in the network 108.
  • a cryptocurrency transaction 148 transfers a particular amount of a cryptoasset from one cryptoasset account to another.
  • the cryptocurrency transaction 148 is a cryptocurrency transaction.
  • a cryptoasset can refer to a cryptocurrency, e.g., Algo or Bitcoin, that is designed to work as a medium of exchange that uses
  • a cryptoasset can also be an encrypted title for an automobile or home, a mortgage, or any other encrypted financial asset.
  • a cryptoasset account allows a user to store cryptocurrencies manage their balances of cryptocurrencies.
  • a cryptoasset account has an account identifier, which is a unique identifier.
  • a user can access their cryptoasset account by logging into the blockchain 104 or by downloading and accessing a mobile application.
  • the cryptoasset account shows the current balance for the cryptocurrency and displays the user’s transactions.
  • a user can send a request to another party having another cryptoasset account for a specific amount of cryptocurrency.
  • relay nodes e.g., node 112 are paid when a cryptocurrency transaction (e.g., transaction 148) that they relay is committed to the blockchain 104.
  • the relay system 100 is thus designed to encourage more relay nodes to join the cryptocurrency network 108 and compete with other relay nodes with respect to quality of service, thus promoting
  • the node 112 transmits a relay registration transaction 124 to one or more other nodes 116, 120 of the cryptocurrency network 108.
  • the relay registration transaction 124 includes relay registration data 128 and registers the node 112 as a relay node.
  • the relay registration transaction 124 is to be committed to the blockchain 104.
  • the node 112 registers itself as a relay node by issuing the special transaction 124 and having it appear on the blockchain 104.
  • the relay registration transaction 124 is sometimes referred to as“Relay Reg.”
  • the relay registration data 128 includes at least one of a logical address of the relay node 112.
  • the relay registration transaction 124 can specify an address to which a user node 142 can connect.
  • the relay registration data 128 includes at least one of a measurement of available bandwidth of the relay node 112, a geographic location of the relay node 112, a number of connections allowed by the relay node 112, a fee of the relay node, or a service period of the relay node 112.
  • the relay node 112 can specify its bandwidth, geographic location, a maximum number of connections allowed, a minimum fee, or a service period.
  • the relay node 112 can have its own stake in the blockchain 104 and can also operate as a user node.
  • a user node e.g., user node 142 is not necessarily a relay node.
  • the relay node 112 maintains, accesses, or retrieves a list 136 of user nodes (e.g., nodes 142, 140) of the cryptocurrency network 108.
  • Each user node (e.g., node 142) of the list 136 of user nodes maintains, accesses, or retrieves a list 144 of relay nodes (e.g., relay node 112) of the cryptocurrency network 108.
  • a client e.g., the Algorand client
  • the user node 142 maintains the list 144 of currently registered relay nodes (e.g., node 112) and assigns priorities to the relay nodes of the list 144 based on factors such as geographical location, service quality, or price.
  • This list 144 of relay nodes is randomly selected using probabilities based on the priority values of the relay nodes in the list 144, to protect the user node 142 from connecting to malfunctioning relay nodes.
  • the relay node 112 receives the cryptocurrency transaction 148.
  • the cryptocurrency transaction 148 includes a relay value 152.
  • the cryptocurrency transaction 148 has a signature that includes a hash of the cryptocurrency transaction 148.
  • the cryptocurrency transaction 148 is a cryptocurrency transaction.
  • Pr is a price in cryptocurrency (e.g., Algos) that user node i is willing to pay relay node r for having tx sent to the rest of the cryptocurrency network 108.
  • the value of Pr can differ for different relay nodes.
  • the cryptocurrency network 108 includes multiple relay nodes 112, 116.
  • Each relay node e.g., node 112 includes a list 156 of other relay nodes (e.g., 116, 120) of the cryptocurrency network 108.
  • each relay node r maintains its own set of next- hops, including both relay nodes (e.g., node 116) and user nodes (e.g., user node 140).
  • the relay node r uses the network resources to maintain connections to user nodes 142, 140 and relay nodes 116, 120. After receiving tx and sir from user node i, relay node r can send tx to all of its connections or to any subset of connections.
  • Pr is the price that node r is willing to pay node r’ for having tx sent to user nodes (e.g., node 160) to which node r does not have a connection.
  • the cryptocurrency network 108 includes multiple relay nodes 112, 116. Each relay node 112 includes a list 156 of other relay nodes 120 of the cryptocurrency network 108.
  • the cryptocurrency network 108 includes multiple user nodes 132, 140. Each user node 132 includes a list 144 of a subset of the multiple relay nodes 112, 116.
  • a blockchain 104 includes blocks 168. Each block 168 includes at least one of a relay registration transaction 124 establishing a node 112 of the cryptocurrency network 108 as a relay node, or a cryptocurrency transaction 148 crediting, by a user node 132 of the multiple user nodes 132, 140, an amount of cryptocurrency to the relay node 112.
  • the relay node 112 accepts an amount of cryptocurrency including a portion of the relay value 152.
  • the relay node 112 transmits the cryptocurrency transaction 124 to the one or more other nodes 116, 120 of the cryptocurrency network 108.
  • the relay path can continue, with each next-hop first validating that every hop so far has properly signed its own next-hop, that is, sir, srr’.
  • accepting the amount of cryptocurrency includes identifying, by the relay node 112, another cryptocurrency transaction 164 on the blockchain 104.
  • the other cryptocurrency transaction 164 credits the relay node 112 the portion of the relay value 152.
  • the prices along a relay path are non- increasing (P r 3 P r ’ 3 7), such that all payments along a relay path are covered by the original sender node i.
  • node i pays Pr and relay node r receives (Pr– Pr’). In this manner, only the balance of node i needs to be checked when validating a relay path from node i.
  • the relay node 112 includes a stored copy 172 of the blockchain 104. In some embodiments, the relay node 112 uses the stored copy 172 of the blockchain 104 to verify that the relay registration transaction 124 has been committed to the blockchain 104.
  • the payment is made as follows.
  • a block proposer, l includes a transaction tx along with the relay path that has l as the last hop in the proposed block 168.
  • the block 168 that appears in the blockchain containing tx and a relay path (i, r, r’, ... , r’’, l) triggers the following relay- fee payments.
  • node l can choose to include the path that has the highest“bang-per-buck,” namely, the payment that node l receives averaged over the space taken up by the cryptocurrency transaction and the relay path.
  • the user node that issues tx pays only when tx appears on the blockchain 104 and is only charged once.
  • the payment scheme creates a natural revenue-sharing scenario among relay nodes and block proposers.
  • the embodiments disclosed herein incentivize a relay node to connect (directly or indirectly) to as much stake in the relay system 100 as possible.
  • the relay system 100 also allows new relay nodes (e.g., nodes 116, 120) to enter the network 108 and compete with existing relay nodes (e.g., node 112) by offering higher payments to next- hops.
  • blocks are generated by the blockchain 104, and since the block proposers are randomly chosen via cryptocurrency self-selection, a block proposer’s incentive to wait and collect transactions where the block proposer is better paid is essentially counter-measured by the risk of not having its proposed block confirmed and thus not getting paid at all.
  • the relay system 100 to reduce the space in a block (e.g., block 168) taken up by relay paths, the relay system 100 imposes an upper-bound on the number of hops a relay path may have.
  • aggregate signatures are used to further compress the space needed by signatures of the relay nodes (e.g., node 112).
  • the relay node 112 is associated with exclusive access to a portion of staked cryptocurrency. Although user nodes 142, 140, 160 and relay nodes 112, 116, 120 can select their local preferences about how much to pay a next-hop, the
  • embodiments disclosed provide a revenue sharing scheme that is implemented in the relay system 100 software.
  • a relay node r is paid according to its exclusively accessible stake. That is, the amount of stake owned by nodes that a transaction tx will not be able to reach if tx is not sent to node r.
  • the embodiments disclosed are in accordance with the mechanism design principle for achieving incentive compatibility: an entity should be charged for the marginal social loss caused to others due to its existence and should be paid for the marginal social gain.
  • such exclusiveness of a relay node is measured by tracking and paying only the relay paths that appear in transactions that get committed to the blockchain 104.
  • FIG.2 illustrates a relay network 200, in accordance with one or more
  • the relay network 200 includes three relay nodes, r, r’1, and r’2. In other embodiments, the relay network 200 can include additional or fewer components, and the components can be connected in a different manner.
  • Each user node connects to a single relay node.
  • Node r connects to nodes r’1 and r’2, and the latter two nodes are not connected to each other.
  • User node i connects to node r and sends out a transaction tx with a relay fee Pr.
  • node r’1 has exclusive access to x fraction of the total stake in cryptocurrency (e.g., Algorand) and node r’ 2 has exclusive access to y fraction, where x + y ⁇ 1, as node r also has its own exclusively accessible stake.
  • a relay node, r’1 adds multiple“sybil” hops that are all controlled by node r’1, it makes the relay path look longer, e.g., (i, r, r’1, r’11, r’12, ... , l). However, the expected utility is still u’1 (since that relay node essentially“pays itself”). If node r’1 splits its exclusively accessible stake among multiple relay nodes that it controls, then from the perspective of another relay node, r, there are now several relays, r’11, r’12, ... , r’1k. Each of these relay nodes has an exclusively accessible stake x1, x2, ...
  • the relay nodes can be better off merging multiple of them into one, and a linear function aPr can be used to disincentivize the nodes from doing so.
  • the relays are completely indifferent from splitting or merging.
  • incentives they may have such as network cost and privacy considerations, which may push them towards either direction, b can be set close to but not exactly 0.
  • a user is connected to about c relays.
  • no relay has 100% exclusive access to any node.
  • the relays will all receive 0 payments.
  • degrees of“exclusiveness” are implemented. Paying relays only for relay paths that are included in the blocks helps discover the network structure. However, if all relay paths are paid the same way, then there is no measurement of exclusiveness and a relay’s utility is not affected at all, no matter how many clones it creates.
  • a relay’s exclusiveness can be measured over time and it can be allowed to decrease as more relay paths are discovered towards the same node. For example, when a user i’s transaction is included in the block with leader l for the first time, its immediate next hop r has exclusiveness 1 to l. If later another relay path from i to l is discovered on the blockchain 104, with i’s immediate next hop being r’, then both r and r’ get exclusiveness 1/2 to l. If a third path is discovered with r’’ being the immediate next hop, then all get exclusiveness 1/3. Other decreasing functions may as well be used as a measurement.
  • r’1 makes sure that only one of them, say r’ 11 , relays messages to l, such that r’ 11 ’s exclusiveness is 1, then its utility still doesn’t increase.
  • the priorities of r’12, ... , r’1c in l’s list can be made to drop quickly, so that l soon stops connecting to them.
  • the embodiments disclosed herein drives the network 108 away from being centralized.
  • a big relay r that has exclusive access to a large fraction of the stake, with exclusiveness 1.
  • a smaller relay r’ may be willing to convince nodes in this group to directly connect to it, so that it gets at least exclusiveness 1/2 to them. This incentivizes relays to compete for users.
  • An understanding about the relay’s costs, by adjusting the exclusiveness measurement function, can guide the network 108 towards a healthy degree of connectivity for users. For example, being 1/c exclusive can still be profitable for a relay, but being 1/(2c) exclusive may not be.
  • the relays gradually converge to a network where each user is connected to about c relays, and there are not many overlapping relay paths. Since overlapping relay paths are wasted in the system, a desirable network structure is where a user is connected to sufficiently many relays to ensure message delivery, but not to too many of them.
  • the priority grows/decreases superlinearly, so as to further disincentivize Sybil attacks.
  • An efficient (and simple) learning algorithm can be implemented to maintain (statistics of) relays’ exclusiveness.
  • the exclusiveness measurement can start with merely decreasing exponentially.
  • a reasonable estimation of relays’ costs will help design the exclusiveness function for a healthy network structure. In general, the network-formation game among relays is provided.
  • FIG.3 illustrates a process for operation of a relay system 100 for a blockchain 104, in accordance with one or more embodiments.
  • the process of FIG.3 is performed by the relay system 100.
  • the relay system 100 is illustrated and described in more detail with reference to FIG.1.
  • Other entities perform some or all of the steps of the process in other embodiments.
  • embodiments may include different and/or additional steps, or perform the steps in different orders.
  • a node 112 of the cryptocurrency network 108 transmits (304) a relay registration transaction 124 to one or more other nodes 116 of the cryptocurrency network 108.
  • the relay registration transaction 124 includes relay registration data 128 and registers the node 112 as a relay node.
  • the registration transaction 124 is to be committed to a blockchain 104.
  • the relay node 112 receives (308) a cryptocurrency transaction 148 including a relay value 152.
  • the cryptocurrency transaction 148 has a signature that includes a hash of the cryptocurrency transaction 148.
  • the cryptocurrency transaction 148 is a cryptocurrency transaction.
  • the signature can include an identity of the relay node 112 and the relay value 152.
  • the relay node 112 accepts (312) an amount of cryptocurrency comprising a portion of the relay value 152.
  • the relay node 112 transmits the cryptocurrency transaction 124 to the one or more other nodes 116, 120 of the cryptocurrency network 108.
  • the relay path can continue, with each next-hop first validating that every hop so far has properly signed its own next-hop.
  • the relay node 112 transmits (316) the cryptocurrency transaction 148 to the one or more other nodes 116, 120 of the cryptocurrency network 108.
  • the payment scheme creates a natural revenue-sharing scenario among relay nodes and block proposers.
  • the embodiments disclosed herein incentivize a relay node to connect (directly or indirectly) to as much stake in the relay system 100 as possible.
  • the relay system 100 also allows new relay nodes (e.g., nodes 116, 120) to enter the network 108 and compete with existing relay nodes (e.g., node 112) by offering higher payments to next-hops.
  • FIG.4 is a high-level block diagram showing an example of a hardware architecture that can be used to implement some or all of a relay system for a blockchain, in accordance with one or more embodiments.
  • the computer system 400 is a special purpose computing device.
  • the special-purpose computing device is hard-wired to perform multi-party cryptocurrency transactions, or includes digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques herein, or include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination.
  • ASICs application-specific integrated circuits
  • FPGAs field programmable gate arrays
  • the special-purpose computing devices are desktop computer systems, portable computer systems, handheld devices, network devices or any other device that incorporates both hard-wired or program logic to implement the techniques.
  • the computer system 400 includes a bus 402 or other communication mechanism for communicating information, and one or more computer hardware processors 404 coupled to the bus 402 for processing information.
  • the hardware processors 404 are general-purpose microprocessors.
  • the computer system 400 also includes a main memory 406, such as a random-access memory (RAM) or other dynamic storage device, coupled to the bus 402 for storing information and instructions to be executed by processors 404.
  • the main memory 406 is used for storing temporary variables or other intermediate information during execution of instructions to be executed by the processors 404.
  • Such instructions when stored in non-transitory storage media accessible to the processors 404, render the computer system 400 into a special-purpose machine customized to perform the operations specified in the instructions.
  • the computer system 400 further includes a read only memory (ROM) 408 or other static storage device coupled to the bus 402 for storing static information and instructions for the processors 404.
  • ROM read only memory
  • a storage device 412 such as a magnetic disk, optical disk, solid-state drive, or three-dimensional cross point memory is provided and coupled to the bus 402 for storing information and instructions.
  • the computer system 400 is coupled via the bus 402 to a display 410, such as a cathode ray tube (CRT), a liquid crystal display (LCD), plasma display, light emitting diode (LED) display, or an organic light emitting diode (OLED) display for displaying information to a computer user.
  • a display 410 such as a cathode ray tube (CRT), a liquid crystal display (LCD), plasma display, light emitting diode (LED) display, or an organic light emitting diode (OLED) display for displaying information to a computer user.
  • An input device 414 is coupled to bus 402 for communicating information and command selections to the processors 404.
  • a cursor controller 416 such as a mouse, a trackball, a touch-enabled display, or cursor direction keys for communicating direction information and command selections to the processors 404 and for controlling cursor movement on the display 410.
  • the techniques herein are performed by the computer system 400 in response to the processors 404 executing one or more sequences of one or more instructions contained in the main memory 406. Such instructions are read into the main memory 406 from another storage medium, such as the storage device 412.
  • Non-volatile media includes, such as optical disks, magnetic disks, solid-state drives, or three-dimensional cross point memory, such as the storage device 412.
  • Storage media include, such as a floppy disk, a flexible disk, hard disk, solid-state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NV-RAM, or any other memory chip or cartridge.
  • Storage media is distinct from but is used in conjunction with transmission media.
  • Transmission media participates in transferring information between storage media. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that include the bus 402.
  • various forms of media are involved in carrying one or more sequences of one or more instructions to the processors 404 for execution.
  • the instructions are initially carried on a magnetic disk or solid-state drive of a remote computer.
  • the remote computer loads the instructions into its dynamic memory and send the instructions over a telephone line using a modem.
  • a modem local to the computer system 400 receives the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal.
  • An infrared detector receives the data carried in the infrared signal and appropriate circuitry places the data on the bus 402.
  • the bus 402 carries the data to the main memory 406, from which processors 404 retrieves and executes the instructions.
  • the instructions received by the main memory 406 are optionally stored on the storage device 412 either before or after execution by processors 404.
  • the computer system 400 also includes a communication interface 418 coupled to the bus 402.
  • the communication interface 418 provides a two-way data communication coupling to a network link 420 connected to a local network 422.
  • the communication interface 418 is an integrated service digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line.
  • ISDN integrated service digital network
  • the communication interface 418 is a local area network (LAN) card to provide a data communication connection to a compatible LAN.
  • LAN local area network
  • wireless links are also implemented.
  • the network link 420 typically provides data communication through one or more networks to other data devices.
  • the network link 420 provides a connection through the local network 422 to a host computer 424 or to a cloud data center or equipment operated by an Internet Service Provider (ISP) 426.
  • ISP Internet Service Provider
  • the ISP 426 in turn provides data communication services through the world-wide packet data communication network now commonly referred to as the "Internet” 428.
  • the local network 422 and Internet 428 both use electrical, electromagnetic or optical signals that carry digital data streams.
  • Such special-purpose circuitry can be in the form of, for example, one or more application-specific integrated circuits (ASICs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), system-on-a-chip systems (SOCs), etc.
  • ASICs application-specific integrated circuits
  • PLDs programmable logic devices
  • FPGAs field-programmable gate arrays
  • SOCs system-on-a-chip systems
  • Machine-readable medium includes any mechanism that can store information in a form accessible by a machine (a machine may be, for example, a computer, network device, cellular phone, personal digital assistant (PDA), manufacturing tool, any device with one or more processors, etc.).
  • a machine-accessible medium includes recordable/non-recordable media (e.g., RAM or ROM; magnetic disk storage media; optical storage media; flash memory devices; etc.), etc.
  • logic means: i) special-purpose hardwired circuitry, such as one or more application-specific integrated circuits (ASICs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), or other similar device(s); ii) programmable circuitry programmed with software and/or firmware, such as one or more programmed general-purpose microprocessors, digital signal processors (DSPs) and/or microcontrollers, system-on-a-chip systems (SOCs), or other similar device(s); or iii) a combination of the forms mentioned in i) and ii).
  • ASICs application-specific integrated circuits
  • PLDs programmable logic devices
  • FPGAs field programmable gate arrays
  • firmware such as one or more programmed general-purpose microprocessors, digital signal processors (DSPs) and/or microcontrollers, system-on-a-chip systems (SOCs), or other similar device(s); or iii) a combination of the forms mentioned in

Abstract

Methods, systems, and apparatuses for enabling a relay system for a blockchain are disclosed. A relay node of a cryptocurrency network transmits a relay registration transaction to one or more other nodes of the cryptocurrency network. The relay registration transaction includes relay registration data. The relay registration transaction is to be committed to the blockchain. The relay node receives a cryptocurrency transaction including a relay value. The relay node accepts an amount of cryptocurrency including a portion of the relay value. The relay node transmits the cryptocurrency transaction to the one or more other nodes of the cryptocurrency network.

Description

RELAY SYSTEM FOR BLOCKCHAIN
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims the benefit of priority from U.S. Provisional Application No. 62/875,395, filed on July 17, 2019, which is incorporated herein by reference in its entirety.
TECHNICAL FIELD
[0002] This description relates generally to a relay system for a blockchain network.
BACKGROUND
[0003] A public ledger is a tamperproof sequence of data that can be read and augmented. Shared public ledgers can revolutionize the way a modem society operates. Traditional transactions such as payments, asset transfers, and titling— can be secured in an order in which they occur. New types of transactions such as cryptocurrencies and smart contracts can be enabled. Corruption can be reduced, intermediaries removed, and a new paradigm for trust can be ushered in.
[0004] However, traditional public ledgers do not achieve their potential. Traditional public ledgers can put all trust on a single entity, who can arbitrarily refuse to publicize payments made by given keys, and is vulnerable to a cyberattack. Indeed, once the single central authority is compromised, so is the entire system. Some traditional systems are expensive to run, waste computation and other valuable resources, concentrate power in the hands of new entities (miners), suffer from considerable ambiguity (forks), and have long latency and small throughput. Other traditional implementations are permissioned, or assume the ability of punishing malicious users, or both, and/or trust that some subset of users are immune to cyberattacks for a suitably long time. SUMMARY
[0005] Methods, systems, and apparatuses for enabling a relay system for a blockchain are disclosed. A relay node of a cryptocurrency network transmits a relay registration transaction to one or more other nodes of the cryptocurrency network. The relay registration transaction includes relay registration data. The relay registration transaction is to be committed to the blockchain. The relay node receives a cryptocurrency transaction including a relay value. The relay node accepts an amount of cryptocurrency including a portion of the relay value. The relay node transmits the cryptocurrency transaction to the one or more other nodes of the cryptocurrency network.
[0006] In some embodiments, the cryptocurrency transaction has a signature including a hash of the cryptocurrency transaction, wherein the cryptocurrency transaction is a cryptocurrency transaction. The signature includes an identity of the relay node and the relay value.
[0007] In some embodiments, the relay node accesses a list of user nodes of the cryptocurrency network. The cryptocurrency network is a cryptocurrency network.
[0008] In some embodiments, the relay node accesses, a list of one or more other relay nodes of the cryptocurrency network.
[0009] In some embodiments, the accepting the amount of cryptocurrency includes identifying, by the relay node, another cryptocurrency transaction on the blockchain. The other cryptocurrency transaction credits the relay node the portion of the relay value.
[00010] In some embodiments, the relay node is associated with exclusive access to a portion of staked cryptocurrency.
[00011] In some embodiments, the relay node includes a stored copy of the blockchain. The blockchain is a cryptocurrency blockchain. [00012] In some embodiments, the relay registration data includes at least one of a logical address of the relay node, a measurement of available bandwidth of the relay node, a geographic location of the relay node, a number of connections allowed by the relay node, a fee of the relay node, or a service period of the relay node.
[00013] In some embodiments, the relay node verifies that the relay registration transaction has been committed to the blockchain.
BRIEF DESCRIPTION OF THE DRAWINGS
[00014] FIG. 1 illustrates an example block diagram of a relay system for a blockchain, in accordance with one or more embodiments.
[00015] FIG. 2 illustrates a relay network, in accordance with one or more embodiments.
[00016] FIG. 3 illustrates a process for operation of a relay system for a blockchain, in accordance with one or more embodiments.
[00017] FIG. 4 is a high-level block diagram showing an example of a hardware architecture that can be used to implement some or all of a relay system for a blockchain, in accordance with one or more embodiments.
DETAILED DESCRIPTION
[00018] The embodiments discloses herein provide methods, systems, and apparatuses for enabling a relay system for a blockchain. The embodiments are directed to a relay system or a relay market that is implemented on a blockchain. Implementing the relay system on a blockchain generates incentives for running relay operations on the blockchain. A blockchain consensus protocol that is secure against network attacks is supported. The blockchain consensus protocol does not fork even when the blockchain network is partitioned. The embodiments disclosed herein thus enable the blockchain to use untrusted relay nodes to efficiently spread messages in the network without imposing permission controls about which nodes may act as relays. In particular, any node can register itself as a relay on the blockchain. A node performing relay operations competes with other nodes to spread cryptocurrency transactions. The node obtains remuneration when a cryptocurrency transaction that the node relayed is committed to the blockchain. The relay system disclosed encourages a larger number of nodes to join the blockchain network as relays and compete on quality of service, thus contributing to network decentralization.
[00019] In some embodiments, a relay node of a cryptocurrency network transmits a relay registration transaction to one or more other nodes of the cryptocurrency network. The relay registration transaction includes relay registration data. The relay registration transaction is to be committed to the blockchain. The relay node receives a cryptocurrency transaction including a relay value. The relay node accepts an amount of cryptocurrency including a portion of the relay value. The relay node transmits the cryptocurrency transaction to the one or more other nodes of the cryptocurrency network.
[00020] In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the disclosed
embodiments. It will be apparent, however, that the embodiments may be practiced without these specific details.
[00021] In the drawings, specific arrangements or orderings of schematic elements, such as those representing devices, modules, instruction blocks and data elements, are shown for ease of description. However, it should be understood by those skilled in the art that the specific ordering or arrangement of the schematic elements in the drawings is not meant to imply that a particular order or sequence of processing, or separation of processes, is required. Further, the inclusion of a schematic element in a drawing is not meant to imply that such element is required in all embodiments or that the features represented by such element may not be included in or combined with other elements in some embodiments. [00022] Further, in the drawings, where connecting elements, such as solid or dashed lines or arrows, are used to illustrate a connection, relationship, or association between or among two or more other schematic elements, the absence of any such connecting elements is not meant to imply that no connection, relationship, or association can exist. In other words, some connections, relationships, or associations between elements are not shown in the drawings so as not to obscure the disclosure. In addition, for ease of illustration, a single connecting element is used to represent multiple connections, relationships or associations between elements. For example, where a connecting element represents a communication of signals, data, or instructions, it should be understood by those skilled in the art that such element represents one or multiple signal paths (e.g., a bus), as may be needed, to affect the communication.
[00023] Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the various described embodiments. However, it will be apparent to one of ordinary skill in the art that the various described embodiments may be practiced without these specific details.
[00024] Several features are described hereafter that can each be used independently of one another or with any combination of other features. However, any individual feature may not address any of the problems discussed above or might only address one of the problems discussed above. Some of the problems discussed above might not be fully addressed by any of the features described herein. Although headings are provided, information related to a particular heading, but not found in the section having that heading, may also be found elsewhere in this description.
[00025] FIG. 1 illustrates an example block diagram of a relay system 100 for a blockchain 104, in accordance with one or more embodiments. The relay system 100 includes a network 108, and the blockchain 104. In some embodiments, the blockchain 104 is a cryptocurrency blockchain. The network 108 includes portions of the Internet 428 and network link 420 illustrated and described in more detail with reference to FIG. 4. In some embodiments, the network 108 is a cryptocurrency network. In other embodiments, the relay system 100 can include additional or fewer components, and the components can be connected in a different manner.
[00026] The relay system 100 is implemented on the blockchain 104, for example, the Algorand blockchain. The relay system 100 is sometimes referred to as a“relay market.”
The relay system 100 generates incentives for running relay operations using nodes (e.g., node 112) designated as relay nodes. The relay system 100 supports a consensus protocol, for example, the Algorand consensus protocol, that is secure against network attacks. The consensus protocol does not fork even when the network 108 is partitioned. Hence, the blockchain 104 can use untrusted relay nodes (e.g., node 112) to efficiently spread messages in the network 108 without imposing permission controls with respect to which nodes of the network 108 can operate as relay nodes. In particular, any node (e.g., node 112) of the network 108 can register itself as a relay node on the blockchain 104. Relay nodes can compete with respect to propagating cryptocurrency transactions (e.g., transaction 148) in the network 108.
[00027] A cryptocurrency transaction 148 transfers a particular amount of a cryptoasset from one cryptoasset account to another. In some embodiments, the cryptocurrency transaction 148 is a cryptocurrency transaction. A cryptoasset can refer to a cryptocurrency, e.g., Algo or Bitcoin, that is designed to work as a medium of exchange that uses
cryptography to secure financial transactions, control the creation of additional units, and verify the transfer of cryptoassets. A cryptoasset can also be an encrypted title for an automobile or home, a mortgage, or any other encrypted financial asset. A cryptoasset account allows a user to store cryptocurrencies manage their balances of cryptocurrencies. A cryptoasset account has an account identifier, which is a unique identifier. A user can access their cryptoasset account by logging into the blockchain 104 or by downloading and accessing a mobile application. The cryptoasset account shows the current balance for the cryptocurrency and displays the user’s transactions. A user can send a request to another party having another cryptoasset account for a specific amount of cryptocurrency. In some embodiments, relay nodes (e.g., node 112) are paid when a cryptocurrency transaction (e.g., transaction 148) that they relay is committed to the blockchain 104. The relay system 100 is thus designed to encourage more relay nodes to join the cryptocurrency network 108 and compete with other relay nodes with respect to quality of service, thus promoting
decentralization of the cryptocurrency network 108.
[00028] In some embodiments, the node 112 transmits a relay registration transaction 124 to one or more other nodes 116, 120 of the cryptocurrency network 108. The relay registration transaction 124 includes relay registration data 128 and registers the node 112 as a relay node. The relay registration transaction 124 is to be committed to the blockchain 104. For example, the node 112 registers itself as a relay node by issuing the special transaction 124 and having it appear on the blockchain 104. The relay registration transaction 124 is sometimes referred to as“Relay Reg.” In some embodiments, the relay registration data 128 includes at least one of a logical address of the relay node 112. For example, the relay registration transaction 124 can specify an address to which a user node 142 can connect. In some embodiments, the relay registration data 128 includes at least one of a measurement of available bandwidth of the relay node 112, a geographic location of the relay node 112, a number of connections allowed by the relay node 112, a fee of the relay node, or a service period of the relay node 112. For example, the relay node 112 can specify its bandwidth, geographic location, a maximum number of connections allowed, a minimum fee, or a service period. The relay node 112 can have its own stake in the blockchain 104 and can also operate as a user node. However, a user node (e.g., user node 142 is not necessarily a relay node.
[00029] In some embodiments, the relay node 112 maintains, accesses, or retrieves a list 136 of user nodes (e.g., nodes 142, 140) of the cryptocurrency network 108. Each user node (e.g., node 142) of the list 136 of user nodes maintains, accesses, or retrieves a list 144 of relay nodes (e.g., relay node 112) of the cryptocurrency network 108. For example, a client (e.g., the Algorand client) of the user node 142 maintains the list 144 of currently registered relay nodes (e.g., node 112) and assigns priorities to the relay nodes of the list 144 based on factors such as geographical location, service quality, or price. As a result of latencies and bandwidth constraints, the user node 142 does not transmit transactions to all registered relay nodes of the cryptocurrency network 108. Instead, the user node 142 (and its Algorand client) maintains connections to c relays, where c is a constant, for example, c = 10. This list 144 of relay nodes is randomly selected using probabilities based on the priority values of the relay nodes in the list 144, to protect the user node 142 from connecting to malfunctioning relay nodes.
[00030] In some embodiments, the relay node 112 receives the cryptocurrency transaction 148. The cryptocurrency transaction 148 includes a relay value 152. The cryptocurrency transaction 148 has a signature that includes a hash of the cryptocurrency transaction 148. In some embodiments, the cryptocurrency transaction 148 is a cryptocurrency transaction. The signature can include an identity of the relay node 112 and the relay value 152. For example, for each cryptocurrency transaction tx issued by a user node i, and each relay node r to which the user node i is connected, the user node i sends to the relay node r its signature sir = Sigi(H(tx), r, Pr) along with tx. Here, Pr is a price in cryptocurrency (e.g., Algos) that user node i is willing to pay relay node r for having tx sent to the rest of the cryptocurrency network 108. The value of Pr can differ for different relay nodes.
[00031] The cryptocurrency network 108 includes multiple relay nodes 112, 116. Each relay node (e.g., node 112) includes a list 156 of other relay nodes (e.g., 116, 120) of the cryptocurrency network 108. For example, each relay node r maintains its own set of next- hops, including both relay nodes (e.g., node 116) and user nodes (e.g., user node 140). The relay node r uses the network resources to maintain connections to user nodes 142, 140 and relay nodes 116, 120. After receiving tx and sir from user node i, relay node r can send tx to all of its connections or to any subset of connections. Depending on the number of connections relay node r has and its bandwidth, node r can maintain a priority list as to which next-hops the messages will go. For each selected next-hop, r’, node r sends tx, sir, and srr’ = Sigr(H(tx), r’, Pr’). Here, Pr’ is the price that node r is willing to pay node r’ for having tx sent to user nodes (e.g., node 160) to which node r does not have a connection.
[00032] In some embodiments, the cryptocurrency network 108 includes multiple relay nodes 112, 116. Each relay node 112 includes a list 156 of other relay nodes 120 of the cryptocurrency network 108. The cryptocurrency network 108 includes multiple user nodes 132, 140. Each user node 132 includes a list 144 of a subset of the multiple relay nodes 112, 116. A blockchain 104 includes blocks 168. Each block 168 includes at least one of a relay registration transaction 124 establishing a node 112 of the cryptocurrency network 108 as a relay node, or a cryptocurrency transaction 148 crediting, by a user node 132 of the multiple user nodes 132, 140, an amount of cryptocurrency to the relay node 112.
[00033] The relay node 112 accepts an amount of cryptocurrency including a portion of the relay value 152. The relay node 112 transmits the cryptocurrency transaction 124 to the one or more other nodes 116, 120 of the cryptocurrency network 108. The relay path can continue, with each next-hop first validating that every hop so far has properly signed its own next-hop, that is, sir, srr’. In some embodiments, accepting the amount of cryptocurrency includes identifying, by the relay node 112, another cryptocurrency transaction 164 on the blockchain 104. The other cryptocurrency transaction 164 credits the relay node 112 the portion of the relay value 152. In the relay system 100, the prices along a relay path are non- increasing (Pr ³ Pr ³ ...), such that all payments along a relay path are covered by the original sender node i. In particular, node i pays Pr and relay node r receives (Pr– Pr’). In this manner, only the balance of node i needs to be checked when validating a relay path from node i.
[00034] In some embodiments, the relay node 112 includes a stored copy 172 of the blockchain 104. In some embodiments, the relay node 112 uses the stored copy 172 of the blockchain 104 to verify that the relay registration transaction 124 has been committed to the blockchain 104. When a cryptocurrency transaction is committed to the blockchain 104, the payment is made as follows. A block proposer, l, includes a transaction tx along with the relay path that has l as the last hop in the proposed block 168. The block 168 that appears in the blockchain containing tx and a relay path (i, r, r’, ... , r’’, l) triggers the following relay- fee payments. The value Pr is deducted from the account balance of node i and the value (Pr – Pr’) is added to the account balance of node r. Finally, the value Pr’’l is added to the account balance of node l. If tx has reached node l via more than one path by the time node l proposes a block, node l can choose to include the path that has the highest“bang-per-buck,” namely, the payment that node l receives averaged over the space taken up by the cryptocurrency transaction and the relay path. The user node that issues tx pays only when tx appears on the blockchain 104 and is only charged once.
[00035] The payment scheme creates a natural revenue-sharing scenario among relay nodes and block proposers. The embodiments disclosed herein incentivize a relay node to connect (directly or indirectly) to as much stake in the relay system 100 as possible. The relay system 100 also allows new relay nodes (e.g., nodes 116, 120) to enter the network 108 and compete with existing relay nodes (e.g., node 112) by offering higher payments to next- hops. Since blocks (e.g., block 168) are generated by the blockchain 104, and since the block proposers are randomly chosen via cryptocurrency self-selection, a block proposer’s incentive to wait and collect transactions where the block proposer is better paid is essentially counter-measured by the risk of not having its proposed block confirmed and thus not getting paid at all. In some embodiments, to reduce the space in a block (e.g., block 168) taken up by relay paths, the relay system 100 imposes an upper-bound on the number of hops a relay path may have. Moreover, aggregate signatures are used to further compress the space needed by signatures of the relay nodes (e.g., node 112).
[00036] In some embodiments, the relay node 112 is associated with exclusive access to a portion of staked cryptocurrency. Although user nodes 142, 140, 160 and relay nodes 112, 116, 120 can select their local preferences about how much to pay a next-hop, the
embodiments disclosed provide a revenue sharing scheme that is implemented in the relay system 100 software. A relay node r is paid according to its exclusively accessible stake. That is, the amount of stake owned by nodes that a transaction tx will not be able to reach if tx is not sent to node r. The embodiments disclosed are in accordance with the mechanism design principle for achieving incentive compatibility: an entity should be charged for the marginal social loss caused to others due to its existence and should be paid for the marginal social gain. In the relay system 100, such exclusiveness of a relay node is measured by tracking and paying only the relay paths that appear in transactions that get committed to the blockchain 104.
[00037] FIG.2 illustrates a relay network 200, in accordance with one or more
embodiments. The relay network 200 includes three relay nodes, r, r’1, and r’2. In other embodiments, the relay network 200 can include additional or fewer components, and the components can be connected in a different manner. Each user node connects to a single relay node. Node r connects to nodes r’1 and r’2, and the latter two nodes are not connected to each other. User node i connects to node r and sends out a transaction tx with a relay fee Pr. Suppose node r’1 has exclusive access to x fraction of the total stake in cryptocurrency (e.g., Algorand) and node r’2 has exclusive access to y fraction, where x + y < 1, as node r also has its own exclusively accessible stake. Then node r’s proposed price for r’1 is Pr’1 = aPrxb and that for r’2 is Pr’2 = aPryb, where a Î (0, 1], b ³ 0 are constants that don’t depend on x, y. With probability x, the next block proposer is connected to r’1, and with probability y it is connected to r’2. The expected utilities of r’1 and r’2 are u’1 = aPrx1+b and u
Figure imgf000014_0001
= aPry1+b. As long as b ³ 0, the utilities are convex.
[00038] If a relay node, r’1, adds multiple“sybil” hops that are all controlled by node r’1, it makes the relay path look longer, e.g., (i, r, r’1, r’11, r’12, ... , l). However, the expected utility is still u’1 (since that relay node essentially“pays itself”). If node r’1 splits its exclusively accessible stake among multiple relay nodes that it controls, then from the perspective of another relay node, r, there are now several relays, r’11, r’12, ... , r’1k. Each of these relay nodes has an exclusively accessible stake x1, x2, ... , xk, such that x1 + x2 + · · · + xk = x. Due to convexity of the utility function, the total expected utility of all these relays is at most u’1, and is strictly less than x when b > 0. Even when each user node is connected to multiple relays and the sum of the (non-exclusive) stakes accessible by x1, ... , xk is larger than x, the sum of their exclusive stakes is still at most x, and r’1 does not get paid more by doing so.
[00039] If b > 0 then the relay nodes can be better off merging multiple of them into one, and a linear function aPr can be used to disincentivize the nodes from doing so. However, in this case, the relays are completely indifferent from splitting or merging. Depending on other incentives they may have (such as network cost and privacy considerations), which may push them towards either direction, b can be set close to but not exactly 0.
[00040] In the network 108, a user is connected to about c relays. Thus, except some rare cases (e.g., one“big” relay serving as the only entry to a university or a geographic region, or a small user who can only afford to connect to one relay), no relay has 100% exclusive access to any node. According to the simplest notion of exclusively accessible stake, the relays will all receive 0 payments. Hence degrees of“exclusiveness” are implemented. Paying relays only for relay paths that are included in the blocks helps discover the network structure. However, if all relay paths are paid the same way, then there is no measurement of exclusiveness and a relay’s utility is not affected at all, no matter how many clones it creates. Referring again to FIG.2 and with b = 0, suppose r’1 pretends to be c relays (r’11, ... , r’1c) and all of them are connected to a node with x fraction of stake. Paying for relay paths included in the blockchain 104 will still give r’1 an expected utility aPr’1x, because with probability x, one of r’1’s relays appears in the block.
[00041] A relay’s exclusiveness can be measured over time and it can be allowed to decrease as more relay paths are discovered towards the same node. For example, when a user i’s transaction is included in the block with leader l for the first time, its immediate next hop r has exclusiveness 1 to l. If later another relay path from i to l is discovered on the blockchain 104, with i’s immediate next hop being r’, then both r and r’ get exclusiveness 1/2 to l. If a third path is discovered with r’’ being the immediate next hop, then all get exclusiveness 1/3. Other decreasing functions may as well be used as a measurement.
Payment a relay receives given a relay path is proportional to its exclusiveness to the corresponding block proposer. To avoid maintaining such a list of exclusiveness for all pairs of nodes, learning techniques are used to maintain statistics about exclusiveness up to a reasonable extent. [00042] The embodiments disclosed herein makes Sybil attacks worse off. Suppose r’1 pretends to be c relays, r’11, ... , r’1c, all connected to a node l with x fraction of stake. If all of them relay messages to l and have relay paths on-chain, then their exclusiveness are all strictly less than 1 and the utility of r’1 decreases. If r’1 makes sure that only one of them, say r’11, relays messages to l, such that r’11’s exclusiveness is 1, then its utility still doesn’t increase. Combining with the embodiments disclosed for computing a relay’s priorities in a user’s individual list, the priorities of r’12, ... , r’1c in l’s list can be made to drop quickly, so that l soon stops connecting to them.
[00043] Further, the embodiments disclosed herein drives the network 108 away from being centralized. Suppose there is a big relay r that has exclusive access to a large fraction of the stake, with exclusiveness 1. A smaller relay r’ may be willing to convince nodes in this group to directly connect to it, so that it gets at least exclusiveness 1/2 to them. This incentivizes relays to compete for users. An understanding about the relay’s costs, by adjusting the exclusiveness measurement function, can guide the network 108 towards a healthy degree of connectivity for users. For example, being 1/c exclusive can still be profitable for a relay, but being 1/(2c) exclusive may not be. Thus the relays gradually converge to a network where each user is connected to about c relays, and there are not many overlapping relay paths. Since overlapping relay paths are wasted in the system, a desirable network structure is where a user is connected to sufficiently many relays to ensure message delivery, but not to too many of them.
[00044] In additional embodiments, to decide the relays’ priorities in a user’s list, the priority grows/decreases superlinearly, so as to further disincentivize Sybil attacks. An efficient (and simple) learning algorithm can be implemented to maintain (statistics of) relays’ exclusiveness. The exclusiveness measurement can start with merely decreasing exponentially. A reasonable estimation of relays’ costs will help design the exclusiveness function for a healthy network structure. In general, the network-formation game among relays is provided.
[00045] FIG.3 illustrates a process for operation of a relay system 100 for a blockchain 104, in accordance with one or more embodiments. In some embodiments, the process of FIG.3 is performed by the relay system 100. The relay system 100 is illustrated and described in more detail with reference to FIG.1. Other entities perform some or all of the steps of the process in other embodiments. Likewise, embodiments may include different and/or additional steps, or perform the steps in different orders.
[00046] A node 112 of the cryptocurrency network 108 transmits (304) a relay registration transaction 124 to one or more other nodes 116 of the cryptocurrency network 108. The relay registration transaction 124 includes relay registration data 128 and registers the node 112 as a relay node. The registration transaction 124 is to be committed to a blockchain 104.
[00047] The relay node 112 receives (308) a cryptocurrency transaction 148 including a relay value 152. The cryptocurrency transaction 148 has a signature that includes a hash of the cryptocurrency transaction 148. In some embodiments, the cryptocurrency transaction 148 is a cryptocurrency transaction. The signature can include an identity of the relay node 112 and the relay value 152.
[00048] The relay node 112 accepts (312) an amount of cryptocurrency comprising a portion of the relay value 152. The relay node 112 transmits the cryptocurrency transaction 124 to the one or more other nodes 116, 120 of the cryptocurrency network 108. The relay path can continue, with each next-hop first validating that every hop so far has properly signed its own next-hop.
[00049] The relay node 112 transmits (316) the cryptocurrency transaction 148 to the one or more other nodes 116, 120 of the cryptocurrency network 108. The payment scheme creates a natural revenue-sharing scenario among relay nodes and block proposers. The embodiments disclosed herein incentivize a relay node to connect (directly or indirectly) to as much stake in the relay system 100 as possible. The relay system 100 also allows new relay nodes (e.g., nodes 116, 120) to enter the network 108 and compete with existing relay nodes (e.g., node 112) by offering higher payments to next-hops.
[00050] FIG.4 is a high-level block diagram showing an example of a hardware architecture that can be used to implement some or all of a relay system for a blockchain, in accordance with one or more embodiments. In the implementation of FIG.4, the computer system 400 is a special purpose computing device. The special-purpose computing device is hard-wired to perform multi-party cryptocurrency transactions, or includes digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques herein, or include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. In various implementations, the special-purpose computing devices are desktop computer systems, portable computer systems, handheld devices, network devices or any other device that incorporates both hard-wired or program logic to implement the techniques.
[00051] The computer system 400 includes a bus 402 or other communication mechanism for communicating information, and one or more computer hardware processors 404 coupled to the bus 402 for processing information. In some implementations, the hardware processors 404 are general-purpose microprocessors. The computer system 400 also includes a main memory 406, such as a random-access memory (RAM) or other dynamic storage device, coupled to the bus 402 for storing information and instructions to be executed by processors 404. In one implementation, the main memory 406 is used for storing temporary variables or other intermediate information during execution of instructions to be executed by the processors 404. Such instructions, when stored in non-transitory storage media accessible to the processors 404, render the computer system 400 into a special-purpose machine customized to perform the operations specified in the instructions.
[00052] In an implementation, the computer system 400 further includes a read only memory (ROM) 408 or other static storage device coupled to the bus 402 for storing static information and instructions for the processors 404. A storage device 412, such as a magnetic disk, optical disk, solid-state drive, or three-dimensional cross point memory is provided and coupled to the bus 402 for storing information and instructions.
[00053] In an implementation, the computer system 400 is coupled via the bus 402 to a display 410, such as a cathode ray tube (CRT), a liquid crystal display (LCD), plasma display, light emitting diode (LED) display, or an organic light emitting diode (OLED) display for displaying information to a computer user. An input device 414, including alphanumeric and other keys, is coupled to bus 402 for communicating information and command selections to the processors 404. Another type of user input device is a cursor controller 416, such as a mouse, a trackball, a touch-enabled display, or cursor direction keys for communicating direction information and command selections to the processors 404 and for controlling cursor movement on the display 410.
[00054] According to one implementation, the techniques herein are performed by the computer system 400 in response to the processors 404 executing one or more sequences of one or more instructions contained in the main memory 406. Such instructions are read into the main memory 406 from another storage medium, such as the storage device 412.
Execution of the sequences of instructions contained in the main memory 406 causes the processors 404 to perform the process steps described herein. In alternative implementations, hard-wired circuitry is used in place of or in combination with software instructions. [00055] The term "storage media" as used herein refers to any non-transitory media that store both data or instructions that cause a machine to operate in a specific fashion. Such storage media includes both non-volatile media or volatile media. Non-volatile media includes, such as optical disks, magnetic disks, solid-state drives, or three-dimensional cross point memory, such as the storage device 412. Common forms of storage media include, such as a floppy disk, a flexible disk, hard disk, solid-state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NV-RAM, or any other memory chip or cartridge. Storage media is distinct from but is used in conjunction with transmission media. Transmission media participates in transferring information between storage media. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that include the bus 402.
[00056] In an implementation, various forms of media are involved in carrying one or more sequences of one or more instructions to the processors 404 for execution. The instructions are initially carried on a magnetic disk or solid-state drive of a remote computer. The remote computer loads the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to the computer system 400 receives the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector receives the data carried in the infrared signal and appropriate circuitry places the data on the bus 402. The bus 402 carries the data to the main memory 406, from which processors 404 retrieves and executes the instructions. The instructions received by the main memory 406 are optionally stored on the storage device 412 either before or after execution by processors 404.
[00057] The computer system 400 also includes a communication interface 418 coupled to the bus 402. The communication interface 418 provides a two-way data communication coupling to a network link 420 connected to a local network 422. The communication interface 418 is an integrated service digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. In another implementation, the communication interface 418 is a local area network (LAN) card to provide a data communication connection to a compatible LAN. In some implementations, wireless links are also implemented.
[00058] The network link 420 typically provides data communication through one or more networks to other data devices. The network link 420 provides a connection through the local network 422 to a host computer 424 or to a cloud data center or equipment operated by an Internet Service Provider (ISP) 426. The ISP 426 in turn provides data communication services through the world-wide packet data communication network now commonly referred to as the "Internet" 428. The local network 422 and Internet 428 both use electrical, electromagnetic or optical signals that carry digital data streams.
[00059] Unless contrary to physical possibility, it is envisioned that (i) the methods/steps described herein may be performed in any sequence and/or in any combination, and that (ii) the components of respective embodiments may be combined in any manner. The machine- implemented operations described above can be implemented by programmable circuitry programmed/configured by software and/or firmware, or entirely by special-purpose
("hardwired") circuitry, or by a combination of such forms. Such special-purpose circuitry (if any) can be in the form of, for example, one or more application-specific integrated circuits (ASICs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), system-on-a-chip systems (SOCs), etc.
[00060] Software or firmware to implement the techniques introduced here may be stored on a machine-readable storage medium and may be executed by one or more general-purpose or special-purpose programmable microprocessors. A "machine-readable medium", as the term is used herein, includes any mechanism that can store information in a form accessible by a machine (a machine may be, for example, a computer, network device, cellular phone, personal digital assistant (PDA), manufacturing tool, any device with one or more processors, etc.). For example, a machine-accessible medium includes recordable/non-recordable media (e.g., RAM or ROM; magnetic disk storage media; optical storage media; flash memory devices; etc.), etc.
[00061] The term "logic", as used herein, means: i) special-purpose hardwired circuitry, such as one or more application-specific integrated circuits (ASICs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), or other similar device(s); ii) programmable circuitry programmed with software and/or firmware, such as one or more programmed general-purpose microprocessors, digital signal processors (DSPs) and/or microcontrollers, system-on-a-chip systems (SOCs), or other similar device(s); or iii) a combination of the forms mentioned in i) and ii).
[00062] Any or all of the features and functions described above can be combined with each other, except to the extent it may be otherwise stated above or to the extent that any such embodiments may be incompatible by virtue of their function or structure, as will be apparent to persons of ordinary skill in the art. Unless contrary to physical possibility, it is envisioned that (i) the methods/steps described herein may be performed in any sequence and/or in any combination, and that (ii) the components of respective embodiments may be combined in any manner.
[00063] Although the subject matter has been described in language specific to structural features and/or acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as examples of implementing the claims and other equivalent features and acts are intended to be within the scope of the claims.
[00064] In the foregoing description, embodiments have been described with reference to numerous specific details that may vary from implementation to implementation. The description and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. The sole and exclusive indicator of the scope of the embodiments, and what is intended by the applicants to be the scope of the embodiments, is the literal and equivalent scope of the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. In addition, when we use the term“further including,” in the foregoing description or following claims, what follows this phrase can be an additional step or entity, or a sub- step/sub-entity of a previously-recited step or entity.

Claims

WHAT IS CLAIMED IS: 1. A method comprising:
transmitting, by a node of a cryptocurrency network, a relay registration transaction to one or more other nodes of the cryptocurrency network, the relay registration transaction comprising relay registration data, the relay registration transaction registering the node as a relay node, the relay registration transaction for inclusion in a blockchain;
receiving, by the relay node, a cryptocurrency transaction comprising a relay value; accepting, by the relay node, an amount of cryptocurrency comprising a portion of the relay value; and
transmitting, by the relay node, the cryptocurrency transaction to the one or more other nodes of the cryptocurrency network. 2. The method of claim 1, wherein the cryptocurrency transaction has a signature
comprising:
a hash of the cryptocurrency transaction;
an identity of the relay node; and
the relay value. 3. The method of claim 1, further comprising accessing, by the relay node, a list of user nodes of the cryptocurrency network, each user node of the list of user nodes maintaining a list of relay nodes of the cryptocurrency network. 4. The method of claim 1, wherein the accepting the amount of cryptocurrency
comprises identifying, by the relay node, another cryptocurrency transaction on the blockchain, the other cryptocurrency transaction crediting the relay node the portion of the relay value. 5. The method of claim 1, wherein the relay node is associated with exclusive access to a portion of staked cryptocurrency. 6. The method of claim 1, wherein the relay node comprises a stored copy of the
blockchain, and wherein the blockchain is a cryptocurrency blockchain. 7. The method of claim 1, wherein the relay registration data comprises at least one of: a logical address of the relay node;
a measurement of available bandwidth of the relay node;
a geographic location of the relay node;
a number of connections allowed by the relay node;
a fee of the relay node; or
a service period of the relay node. 8. The method of claim 1, further comprising verifying, by the relay node, that the relay registration transaction has been committed to the blockchain. 9. A cryptocurrency network comprising:
a plurality of relay nodes, each relay node comprising a list of other relay nodes of the cryptocurrency network;
a plurality of user nodes, each user node comprising a list of a subset of the plurality of relay nodes; and
a blockchain comprising blocks, each block comprising at least one of: a relay registration transaction establishing a node of the cryptocurrency network as a relay node; or
a cryptocurrency transaction crediting, by a user node of the plurality of user nodes, an amount of cryptocurrency to the relay node. 10. The cryptocurrency network of claim 9, wherein the cryptocurrency transaction has a signature comprising:
a hash of the cryptocurrency transaction;
an identity of the relay node; and
a relay value of the cryptocurrency transaction. 11. The cryptocurrency network of claim 9, wherein the relay node is configured to access a list of the plurality of user nodes. 12. The cryptocurrency network of claim 9, wherein the relay node is associated with exclusive access to a portion of staked cryptocurrency. 13. The cryptocurrency network of claim 9, wherein the relay node comprises a stored copy of the blockchain, and wherein the blockchain is a cryptocurrency blockchain. 14. The cryptocurrency network of claim 9, wherein the relay registration transaction comprises at least one of:
a logical address of the relay node;
a measurement of available bandwidth of the relay node;
a geographic location of the relay node;
a number of connections allowed by the relay node; a fee of the relay node; or
a service period of the relay node. 15. A non-transitory computer readable storage medium storing computer instructions, which when executed by one or more computer processors cause the one or more computer processors to:
transmit, by a relay node of a cryptocurrency network, a relay registration transaction to one or more other nodes of the cryptocurrency network, the relay registration transaction comprising relay registration data, the relay registration transaction to be committed to a blockchain;
receive, by the relay node, a cryptocurrency transaction comprising a relay value; accept, by the relay node, an amount of cryptocurrency comprising a portion of the relay value; and
transmit, by the relay node, the cryptocurrency transaction to the one or more other nodes of the cryptocurrency network. 16. The non-transitory computer readable storage medium of claim 15, wherein the
cryptocurrency transaction has a signature comprising:
a hash of the cryptocurrency transaction, wherein the cryptocurrency transaction is a cryptocurrency transaction;
an identity of the relay node; and
the relay value. 17. The non-transitory computer readable storage medium of claim 15, wherein the
computer instructions, when executed by the one or more computer processors further cause the one or more computer processors to access, by the relay node, a list of user nodes of the cryptocurrency network, wherein the cryptocurrency network is a cryptocurrency network. 18. The non-transitory computer readable storage medium of claim 15, wherein the
computer instructions, when executed by the one or more computer processors further cause the one or more computer processors to access, by the relay node, a list of one or more other relay nodes of the cryptocurrency network. 19. The non-transitory computer readable storage medium of claim 15, wherein the
accepting the amount of cryptocurrency comprises performing steps to identify, by the relay node, another cryptocurrency transaction on the blockchain, the other cryptocurrency transaction crediting the relay node the portion of the relay value. 20. The non-transitory computer readable storage medium of claim 15, wherein the relay node is associated with exclusive access to a portion of staked cryptocurrency.
PCT/US2020/042600 2019-07-17 2020-07-17 Relay system for blockchain WO2021011893A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962875395P 2019-07-17 2019-07-17
US62/875,395 2019-07-17

Publications (1)

Publication Number Publication Date
WO2021011893A1 true WO2021011893A1 (en) 2021-01-21

Family

ID=74211249

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2020/042600 WO2021011893A1 (en) 2019-07-17 2020-07-17 Relay system for blockchain

Country Status (1)

Country Link
WO (1) WO2021011893A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023011241A1 (en) * 2021-08-06 2023-02-09 支付宝(杭州)信息技术有限公司 Registration of blockchain node to node set

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160260069A1 (en) * 2013-03-15 2016-09-08 Elwha Llc Devices, methods, and systems for interactions between intermediary devices and extrinsic client devices
US9875510B1 (en) * 2015-02-03 2018-01-23 Lance Kasper Consensus system for tracking peer-to-peer digital records
CA3058236A1 (en) * 2019-03-27 2019-06-27 Alibaba Group Holding Limited Retrieving public data for blockchain networks using highly available trusted execution environments

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160260069A1 (en) * 2013-03-15 2016-09-08 Elwha Llc Devices, methods, and systems for interactions between intermediary devices and extrinsic client devices
US9875510B1 (en) * 2015-02-03 2018-01-23 Lance Kasper Consensus system for tracking peer-to-peer digital records
CA3058236A1 (en) * 2019-03-27 2019-06-27 Alibaba Group Holding Limited Retrieving public data for blockchain networks using highly available trusted execution environments

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023011241A1 (en) * 2021-08-06 2023-02-09 支付宝(杭州)信息技术有限公司 Registration of blockchain node to node set

Similar Documents

Publication Publication Date Title
Tan et al. A blockchain-empowered crowdsourcing system for 5G-enabled smart cities
US20200092084A1 (en) System and methods for operating a blockchain network
US7895297B2 (en) System and method for enabling wireless internet access in public areas
US11461752B2 (en) Wifi sharing system with mesh network functionality
WO2010106395A1 (en) A policy-based payment transaction routing service for credit card payment processing
CA2337596A1 (en) Efficient internet service cost recovery system and method
CN111460504B (en) Service processing method, device, node equipment and storage medium
US20230081978A1 (en) Localized blockchain utilizing mesh networks for localized events
US20210224224A1 (en) Communication network, method, network equipment and communication device
KR20230023019A (en) Blockchain-based data storage method, system and device
US20230026509A1 (en) Techniques for payment-based network transmissions
WO2021034603A1 (en) Performing multi-party cryptographic transactions on a blockchain and the use of fungible tokens
US20200082405A1 (en) Method and system for client support in a blockchain network
KR20200031861A (en) A method of operating Crowdfunding system for game production based on Blockchain and a system for implementing the service environment
Zhou et al. BCEdge: Blockchain‐based resource management in D2D‐assisted mobile edge computing
CN104301293A (en) Data processing method, device and system
WO2021048056A1 (en) A method and system for executing fast and safe transactions involving a high-latency blockchain
US20180240128A1 (en) Service request matching based on provider compliance state
Sober et al. A blockchain-based IoT data marketplace
WO2021011893A1 (en) Relay system for blockchain
EP3701482A1 (en) Federated personally identifiable information (pii) service
KR20200031857A (en) A method of operating Advertising services system based on Blockchain and a system for implementing the service environment
US20170228841A1 (en) Method and system of a real estate broker referral network platform
US11010801B2 (en) Method, system, and computer program product for transparency via opt-in aggregation
Vieira et al. IOTApass: Enabling public transport payments with IOTA

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20839661

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20839661

Country of ref document: EP

Kind code of ref document: A1