For those unaware, the U.S. Commodity Futures Trading Commission (CFTC) recently solicited input from the public about Ethereum and its primary use cases. The 0x Core Team thought this would be a good opportunity to provide information about how Ethereum allows for the development of 0x and open finance protocols generally. We submitted a letter to the CFTC last week to that effect, which we have reprinted below.
If you’re interested in helping me open source the law and create the first comprehensive source of legal knowledge about decentralized exchange, you can contribute to the 0x Legal Wiki and Legal Library.
Also, we are going to conduct an AMA for you to ask any questions you may have for me. We will curate the most popular questions and publish my responses in a future blog post. Submit your AMA questions for me here: https://link.0x.org/Jason-AMA
To Whom it May Concern,
I am writing on behalf of ZeroEx Inc., a company helping develop an open source protocol for the Ethereum Network. The 0x protocol can be used to exchange any two Ethereum-based assets in a peer-to-peer fashion without relying on an intermediary to custody the assets. We at ZeroEx appreciate the CFTC’s effort to better understand Ethereum, including its capabilities and some of its primary use cases. In particular, we hope to provide the CFTC with information about one significant use case for Ethereum, which has taken on the label of “decentralized finance” or “open finance,” and includes protocols like 0x.
Understanding Open Protocols
0x is an open source protocol. In computer science, a protocol is simply a standardized procedure or set of rules for transmitting data between electronic devices. Describing a protocol as open source means that it is freely available for anyone to inspect and use as they see fit.
By way of analogy, email relies on an open protocol called the Simple Mail Transfer Protocol (SMTP). SMTP allows any two internet-connected computers to send a one-to-one message to each other. We are all familiar with some of the formatting requirements for SMTP such as the need to include a recipient address in the “To” field and the option to include a subject in the “Subject” field. On the other hand, most of us have no understanding as to how these messages actually get delivered between two computers through the internet. For purposes of this response, it is sufficient to know that all those rules are also standardized.
Because SMTP is an open protocol, anyone can conceivably set up their own email server that conforms to the protocol so that they can send and receive emails. The truth is that virtually all of us instead rely on third party applications built by companies like Google and Microsoft to interact with SMTP and other technical aspects of the email network. Despite this reliance on third parties, the fact that email utilizes an open protocol is incredibly powerful. Regardless of whether a person uses Gmail, Outlook, or any other email client, they are all able to communicate with each other without the need to rely on a trusted intermediary as is necessary with messaging platforms confined to the network of a single company (e.g., Facebook Messenger). As a result, recent estimates suggest that over half of the world’s population has an email address, making email the most pervasive form of communication in the world.
In our connected world, open source protocols form much of the important foundation for how we communicate with each other online. Indeed, the internet itself is essentially just a suite of open protocols that allow for virtually every modern computer to connect and communicate with each other in various ways. The architecture of the internet is often referred to as a “stack” because more limited protocols like SMTP are built on top of a more general purpose protocols like TCP/IP. And similar to email, there are open protocols for the design and delivery of webpages (HTTP), the transfer of large files (FTP), the delivery of voice communications over the internet (VOIP), and many more.
The Bitcoin and Ethereum Protocols
Bitcoin and Ethereum are also open protocols. Anyone can participate by connecting to the respective networks and sending data that conforms to the protocol specifications. Although both Bitcoin and Ethereum are distinct protocols and not interoperable, they share many similarities. Most notably, at a very basic level, both protocols are designed to allow network participants to come to a consensus as to who controls certain scarce network resources and to transfer those resources among network participants. This in turn has led network participants to give the native digital resources value. In some ways, the true innovation of blockchain protocols like Bitcoin and Ethereum is the ability to create and transfer value over a digital network.
When discussing blockchain networks like Bitcoin and Ethereum, we often borrow terminology from cash transactions in the physical world such that it is common to describe transactions on the network as involving one user “transferring” a certain amount of “coins” to another user’s “wallet.” Although these terms can be helpful to convey the basic functions of the networks, they hide some of the technical reality. From a technical perspective, a user initiates a transaction by simply broadcasting a message to the network. If the message meets all the agreed-upon protocol specifications, it can be processed by certain network participants into a block on the blockchain, which results in an update to the shared ledger that reflects all valid transactions. In other words, the whole process is about transferring data, and the only reason that data is given real world value is because the network participants agree that it has value.
Conceptualizing transactions on Bitcoin and Ethereum in this way, as entries into a ledger rather than as the physical transfer of a coin, is a better reflection of what is actually occurring at a technical level and, more importantly, is essential for understanding the different capabilities of each network.
The Bitcoin protocol only allows for fairly simple transactions. Due to the protocol specifications (and specifically, the type of scripting language Bitcoin uses), a typical Bitcoin transaction consists of a ledger entry directing the transfer of a set amount of the native digital asset (bitcoins) from one user to another. This transaction message can be written in English as: “Send two bitcoins from Alice to Bob.” There is some ability for more complicated transactions such as: “Send two bitcoins from Alice to Bob if both Alice and Eve sign this transaction.” However, for the most part, the Bitcoin protocol is designed to be limited in its function.
The Ethereum protocol allows for more complex transactions. Ethereum utilizes a programming language that is “turing-complete,” which means that messages sent to the network can essentially be comprised of code for an entire standalone computer program. Once created, anyone is able to interact with these programs so long as they pay a fee to the miners that run the program. Such programs are called “smart contracts,” and the CFTC seems to have a good grasp on how they work based on its recent Primer on Smart Contracts, with one caveat.
The discussion about smart contracts is usually framed in terms of customer-facing applications. For example, the CFTC’s Primer on Smart Contracts uses examples in which a smart contract is tied to a specific transaction, such as a single pineapple grove purchaser buying insurance from a company and automating execution of the contract through a smart contract. However, many of the most promising smart contracts, including the 0x smart contracts, are not designed to facilitate a single specific type of transaction or only be used by one company. Instead, many smart contracts operate as open protocols that are designed to be flexible and purpose-agnostic in order to allow developers and users to determine how best to utilize the smart contract.
0x and Open Decentralized Finance Protocols on Ethereum
With the background above, we can look more closely at how Ethereum allows for development of open decentralized financial protocols like 0x.
The primary use for Ethereum to-date has been as a platform for the creation of new scarce digital assets/tokens. This has been possible in part because of the adoption of technical standards that provide an easy template for anyone to create a smart contract that issues a new token. As with any permissionless system that allows users to easily create something new, some of the creations will end up being more valuable than others. A word processing application can be used to author the next great novel or to create falsified account statements à la Bernie Madoff. Similarly, the assets built on top of Ethereum can and will vary widely in value and utility. Regardless there is great promise that, as the technology matures, there will be numerous valuable tokenized assets representing everything from rare digital collectibles to, potentially, sophisticated financial products like commodity interests that the CFTC will regulate.
As with any item of value, tokenized assets are only valuable to the extent that there are systems in place by which users can exchange them or conduct other forms of transactions. And this is where open decentralized financial protocols like 0x come into play. Currently, most transactions involving the exchange of blockchain-based assets require a trusted intermediary to facilitate the exchange. Although it is possible to send basic payments using the base functionality of Bitcoin or Ethereum, if a user expects to get anything in return for that payment, they must trust the counterparty or go through a trusted intermediary such as Coinbase that can facilitate the exchange.
Open finance protocols help minimize that need to trust a counterparty or third party intermediary when transacting in digital assets. Instead, users rely on the smart contract protocols to facilitate the transaction in the same way they rely on SMTP to deliver their email.
In particular, the 0x protocol establishes a technical standard for the exchange of any two Ethereum-based assets. All trades through 0x are peer-to-peer and settled on the Ethereum blockchain, and users retain custody of their private keys throughout the entire process. From a technical standpoint, 0x consists of a suite of smart contracts that will execute any order that meets the specified order format schema, which consists of not much more than the addresses for both sides of the trade and amount of each digital asset to be exchanged. The simplicity of the protocol means that it can support virtually any form of exchange, whether it be two friends trading digital baseball cards or two regulated financial entities trading Ether for some other tokenized asset.
As with SMTP (the email protocol), the 0x protocol is designed primarily as a platform for other software developers. It is not intuitive or easy for a typical user to interact with Ethereum smart contracts. Instead, developers must build websites and other user-friendly interfaces before the average user will be able to interact with a smart contract protocol like 0x. The simplicity and open nature of the 0x protocol along with the globally-distributed nature of Ethereum allow for third party developers anywhere in the world to decide how best to utilize the protocol to create a product that users may want. There are already numerous independent third parties in several countries building user-facing projects that integrate the 0x protocol, and we hope there will be many more in the future. Our goal is to help make the 0x protocol an important infrastructure layer for what we see as an emerging token economy.
The 0x protocol and other similar open financial protocols are still in the very early days of development. The potential for broader adoption of these protocols will ultimately be tied to the efforts of many others working in the industry, including those working on issues such as easy private key management, blockchain scaling, and the development of higher quality tokenized assets. That being said, as these other issues are addressed and development of the protocols continues to improve, these protocols have the potential to provide numerous benefits when transacting in tokenized assets, including:
- Improving security of user’s assets by removing the need to rely on a trusted third party to custody assets during transactions;
- Ensuring greater privacy for transactions by limiting the amount of information that needs to be exposed to multiple third parties;
- Creating provably fair market structures to offer greater protection to all parties involved;
- Fostering transparency and reliability by making all the code responsible for facilitating transactions open for inspection and improvement;
- Creating new and innovative marketplaces that serve the needs of those unable to access current aspects of the existing financial system.
Many others have written more detailed and eloquent pieces explaining the importance of, and benefits associated with, open protocols. We highly recommend reading “Open Matters” by Peter Van Valkenburgh of Coin Center and Chris Dixon’s article on Wired.com called “Blockchain Can Wrest The Internet From Corporations’ Grasp”.
As should be obvious, we are excited about the potential for this technology. We are also realistic that we are in the early stages of development.
It should also be noted that the 0x protocol is designed to work on top of Ethereum because that is where most of the developer activity is occurring and there are network benefits to using the Ethereum Network. There are other similar blockchain projects being built as well as cross-chain solutions that work with multiple blockchains. We intend the 0x protocol to be blockchain agnostic, and it may be the case that 0x can be modified in the future to work on multiple blockchains or even across different blockchains in the future.
The Role of Ether
We recognize that the CFTC is likely most interested in understanding the role that Ether, the native token associated with the Ethereum Network, plays in allowing for open decentralized financial protocols like 0x. As the CFTC’s RFI suggests, Ether is often described as the “fuel” used to compensate miners for maintaining the Ethereum network, including by signaling which smart contracts should be triggered by nodes in the network. This is an accurate description. Ultimately, any user that wishes to interact with any smart contract must pay Ether as a fee to miners (in industry parlance, this is called the “gas cost”).
However, Ether also plays other important roles beyond just as a form of compensation to miners. Indeed, most exchanges conducted by the 0x suite of smart contracts involve the exchange of Ether as one of the assets. For example, there are customer interfaces for 0x that allow one person to trade digital collectibles such as CryptoKitties in exchange for Ether. Ether used similarly in many other open finance protocols. For example, Ether is currently the only asset that can be lent to the smart contract developed by MakerDao that in turn distributes DAI as a stable coin. Ultimately, there is nothing inherent in Ether’s structure that makes it only usable for one purpose, and as a result, it can act within the Ethereum network like a form of currency, or commodity such as gold, or potentially in new ways that have yet to be developed.
We appreciate the opportunity to provide information about what our team is working on, and we hope that this has been helpful as the CFTC attempts to further understand Ethereum and the Ether token. The explanation above merely scratches the surface of open decentralized financial protocols, and we hope going forward that we can continue to be active participants in respectful and thoughtful discussions aimed at understanding the technology.
Strategic Legal Counsel, ZeroEx Inc.