Delegated proof of stake

From CryptoMarketsWiki
(Redirected from Delegated proof-of-stake)
Jump to: navigation, search

Delegated proof of stake (DPoS) is a software protocol similar to proof of stake. DPoS is primarily used by EOS as a mechanism for achieving consensus in blockchain networks when adding new blocks.[1]

Overview

Delegated proof of stake is a software protocol similar to proof of stake, which assigns the privilege of validating transactions and making new blocks in a blockchain to users in the network that hold the most digital tokens used in that network (in other words, Ethereum's blockchain is regulated by users with the most ether tokens). Unlike a blockchain network regulated by proof of stake, a network that is regulated by the delegated proof of stake protocol doesn't assign the role of both validating and producing blocks to users who have the most tokens. Instead, it only assigns block producers (or "witnesses") this way.

Block producers use the DPoS software on their nodes (personal computers or specialized mining machines) to organize transactions into a block, then broadcast that block to the network. Unlike other consensus models, this does not mean the block is automatically added to the blockchain - at this stage, it's more of a proposal or a schematic for a block to be added.[2]

Delegation

Once the proposal is broadcasted to the network, it has to be vetted by users who are chosen by members of the network. Similar to a proof of stake mechanism, these chosen users are called "validators," though unlike in proof of stake, they don't produce blocks and are not randomly chosen by a computer algorithm. [3][4]

Validators take the block "proposals," which they receive from "witnesses" or block producers, and verify the validity of the transactions contained in that block using cryptographic hash functions. Once these blocks have been verified, they are added to the blockchain. Unlike the "validators" in a proof of stake system, DPoS validators do not organize digital records of transactions into blocks.[5]

References