Thoughts on an Ethereum Classic Roadmap
I've spent the last few weeks considering some ideas about where Ethereum Classic should go given the resources available and the size of the community. It seems that we have a good base of miners- particularly in China. There are quite a few passionate members who have the ability to write code. Exchanges seem happy to list ETC as an asset. Wallet support will likely come over time as ETC proves resilient to outside attackers.
Thus the fundamentals of ETC look solid, outside of the threat of a few- potentially phantom- cabals of evil whales with malicious ETC or hash power. Yet such things are typically ephemeral and cabals usually fade when the cost of attacks outweigh any benefits. Hence, we as a community now need to solidify around a path forward.
This post will make a few suggestions to kickstart the conversation. My goal isn't to mandate, but rather ask what if as a thought experiment and see where it takes us. Some items will definitely need a considerable amount of fleshing out whereas others can easily be accomplished. Therefore, please do comment and go into as much detail as you'd like. I'd love to see better ideas presented.
The Consensus Epoch
As we've heard more than once, Ethereum has a bomb to force a consensus change. Preliminary research on Casper seems cautiously promising, but regardless of its success, the end result is the same- the miners get fired. This constituency has proved valuable and dedicated to the ecosystem since the beginning. It would be a shame for them to suddenly lose their jobs.
Rather, I'd love to see a gradual transition towards a hybrid scheme with two purposes. First, I'd love to see a useful proof of work algorithm with a strong connection to the DApp model in general (and yes that also means getting rid of the difficulty bomb). Second, I'd love to see ether holders be able to use their stake to make meaningful decisions about the future of the platform.
There is a formalized blending proposed by several VCU researchers that I believe can be used as a foundation towards this effort. With respect to usefulness of the PoW side, proposals like Permacoin and Spacemint have merit as they start a conversation about decentralized storage in the context of consensus (Elaine Shi has also extended it a bit with dynamic proof of retrievability). DApps should grow in complexity and storage requirements thus to promote the construction of a decentralized database concurrently with the security of the network is a novel solution.
IOHK is preparing to publish a paper inspired by Permacoin called Rollerchains that could be a nice stepping stone for the system. Somewhat ironically, we are also preparing to publish a provably secure proof of stake algorithm next week. I suppose this demonstrates our agnosticism towards consensus algorithms.
There are some improvements beyond changing the PoW mechanism to consider. First, the outsourceability of mining puzzles allows for pools and cloud hashing farms to form leading to federation of the overall mining power to a handful of actors. Andrew Miller has done some amazing work to resolve this issue while still allowing investments in mining to be a reasonable business model.
Two other items that require improvements are Ghost and validation times. Ghost changes the blockchain structure to a looser directed acyclic graph structure. Recent cryptanalysis has shown that Ghost has some issues. Second, smart contracts will grow in complexity, interaction and size. Their validation is not as trivial as a bitcoin transaction. It would be nice to reduce the validation time.
With respect to Ghost, the same authors are currently working on a replacement called Spectre, which has tremendous merit. I think there is a potential for a modified form to be installed into Ethereum Classic.
As for validation time, research like proof of proof of work and on SNARKs seems to present a nice direction to get contract validation into a sublinear complexity class. There is also an open question about how much should be on the main chain and how much could be offloaded to a private SMC group (see [1] [2] for an excellent tutorial on SMC in general) and validated with a proof of correctness (See Enigma and HAWK).
Now with respect to the proof of stake side of things, there are many options to arrange a system that permits meaningful voting of stakeholders on topics that concern governance, a treasury mechanic and adding a second layer of protection against unwanted or malicious forks. In the next section, I'll discuss the first two and the last is covered in the VCU paper mentioned above quite well.
As a parting thought on this topic, I do not believe it is wise to attempt to resolve the scalability problems alongside implementing a new consensus algorithm. I think scalability needs to be resolved organically using evolving cryptographic techniques, proliferation of overlay protocols and market mechanics.
The Governance and Monetary Epoch
The most significant problem with Ethereum is non-technical. The split of the communities was a result of bad governance. One can argue that the fork was the best option given a menu of bad choices. One can argue it was legally necessary. However, one cannot argue that the fork did not fracture the community. ETC is a sizeable and surprisingly well capitalized minority.
We have two interconnected problems on the horizon for ETC. As the dust settles from the fork, ETC needs to make decisions about its direction and roadmap and at the same time it has to pay for them. The Ethereum Foundation has made it abundantly clear they won't support ETC and a subset of the ETC community recently declared independence Succinctly, the marriage is over and daddy and mommy are moving to different states.
Hence, ETC needs some form of decision making apparatus and funding mechanism that is sustainable. I would also add that this system must prevent a cult of personality from forming and not be governed by a sole centralized entity or else what's the point of secession ?
The good news is that decades of innovation have created a nice pipeline of ideas that could provide a tremendous amount of growth, data for experiments and resilience to corruption. There are three I'll mention.
First, Dash has introduced a treasury model. Briefly, each block's coinbase award is split into three pools (45,45,10) with 45 percent going to miners, 45 percent going to a pool called masternodes and 10 percent to a treasury pool. Anyone can propose a funding request to the treasury for a small fee and voting is settled monthly. Masternodes vote on proposals and if there are ten percent more yes votes than no votes, the request passes.
Anyone with at least 1000 dash can become a masternode and there are currently more than 4,000 active nodes in the network. This website provides proposal and node information. As an example, this proposal is to pay the core developers of the system. Another cute proposal that passed was to add tipping support to the dash slack. I received my first dash a few days ago as tip when I recently joined their slack.
There needs to be a proper game theoretic and infosec analysis of the dash model, but I think the idea has merit in principle. Furthermore, it seems to be a novel solution to the tragedy of the commons problem all open source protocols suffer from. IOHK will study the Dash model and publish a whitepaper on our findings. My hope is that it can be improved and modified for Ethereum classic to solidify funding for DApp, core development and academic research.
Second, there needs to be a mechanism to evolve the ETC protocol outside of the meta effort of hard and soft forks. Arthur Breitman's Tezos system based on Peter Suber's Nomic provides a potential solution. The basic idea is to view a cryptocurrency as a combination of three distinct modules: consensus, network and transaction.
The Tezos model provides a mechanism to formalize these modules and then for stakeholders to propose a new configuration. The hypothesis is that all meaningful configurations can be represented this way (a completeness assumption). Second, that the system if properly parameterized at instantiation will evolve into ever more competitive states (a productive evolutionary assumption).
Arthur has stated that he plans to release some Ocaml code covering part or the whole of the model at Strange Loop in September and we look forward to studying the system for viability. The general concept seems sound and it provides an extremely nice mechanism for upgrading protocols in an organized and methodical process.
Finally, there is the idea of DAO Democracy proposed by Ralph Merkle. Merkle recently drafted a well written whitepaper and discussed it on epicenter bitcoin. The basic idea is inspired by futarchy in that we should separate values from beliefs and then create an incentivized system to get the most knowledgeable stakeholders to predict the future without them having a direct role in its execution.
The particular mechanics of how to achieve this end involve using prediction markets and other mechanisms, but my elaboration wouldn't add more over the whitepaper and interview. I will just add that Merkle's idea seems to shine brightest in composition with the Tezos concept.
Instead of a direct or delegated stakeholder voting process for modifications of the protocol, one could use the ballots with the highest predicted utility to the protocol to evolve the ledger. Constraints would have to be installed to protect the original social contract (think the ten commandments of the system). The model would also require some training wheels starting with the prediction market mechanics being just a reference instead of a mandate.
With respect to monetary policy, Ethereum was never originally designed to be a good store of value. It was represented, and the economics were proposed, as a computational fuel source. The pivot to proof of stake will change the monetary policy to make it more attractive from an inflationary perspective; however, ETC needs to decide it's own path.
If we stay on a mining model, then I propose a decay mechanism similar in spirit to Bitcoin's system with an asymptote at some amount X. It would be nice to do a comprehensive literature review to see if any whitepapers have been written on this model and if there is something more friendly to miners than sudden halfings of coinbase awards. It would also be nice to consult the miners in the ETC community to see what policy they would prefer, and if a Dash style treasury is something that they would support.
Code is Law Epoch
If your philosophy is that code is law and you have to accept the consequences of its execution, then you should probably have some strong guarantees of correctness. The topic of code validation is extremely rich and filled with many meaningful techniques and tools. Probably the most elegant text on the topic comes from Benjamin Pierce via his book Software Foundations.
Regardless of the richness of the topic, it's not a simple proposition to resolve the correctness issue. There are really three levels to the problem: the smart contract, the compiler and the VM. On the smart contract level, we need to have a functional DSL with a direct line to proofs. There was a recent paper using Idris for this purpose and the work done with Haskabelle is very promising. It would also be nice to have a meta-language to specify the intent of the contract. The prolog community may have some answers in this respect.
Smart contracts compile to run on the VM. Errors or artifacts reducing the security or correctness are a defect of the compiler and shouldn't be present given the intent of the paradigm. Therefore it seems prudent to have a fairly meticulous analysis of the quality of the compiler. The CompCert project at Inria is an example of such an effort for C. It would be an order of magnitude simpler to do this for a functional DSL.
Last, the nature of the EVM is beyond the scope of my knowledge and I'm certain there are wonderful theories to produce spectacular guarantees, but I can't offer much advice. The best I can suggest is to chain the evolution of the EVM to work being done by the broader VM community such as this paper. It may be prudent to move the EVM to run on something better understood and supported like the JVM. This transition would also permit more linguistic freedom for developers.
In summary, paradigms carry a cost. Code is law carries the high burden of correctness. This requirement at the very least admits the need for better pedagogy and a reference library of certified smart contracts for developers to use akin to a crypto library for us mere mortals. At most, it will require a serious look at best practices coming from research groups focusing on mission critical software and heavy investments to implement these practices.
A Conversation
If you've gotten this far, then I have to thank you for reading. This article is a suggestion intended to start a conversation for the community to carry on. I'd love to see better and more formed ideas. I'd also love to see these ideas turn into a cohesive roadmap that is realistic, understandable and accounts for the sins of the past.
In any event, I'll be part of the roadmap discussion and I look forward to helping implementing it.
I'm not technically astute enough to weigh the details but the whole creation of ETC effectively as an accidental side effect of the DAO hack, just smells very bad. I totally agree that the prime issue is non-technical...the community is fractured and consensus is a human problem not a technical one (just like the bitcoin block size issue). The crypto-currency and blockchain worlds are complicated enough the DAO hack and the resulting ETC creation are not good things. Of course the whole issue of the immutability of the chain is a real issue and I suspect is the philosophy behind sticking with the old-chain (classic). It's certainly a mess and I tend to think that ETC should just go away.
Would you be happy if ETC diverged and became it's own currency and movement?
Very unclear, if it's underlying tech is the same as ETH then why bother, if it diverges into something unique then fine sure. Although I think its very existence diminishes the appeal of ETH and confuses people who would have to be clear about what's the difference between the two. Soooo unless there is a clear difference then I'd prefer it goes away. If it evolves into something truly different and unique make up a new name.
It'll be the same, but like, without bailouts
As a ETH guppy swimming over in the nanopool, I would appreciate if ETC would do just that. I may or may not agree that a hardfork was the best option, but majority of leadership went in that direction. As such, I am grabbing a couple extra filled canteens and mount up for a long ride in the desert. To me, the exploiter(s) had two goals, to either kill Ethereum or to cripple it. Had this been about money, the exploiter(s) would have gone for much smaller amount and leached as long as they could while Ethereum coin was soaring in value. Instead they went with a brazen amount that would be noticeable and grab headlines to spook people/money away from Ethereum while creating chaos within the Ethereum community. I understand people are standing on their principals with ETC, it's a big world and room enough for everyone. Be as that may, ETC is the splinter from the main herd and the main herd is not coming back to merge back in with the splinter group. ETC continuance is hurting ETH, IMO and as such is assisting the exploiter(s)' primary goal. Yes this is an awful mess, but please, please, stop the bleeding. Sew up the wounds and lets move forward to our separate destinies.
You are mistaking a bailout hardfork with the event that originated it. We can say ETC is just a side effect of dinosaurs being extinct, how far do you want to go?
I would say the same about the conflict of interest displayed by the EF, and don't get me started on the whole ordeal with RHG aka EF.
That's why the machine code has to be impartial. Otherwise I have a new coin for you: The Votecoin. The Votecoin (TV) is composed of a single central server where people can log in and vote on the state of the blockchain. How awesome is that? We can have consensus without wasting electricity on number-crunching.
No doubt the DAO hack was bad, but the silver lining is that we got to see we shouldn't trust a central authority with as much power as we've given the EF. On whose point of view ETC creation was not a good thing?
No doubt, Sherlock. That was the whole point...
I tend to think you shouldn't be here.
Lot of thinking into this discussion and great thoughts to the benefit of advancement of this already incredible product. Thank you, namaste :)
This post covers several different layers: Consensus, Governance, and Foundational (EVM and code execution) layer. Do you think these three layers should be tackled at the same time, or do we need to get one figured out before the other?
Also, those best-suited for making governance decisions may not be as qualified to make technology decisions. What do you think of separation of duties? Does it require some overruling sovereign entity?
My own opinion: Dash, Futarchy, and Tezos are fairly complex governance mechanisms, relative to what we have now. They could be built as overlays and therefore be separate from the underlying technology. ETC as it stands could support multiple "governments" and communities while operating on a single network/blockchain.
These are really good points and I'll address them in order. First, with respect to the complexity of each item, I agree entirely and they need to be rolled out in stages if at all. Each will require a game theoretic analysis to better understand incentives for participation.
Second, with respect for governance decisions, in the short term some form of delegation to domain experts would be a good model, but it invites centralization of power. The Futarchy movement is an attempt to extract knowledge out of the domain experts without giving them direct power. There is some evidence of it working in practice thanks to Robin Hanson's work; however, it's never been tried with blockchains much less an open source protocol.
Tezos is the wild card. We only know what has been proposed in the whitepaper and Arthur seems to have some good ideas, but I haven't seen the actual protocol and code. We'll have to wait to September to get a better sense of what's possible.
I think we ought to tackle the problems in a staged process with the resolution of the replay attack and consensus model first. Then move on to governance and then move on to gradual improvements to the EVM. Some things are extensions and do not require modification of the core protocol such as a functional DSL.
I like your idea of multiple governments and some of the ideas from the Tendermint community via Cosmos have some pull in this direction. The monetary policy does present some complication however. Love to hear more thoughts.
Has futarchy actually shown evidence of working? My understanding of Hanson's research is that his studies were largely conducted on groups of econ students. Correct me if I'm wrong.
If we restrict "governance" to the goal of making it easier to create secure smart contracts (as playerdeus suggested), I don't think the decision-making process needs to be so complicated. I much prefer a simple time-tested system, such as having representatives with separated domains of expertise. Complex decision-making systems will lead to attempts to game the system.
As far as monetary policy and multiple governments, I'm just putting out ideas, so feel free to ignore them. Maybe each government/organization would issue their own currency, such as DAO tokens or Augur tokens. Then it's up to their individual organizers to determine monetary policy. ETC would just be a commodity that reflects different exchange rates in different token-currencies.
I think the etc split was the right move. The chain shouldn't be forked to fix a bad investment. Going forward the dash model seems to offer a nice way to fund the miners a foundation and daps. Perhaps the dash model 45 -45- 10 alone would be enough to differentiate from Eth.
seems to be sufficient differntiating features for a crypto coin. Good luck!
So what happens with the hacker funds? Seems like he could setup thousands of Masternodes and govern all of the budget money.
You think he still has them? I would have sold them immediately.
He can't sell them until the 31st
I like the idea of the hybrid model, and keeping mining part of the process while enabling a fair and transparent governance model. The section on code as law is sobering, and I look forward to seeing the direction we take as a community on this front. Earning trust will be essential.
This is an opportunity to create a roadmap based on the community's combination of experience and cutting edge knowledge -- which confirms and enhances trust in the unsullied blockchain.
Thank you for the kick-start and being willing to take the brunt of the abuse for stepping up.
The good news is that we aren't in this process alone. There are a lot of potential allies if we are willing to be open and work with people. The community needs to stay positive and move methodically.
I agree with a previous comment, the #1 problem that we should be aiming to solve is to allow users to create smart contracts in a safe and secure manner that benefits the community with the support of a balanced governance model. Talking with some of the community, it seems clear that POW/POS might be best, but that doesnt necessarily mean that we have to use the Dash model. POW=scaling issue even though I personally believe in scaling slowly, POS=we lose a lot of the community and potential backing of ETC from loss of miners. Someone also made a point that ETC should just sit back and wait for ETH to solve POS sharding problem and then somehow take over community support of ETH because we are the more conservative chain, but I personally dont think this will work because we will just be ETH 2.0 always just a step behind ETH and their development. It is also becoming more clear that their are some significant problem with ETH as a whole. Besides the difficulty bomb, as stated earlier in the #1 goal I think should be around security and this may take some time to figure out. This may lead to future changes in the EVM code base, your talk about scorex in the last interview was very informative and I think it has potential because its simple, easier to manage, and fast to test. Just some thoughts.
Hmm about the mining issue, I think miners will mine whatever it's most profitable depending on the hardware they own.
There is good empirical evidence of this with etc itself. This said, many miners have offered to donate profits to DApp development. I think we have more common interest than self-interest alone would suggest.
The biggest thought on my mind is how to avoid the sort of controversy that leads to splits. The ETH/ETC split may have been avoided if there wasn't such a deadline looming. With all the good stuff proposed here let's make sure every change is discussed thoroughly and carefully so there is as close to 99% or 100% buy in if possible with each technical based fork.
Interesting. I'm reading and learning more about this system everyday. Thank you for the article.
Let me know if you have any questions.
Im a big fan of yours Charlie... And Im sure you're gonna do the right thing. Im glad its you at the helm of ETC. And Im going long ....