Blockchain technology uses consensus algorithms to validate transactions with its network. The most well-known consensus algorithms are Proof-of-Work (PoW), currently used by Bitcoin and Ethereum, and Proof-of-Stake (PoS), currently used by Polkadot and Cardano.
Whilst these two are the most well-known, there are additional consensus protocols that are being used to verify transactions. This post will focus on Proof-of-Time (PoT), which is used by Analog, and Proof-of-History (PoH) which is used by Solana, alongside PoS as a hybrid consensus protocol.
PoT and PoH may seem similar to users on a surface level but they are two very different protocols and we'll look into their differences below.
Proof-of-Time (PoT) is a consensus algorithm developed by Analog that is based on Delegated Proof-of-Stake (DPoS). DPoS is a modified version of Proof-of-Stake (PoS) where users select "delegates" to validate the next block. PoT works in a slightly different manner by using a ranking system, and taking into account a validator's fixed stake, where validators stake an equal amount of tokens. Validators also "self-select" themselves via a verifiable random function."
The ranking system gives a ranking score to network validators based on their performance, with trustworthy validators with a long history getting higher scores. The system also takes into account the fixed stake of the validator. PoT also refers to its ledger as the "Timechain".
The protocol borrows from DPoS when it comes to voting on delegates, however, there are changes here too. PoT has multiple voting stages, and the first stage has validators (or "time electors" putting forward a block to be included in the ledger).
These validators are chosen in a randomized process based on variables that include their ranking score and fixed staked. The selection process uses a Verifiable Delay Function (VDF), and only one validator gets chosen at a time.
Validators run a verifiable delay function to see if they have been chosen to propose a block to be included in the Timechain. If they have been chosen, they validate the transaction and generate a VDF proof before submitting both to the remaining nodes in the Timechain.
This leads to the second process, where the transaction is passed through a group of 1,000 validators, each of whom has been selected via the same process as the first validator. The transaction will be checked by each of these validators to ensure it has been properly validated.
If the transaction passes, the validators accept the block, and if over 2/3 of the validators accept the transaction, it is added to the Timechain.
Proof-of-History (PoH), is a consensus algorithm that aims to prove that a transaction occurred before or after an event. Similar to Proof-of-Time, PoH uses a Verifiable Delay Function (VDF) to verify transactions. VDFs work by using a lot of computing power to calculate, but little power to verify transactions, similar to Proof-of-Work (PoW).
This shows users how long it took to verify a transaction, whilst also allowing validators to quickly see the results.
PoH uses VDFs to verify how much time has passed between two events. This process is done using cryptography to ensure that the output cannot be determined from the input.
Transactions are entered into blocks through a sequential system, and the outputs are used as inputs to the next transaction. The sequence of these inputs is recorded by timestamping the entries. This verifies if the data was generated before a certain event.
The biggest differences between Proof-of-Time (PoT) and Proof-of-History (PoH) are:
Proof-of-Time (PoT) and Proof-of-History (PoH) may share some similarities but both protocols function in a different manner when it comes to validating transactions on the blockchain. PoT focuses on electing validators to verify transactions randomly based on their reliability, which is determined by a ranking system.
PoH uses a Verifiable Delay Function to validate transactions, verify how much time has passed between two events, and make it possible for validators to quickly verify a transaction whilst preventing malicious actors from predicting the output from knowing the input.