Decentralized exchange is early today but feels like it will be essential in a few years.

First, the difference between a decentralized exchange and a decentralized exchange protocol:

EtherDelta, an early decentralized exchange

A decentralized exchange has some combination of decentralized properties. At the moment this most likely means some mix of 1) on-blockchain trade clearing, 2) ability for users to retain control of their funds, and 3) hosting an orderbook in some decentralized manner (this is currently inefficient with current levels of blockchain scaling). They are mostly frontend apps for now. They may run on a decentralized exchange protocol (see below). In the future they may not be a frontend, but rather nodes in a p2p network which relay orders to others, and have only programmatic interfaces. Early examples of decentralized exchanges with frontends include EtherDelta and OasisDEX. Neither currently use an underlying decentralized exchange protocol. They are small at the moment— EtherDelta does about 2% of the largest centralized exchange’s volume per day.

A decentralized exchange protocol defines some combination of: a common trade order format, a way to reward those who spread orders, and a way to complete a trade when a match is found. Examples include Kyber, 0x, Swap, and OmiseGO.

Benefits of decentralized exchanges

There are a few obvious benefits to decentralized exchanges. First, they allow you to remain in control of your funds. So no risk of the exchange being hacked or going insolvent. This can lead to higher liquidity, as users may be willing to leave orders open on the orderbook for longer when counterparty risk is gone.

Second, they create global orderbooks. Decentralized exchanges are borderless and can serve anyone from any country.

Third, they are low friction. No signup required, just trade.

Benefits of decentralized exchange protocols

Decentralized exchange protocols bring the benefits of decentralized exchanges and add a few more.

First, extending the idea of global orderbooks, decentralized exchange protocols create even more global pools of liquidity. Orders share the same format and can be matched by anyone in any venue, from a p2p relay network to a decentralized exchange app to a text message. If you want to try a demo, check out the 0x order generator. It lets you create a link to a trustless trade you can send to anyone to complete.

Second, decentralized exchange protocols significantly lower the friction of running a decentralized application (dapp). Most decentralized apps will require multiple tokens to work in concert to power them. For example, an app might use a combination of Ether to commit transactions to the blockchain, Filecoin to store and retrieve data, something like Golem to perform more heavy computation, and a token native to the application itself. When launching an app, it’s unlikely a user will have all of these tokens in the right ratios at the right time to seamlessly run it. So a just-in-time mechanism for acquiring tokens is needed. So if you’re designing a dapp or wallet like Metamask, this means you’d be likely to integrate a decentralized exchange protocol, where no third party API or account setup is required.

Further, there’s a category of behaviors which decentralized exchange protocols uniquely enable. This is where things really get interesting.

Consider the case of a smart contract which needs to acquire different tokens to operate. Smart contracts can’t make web-based API calls, so they can’t directly access web-based centralized exchanges. But they can call other smart contracts, so they can directly access decentralized exchanges. As smart contracts become more autonomous and complex, this feels like a must have. As a result, blockchain native dapps and scripts will prefer and often need to use decentralized exchanges. While there aren’t many dapps now so volume is low, there will be lots of “real” (vs. speculative) volume when dapps become plentiful.

dApps accessing a global liquidity pool thanks to a shared decentralized exchange protocol, from 0x whitepaper

Decentralized exchange protocols are also open standards that are easy for anyone to build on and customize. For example, dYdX, a protocol for decentralized derivatives, is being built on 0x. People can create any sort of custom product they want using these protocols which is then freely available for anyone else to trade, use, or modify.

Finally, decentralized exchange protocols can automatically support new tokens immediately. For applications creating and supporting thousands of tokens this will be a requirement. Imagine millions of single day prediction markets with tokens representing each outcome. The same requirement applies when we get thousands of tokenized information feeds around different topics. If you believe we are headed to a world of thousands of tokens, supporting them all natively is critical. And if you are dealing with thousands of tokens, you are likely to want to do it through code rather than manually, which is where the programmatic interface of decentralized exchange protocols is also important.

Drawbacks

There are some drawbacks. Decentralized exchange requires users to manage security of their own funds and tools for that are immature. They currently have low throughput and face the same scalability challenges as their underlying blockchains, so those wanting low latency and high throughput will prefer centralized exchanges for quite a while. They currently offer little to no support for fiat currencies. They are probably challenging to deal with for regulated entities like traditional financial institutions. Finally, the lack of a block reward-like incentive supercharger in decentralized exchange protocols may make their network effects harder to get off the ground than in some other tokens. But most of these drawbacks can be overcome with time.

Zooming out a bit, the future of decentralized exchange is mind boggling. The number and scope of assets that become tokenized will exceed what we see in current financial markets by orders of magnitude. Thanks to decentralized exchange protocols, those tokens will be tradable on unified global markets. And tokens, unlike most assets, allow programmatic interaction with their corresponding systems, so the ability for interplay between the asset, its native system, and other assets is higher than ever. Buckle up.

Thanks to Will Warren, Chris Dixon, Antonio Juliano, and Andy Milenius for reviewing drafts of this post.

Disclosure: I am an advisor to 0x.