About a year and a half ago I gave a talk in London titled “The future of Bitcoin and rebuilding the financial system”. Although there were only about a hundred or so people in the room, that talk went on to be watched nearly 36,000 times online. Huge numbers of people have been inspired by how Satoshi planned years ahead; how he didn’t stop at merely moving money around, but went on to imagine astonishing new capabilities …. and plant the seeds of their implementation in the Bitcoin protocol.
Since then I get email nearly every day from people who want to talk or learn about Bitcoin’s advanced features. But one question comes up more often than any other – where are all the apps you promised? Why can we still not use these features?
The answer is simple: we aren’t making daily use of micropayments, assurance contracts, smart property, 2-of-3 dispute mediation and decentralised credit markets because whilst the core Bitcoin protocol does its part, Satoshi didn’t have time to implement all the additional software and infrastructure on top. He figured out the minimal requirements that the protocol needed to support, and then returned to implementing the basics. To make these features come alive takes work, and because they’re inherently about decentralised infrastructure it’s often hard to find anyone who will pay for that work. With no way to own the infrastructure once built, many traditional funding models can’t function.
One of the features I named above is not like the others. An assurance contract (more often known these days as a crowdfund), is a way for different people to club together and raise money for a public good – something that once complete will benefit everyone, but where there is no ability to make users pay individually. The traditional textbook example is a lighthouse: all sailors would benefit from being able to see the shore more clearly but no sailor can afford to pay for the full cost themselves, and once built it’s impossible to ensure only certain ships can see the light. A more modern example is peer to peer infrastructure. By gathering pledges that say “I agree to put my money in if other people also put their money in”, assurance contracts can sometimes help break the deadlock and ensure the public good gets built. Arianna Simpson has a more in depth writeup of assurance contracts on her blog, which I recommend.
Bitcoin has supported this type of funding model since day one, but we’ve never used it because we lacked an app that would make it easy. If it was easy this would be an ideal way to raise money for all the things we as a community want to build or experiment with:
- Better and more robust Bitcoin core infrastructure, with privacy and scalability upgrades.
- Improved wallets that can do 2-of-3 dispute mediated transactions.
- Micropayment based apps like pay-per-second ad free radio, incentivised open wifi hotspots, Tor nodes and decentralised Dropbox competitors.
- Peer to peer credit markets.
- Smart property.
- Decentralised exchanges and volatility-killing derivatives contracts.
- An autonomous economy (or “auconomy”), in which robotic businesses own themselves and trade with humans as equals. What?!? Yes, really! Though it sounds far fetched, a talk I gave on the topic of autonomous agents seven months ago now has over 14,000 views, so it seems this idea fascinates lot of people.
- More generic cryptographic infrastructure, like end to end encrypted and metadata-obfuscated email.
- …. or maybe just making regular Bitcoin payments slicker and easier to use.
I don’t know if a native-Bitcoin crowdfunding platform can help us fund these goals, but there’s only one way to find out. So at the Bitcoin 2014 conference in Amsterdam I gave a preview of Lighthouse, an app I’ve been writing that provides you with your own private Kickstarter, on your desktop. It explores one possible vision of how we can build decentralised applications.
How Lighthouse works
Lighthouse combines two functions in one. Firstly, it gives a lightweight encryptable HD wallet. It uses simplified payment verification, so even though it synchronises directly with the block chain performance is as good as a web wallet – in fact, it uses the same code that powers the most popular Android smartphone wallet.
Secondly, it provides a way to create projects, pledge money to projects using coins that were sent to the app, and revoke pledges you made if you want your money back before the contract reaches its goal amount. Because the contract takes place entirely on the block chain you don’t need much trust in the project owner to manage the partially raised funds. Pledges can’t be claimed individually; they only become recognised as valid by the Bitcoin network when enough are combined together to reach the goal. And pledges can be revoked by simply clicking a button that double spends the pledged coins back to your own address. This simplifies life for everyone: the project owner doesn’t have to worry about being hacked, they can go on vacation for a while and not have to worry about handling withdrawals from the pot, and anyone who pledges knows they can get their money back whenever they like before the goal is reached.
Lighthouse has two modes: serverless and server assisted. In the serverless mode, which is what I showed in Amsterdam, you don’t need anything beyond the Bitcoin peer to peer network and a way to move files around. The app can be given to someone on a USB stick and it will work, with no signup or accounts needed. But the person doing the crowdfunding is responsible for getting a small contract file to people who might want to pledge, and pledgers have to get a pledge file back to the project owner. For example they could be attached to an email thread, or posted to a forum, or even placed inside an NFC tag. But the most convenient way is to use a shared folder. A completely P2P way of sharing folders is BitTorrent Sync, but you could also just use a shared folder on Google Drive or Dropbox.
To disambiguate pledge files that might be dropped into a shared folder the app lets you choose a short nickname – in this example, the project is being created by cryptographer’s best friend Alice, and she’s getting a pledge from her best friend Bob.
For more traditional larger scale projects where running a server isn’t a problem, there’s also a server assisted mode. In this mode the project can be loaded simply by clicking a link on a web page, and pledges are uploaded back to the server. Once enough pledges are gathered that server will automatically combine them and transmit them to the Bitcoin network. There’s no need to manually deal with files. Server assisted mode will often be the most appropriate choice for people raising money for larger endeavours, and serverless mode would make more sense for “micro crowdfunds” like a group of friends that want to split the costs of a big party, but only if enough people pledge to come.
Lighthouse isn’t polished enough to be released yet. There are more features that could be added, and I’m still figuring out what to do with it. The app is itself the kind of decentralised infrastructure that is appropriate for crowdfunding, so the initial release will most likely be a locked down or incomplete version with the full open source app being released when the cost of development can be raised through the platform itself.
Our little currency project has so far relied on a mix of countless volunteer hours, ad-hoc bounties (that often fall through) and VC funded startups. Lighthouse will hopefully add a new source to the mix: market driven, community funded contracts that let us avoid a tragedy of the commons and build amazing software. I think this demonstrates the power of Satoshi’s vision, and I hope you agree.
A crowdfunding platform is useless unless there’s something to fund. Vinumeris is a new company that is devoted to the development of decentralised infrastructure. For now that means Bitcoin, but in future it may include other peer to peer platforms as well. There’s nothing more to announce yet, but if you’d like to find out what happens next either subscribe to this blog or sign up for email announcements.