My Ethereum misconceptions
I’ve been working on smart contracts for a while now. I’ve spent countless hours focusing on things like how to securely move funds between legacy systems, where I’ve gained a deep and terrible understanding of how truly bad cross-blockchain compatibility really is.
You would think that a guy who has been working on smart contracts for this long would have seen more of the benefits behind something like Ethereum, but that isn’t the case for reasons I’ll reveal in this post… If anything my experience has only made it easier for me to dismiss it.
Here are some of my biggest misconceptions about Ethereum so far (but these misconceptions are by no means unique.)
Mistake 1: Dismissing how useful general-purpose blockchains are
For those who know the history of Ethereum you will know it was mostly created as a response to how limited blockchains were at the time. If you had of tried to run any kind of complex smart contract on Bitcoin in 2013 (and even today) you would have found that almost nothing was possible.
My work has taught me how difficult it is getting contracts to run on ANY blockchain, let alone on many different systems… but unlike Vitalik my approach has been the opposite. I’ve found that through out-of-the-box thinking and crypto-hacking you can usually get any kind of contract to run on any blockchain no matter how limited its features.
If you want to create contracts to interact with the base token of a given blockchain (and not just the tokens on top of it) - then having a general-purpose blockchain isn’t that useful because you still need to create protocols that interact directly with the limited consensus system.
Yes: in practice, there are ways around this but they aren’t special enough to offer every benefit over more tailor-made contracts and they still aren’t general-purpose enough to work with every possible system in the future.
Towards a better approach
I probably dismissed the need for a general-purpose blockchain precisely because there were so many situations where they didn’t directly help and where the same benefits could easily be gained by hacking existing systems, but importantly: that doesn’t change how useful they are.
A general-purpose blockchain like Ethereum allows us to rapidly prototype new contracts. There is no need to bump into any arbitrary limits. It still blows my mind how incredibly easy it is to create contracts with Ethereum compared to how hard it is to do with Bitcoin.
Half the fun used to be trying to outsmart Bitcoin to get your contracts to run but Ethereum makes that so easy now all you have to do is literally write whatever and it runs… Veteran Bitcoin devs with Script experience will know how crazy it feels to have IDEs to instantly test and deploy contracts in human-readable languages. It feels like we’re living in the future.
Contract comparability though, is still important. The compatibility approach is necessary as new systems are created all the time that aren’t directly compatible. In the future, new advances in cryptography will allow us to extend the rules of any consensus system with complete backwards comparability so general-purpose blockchains may end up becoming less relevant. For now though - that is theoretical cryptography.
Mistake 2: Equating DAOs with multi-sig
So-called “decentralized autonomous organisations” are an idea that I’ve dismissed before as hype… When I first encountered the term the examples seemed vague and unpromising. It was especially strange to read about some of the proposed use-cases e.g. having a group of people vote to move funds to a given location. I mean, isn’t that just multi-sig?
After reading about DAOs I came away thinking that Buterin was more full of shit than ever and that all of this stuff was made up non-sense to sell Ethereum to clueless investors. Here was a guy talking about how organizations could be “autonomous” and in the very same sentence say that people needed to interact with the organization, whose activities were based on trusted, real-world processes anyway. WTF?
My logical brain almost exploded at all the contradictions. In the end, I had to dismiss the entire trust model behind blockchains to concentrate on the benefits, but my conclusion was still that these things were simple, programmatic accounting structures of little real world value, where multi-sig was functionally similar in most cases… But as always…
There is more to this than meets the eye
DAOs are general-purpose. Take the simplest example of a DAO that allows anyone to contribute funds and vote on the destination of the funds in proportion to their contribution amounts. This example cannot be easily done with multi-sig because the keys contributed in multi-sig need to be fixed (lets ignore special cryptographic protocols to get around this.)
The idea behind a DAO is that you can define the rules used to manage the resources that different crytographically defined actors in the organization can interact with. These rules can be used to determine things like whether or not someone can upgrade a protocol, move funds, claim a reward, create accounts, change rules, propose new rules, manage reputation, vote on things, add additional resources, verify submissions, etc.
If you combine a DAO with many different ideas from cryptography, economics, psychology, game theory, etc, then the possibilities are immense. Imagine a self-organizing software project where investors are incentivized to organize every aspect of the system and run it on their own… A structure which is both socially and organisationally scalable.
Imagine if the software is generating revenue by providing some kind of useful service to blockchain users. Stake-holders can vote on extending the software in exchange for receiving payments, and you can have contractors extend the software - and in return, receiving portions of the revenue from the system. Such an organisation scales to any number of employees with less bottlenecks and less potential for institutional fraud.
DAOs offer a new way to think about cooperation
A properly designed DAO can allow people who don’t know each other, don’t trust each other, have never met before, and know nothing about one another: to organise around a common goal. This is a new way to organise people and certainly CANNOT be done with multi-sig. The possibilities here for enforceable behaviour are endless.
We already know that certain functions can be evaluated without trust. This approach can be combined with many other techniques to allow for more complex, emergent, and highly scalable behaviour. I.e. reputation systems are a catch-all for trust problems, but there are also other aspects like bonds / rewards, game theoretic SchellingCoin protocols for trusted data feeds, IoT oracle systems, even artificially intelligent agents can interact with a DAO with minimal trust due to the underlying organisational structure.
In the future, it may be vastly more efficient and cost-effective to do business with a DAO than with a human-run organisation. This is because a DAO can be constructed to enforce its own behaviour through carefully designed game theoretic systems which is a high-tech alternative to costly dispute and insurance systems that scale poorly and encourage fraud.
Consider how the concept of social scalability would apply to more complex organisational structures. If the concept catches on it is likely that the 21st century will be defined by radical changes to the way we do governance and run economies as DAOs are possibly the most organisationally and socially scalable way to organise people that has ever existed.
Mistake 3: Thinking oraclized smart contracts are pointless
For some reason people in the blockchain space like to dismiss every idea that isn’t “trustless” or “decentralized” enough. This is a mistake because it can be shown that a broad number of contracts that rely on oracles still benefit from using smart contracts.
Consider a contract for difference where two users profit from price movements to an asset that they don’t own. If the price feed gets hacked the counter-parties are screwed. You can cash out your position and make absurdly false gains. But what needs to be pointed out here is that there are still tremendous benefits from using a blockchain.
One of the benefits is simply that bonds can be used to back up a position without having to trust anyone with that bond. Another benefit is that the system is open to participate without having to register. Compare this to a brokerage account with traditional asset insurance (or lack there of) and its a monumental improvement for investors.
It seems clear to me from this that many oracle use-cases are too good to dismiss. So instead, we should ask how to secure such oracles as much as possible. Can we use multiple oracles? Can we use a SchellingCoin or prediction market as a minimal trust data-feed? Can we use this idea in markets that have self-contained ability to measure supply and demand and use fraud-proofs with bonds to prove that the exchange is acting honestly to calculate price? What other approaches might work?
Anyway, the mistake is thinking too much in black and white terms when it comes to trust. It is true that contracts that depend on oracles rely on more trust and uncertainty than other contracts that are trustless / self-contained. But that doesn’t mean that it makes sense not to do these contracts on the blockchain. Such contracts still gain from having the majority of their code enforcible, from being able to use incentives / disincentives, from having open participation, and from having decentralized, robust infrastructure.
Mistake 4: Thinking that dapps are pointless
Ethereum makes dapps far too easy to dismiss for normal people. On casual inspection, it just doesn’t make a lot of sense. Why does your twitter feed application need to be “decentralized”? Is the government really going to raid your app servers because you were trolling on Twitter?
The argument I’ve used against dapps in the past is that the blockchain introduced decentralization because of the immense threat model it needs to deal with. Digital currencies were traditionally attacked by well-funded government agencies in the past. So what possible reason does a fiddet spinning dapp have for being decentralized?
It is useful to think of a blockchain as a security model.
Under this model a blockchain has many desirable properties:
- Decentralized infrastructure makes the service more robust to failure
- Crytographic protocols allow value to be exchanged with minimal trust
- Logical decentralization of the service opens up participation without giving a third-party the power to impose artificial restrictions like high fees
- Any code running on the blockchain is more difficult to modify which improves overall security.
Many of these concepts already apply to general applications. For instance: marketplaces on the blockchain can potentially provide customers lower fees than a third-party gate-keeper, while other kinds of applications can benefit from having their binaries delivered with crytographic attestments to prevent tampering and use fault-tolerant infrastructure for reliability.
In other words, the idea behind dapps is to abstract the desirable properties that a blockchain delivers but in much more general terms. Of course, there are trade-offs. Scalability is reduced and latency is increased, but this is a trade-off that still makes sense for many different applications so it seems clear to me that dapps are still a credible solution.
Mistake 5: Thinking Vitalik is way over-hyped
So let me summarise. Up until recently: I’ve thought that most of the main ideas in the Ethereum-space were over-hyped, substance-less garbage, better accomplished by other means. It wasn’t such a stretch for me to think the same of Vitalik… But now that I fully appreciate the logic behind these ideas, it amazes me what Vitalik was saying so early on.
Out of curiosity I went back and re-read some of Vitalik’s old articles… And there he was, at only 19 years old talking about the future of blockchains. I even found an article where he was describing advanced theoretical cryptography that probably less than 100 people world-wide understand, with even less of them understanding their impact for blockchains. I think he was only in his early 20s when he wrote that article…
If you go back and read the original Ethereum white paper it successfully predicted an entire industry. It predicted the need for a general-purpose blockchain. It predicted cutting edge derivative contracts, new organisational structures for cooperation, and many other things.
From this perspective at least some of the hype around Vitalik is justified.
If you judge Vitalik only by his output then the level to which he was ahead of his peers in 2013 is staggering. At a time when we were all still focusing on trying to get our shitty, simplistic contracts working on our artificially limited blockchains, Vitalik was thinking so far ahead into the future that he managed to invent entirely new constructs from basic principles.
Tl: dr: I believe that ICO-incentivized, IoT, fiddet spinning DAOs delivered by dapps may be the future of organisation. I wish I was joking.