Achieving Greater Levels of Abstraction with Ethereum

Ethereum’s Vitalik Buterin recently blogged about the degree of abstraction that Ethereum offers as a protocol.

Buterin notes:

Rather than limiting users to a specific set of transaction types and applications, the platform allows anyone to create any kind of blockchain application by writing a script and uploading it to the Ethereum blockchain. This gives an Ethereum a degree of future-proof-ness and neutrality much greater than that of other blockchain protocols

However, as Buterin points out, there are a number of areas where Ethereum could be more abstract.

In terms of cryptography, Ethereum uses Bitcoin’s specific signature, ECDSA algorithm and Bitcoin’s secp256k1 curve, which many consider far from optimal.
Buterin proposes that Ethereum could use other signatures…

ed25519 is increasingly recognized as a superior alternative particularly because of its simpler implementation, greater hardness against side-channel attacks and faster verification. And if quantum computers come around, we will likely have to move to Lamport signatures.

Buterin then ponders whether Ethereum, to achieve further abstraction, could pallow people to use whatever cryptographic verification algorithm that they want to use.

Buterin also highlights how the data structure known as the trie, which in Ethereum is used to store transactions, receipts, accounts and the storage of each account, is a weakness as it is optimized for a particular set of use cases, and the accounts might do better with a different model.

Buterin suggest two options to deal with the weakness.

One option to solve this problem is the direct one: just have an option for contracts to have either a regular trie or a heap, and be done with it. A seemingly nicer solution, however, is to generalize even further. The solution here is as follows. Rather than having a trie or a treap, we simply have an abstract hash tree: there is a root node, which may be empty or which may be the hash of one or more children, and each child in turn may either be a terminal value or the hash of some set of children of its own

He believes that, by using the second option, any other tree-like data structure could be implemented as a library

More interestingly, Buterin discusses building a proof-of-work blockchain that does not rely on any specific currency, allowing people to transact with any digital asset. In addition, he looks how such currency-agnosticism could be added to a proof-of-stake blockchain.

Buterin opines:

Currency-agnostic proof of stake is useful for two reasons. First, it creates a stronger impression of economic neutrality, which makes it more likely to be accepted by existing established groups as it would not be seen as favoring a particular specialized elite (bitcoin holders, ether holders, etc). Second, it increases the amount that will be deposited, as individuals holding digital assets other than ether would have a very low personal cost in putting some of those assets into a deposit contract.

He notes two significant flaws in a currency-agnostic proof-of-stake blockchain. The first flaw is that it naturally leads to currency centralization, as if one currency is dominant it will be most convenient and safe to also stake in that currency. The second, more serious flaw, is the risk of pathological metacoins.