Huh, I guess my information is out-of-date. It is a fast-moving space. And it’s a shame they’re continuing with Solidity.
I’m wondering how Cardano’s Haskell-based Plutus platform will compare in practice, now that they’re rolling out smart contracts as well. I’m guessing they’re going to have significant adoption issues.
NEAR is WASM based. It's interesting but not nearly as "battle tested" as EVM. ETH2 also can't break any backward compatibility, which makes it easier to just keep going down the EVM route.
I'm not a Ethereum core dev, but this is my understanding:
The EVM is tailor-made to accurately account for the expense of executing programs in a distributed environment. It has a highly heterogeneous addressing scheme. Every opcode has execution cost metering that has been refined over time. Each word is 256 bits to make 256-bit cryptographic operations easier. There's significant tooling around the EVM for writing and analyzing smart contracts. Other EVM-based blockchains would need to migrate in parallel. The skillset of "blockchain application developer" has coalesced around Solidity and the EVM.
Bottom line is that although WASM offers compatibility with non-blockchain tooling, the blockchain-specific needs of Ethereum are so much better served by the EVM that migrating is difficult.
The EVM design choices are tightly bound with the on-chain storage of data. On ethereum you pay for reads (less) and writes (more) but everything is very expensive because it's stored in a merkle tree with computationally expensive operations.
Alot of the WASM experimentation has also included changes around how storage is charged. Specifically NEAR does a deposit system where you have to HODL to store data on chain. That allows them to innovate in the runtime and cost structure and still incentivize blockchain nodes.
So it's not entirely gas accounting for computation, its more pricing for storage that probably keeps eth on EVM indefinitely.
Other experimental chains are must more likely to become robust and trusted and more performant and then eclipse ethereum.
Ethereum considered implementing storage rents, like NEAR, but instead decided to transition to a verkle trie model that permits succinct proofs of state values. State rent presents some serious problems regarding composeability. What the state-of-the-art solution for state rent on resources that are effectively common goods?
They're currently prioritizing moving to proof-of-stake (which will end the need for ethereum mining and its high electricity usage globally) and sharding (which will solve the congestion that's causing very high transaction fees). Using WASM would be nice in some ways but it doesn't solve any high priority problems. Maybe it will happen later once some attention is freed up by these main problems being solved.
Most blockchains require all nodes to process all transactions, limiting the total transaction limit of the system to the rate of the slowest node that's intended to be supported. Ethereum is working on sharding transaction data so that every node only needs to handle all of the transactions of its chosen shard, which will allow the enforced transaction limits to be multiplied by the shard count. There's complexity to this because any single transaction can involve data from multiple shards.
Allowing the global transaction limit to be raised will decrease the competition for blockchain space and massively decrease transaction fees.
There are also other standards being worked on to allow transactions to be made in a way that they don't have to be broadcast to all nodes, which will also allow their transactions to have much cheaper fees. These systems are being developed simultaneously by unaffiliated developers in userspace ("layer 2") rather than by the core Ethereum developers who are working on proof-of-stake and sharding. These systems generally come with their own sets of trade-offs (including what kinds of smart contracts they support and how smoothly they interoperate with outside systems) so they don't completely replace the need for sharding being done by the core developers. ZK rollups and optimistic rollups are some of the main kinds of layer 2 scaling solutions being worked on now.
This sounds pretty rad!
Thanks!