2015-02-24

Bitcoin block limit - trade-offs and outcomes

The discussion on the Bitcoin block limit is nothing new. A number of people have weighted in on this subject, myself included almost two years ago. So while the topic is not new, I still hear it being brought up every now and then. Since I came up with a novel approach to dealing with this issue that doesn't get mentioned that often, I figured I would make a blog entry on this subject.

But first, lets discuss what the problem is and what are its implications.

The problem


As some of you know, the Bitcoin blockchain was initially designed to have a limit of 1MB per block. This was done due to prevent the bloat and abuse of the network. However, if this limit is strictly enforced, the Bitcoin network would only be able to support a small number of transactions, about 7 transactions per second (compared to Visa's 2000 tps). Clearly, this won't be enough for a payment network that is supposed to replace the banks and credit cards. Either we will increase this size in some way, or we will see Bitcoin become a much different network.

The outcomes


Depending on whether the block size is increased or not and by how much would dictate how the Bitcoin network is shaped. Lets look over some possibilities.

Block size remains rigid


In this approach, the 1MB block size is rigid and remains unchanged. When we start hitting this limit, the miners will be able to pick and choose which transactions to include in the block. Rational miners will pick the transactions that pay them the most in fees (proportionally to their size), thus there will be a bidding war to get into the next block.

Due to the increased cost, fewer people will opt to send transactions themselves, either leaving Bitcoin entirely, or by performing some off-chain settlement. Wallet services such as CoinBase could become more like banks - offering their customers settlement with other people on their platform and other platforms that accept off-chain settlement.

In this scenario, Bitcoin becomes a settlement method for large bank-like wallets and large corporations.

Block size limit is abolished


A polar opposite of the previous approach. The block size limit is completely abolished and miners can create arbitrarily big blocks. While anyone can create a transaction for cheap, the network would soon be attacked by malicious entities trying to push the limit. Someone could decide to generate a 1GB block for example and cause the network to grind to a halt while synchronizing.

Quite quickly running a full node becomes a luxury or a business. We see more reliance on Stratum-like supernodes. The functionality of the network is dictated by them.

In this scenario, the Bitcoin network turns into something like the modern Internet - only big players can access it directly and everyone else has to rely on something like Bitcoin-Internet Service Providers.

The middle-ground


As with all things, we will probably see some middle-ground. We will probably have some limit in place but it will be systemically raised over time as the network grows. As to how it will be done, we will see.

That being said, I would like to describe an idea I had awhile back as to how to remove the block limit, while still disincentivizing the miners from creating large blocks.

An economic solution


The miners have a financial incentive to include any transaction with a fee into the block they are mining, since the cost to do so is negligible. Now, if the miners had a cost associated with adding those transactions in, the problem would solve itself. The miners wouldn't be able to include an arbitrary number of transactions in, while they would still be flexible to include a large number of well-paid-for legitimate transactions.

The question is - how do you make the miner pay? Obviously, you can't just enforce a transaction fee that would go back into the block. This would lead to the miner paying themselves in bogus fees.

There are two approaches to take - either the miner can pay in Bitcoin, or in their hashing power.

To pay in Bitcoin, the miner would have to destroy some BTC permanently. This would be the only way to ensure they are actually paying the fee. This approach would mess with the distribution curve of Bitcoin and decrease the amount of coins in circulation. Generally, a lot of people wouldn't like this approach and it's not too elegant.

To pay in the hashing power, the difficulty of a given block would have to scale with its size. Say, up to 1MB would be 1x the expected difficulty, 2MB could be 2x, 10MB 10x, etc. This would mean that only the transactions that pay proportionally more than the current block reward over 1MB would be profitable to include into the block. The relation could be linear, quadratic, or any other shape as needed to create work-reward ratio. As such, while there wouldn't be a strict block size limit, the miners would most likely be mining 1MB blocks until people would be paying enough to noticeably subsidize the miners for their effort. All in all, a more elegant solution.

Conclusions


The problem of the Bitcoin block size limit will have to be addressed in the coming years. If the problem is properly handled, we could see the network continuing to function as normal. There are many approaches that can be taken to address this issue.

2015-02-18

The rise of fiat-denominated cryptos

Bitcoin is a great invention. It allows people to transact with anyone in the world in under an hour, requires no personal information and is secured by the power of math rather than people with guns. That being said, Bitcoin and a number of other cryptos bring with them the "issue" of being new currencies, not tied to anything else. While we can argue pretty much indefinitely whether that is a good or a bad thing (I personally see it as a backup in case the governments start failing and we need a new gold standard), it is unavoidable that we will see new services and cryptos that take a new spin on this "problem". We might very well soon see the rise of fiat-denominated cryptos.

Hedged accounts


Probably the simplest transition from a Bitcoin into a fiat-denominated crypto can be achieved using hedged accounts. Last year we've seen Locks from Coinapult, and this year CoinJar introduced their Hedged Accounts.

The concept is quite simple - you deposit your bitcoins into a wallet service that enables hedging and you lock your coins at the current price to whatever the service provider offers. They, in turn, promis to deliver you the exact value of the hedged coins based on the future market price. So if you lock your coins to $1, you will receive $1 in the future no matter whether the coins appreciate or depreciate. Moreover, since they provide the service, they get to dictate the current exchange rate, spread and so on.

While you can expect most of the companies that provide this service to actually trade the Bitcoin in and exchange them for the commodities they are hedging, or at least take some options on futures, you should be weary of more risky ventures. I have seen someone trying to set up a company offering hedged accounts without doing any conversion on the grounds of "we believe Bitcoin will appreciate in value, so we will be always solvent" (before they were laughed out of the conversation).

Moreover, I am yet to see anyone offer a hedged account that allows its clients to treat the hedge like an actual, spendable currency. In other words, even if I lock my 1BTC to say, $100, I can't send someone else in the same network exactly those $100 without unlocking my BTC, sending the BTC over and re-locking them and losing money on two conversions. Similarly, I am yet to see a hedging option that allows me to withdraw the underlying currency (so in our example - cashing out a $100 bill rather than some BTC).

All in all, hedged accounts appear like foreign-currency denominated accounts in some banks - while you can ask the bank to hold the currency of your choice, they will dictate the exchange rate and terms by which you can redeem your money. Useful in some circumstances, but not so much if you need a business solution.

Cryptos with a fiat floor


The next step in fiat-denominated cryptos are the cryptos with a fiat floor.

As I discussed back in 2013, when you have a fixed-amount currency like Bitcoin and a potentially infinite currency like USD, you can only establish a floor price for Bitcoin, never the ceiling. That is to say, if I am willing to buy 21M BTC for $21M, you know Bitcoin will never sell lower than $1/BTC, thus Bitcoin will have the floor value of $1. Easy enough. Now, with that out of the way, lets talk about our new ideas.

There are a few examples in this field. a bit obscure Coinaaa (cryptocurrency tied to NOK), Brock Pierce's a bit more well known RealCoin (tied to USD), and the subject of a pretty recent controversy PayCoin.

So how does all of this work? Usually, you would have a premined altcoin that is fully owned by one entity (with maybe a dash left for the miners to mine). That entity would then sell the currency at a fixed rate, whether it's 1 Coin for $1 or anything else. They would also buy the currency back at a similar or even identical price. Provided the company isn't malicious and they keep the required reserves, you would have a nice and solvent fiat-pegged cryptocurrency. It would be better than hedged currencies, since you could actually pay people without having to convert it back and forth.

However, unless the coin supply is flexible, you can only issue so many coins before you run out of the pre-mined amount. Not to mention that mining such currencies puts an extra expense on the coin operators - either forcing them to mine by themselves, or subsidize the miners by backing the mined coins as well.

Moreover, like with all things crypto, the moment you have to trust someone, the moment you can get screwed. As the story of GAW and PayCoin goes, if a business is not committed to its floor from the start and you don't see the money they are backing their coins with, you may end up with worthless coins in your pocket.

All in all, cryptos with a fiat floor is a step in the right direction. While we can pay people in the currency of choice, relying on Bitcoin-like architecture gives us some limits.

Fiat IOUs


This is essentially a more refined model of the previous concept. Instead of premining an altcoin and pegging its value to a fiat currency, we use the flexible model of Crypto 2.0 IOUs. The best example of this approach would be Ripple and its many fiat-backed currencies.

In this model, just like before, we have companies that create their own currencies and sell them for fiat at a predictable exchange rate. Instead of calling them "RealCoin" or "PayCoin", they are simply referred to as USD, EUR and the like. The currencies are created during deposit and destroyed when they are redeemed, thus their supply is more flexible. Just like before - you can use them for payment and settlement.

Generally, it's a model that does away with all the abstractions and works pretty much like a bank. When you put your euros into a Fidor bank you don't suddenly convert them to "20 fidors", they are still Euros in a rigid 1:1 exchange rate. Moreover, in networks like Ripple, those currencies are tradable for any other currencies and allowing for many other neat things.

That being said, the usual caveat applies - we are trusting a company to secure our funds. If the company is insolvent (such as WeExchange), you lose your money. I suppose if the company securing your funds is the actual government issuing the currency (MintChip comes to mind), this point might be getting a bit moot.

All in all, Fiat IOUs are usually better than cryptos with a fiat floor, since their supply is flexible and the currency is not bound by Bitcoin-like restrictions.

Distributed and counterparty-less fiat-denominated cryptos

The last category worth mentioning are distributed and counterparty-less fiat-denominated cryptos (what a mouthful!). Essentially, they are like Fiat IOUs but without a single entity backing the money.

They can take two forms - fiat voting pools and crypto fiat futures.

First approach is based on Open Transactions' idea of Voting Pools. This essentially means that there are multiple gateways / exchanges / backers of a given currency each holding enough money to cover the other parties defaulting. In Bitcoin world, this would be easily achieved with a multisig. In a fiat world, you would probably need some agreement with a bank to guarantee some deposits between multiple parties (similarly to how a central bank protects against bank runs and so on).

While this approach changes the risk model of a Fiat IOU from centralized to distributed, it's still not entirely decentralized. Other than that, it's pretty much a really good solution to create a fiat-denominated crypto.

The second approach is like BitShares' BitUSD. Instead of having a central or distributed entity issuing fiat-denominated cryptos, you have a futures market that creates a new currency that is pegged in value to fiat or commodities. While the process by which this happens is still a bit of an economic magic to me, it boils down to some people going short and some people going long on the BTS-BitUSD exchange rate. This creates the BitUSD asset that can be transferred like any currency. Provided the market works well, BitUSD should be worth about the same amount as an USD.

However, there are some criticisms of BitUSD. First of all, the supply isn't too flexible (if someone wanted to put $1B into the system, the current network couldn't handle it instantly due to the new assets needing to be created first). Secondly, there is a possibility of the market essentially collapsing (if enough margin calls were executed too quickly due to a sudden price swing). Lastly, the asset needs to be exchanged for fiat at an exchange - it can't be directly withdrawn like Fiat IOUs.

All in all, we come to a fork in our road. On one hand, we can have distributed fiat-denominated cryptos backed by multiple entities, or counterparty-less fiat-denominated cryptos. It would be rather hard to refine the concept any further - if a crypto is to be a fiat IOU, someone needs to hold the fiat money to allow you to withdraw it. If there is no counterparty, the crypto is unbounded, but it can't be freely withdrawn.

Conclusions


All in all, it seems like we are only beginning to see what the fiat-denominated cryptos have to offer. In the coming years we will probably see this form of cryptocurrency rise into some popularity due to the stability they offer. While I still hold my Bitcoin and enjoy the rollercoaster ride it is giving all of us, fiat-denominated cryptos might be more appealing to the crypto newcomers.