2

The validator don't have the fully data .how can a validator comfirm a poh from the leader? What if the leader is evil and make some fake transactions? And why don't use just pos instead poh? Does the poh is really necessary? Where I can find some info about these questions as I can not find the info in the doc?

1 Answer 1

2

The validator don't have the fully data .how can a validator comfirm a poh from the leader?

The validator is expected to have a trusted starting point of ledger state with which they can build off of (i.e. the hash of state they believe is good). Once they have this, PoH can be verified by performing the hashing on the validator and comparing with the leader PoH entries in the block.

What if the leader is evil and make some fake transactions?

What is meant by fake transactions here? The downstream validators will ensure transactions are performed with valid accounts that are funded and that transactions are signed by owners of those accounts.

And why don't use just pos instead poh? Does the poh is really necessary?

PoS is important for things like voting and prioritization of traffic. PoH is important for verifying the passage of time. Different consensus mechanisms for very different purposes.

Verifying passage of time is important for synchronization between validators as well as transactions.

Because there is an agreed upon leader schedule, a malicious leader that is trying to propose a block at the same time as the “real” leader is forced to complete all the necessary PoH ticks to prove the correct passage of time has taken place to get to its leader slot. This should be impossible to complete faster than the hashing operations can actually complete and thus allows (forces) block producers to stay synchronized.

Regarding transactions, we can ensure rough time ordering of transactions using PoH + including blockhashes in transactions. The blockhash ensures the transaction must have come after the block where that blockhash appeared. PoH ensures it must have come before the time it took to complete the trailing ticks (because the transactions become part of the hash, so trying to insert after the fact would necessitate recomputing all of the hashes serially).

Where I can find some info about these questions as I can not find the info in the doc?

The solana docs, medium, and the white paper are all good resources for understanding the basics architecture/design choices on Solana

14
  • hello, many thanks for your help. 1. the validator has a a trusted starting point of ledger state ,and the transactions can be confirmed to be sent by the real owner ,so when a validator get a transaction and execute it successfully, then it can be trusted, is that right? 2.PoH is important for verifying the passage of time, why should we verify the passage of time? what is the advanteges of poh? what will happen if we just use pos like ethereum?
    – user2712
    Commented Mar 10, 2023 at 4:07
  • 1.) Yes, that’s right. 2.) Verifying passage of time is important for synchronization between validators as well as transactions. Added more info to original answer to address 2 more in depth
    – BW-Solana
    Commented Mar 11, 2023 at 11:16
  • Does the solana validator execute all the transactions in a block or a part of the block? If all the block will the confirm slow? Will it collect the whole block before execute the transactions in the block?
    – user2712
    Commented Mar 20, 2023 at 16:56
  • Thanks for your patience
    – user2712
    Commented Mar 20, 2023 at 16:57
  • The validator is expected to execute all of the transaction in a block. There are limits on resource consumption (e.g. CU limits, data limits, etc.) to ensure block time can fit in 400ms slot time with reasonable HW. It can start executing transactions before collecting an entire block (streaming fashion)
    – BW-Solana
    Commented Mar 21, 2023 at 18:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.