WO2019126311A1 - Fast and partition-resilient blockchains - Google Patents
Fast and partition-resilient blockchains Download PDFInfo
- Publication number
- WO2019126311A1 WO2019126311A1 PCT/US2018/066481 US2018066481W WO2019126311A1 WO 2019126311 A1 WO2019126311 A1 WO 2019126311A1 US 2018066481 W US2018066481 W US 2018066481W WO 2019126311 A1 WO2019126311 A1 WO 2019126311A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- entity
- round
- user
- users
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3678—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/409—Device specific authentication in transaction processing
- G06Q20/4097—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
- G06Q20/40975—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
Definitions
- This application relates to the field of electronic transactions and more particularly to the field of distributed public ledgers, securing the contents of sequence of transaction blocks, and the verification of electronic payments.
- a blockchain consists of an augmentable sequence of blocks: B , l3 ⁇ 4, ⁇ ⁇ ⁇ , wherein each block consists of a number of transactions, the hash of the previous block, and other data e.g., the index of the block, time information, etc.
- Useful properties of a blockchain are that (PI) there is a unique block corresponding to each index 1, 2, . . . , (P2) every user in the system eventually learns the content of every block, (P3) no one can alter the content or the order of the blocks, and (P4) any valid transactio will eventually enter a block in the chain.
- Users can digitally sign messages, and thus each user possesses at least one public key and a corresponding secret key.
- a blockchain in general, one knows the public keys but not necessarily the user who owns it. Accordingly, we may identify a public key with its owner.
- a user i belongs to a set of users empowered to act in some step s during the production of block number r based on the result of a computation that i performs via a secret key of his, using inputs s and r, and possibly other inputs and other data (e.g., the fact that the user has joined the system at least k blocks before block r, for some given integer k ) .
- Ls computation may involve Ls digital signature, of such inputs, hashing and checking whether the hash is less than a given threshold t.
- a hashed value can be interpreted in some standard way as a number.
- credential proves to anyone that i is indeed entitled to produce a (preferably signed) message rn ⁇ , his voting message for step s in round r, in the process aimed at producing block r.
- /’s digital signatures can be checked by anyone, and anyone can hash a given value, and then check whether the result is indeed less than (or equal to) a given number.
- a blockchain works by propagating messages (e.g., blocks, transactions, voting messages, digital signatures, etc) .
- messages are propagated by gossiping them in a peer-to-peer fashion, or via relays.
- Several blockchain systems require the propagation network to guarantee the delivery of messages propagated by every honest user to other honest users within a bounded delay.
- a user starts his own step s in the generation of block r based on the messages he has received from the propagation network, and ends it based on messages received and how long his own clock has advanced since he started this step.
- Algorand ensures that the adversary cannot prevent the blockchain from functioning properly (including achieving properties PI P4).
- this relies on the adversary not attacking the propagation network itself.
- Such attacks include any effort the adversary may take in order to violate the bounded delay of message delivery for a sufficiently large amount of users e.g., by partitioning the users into two groups of equal size and controlling the message delivery channels between them, so that a message propagated by a user from group 1 may have indefinite delay before reaching any user in group 2.
- an entity manages a transaction system in which transactions are organized in a sequence of blocks that are certified by digital signatures of a sufficient number of verifiers by the entity proposing a hash of a block B’ that includes new valid transactions relative to a sequence of certified blocks B°, . . . , B r_1 if no rth block B r has been certified and by the entity proposing a hash of the block B r if the rth block B r has been verified by a sufficient number of other entities.
- a block may be certified by the entity only in response to confirming transactions for the block and confirming that the block was constructed and propagated by an entity entitled to construct and propagate the block.
- the entity may propose a hash value by digitally signing the hash value to provide a digitally-signed version of the hash value and the entity may propagate the digitally-signed version of the hash value to a network that includes other entities. If no rth block B r has been certified, the entity may also digitally sign and propagate the block B' .
- the entity may determine a quantity Q from the prior blocks and may use a secret key in order to compute a string S uniquely associated with Q and computes from S a quantity T that is S itself, a function of S, and/or a hash value of S and the entity may determine whether to propose a hash value by determining whether T possesses a given property.
- S may be a signature of Q under a secret key of the entity
- T may be a hash of S and T may possess the given property if T is less than a given threshold.
- the entity may be part of a network of entities and a particular one of the entities may construct and propagates the block B r .
- the rth block B r may be determined to be certified by the entity if the entity receives an indication that at least a predetermined number of the entities individually certify a hash value corresponding to the rth block B r .
- the entity may increment r to begin adding additional blocks to the sequence of blocks.
- the particular one of the entities may be individually chosen by a predetermined number of the entities to be a leader.
- the rth block B r may be determined to be certifiable by the entity if the entity receives an indication that at least a predetermined number of the entities individually verify receiving an indication that the particular one of the entities has provided a hash value corresponding to the rth block B r to each of the predetermined number of the entities.
- an entity manages a transaction system in which transactions are organized in a sequence of certified blocks by the entity receiving a hash value of a block B r from an other entity that generated the block based on new valid transactions relative to a sequence of certified blocks B°, . . . , B r_1 ,the entity certifying the block B r in response to a sufficient number of other entities having indicated receipt of the hash value of the block B r from the other entity and the hash value being valid for the block B r , the entity generating a new block B’ based on new valid transactions relative to a sequence of certified blocks B°, . . .
- B r_ 1 in response to an insufficient number of the other entities indicating receipt of the hash value of the block B r from the other entity, B’ being different from B r , and the entity incrementing r to begin adding additional blocks to the sequence of blocks in response to the entity receiving the indication that a predetermined number of the entities individually certified the rth block B r or a predetermined number of the entities individually certified the new block B’.
- the blocks may be certified by digital signatures. New blocks may be proposed by different ones of the entities until receiving the indication that a predetermined number of the entities individually certified a previously proposed block.
- the entity may provides an indication that a new block should be generated in response to the hash value not being valid for the block B r .
- the entity may generate a new block B’ based on new valid transactions relative to a sequence of certified blocks B°, . . . , B r_1 in response to a sufficient number of the other entities providing an indication that a new block should be generated.
- the entity may provide an indication that the hash value of the block B r should be propagated in response to a sufficient number of the other entities having indicated receipt of the hash value of the block B r from the other entity and the hash value being valid for the block B r .
- an entity verifies a proposed hash value of a new block B r of transactions relative to a given a sequence of blocks, B°, . . . , B r_1 , without access to the new block B r in a transaction system in which transactions are organized in blocks and blocks are certified by a set of digital signatures by having the entity determine a quantity Q from the prior blocks, having the entity compute a digital signature S of Q, having the entity compute from S a quantity T that is S itself, a function of S, and/or hash value of S, having the entity determine whether T possesses a given property, and, if T possesses the given property, having the entity verify the proposed hash value of the new block B r independent of confirming whether the proposed hash value corresponds to the new block B r .
- the entity may propagate the proposed hash value of the new block B r prior to receiving the new block B r .
- a new block B r of valid transactions is constructed, relative to a sequence of prior blocks B°, B 1 , . . . , B r_ 1 , by having an entity determine a quantity Q from the prior blocks, having the entity use a secret key in order to compute a string S uniquely associated to Q, having the entity compute from S a quantity T that is S itself, a function of S, and/or a hash value of S, having the entity determine whether T possesses a given property and, if T possesses the given property, having the the entity compute a hash value H of B r , digitally sign H and make available to others S, B r and a digitally signed version of H.
- the secret key may be a secret signing key corresponding to a public key of the entity and S' is a digital signature of Q by the entity.
- T may be a binary expansion of a number and satisfies the given property if T is less than a given number p.
- S may be made available by making S deducible from B r .
- Each user may have a balance in the transaction system and p may vary for each user according to the balance of each user.
- selecting a subset of users in a blockchain system to verify a data string m relative to a sequence of prior blocks B°, . . . , B 1" 1 includes causing at least some of the users to determine a quantity Q from the prior blocks, causing at least some of the users to compute a digital signature S of Q and other information, causing at least some of the users to determine a hash value of the digital signature, causing at least some of the users to compare the hash value to a pre-determined threshold, and causing the subset of the users to digitally sign m together with other information and make available to others S and a digitally signed version of m in response to the hash value being below a pre-determined threshold for each of the subset of users.
- the digital signature may be credentialed if the hash value is below a pre-determined threshold.
- Each user may have a balance in the transaction system and the pre-determined threshold may vary for each user according to the balance of each user.
- the pre-determined threshold for each user may be chosen to cause the subset of the users to contain a minimum number of the users.
- the data string m may be a hash value of a new block B r .
- the data string m may be verified by at least a given number of credentialed signatures of m.
- selecting a subset of users in a blockchain system to certify a new block B r relative to a sequence of prior blocks B°, . . . , B r 1 includes causing at least some of the users to determine a quantity Q from the prior blocks, causing at least some of the users to compute a digital signature S of Q and other information, causing at least some of the users to determine a hash value of the digital signature, causing at least some of the users to compare the hash value to a pre-determined threshold, causing the subset of the users to determine B r is valid relative to B°, . . .
- B r_1 in response to the hash value being below a pre-determined threshold for each of the subset of users and causing the subset of the users to digitally sign a hash value H of B r together with other information and make available to others S and a digitally signed version of H.
- a particular one of the users may digitally sign the new block B r only if the particular one of the users verifies information provided in the new block B r .
- Each user may have a balance in the transaction system and the pre-determined threshold may vary for each user according to the balance of each user.
- the pre-determined threshold for each user may be chosen to cause the subset of the users to contain a minimum number of the users.
- the block B r may be certified by at least a given number of credentialed signatures of H from users who have determined B r is valid relative to B°, . . . , B r 1 .
- computer software provided in a non- transitory computer-readable medium, includes executable code that implements any of the steps described herein.
- the present invention dispenses with the requirement on the propagation network’s message delivery delay for the security of certifying new blocks.
- a new block is first prepared (e.g., proposed, propagated, and/or agreed upon by at least some users) and then it is certified.
- a user who has receive a newly constructed block, a hash value of a new block, and/or credentialed signatures within a desired time interval proceeds to verify and/or certify the new block.
- the certification of a block B guarantees that certain valuable properties apply to the block.
- a typical main property is to enable a user, even a user who has not participated to or observed the preparation of a block B, to ascertain that B has been added to the blockchain, or even that B is the rth block in the blockchain.
- Another valuable property (often referred to as finalization) guarantees that B will not disappear from the blockchain, due to a soft fork, even in the presence of a partition of the communication network on which the blockchain protocol is executed.
- a partition of the network may cause the users to be separated into multiple groups, with messages propagated from one group not reaching users in other groups.
- a partition may be resolved after an indefinite amount of time, after which the network again guarantees message delivery after bounded delays.
- a certificate of B consists of a given number of users’ digital signatures with valid credentials. Such a certificate of B vouches that the users who have produced such signatures have participated to or observed the preparation of B. At least, it vouches that, if one of the digital signatures of the certificate has been produced by an honest user, then that user has checked that B has been properly prepared.
- the user may construct and propose a new block B' as the rth block in the blockchain relative to B°, . . . , B r_ 1 if he has evidence that a certificate of B has not been generated in the system.
- a user proposes B' by determining a quantity Q from prior blocks, computing a string S uniquely associated to Q using a secret key, computing from S a quantity T that is S itself, a function of S, and/or a hash value of S, determining whether T possesses a given property and, if T possesses the given property, computing a hash value H' of B 1 , digitally signing H' and making available to others S, B ' and a digitally signed version of H' .
- the secret key may be a secret signing key corresponding to a public key of the entity and S' is a digital signature of Q by the entity.
- T may be a binary expansion of a number and satisfies the given property if T is less than a given number p.
- S may be made available by making S deducible from B' .
- Each user may have a balance in the transaction system and p may vary for each user according to the balance of each user.
- the user may re-propose B as the rth block in the blockchain if he has evidence that a certificate of B may have been generated in the system but have not been made available to him.
- a user may re-propose B without having received B itself but rather having received a given number of users’ digital signatures with valid credentials verifying a hash value of B.
- a user may re- propose B by determining a quantity Q from prior blocks, computing a string S uniquely associated to Q using a secret key, computing from S a quantity T that is S itself, a function of S, and/or a hash value of S, determining whether T possesses a given property and, if T possesses the given property, digitally signing a hash value H of B and making available to others S and a digitally signed version of H.
- the secret key may be a secret signing key corresponding to a public key of the entity and S' is a digital signature of Q by the entity.
- T may be a binary expansion of a number and satisfies the given property if T is less than a given number p.
- S may be made available by making S deducible from B' .
- Each user may have a balance in the transaction system and p may vary for each user according to the balance of each user.
- Proposing new blocks and re-proposing existing blocks may happen indefinite amount of times during the generation of a rth block of the blockchain and may be carried out by different users.
- a block B may have more than one certificates generated from different steps. However, during the generation of a rth block of the blockchain, one and only one block will have a certificate and thus be considered by the users as the rth block of the blockchain.
- the efficiency of the system described herein derives from the following facts. First, a user i may verify and/or re-propose a hash value of a block B before the user may receive B itself.
- a new block B' may be proposed as the rth block before all users may have collected evidence that a previously proposed block B as the rth block does not have a certificate generated in the system. Indeed, B' may be proposed as soon as one user has collected such evidence.
- a previously proposed block B as the rth block of the blockchain may be re-proposed before all users may have collected evidence that a certificate for B may have been generated in the system but not made available to all. Indeed, B may be re-proposed as soon as one user has collected such an evidence.
- An evidence may consists of a set of credentialed signatures properly formed to verify a data string m.
- Evidences for different purposes may consist of different numbers of signatures.
- the security of the system described herein derives from proper choices of pre- determined thresholds that users compare the hash values of their signatures to when verifying different data strings, and from proper choices of numbers of signatures sufficient to form evidences for different purposes. For instance, let p be the maximum percentage of malicious users in the system. Typically, malicious users are in a minority e.g., p ⁇ 1/3.
- the pre-determined threshold t and the sufficient number n of signatures forming a certificate for a block may be chosen so that, with sufficiently high probability, (a) for any possible block value B, there are n or more credentialed signatures of honest users to form a certificate for B and (b) in any certificate of B, more than 2/3 of credentialed signatures belongs to honest users.
- the system described herein is agnostic about whether ephemeral keys are used in the blockchain: when users propose new blocks, re-propose existing blocks, or verify data strings, the users may use long-term secret keys to generate credentialed signatures, where the keys may be used repeatedly during the life time of the system, or the users may use ephemeral secret keys where one key is used only once, or the users may use combinations of long-term keys and ephemeral keys.
- a user i may not only have a credentialed signature for participating in the generation of a block, but also a credentialed signature with a weight (essentially a credentialed signature associated with a number of votes). Indeed, the weight of Fs credential signature for participating in the generation of a block may depend on how much money i has in the system. Indeed, rather than having a single pre-determined threshold t for all users for participating in block generation, each user i may have his own threshold 3 ⁇ 4 that is higher the higher Fs amount of money is.
- a user i may have different thresholds for participating in block generation in different ways e.g., proposing a new block, re- proposing a block, or verifying a data string m of a specific format.
- proposing a new block e.g., proposing a new block, re- proposing a block, or verifying a data string m of a specific format.
- FIG. 1 is a schematic representation of a network and computing stations according to an embodiment of the system described herein.
- FIG. 2 is a schematic and conceptual summary of the first step of Algorand system, where a new block of transactions is proposed.
- FIG. 3 is a schematic and conceptual summary of the agreement and certification of a new block in the Algorand system.
- FIG. 4 is a schematic diagram illustrating a Merkle tree and an authenticating path for a value contained in one of its nodes.
- FIG. 5 is a schematic diagram illustrating the 8 Merkle trees corresponding to the first 8 blocks constructed in a blocktree.
- FIG. 6 is a schematic representation of a partitioned network and computing stations according to an embodiment of the system described herein.
- the system described herein provides a mechanisms for distributing transaction verification and propagation so that no entity is solely responsible for performing calculations to verify and/or propagate transaction information. Instead, each of the participating entities shares in the calculations that are performed to propagate transaction in a verifiable and reliable manner.
- a diagram 20 shows a plurality of computing workstations 22a-22c connected to a data network 24, such as the Internet.
- the workstations 22a-22c communicate with each other via the network 24 to provide distributed transaction propagation and verification, as described in more detail elsewhere herein.
- the system may accommodate any number of workstations capable of providing the functionality described herein, provided that the workstations 22a-22c are capable of communicating with each other.
- Each of the workstations 22a-22c may independently perform processing to propagate transactions to all of the other workstations in the system and to verify transactions, as described in more detail elsewhere herein.
- FIG. 2 diagrammatically and conceptually summarizes the first step of a round r in the Algorand system, where each of a few selected users proposes his own candidate for the rth block.
- the step begins with the users in the system, a, . . . , z, individually undergo the secret cryptographic sortition process, which decides which users are selected to propose a block, and where each selected user secretly computes a credential proving that he is entitled to produce a block.
- Only users b, d, and h are selected to propose a block, and their respectively computed credentials are s/’ 1 , s and s/’ 1 .
- Each selected user i assembles his own proposed block, R/, ephemerally signs it (i.e., digitally signs it with an ephemeral key, as explained later on) , and propagates to the network together with his own credential.
- the leader of the round is the selected user whose credential has the smallest hash. The figure indicates the leader to be user d.
- his proposed block, B d r is the one to be given as input to the Binary agreement protocol.
- FIG. 3 diagrammatically and conceptually summarizes Algorand’s process for reaching agreement and certifying a proposed block as the official rth block, B r . Since the first step of Algorand consists of proposing a new block, this process starts with the second step. This step actually coincides with the first step of Algorand’s preferred Byzantine agreement protocol, BA*. Each step of this protocol is executed by a different “committee” of players, randomly selected by secret cryptographic sortition (not shown in this figure). Accordingly, the users selected to perform each step may be totally different. The number of Steps of BA* may vary. Fig. 3 depicts an execution of BA* involving 7 steps: from Algorand’s 2 through Algorand’s step 8.
- the users selected to perform step 2 are a, e, and q.
- Each user i 6 ⁇ a, e, q ⁇ propagates to the network his credential, s , that proves that i is indeed entitled to send a message in step 2 of round r of Algorand, and his message proper of this step, m/ 5 , ephemerally signed.
- Steps 3-7 are not shown.
- the figure shows that the corresponding selected users, b, /, and x, having reached agreement on B r as the official block of round r, propagate their own ephemeral signatures of block B r (together, these signatures certify B r ) and their own credentials, proving that they are entitled to act in Step 8.
- FIG. 4 schematically illustrates a Merkle tree and one of itstating path.
- Fig. 4. A illustrates a full Merkle tree of depth 3.
- Fig. 4.B illustrates the authenticating path of the value t3 ⁇ 4io ⁇
- FIG. 5 schematically illustrates the 8 Merkle trees, corresponding to the first 8 blocks constructed in a blocktree, constructed within a full binary tree of depth 3.
- nodes marked by an integer belong to Merkle tree ⁇ ).
- Contents of nodes marked by i are temporary (respectively, permanent) .
- Algorand is quite democratic, in the sense that neither in principle nor de facto it creates different classes of users (as“miners” and“ordinary users” in Bitcoin) .
- Algorand “all power resides with the set of all users” .
- Algorand One notable property of Algorand is that its transaction history may fork only with very small probability (e.g., one in a trillion, that is, or even 11U 18 ) . Algorand can also address some legal and political concerns.
- the Algorand approach applies to blockchains and, more generally, to any method of generating a tamperproof sequence of blocks. We actually put forward a new method alternative to, and more efficient than, blockchains that may be of independent interest.
- Bitcoin is a very ingenious system and has inspired a great amount of subsequent research. Yet, it is also problematic. Let us summarize its underlying assumption and technical problems which are actually shared by essentially all cryptocurrencies that, like Bitcoin, are based on proof- of-work.
- Bitcoin a user may own multiple public keys of a digital signature scheme, that money is associated with public keys, and that a payment is a digital signature that transfers some amount of money from one public key to another.
- Bitcoin organizes all processed payments in a chain of blocks, Hi, H2, each consisting of multiple payments, such that, all payments of B , taken in any order, followed by those of B 2, in any order, etc., constitute a sequence of valid payments. Each block is generated, on average, every 10 minutes.
- This sequence of blocks is a chain , because it is structured so as to ensure that any change, even in a single block, percolates into all subsequent blocks, making it easier to spot any alteration of the payment history. (As we shall see, this is achieved by including in each block a cryptographic hash of the previous one.) Such block structure is referred to as a blockchain.
- Honest Majority of Computational Power Bitcoin assumes that no malicious entity (nor a coalition of coordinated malicious entities) controls the majority of the computational power devoted to block generation. Such an entity, in fact, would be able to modify the blockchain, and thus re-write the payment history, as it pleases. In particular, it could make a payment p, obtain the benefits paid for, and then“erase” any trace of p.
- the blockchain is not necessarily unique. Indeed its latest portion often forks : the blockchain may be say B , . . . , 3 ⁇ 4, B k ' +l , B k ' +2 , according to one user, and B , . . . , 3 ⁇ 4, B k+1 , B k+2 , B k+3 according another user. Only after several blocks have been added to the chain, can one be reasonably sure that the first k + 3 blocks will be the same for all users. Thus, one cannot rely right away on the payments contained in the last block of the chain. It is more prudent to wait and see whether the block becomes sufficiently deep in the blockchain and thus sufficiently stable.
- Algorand’s blockchain may fork only with negligible probability (i.e., less than one in a trillion or 10 18 ). Thus, users can relay on the payments contained in a new block as soon as the block appears.
- Algorand is a truy distributed system. In particular, there are no exogenous entities (as the “miners” in Bitcoin), who can control which transactions are recognized.
- a NEW AND FAST BYZANTINE AGREEMENT PROTOCOL Algorand generates a new block via an inventive cryptographic, message-passing , binary Byzantine agreement (BA) protocol, BA*.
- Protocol BA* not only satisfies some additional properties (that we shall soon discuss) , but is also very fast. Roughly said, its binary-input version consists of a 3-step loop, in which a player i sends a single message rr3 ⁇ 4 to all other players. Executed in a complete and synchronous network, with more than 2/3 of the players being honest, with probability > 1/3, after each loop the protocol ends in agreement. (We stress that protocol BA* satisfies the original definition of Byzantine agreement, without any weakenings.)
- Algorand leverages this binary BA protocol to reach agreement, in our different commu nication model, on each new block.
- the agreed upon block is then certified, via a prescribed number of digital signature of the proper verifiers, and propagated through the network.
- Q r a separate and carefully defined quantity, which provably is, not only unpredictable, but also not influentiable, by our powerful Adversary.
- Q r the rth seed, as it is from Q r that Algorand selects, via secret cryptographic sortition, all the users that will play a special role in the generation of the rth block.
- the seed Q r will be deducible from the block B r 1 .
- protocol BA* executed by propagating messages in a peer-to- peer fashion, is player-replaceable. This novel requirement means that the protocol correctly and efficiently reaches consensus even if each of its step is executed by a totally new, and randomly and independently selected, set of players. Thus, with millions of users, each small set of players associated to a step of BA* most probably has empty intersection with the next set.
- replaceable-player property is actually crucial to defeat the dynamic and very powerful Adversary we envisage.
- replaceable-player protocols will prove crucial in lots of contexts and applications. In particular, they will be crucial to execute securely small sub protocols embedded in a larger universe of players with a dynamic adversary, who, being able to corrupt even a small fraction of the total players, has no difficulty in corrupting all the players in the smaller sub-protocol.
- Lazy Honesty A honest user follows his prescribed instructions, which include being online and run the protocol. Since, Algorand has only modest computation and communication requirement, being online and running the protocol “in the background” is not a major sacrifice. Of course, a few “absences” among honest players, as those due to sudden loss of connectivity or the need of rebooting, are automatically tolerated (because we can always consider such few players to be temporarily malicious) . Let us point out, however, that Algorand can be simply adapted so as to work in a new model, in which honest users to be offline most of the time. Our new model can be informally introduced as follows.
- the system operates securely even if, at a given point in time, the majority of the participating players are malicious.
- H an efficiently computable cryptographic hash function
- Digital Signing allow users to to authenticate information to each other without sharing any sharing any secret keys.
- a digital signature scheme consists of three fast algorithms: a probabilistic key generator G, a signing algorithm S, and a verification algorithm
- a user i uses G to produce a pair of fc-bit keys (i.e., strings) : a“public” key pki and a matching“secret” signing key ski.
- fc-bit keys i.e., strings
- a public key does not “betray” its corresponding secret key. That is, even given knowledge of pki, no one other than i is able to compute ski in l ess than astronomical time.
- User i uses ski to digitally sign messages. For each possible message (binary string) m, i first hashes m and then runs algorithm S on inputs H(m ) and ski s ° as to produce the fc-bit string
- the binary string sig pk ⁇ m) is referred to as F s digital signature of m (relative to pki) , and can be more simply denoted by sigfim ) , when the public key pki is clear from context.
- a player i must keep his signing key ski secret (hence the term “secret key”) , and to enable anyone to verify the messages he does sign, i has an interest in publicizing his key pki (hence the term“public key”) .
- mapping m— H ⁇ sigi ⁇ m ) associates to each possible string m, a unique, randomly selected, 256-bit string, and the correctness of this mapping can be proved given the signature sigfim) .
- VRF verifiable random function
- VRFfim is a special kind of digital signature.
- VRFfim verifiable random functions produce outputs that are guaranteed to be sufficiently random. That is, VRFfim) is essentially random, and unpredictable until it is produced.
- SIGfim need not be sufficiently random. For instance, user i may choose his public key so that SIGfim) always is a fc-bit string that is (lexicographically) small (i.e., whose first few bits could always be Os) . Note, however, that, since H is an ideal hash function, H ⁇ SIGi ⁇ m )) will always be a random 256-bit string.
- H ⁇ SIGi ⁇ m ) can be interpreted as VRFi(m) , or as a sufficiently random number, easily computed by player i, but unpredictable to anyone else, unambiguously associated to i and m.
- keys can be “long-term” (i.e., used to sign many messages over a long period of time) and come from a ordinary signature scheme.
- Algorand tries to mimic the following payment system, based on an idealized public ledger.
- the Initial Status. Money is associated with individual public keys (privately generated and owned by users). Letting pk , . . . , pk j be the initial public keys and a , . . . , a j their respective initial amounts of money units, then the initial status is
- pk be a public key currently having a > 0 money units, pk! another public key, and a! a non-negative number no greater than a. Then, a (valid) payment p is a digital signature, relative to pk, specifying the transfer of a' monetary units from pk to pk' , together with some additional information.
- p SIG pk (pk, pk , , a , , I, H(T ) ) ,
- any additional information deemed useful but not sensitive e.g., time information and a payment identifier
- T any additional information deemed sensitive e.g., the reason for the payment, possibly the identities of the owners of pk and the pk' , and so on
- Each block PAY r+1 consists of the set of all payments made since the appearance of block PAY r .
- a new block appears after a fixed (or finite) amount of time.
- a valid payment p of pk may transfer the amounts a , a' 2 , . . ., respectively to the keys pk ⁇ pk ⁇ , . . ., so long as a) ⁇ a.
- the money owned by a public key pk is segregated into separate amounts, and a payment p made by pk must transfer such a segregated amount a in its entirety. If pk wishes to transfer only a fraction a' ⁇ a of a to another key, then it must also transfer the balance, the unspent transaction output, to another key, possibly pk itself.
- Algorand also works with keys having segregated amounts. However, in order to focus on the novel aspects of Algorand, it is conceptually simpler to stick to our simpler forms of payments and keys having a single amount associated to them.
- the Idealized Scheme does not directly provide information about the current status of the system (i.e., about how many money units each public key has) . This information is deducible from the Magic Ledger.
- each public key (“key” for short) is long-term and relative to a digital signature scheme with the uniqueness property.
- a public key i joins the system when another public key j already in the system makes a payment to i.
- Permissionless and Permissioned Systems A system is permissionless, if a digital key is free to join at any time and an owner can own multiple digital keys; and its permissioned, otherwise.
- Unique Representation Each object in Algorand has a unique representation.
- each set ⁇ (x, y, z, . . .) : x £ X, y £ Y, z £ Z, . . . ⁇ is ordered in a pre-specified manner: e.g., first lexicographically in x, then in y, etc.
- a is the amount of money available to the public key i.
- PK r is deducible from S r , and that S r may also specify other components for each public key i.
- PK° is the set of initial public keys
- S' 0 is the initial status. Both PK° and S' 0 are assumed to be common knowledge in the system. For simplicity, at the start of round r, so are PK ⁇ . . . , PK r and S 1 , . . . , S r .
- a payment p of a user i 6 PK r has the same format and semantics as in the Ideal System. Namely,
- Payment p is individually valid at a round r (is a round-r payment , for short) if (1) its amount a is less than or equal to ⁇ and (2) it does not appear in any official payset PAY r ' for r ' ⁇ r. (As explained below, the second condition means that p has not already become effective.
- a set of round-r payments of i is collectively valid if the sum of their amounts is at most
- a round-r payset V is a set of round-r payments such that, for each user i, the payments of i in V (possibly none) are collectively valid.
- the set of all round-r paysets is PAY(r) .
- a round-r payset V is maximal if no superset of is a round-r payset.
- This simplifies checking whether p has become“effective” i.e. , it simplifies determining whether some payset PAY r contains p.
- PAY r S r ® S r+1 .
- the set of public keys of round r + 1, PK r+1 consists of the union of PK r and the set of all payee keys that appear, for the first time, in the payments of PAY r ;
- the amount of money that a user i owns in round r + 1 is the sum of ⁇ 3 ⁇ 4(r) i.e., the amount of money i owned in the previous round (0 if i ⁇ PK r ) and the sum of amounts paid to i according to the payments of PAY r .
- the block B r corresponding to a round r specifies: r itself; the set of payments of round r, PAY r ; a quantity to be explained, and the hash of the previous block,
- B 1 (l, PAY 1 , SIG e fiQ ) , H(B 0 ))
- B 2 (2, PAY 2 , SIGffiQ 1 ) , ⁇ (B 1 )) , . . .
- CERT r consists of a set of digital signatures for H ⁇ B r ) , those of a majority of the members of SV r , together with a proof that each of those members indeed belongs to SV r .
- 11D 12 is actually less than one in a trillion, and we believe that such a choice of F is adequate in our application.
- 11D 12 is not the probability with which the Adversary can forge the payments of an honest user. All payments are digitally signed, and thus, if the proper digital signatures are used, the probability of forging a payment is far lower than 10 12 , and is, in fact, essentially 0.
- the bad event that we are willing to tolerate with probability F is that Algorand’s blockchain forks. Notice that, with our setting of F and one-minute long rounds, a fork is expected to occur in Algorand’s blockchain as infrequently as (roughly) once in 1.9 million years. By contrast, in Bitcoin, a forks occurs quite often.
- Algorand is designed to be secure in a very adversarial model. Let us explain.
- Honest and Malicious Users A user is honest if he follows all his protocol instructions, and is perfectly capable of sending and receiving messages.
- a user is malicious (i.e., Byzantine , in the parlance of distributed computing) if he can deviate arbitrarily from his prescribed instructions.
- the Adversary is an efficient (technically polynomial-time) algorithm, personified for color, who can immediately make malicious any user he wants, at any time he wants (subject only to an upperbound to the number of the users he can corrupt) .
- the Adversary totally controls and perfectly coordinates all malicious users. He takes all actions on their behalf, including receiving and sending all their messages, and can let them deviate from their prescribed instructions in arbitrary ways. Or he can simply isolate a corrupted user sending and receiving messages. Let us clarify that no one else automatically learns that a user i is malicious, although Ls maliciousness may transpire by the actions the Adversary has him take.
- Honesty Majority of Money We consider a continuum of Honest Majority of Money (HMM) assumptions: namely, for each non-negative integer k and real h > 1/2,
- HHM k > h the honest users in every round r owned a fraction greater than h of all money in the system at round r— k. Discussion. Assuming that all malicious users perfectly coordinate their actions (as if controlled by a single entity, the Adversary) is a rather pessimistic hypothesis. Perfect coordination among too many individuals is difficult to achieve. Perhaps coordination only occurs within separate groups of malicious players. But, since one cannot be sure about the level of coordination malicious users may enjoy, we’d better be safe than ashamed.
- HMM assumptions and the previous Honest Majority of Computing Power assumptions are related in the sense that, since computing power can be bought with money, if malicious users own most of the money, then they can obtain most of the computing power.
- peer-to-peer gossip 4 we envisage message propagation i.e., “peer-to-peer gossip” 4 to be the only means of communication, and assume that every propagated message reaches almost all honest users in a timely fashion. We essentially assume that each message m propagated by honest user reaches, within a given amount of time that depends on the length of m, all honest users. (It actually suffices that m reaches a sufficiently high percentage of the honest users.)
- BA protocols were first defined for an idealized communication model, synchronous complete networks (SC networks). Such a model allows for a simpler design and analysis of BA protocols. Accordingly, in this section, we introduce a new BA protocol, BA* , for SC networks and ignoring the issue of player replaceability altogether.
- BA* is a contribution of separate value. Indeed, it is the most efficient cryptographic BA protocol for SC networks known so far.
- BA* a bit
- a player is honest if he follows all his prescribed instructions, and malicious otherwise. All malicious players are totally controlled and perfectly coordinated by the Adversary, who, in particular, immediately receives all messages addressed to malicious players, and chooses the messages they send.
- the Adversary can immediately make malicious any honest user he wants at any odd time click he wants, subject only to a possible upperbound t to the number of malicious players. That is, the Adversary“cannot interfere with the messages already sent by an honest user i”, which will be delivered as usual.
- the Adversary also has the additional ability to see instantaneously, at each even round, the messages that the currently honest players send, and instantaneously use this information to choose the messages the malicious players send at the same time tick.
- V n-player protocol, whose player set is common knowledge among the players, t a positive integer such that n > 2t + 1.
- BBA* binary BA protocol
- each player has his own public key of a digital signature scheme satisfying the unique-signature property. Since this protocol is intended to be run on synchronous complete network, there is no need for a player i to sign each of his messages.
- Digital signatures are used to generate a sufficiently common random bit in Step 3. (In Algorand, digital signatures are used to authenticate all other messages as well.)
- the protocol requires a minimal set-up: a common random string r, independent of the players’ keys. (In Algorand, r is actually replaced by the quantity Q r .)
- Protocol BBA * is a 3-step loop, where the players repeatedly exchange Boolean values, and different players may exit this loop at different times.
- a player i exits this loop by propagating, at some step, either a special value 0* or a special value 1*, thereby instructing all players to “pretend” they respectively receive 0 and 1 from i in all future steps.
- a special value 0* or a special value 1* thereby instructing all players to “pretend” they respectively receive 0 and 1 from i in all future steps.
- n 3t + l, where t is the maximum possible number of malicious players.
- a binary string x is identified with the integer whose binary representation (with possible leadings 0s) is x; and lsb(x) denotes the least significant bit of x.
- BBA * is a binary ( n, t) -BA protocol with soundness 1.
- V be a protocol in which the set of all players is common knowledge, and each player i privately knows an arbitrary initial value
- V is an (n, t)-graded consensus protocol if, in every execution with n players, at most t of which are malicious, every honest player i halts outputting a value-grade pair ( 3 ⁇ 4 , ⁇ 3 ⁇ 4), where g ⁇ G ⁇ 0, 1, 2 ⁇ , so as to satisfy the following three conditions:
- the following two-step protocol GC is a graded consensus protocol in the literature.
- Algorand ⁇ we respectively name 2 and 3 the steps of GC. (Indeed, the first step of Algorand ⁇ is concerned with something else: namely, proposing a new block.)
- Each player i outputs the pair ( 3 ⁇ 4 , ⁇ 3 ⁇ 4) computed as follows:
- protocol GC is a protocol in the literature, it is known that the following theorem holds.
- GC is a ( n, t)-graded broadcast protocol.
- Each player i executes GC, on input v ⁇ , so as to compute a pair (i3 ⁇ 4, ⁇ 3 ⁇ 4) .
- BA* is an arbitrary-value BA protocol.
- Protocol BA* works also in gossiping networks, and in fact satisfies the player replaceability property that is crucial for Algorand to be secure in the envisaged very adversarial model.
- a round of Algorand ideally proceeds as follows.
- the agreed upon block is then digitally signed by a given threshold (3 ⁇ 4) of committee members. These digital signatures are propagated so that everyone is assured of which is the new block. (This includes circulating the credential of the signers, and authenticating just the hash of the new block, ensuring that everyone is guaranteed to learn the block, once its hash is made clear.)
- Algorand only envisages that > 2/3 of the committee members are honest.
- the number of steps for reaching Byzantine agreement is capped at a suitably high number, so that agreement is guaranteed to be reached with overwhelming probability within a fixed number of steps (but potentially requiring longer time than the steps of Algorand 2 ) .
- the committee agrees on the empty block, which is always valid.
- Algorand 2 envisages that the number of honest members in a committee is always greater than or equal to a fixed threshold tn (which guarantees that, with overwhelming probability, at least 2/3 of the committee members are honest). In addition, Algorand ' 2 allows Byzantine agreement to be reached in an arbitrary number of steps (but potentially in a shorter time than Algorand ().
- Algorand should satisfy the following properties:
- Algorand ' avoids this problem as follows. First, a leader for round r, i r , is selected. Then, i r propagates his own candidate block, Bfi ' . Finally, the users reach agreement on the block they actually receive from i r . Because, whenever i r is honest, Perfect Correctness and Completeness 1 both hold, Algorand ' ensures that i r is honest with probability close to h.
- the rth block is of the form
- H SIGi (r, 1 , Q r 1 )
- ri .H ( SIGi (r, 1, Q r _ 1 ) ) is the binary expansion of a random 256-bit number between 0 and 1 uniquely associated to i and r.
- r* is less than or equal to p is essentially p.
- the probability p is chosen so that, with overwhelming (i.e., 1— F) probability, at least one potential verifier is honest. (If fact, p is chosen to be the smallest such probability.)
- the leader i r is defined to be the potential leader whose hashed credential is smaller that the hashed credential of all other potential leader j: that is, ⁇ H ⁇ a r - ,s ) .
- a user i can be a potential leader (and thus the leader) of a round r only if he belonged to the system for at least k rounds. This guarantees the non-manipulatability of Q r and all future Q-quantities. In fact, one of the potential leaders will actually determine Q r .
- each step s > 1 of round r is executed by a small set of verifiers, SV r,s .
- each verifier i 6 SV r,s is randomly selected among the users already in the system k rounds before r, and again via the special quantity Q r_1 .
- i 6 PK r k is a verifier in SV r ’ s , if
- a verifier i 6 SV r,s sends a message, m/ 5 , in step s of round r, and this message includes his credential s/’ 5 , so as to enable the verifiers f the nest step to recognize that rrfiY is a legitimate step-s message.
- the probability p r is chosen so as to ensure that, in SV r,s , letting figood be the number of honest users and fibad the number of malicious users, with overwhelming probability the following two conditions hold.
- Algorandfi For embodiment Algorandfi.
- the second form arises when, in the round-r execution of the BA protocol, all honest players output the default value, which is the empty block B e t in our application.
- the possible outputs of a BA protocol include a default value, generically denoted by _L. See section 3.2.
- each eligible player that is, each player i 6 PK r k , checks whether he is a potential leader. If this is the case, then i is asked, using of all the payments he has seen so far, and the current blockchain, B°, . . .
- mf’ 1 which includes (a) his candidate block Bt, (b) his proper signature of his candidate block (i.e., his signature of the hash of B- , and (c) his own credential o 7 ’ 1 , proving that he is indeed a potential verifier of round r.
- each selected verifier j 6 SV 7,2 tries to identify the leader of the round. Specifically, j takes the step-1 credentials, o 7 ’ 1 , . . . , contained in the proper step-1 message m 7 ’ 1 he has received; hashes all of them, that is, computes cR) 1 ? finds the
- each considered credential is a digital signature of Q r_ 1 , that SIGi (r, 1, Q 7 1 ) is uniquely determined by i and Q 7 1 , that H is random oracle, and thus that each H(SIGi ( r , 1, Q 7 1 ) is a random 256-bit long string unique to each potential leader i of round r.
- the hashed credential are, yes, randomly selected, but depend on Q r_ 1 , which is not randomly and independently selected.
- the task of the step-2 verifiers is to start executing BA* using as initial values what they believe to be the block of the leader.
- the verifiers of the last step do not compute the desired round-r block B r , but compute (authenticate and propagate) H ⁇ B r ) . Accordingly, since H ⁇ B r ) is digitally signed by sufficiently many verifiers of the last step of the BA protocol, the users in the system will realize that H ⁇ B r ) is the hash of the new block. However, they must also retrieve (or wait for, since the execution is quite asynchronous) the block B r itself, which the protocol ensures that is indeed available, no matter what the Adversary might do.
- Asynchrony and Timing Algorand ⁇ and Algorand ⁇ have a significant degree of asynchrony. This is so because the Adversary has large latitude in scheduling the delivery of the messages being propagated. In addition, whether the total number of steps in a round is capped or not, there is the variance contribute by the number of steps actually taken.
- a user i computes Q r_1 and starts working on round r, checking whether he is a potential leader, or a verifier in some step s of round r.
- Q r H(SIGe r (Q r 1 ) , r) , and the other is H(Q r 1 , r) .
- H SIG (r 2, 1, Q r 2 )
- the Adversary therefore, is in the enviable position of choosing the payset PAY' he wants, and have it become the official payset of round r 1. However, he can do more. He can also ensure that, with high probability, (*) one of his malicious users will be the leader also of round r, so that he can freely select what PAY r will be. (And so on.
- Q r may even be more numerous for the Adversary who controls a malicious i r .
- x, y, and z be three malicious potential leaders of round r such that
- the Adversary has a good chance of having y become the leader of round r— 1. This implies that he has another option for Q r : namely, H ( SIG y (Q r 1 ) , r) . Similarly, the Adversary may ask both x and y of withholding their credentials, so as to have z become the leader of round r— 1 and gaining another option for Q r : namely, H ( SIG Z (Q r 1 ) , r) .
- PK r the set of public keys by the end of round r— 1 and at the beginning of round r.
- PAY r the payset contained in B r .
- i r round-r leader. i r chooses the payset PAY r of round r (and determines the next Q r ) .
- Q r the seed of round r, a quantity (i.e., binary string) that is generated at the end of round r and is used to choose verifiers for round r + 1.
- Q r is independent of the paysets in the blocks and cannot be manipulated by i r .
- MSV r,s and HSV r,s respectively, the set of malicious verifiers and the set of honest verifiers in SV r ’ s .
- n i e ⁇ + and n 6 Z + respectively, the expected numbers of potential leaders in each SV 1" ’ 1 , and the expected numbers of verifiers in each SV r,s , for s > 1.
- h is the honesty ratio in the system. That is, the fraction of honest users or honest money, depending on the assumption used, in each PK r is at least h.
- H a cryptographic hash function, modelled as a random oracle.
- PK r and S r are computed from the initial status S° and the blocks B 1 , . . . , B r - 1 . • k £ Z + : the look-back parameter. That is, round r— k is where the verifiers for round r are chosen from namely, SV r C PK r k 9
- CERT r the certificate for B r . It is a set of tn signatures of H ⁇ B r ) from proper verifiers in round r.
- a user i knows B r if he possesses (and successfully verifies) both parts of the proven block. Note that the CERT r seen by different users may be different.
- T T the (local) time at which a user i knows B r .
- each user has his own clock. Different users’ clocks need not be synchronized, but must have the same speed. Only for the purpose of the analysis, we consider a reference clock and measure the players’ related times with respect to it.
- a and l essentially, the upper-bounds to, respectively, the time needed to execute Step 1 and the time needed for any other step of the Algorand protocol.
- Parameter A upper-bounds the time to propagate a single 1MB block.
- Parameter l upperbounds the time to propagate one small message per verifier in a Step s > 1.
- Each user i 6 PK r k privately computes his signature using his long-term key and decides whether i £ SV r,s or not. If i £ SV r,s , then SIGi(r, s, is i’s (r, s)-credential, compactly denoted by [ ,!> .
- SV r ' 1 and s) " ’ 1 are similarly defined, with p replaced by p .
- the verifiers in SV r ’ 1 are potential leaders.
- User i £ SV r ' 1 is the leader of round r, denoted by £ r , for all potential leaders j £ SV r,1 .
- the protocol always breaks ties lexicographically according to the (long-term public keys of the) potential leaders.
- the hash value of player £ r , s credential is also the smallest among all users in PK r k . Note that a potential leader cannot privately decide whether he is the leader or not, without seeing the other potential leaders’ credentials.
- n ⁇ is large enough so as to ensure that each SV r,1 is non-empty with overwhelming probability.
- a non-empty block may still contain an empty payset PAY r , if no payment occurs in this round or if the leader is malicious.
- a non-empty block implies that the identity of £ r , his credential s// and SIGp- have all been timely revealed. The protocol guarantees that, if the leader is honest, then the block will be non-empty with overwhelming probability.
- the verifiers and potential leaders of round r are selected from the users in PK r k , where k is chosen so that the Adversary cannot predict Q r_1 back at round r— k— 1 with probability better than F : otherwise, he will be able to introduce malicious users for round r— k, all of which will be potential leaders/ verifiers in round r, succeeding in having a malicious leader or a malicious majority in SV r,s for some steps s desired by him.
- Step 1 of each round r n is chosen so that with overwhelming probability, SV 0.
- the outputs of H are 256-bit long.
- • m £ Z + the maximum number of steps in the binary BA protocol, a multiple of 3.
- n is chosen so that, with overwhelming probability
- m is chosen such that L r ⁇ mj 3 with overwhelming probability.
- a verifier i 6 SV r digitally signs his message m r / s of step s in round r, relative to an ephemeral public key pk r / s , using an ephemeral secrete key sk r / s that he promptly destroys after using.
- a central authority A generates a public master key, PMK, and a corresponding secret master key, SMK.
- PMK public master key
- SMK secret master key
- pk r f s (i, r, s)
- everyone seeing i’ s signature SIG ⁇ r r,s (m r i ,s ) can, with overwhelming probability, immediately verify it for the first million rounds r following r' .
- i first generates PMK and SMK. Then, he publicizes that PMK is C’s master public key for any round r 6 ⁇ r' , r' + 10 6 ] , and uses SMK to privately produce and store the secret key sk/’ s for each triple ( i, r , s ) 6 S. This done, he destroys SMK. If he determines that he is not part of SV r,s , then i may leave sk r / s alone (as the protocol does not require that he aunthenticates any message in Step s of round r).
- i first uses sk/’ s to digitally sign his message m r / s , and then destroys sk r / s .
- i can publicize his first public master key when he first enters the system. That is, the same payment p that brings i into the system (at a round r' or at a round close to r') , may also specify, at Fs request, that Fs public master key for any round r 6 [r', r' + 10 6 ] is PMK e.g., by including a pair of the form ( PMK , [r', r' + 10 6 ] ).
- i When the current round is getting close to r' + 10°, to handle the next million rounds, i generates a new (RMK' , SMK') pair, and informs what his next stash of ephemeral keys is by for example having SIGi ⁇ PMK' , [r' + 10° + l, r' + 2 ⁇ 10° + 1]) enter a new block, either as a separate“transaction” or as some additional information that is part of a payment. By so doing, i informs everyone that he/she should use PMK 1 to verify Z’s ephemeral signatures in the next million rounds. And so on.
- each potential leader i computes and propagates his candidate block B , together with his own credential, s ⁇ ’ 1 .
- Potential verifier i also propagates, as part of his message, his proper digital signature of Not dealing with a payment or a credential, this signature of i is relative to his ephemeral public key that is, he propagates sig pkr,i (H(B [)).
- Step 2 of Algorand ' corresponds to the first step of GC.
- i generates a public-secret key pair (pfc”’ s , sfc( ,s ) for each round-step pair (r, s) in— say— ⁇ V, . . . , r' + 10 6 ⁇ x ⁇ 1, . . . , m + 3 ⁇ . Then he orders these public keys in a canonical way, stores the j ith public key in the j ith leaf of a Merkle tree, and computes the root value 3 ⁇ 4, which he publicizes.
- each verifier i £ SV r,‘2 executes the second step of BA* . That is, he sends the same message he would have sent in the second step of GC. Again, Fs message is ephemerally signed and accompanied by Fs credential. (From now on, we shall omit saying that a verifier ephemerally signs his message and also propagates his credential.)
- the instructions of a verifier i 6 SV r,s in addition to the instructions corresponding to Step s— 3 of BBA*, include checking whether the execution of BBA* has halted in a prior Step s'. Since BBA * can only halt is a Coin-Fixed-to-0 Step or in a Coin-Fixed-to-1 step, the instructions distinguish whether
- the block B r is non-empty, and thus additional instructions are necessary to ensure that i properly reconstructs B r , together with its proper certificate CERT r .
- step s If, during his execution of step s, i does not see any evidence that the block B r has already been generated, then he sends the same message he would have sent in step s— 3 of BBA* .
- step m + 3 If, during step m + 3, i £ SV r,m+s sees that the block B r was already generated in a prior step s', then he proceeds just as explained above.
- step m of BBA* i is instructed, based on the information in his possession, to compute B r and its corresponding certificate CERT r .
- Verifier i uses his ephemeral secret key sk ⁇ to sign his (r, s)-message m s .
- Step 1 Block Proposal
- Step 1 • If i then i stops his own execution of Step 1 right away.
- Step 1 destroys his ephemeral secret key s q’ 1 , and then propagates r,l Remark.
- Step 1 it is important that the (r, l)-messages are selectively propagated. That is, for every user i in the system, for the first (r, l)-message that he ever receives and successfully verifies, 11 player i propagates it as usual. For all the other (r, l)-messages that player i receives and successfully verifies, he propagates it only if the hash value of the credential it contains is the smallest among the hash values of the credentials contained in all (r, l)-messages he has received and successfully verified so far.
- each potential leader i also propagates his credential u 1 separately: those small messages travel faster than blocks, ensure timely propagation of the m ⁇ ’ 1 ’ s where the contained credentials have small hash values, while make those with large hash values disappear quickly.
- Step 2 The First Step of the Graded Consensus Protocol GC
- Step 2 • SV r,‘2 then i stops his own execution of Step 2 right away.
- Step 3 The Second Step of GC
- Step 3 • SV r,s , then i stops his own execution of Step 3 right away.
- n' _L ( ESIGi(v'), a /’ 3 ) . Otherwise, he computes m/’ 3 (ESIGi(-L), s/’ 3 ).
- Step 4 Output of GC and The First Step of BBA *
- the message m/ signals that player i considers to be the hash of the next block, or considers the next block to be empty.
- Step 4 • If then i his stops his own execution of Step 4 right away.
- Step s' is a Coin-Fixed- To-0 step
- Step s' is a Coin-Fixed- To-1 step
- Step s • If / / SV r,s , then i stops his own execution of Step s right away.
- Ending Condition 0 The same instructions as Coin-Fixed- To-0 steps.
- Ending Condition 1 The same instructions as Coin-Fixed- To-0 steps.
- Step s • If / / SV r,s , then i stops his own execution of Step s right away.
- Ending Condition 0 The same instructions as Coin-Fixed- To-0 steps.
- Ending Condition 1 The same instructions as Coin-Fixed- To-0 steps.
- Step m + 3 The Last Step of BBA * 20
- i ff a lower-bound for the number of honest verifiers in a step s > 1 of round r, such that with overwhelming probability (given n and p ) , there are > i ff honest verifiers in SV r,s .
- n is chosen so that, with overwhelming probability
- i may use the last ephemeral key of round r, pkfi 11 , as follows. He generates another stash of key-pairs for round r e.g., by (1) generating another master key pair ⁇ PMK , SMK) ⁇ , (2) using this pair to generate another, say, 10 6 ephemeral O
- Verifier i uses his ephemeral key pair, (pk 7,s , sk 7,s ) , to sign any other message m that may be required.
- Step 1 Block Proposal
- Step 1 To shorten the global execution of Step 1 and the whole round, it is important that the (r, 1)- messages are selectively propagated. That is, for every user j in the system,
- each potential leader i propagates his credential s 7 ’ 1 separately from m 7 ’ 1 : 25 those small messages travel faster than blocks, ensure timely propagation of the m 7 ’ 1 ’ s where the contained credentials have small hash values, while make those with large hash values disappear quickly.
- Step 2 The First Step of the Graded Consensus Protocol GC
- i computes Q r_1 from CERT r_ 1 and checks whether i £ SV r ’ 2 or not.
- Step 3 The Second Step of GC
- i computes Q r_ 1 from CERT r_ 1 and checks whether i G SV r ,3 or not.
- Step 4 Output of GC and The First Step of BBA *
- i computes Q r_ 1 from CERT r_ 1 and checks whether i G SV r, i or not.
- Step (b) is in the protocol or not does not affect its correctness. However, the presence of Step (b) allows Step 4 to end in less than 2l time if sufficiently many Step-3 verifiers have“signed _L.”
- Step s' is a Coin-Fixed- To-0 step
- Step s stops waiting and ends his own execution of Step s (and in fact of round r) right away without propagating anything as a (r, s)-verifier; sets H ⁇ B r ) to be the first component of v and sets his own CERT r to be the set of messages m ! - s 1 of step (b) together
- Step s' is a Coin-Fixed- To- 1 step
- i computes Q r_1 from CERT r_1 and checks whether i G SV r ' 3 .
- Step 4 destroys his ephemeral secret key sk ⁇ , and then propagates m'C . Otherwise, i stops without propagating anything.
- Ending Condition 0 The same instructions as in a Coin-Fixed- To-0 step.
- Ending Condition 1 The same instructions as in a Coin-Fixed- To-0 step.
- i computes Q r_ 1 from CERT r_ 1 and checks whether i G SV r,s .
- Ending Condition 0 The same instructions as in a Coin-Fixed- To-0 step.
- Ending Condition 1 The same instructions as in a Coin-Fixed- To-0 step.
- i computes Q r_ 1 from CERT r_ 1 and checks whether i E SV r ’ s .
- the protocol may take arbitrarily many steps in some round. Should this happens, as discussed, a user i E SV r,s with s > m has exhausted his stash of pre-generated ephemeral keys and has to authenticate his (r, s)-message nJP by a“cascade” of ephemeral keys. Thus Fs message becomes a bit longer and transmitting these longer messages will take a bit more time. Accordingly, after so many steps of a given round, the value of the parameter l will automatically increase slightly. (But it reverts to the original l once a new block is produced and a new round starts.)
- the next simplest implementation may be to demand that each public key owns a maximum amount of money M, for some fixed M.
- M is small enough compared with the total amount of money in the system, such that the probability a key belongs to the verifier set of more than one step in say k rounds is negligible.
- a key i 6 PK r k owning an
- value K depends on the amount of money a) 1 owned by i in round r.
- a be the amount of money owned by a user i at round r.
- a r be the total amount of money owned by the users in PK r k at round r, that is,
- V s copies are (i, 1) , . . . , (/, K + 1), where
- Verifiers and Credentials Let i be a user in PK r k with K + 1 copies.
- copy ⁇ i, K + 1) belongs to SV r,s .
- i propagates the credential
- a properly credentialed leader proposes a new block and then (2) Properly credentialed users run, over several steps, a proper Byzantine agreement (BA) protocol on the block proposed.
- BA Byzantine agreement
- the preferred BA protocol is BA* .
- the block proposal step can be considered step 1, so that the steps of BA* are 2, 3,...
- a necessary condition for user i to be entitled to speak in step s of round r is that he was already in the system a few rounds ago. Specifically, k rounds before round r, where A: is a parameter termed the‘look-back’ parameter. That is, to be eligible to speak in round r, i must belong to PK r k , the set of all public keys/users already in the system at round r— k. (Users can be identified with their public keys.) This condition is easy to verify in the sense that it is derivable from the blockchain.
- p is a given probability that controls the expected number of verifiers in SV r,s , that is, the set of users entitled to speak in step s of round r. If this condition is satisfied, then i’s credential is defined to be
- HMU Honest Majority of Users
- a network partition may be resolved at an indefinite time in the future and messages propagated during the partition are delivered to all users after the partition is resolved. For simplicity, but without limitation intended, we describe the new embodiment assuming messages propagated during a network partition are delivered to all users immediately after the partition is resolved.
- the expected committee size n and the threshold i ff are chosen according to the following conditions.
- PK be the set of users
- HPK and MPK respectively the set of honest and malicious users.
- HPK be an arbitrary subset of HPK with half the size.
- MSV respectively be the set of selected ones from HPK and MPK. Then with overwhelming probability,
- HSV the set of selected ones from HPK. Then with overwhelming probability,
- the protocol generates one block every round.
- a round consists of periods 1, 2, ... and a period consists of steps 1, 2, ....
- each user i is working on exactly one round-period pair.
- r.p refers to period p of round r.
- step 1 of period 1 users propose new blocks.
- step 1 of following periods users propose new blocks or re-propose blocks that have been proposed in earlier periods.
- Each step s of period r.p has a committee chosen by cryptographic self selection, denoted by SV r,p,s .
- k 70.
- a user i is eligible to be selected in round-r committees if i £ PK r k .
- the committee for Step 1 of each period has expected size n (e.g., 35) and all other committees have expected size n.
- Committee members for Step 1 are referred to as potential leaders.
- Credential User i’s credential a r f p,s for a round r, period p and step s is SIGi(Q r 1 , r , p, s).
- a committee member for a step always propagates his corresponding credential together with his message for that step, and we will not explicitly mention the propagation of credentials.
- leader The leader £ r p for period r.p is .
- Valid block We call a block proposed during round r valid if and only if all its transactions are valid with respect to blocks B°, B 1 , ⁇ ⁇ ⁇ , B r_ 1 and the seed Q r specified by it follows the rules of the protocol.
- Voting Messages The committee members generate three types of voting messages.
- Cert- vote User i’s cert- vote for a value v for period r.p is the signature SIGi(v,“cert” , r.p) .
- Soft-vote User i’s soft- vote for a value v for period r.p is the signature SIGfiv,“soft”, r.p).
- Step s is the signature SIGfiv,“next” , r.p. s) .
- the values v that will be voted upon are either values in the range of the hash function H or a special symbol _L of the same length but outside the range of H . 41
- Timers Each user i keeps a timer clocki, which he resets to 0 every time he starts a new period. As long as i remains in the same period, clocki keeps counting.
- the users’ individual timers do not need to be synchronized or almost synchronized. The only requirement is that they have the same speed.
- the soft-votes are generated only in one step, and so are the cert-votes. Thus they do not need to specify the corresponding step.
- the next-votes may be generated in multiple steps and need to specify the step numbers.
- period 1 instructions for a generic user i If user i is not in the committee of a specific step, he still computes his vote in that step, but does not propagate it.
- period-p instructions for a generic user i. Again, if user i is not in the committee of a specific step, he still computes his vote in the step but does not propagate it.
- User i starts period p the moment he receives tn next-votes for some value v (which might be equal to _L) for the same step s of period p— 1, and only if he has not yet started a period p ' > p.
- User i sets his starting value for period p, st p , to v. The moment i starts period p, he finishes all previous periods and resets clocki to 0.
- a user i may simultaneously see tn next-votes for _L and tn next-votes for some u F _L for period p 1. He is free to set his starting value to either _L or v in this case, but the Block Proposal step always gives priority to _L.
- a newly proposed block for a period p > 2 is as if there were no leader for it, and the corresponding seed Q r is defined in the same way as in the original Algorand protocol when B r is the empty block.
- Steps 5.1 and 5.2 are made into different steps so that they have different committees.
- a diagram 20’ shows a first plurality of computing workstations 22a- 22c connected to a first portion 24’ of a data network, such as the Internet, and a second plurality of computing workstations 22a’-22c’ connected to a second portion 24” of the data network.
- the workstations 22a-22c communicate with each other via the first portion 24’ of the network and the workstations 22a’-22c’ communicate with each other via the second portion 24” of the network.
- the workstations 22a-22c do not communicate with the workstations 22a’-22c’ because the network has been partitioned into the first part 24’ and the second part 24” by a partition mechanism 26.
- the partition mechanism 26 could be any mechanism that suppresses communication between the parts 24’, 24” of the network. Note that the partition mechanism 26 could be purposefully inserted into the network by an adversary or could occur due to unanticipated network interruption caused by natural or man-made phenomena, such as a power outage or a network switching error.
- each of the workstations 22a-22c, 22a’-22c’ performs the steps set forth above, but the first plurality of workstations 22a-22c does not communicate with the second plurality of workstations 22a’-22c’. That is, each of the entities 22a-22c manages a transaction system locally within the part 24’ while each of the entities 22a’-22c’ manages a transaction system locally within the part 24”.
- a cert- vote from a player j is counted even if player i has also received a message from j cert- voting for a different value for the same period. As shown in the analysis, this is to ensure that all honest users know CERT within time l from each other.
- the header defines the seed Q r and, as mentioned earlier, strictly speaking the header is part of v itself.
- H ⁇ B will be the only value that is (re-)proposed in step 1 of period r.(p + 1), the only value that honest users will soft- vote for in step 2 of period r.(p + 1) , and consequently the only value they will cert-vote in step 3 and next-vote in step s > 4 of period r.(p + 1) .
- B having gotten a certificate in a period r.p does not mean that the honest users will receive the certificate.
- an adversary controls how messages are delivered in the system. He may, for example, allow all messages to be delivered properly except the cert- votes, where he does not allow cert- votes from one group of users to be delivered to other groups.
- B having gotten a certificate implies that enough honest users have cert-voted for it and will not next-vote for anything else, which prevents any other block from being certified in period r.p and any future period.
- the efficiency of the new embodiment comes from two parts. First, when the network is not partitioned, consensus about the rth block is reached quickly. Indeed, if the leader of step 1 of period r.l is honest, then all honest users immediately cert-vote for his proposed block B, B has gotten a certificate after step 3 of period r.p, and all honest users finish round r afterward.
- a certificate for some valid block B is generated in a period r.p, then all honest users finish round r soon after that. This is so because, if at least tn cert-votes for B come from honest users, then all honest users will receive them within time l and will finish round r with B being the rth block. If any set of tn cert-votes for B contains at least one malicious user, the malicious users may choose to not send their cert-votes and the honest users do not receive a certificate for B right away. However, the choices of n and tn ensure that a certificate for B contain at least one honest user i, and i has received tn soft-votes for B before he cert-voted it.
- the choices of the seeds Q r and the cryptographic sortition used in the new embodiment ensure that each period p of round r has an honest leader with high probability, as in the original Algorand protocol, and the missing detailed analysis about the new embodiment’s efficiency when there is no network partition follow from there.
- the protocol will recover and reach consensus quickly. Indeed, if some honest users have received a certificate for a block B in round r during the partition and moved to round r + 1, then once the partition is resolved all honest users will receive such a certificate for B and move to round r + 1. Moreover, let p be the furthest period in round r + 1 where an honest user i has reached during the partition. Then all the next-votes that allowed i to move to period (r + l) .p will reach other honest users after the partition is resolved, and they will also move to period ⁇ r + l) .p. The protocol will then continue from there as usual, following the same analysis as when there is not network partition.
- the new embodiment is secure and does not soft-fork even when the network is partitioned. It generates block efficiently when the network is not partitioned, and recovers quickly after a network partition is resolved.
- the mechanism described herein is applicable to other blockchain systems where it is desirable to prevent more than one blocks are certified during a network partition and to restore liveness quickly after a partition is resolved.
- the system described herein may be adapted to other blockchain schemes, even schemes that do not relate directly to currency.
- the system described herein may be adapted to be applied to and combined with mechanisms set forth in any or all of PCT/US2017/031037, filed on May 4, 2017, 15/551,678 filed August 17, 2017, 16/096,107 filed on October 24, 2018, PCT/US2018/053360 filed on September 28, 2018, PCT/US2018/054311 filed on October 4, 2018, 62/632,944 filed on February 20, 2018, 62/643,331 filed on March 15, 2018, 62/777,410 filed on December 10, 2018, and 62/778,482 filed on December 12, 2018, all of which are incorporated by reference herein.
- Software implementations of the system described herein may include executable code that is stored in a computer readable medium and executed by one or more processors.
- the computer readable medium may be non-transitory and include a computer hard drive, ROM, RAM, flash memory, portable computer storage media such as a CD-ROM, a DVD-ROM, a flash drive, an SD card and/or other drive with, for example, a universal serial bus (USB) interface, and/or any other appropriate tangible or non-transitory computer readable medium or computer memory on which executable code may be stored and executed by a processor.
- the system described herein may be used in connection with any appropriate operating system.
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Description
Claims
Priority Applications (12)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| MX2020006642A MX2020006642A (en) | 2017-12-19 | 2018-12-19 | Fast and partition-resilient blockchains. |
| CA3086361A CA3086361A1 (en) | 2017-12-19 | 2018-12-19 | Fast and partition-resilient blockchains |
| EP18891030.1A EP3729351A4 (en) | 2017-12-19 | 2018-12-19 | Fast and partition-resilient blockchains |
| SG11202005400QA SG11202005400QA (en) | 2017-12-19 | 2018-12-19 | Fast and partition-resilient blockchains |
| RU2020119312A RU2020119312A (en) | 2017-12-19 | 2018-12-19 | FAST AND SPLIT-RESISTANT BLOCK CHAINS |
| AU2018392471A AU2018392471A1 (en) | 2017-12-19 | 2018-12-19 | Fast and partition-resilient blockchains |
| JP2020534368A JP2021507629A (en) | 2017-12-19 | 2018-12-19 | Blockchain with high speed and split resistance |
| KR1020207020497A KR20200102460A (en) | 2017-12-19 | 2018-12-19 | High-speed partition elastic blockchain |
| US16/955,256 US20200396059A1 (en) | 2017-12-19 | 2018-12-19 | Fast and partition-resilient blockchains |
| BR112020012449-4A BR112020012449A2 (en) | 2017-12-19 | 2018-12-19 | fast and resilient block chains to partition |
| CN201880082615.XA CN111566681A (en) | 2017-12-19 | 2018-12-19 | Fast and partition-resilient block chain |
| IL275211A IL275211A (en) | 2017-12-19 | 2020-06-08 | Fast and partition-resilient blockchains |
Applications Claiming Priority (10)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201762607558P | 2017-12-19 | 2017-12-19 | |
| US62/607,558 | 2017-12-19 | ||
| US201862632944P | 2018-02-20 | 2018-02-20 | |
| US62/632,944 | 2018-02-20 | ||
| US201862643331P | 2018-03-15 | 2018-03-15 | |
| US62/643,331 | 2018-03-15 | ||
| US201862777410P | 2018-12-10 | 2018-12-10 | |
| US62/777,410 | 2018-12-10 | ||
| US201862778482P | 2018-12-12 | 2018-12-12 | |
| US62/778,482 | 2018-12-12 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2019126311A1 true WO2019126311A1 (en) | 2019-06-27 |
Family
ID=66995114
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2018/066481 Ceased WO2019126311A1 (en) | 2017-12-19 | 2018-12-19 | Fast and partition-resilient blockchains |
Country Status (12)
| Country | Link |
|---|---|
| EP (1) | EP3729351A4 (en) |
| JP (1) | JP2021507629A (en) |
| KR (1) | KR20200102460A (en) |
| CN (1) | CN111566681A (en) |
| AU (1) | AU2018392471A1 (en) |
| BR (1) | BR112020012449A2 (en) |
| CA (1) | CA3086361A1 (en) |
| IL (1) | IL275211A (en) |
| MX (1) | MX2020006642A (en) |
| RU (1) | RU2020119312A (en) |
| SG (1) | SG11202005400QA (en) |
| WO (1) | WO2019126311A1 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111292082A (en) * | 2020-01-13 | 2020-06-16 | 支付宝(杭州)信息技术有限公司 | Public key management method, device and equipment in block chain type account book |
| US20200341971A1 (en) * | 2019-03-18 | 2020-10-29 | Reliance Jio Infocomm Limited | Systems and methods for asynchronous delayed updates in virtual distributed ledger networks |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8041644B2 (en) * | 1999-10-18 | 2011-10-18 | Stamps.Com | Cryptographic module for secure processing of value-bearing items |
| US9071446B2 (en) * | 2011-03-11 | 2015-06-30 | Emsycon Gmbh | Tamper-protected hardware and method for using same |
| US20160342977A1 (en) * | 2015-05-20 | 2016-11-24 | Vennd.io Pty Ltd | Device, method and system for virtual asset transactions |
| US20160379212A1 (en) | 2015-06-26 | 2016-12-29 | Intel Corporation | System, apparatus and method for performing cryptographic operations in a trusted execution environment |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2445573A1 (en) * | 2001-04-27 | 2002-11-07 | Massachusetts Institute Of Technology | Method and system for micropayment transactions |
| US7797457B2 (en) * | 2006-03-10 | 2010-09-14 | Microsoft Corporation | Leaderless byzantine consensus |
| US11270298B2 (en) * | 2014-04-14 | 2022-03-08 | 21, Inc. | Digital currency mining circuitry |
| US20170048209A1 (en) * | 2015-07-14 | 2017-02-16 | Fmr Llc | Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems |
| MA44883A (en) * | 2016-05-04 | 2021-03-24 | Algorand Inc | DISTRIBUTED TRANSACTION PROPAGATION AND VERIFICATION SYSTEM |
| CN106548349B (en) * | 2016-11-02 | 2020-09-29 | 江苏通付盾科技有限公司 | Transaction information verification method and system |
| CN106971302A (en) * | 2017-04-17 | 2017-07-21 | 北京工商大学 | A kind of threedimensional model based on block chain technology is really weighed and method of commerce |
-
2018
- 2018-12-19 CN CN201880082615.XA patent/CN111566681A/en active Pending
- 2018-12-19 EP EP18891030.1A patent/EP3729351A4/en not_active Withdrawn
- 2018-12-19 CA CA3086361A patent/CA3086361A1/en active Pending
- 2018-12-19 KR KR1020207020497A patent/KR20200102460A/en not_active Ceased
- 2018-12-19 JP JP2020534368A patent/JP2021507629A/en active Pending
- 2018-12-19 AU AU2018392471A patent/AU2018392471A1/en not_active Abandoned
- 2018-12-19 SG SG11202005400QA patent/SG11202005400QA/en unknown
- 2018-12-19 BR BR112020012449-4A patent/BR112020012449A2/en not_active IP Right Cessation
- 2018-12-19 MX MX2020006642A patent/MX2020006642A/en unknown
- 2018-12-19 RU RU2020119312A patent/RU2020119312A/en unknown
- 2018-12-19 WO PCT/US2018/066481 patent/WO2019126311A1/en not_active Ceased
-
2020
- 2020-06-08 IL IL275211A patent/IL275211A/en unknown
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8041644B2 (en) * | 1999-10-18 | 2011-10-18 | Stamps.Com | Cryptographic module for secure processing of value-bearing items |
| US9071446B2 (en) * | 2011-03-11 | 2015-06-30 | Emsycon Gmbh | Tamper-protected hardware and method for using same |
| US20160342977A1 (en) * | 2015-05-20 | 2016-11-24 | Vennd.io Pty Ltd | Device, method and system for virtual asset transactions |
| US20160379212A1 (en) | 2015-06-26 | 2016-12-29 | Intel Corporation | System, apparatus and method for performing cryptographic operations in a trusted execution environment |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP3729351A4 |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20200341971A1 (en) * | 2019-03-18 | 2020-10-29 | Reliance Jio Infocomm Limited | Systems and methods for asynchronous delayed updates in virtual distributed ledger networks |
| US11762842B2 (en) * | 2019-03-18 | 2023-09-19 | Jio Platforms Limited | Systems and methods for asynchronous delayed updates in virtual distributed ledger networks |
| CN111292082A (en) * | 2020-01-13 | 2020-06-16 | 支付宝(杭州)信息技术有限公司 | Public key management method, device and equipment in block chain type account book |
| CN111292082B (en) * | 2020-01-13 | 2022-12-20 | 蚂蚁区块链科技(上海)有限公司 | Public key management method, device and equipment in block chain type account book |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2021507629A (en) | 2021-02-22 |
| IL275211A (en) | 2020-07-30 |
| CN111566681A (en) | 2020-08-21 |
| BR112020012449A2 (en) | 2020-11-24 |
| CA3086361A1 (en) | 2019-06-27 |
| KR20200102460A (en) | 2020-08-31 |
| AU2018392471A1 (en) | 2020-06-25 |
| EP3729351A1 (en) | 2020-10-28 |
| SG11202005400QA (en) | 2020-07-29 |
| EP3729351A4 (en) | 2021-10-20 |
| MX2020006642A (en) | 2020-12-07 |
| RU2020119312A (en) | 2022-01-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20200396059A1 (en) | Fast and partition-resilient blockchains | |
| Chen et al. | Algorand | |
| US20190147438A1 (en) | Distributed transaction propagation and verification system | |
| US12323516B2 (en) | Computer-implemented system and method for time release encryption over a blockchain network | |
| Abraham et al. | The blockchain consensus layer and BFT | |
| Hanke et al. | Dfinity technology overview series, consensus system | |
| US20200304314A1 (en) | Message-credentialed blockchains | |
| Norman et al. | Analysis of probabilistic contract signing | |
| CN111466098A (en) | Block chain implemented security system and method for blind result selection | |
| Pu | Safe permissionless consensus | |
| WO2019126311A1 (en) | Fast and partition-resilient blockchains | |
| CN117395007A (en) | Blockchain consensus method, system and terminal based on publicly verifiable random numbers | |
| CN111224961A (en) | Method and system for updating block chain based on identification code | |
| Kavitha et al. | A completely distributed blockchain period authentication framework | |
| TWI863100B (en) | Method of generating randomness by public participation | |
| Kokoris Kogias | Secure, confidential blockchains providing high throughput and low latency | |
| HK40062529A (en) | Distributed transaction propagation and verification system | |
| Anceaume et al. | UTXOs as a proof of membership for Byzantine Agreement based Cryptocurrencies | |
| Landerreche | Leaning on Impossible-to-Parallelise Work for Immutability Guarantees in the Blockchain | |
| HK40048808A (en) | Method of enabling a first entity of a blockchain system to prove to other entities | |
| HK40036587A (en) | Fast and partition-resilient blockchains | |
| Kiayias et al. | State of the Art of Cryptographic Ledgers |
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: 18891030 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 3086361 Country of ref document: CA |
|
| ENP | Entry into the national phase |
Ref document number: 2020534368 Country of ref document: JP Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| ENP | Entry into the national phase |
Ref document number: 2018392471 Country of ref document: AU Date of ref document: 20181219 Kind code of ref document: A |
|
| ENP | Entry into the national phase |
Ref document number: 20207020497 Country of ref document: KR Kind code of ref document: A |
|
| ENP | Entry into the national phase |
Ref document number: 2018891030 Country of ref document: EP Effective date: 20200720 |
|
| REG | Reference to national code |
Ref country code: BR Ref legal event code: B01A Ref document number: 112020012449 Country of ref document: BR |
|
| ENP | Entry into the national phase |
Ref document number: 112020012449 Country of ref document: BR Kind code of ref document: A2 Effective date: 20200618 |







