Last year, on November 1-4, 2017 Ethereum Foundation Development Conference was held in Mexico. Many individuals from crypto industry attended that event, and one of them was Zack Coburn, the founder of EtherDelta decentralized exchange and co-founder of FirstBlood.
FirstBlood is a decentralized platform that lets eSports players challenge each other and win rewards using the blockchain for settlements. But, this time he was not talking about FirstBlood, in the presentation he was talking about EtherDelta. He covers EtherDelta’s deployment of the first working off-chain order book with an on-chain settlement. Including scaling, security, user experience, onboarding, etc.
In this article, we will try to make an overview of his presentation and let you know what he was talking about there.
What was behind EtherDelta launch
An idea about EtherDelta came to Zack when he realized that with the ERC20 token standard it’s possible to let anyone trade tokens through smart contracts and there needed to be an interface to let people do that as easy as possible.
They launched EtherDelta in July 2016, that was shortly after the DAO incident and months before ICO became popular. So when EtherDelta was launched, there were only a couple of tokens you could trade. He mentions that he thinks there were only Makers and Digits, so it was a long time ago.
Today, on this platform, you can trade with a few hundred different tokens. Many of them don’t have any liquidity at all, but also many of them have.
What is it?
It’s a decentralized trading platform where you don’t have to trust a central party to hold all your funds, because they are held in a smart contract. In November, EtherDelta was the most used app on Ethereum blockchain and today they have a bunch of tokens with which you can trade.
Also, there is an order book depending on which token you are looking at and there is a list of trades. So, what exactly on EtherDelta is decentralized? Zack said it’s the question he is often asked. The fact is that when you go to deposit, you are sending funds to a smart contract where they are held in such a way that you and only you can withdraw them. You can think of it as a multi-sig wallet, even though it’s a single-sig wallet, that only you can use with some additional trading functionality built into that smart contract.
Additional trading functionality is what enables trade settlement. Everytime you make a trade on EtherDelta, you are sending a transaction to the smart contract and the smart contract decides if the trade is valid. If the trade is valid, smart contract will move funds from you to your counterparty and vice versa. When we say trading functionalities, we are talking about the deposit and withdrawal. You can execute both functions for Ether or any ERC20 token available. It’s not the same to call a deposit or withdrawal for Ether or ERC20 tokens, it’s very different. However, their interface is handling both so the user will not spot the difference. Also, they have a trade function, which is the core piece of functionality and order cancellation is also something that goes through the smart contract.
Ok, at first it seems like everything goes through the smart contract, but the truth is that order book doesn’t. So, the order book is actually an off-chain construct and whenever you trade on EtherDelta you are taking the amount that you want to trade, the price that you want for a trade, and an expired block number. You put all that information in a package, hash it and sign it. When someone else sees your order in the order book and they decide to trade with you, they will submit that order to the smart contract. A smart contract will then check if the signature matches the order, and also if both you and your counterparty have the funds available to actually complete the trade. If all those things are true and the order hasn’t expired, then the smart contract will do the trade. If you don’t want to have your order in order book forever, while making an order you can choose a block number that will come tomorrow so your order will stay there only for a day. However, if you want to have your order placed for a long time, you can choose a block number that will come in a few months or years.
Off-chain order book technology was pioneered by etherOps, which were sort of a precursor to EtherDelta. EtherOps was basically a platform where you could trade options based on the Ether to US dollar price, and it had a similar option trade book technology. Zack mentioned that the idea came from his experience as a former trader. He believes that they should encourage people to add their order, making it as cheap as possible. Because of that, adding an order to Ether Delta it’s literally as cheap as it can possibly be. There is no gas fee because you are not sending a real transaction to Ethereum, and there is also no trading fee, so it costs you nothing to basically play the role of a market maker. Anyway, every other operation that you do on Ether Delta does involve a gas fee so if you are depositing, withdrawing or canceling an order you will have to spend gas. Furthermore, you will have a fee for taking orders. If you see another order in the order book and would like to process it, you will be the party paying the fee for that trade and that is the main EtherDelta business model.
How much is EtherDelta used?
In this presentation, Zack showed a few details about the use of ether delta. So, in that time 90 000 different Ethereum addresses were involved in trading on that platform, and more than 30 000 users visit the web site daily. The most impressive number may be the fact that Ether Delta has processed a total of 3.4 million transactions in the smart contract. It was back in November last year, but today after the hype in December the number probably increased significantly.
ETH Gas Station is a web site which lists all smart contracts and ranks them by how much gas is spent on transactions going through that particular smart contract. EtherDelta is almost every day in top three places. At the time of writing this article, EtherDelta was in the third place. This means that it’s one of the most used smart contracts in the Ethereum blockchain.
The truth is that their interface is not so intuitive to the regular user, so many of them try and quit before even giving them a chance. Their founder said that it’s just the first impression, when people try it a little bit more and figure out how it works they will love it. They provide a chat with their support and guides, so anyone who needs help can contact them and get an answer as soon as possible. Zack said it’s important to have such customer support to help with adoption and to get users familiar with the platform. It’s really important, especially when people actually have to understand how Ethereum works to even be able to use the platform. You can hide a lot of it behind user experience, but sometimes the user just has to understand how gas works to really figure out what’s going on.
The main reason why people are using EtherDelta was the option to trade any ERC 20 token and not just Ethereum. Another reason is that everything is happening in the smart contract. Also, there is no restriction for listing some token. It’s not like centralized exchanges where you have to pay a lot just to get your token listed, on this platform everyone can list their ERC20 token. Some tokens become officially listed, which means that they were added by EtherDelta team after token founders reached out to them and asked for it. The rest of tokens are listed but not official, which means that someone else added them.
What’s going on with development?
You have noticed that before the Byzantium hard fork there was a lot of pending transactions in the Ethereum network. Half of them were Ether delta transactions and that fork helped them a lot. You no longer have to wait up to a day just to finish your trade, that was completely unusable. Users won’t have to experience that anymore. Also, you won’t frequently experience that after you have submitted a trade it turns out someone else already did the same trade, and your transaction failed wasting gas. Many users didn’t notice that Ether delta launched a new frontend and backend of their platform a day after Byzantium. Before the update the order book refreshed every 60 seconds, which was pretty unbearable. Today, the order book is real-time and streaming into the frontend so you should not have situations where you see sale orders that are already executed.
We should be aware that Ether delta has Ethereum network as the bottleneck, which means that when dApps on their blockchain experience mass adoption, ether delta will again suffer from a lot of pending transactions and you will not be able to finish your trade quickly. EtherDelta is dependent on the Ethereum, so the scalability of their exchange will follow the scalability of ethereum blockchain. The team is working hard to follow Ethereum development and to make updates as fast as possible.
Recently they launched a new API, which is using sockets, so it’s real time. That should make it much easier to build something like trading bots on top of the Ether Delta API or something that can work with data and display interesting graphs, and anything similar. There are a few examples on GitHub where you can see some ideas that are using this API to add liquidity.
They are asking the community to start experimenting and using their API to build awesome stuff for the community or to build something for their own trading purpose, like setting or taking orders.
EtherDelta is one of the most used decentralized exchange, and it will stay here for a long time. Many ICO-s, after the crowdsale, add their tokens firstly to this exchange since it’s easy to add and start trading with it as soon as possible. Of course, there are a few problems, like lack of liquidity, but developers are trying to follow Ethereum development to make their platform better and more useful for everyone.