Proof-of-stake systems (abbreviated as PoS) use a simple concept to secure the blockchain. To become a validator for the chain you must lock up, or stake, a number of tokens of that chain. This value lockup determines your chances every round to have your block be included in the ledger and claim the reward for it. The more coins you lock up, the more value you’ve invested in the system, the more incentive you have to not be a malicious user on the network.

There are multiple implementations of Proof of Stake, some like Qtum require no minimum stake, others like DASH have PoS and PoW working in tandem, while others still, like Cosmos, work through a Delegated Proof-of-Stake system, where only a subset of nodes are validators.

Qtum is built upon “Proof-of-Stake Version 3”, an improvement over version 2 that was also made by Pavel Vasin and implemented in the Blackcoin project. This type of Proof of Stake (PoSv3) is built for UTXO based blockchains.

In a PoW system, the block header is hashed along with a nonce to create a block hash which must be less than some target to “win” that block. PoSv3 instead has a kernel hash which is composed of several pieces of data that are not readily modifiable in the current block.

Instead of a coinbase transaction in a PoW system, the Qtum PoS system has a coinstake transaction (2nd transaction in the block, 1st being an empty coinbase). The coinstake transaction has some specific rules it must abide by, and each block must have exactly one staking transaction. Secondly, the block timestamp must have the bottom four bits set to 0 so the blocktime can only be represented in 16-second intervals. Each UTXO can only be used once every 500 blocks (~24 hours) to produce a staking transaction.

The Kernel Hash is built from the following data:

Previous block’s “stake modifier” (hash of prevout transaction in PoS blocks and previous block’s stake modifier)

Timestamp from “prevout” transaction (the transaction output that is spent by the first vin of the staking transaction)

The hash of the prevout transaction

The output number of the prevout (ie, which output of the transaction is spent by the staking transaction)

Current block time, with the bottom 4 bits set to 0 to reduce granularity. This is the only thing that changes during staking process

A prevout transaction is the UTXO used to create this staking transaction. The only way to change the current kernel hash (to mine a block) is therefore to change the UTXO you’re using to create the block or change the current blocktime.

Secondly, there is one more aspect that is changed in the mining process of a PoS block. The difficulty is weighted against the number of coins in the staking transaction. The PoS difficulty ends up being twice as easy to achieve when staking 2 coins, compared to staking just 1 coin. If this were not the case, then it would encourage creating many tiny UTXOs for staking, which would bloat the size of the blockchain and ultimately cause the entire network to require more resources to maintain, as well as potentially compromise\ing the blockchain’s overall security.

To read an in-depth write up discussing Proof of Stake, I’d suggest Jordan Earls’ amazing blog post here.