Sunday 31 January 2016

100,000 Transactions Per Second: How Do We Get There?


Who can pony up what?CryptocurrencyMax ThroughputcommentBitcoin3tpscoughPeercoin3tpsas far as I knowLitecoin8tpsrough, conservative estimates of theoretical current maxDogecoin20tpstheoreticalReddcoin20tpstheoreticalNyancoin20tpstheoreticalSo we've got 74tps of blockchain capacity so far. Little short yet.Ripple: Hm, I didn't have the transaction rate for Ripple determined. There is debate over whether they "count". Sees reasonable to me, although I see reasonable arguments against. More than a year ago, I had them at 80,000 transactions in 24 hours, which of course, is relatively small in tps (<1), but that's the actual rate and I hadn't noted any limit. I suspect they may be a route to Visa-scale.For transaction cost, it seemed to be less than a ripple but I didn't have a source. My wifi is bad right now, can't check.Let's count Ripple as an "Ace-in-the-hole". I think it's technology worth considering for sure. It may have very complementary value or it may ultimately be superior.Let's imagine some crazy growth rates. Nightmare scenario datacenter world for all the coins except for some hold-outs. Let's presume BTC as a holdout and look at what the throughput rates of various coins are. I have notes for some of these in my archives. For some of them I may have to look up some new information.I'm not sure how to put LTC in our hypothetical. If we put it as expanding, I believe it becomes the leader. If we put it as following BTC in keeping the current throughput limit, then it doesn't really matter in our analysis here. Let's leave LTC and PPC with BTC as being conservative in our hypothetical consideration of throughput capacity. (However, shout-out to ProHashing with the BIP101 in LTC attempt; I do hope that's successful, just as I hope one of the hardfork blocksize increases on BTC will be successful. And PPC arbitrarily lumped in just for having a 10 minute block time from my notes.)There's a trick I'm going to pull here now and explain: I'm going to use, in counting to our goal, the aggregate performance of 100 combined cryptocurrencies, arbitrarily. I think this is a pretty conservative estimate of the number of reasonable existing candidates. Let's assume that all coins have a minimum of the DOGE setup for current throughput: 1MB block cap (so far as I know; not aware of a clonecoin with enough foresight to have taken it out; worth double checking in the code of each reference (network most common) implementation), but with a 1 minute block rate target, which allows 10x the throughput capacity.Between this lovely feature and that one neat trick, we already have a starting throughput capacity of 2,000 tps. Not bad as a starting point for a competitor to 3tps.This seems like a good point to note that it should be patently obvious that there are far more important things to the market cap valuation than the single factor of throughput capacity. If it were not so, then Bitcoin could not have 88% of the cryptocurrency market. There is a very strong first mover advantage, network effect, and has been a strong history of buying Bitcoins to build confidence. This document is a thought-experiment sparked by the casual dismissal of the impossibility of Bitcoin ever passing or even reaching Visa-like capacities for throughput in a lauded post by a chief architect of the Core Bitcoin 1MB policy. I've had this general thought before, but I've never done the full-blown write-up before. And here we are. So this is a thought-experiment limited to throughput capacities for the sake of technical consideration, and deliberately excluding market-cap / financial implications of such changes in my analysis.Now we need a 49x increase to get to 100,000 tps. We could spawn more coins, but I think we're all collectively exhausted by the number of coins in existence currently, so I'll put that as a second-choice option. So let's automagically presume the average blocksize hard-cap on the "100 clones" category, as I'll call it arbitrarily for no particular reason, has risen to an average of 50MB from its currently uniform 1MB. And there it would be: theoretically, a system which could transact on any of those 100 coins, considering the capacity of all the coins together, would in theory be then at 100,000 tps.Could the current BTC code handle 50MB blocks reasonably? Frankly, I don't know but I doubt it. I think we're going to find out though. And I don't think it will be particularly difficult to reach that point ultimately when taking in upstream changes as well as any improvements which may develop among the 100 or others. Within the next 5 years I think this should be feasible, not merely for 1, but for 100 coins. That's how the blockchain scales to 100,000 tps. Blockchain: look ma, no Bitcoin!This might seem like a rather crazy view to some. I know in the Bitcoin subreddits, it's heresy and uninteresting to speak of anything else, in particular, never those clonecoins! Those awful, awful clonecoins. There have been some slight cracks in that policy in some bitcoin communities, but in general, the position holds. But to me, the technology is interesting. And there's not really a lot of technological difference between a Bitcoin, Litecoin, Dogecoin, or Nyancoin transaction. There are significant financial differences in their implications, but the technology is basically the same, because LTC copies BTC and DOGE copied LTC (originally, then went and went to BTC base with Scrypt AuxPoW) and NYAN copied LTC. So it's really pretty basic that if one needs more BTC transactions, if it were possible to substitute the other networks for those purposes, then these independent networks which are technically almost-identical seem to be the obvious choice. And once that step has been made, the problem is more than half-solved already.In fact, this is the way in which I agree with the BTC small-blockists: clearly the sky isn't falling yet. The transactions haven't truly spiked across the board and down the heap so far. Fidelity hasn't decided to build a 100 clone based system. But, for instance, I think it would be possible to build various "Layer 2", one might say, applications which were coin-agnostic. For instance, consider the purpose of a colored coin: transferring ownership of some particular external concept because of some external agreement about what this transaction represents. So as long as the protocol covers the variety of transfer, we don't really care necessarily if any of the underlying protocols recognizes what's going on. That is, for instance, a DOGE is transferred from Alice to Bob which represents some sort of mutex: now Bob can edit Resource without conflict. Bob then wants to transfer this mutex to Carol and sends a NYAN to an address Carol controls, where the transaction contains a signature for the particular DOGE received by BOB from Alice which represents the mutex.Of course, there are obvious potential issues with this off-the-cuff example. The one which came to mind to me at the end was "what if Bob tries giving the mutex to Dan on RDD at the same time he gives it to Carol on NYAN?" I'm not sure how to resolve that at the moment. Perhaps the protocol would have ways of designating a type of resolution or hierarchy of coins for resolving that particular coin. It would be possible to switch chains safely if done with a blockchain action on the current chain, but if for some reason that weren't available, then perhaps the protocol could allow a mechanism where a person registers a claim on an alternate chain using a signature for the original as described, and after a certain period of time, if no conflicting signatures on any of the other 100 occur during 6 hours (or some long period) to ensure legitimacy (alternately shorter for less security-critical applications).I think there could be interesting use and application for such a system. Regardless of its utility, I think it's clear that it's possible with incremental improvement on the existing code and the technology currently available.Personal, non-technical statement: I would like to see this develop. I think this is more useful and decentralized than any single cryptocurrency "winning" everything. This is the cypherpunk dream outcome in my view. I have always expected and wanted Bitcoin to keep doing better and better, and perhaps it will continue to do so, but I also believe that having "reasonable" throughput capacity is also good. And having a lot just because you can is cool. This stuff is still experimental. What's the point if we don't push the limits a bit? via /r/CryptoCurrency http://bit.ly/1SlYFRz

No comments :

Post a Comment