can someone explain how all the other nodes, except the one that found the block, are incentivised to verify if the block miner(creator) has done the smart contract code execution correctly ? Only the miner gets the reward, so it is possible that other nodes lose motivation to recalculate that( in ethereum docs it's written that the smart contract execution is done by every node in the network ) ? They may lose it in case for example when they don't want to lose internet bandwidth or additional CPU cycles for that. They may think : "oh, everyone is doing that so maybe I would be better off when I just don't do it ? I can save 100$ a month in terms of CPU cycles." I am sure there is some misunderstanding from my side, can someone explain ? Thanks
1 Answer
Miners want to win future blocks. If they don't independently verify that the chain they are following is the right one, they may end up spending future money doing proof of work on an incorrect chain.
As soon as they see the winning block hash from some other miner, they confirm it, add the new block to their own chain, and hurriedly start trying to win the next block.
There is nothing stopping them from trying to shave off some cost by simply not verifying the winning hash and adding the block directly, but they are taking a risk if they do so.
Not to mention that the verification step is trivial (mining hardware is built specifically to do this hashing step very quickly), they probably figure why not do it since it's safer and has near-zero cost.
-
Hmm so it seems that verification is built into the specific ethereum clients like geth rather than built into the ethereum economy design. What if there will be developed other open source ethereum clients/miners where they will skip some steps of the ethereum geth implementation, steps which are not incentivised economically ? And lets say that this open source client would become very popular. Isn't it dangerous that such a crucial part of ethereum - verification by all nodes - is not baked in into the ethereum economy design but just the specific client ( geth ) ?– frikoCommented Feb 8, 2018 at 18:03
-
For example if verification was rewarded by some small portion of ether, then everyone would do that– frikoCommented Feb 8, 2018 at 18:10
-
The economic incentive is near-zero cost (because the hardware is designed specifically to do the verification step) and a positive incentive (avoid work on the wrong chain). I wouldn’t say there is no economic incentive. Commented Feb 8, 2018 at 18:25