On November 1-4, 2017 Ethereum Foundation Development Conference was held in Mexico. Many individuals from the 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 overview 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 efficiently as possible.
They launched EtherDelta in July 2016, 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 EtherDelta?
EtherDelta is 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 a list of trades.
So, what precisely 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.
How do you use EtherDelta?
Additional trading functionality is what enables trade settlement. Every time 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, the 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.
At first, it seems like everything goes through the smart contract, but the truth is that the order book doesn’t. So, the order book is 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 decides 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 if both you and your counterparty have the funds available to complete the trade. If all those things are correct and the order hasn’t expired, then the smart contract will make the transaction.
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 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 is as cheap as it can 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 play the role of a market maker.
Anyway, every other operation 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 primary EtherDelta business model.
How much is EtherDelta used?
In this presentation, Zack showed a few details about the use of the 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 website 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.
What is gas ETH?
ETH Gas Station is a web site that lists all smart contracts and ranks them by how much gas is spent on transactions going through that particular smart contract. EtherDelta is almost daily in the top three places.
At the time of writing this article, EtherDelta was in 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 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 essential to have such customer support to help with adoption and to get users familiar with the platform.
It’s crucial, especially when people actually have to understand how Ethereum works even to use the platform. You can hide a lot of it behind user experience, but sometimes the user has to understand how gas works to figure out what’s going on.
The main reason people are using EtherDelta was 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 tokens. 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 the EtherDelta team after token founders reached out to them and asked for it. The rest of the 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 were many 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 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 made 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 already executed.
We should be aware that Ether delta has an Ethereum network as the bottleneck, which means that when dApps on their blockchain experience mass adoption, ether delta will again suffer from many pending transactions and you will not be able to finish your trade quickly.
EtherDelta is dependent on Ethereum, so the scalability of their exchange will follow the scalability of the 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 ask 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.
What happened to EtherDelta?
EtherDelta is one of the most used decentralized exchange, and it will stay here for a long time. Many ICO-s, after the crowd sale, 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.