Bancor Is Flawed
hackingdistributed.com
hackingdistributed.com
This whole ICO craze is going to hurt Eth in the long run, just like fraudulent campaigns hurt Kickstarter. People need to realize those ICOs are completely overhyped right now, lacking anything worth investing in the most cases.
I agree with you wholeheartedly though sir. Great article. It's just like the crazy funding rounds Silicon Valley startups have these days!
https://twitter.com/bancornetwork/status/876934646344404992
since they mentioned FUD, it sounds like they're afraid Gun's post may affect trading of their token.
Yes, it works out quite nicely all round. They, by taking his ability to move the market so seriously, grant him social proof that can't be obtained any other way. He, very magnanimously, walks back his most serious attacks, to wit: their team are not credible, and the problem they want to address "is not a real problem". And anyone else who wants their token to pop* will know who they'd better have inside the tent.
* Bancor's token becomes tradeable shortly, see https://blog.bancor.network/token-activation-update-285ba819.... It would have been tradeable today, but they have some last minute debugging before their smart contract is ready to "automate Yellen", as Sirer puts it. It's hard to begrudge them this, having seen how Yellen performs in the unpatched 1.0 release.
Exactly. For every ICO that pops up, ask does this use case require a special token? Often ether would be sufficient or even preferable because of greater liquidity.
Exchange between digital assets can be easily facilitated with something simple like Prism: https://info.shapeshift.io/blog/2017/05/21/introducing-prism...
They claim that they will be taking the other side of customer bets on portfolios initially, and hedging by buying the underlying. later, they envision other market participants will short coin portfolios.
With CFD's upside and downside is capped. so neither party is investing, just betting.
Is the Tel Aviv binary option crowd somehow involved with this? Having been closed down in binary options, they've been pushing "contracts for difference" and "ladders".[1]
one problem is that they may be relatively expensive because they require "gas" to execute but on the plus side they can't be shut down.
Creating a smart contract for this makes as much sense as a smart contract for betting on the next US president: we decide the outcome of the contract by the result we feed into the contract, since the contract has no way of knowing this itself. Of course, we can always use a group of trusted intermediaries, but when doing so the decentralized property is lost, and we might as well ditch the underlying blockchain, since it doesn't provide any security benefits.
The whole system doesn't need to be wholly decentralised or trustless - it just needs to be better than the current one all in all.
The problem is how to reach consensus. Who decides which intermediaries have the correct view of asset prices? Ultimately, these parties will be the ones who decide the profits and losses of the participants. How is that an improvement over existing systems?
How do you propose solving the problem that parties with short positions in CFDs will want intermediaries who claim the asset price is lower than reality, and parties with long positions prefer claims of higher prices? How do these two parties -- who may earn immense profits from colluding with intermediaries -- reach agreement?
The whole security of the system boils down to what some intermediaries claim is the truth, and this fundamental problem is hand-waved away while pretending "blockchain technology" does anything to solve it. It's not an improvement over existing systems, it has exactly the same weaknesses (colluding intermediaries), except that it runs on top of a blockchain which makes no difference except for implementation complexity being greater.
You could use credible parties like Yahoo Finance as the intermediary. Town Crier[1] could be used to provide a verifiable Yahoo Finance lookup, that could then be plugged into the smart contract.
If users of the system agree to a group of intermediaries before entering, a blockchain isn't used to reach consensus on which intermediaries to use, it just acts as the settlement layer. Whenever someone wants to cash out, the intermediaries that were agreed upon before entering -- whose public keys are in the contract on the blockchain to which funds were sent -- will just sign a transaction that releases whatever value they find appropriate. This isn't using a blockchain to reach consensus on anything CFD-specific, it just uses the token on it in as the numeraire, so Bitcoin would work just as well (or any other cryptocurrency with sufficient liquidity).
In essence, there's zero difference between 1) holding the private keys which can move funds around on the blockchain and 2) being the supplier of external data (real-world asset prices), which determines the outcome of a contract. In both cases you determine who's paid and who's not, either by signing a transaction with your private key or returning an asset price (which, in turn, decides who's paid what -- the profits and losses of all participants). Only if we can prevent intermediaries from entering into the system on their own, such that they can be paid by the contract, do they have less power when only supplying asset prices (since they wouldn't be able to get paid, but only change the distribution of funds sent to others), but how do we prevent that?
If the intermediaries are not agreed upon before entering, how will a blockchain solve consensus? What algorithm chooses the intermediaries to trust, and why would people trust that the right intermediaries are chosen?
To do the things the intermediary is not willing to do.
To use the Yahoo example, Yahoo is willing to generate a public feed of financial data, but it is not willing to sign a cryptocurrency transaction. We can leverage the credibility of its public feeds to create a financial application that is trustworthy as long as that feed is trustworthy.
So to generalize my point: a blockchain application can be built around a trusted feed generated by a reputable party that would not be willing to agree to be a trustee of an application, or if they were willing, would not be as trustworthy in that role as they are in their role as the producer of the general-purpose feed.
> Upon creation, a unique smart contract tracks the value of her three assets, and holding her collateral.
How does the smart contract track that value, in a manipulation- and tamper-free way? The only way seems to be through data published by centralized exchanges...
Also, dollars.
> Exactly. For every ICO that pops up, ask does this use case require a special token?
Well, creators of Ether have already got their share, didn't they? What should be the motivation of "dApp" developers in your opinion if they can't earn the way Ether developers did? Do you expect them to use Ethereum for the love of humanity? Because, you don't really need Ethereum to create decentralized applications. There were decentralized (p2p) forums way before the crypto movements. There is a decentralized (p2p) search engine that works just fine without Ethereum. If not ICO, why would I pay the Ethereum network to deploy my contract, develop an app, promote it, and then convince my users that they should pay the network to use my app, too (assuming that I hold 0.0000 of Ether and don't care about the rise of its price)?
If you want to enforce the same properties that the Ethereum network can, but you don't want to use anything associated with the Ethereum network, then you need to write something similar. And it turns out this takes work.
So you could either:
(1) write your own separate distributed cryptocurrency system, which is not exactly a "crush some Red Bull and hack it in a weekend" project; or
(2) use Ethereum, which already exists.
As you don't have to do it yourself but you still benefit from it, some people like (2) instead of (1).
You don't need "cryptocurrency system" for most of the cases, do you? E.g. you don't need to solve double spending problem if all you want is a decentralized forum / messaging app / video chat. I'm not a decentralization expert but it seems to me, DHT has worked so far. And its advantage over Ethereum is that users don't have to buy some currency and pay for every message. They subscribe to the content they like and support it by hosting it. It's easy as that.
You need Ethereum if you want an easy ICO, but if it's a bad thing now, then I don't know why would anybody use it.
I fail to see the reasoning behind why it takes work, or considerably more work to just write a new cryptocurrency from scratch. Basically you can just fork bitcoin or any existing cryptocurrency code, and do the changes you want to do.
In fact, as far as I understand, many organisations are for example taking ethereum code, and then just running private version of it, with their own token & mining.
The actual reason to run your ICO on ethereum network is that you get the easy money from the ethereum investors, who have gotten ridiculous gains from the ether price appreciation and are spending it accordingly. At some point the stupid money will run out.
Ether at ICO sold for 30 cents and raised around $30 million for development. Compare that budget to Mozilla or similar organization.
It's kind of a like a hybrid between an IPO and a Kickstarter, but:
1. With kickstarter, the reward has roughly constant value with respect to the total funds raised;
2. With an IPO, the supply is predetermined. While the cost per share may be astronomical by the time you get around to buying in, it's clear what fraction of the offering you're purchasing.
ICOs tokens typically have:
1. value inversely proportional to the total funds raised; and
2. (since supply is not determined until the end of the ICO in many cases) no clarity around what fraction of the offering an investment actually purchases until the offering is complete.
This leads to some pretty crazy situations, Bancor being the most recent and most notable example, but in general, it just doesn't really lead to very sane practices.
---
This is precisely why IPOs are conducted the way they are, with investment banks pre-purchasing a predetermined number of shares just shy of what they expect to be a fair market value, handing that money to the company, and then selling those shares on the open market.
[1] http://www.newsbtc.com/2017/06/06/bancor-ico-starting-june-1...
"raised a record $144M" and "raising 9-digits cash"
Which isn't true. They raised 0 USD, and selling whatever the equivalent of ETH they did raise would likely crash the value significantly, such that they'd never see $100M+.
If they sold slowly, and if ETH value stayed relatively stable during that time, and if the exchanges were reliable for large, frequent withdrawls, and if all of this didn't raise huge red flags with the banks and governments in their jurisdictions, there might be something to it. That's a lot of ifs.
Also, Bitcoin had a roughly three-year lull; it's entirely possible that another such lull could happen after you buy.
Half the people who attended these were idiots looking to make easy money for no work. A quarter were guys who had gotten into bitcoins when they were cheap and had decided that they were geniuses, and not simply fortunate. The first half loved listening to these guys.
The last quarter were actually interesting people, into crypto and crypto-currencies, doing cool stuff. And some of them were into this thing called ethereum. Sometimes there were talks with that Vitalik guy.
And I did not buy even a single coin.
It was a bad investment. It was some random guy at that weird house on Spadina Ave who said he was making a better Bitcoin. Sane people do not give money to schemes like that. Those crazy idiots who wanted to get rich for no effort, let them throw their money at this ethereum thing, just like they'll throw money at every pyramid scheme and the Toronto housing market.
I think the one thing that was clear to me is that this Vitalik guy was some kind of genius. But, still I didn't buy/mine.
I wish my coding skills had been better at the time and that I had looked into the code (and not just the whitepaper which is kinda like a fairytale to me) and realized its value.
It's really easy to look back and say, "I could have been rich!" But when I catch myself doing that, I try to look at the basket of equivalent choices at the time. I'm sure there were a zillion random guys in weird houses proposing schemes they thought were brilliant.
It's the same thing with startups. There are a million people who think they'll be the next Jobs, the next Zuckerberg. Approximately one of them is right. The people who come up with that guy will, exactly as you say, decide that they're geniuses, not just lucky.
I try to look at the basket of equivalent choices at the time
That's exactly what you must do.I just need another $10,000 :p
It's impossibly unlikely to capture all the gains, but you still can win. Even if it's not 30x+. I'm okay with anything that beats regular investment vehicles over time. Win some instead of griping about all that you could have won.
Kind of regret that decision now :P
But in the end I still don't trust all these tokens. None of them have so far been able to make me understand what they hell they're supposed to do (in terms of benefit to me, other than shitloads of money).
The first one that will be a success.
These things happen. It's fairly random. The main thing I learned is never to confuse financial success with merit. (Obvious, but it sunk in more.)
I still do regret the $50 I paid to crowdfund App.net, the Twitter competitor that was run by person with strong business sense, launched at a time when it was clear Twitter had no business plan and was killing its existing customer base and would be dead soon, and widely praised on HN. That was a much surer bet than this weirdo questionably-legal currency that only a bunch of nerds with heterodox view on finance were interested in.
I also definitely think this tech will mature and interesting things will come of it. That is already happening, but, for most people, it is very hard to see the good from the bad when 'investing'. I did do a few ICO's because I wanted to try (again, with profit so no risk) that I found interesting and I'll just see if that was easier or harder coin than trading.
Back then I evaluated Ethereum and decided against it. That is all there is to it. I don't know how justified the current hype is.
How rich would you have been - 3000%, so 30 times - would you have invested 100000$ in Ethereum, yielding 3 Million $? Or more likely just 1000$, yielding 30000 - nice money, but not really rich?
Think I'll print it and stick it to the wall somewhere.
3000% does seem somewhat meager.
Not suggesting its wise to do so, but it keeps things in perspective.
I understand why futures markets exist for e.g. oranges (seasonal production cycles) and jet fuel (to avoid storing a years' worth yourself). But currencies are available 24/7/365 and have zero storage cost.
2) Currency futures markets exist to allow you to bet that the value of the currency will decrease, by offering to sell you the currency at price below the current market rate in the future.
In markets where there's no easy/legal way to bet that prices will decrease, asset bubbles are common, as "bulls" bid up the price, and "bears" just sit on the outside waiting for the bubble to pop.
If bears could bet that the value would decrease, this would lower the price of the asset today. In this way, price signaling can allow the market to reach an optimal shared opinion about the "true value" of an asset.
There are a lot of cryptocurrency bears who think that the long-term value of Bitcoin and Ether are approximately zero, that cryptocurrencies are in an asset bubble, and that this is wasting valuable time and money that the economy should spend on other things. By betting against cryptocurrency, bears could help to end the bubble in a safer and slower way.
(Or so they say. Sometimes future markets can exacerbate price instability when the whole market behaves irrationally.)
(The other reason futures markets exist is to allow people holding the currency to reduce ("hedge") the risk that the value of the currency will decrease. Thus they can make small bets against the currency, and if it rises, they'll still make money, and if the value falls, well, at least they'll win their bet.)
Instead, I could have just bought the 0.79 GBP immediately and then waited 3 months, and then I would have profited even more: 0.79 - 0.7 = 0.09 GBP.
What does the existence of the futures market allow me to do that I can't already do in this scenario?
My point was that in cases where production is cyclical or storage fees are nonzero, it might be difficult/impossible to trade on the spot market, or it might be prohibitively expensive to hold the item yourself. But currencies don't have either of these problems.
Additionally futures aren't just for "betting" they are also for offloading risk. For example a company might expect an sale in another currency and might want to "convert" that earlier to offload the risk of making another purchase in a different currency.
2. Holding spot currency position is not "zero storage cost", you need to pay daily interest - futures has this built-in in their price.
3. Futures are leveraged
4. Futures contracts are standardized - which makes finding counterparty much easier and allow market makers.
5. Futures traded on regulated exchanges (CFTC in US), unlike spot FX - which is more similar to how crypto exchanges operate.
What's the point in splitting hairs. A future is a standardised form of a forward contract, generally so they can be traded more easily. It doesn't affect the underlying financial concepts.
Do the calendar spreads, implieds, volatility, high performance matching engine, and market makers.
Existing exchanges have been amazed to find out that these 'hacks' aren't even the end of the money train, you can create derivates of the hacked money to let customers re-deposit and trade even further! It is an amazing new world of finance!
Leverage.
So I had a look at live data for an example. As of writing, 1GBP = 1.28 USD. Let's look at some example scenarios, assuming I believe 1 GBP will be worth 1.41 USD (+10%) in 3 months and want to make as much money as I can with a $100k investment.
- I buy USD from a regular bank or currency exchanger and wait 3 months. If the price goes up 10%, I make $10k. If the price goes down 10%, I lose $10k. If nothing happens, I lose nothing.
- I buy GBPUSD futures contracts. I need $7346.25 margin to open the contracts and $5877 to maintain them (per https://www.interactivebrokers.com/en/index.php?f=marginnew&...) and I control 62500GBP ($80k) per contract. With $100k, I can buy 13 contracts and control $1.04M. If the price goes up 10%, I make $100k. If it goes down 10%, I lose $100k.
And then, for fun:
- I buy 86 options for a GBPUSD futures contract at a strike of $1.28 for $99k. If the price goes up 10%, I make $593k. If the price is at ~$1.30, I lose nothing. If the price is below $1.28, I lose $99k.
I'm no expert on futures however so there might be something wrong here, though the answer is definitely leverage.
We can trade GBP/USD between each other with as much leverage as we like without any future time conditions. All we need do is agree to pay each other the difference in value as the price changes, multiplied by our agreed leverage.
At some point, one or other of us can close the deal and settle the outstanding amount.
If you can't strike a deal directly, you go to an exchange or clearinghouse of some kind that will introduce buyers and sellers. Once again, leverage can be created without any forward or future.
Forwards came first. You would go to an investment bank tell them you wanted to hedge whatever you had and they would write up the contract between you and them. Obviously there is no secondary market for these things and two contracts could have different terms in them.
So futures were invented. They standardized the underlying product (e.g. a type of wheat, a particular duration on bonds, a fineness of metal, etc), the expiration date, the delivery location (or financially settled), and the size. Now since all these contracts are fungible a market can be formed to trade them back and forth.
Those are basically the only differences.
I see how the second case (waiting six months to convert USD to CAD) involves currency risk. But I don't understand how the first case involves currency risk. If I converted some USD into 1.3MM CAD today, and then held it for six months before paying my vendor, what currency risk did I incur that is eliminated by the futures contract?
An FX future has the same currency risk profile as exchanging now. What is different is you trade on margin, and you have interest rate risk in a different currency.
People who actually want to fix an FX rate in the future would use a 'forward', simply a contract to exchange at a later date. Again no change in FX risk.
The true hedge is an FX option, where you can lock in a price (for a fee) yet still back out if you want to.
You know what the cost of carry is up to the futures expiry date, so you use that (non arbitrage) to set the adjustment for the futures price.
So then when you trade the future, you're not in need of settling some item (currency, bonds, cows) against some payment each day.
Currencies are indeed available each day, and are easily settled each day, but there's a number of reasons why you might want the future:
- If you settle each day, your account PnL depends on interest payments. With futures, it's just the difference between the prices traded. So easier to account for.
- Futures tend to be cheap to trade. Depends on your agreements. You have to pay interest on one side and receive it on the other side if you settle currency. And guess what, your prime broker gives you a crap rate on both!
This would essentially be a bitcoin loan - I've never heard of such a thing, but i don't follow them very much (I do work in finance and trading though).
Literally, what is the bitcoin interest rate?
Is there even enough volume ooh these lower tier exchanges to support shorting the spot on them?
EDIT: i didn't find the interest rates but i did see that Bitfinex offers the ETH-BTC cross which is good so somebody can bet the relative value. I still think a futures market weighs be really useful for hedging purposes and reduced shorting fees and slippage.
And the way they describe how they automatically choose the loan with the lowest rate they could pick one where you need to return BTC in 2 days even. That sounds horrible.
'We use the average price of 5 difference exchanges to calculate the current BTC price' - then one of those random exchanges goes haywire and BTC trades near 0 on them for a few seconds. Ooops, the average BTC price just dropped 20% so we had to close your position due to lack of margin. Sorry! (This has happened several times in the past few months, for instance...)
You have margin requirement and when you no longer have enough in your margin account your position is liquidated so you don't wind up losing more money than you had put in.
https://www.lykke.com/city/blog/what_is_lykke_forward
The original, LKK coin, is essentially a representation of the company's shares. LKK1Y is a derivative which you can stake and receive the same amount of LKK in 1 year time.
Do note that as of now, Lykke wallet is unavailable in the US as they are still working out the regulations.
Basically, people trading their ETH paper gains as a diverisification play.
Oh. This suggests that ETH is way overvalued and illiquid.
We're about to find out how liquid Bitcoin really is. The Mt. Gox bankruptcy trustee has 202,185 Bitcoins and may have to convert them to yen.
A more likely use case for Bancor is some SMB (store/restaurant) or content creator issuing tokens to be used for membership reward/points or for voting on a new video/project idea, not for Augur/Steem/Gnosis 2.0 to issue an ICO.
If you take this gross assumption of the equation, his whole argument about slippage or "trailing the market", etc are gone. You're issuing some small time tokens. There no reason to always buy back from the market and there are no big players trying to "deplete your reserve." The author makes it sound like I'm selling some popular cryptocurrency at a fixed price and am being left to bleed dry when in actuality, I'm issuing my_random_token for friends and customers.
I didn't review the code but if what he's saying is correct, there is a reason for alarm regarding their reimplementation of basic arithmetic functions(!!!) and user overpaying.
By trying to make this into a laundry list, it comes more off as a FUD argument, very similar to what Bitcoin maximalists were doing post the DAO hack to Ethereum.
(Disclaimer: my Bancor holding is about 0.5% of my total Crypto portfolio).
Why would a restaurant use this for membership point when a glorified Access db would work just as well?
And then we'll take it higher!!
And for the record, an SMB was just an example of a small-time issuer as opposed to a massive ICO worth millions. But the fact is, we continue to iterate and rewrite things in technology. Why Dropbox when I have a thumb drive? Why CRM/Salesforce when I have a Rolodex? Why noSQL when... SQL? No one is saying blockchain technology will cure cancer or is imperative in bringing about a change.
Using Bancor does not mean that the SMB is doing this all from scratch. After all, how many restaurants do you see implementing their own POS system with in-house engineers? And to be honest, how airtight do you think a mom and pop shop's MS Access DB backup strategy would be? I would trust "food with blockchain" over "food with please-don't-die-on-me production DB."
OK so use Google Sheets instead of Access? Or anything? I don't get where the distributed, trustless, properties of blockchain tech make any sense for a centralized DB with only one source of truth (the restaurant).
That doesn't mean people can't or shouldn't explore in a yet-another-noSQL DB, a new MVC framework, a new low-level language, etc. This hypothetical store doesn't have to use blockchain technology, but it could and reap the benefits or potential harms of doing things the new way.
I question if their massive ICO was primarily backed by the marketing promise of restaurants issuing their own currencies.
Even if that were the case, I'd still be concerned if this protocol can only be safely used for small-time operators, while any token with any semblance of scale on the chain is thoroughly gameable.
On a side-note, Emin Gün Sirer made a lot of noise about re-entrancy exploits present within the DAO in the months preceding the hack ( http://hackingdistributed.com/2016/05/27/dao-call-for-morato...), so I wouldn't take his concerns about the Bancor codebase lightly, and may even be inclined to give him the benefit of the doubt vis a vis FUD.
But independent of intent, the logical arguments about trading phenomena make sense, and what's worse, the code smell is very, very real. If you want to see the source for that screenshot, here it is in all its gory detail:
https://github.com/bancorprotocol/contracts/blob/f198f7d6658...
Oh, they say it's exposed for unit testing! Let's grep the codebase for fixedExpUnsafe... nothing. Oh, and it's in the same file as the business logic; the only test for that file is for the end-to-end logic. "Forget the unit tests, the integration test will catch it." Yeah... Not the type of code I'd bet my business on.
the other option is a betting platform where people just take side bets, but counter party risk is substantial and your short is limited by the trade collateral and vice versa for your counterparty taking the opposite bet.
Letting pessimists enter the market rationalizes things that much faster. For something like BTC, the market is actively pressured to stay irrational because any non-holder who expects prices to drop can't enter - you only play if you're bullish.
I've tried getting into ethereum, and am super interested in programming numerous smart contracts, but have showed up late to the party, so all the docs are in varying levels of accuracy (out of date) and it seems like i have to download a million and a half heavy applications just to participate. Red flag. It seems weird that company with so much interest and participation doesn't have proper documentation.
Is there a way to go short; are there options markets; is it currently possible to bet against the price of a smart-contract like Bancor?
Poloniex has margin trading and shorting.
Bitmex - up to 100x leverage.
They look so obviously overpriced - it is difficult for me to understand why people are buying into this.
Bacon is perfect.