This is a transcript of an informal talk given to the CCS in June 2015. This was just before Ethereum was about to launch. The idea of “smart contracts”, Turing-complete blockchains, and distributed autonomous organisations etc. were really just nascent ideas and beta technology. The ecological disaster of proof-of-work systems was just emerging. Proof-of-stake alternatives hardly existed. But, as of today, in November 2022, Ethereum is environmentally clean and stores about 30 billion dollars in value. And we’re beginning to see the first consciously socialist and communal on-chain experiments (e.g. checkout episodes of the Blockchain Socialist podcast). On the left there remains a lack of understanding of what blockchain technology means, and how it can be used. This talk still does a good job explaining what kinds of social coordination problems blockchain solves, and why it’s relevant to socialism.
This is an exercise in them thinking out loud. I want to talk about some technology which I think has implications for political strategy. We face a difficult historical problem: the traditional forms of working-class organisation – such as reform movements, trade unions, worker coops, vanguard parties, communes, transient protest movements that dissipate very quickly – all these have coexisted with capitalism for well over 150 years or so. We can never say never. But if you do want to abolish capitalist property relations, and establish a new kind of society without economic exploitation, then the empirical data is basically in: these organisational forms will not achieve that goal.
So the left needs new ideas for organising itself, needs organisational forms that can gain traction with the working class that transcend national boundaries and which can organically grow from a small number of people to encompass hundreds of millions of people around the globe.
That’s a tall order. I don’t know what that organizational form might be. But at the moment I know what it isn’t. So I just see this absence. However, I do know about some technological improvements and developments that may help solve this historical problem.
Obviously my thinking is heavily influenced by my job, which is a computer programmer. So I’m coming at the historical problem from a specific angle. At best I hope to provide maybe one piece of the jigsaw puzzle and hopefully spark off some ideas.
Historical materialism basically states that relatively high frequency technical change drives relatively low frequency institutional change. Marx expresses this idea with a famous aphorism, which I guess most of you will have heard of: “the hand mill gives you society with the feudal lord, the steam mill society with the industrial capitalist”. So according to historical materialism there is a lawful relationship between technology and how we socially organise ourselves. With this in mind I want to examine the new ecosystem of technologies that has emerged in the last five to ten years, with some real advances in the last two years, which I think are very interesting and relevant to the historical problem.
Let’s take smartphones, peer-to-peer networks of computers, and the cloud as given. And let’s also take it as a given that smartphone adoption in the developing world is massively kicking off because these devices are getting cheaper and cheaper. Today I want to examine a new part of this ecosystem, which is the emergence of new kinds of distributed social algorithms. These new kinds of algorithms hint at new possibilities for organising ourselves – a kind of algorithmic socialism where the working class bootstraps itself into new institutional structures and then self-organises through democratic mechanisms that control the production of institutional rules, and where those rules are then executed by incorruptible algorithms, which become our faithful servants.
Now obviously that’s pretty fuzzy and vague and it couldn’t be otherwise at this stage. Hopefully by the end of my talk you’ll have an understanding of the material basis for such a statement.
The starting point is Bitcoin which most people have now heard about. When I was first interested in Bitcoin, quite some time ago, I thought it was some weird backwater of the internet. For those that don’t know Bitcoin is the first successful digital currency that is not backed by any state or government. I will briefly describe the underlying technology that powers Bitcoin because possible applications go far beyond digital money.
Examine this picture. It’s a photograph of a machine in a warehouse in northern Europe. There are many like this all over the world. Notice the racks of computers. The person who took this picture said the first thing you notice as you approach the warehouse is the noise. You next notice the wind. Both the noise and the wind emanate from large fans that keep the computers cool as they crunch numbers. A great deal of computational work is being performed. This is a picture of Bitcoin mining Factory. But what does this machine produce? What is this machine doing?
In the next five minutes I aim to answer precisely this question.
A public ledger book
Fundamentally a blockchain is a data structure very similar to a public ledger or accountancy book. Copies of this ledger are stored on about five to ten thousand computers or nodes distributed over the world. The blockchain is the complete record of all the Bitcoin transactions made between individuals. In consequence the quantity of bitcoins held by any one individual is simply the net result of all the transactions in the ledger. And an individual in the world of Bitcoin is actually an account with a unique digital signature created by public key cryptography. So any of us in this room can create multiple Bitcoin accounts on the network and start making transactions in bitcoins.
Nobody owns, controls or possesses the canonical version of the ledger. Instead it’s dispersed across the community. Nodes in the network can come and go, copies can be lost and so on, but the blockchain persists on condition the community of node runners exists. Anyone can write to the ledger by sending messages to all other nodes in the network. The message then spreads across the network until all the copies of the ledger have been updated.
However, there’s a fundamental problem with this naive scheme, which is called the problem of double spending.
The problem of double spending
Imagine I want to buy some pizza with Bitcoin. So I create a transaction by broadcasting the
“I pay 10 coins to A”
A is a person who’s gonna send me pizza in return. The blockchain ledger gets updated with this transaction so I now have 10 fewer bitcoins and A has 10 more. But then I sneakily create a new identity called B, which is a simple matter of creating a new account with a unique digital signature. I broadcast another message, at the same time as my first message:
“I pay 10 coins to B”
So I’ve spent my 10 bitcoins twice. I am the real person behind both signatures. So I now have 10 bitcoins, and also some pizza. And now there’s a contradiction in the network. Both A and B either have a claim to the same 10 bitcoins, or the blockchain now has a record of 10 more bitcoins that have appeared from nowhere.
With commodity money, such as gold, there’s an actual substance that gets exchanged between people. So it’s much more difficult to cheat that system and double spend. Or, with state-backed money we put our trust in a central authority who in a sense maintains a single copy of the ledger book. But the aim of Bitcoin is to be a digital currency that is free of centralized authorities. So Bitcoin needs to solve this double spending problem.
The key technological innovation of Bitcoin is its solution to the double spending problem. And the key idea is that writing truthful entries in the ledger book is more profitable than writing false entries. So there’s a systemic incentive for the Bitcoin community to converge to a record of truthful transactions that conserve value in exchange. How Bitcoin achieves this is pretty subtle and complex. I’ll try to give you a flavor of the algorithm but not go into too much detail. But it is important to understand, at least in broad terms, how this system works.
Cheating is costly
As I mentioned, all nodes in the network receive transaction messages and update their copy of the ledger. The Bitcoin system presents all the node operators, which remember could be you, with the following incentive: if you are the first, amongst all the nodes, to solve a particular kind of computational problem then you get a reward. The reward is to write the next entry in the ledger book and assign yourself some bitcoins out of thin air. You get to package up all the messages that have been sent around the network in a short period of time since the last competition was run. And you create a new block in the blockchain, which you then broadcast to all the other nodes in the network. The other nodes then verify the correctness of your answer to the computational problem. If your proposed block passes these verification tests, then the other nodes stop what they’re doing and immediately add your block to their local copy of the blockchain. If all is well, then all the nodes in the network rapidly converge to agree to write your proposed block to the blockchain.
The node operators, or Bitcoin miners, are therefore all in competition with each other – all racing to create the next page in the ledger and grab that Bitcoin reward. That’s essentially the mechanism. But why does it solve the double spending problem?
First, in order to cheat and propose a block allowing someone to double-spend, you will need to do some non-trivial computational work. And that’s a real economic cost. You can’t simply spam the system with false transactions. Cheating costs.
Second, you need to win a competition. So your false transaction only gets written down in the ledger book if you win. But winning this competition is essentially a lottery. The only method you have of guaranteeing to win the lottery is by applying more CPU power than the combined CPU power of all the other nodes in the system.
Third – and this is the clincher – if you really had all that CPU power then you would need to prefer to undermine the whole system, and the basis of your own current and future Bitcoin wealth, rather than simply reap the Bitcoin reward of being honest and writing the truth in the next page in the ledger book. To undermine trust in the whole system you would need to incur a real economic hit.
Cheating becomes unlikely with a very high probability as a consequence of all these mechanisms and incentives. Cheating isn’t impossible. It’s just unlikely with very high probability.
Profit is truth
A number of ideas come together in Bitcoin.
The blockchain algorithm is common property. The source code is open so anyone can inspect it, run it, and start their own node. You don’t need anyone’s permission to join the system.
Anyone can alter the source code and create their own variants of it.
Bitcoin simulates commodity money, such as gold, in the computational setting. So to create money you’ve got to use-up some vertically-integrated labor (your own, those that built the mining machines, those that supply the power etc.) and metaphorically dig it out of the ground. And that ground is open for anyone to dig.
And finally, and perhaps more importantly, the system is designed to incentivise the community to reach a consensus on the public record of information which no single party owns or controls.
So what we have then is a distributed algorithm for reaching consensus without the need to place trust in a central authority, a true opening up and socialising of private accounting ledgers.
Let’s return to our original question: what is that machine doing? And what is that machine producing? Essentially it’s a machine that makes a profit by producing a truthful record of social interactions.
So that’s Bitcoin and the underlying blockchain technology. I hope you now have some idea what problem it solves and how it solves it. Now I want to put Bitcoin aside and focus on some new developments of the last two years that significantly increase the power of the blockchain algorithm.
We’ve seen that the blockchain algorithm can enforce a specific kind of social rule which is conservation of value in exchange – without the need for the central authority. Vitalik Buterin then noticed two things: first, we can store any kind of information on the blockchain, not just the kind of entries you’ll find in a ledger book; and second, the Bitcoin rule, which conserves value in exchange, is really just a specific kind of social rule, a kind of very simple algorithm. So why not generalise?
Buterin’s key idea was to add a Turing-complete programming language to the blockchain and store arbitrary algorithms written in that language on it.
This idea transforms the ledger book into a public book of algorithms. And instead of simple messages, such as A pays 10 bitcoins to B, which transfers value between accounts, we can instead allow arbitrary messages which transfers any kind of information between accounts. This idea transforms the processing of Bitcoin transactions into the execution of arbitrary programs, which can call each other. The algorithms can have their own accounts, and their own digital signatures, and then may send and receive messages to themselves and other people. So what we have now is essentially a large decentralised computer that potentially contains millions of algorithmic objects that store their own state, execute themselves, and talk to each other. The entire state of this computational system – the algorithms and the data – is distributed across any number of machines around the globe. And anyone can add algorithms to the network.
But the really important property is that the integrity of this computational system is maintained without the need for trusting in a central authority. Everyone can be sure – with very high probability – that any particular algorithm will execute according to its specification, and that messages will be delivered without any interference.
Before, the blockchain enforced a simple exchange rule. Now the blockchain can, in principle, enforce any kind of social rule that can be encoded as a computer program (and there’s reason to believe, due to the Church-Turing thesis, that this means any possible social rule).
That’s rather abstract. So let me provide some examples of what people can now build.
Do-it-yourself social institutions
Let’s say you want to start a club that collects membership fees. And let’s also say, just for the purposes of illustration, that the club’s financial resources can only be spent if every member agrees upon the proposed transaction. Now, setting up this kind of joint account, and managing the democratic process, is of course doable today. But it’s not easy. There’s a lot of bureaucracy involved. There’s a lot of trust involved. The club members have to put their trust in the high street bank, the club’s accountant, and the subset of members who organise the ballots and count the votes. We know from historical experience that that trust is often misplaced. However, once we allow arbitrary algorithms on the blockchain then sitting up setting up this kind of Club becomes trivial. This kind of functionality can be achieved in a few hundred lines of code. And, once implemented, it can be re-used by anyone.
Just in case you didn’t quite catch that – this technology enables any decent coder to prototype a simple deposit account with democratic control in a couple of days and then throw it onto the blockchain for anyone to use. The production of institutional structures has suddenly got a lot cheaper and a lot easier. But these institutions are different because their rules are enforced by incorruptible algorithms. You can never blame the players, only the game.
I’ll briefly mention some other kinds of applications which people have been actively working on today to give you an idea of the range of possibilities. Some might cause you to shrug your shoulders. Some might alarm you. Others hopefully get you excited about new possibilities.
Monetary transactions, in various kinds of banking services such as deposits and savings accounts, can be transferred to the blockchain. This in itself enables experimenting with experimental kinds of money considered in the socialist tradition. All possible variants of voting schemes may be implemented and enforced. Important personal property claims – say the ownership of cars, or land, housing, or stocks, pretty much anything in principle – may be decentralized. So instead of paper titles managed by bureaucracies we have algorithms and digital records.
We can imagine going further. We can embed computation in objects. So physical property, let’s say a car, can be a node in the blockchain. Personal property can be smart property. The car can know its owner and only activates if it receives a message with the owners’ digital signature. Once bought no corporation can subsequently control the use of personal property. Smart property could also be used to manage common property, including enforcing rules for sharing or swapping or transferring ownership based on votes.
Smart contracts can automatically execute the terms of legal contracts. Consider, as an example, a betting contract. A and B bet on the outcome of the FA Cup. A and B send their cryptocurrency to a betting algorithm that holds their money in an escrow account on the blockchain. Once the game is over the smart contract verifies the outcome (we punt on the technical problem of trusted external oracles here) and pays out the winning. Now this idea can of course be further generalised to smart contracts that implement governance schemes such as assigning an individual or group to control roles within an organisation, membership lists, or digital assets, or bank accounts etc. Whether that control can be revoked, and under what circumstances, or whether it’s time limited or randomly allocated, can all be encoded as a computer program and incorruptibly enforced.
Perhaps the most general and abstract idea is that of a decentralized autonomous organization (DAO). This is an algorithmic entity that maintains a membership who can vote to spend the entity’s funds but also vote to modify its code. Members therefore collectively decide on how to modify the algorithms that encode the institution rules of the organization. The point of this example is that the blockchain plus algorithms enables new kinds of institutional structures that can be much more fluid and dynamic than the ones we’re accustomed to today.
These ideas are not science fiction. They’re currently being worked on today. Libertarian venture capital in Silicon Valley is pouring hundreds of millions of dollars into this ecosystem. They’re very excited about it.
Ethereum: an operating system for society
The most interesting project currently in development is an open-source project called Ethereum. The creators describe it as a community driven project aimed to decentralise the internet and return it to its democratic roots. In less than a month the founders raised about 21 million dollars from public crowdfunding. It’s currently going through public testing. So I could write an algorithm on the Ethereum blockchain today.
Of course, many of the progressive ideals associated with this technology will soon be disciplined to satisfy the reproduction conditions of capitalist property relations. Nonetheless something new now exists.
It’s difficult to summarize this explosion of new technological and political ideas. I’d say that the blockchain algorithm, once we generalize it, becomes something like an operating system for society: it enforces social rules without the need for a central authority. Instead we put our trust in a decentralized system run by incorruptible algorithms, who are our servants that faithfully execute the rules we design and agree to participate in.
Let’s wrap up and return to the historical problem that I mentioned at the beginning, the problem of finding new forms of working-class organization that aim to transcend capitalist property relations.
Blockchain-like technologies create new possibilities for socialist strategy and organization. I think the major points to consider are these:
First, setting up and creating the kinds of institutions necessary to run an entire socialist state just got easier and cheaper. The barrier to performing experiments and trying things out is much lower than it was before. We have, in a sense, a new do-it-yourself approach to creating social institutions.
Second, the institutional rules can now be executed by infallible and incorruptible algorithms. So it is much harder to corrupt these institutions and break the rules. The institutions will be super trustworthy institutions.
Third, these institutions are immediately global. In principle anyone with access to a computer and the Internet can immediately join in and begin to participate in these structures.
So these are the new possibilities. These are the material foundations for the possibility of some kind of algorithmic socialism. The question then becomes: can we use these new technologies to solve the historical problem?
Response to questions and comments
Thanks a lot everybody. Fantastic to get all your thoughts on something that I’ve been thinking about for quite some time, many years actually.
I’ll try it and briefly respond to some of the comments.
The notion of incorruptible faithful servants: I chose that language on purpose because I was kind of challenging everyone to start thinking of these algorithms as nothing to be frightened of. There’s actually something to welcome in the same way we welcome all kinds of machines in our life: like the vacuum cleaner or the dishwasher. I don’t really really understand in detail how a dishwasher works. I don’t understand how my car actually works – maybe I do a little bit. But I’m happy to use these things and rely on them and there’s a certain amount of trust that you put into them.
Now, obviously, I’m not arguing that we should or could eradicate trust from human society altogether. But if something is useful to you then you will use it. I don’t think these kinds of algorithmic social institutions would necessarily be very different in that sense.
These social machines, which people will participate in, will still have problems. They’ll definitely have bugs. And machines can be used well or they can be used badly, they can cause pleasure and pain.
On the issue of the dangers of big authorities like the states smashing the system: yes of course. They may well want to. And in fact they will have the power to do so. And these powerful players can in fact break things. But what a great problem to have! If in fact you have a social institution that the state has some interest in, and would like to smash, then that’s a good problem to have. The problem at the moment is that we don’t have that problem. We don’t have any working class, international social institutions that are sufficiently powerful to gain the concerted interest of state power. If the social institution, partly on a blockchain, was any kind of mass movement there would be a group of people, in its division labor, who would be building their own platform that didn’t rely on state-controlled systems.
Of course this technology doesn’t solve the problem of what kinds of socialist institutions, and how they can gain traction with the mass of people, how we can get from here to there. This technology is nothing more, but nothing less than, new causal powers that are available to us. It doesn’t solve the historical problem in itself.
However, it’s now cheap to build social institutions that you can experiment with. And they have this property of being transparent and causally enforced in a way by machines. This is something qualitatively new in the landscape.
This set of technologies will eventually lower labor costs in bureaucracies and make them more productive in a capitalist sense. So unless we intervene then this technology, like previous technologies, will just reproduce the capitalist system. But it could be used in different ways. I’m trying to suggest that this is a technology that would allow us to begin to build socialism now and partially enter that institutional structure and partly exit the capitalist system now. So this is not about a stage where there’s a current system and then a post capitalist system and then we start using the blockchain technology in this new way. No, it’s a means to begin building a socialist society now. And I think that returns to essentially the question I posed at the end of my talk, which is how can we use this technology to build or institutions that organize the working class and transcend national boundaries and abolish exploitation. That’s what I think the opportunities this technology provides, and that’s where my thinking turns to.