Central to Dfinity Consensus: How is Randomness Generated? | Geekhub Global Online, Episode 4
Which crypto project has the potential to rekindle the passion of blockchain enthusiasts and cryptocurrency investors in 2019? Dfinity is that one.
Dfinity’s ambition extends further than to challenge Ethereum’s dominance in the decentralized decentralized application (DApp) and smart contract development industry. With superior speed and scalability, it aims to create a decentralized cloud computer, or the “Internet computer”. At the core is Dfinity protocol and consensus mechanism.
Arthur Falls, Director of Communications at Dfinity, explained Dfinity consensus mechanism and some pioneering technology the project adopts such as Threshold Relay and Probabilistic Slot Consensus on Jan. 16 on 8BTC Boost’s latest episode of Geekhub Global Online, a global blockchain event featuring online courses and dialogues.
Although the launch of the world’s first “internet computer” platform has been postponed, Falls’ online presentation has sparked heated debate about Dfinity protocol and fostered a growing interest in it in China’s crypto community.
Here are highlights from Falls’ presentation:
In order to reduce the cost of producing randomness, Dfinity uses Proof of Stake(PoS). There are a set amount of stake and Dfinity tokens required to participate in the network. All nodes are treated equally.The only way to increase returns on stake is to add more nodes to the network.
Part of benefits of PoS is that all of the nodes are known to the platform so that it can call on nodes to perform certain functions.A node that is called on to perform a function but is offline will lose part of its deposit.
All Dfinity nodes pay the same deposit size.There is no benefits for putting more stake behind your node.
Because we know who is participating in the network and assume that almost all nodes are online, we can use a source of randomness to assign jobs to nodes and be relatively confident that those jobs will be performed. This is the foundation of Dfinity.
Committees allow us to avoid a single decision making. They are central to Dfinity. At any given time, there is an active pool of committees. Each committee is made up of a random sample of nodes that are connected to the network. A node may be more than in one committee.
The platform knows about all nodes and nodes can be penalized if they are offline.
Committees are randomly selected in advance. During Epoch #1, the committees for Epoch 2 are selected, and in the end of Epoch #1, the committee pool that was active is disbanded, and the committee pool for Epoch 2 goes live. This continues indefinitely.
In Dfinity, randomness is created by a very verifiable random function called threshold relay which powers everything.
Think of you playing poker. You need to be able to verify that the dealer cannot predict or manipulate the cards that come out of the deck.That’s why during poker, you shuffle the cards in public view. Shuffling cards is a kind of verifiable random function for a network of distrusting nodes.In poker, the distrusting nodes are the poker players.
To create Threshold Relay, we use threshold cryptography . It’s helpful to understand public key cryptography first.
Imagine you have two keys to your house. One key to lock the door, and the other key to unlock the door. It doesn’t matter who has the key to lock your door so long as you are the only person who has the key to unlock your door.
With digital signing and public key cryptography, it’s very similar. You have two keys , one can sign a piece of data, while one can be used to verify that signature. If everyone has the key to verify your signature , that’s fine so long as you are the only person who can create the signature.
Threshold cryptography is very similar to public key cryptography except for one difference. The private key or the signing key is split into to multiple shares , and each shares can be used to create a share of a signature. Once a threshold proportion of the signature shares are aggregated, they can be combined to create a complete digital signature and be verified with a public key. Without all the minimum number of signature shares however, they cannot be known verifiable signature. Implementation used for Dfinity, we require only the majority.
The signing flow for public key cryptography and threshold cryptography at the same time. A surprising quality of threshold signing is that no matter which of the signature shares are aggregated to create the single verifiable signature, the resulting signature is always the same. We can use signature as our source of randomness for Dfinity verifiable randomness function, the Random Beacon.
Committees are essentially groups that hold shares of a private threshold key that corresponds to a common public key.
Threshold relay, we start with a source of randomness. We use that randomness and a random shuffling algorithm to select one of the committees from the active committee pool, the committee members then sign the randomness that was used to select the committee and then gossip that the signature shares around themselves until they have enough to create threshold signature. We only need majority.
The threshold signature created by the first committee becomes the Random Beacon which selects the second committee the second committee signs that threshold signature and that the resulting threshold signature is the random beacon that selects the third committee.
The Random Shuffle
Because the protocol has a list of all nodes connected to the network it can take this list and the Random Beacon, and both of these as arguments to a random shuffle function and output a randomly ordered list of nodes. The list at the top are considered to be higher in rank than the nodes below them. A node can do it by itself and determine its rank before creating and broadcasting a block.
The point of using threshold signatures is that no individual can corrupt the process and always requires a majority of individuals. We need to ensure that a fake block will not be created and released using some kind of tricky signature.
Probabilistic Slot Consensus
The rank that has resulted from the random shuffle of nodes influences the probability that a node will be able to add a block to the blockchain.
A node can run this random shuffle itself and determine its rank before the block is created.
Signing a Block
The committee also has the job of signing a block. Each committee member follows the same rules. They receive a block. If the block is invalid, they discard it. If it is valid, they check its rank. If it is ranked lower than a block they have already received they may also discard it. If it is ranked higher, they sign it with their share of the private key and broadcast the block and their share of the signature. once a block has collected the required number of signatures which is a majority, then they can create a verifiable signature that notarizes the block and can be added to the blockchain.
Geekhub Global Online,a global blockchain event featuring online courses and dialogues, is developed by 8BTC Boost. The event regularly invite experienced technology companies around the world to deconstruct blockchain technology online to deliver cutting-edge, high-quality blockchain technology content to the Geekhub technology community. Community members can also participate in live interactions to explore the emerging technology.