Vitalik Buterin posted an “Ethereum Research Update” on the official Ethereum blog, on December 4, 2016. The blog post served as an informal state of the union for Ethereum, providing updates regarding recent network upgrades, and gave insight into ongoing, behind-the-scenes development.
The fourth hard fork, Spurious Dragon, is complete, as is the state clearing process. Spurious Dragon was the second of two forks implemented to stop the DoS attacks on the Ethereum network during September and October this year. State clearing was part of that update, which resulted in deleting empty accounts (created with malicious intent) to ‘debloat’ Ethereum’s blockchain. State clearing is now 100% done which means transaction speeds across the Ethereum network are getting faster. This has led to gas limits being increased to 4 million (from 2 million), and they will continue to climb as clients are optimized to allow quicker reading of state data.
As the hard fork rolled out, Ethereum’s C++ and Go development teams made some real progress. There were improvements made to Solidity tools, Geth released a light client, and Parity implemented a warp sync feature. Basically, the community as a whole is steadily getting faster and more efficient.
The next milestone for Ethereum will be the Metropolis hard fork. Metropolis won’t be particularly game-changing, as it will not include Proof-of-Stake, sharding, or any other major changes. It will be more about a long-term plan to move Ethereum’s protocol towards abstraction.
Abstraction is about trying to put the protocol’s logic into the EVM (Ethereum Virtual Machine), making the Ethereum protocol a set of smart contracts within Ethereum itself. This would help to reduce Ethereum’s attack surface, as well as open up more parts of the protocol for user experimentation. As far as Metropolis specifically, the main improvements Vitalik listed include:
- EIP 86 (account security abstraction) – move the logic for verifying signatures and nonces into contracts, allowing developers to experiment with new signature schemes, privacy-preserving technologies and modifications to parts of the protocol without requiring further hard forks or support at the protocol level. Also allows contracts to pay for gas.
- EIP 96 (blockhash and state root changes) – simplifies the protocol and client implementations, and allows for upgrades to light client and fast-syncing protocols that make them much more secure.
- Precompiled/native contracts for elliptic curve operations and big integer arithmetic, allowing for applications based on ring signatures or RSA cryptography to be implemented efficiently
- Various improvements to efficiency that allow faster transaction processing
Once Metropolis is put into effect, the foundation will be able to focus on the more innovative and revolutionary concepts, like the switch to Proof-of-Stake and sharding. The Ethereum Foundation has been working on their Proof-of-Stake protocol, Casper, for a while now. It’s gone through several iterations and will continue to do so until it’s the ironclad protocol they’re aiming for. Through trial and error, the Ethereum developers are doing their best to combine economics and decentralized consensus for the Casper protocol. Vitalik gave an inside look at what he and the Ethereum team have been working on, saying:
“A major topic of discussion was coming up with a rigorous and generalizable strategy for determining optimal incentives in consensus protocols – whether you’re creating a chain-based protocol, a scalable sharding protocol, or even an incentivized version of PBFT, can we come up with a generalized way to correctly assign the right rewards and penalties to all participants, using only verifiable evidence that could be put into a blockchain as input, and in a way that would have optimal game-theoretic properties? We had some ideas; one of them, when applied to proof of work as an experiment, immediately led to a new path toward solving selfish mining attacks, and has also proven extremely promising in addressing long-standing issues in proof of stake.
A key goal of our approach to cryptoeconomics is ensuring as much incentive-compatibility as possible even under a model with majority collusions: even if an attacker controls 90% of the network, is there a way to make sure that, if the attacker deviates from the protocol in any harmful way, the attacker loses money? At least in some cases, such as short-range forks, the answer seems to be yes. In other cases, such as censorship, achieving this goal is much harder.
A second goal is bounding ‘griefing factors’ – that is, ensuring that there is no way for an attacker to cause other players to lose money without losing close to the same amount of money themselves. A third goal is ensuring that the protocol continues to work as well as possible under other kinds of extreme conditions: for example, what if 60% of the validator nodes drop offline simultaneously? Traditional consensus protocols such as PBFT, and proof of stake protocols inspired by such approaches, simply halt in this case; our goal with Casper is for the chain to continue, and even if the chain can’t provide all of the guarantees that it normally does under such conditions the protocol should still try to do as much as it can.
One of the main beneficial results of the workshop was bridging the gap between my current ‘exponential ramp-up’ approach to transaction/block finality in Casper, which rewards validators for making bets with increasing confidence and penalizes them if their bets are wrong, and Vlad’s ‘correct-by-construction’ approach, which emphasizes penalizing validators only if they equivocate (ie. sign two incompatible messages). At the end of the workshop, we began to work together on strategies to combine the best of both approaches, and we have already started to use these insights to improve the Casper protocol.”
Clearly, the Ethereum team is doing their due diligence regarding crypto-economic incentives and how they will apply to the proposed switch to Proof-of-Stake. Though they’re not only focused on those specific areas. On top of all the PoS and sharding work they’re doing, they’re also looking into state size control in general.
State size control is about reducing the amount of information a full node would need to keep track of. This would help the network run faster, but it would also allow Ethereum to grow its user base without degrading. Vitalik said:
“Right now, the state is about a gigabyte in size (the rest of the data that a geth or parity node currently stores is the transaction history; this data can theoretically be pruned once there is a robust light-client protocol for fetching it), and we saw already how protocol usability degrades in several ways if it grows much larger; additionally, sharding becomes much more difficult as sharded blockchains require nodes to be able to quickly download parts of the state as part of the process of serving as validators.”
There are a few proposed ways to deal with state size control. One idea was “deleting old non-contract accounts with not enough ether to send a transaction, and doing so safely so as to prevent replay attacks.” Another proposal involved making the creation of new accounts, or the storing of data more expensive, without affecting other costs in the EVM. Yet another idea revolved around putting time limits on how long contracts can last, and charging more for contracts with longer time limits. Although, any increase in fees would still remain highly affordable. This is all about keeping the Ethereum state efficient, while also mitigating potential attacks.
In the coming months, Ethereum will continue its journey to become as strong as possible. Vitalik listed several low-level-protocol improvements which will enhance the ecosystem, such as:
- Several “EVM 1.5” proposals that make the EVM more friendly to static analysis, facilitating compatibility with WASM
- Integration of zero knowledge proofs, likely through either (i) an explicit ZKP opcode/native contract, or (ii) an opcode or native contract for the key computationally intensive ingredients in ZKPs, particularly elliptic curve pairing computations
- Further degrees of abstraction and protocol simplification
Ethereum will continue to grow as the developers actively work to squash bugs, add functionality, and speed up transactions across the entire network. Ethereum is on track to continue becoming more secure, and easier to use, as they push forward to Metropolis and beyond.