# Secure Proof of Stake

## SPoS Overview

Secure Proof of Stake (SPoS) is the consensus mechanism adopted by OneFinity, emphasizing efficiency and security in blockchain consensus. It leverages a modified BLS multisignature scheme and prioritizes meritocracy among validators.

### Key Features

* **ONE Tokens & Validator Rating:** Validator nodes are selected for consensus based on their staked ONE tokens and an individual rating score, reflecting their past behavior. This combination ensures that stake importance is balanced with performance and reliability.
* **Efficient Rounds:** The process is structured into rounds that last mere seconds, with only 2 communication rounds needed for signing blocks. The selection of validators for each round is completed in roughly 100 ms, thanks to the deterministic nature once the randomness source is known.
* **Selection Process:**
  * **Randomness Source:** At the start of each round, a randomness source, uninfluenced and unpredictable, is generated from the previous block’s signature, ensuring fairness in the selection of the consensus group and the block proposer.
  * **Block Proposer:** The validator with the smallest numerical hash of their public key and the randomness source becomes the block proposer, responsible for producing the block that round.
* **Security:** The quick succession of rounds is designed to prevent malevolent actors from adapting quickly enough to influence block proposals, enhancing the overall security of the network.

**SPoS** stands out by integrating these mechanisms smoothly, fostering both a high level of security and efficient governance within the blockchain’s operations.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.onefinity.network/technology/basic-concepts/secure-proof-of-stake.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
