From Platforms to Protocols

Last night I attended a great Sharers of San Francisco meetup organized by Chelsea Rustrum, an author and sharing economy consultant based here in the city. The event featured two presentations, one by Chelsea and another by Felix Weth, founder of the Fairmondo cooperative. The topic of this meetup was value creation and distribution, exploring ways that people can take part in the monetary wealth generated by the platforms they participate in. There were echoes of the recent Platform Cooperativism conference throughout the event. People are definitely interested in an alternative to the “Death Star” platform model that is taking up increasingly large parts of the economy.

At the meetup there was a lot of interest in the coop model of Fairmondo, with some attendees mentioning alternative methods of distributing monetary value back to platform members using automated smart contracts e.g. blockchains. A common desire that was expressed was for members to have a say in the direction of the platform, and for the platform itself to express the values of its members. It was pointed out that the challenges of scaling a cooperative with this model are not unlike the challenges of scaling democracy itself. And if the American experiment has shown us anything, it is that democracy does not scale well. How to reconcile these desires for both democratic participation and scale to compete with the likes of the platform Death Stars?

I believe that there is a third option which breaks the “capital vs democracy” dichotomy of corporate and cooperative platforms, and that is open protocols. An open protocol is a set of rules enforced by code which anyone can implement and integrate into their application. Open protocols can also be forked or upgraded at-will if they no longer serve the interests of their users. Protocols govern the interactions between users without the need for third-party enforcement; protocols are self-enforcing and are usually governed by meritocratic rather than democratic processes i.e. changes are made based on the technical merit of a proposal rather than popular support alone (though technical merit can lead to popular support). The requirement for technical merit when deciding how to change a protocol can make protocols less susceptible to the corruption present in corporate settings and more resilient against the challenges with democracy present in cooperative settings.

The primary benefit of open protocols over both corporations and cooperatives is that an open protocol is owned by no one. There is a creator of the protocol who sets the initial parameters, but users are completely free to adjust the parameters to their own liking after the protocol is released. In the case of protocols which have strong network effects, the process for changing a protocol can be difficult once adoption reaches a certain threshold, since coordination between all necessary parties can be difficult without a central coordinating authority. Open protocols thus tend towards simplicity rather than complexity, making it more likely that more people will use the protocol since there are less details to debate over. Any advanced features that users desire are built on top of the protocol instead. Consider the history of TCP/IP vs OSI; TCP/IP, despite being a technically inferior protocol, won the network effect because it was “good enough” for most people who wanted to join the Internet.

Within the past decade or so, many open protocols have been invented that can be used to assemble platforms that can replace the corporate Death Stars. Here are a few of my favorites, with additional examples that are still in development:

Bitcoin – a protocol that can be used for transferring value, alternative to money transfer platforms like PayPal (see also: Ethereum, ILP)

Bitmarkets – protocol for trading goods and services, alternative to marketplace platforms like Amazon (see also: OpenBazaar, DropZone)

IPFS – protocol for file storage, alternative to cloud storage platforms like S3 (see also: StorJ, Sia, SAFE network, Syncthing)

Ripple – protocol for creating mutual credit networks, alternative to lending platforms like Prosper

Tent – protocol for content sharing, alternative to social media platforms like Facebook (see also: DattTrsst)

WebRTC – protocol for real time communication, alternative to video messengers like Skype (see also: Tox)

XMPP – protocol for asynchronous instant messaging, alternative to communication platforms like Slack (see also: MatrixTelehash)

Is there a protocol that you like which you think can help break the proprietary network effects of the corporate Death Star platforms? Leave a comment below and let me know!


Email is probably the most popular decentralized messaging protocol. Add yourself to my email contacts if you would like to stay in touch!

What’s at stake in the Bitcoin block size debate

What Bitcoin Is and How It Works

First described by Satoshi Nakamoto in a whitepaper released in late 2008, Bitcoin is a “P2P electronic cash system” that enables two people on the Internet to transact with each other without having to go through a traditional payment processor such as a bank or credit card network. Bitcoin was invented by combining several previously existing technologies, including digital signatures, peer-to-peer networking, and cryptographic proof of work, into a single application.

In Bitcoin, digital signatures are used to transfer the bitcoin digital currency from one account to another, peer-to-peer networking is used to broadcast transactions to the network for verification, and proof of work is used to determine which transactions get confirmed by the network. This process of determining which transactions are confirmed has come to be known as “Nakamoto consensus,” and it enables computers on the Bitcoin network to come to agreement on the current record of all transactions that have been accepted by the Bitcoin network. This Nakamoto consensus process produced a key innovation that did not exist before Bitcoin: a decentralized solution to the double-spending problem.

