Scaling Bitcoin workshop : Montreal 2015

Non currency applications

Scalability of non-currency applications

Harry Kalodner

I am from Princeton University. I am here to talk about the scalability issues that non-currency applications of bitcoin have that might be a little different than regular payments that go through the bitcoin network. I put this together with my advisor, Arvind. The reason why I want to talk about this is because when people talk about how bitcoin will have to scale is that people throw out a thing about Visa processing 20,000 transactions per second or something. There are other relevant factors though.

I want to start by going through a few interesting applications of bitcoin that could in the future lead to a huge amounts of bitcoin increase. First off, domain name management like in namecoin. Uses UTXOs to represent domain names which can have associated values to fully decentralize DNS. And this involves storing both the values associated with tokens, and also including DNS records on the blockchain. This is done currently in an altcoin but it could also work on bitcoin itself.

We can see that namecoin, when I looked at namecoin initially, we were looking at about 120,000 domain names on it. I thought that was a high number. But if we contain that with ICANN with 294 million domains, that would mean 294 million UTXOs just dedicated to domains themselves. Trying to support an application like that would pose some really interesting challenges.

Another use is stock trading, and there is substantial interest here. NASDAQ processes 10 million trades per day. NYSE does 3.5 million per day. This could involve a lot of daily usage going through. We already can do these on the blockchain as-is, and there are ways to scale this application but there's some substantial demand there. Regular stock trading today has a 3 day settlement period before the actual money is exchanged. Using the blockchain, certainly one of them is ease of and security of transactions, which bitcoin solves very well.

And finally, a third example is smart property in general, for example car ownership, it would be feasible, although difficult and unscalable, have a car that has access to the blockchain because we don't know about EC cryptography. You could use the blockchain as a round-about way to avoid learning about cryptography. You can transfer someone else with a transaction on the blockchain, or unlock your front door with a transaction on the blockchain. There are 245 million cars in the US. This would be a massive load on the system.

What do these applications have in common? How do they work? Why are they interesting? They all involve, and any way that you do them, you have to associate extra information with specific outputs, they have special application semantics, and to everyone else they mean nothing, but to people who use that application, defines very special meaning to particular outputs, which are not secured by miners validating the blockchain. The most simple and straightforward one, is colored coins rather than using unique asset types as a first-class citizen. And there you have all information about the colored coin system being available in transactions, everything you know about the system, sis stored right on the blockchain, then there's counterparty that operate with a different system but operate in the same way of storing all necessary information on the blockchain.

Next we have block store, which is a compromise so that, in lbock store they turn the blockchain into a key-value database, and the insight there is that altruistic behavior can be abused by lots of data. You might want to include arbitrarily large values. You can include the hashes in the blockchain, then use a distributed hash tree off-chain to store the actual data. They actually support updating a distributed hash-table, or updating the value associated, without putting anything on the blockchain. You sign the value with the same key that owns the name on the blockchain. So you can offload a lot of the work. This doesn't help scalability too much since in order to register a name, it takes two transactions to prevent a practice called front-running where a miner can just register the name before you do. It would 732 million transactions to register the same users from twitter, which is an unbelievable number.

You have the opportunity to use these systems on altcoin altchains. Altcoins have problems. It's very difficult to provide an altcoin that has the security the same as bitcoin. We have merge mining. But merge mining has the problem that unless unless 50% of the bitcoin miners are trustworthy mining on these other altcoins, then the rest of the miners can just attack the altchain. So this also fragments the ecosystem; it's more difficult to sell people 10 different altcoins for 10 different applications, rather than just bitcoin which has name recognition. Sidechains would certainly go a long way towards solving that problem. A fully merge-mined sidechain would provide potential for offloading a non-currency application for bitcoin.

Why are these worth mentioning as applications of bitcoin? So, there are a number of scaling solutions that we have talked about, and the solutions that I am interested in are the solutions which cause bitcoin to require fewer transactions. Scaling issues become an issue when too many people want to post transactions to the blockchain. One way to handle this is to reduce the number of transactions required. Solutions that work on that line have an inevitability to .. inability to.. requiring higher fees for prioritization is nice, but domains really require a low-fee because they are just not worth enough (worthless), a high fee market would lose that. And then you have off-chain trusted transactions like with Coinbase, where you want to sedn a transaction to another Coinbase user, they just flip a few numbers in their database because they control all of that data and it's not reality on the blockchain. And then you have the Lightning Network, and you can require more transactions can show up on the blockchain, but unfortunately a lot of second-tier solutions depend on the fungibility of bitcoin. When you use the Lightning Network, the colored coins or bitcoin taht you send out, are not the same coins that the person you are sending to receives, they can work for stock trading where as long as you can relay through a connection that has the ownership of the same stocks, it will be perfectly supported, but it will never work for car ownership or domain names where you are working with assets that are unique and there has to be a transaction on the blockchain to update ownership.

When we are discussing scalability solutions, we have to think about the implications of these applications. Thanks for your time.