0xproject

What is 0x?

At its core, 0x is an open and non-rent seeking protocol that facilitates trustless, low friction exchange of Ethereum-based assets. Developers can use 0x as a platform to build exchange applications on top of (0x.js is a Javascript library for interacting with the 0x protocol). For end users, 0x will be the infrastructure of a wide variety of user-facing applications i.e. 0x Portal, a decentralized application that facilitates trustless trading of Ethereum-based tokens between known counterparties.

What problem does 0x solve?

In the two years since the Ethereum blockchain’s genesis block, numerous decentralized applications (dApps) have created Ethereum smart contracts for peer-to-peer exchange. Rapid iteration and a lack of best practices have left the blockchain scattered with proprietary and application-specific implementations. As a result, end users are exposed to numerous smart contracts of varying quality and security, with unique configuration processes and learning curves, all of which implement the same functionality. This approach imposes unnecessary costs on the network by fragmenting end users according to the particular dApp each user happens to be using, eliminating valuable network effects around liquidity. 0x is the solution to this problem by acting as modular, unopinionated building blocks that may be assembled and reconfigured.

How is 0x different from a centralized exchange like Poloniex or ShapeShift?

  • 0x is a protocol for exchange, not a user-facing exchange application.
  • 0x is decentralized and trustless; there is no central party which can be hacked, run away with customer funds or be subjected to government regulations. Hacks of Mt. Gox, Shapeshift and Bitfinex have demonstrated that these types of systemic risks are palpable.
  • Rather than a proprietary system that exists to extract rent for its owners, 0x is public infrastructure that is funded by a globally distributed community of stakeholders. While the protocol is free to use, it enables for-profit user-facing exchange applications to be built on top of the protocol.

If 0x protocol is free to use, where do transaction fees come in?

0x protocol uses off-chain order books to massively reduce friction costs for market makers and ensure that the blockchain is only used for trade settlement. Hosting and maintaining an off-chain order book is a service; to incent “Relayers” to provide this service they must be able to charge transaction fees on trading activity. Relayers are free to set their transaction fees to any value they desire. We expect Relayers to be highly competitive and transaction fees to approach an efficient economic equilibrium over time.

What are the differences between 0x protocol and state channels?

Participants in a state channel pass cryptographically signed messages back and forth, accumulating intermediate state changes without publishing them to the canonical chain until the channel is closed. State channels are ideal for “bar tab” applications where numerous intermediate state changes may be accumulated off-chain before being settled by a final on-chain transaction (i.e. day trading, poker, turn-based games).
  • While state channels drastically reduce the number of on-chain transactions for specific use cases, numerous on-chain transactions and a security deposit are required to open and safely close a state channel making them less efficient than 0x for executing one-time trades.
  • State channels are isolated from the Ethereum blockchain meaning that they cannot interact with smart contracts. 0x is designed to be integrated directly into smart contracts so trades can be executed programmatically in a single line of Solidity code.