Not 100% on topic, but are there other cryptocurrencies that avoid ETH's very painful 'more instructions cost more money to run' problem? I understand that some kind of anti-abuse system is needed, but the current system doesn't seem great either.
The fees are low partially because of more efficient execution, but mostly because not many people use them. Nothing so far has fundamentally solved the problem.
Isn’t the computational cost of running the smart contracts absolutely miniscule in comparison to actually doing the proof-of-work computation? Or is the proof-of-work part of the smart contract in some way?
(geniuine question, I know very little of how Ethereum works)
Yes, but you also need to store and compute over a massive global state, and any execution is replicated across every full node on the network. Too cheap = DoS.
The proof of work is unrelated to smart contracts or transactions in general. Even if no one were using Ethereum at all today, the proof of work done would be the same as if it were used to capacity. The proof of work merely protects the consensus: it is not a cost of use.
consensus on the distant past isn't very interesting. The proof of work is like a data center, or by sharing a whole cow's meat -- it costs almost all or nothing, not linear in usage, but the cost is borne by some method of division across the contents.
Yes, you are correct that the computational of running the smart contracts is very small in relation to the proof of work.
But actually, the main cost is not computation, but storage. Storage (any variable that is holding data inside the contracts) is extremely expensive because there is very little of it, and has to be persisted on the blockchain forever.
In fact, view functions that don't change the state of the blockchain can be executed for free at any time.
Related to that, people have started using old procedural generation tricks to store "large" amounts of data on-chain. For example, as far as I understand it, Aavegotchi [1] stores base layer SVGs, metadata and functions to use these and render the actual end-product at view-time.
Blockchain constraints are eerily reminiscent of the demoscene [2][3][4] (just using the opportunity to share stuff I like, don't mind it).
1. Making the whole world agree on something is inherently slow so there is limited capacity.
2. Every decision has to be made by a computer so the only solution available is some variant of auctioning to the highest bidder. Some number must compare larger than another and the only number you can't lie about is wallet balance (directly or indirectly via resource waste for PoW).
These are fundamental properties of the tech and one reason why these systems can never actually be usable for anything except a playground of a few wealthy hobbyists.
That is like asking for a car that doesn't have the "going further uses more gas" problem.
You can make more efficient cars that use less gas (optimise the EVM) or you can make them use a different gas that doesn't cost as much money (sidechains).
TLDR: If you have an operation that gets more expensive each time you perform it (for example, iterating over all entries in an array and then adding an entry), an attacker could push it into a state where it is too expensive to perform at all.
20 comments
[ 1.5 ms ] story [ 59.4 ms ] thread(geniuine question, I know very little of how Ethereum works)
But actually, the main cost is not computation, but storage. Storage (any variable that is holding data inside the contracts) is extremely expensive because there is very little of it, and has to be persisted on the blockchain forever.
In fact, view functions that don't change the state of the blockchain can be executed for free at any time.
You can shrink it somewhat in absolute terms, but you need to throttle them somehow.
Blockchain constraints are eerily reminiscent of the demoscene [2][3][4] (just using the opportunity to share stuff I like, don't mind it).
[1]: https://github.com/aavegotchi/aavegotchi-contracts
[2]: https://www.youtube.com/watch?v=bD1wWY1YD-M
[3]: https://www.youtube.com/watch?v=qJegM2UgEZU
[4]: https://www.youtube.com/watch?v=0w_xEUoK79o
1. Making the whole world agree on something is inherently slow so there is limited capacity.
2. Every decision has to be made by a computer so the only solution available is some variant of auctioning to the highest bidder. Some number must compare larger than another and the only number you can't lie about is wallet balance (directly or indirectly via resource waste for PoW).
These are fundamental properties of the tech and one reason why these systems can never actually be usable for anything except a playground of a few wealthy hobbyists.
You can make more efficient cars that use less gas (optimise the EVM) or you can make them use a different gas that doesn't cost as much money (sidechains).