Two days ago I attended a very interesting talk hosted by London Futurists, and presented by Stephan Tual, CCO of Ethereum. I find Ethereum extremely interesting, both out of my general interests in computing and decentralization, and also because Zero State (ZS) has recently moved its emphasis toward development of a decentralised decision-making and resource-management app.
In the post below, I am going to go about things in what may seem a slightly odd order. I’m going to start with the final, practical conclusions which are of the greatest importance to ZS. So if you are part of ZS or the wider WAVE network and you’re just wondering what all this means for us, you don’t have to read far. From there I will give my overall impressions of Ethereum and the talk given on Saturday. Finally, I will pretty much just offer an unstructured info-dump of my notes from the talk, just in case they are useful to anyone. They will most likely only be interesting to people who aren’t familiar with Ethereum already but who would like some details – possibly a very small demographic! – hence those notes’ place at the end of the post. Enjoy.
1. First things first – What is Ethereum?
This phrase from Stephan’s slides sums up the key idea:
What is Ethereum? An 100% open source platform to build and distribute decentralized applications.
In other words, it’s both a programming environment and a kind of app marketplace. The main point is that while the apps may or may not be open source themselves, they pointedly do not run on a single server owned by a single company. It’s a trustless model, meaning that no trust in centralised authorities (whether trust in their motives or competence) is required for the network to be effective. The only way you could turn off such a network would be to turn off the entire internet. Ethereum will be officially launched in early 2015.
2. What relevance does Ethereum have for Zero State?
When ZS formed three years ago, one of the very first concepts we developed was that of the “Distributed Autonomous Community”, or DAC (e.g. see this outdated version of our Principles from early 2012). Although we never abandoned the term and it certainly still fits ZS goals, we now tend to speak more generally about VDP (Virtual, Distributed, Parallel) States, or VDPS’. In the last year or two, similar ideas have become popular in cryptographic circles, using the same acronym or variants such as “Distributed Autonomous Corporation” or “Distributed Autonomous Organization” (DAO).
Stephan mentioned that the DAO/DAC, as commonly conceived in Bitcoin circles, is a concept which exists in the ‘futurist’ outer reaches of possible Ethereum applications. Such organizations are basically autonomous cybernetic systems which provide some kind of service and in return accrue assets which support the network’s stakeholders and otherwise go toward covering the costs of running the system. Examples given were of self-driving car hire networks, and file storage networks which automatically relocate files around the network to optimise memory and cost efficiency. Stephan pointed out that although talk of such autonomous organizations or networks has been common in cryptographic circles since perhaps late 2012 or early 2013, actually programming such a thing would require advanced skills in general programming languages such as C++ in addition to expert-level cryptographic skills. The point of Ethereum is essentially to trivialise that kind of programming, by baking the required expertise into the Ethereum platform.
Two initial thoughts occur when this idea is considered with reference to Zero State’s goals and principles. The first is that it sounds great at first blush, if it can do what is claimed. It would not only make achievement of our own aims considerably more tractable, but it would put them in the context of an expanding ecosystem of like-minded organizations. The second thought is that there is a fairly major potential fly in the ointment here, which is an ideological one.
The essence of the problem is that apps and hypothetical systems like DAOs appear to be defined within Ethereum in monetary terms, making monetary relationships a kind of fundamental axiom of Ethereum’s decentralisation. Stephan repeatedly referred to apps having a place in the Ethereum network “as long as they fulfill a purpose”, but it sounded like ‘fulfilling a purpose’ would be defined in monetary terms, at least indirectly. It’s hard to be sure based on Saturday’s talk alone, but I will of course be looking into this further, and there is one further note on the matter at the end of this section.
Now I may be a realist in terms of the need for resources to do organised work in the real world, and I don’t think we’re going to live in a money-free world any time soon, but I do have deep sympathy for the view expressed by the likes of The Zeitgeist Movement that putting flawed economic mechanisms at the heart of society’s “Operating System” accounts for most of the problems we see in the world today. The WAVE Principles explicitly oppose dysfunctional Capitalist systems, and at the very least I believe we should be leaving open the possibility of future DAOs that can function in the absence of monetary tokens.
In the short term, I don’t think this is a problem, or at least I hope it is not. The ZS DAVS project is looking into the logistics of building a DAC/DAO, and we recognise that any such system would ideally generate a kind of Universal Basic Income for ZS citizens/users (something potentially critical in an age of looming technological unemployment).
Ethereum appears to be the best tool currently available for building and distributing such a thing. The main point I take away from this is that ZS should embrace Ethereum as the initial platform on which to build our project, but that at the same time we should retain a degree of “platform agnosticism”. In other words, we should have a clear sense of the abstract logical structure of the software, independent of any given platform in which it may be implemented. Then, if Ethereum (or any other platform to emerge later) seems to be forcing us into choices we are unhappy with, then we can switch to prioritising development work on other platforms.
One final note on this issue is that Ethereum uses two monetary token systems, or cryptocurrencies, in addition to potentially facilitating trade in any number of other currencies or asset classes. One of Ethereum’s two native currencies is called “Ether”, and a second called “Gas” (as in ‘running out of…’) is (I think) used within the app marketplace in order to isolate that marketplace from potential Ether price volatility. I don’t pretend to fully understand how this works, but I must admit that it makes me a little uneasy. Most broadly speaking, we know that cryptocurrency architectural designs can have flaws, and I have to wonder whether any as-yet-unknown problems with Ether and/or Gas could be a problem for Ethereum as a whole. Again, I don’t know (although there are some relevant notes in section 4 of this post), but I intend to look into it.
Perhaps most deeply, I am concerned by the implications of the fact that all computations on the Ethereum network are “fuelled” by payments in the Ether currency, ostensibly to avoid the Ethereum network running into the Halting Problem. Therefore, any DAO/DAC would have to earn Ether to survive on the system. As far as I can tell, “being useful” is therefore pragmatically defined in terms of earning Ether and thereby enriching early Ethereum adopters (i.e. people who bought Ether in the crowdsale with Bitcoin – another decentralising tool that smells a little like a pyramid scheme, albeit one which may benefit most participants). That seems to be a moral and ideological flaw, but perhaps an unavoidable one, and one which may not stand in the way of our practical work. Time will tell.
3. Is Ethereum going to be as important as some people seem to think?
I’ll keep this part short. Basically I think that Ethereum or something like it is going to be a game-changer for the internet. Decentralization is that important, and Stephan wisely noted that the plan is not to sell people on the ideology of decentralization but to give them fun and useful apps which just happen to be decentralised (sound familiar?).
There was some opposition or general dismissal of the entire idea in the crowd at Saturday’s talk, but to be blunt I think it largely stemmed from a combination of misunderstanding and future shock. For example, there was an argument that people will always prefer to use the most popular apps or services without caring about all the technicalities or ideology, and that is true enough, but it doesn’t recognise that popular apps and services can embody the technicalities and ideologies without mentioning them explicitly at all. Stephan made that point, and furthermore noted that since Ethereum is open source the underlying technology will be free. So yes, Ethereum itself may or may not amount to a “Web 3.0″ as some claim, but I think this general class of technology is going to be very important indeed.
4. Details, please?
Now for some info-dump. These details are just notes from the talk, in no particular order. In order to learn more about Ethereum I would strongly recommend that you check out https://www.ethereum.org rather than asking me! That said, I would encourage discussion of all the issues raised in this post, in the comments below.
– Ethereum was mentioned as a possible mechanism for node incentivizing, which is to say encouraging people to run nodes in networks that otherwise run on altruism. For example, people might be incentivised to earn Ether by running an Ethereum app which supports a Project Byzantium mesh networking node. It was also mentioned that this could apply to energy decentralization, as is currently proving popular in Germany.
– Ethereum was also mentioned in the context of “bringing reputation back into finance”. e.g. as a possible platform for reputation economy systems currently in development, such as Quantified Prestige. Or for using reputation to leverage fiat currency loans.
– The typical Ethereum user experience will be provided by client software such as “Mist”. Mist is currently being developed primarily for C++, Go, and Python. Additional “community clients” are apparently also in progress using Node.js, Java, Clojure, and ObjectiveC. Mist appears to essentially provide a dashboard for managing your network identity, Ethereum apps, cryptocurrencies, assets, reputation score(s) etc. You can connect directly to the block chain (to verify transactions, etc), without using a client like Mist.
– Multisig (multi-signature transactions) will be used from the outset, so Ethereum users will not have only a single access key which can be lost or stolen. This basically means greater security. The importance of this was stressed, since an Ethereum account not only represents money, but an entire online identity and array of services.
– Finally, I asked Stephan how Ethereum will address the problems known to exist with the Bitcoin block chain, which as it grows is encouraging users to switch to ‘lite’ clients (which don’t handle the full block chain themselves). This is in turn leading to a strong centralising trend as block chains are handled by a dwindling number of heavy operators, and also opening up the possibility of a “51% attack” whereby one centre of authority can manipulate the entire block chain to its own benefit. Stephan’s answer was I think the best the cryptographic community can currently muster, but I don’t find that fact particularly heartening. The bottom line was that Ethereum is working to ameliorate the problem in a few different ways, but they acknowledge that Ethereum is subject to this problem in pretty much the same way Bitcoin is. The fixes they’re working on include software called Whisper and Swarm (which use the proof-of-work algorithm) as heavy-lifting clients, plus lite clients, and a 600TPS cap on block size. Most generally the vague hope seems to be that big problems won’t occur until the network reaches a certain level of popularity, and that by then some solution will have ridden to the rescue. I do not find this stance very reassuring, but then as I say this situation isn’t so much Ethereum’s problem as one that must be addressed by the entire cryptographic community.
first posted here: http://wavism.wordpress.com/2014/11/10/thoughts-on-ethereum/
January 5, 2016 at 3:02 am
Ethereum contracts don’t necessarily have to be financial. If, for example, you wanted a contract that collects and counts votes, that’d be easy to implement.
A lot of such applications would require that accounts have known identities, otherwise anyone can make an arbitrary number of accounts. I think that’s why a lot of the initial applications use some kind of monetary token, as a defense against this attack. But if your organization has a known set of members, you could easily collect an Ethereum address from each of them and list them in your contract.
Ether is the only built-in token. “Gas” is just an convenient abstraction for calculating transaction fees. The miner sets the price in ether per unit of gas, different computations cost various fixed amounts of gas, and from that you can figure out the transaction fee in ether. (Down the road, transaction fees will probably be payable in other currencies, implemented as Ethereum contracts. The miner would simply set gas prices in those currencies.)
“Being useful” doesn’t mean earning money. It means people actually bother to use the contract. Contracts on Ethereum are open source, so earning money from contracts isn’t straightforward; if you simply extract a fee from every transaction, someone else can copy your contract and leave out the fee.
If you’re worried about the crowdsale funders having an unfair advantage, take a look at the current ether price. It’s only about triple the best crowdfunding price, which isn’t bad given that during the crowdfund Ethereum was just a bunch of promises and a rough proof of concept, and now it’s in production. Anyone who wants to be an “early adopter” can still jump in.
January 9, 2017 at 12:48 pm
new classic pool
http://etc.cryptopool.online/