Initial Coin Offerings (ICOs), MyEtherWallet, and EtherDelta

Update on the EtherDelta point below: Given the recent EtherDelta DNS attack, which took place on the 20th of December, I admit that it is NOT a good idea to use your primary ETH wallet in order to exchange on EtherDelta. It is a much wiser move to have an exchange account you only use for exchanging ETH/Erc20 tokens and then you move your balance out to your main ETH wallet.

The ICO bubble seems to have become popular among crypto currency adopters in the last few months. We also went through some spectacular price action recently, with some crypto currencies losing 30%-50% of their value in a matter of days. Therefore, I thought to spend some time discussing the components that are being referenced in a number of online communities and the unnecessarily complicated paradigm some of them recommend.

Starting with MyEtherWallet: this has been my initial choice for a wallet to hold Ether. Part of the reason is that the Ether wallet application I ran once on my PC never managed to catch up with the public ledger, thus resulting in an unusable tool.

Also, MyEtherWallet is NOT an online wallet, plus the way it operates is very different from the way wallets work within conventional exchanges (such as Coinbase, Poloniex, Kraken, etc.). Let me expand on that and tell you why this is important.
Yes, MyEtherWallet happens to use Web technology (after all it is accessible as a Web page online) but it only requires the online infrastructure for transactions. In other words, you hold the private key of the wallet and nobody else holds it for you: If MyEtherWallet shuts down online services, you can use your keys in a different Ether wallet handler and you’re still in charge of your Ether and Erc20 tokens. Furthermore, and this is really important for transparency and fairness, when you transact Ether or Erc20 tokens with MyEtherWallet you are generating transactions on the Ether blockchain.
How is the above different from an online wallet available in conventional exchanges and why is it transparent and fair? Well, firstly with most other conventional online exchanges you do not own the private keys for your wallets: if you did you could, as example, transact outside of the exchange most of the time, thus avoiding the fees the exchange charges you, going with whoever else is cheaper at any given time or whoever has the best exchange ratio for the crypto currency couple you want to trade. Secondly, transactions within conventional exchanges do not generate blockchain transactions (you can verify this with a blockchain explorer, if in doubt): they use a pool of crypto currencies that the exchanges might have to acquire from the open market at some point. This means that if you buy e.g. a Bitcoin in a conventional online exchange, they don’t need to buy one on your behalf and you won’t need one to transact within the boundaries of the exchange itself. The only time the exchange allocates crypto currencies to users is when users transfer balances out, which generates a transaction on the blockchain: exchanges better have these currencies on the side line for when that happens or users will lose trust in them and avoid them.

Very much like fractional reserve banking, most conventional online exchanges know that not every account holder will withdraw their crypto currencies at the same time, so they only need to keep some on the side lines ready for when somebody transfers out. However, they have no obligation to have enough cryptos to cover the balance that all of its users hold with them.
Remember that crypto currency exchanges are NOT regulated by any financial authority (yet) and at times they wait to buy cryptos until these are cheap, so they also can sell them back to users for a profit: is it surprising that when prices fall and user’s buy demands raise exchanges cannot cope with that? It’s not just about volume: re-selling crypto currencies when their price is low is not convenient for exchanges, as that might mean selling at a net loss.
Essentially, their business model is along these lines: if they don’t annoy too many people they can stay afloat and make a profit with fees on transactions and reselling crypto currencies based on spread (and, possibly, at a premium). Part of such profits go towards ROI as they had to set up the exchange, recurring maintenance costs, etc.

Back to transparency and fairness, here’s my point: most conventional online exchanges can shut down without any notice and run away with the money because funding their wallets with fiat and participating in internal transactions are not recorded on the public ledger! They are not likely to run away as nobody wants to go through a class action, but remember it’s basically a trust relationship, with them working for profit. Things can also go wrong in case of hackers exploiting security vulnerabilities that might exist with some exchanges not so keen to roll-out updates and/or invest in security.

These are the two main reasons I personally do not trust exchanges and only use them for exchanging crypto currencies with other crypto currencies, based on price action. Once I am satisfied with the price action of the crypto currencies I hold there, I transfer them out to wallets for which I hold the private key. I then wait until the next price action to get back in the game.

Moving on to EtherDelta: this is currently my wallet and exchange of choice for Ether and Erc20 tokens that I have been investing during the early stages of the ICO mania. Much like MyEtherWallet, you own the private key of your wallet and you only need the online infrastructure for exchanging, depositing, and withdrawing Ether or ERC20 tokens. Also, unlike many conventional online exchanges, all transactions you make in EtherDelta, including moving funds from your wallet into the exchange account itself, generate transactions on the blockchain.

How do I know that EtherDelta provides me with a wallet that I am not forced to use just within their online exchange? Simple answer: I can use the private key that was generated when I created the EtherDelta profile in MyEtherWallet and transact from there.

When at the start of this post I mentioned an unnecessarily complicated paradigm I was referring to the fact that a number of crypto adopters suggest you always hold your Ether and Erc20 tokens in MyEtherWallet. They say you should only move them into EtherDelta to exchange them for other tokens or Ether, and finally move what you ended up with back into MyEtherWallet! This is not necessary and generates two extra transactions on the blockchain: the funding from your MyEtherWallet wallet to your EtherDelta wallet and the transfer out the other way around!
What you can do is to just create the EtherDelta wallet and keep your private key private. Any time you want to transact out of EtherDelta, such as funding an ICO, you open up your wallet in MyEtherWallet, using the mentioned private key, and transact there with your EtherDelta wallet address: in this way you can choose the amount of Gas to use, add additional data that certain ICOs require, etc.
What I encourage you doing is to NOT keep Ether and Erc20 tokens on the exchange: after your trading activities are over, simply deposit balances back into your EtherDelta wallet.

Let me state this once again: the EtherDelta wallet is fine for transacting outside of the exchange as long as you use it within MyEtherWallet to transact, which is where you have finer control over the details of transactions. What you cannot do is things like funding an ICO straight from your EtherDelta wallet within the exchange itself using the “transfer” option as you don’t seem to have fine control over the details of the transfer.
The reason this is possible is very simple: essentially a minimal wallet is a couple of keys, one private for authorizing transactions, and one public, an address for receiving/sending crypto currencies and tokens. The Ether wallets for which you hold the private key are all functionally identical once you activate them in MyEtherWallet.

Another reason for loading up your EtherDelta wallet in MyEtherWallet, and transacting from there, is that EtherDelta only shows three digits after the decimal dot for your balances. I am not sure whether this can be changed on the EtherDelta page or not, but if you want to see all decimals that you hold there, you are better off opening up the wallet in MyEtherWallet at present.

That’s it folks. Stay safe outta there with the ICO bubble reaching critical mass!

About Luigi Di Fraia

I am a Senior DevOps Engineer so I get to work with the latest technologies and open-source software. However, in my private time I enjoy retro-computing.
This entry was posted in Cryptos, Security, Technical and tagged , , , , , , , , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s