Ok, let’s back up. What would it mean for there to be software that “lives” on a blockchain?

You understand that bitcoin is a currency-like blockchain application. It was built to let people send, receive, and hold bitcoin. Bitcoin’s blockchain is structured like a ledger — a long list of transactions that records who has control over every amount of bitcoin that exists. It was built to do this one thing.

Another way to think about this is that the Bitcoin blockchain is a big computer that runs only one program. The program lets you move bitcoin from one address to another, and that’s about it. You can’t write new programs, or install entirely new software, or do much of anything beyond simple transactions.

But what if you could write new programs, install new software? What if there was a blockchain that had the same fundamental benefits as the bitcoin blockchain, but gave anyone the ability to write code that would run on it — not just transactions of a currency-like token, but things with additional rules & complexity… like shares, rewards points, or corporations?

This is the idea behind another blockchain called Ethereum. It comes with a “built in” set of programming languages that let anyone write code that “runs” on the Ethereum blockchain in a way similar to how a bitcoin transaction “runs” on the bitcoin blockchain. Instead of simply tracking balances of bitcoin, the Ethereum blockchain tracks the state of all of the programs that are stored on it.

A software agent can “live” on the Ethereum blockchain in the sense that the code that constitutes it is stored on the blockchain. Because there is always consensus on the state of the blockchain — just like there is always consensus on the state of who owns what bitcoin — the program will always behave as functioned. It cannot be altered or deleted unless it was programmed to allow it to be altered or deleted. Once it’s on the blockchain, it can be autonomous — it doesn’t depend on any individual computer to survive. It exists on thousands of computers all over the world, and every copy is kept in perfect sync by the blockchain.

Crucially, for our purposes, these software agents can natively control money. In the case of Ethereum, they can control balances of Ether, the native token of that blockchain. They can also control other smart agents, or any other program on the blockchain. In short, they can be programmed to perform any operation that people can perform within the Ethereum system.

“Syndics of the Drapers’ Guild”, Rembrandt

In the first post, we discussed how blockchain technology might cut out middlemen. Firms like Western Union sit in the middle of a simple transaction — moving money from A to B — and extract a fee. Bitcoin, by letting anyone anywhere send money for free, can compete with the service provided by Western Union.

The promise of blockchain “smart agents” is that they allow blockchain technology to cut out other kinds of middlemen, too. Even ones that provide complex services, and sit in the middle of complex transactions. At the top of this post I said the question was: can we make companies out of code? A better formulation might be: can we write code that can compete with services today only offered by companies?

One of the most promising areas for this to happen is in peer to peer marketplaces, where a company sits in the middle of complex transactions facilitated by technology. For instance, transactions where a rider pays another person a small fee in exchange for a ride.

Uber runs a service that connects riders to drivers. When a user requests a ride, Uber’s software matches them to a nearby driver. When the trip is verified as complete, the software calculates the fee based on the phone’s GPS, and facilitates the transfer of money from the consumer to the driver. Uber takes a 20% cut.

Maybe a blockchain service could offer something similar. The core business logic — how to match drivers and riders, how to verify trips are complete, how to calculate fees — would be set in place & guaranteed by a blockchain. Payment is, of course, handled over the same platform. There is no legal entity, because there doesn’t have to be — this is all just software that a community of people have created for public use. Beyond the small fees paid as part of transactions on the blockchain, there is no entity to take a cut — which means either lower prices for riders, larger profits for drivers, or both in lesser amounts.

This blockchain “ride sharing” platform wouldn’t so much be a company as a protocol. Think of it like email. No one owns email: it is just a widely accepted protocol — a system of agreed upon rules — for exchanging information. But there are many email clients made by companies that let people use the email protocol.

A blockchain ridesharing protocol would simply be a set of rules — enforced by the blockchain’s lock-step consensus — that define how to enter into a certain type of transaction: exchanging money for a ride. There would be many clients — apps on your phone — that would let you interface with it. But the underlying service — matching, and transfer of funds — would be facilitated by the blockchain.