The Nakamoto consensus process confirms new transactions on the network by batching them into “blocks” which are produced and verified by the network approximately every ten minutes. Anyone can participate in the Nakamoto consensus process and make blocks by adding their computational power to the network. This decentralized network of block makers competes to collect a block reward consisting of new bitcoins and any transaction fees by racing to solve a complex math puzzle. The number of new bitcoins that are produced with every block is programmed to get smaller over time until the block reward disappears completely. At that point, block makers will be competing to earn only the transaction fees from all of the transactions that are included in the blocks they produce.

Each block is mathematically linked to all previous blocks, forming a “chain” that stretches back to the very first block produced by the network. This chain of blocks is referred to as “the blockchain,” and the network is designed to always refer to the longest blockchain when disputing the legitimacy of a transaction. As more blocks are built on top of a transaction that has been confirmed by the network, it becomes less likely that the transaction will be removed from the record, reducing the risk of a double-spend attack. An attacker trying to double-spend the network would have to be able to solve Bitcoin’s complex math puzzles faster than the rest of the network, which would require more than half of all the computing resources securing the network at the time of the attack. It is essential to the security of Bitcoin that no one party gains such a concentration of power in the network.

Preserving Bitcoin

The pursuit of a decentralized solution to the double-spending problem was the primary motivator that led Satoshi Nakamoto to invent Bitcoin. In the Bitcoin whitepaper, Nakamoto wrote:

A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution… What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party.

Trusted third parties, Nakamoto pointed out, introduce “inherent weaknesses of the trust based model” into payment systems, including “the possibility of reversal” by the trusted third party or an attacker who is able to compromise the trusted third party. It was this understanding that led Nakamoto to come up with the Nakamoto consensus process to solve the double-spending problem using a decentralized network of computers instead of a trusted third party.

Nakamoto designed Bitcoin so that the more computational power there is securing the Bitcoin network, and the more widely that computational power is distributed, the more difficult it would be for an attacker to launch a double-spending attack. With the number of people using the network growing larger every day, the requirement that the distribution of computational power remains decentralized has led to debates about how the Bitcoin software should evolve to accommodate higher transaction volumes. Both change and inaction could disrupt the equilibrium that allows the Bitcoin network to function today and deliver on its key innovation by providing a decentralized solution to the double-spending problem. Increase transaction capacity too much, and fewer computers will have the resources required to participate in the network, concentrating power in the computers that remain. Increase transaction capacity too little, and people may lose interest in Bitcoin as the cost of using it goes up, causing the system to collapse under the weight of its own success.

This is the challenge for Bitcoin developers: to engineer a way to scale bitcoin transaction volume while preserving Bitcoin’s key innovation, for to lose Bitcoin’s key innovation would be to lose Bitcoin itself. This will be no easy feat, and it may require taking risks that would be considered unacceptable or even impossible in other systems, but it is necessary for Bitcoin to scale if it is to continue to grow and become the world’s standard for “peer-to-peer electronic cash.”

When Bitcoin’s key innovation is used as the guiding principle for deciding which scalability proposal to implement, the decision chart looks like this:

Proposal 1 Proposal 2 Proposal 3 …etc
Preserves Bitcoin’s
key innovation
Doesn’t preserve Bitcoin’s key innovation

It is up to the community of Bitcoin developers, miners, and users to experiment with each proposal and fill in the blanks. The proposal that increases transaction capacity the most while preserving Bitcoin’s key innovation is the one that should be adopted.


Email is probably the most popular decentralized messaging protocol. Add yourself to my email contacts if you would like to stay in touch!

Synchronicity

It’s been a while since my last post; so much has happened that I’ve hardly had any time to stop and consider the awesomeness of it all. Towards the end of 2014, I began working with the okTurtles Foundation to help them with a crowdfunding campaign that they’d been planning. I met okTurtles co-founder Greg Slepak after I became interested in his DNSChain project and reached out to interview him for my P2P Connects Us podcast. Shortly after this interview, Greg posted a blog post about how okTurtles needed a fundraiser, and I offered to help.

As I have previously discussed on this blog, identity is an important part of the human experience, and I believe people should have a more secure alternative to the legacy identity systems in use today where someone else is in control of our identities. Whether by a website, an employer, or a government, identities have been controlled by third parties for too long. DNSChain, to me, looked like an opportunity for individuals to break free of that control, and I was – and still am – happy to support that effort.

Around the same time that I started working with the okTurtles Foundation, I began having conversations with my friend Harlan about projects we were working on and daydreaming about what it would look like if we put our ideas together. We started talking about what a “decentralized application stack” would look like, something that could be used to build a bunch of different apps – photo sharing, messaging, collaboration, etc – which could all seamlessly interoperate with open protocols. Harlan called it “the last social network,” because it would make all the centralized, proprietary walled gardens that people mistake for their social networks irrelevant.

This idea excited me, so I got to work jotting down some ideas and Harlan built a website that pulled all the info off of GitHub. We ended up calling the stack “DStack,” short for “Decentralized Stack.” All I did was point to some projects that already existed and said, hey if we put these all together somehow, we could build a lot of cool apps on top which are completely decentralized. We would just need something for user identities, some way to store and transfer user data, and interfaces for the apps. Then Harlan and I both got busy with other projects, and we haven’t really touched DStack since.

