PulseChain launched on May 13, 2023, as a full copy of Ethereum and a standalone chain. Its main aim is to provide cheaper transactions and faster block execution. It was built by Richard Heart, the founder of the HEX protocol, and here we explore how it works, what the validators are, and how consensus and execution work.
PulseChain inherits Ethereum's DNA
Ethereum, the second-largest cryptocurrency by market capitalization, is a platform for building smart contracts and dApps. Ethereum’s success lies in its robust consensus and execution mechanisms, which enable secure and reliable transaction validation and smart contract execution. It’s considered to be the second-most secure blockchain after Bitcoin.
PulseChain inherited Ethereum’s DNA because the whole state was copied over, as well as the consensus mechanism. Some minor changes were introduced to improve on Ethereum. The state of Ethereum represents the current state of all accounts and smart contracts on the network. Each account has a balance, code, and storage. Contract storage acts as a persistent data store for smart contracts, enabling them to maintain state between invocations.
PuleseChain is PoS
PulseChain is based on the Proof of Stake consensus mechanism, which is a way of achieving distributed agreement among nodes on the state of the blockchain. It involves validators who stake their PLS into a smart contract and perform the tasks of proposing and validating blocks, as well as voting for the canonical chain. Validators are rewarded for their honest participation and penalized for their misbehavior or inactivity.
Validators are randomly selected to propose new blocks that contain transactions and the updated state of the network. They also attest to the validity of blocks they see by signing messages that include the block hash and the slot number. These attestations are used to form committees that vote for the best chain.
The best chain is determined by a fork choice rule that weighs the number and stake of validators who voted for each block. The block with the highest weight is considered the head of the chain. This ensures that validators converge on a single chain and avoid forks. This is different from Bitcoin, where the best chain is the longest one and the one with the most PoW done on it.
Who are the validators
People who stake 32 million PLS to gain the right to decide on the following valid block of transactions, validate it, and append it to the blockchain run validators, which are decentralized nodes. They get penalized when they try to include an invalid block or for poor performance.
Gasper is an algorithm that executes all the logic with regards to voting (attestation) and validator incentives. Upon staking PLS to the deposit contract, which collects and tracks validators, they need to run two separate pieces of software: an execution client and a consensus client.
After the stake, each validator joins the activation queue to become a validator. There’s rate limiting in the activation queue to protect the network from malicious nodes joining the network and leaving right after making a damage to avoid penalties, limit communication overhead between decentralized nodes, and facilitate the propagation of votes.
The validators participate in the execution, which refers to the process of running and processing smart contracts and transactions on the PulseChain network. Nodes execute transactions by verifying their validity and applying the necessary state changes. Smart contracts, written in high-level programming languages, are executed on the Ethereum Virtual Machine (EVM), a decentralized runtime environment.
How does Gasper rule the nodes
Voting on blocks needs some time constraints. This is why PulseChain has slots and epochs.
An epoch lasts 384 seconds, or 6.4 minutes, and it’s made of 32 slots, where each slot lasts 12 seconds.
In each epoch, a new set of validators is assigned to a committee of a maximum of 2048 validators. There’s one committee per slot.
Each committee is further divided into 64 subnets to speed up the process of signature collection by one randomly chosen aggregator.
Every 1 slot, one validator is randomly selected to propose a block. He collects pending transactions from the mempool, constructs a block, and proposes it for validation. Other validators attest to whether the block is valid or not.
There are 32 blocks in one epoch. In addition to voting on the current head block, they also attest to two checkpoint blocks. The checkpoint is the first block at the start of that epoch. The target checkpoint is the one in the current epoch, and the source checkpoint is in the previous epoch.
When aggregation of all signatures from individual validators and data construction is done, the validator signs the attestation using a private key and broadcasts the block to the network.
The responsibilities of a validator are:
- Voting on a block once per epoch
- When selected to be an aggregator, he needs to aggregate attestations from validators in the same committee
- Constructing blocks when selected to be a validator
When validators do this work, it’s said that the blockchain comes to a consensus.
What does it mean to vote on a block
The block proposer creates a block, and validators vote on it if they believe it’s a valid block. If 2/3 of the total staked PLS from all validators votes in favor of that block, then it becomes justified, which means that it’s unlikely to be reverted. Only when another block is justified on top of a justified block, it becomes finalized or permanently included in the blockchain and can’t be reverted. Blocks reach the justified and finalized states in the first block in every epoch, or the checkpoint block.