An Algorithm to Make Online Currency as Trustworthy as Cash

An internet of money. That’s the dream. Through bitcoin and other digital currencies, so many activists, entrepreneurs, and opportunists are chasing the dream. They envision a world where we can trade money as easily as we trade data, where anyone can send and receive currency from any machine on earth, where our financial system is […]
465339434
Getty Images

An internet of money. That's the dream.

Through bitcoin and other digital currencies, so many activists, entrepreneurs, and opportunists are chasing the dream. They envision a world where we can trade money as easily as we trade data, where anyone can send and receive currency from any machine on earth, where our financial system is controlled not by big banks or big government but by the people.

The trouble is: we need a way ensuring that the people can be trusted, that this vast network of machines can reliably keep track of our money, that no one can game the system and make off with money that isn't rightful theirs (or, at least, that no one will game things too easily). Bitcoin tackles this issue using a rather elaborate online system where people build specialized computers, or "mining rigs," that do little more than solve random math problems all day long. But David Mazières is proposing a new method, one that affords trust---perhaps even a greater level of trust---without relying on the expensive and power-hungry mining operations that drive bitcoin.

David Mazières is a professor of computer science at Stanford University. But right now, he's on leave at Stellar, a San Francisco non-profit that's seeks an extreme version of that dream. Stellar aims to create a worldwide network of machines that lets anyone send any currency and have it arrive as any other---bitcoin could arrive as dollars, euros as yen, Brazilian real as dogecoin---and last summer, the organization asked Mazières to show that all those machines could keep each other accurate and honest.

The result is a new kind of algorithm. You can think of as a mathematical model for online trust, and it can help drive not only the Stellar network, but all sorts of other online systems that seek to operate without a central authority, from digital currencies to stock markets to email services. As Mazières describes it, at the highest of levels, the algorithm provides a way for a vast network of machines to reach a reliable consensus. "It's a way of having everyone in the world agree on something," he says. And this include everyone agreeing that everyone else is on the up-and-up.

Achieving Consensus

It's a fascinating, if rather complicated, proof, and today, Stellar and Mazières are sharing it with the world. They're releasing a paper that describes this "consensus algorithm," seeking comment from outside academics and developers, and they're open sourcing a new version of the Stellar software that makes use of it. Stellar had previously open sourced software for running its money network, but according to project founder Jeb McCaleb, it didn't work all that well with a large number of machines---and it needed a way of ensuring trust. "We never really had a good proof for why the system works," he says. "We needed to show that anyone can plug into the system, and it can remain robust."

Dan Boneh, a computer science and electrical engineering professor at Stanford who specializes in cryptographic systems, has reviewed the paper, calling it "pretty interesting." The algorithm, he says, could help build a wide range of online systems that require many machines to securely and accurately work in concert. "It can serve any system that's based on quorums, where we must all agree on what the state of the world is," he says. "It can be used for payments transactions, the exchange of property rights, financial trading, all the standard applications of a trust ledger."

At least, that's the theory. Although he has reviewed the paper, Boneh has not reviewed the software code---and that code is still evolving. Stellar must still turn theory into reality.

Trust Without Miners

Stellar was bootstrapped by McCaleb, an early bitcoiner, and Stripe, the startup that helps drive online payments for he likes of Apple, Facebook, and Twitter. Like bitcoin, McCaleb and Stellar aim to create a universal online ledger that securely controls the movement of money from one place to another. But unlike bitcoin, it will deal in many currencies, not just one. And it won't use miners.

Bitcoin miners serve multiple purposes. These are the machines that run bitcoin's universal ledger, or "blockchain." And if you set one up, you'll receive a fraction of the new bitcoin currency the system creates with each passing day. That's how the system encourages people to run its network. But mining requires a pretty large investment too: you can't win those new bitcoin unless you build a pretty hefty rig that performs more mathematical busy work than most miners on the network. That's how the system engenders trust. "If someone spends enough money on the infrastructure needed to mine bitcoin," Boneh says, "then they have incentive to keep the system running well."

With his algorithm---dubbed federated byzantine agreement---Mazières builds trust in a very different way. In short, he knits together a large trusted network from smaller trusted networks. In joining the network, you connect to people you know and trust. They, in turn, connect to machines they trust. And so on. If the system can show that none of the small quorums are separated from the rest, then we can all trust the larger whole. "As an individual, I choose users that I can trust and those users do the same," Boneh explains. "If we can achieve that combinatorial property, we can achieve consensus."

That may sound simple. But the proof is not. As McCaleb explain it, in analyzing how the network is organized, the system can mathematically determine where the weak points are, and then work to shore up those weaknesses. Basically, it can help machines determine what other machines they should trust. "You can see where you need to plug in to make the system stronger," McCaleb says.

According to Boneh, who has worked alongside Mazières at Stanford but has no connection to the Stellar project, the algorithm is something new. Existing "byzantine fault-tolerance algorithms" do something similar, but they only work with a fixed number of machines. Stellar's algorithm, in theory, works with a unlimited number of machines. Plus, it allows more people to join the network because it doesn't require power-hungry mining rigs. "Anyone can potentially participate in the consensus---and you don't burn up a lot of power," Boneh says.

Where's the Incentive?

The rub is that this system doesn't encourage people to add machines to the network in the way that bitcoin does. You don't have miners paying people for their hardware resources. But according to McCaleb, who launched one of the first big bitcoin exchanges, all sorts of organizations will help run the Stellar network simply because they want that "internet of money."

Unlike bitcoin, McCaleb points out, Stellar is trying to build a system that handles all currencies, that means its audience is potentially larger, that more organizations will be interested in using it, from PayPal to Wells Fargo. These organizations will not just want to use the system, but help run it---so that they can ensure that it runs well. "Anyone who is running a business on Stellar will want to run their own node," he explains. "And because it's lightweight, asking people to run it is not a big thing."

It's an idealistic pitch. But that's the nature of the project. Stellar isn't an startup designed make money. It's a non-profit intent on building a way for others to move it. That's an ambitious undertaking. But at least some of the pieces are in place.