Investigating Ethereum 1.x Opportunities
Disclaimer: This article outlines the topics discussed in the Eth1.x Recurring Inquiry Call. It does not constitute any finalized plans or commitments for network upgrades.
The primary topics of this call were
- Exploring the Advantages of Utilizing a Binary Trio System
- Transition Strategies and Possible Challenges of Changing to Binary Intents
- Merklizing Contract Code for Witnesses and Implications on Gas Scheduling/Metering
- Chain Pruning Historical Chain/State Data and Network Distribution Strategies
The weekend after EthCC (March 7-8) there will be a summit on 1.x with the aim of having in-depth conversations on the subject during a few days. Because of venue restrictions, only 40 people will be allowed to attend. This should be enough participants.
There will be an informal gathering with a few people in Stanford Blockchain Week and ETHDenver, but nothing is planned yet.
The following call is tentatively scheduled for the first week of February. There is a midpoint between now and the summit in Paris.
Although not relevant to the EIP itself, it improves the protocol for transaction propagation in networks. This is a straightforward improvement that will facilitate further research. Support!
Trie Size Reduction by Binary
Changing from the current Hexadecimal Trie formation to a binary triangle system could theoretically reduce the size of tokens by about 3.75x. However, this may be an exaggeration. It depends on how the matter is viewed. It is estimated that 30% of code and 70% of hash are available. The hashes in the trioe can be reduced by three times. However, binary tries cannot be used to improve the code, as it must always be in the token. Tokens can be converted to binary format by using the hexadecimal triangular. This will make them smaller, at 300-1400kB.
Making the Transition
The actual transition to a binary trioe requires another approach. These are the questions that must be answered. There are two primary strategies that can be utilized.
Progressive Transition — This is the “ship of Theseus” transition model, where all state is moved to a binary format on an account-by-account and storage-by–storage basis. Each EVM execution can affect state parts. This means that the state of Ethereum accounts would need to be updated for the binary/hex combination. The new trie format can be used (perhaps with a POKE code). The updates are not disruptive to the operation or require coordination on a large scale. The downside is complexity. Clients must consider both binary and decimal formats. Otherwise, the process won’t work. Because certain parts are not accessible externally, their owners would have to push them. It is highly unlikely that this will happen in every state. To avoid an increase in storage requirements for customers, they would have to modify their databases to create a virtualized binary test within a hexadecimal format. Note: This database upgrade could be done without the full transition and still be beneficial.
Clean Calculate — This would be an “immediate” transition that is made across multiple hard forks. A date would be chosen for the change and all network participants would need to recalculate their status in a binary test, followed by the switch to the new format. Although straightforward from an engineering perspective, the implementation of this strategy is much more difficult. From a coordination standpoint, it is even more challenging. The new binary states must first be computed before the fork. This can take approximately an hour. It is common for miners and exchanges to update clients at the last minute, which could complicate the entire process. Alternatively, we could also consider stopping the chain temporarily in order to recalculate a new state. This could make it more complex and controversial.
Both options are still “on the table”. Before any decision on next steps can be made, it will be necessary to discuss these strategies in more detail.
The Ethereum development team has been hard at work exploring the latest in technical innovations. In the January call summary, they discussed the trade-offs between coordination and complexity when it comes to code fragmentation, the effects of gas programming when block witnesses are installed, and data delivery with chain pruning.
The team has considered how to break down code into smaller pieces that can be used to create tokens, and the implications of using JUMPDEST instruction. Additionally, they are exploring the use of UNGAS to make modifications to the EVM, as well as the changes to the security model that will be necessary.
The team is also looking into how to store historical data and how to enable stateless clients to communicate with the network. They are currently experimenting with state mosaic, turbo-geth data routing, and gossip.
If you have any questions or would like to contribute, please contact the Ethereum office or follow them on Twitter.