2

EVM is a deterministic meaning that if any two(or more) nodes receive identical transactions in the same order(which is what blockchain is for), they will arrive at the same state independently. And there wouldn't be any need for each node to execute all the code. Which would simplify everything to an order of magnitude and would allow each node to decide what transactions they actually want to execute.

As I understand the fact that we have hashes for each state allows us to make requests for the state with that hash to other nodes rather than computing it ourselves. So another question is how much computing does it saves? Is that approach faster? And would it be actually viable to try the approach I offered?

2
  • But what about consensus and security? How do you determine whether someone else’s hash is correct? Commented Dec 24, 2017 at 12:09
  • Hash of what? In approach I presented there is no need to compute state hash and store it in each block. Every node in the network can decide for itself whether it want to calculate state or not. If it does it executes all the transactions from the first block. And there is no need to achieve consensus on state while there is consensus on transactions order. Because solidity(evm is deterministic). Am I wrong?
    – Piliponful
    Commented Dec 24, 2017 at 16:03

1 Answer 1

1

One feature of having a state root in each block is to enable lights clients. With a verfied state root the client can request SPV like proofs of balances and contracts state. This allows wallets with low resources, to certain degree of trust, to interact with the Ethereum network without having to download the full state or verify every transaction.

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.