Around this same time, in early 2015, I met an entrepreneur named Jay Feldis through my friend Mike Doty, who I knew from the local bitcoin meetup. Jay and Mike had been working on a product they called “CoinBox,” since rebranded to “Bitseed,” which was essentially a small computer that you could use to host blockchain full nodes for mining, staking, or just relay transactions on one of these networks. Jay presented a Bitseed prototype at a bitcoin meetup hosted at the Internet Archive, and I was intrigued by the possibility for Bitseed to solve the problem of low bitcoin node count by giving users an easy way to run their own full node.

Jay and Mike were working with a guy from SoCal named Konn Danley, who was helping them build the ecommerce store for Bitseed, and they just needed someone to help out with writing content for the website. I had some free time so I offered to help. When the website was almost done, I scheduled a tweet to go out a few days later, went back to work writing content for the site, and promptly forgot about the tweet.

Right on time, the tweet auto-posted and ended up going semi-viral, getting over thirty retweets on Twitter while a Reddit post about Bitseed simultaneously shot to the front of r/bitcoin. Bitseed was out of stock within 48 hours. It seemed there was demand for plug-and-play bitcoin full node hardware, validating our initial hypothesis. The Bitseed team then went to work over the next few months fulfilling orders and working on version two of the device.

During the R&D period for Bitseed v2, I was invited to join a new community of decentralized application developers called Blockstack. The mission was to build common infrastructure for the development of decentralized applications, a common “decentralized stack,” if you will. Sound familiar? I had found my tribe! I soon started helping them out, writing content for the website and inviting more people to join in the effort. Summer 2015 has been, for me, the summer of Blockstack.

Today, the Blockstack community is comprised of some of the smartest and most talented developers working on decentralized applications today, growing to include developers from 2WAY.IO, Bitmarkets, Bitseed, Chord, Creative Work, Mine, Nametiles, OB1, the okTurtles Foundation, Stampery, Tierion, and ZeroNet. Developers for these projects have all have faced daunting challenges when thinking about how they will develop their applications – start building components from scratch? Use this or that library? Is this the right tool? Can that software be optimized for building decentralized applications? As Blockstack matures, many of these questions will be answered for developers, who will then be able to focus on building beautiful interfaces and great user experiences instead of worrying about infrastructure development and maintenance.

Using Blockstack, developers will be able to create decentralized versions of popular online services like AmazonYoutube, Twitter, and Reddit, and even a whole new way of publishing and browsing websites, all while costing less in time and deployment costs then was previously possible. Developers will be empowered to eliminate central points of control and failure in their applications, weaknesses which have previously led to Internet censorship, repression of political or social dissent, mass surveillance, billions of dollars in financial losses, and hundreds of millions of compromised identities.

As I recently mentioned on a panel at the American Banker Digital Currencies and the Blockchain conference, decentralized applications change the economics of hacking by eliminating the ability to compromise millions of accounts with one successful hack; instead, criminals will have to hack into every device owned by individuals in a network of potentially millions of people, meaning that the hacker has to work that much harder, most likely making the attack cost more than it’s worth. Combined with payment systems like bitcoin, which can enable microtransactions, do not require identity information to work, and are not subject to chargeback fraud, Blockstack could be used to build a new kind of network that is more secure and more resilient than the web 2.0 that came before it.

For all these reasons and more, Bitseed and okTurtles have both joined the Blockstack effort. At Bitseed, we believe our dedicated full node device is a natural fit for software like Blockstack, and we look forward to working with the community to spread Blockstack nodes far and wide. In the spirit of the Blockstack mission to collaborate on common infrastructure, Onename recently announced they are working with the okTurtles Foundation to merge their blockchain ID projects and help advance the state of the art of decentralized identity technology.

Bitseed and okTurtles will both be participating in the first Blockstack community event, Blockstack Summit 2015 at NYU in New York City on September 12th. This event will bring together over a hundred of the top developers working on decentralized applications and blockchain technology today. I’m helping to organize Blockstack Summit, and couldn’t be more proud and excited about the great lineup of presenters, panelists, and attendees who will be participating in this event.

Blockstack is effectively taking the late-night conversations I had with Harlan from dream to reality, with actual working code and a vibrant, enthusiastic community contributing to the effort. There are still some issues to iron out, particularly around the exact definition of the stack and the governance of this new community organization, all which we plan to discuss and work towards resolving at Blockstack Summit. I believe that if we work smart enough and agree on a shared vision, this community has the passion and talent to make something truly amazing and world-changing. If this sounds like something you want to be a part of, I invite you to join our community and come say hello at Blockstack Summit.


Email is probably the most popular decentralized messaging protocol. Add yourself to my email contacts if you would like to stay in touch!