A New Project for Linux at 25
John McPhee says his books on geology could all be compressed to a single statement: the summit of Mt. Everest is marine limestone. We can do the same for Linux with this one: microsoft.com is hosted on Linux. According to Netcraft, so are dozens of other Microsoft sites and services
For much of Linux's early history, Microsoft was an enemy—maybe even the enemy. Even as late as 2001, Steve Ballmer, Microsoft's CEO and ball-buster-in-chief, called Linux a "cancer". Yet, Microsoft introduced its own Linux distro in 2003, and by 2011 (according to Linux Weekly News), Microsoft was the fifth largest corporate contributor to the Linux kernel—and Ballmer was still in charge. In November 2014, new Microsoft CEO Satya Nadella said the company "loves Linux". And why not?
As Linus put it to IEEE Spectrum earlier this year, "if you're creating some new Internet infrastructure or whatever, I'm almost surprised when it doesn't run Linux". Microsoft makes a lot of "whatever", and it unsurprisingly described Azure Cloud Switch, introduced in September 2015, as "a cross-platform modular operating system for data center networking built on Linux". At the time, 20% of the company's virtual machines (VMs) on Azure (its cloud computing platform) already ran on Linux. I'll bet even more do now.
We see similar developments on the mobile front. For example, last year Microsoft invested in the Android developer Cyanogen, the corporate spin-off of open-source (and Android/Linux-based) CyanogenMod and maker of the commercial CyanogenOS. As I write this, Microsoft is laying off Windows Phone workers by the thousands, while using its Cyanogen partnership to bring Microsoft apps and services into the massive Android world of mobile everything.
As it happens, this month (August 2016) is the 25th anniversary of Linus' Usenet post announcing the birth of Linux, which at the time had no name and Linus called "just a hobby". He closed that post saying his new OS "probably never will support anything other than AT-harddisks, as that's all I have :-("
Now all ten hosts on Netcraft's list of the world's Most Reliable Hosting Company Sites run on Linux :-)
The problem with that smiley is that it says Happily Ever After, which is what you reach at the end of a story, not what you have at the beginning or the middle of one. As I said here in June 2016, all stories are about conflict, and Linux seems done with those.
To stay interested (and interesting, which is our job as a magazine), we need some new fights. In that same article, I listed five possibilities, all (at least hopefully) dear to the hearts and minds of Linux Journal readers. In this article, I'll dive into one of those: Decentralization and Distributed Everything. And, I'll do it by focusing on the mission of one guy: Kevin Cox, of Canberra, Australia.
I first met Kevin a few years ago at a conference in Munich. What most impressed me about Kevin was that he had, to my knowledge, the only digital identity business that gave full respect to the autonomous and independent natures of individual human beings and each connection those human beings might have to any other party, without relying on a central authority. In this way, his system embodied a quality Brian Behlendorf calls minimum viable centralization.
Not long after that conference, Kevin sold his company (which has since disappeared into its acquirer) and started thinking and working more deeply on liberating each of us from the clutches of centralization and making distributed everything not only work, but out-scale anything centralized.
When I asked Kevin to help me grok where he's headed these days, he told me to start with Cory Doctorow's talk at the Decentralized Web Summit in early June 2016. Cory's one slide in the talk is of "Ulysses and the Sirens", John William Waterhouse's 1891 painting based on Homer's Odyssey (Figure 1).
Figure 1. John William Waterhouse's "Ulysses and the Sirens" (1891)
In the painting, we see Ulysses tied to the mast of his ship at his own request so he won't be tempted toward rocky shores by the beautiful Sirens. (Those are the birds with female faces. They don't look tempting to me, but I suppose they were porn for Waterhouse.) Cory says this illustrates "'Ulysses pacts': bargains you make with yourself when your willpower is strong to prevent giving into temptation later when you are tired or demoralized, and how these have benefited the web to date, and how new, better ones can protect the decentralized web of the future".
The temptation Kevin would save us from is dependence on third parties of any kind, even things like OpenID and blockchains He says "these take things away from your autonomy. You cannot suddenly decide that you no longer want to be identified with a blockchain identity. You cannot ditch your OpenID any more than you can easily change your email address."
Next Kevin points me to promise theory, which Wikipedia defines as "a model of voluntary cooperation between individual, autonomous actors or agents who publish their intentions to one another in the form of promises". In other words, promises work without a central authority or any kind of command and control system other than the individual's own.
This is a conceptual stretch for most of us computer types, because command and control is embodied in computer architecture, operations and programming. But they are not embodied in free societies. Holding those together are a matrix of promises, also known as agreements and understandings. In Angels and Ages, Adam Gopnik's excellent short book on Lincoln and Darwin (who were born the same day in history), he writes, "Law is the practice of rules in the context of deals, and Lincoln believed in both." Law is command and control. Deals are promises.
Most deals are not formal, but even the formal ones we call contracts simply certify agreements between two consenting parties (though technically, more can be involved). They don't require a third party. Government gets involved only when enforcement is at issue.
Mark Burgess first shared promise theory in a chapter of Ambient Networks (Springer, 2004) titled "An Approach to Understanding Policy Based on Autonomy and Voluntary Cooperation". Ten years later, he wrote about it in Linux Journal:
In a promise-based design, each part behaves only according to the promises it makes to others. Instead of instructions from without, we have behavior promised from within. Since the promises are made by "self" (human self or machine self), it means that the decision is always made with knowledge of the same circumstances under which implementation will take place....
A promise-oriented view is somewhat like a service view. Instead of trying to remote-control things with strings and levers, one makes use of an ecosystem of promised services that advertise intent and offer a basic level of certainty about how they will behave. Promises are about expectation management, and knowing the services and their properties that will help us to compose a working system.
Promises, he says, scale:
...biology has selected redundant services as its model for scaling tissue-based organisms. This offers a strong clue that we are on the right track. Avoiding strong dependencies is a way to avoid bottlenecks, so this shows the route to scalability.
Yet, he also warns:
Autonomy and standalone thinking seem to fly in the face of what we normally learn about programming—that is, to share resources, but this is not necessarily true. Security and scalability both thrive under autonomy, and complexity melts away when the dependencies between parts are removed and all control is from within.
Within the promise, that is. (You can read more about promise theory in Mark's book, Thinking in Promises, published by O'Reilly in 2015.)
According to mathematical sociology, promises work across weak interpersonal ties. Says Wikipedia, "Weak social ties, it is argued, are responsible for the majority of the embeddedness and structure of social networks in society as well as the transmission of information through these networks."
The other two kinds of ties are strong and absent. What we have in computing are mostly strong ties. Those are what enable us to issue commands and to build centralized products and services. Looking at Facebook through the framework of mathematical sociology, we see a gigantic service with strong ties to billions of human dependents who do their best to operate within the company's centralized system, paid for by a B2B advertising business. In spite of being called a "social network", Facebook cannot scale human promises in truly social ways, because it doesn't support the weak ties that comprise genuine social networking—nor can other centralized organizations, such as banks, governments and large retailers.
Yet the internet can do that, since its own geology is a set of simple protocols, which are nothing more than agreements between computing entities at end points. Its protocols say information packets should be sent between end points by whatever routes look best along the way, and retransmitted when packets are dropped. These protocols are not encumbered by billing, or any business model, and there is no central entity controlling them. The internet's success is a demonstration of promise theory at work on a worldwide scale. Those of us on it comprise a rising tide of weak ties that lifts everything that floats on it, including giant corporate pyramids.
The net is also an ideal environment for scaling up countless promises between autonomous entities, unencumbered by the need for anything underneath to create scarcities or to impose operational or regulatory burdens.
The new promises Kevin wants to start with are hacks on the economy. Specifically, he wants us all to "take control of our own money" by "removing half the cost of financing the production of goods and services". That cost is financial institutions. He says we don't need them any more than the internet needs a central operator. He also says we can scale up far more economic activity and wealth generation with an economy that emerges from our autonomous activity, based on promises between entities that don't need third parties.
For example, instead of going to banks or other third parties for loans or savings, we can go to each other. Kevin calls this envesting, which he describes in an email as:
...a beneficial mutation of a bank loan, which is nothing more than a transfer of value over time.
Envesting creates more value for the same amount of money as a bank loan. Bank loans create debt, which is expensive money that we must repay.
Bank loans themselves can be thought of as a mutation to the exchange of value. The mechanism for creating bank loans is that the bank creates new money, then lends it. When the loan is repaid with money, the bank destroys the money.
Banks do not have to do it that way. They can lend money they have in their bank without creating more; and lots of financial institutions do. It is the creation and destruction of money that leads to inefficiencies.
The creation of money increases cost the more we create. Cost increases exponentially with the number of loans. This makes loans expensive.
Remove the need to create money and you have zero cost money. In fact, you already have it, in the deposits of savers. There is no cost of creation by using those funds to lend.
The loan is still the same. We exchange value and if there is a long transfer time, we return a little bit more value.
Envesting does not create extra money, like traditional bank lending. Instead it creates a form of money we call a voucher, or a prepayment, or a reward, or a coupon. These tokens are simple because you do not need a financial system to control them, and because they represent real goods (e.g. your house) and services. And, since we do not need the financial system to manage these instruments, we do not have to pay for an extraneous system that doesn't create any value for us.
In his book, Killing the Host: How Financial Parasites and Debt Bondage Destroy the Global Economy, Michael Hudson explains how the financial sector has taken over the real economy. With envesting, we have a mutation that can immunize the real economy from that parasite. It can also be easily copied and applied in many different ways for many different loans.
When we use fungible money to repay loans we have strong connections between loans. When we repay loans with product or percentage of ownership, we have weak connections, which is good. This change to the way we repay loans will reduce the cost of making loans. The total savings is likely to equal the full value of the loan.
Using this approach for buying a house with rent rather than with repaying a money loan results in cost savings to both renter and saver. For example, here is the cost to buy a house with rent compared to a money loan, and here is the income to a saver who lends money to a renter, compared to lending money to a bank.
Kevin calls these arrangements "rent and buy loans". These are bankless loans involving just two parties. The original owner continues to own the property, like the bank holds collateral, until the loan is paid off, and ownership is transferred. The payments in the meantime are like rent. And the cost for the buyer is a lot lower. He also explains:
Money created with rent and buy loans is zero cost, but it has the value of the property to which it refers.
Money created with regular loans has a value independent of the asset to which it refers. That is, the money itself has a value. If we remove the cost of money, then we reduce the cost of creating and administering loans. These reductions in cost are passed on to renter/buyers and saver/lenders.
There are many costs incurred making sure people do not create money without the backing of an asset. Unfortunately this has become difficult with the invention of derivatives and other financial instruments.
The world is now awash in money because too much has been created. This happened because we can back the creation of money with other money. If the underlying asset of this pyramid fails, then everything above fails. The underlying assets are affected because they are tightly connected to the failed loans.
Rent and buy loans are not connected tightly to any pyramid. This means if the money pyramid fails it does not affect rent and buy loans. Rent and buy loans use distributed systems to connect renters (buyers) directly to savers (lenders) without an intermediary (banks) who create another layer of cost in order to benefit from the previously difficult task of aggregating funds from savers and packaging those funds in order to re-sell them to borrowers and taking a fat cut along the way. Think of rent and buy loan platforms as a method for neutral connection of autonomous buyer/renters and lender/savers without any data extraction.
Personal data in Kevin's system isn't an issue because:
Applications don't "own the data". Uber could be an application built on top of this. But anyone could also write another Uber because they would have access to any data individuals allow. Ownership of the data always remains with the entities, including individuals. Entities give permissions to applications. The applications access the data. This is much cheaper than applications restricting access to data.
I didn't understand them because there were too few examples of them at the time (the late 1980s and early 1990s), and because I was busy doing stuff like helping Sun Microsystems succeed with SPARC and trying to make network parts builders work together in compatible ways while the internet was still busy forbidding commercial activity (which didn't end until 1995).
After Linux took off (as GPL'd free software), I could see clearly how freedom worked because the means were there—not just for demonstrating it to everybody, but for developing more and more with it. I suspect the same could be true for promise-based financial dealings such as rent and buy.
So my request here is to help Kevin debug the case he makes for his ideas, while putting them to work.
It helps also to remember the introduction of Linux as a mutation that not only proved free software could work in the world, but utterly changed the norms of software development, liberating vast amounts of development labor from the feudal castles of corporations and governments, while creating far more development opportunity along the way—so much that today there's a worldwide shortage of programmers.
It also helps to have a big hairy enemy. The world's broken financial system is an ideal candidate. So let's do for the world's economy what we did for its software.