Crypto speed for use in retail
How fast a blockchain is crops up all the time, especially when it comes to the ever important “retail adoption”. I look to debunk some of the popular lies we are fed. This article will be useful to both Bitcoin, Litecoin and DigiByte users who are all advocating for retail adoption.
NOTE: This article has been updated shortly after creation.
I incorrectly stated Litecoin was intended to be “ASIC Resistant”, that wasn’t true. Technically it was supposed to be “CPU Mined” due to Bitcoin being GPU and FPGA mined at the time of Litecoins creation, with ASICs coming around the corner. The idea being you could mine Litecoin on your home miner using the CPU, as the Bitcoin is mined on your GPU. I have updated this to correct that and thank those who sought the clarification.
You see back when I was first involved with Bitcoin in 2013, people were concerned of a double-spend occurring for a retail amount. The most common example people theorized was that you would purchased a pair of jeans, then leave the store and “double-spend” to send the funds you’d just used back to yourself, if they’d not already been included in a block. Very few people theorized that it would be exchanges attacked.
The main issue “preventing” retail adoption is the longer block timings.
You see with Bitcoin blocks every 10 minutes, nobody wants to wait for a block to verify before they walk out of a store. The general consensus in the crypto community is that 6 blocks are “ideal”, which is an hour for Bitcoin.
Same goes for Litecoin, with blocks every 2.5 minutes. Again, nobody wants to wait that long before they walk out of a store. 6 blocks being 15 minutes for high value purchases is again far too long to be practical.
DigiByte has 15 second block timings, which is now in the realm of an EFTPOS transaction. 6 blocks is 1.5 minutes for high value purchases, say if you were buying yourself a car using DigiByte. 90 seconds to wait around and verify 6 blocks is far more acceptable than 15 minutes, or an hour.
However, what we see often is what’s called “Zero confirmation transactions”, often shortened to “0-conf”. They’re generally considered a bad idea by most people, because it’s not *in* a block, in the blockchain, the transaction may not ever actually occur.
What we found in December 2017 with Bitcoin was that there were hundreds of thousands of Bitcoin transactions that all had very very low transaction-fee amounts. These never ended being mined because they were basically spam transactions designed to bump up the fee amount that genuine transactions had to pay.
However, if you were a genuine Bitcoin transaction at the time, and you offered a very low fee, your transaction would be broadcast to the network, the recipient notified, and it’s entirely plausible that transaction later never actually goes through.
This is less of a problem for Litecoin and DigiByte, neither of which currently have full blocks. Blockchain however isn’t about “things running optimally”, it’s about being able to stand up to attacks, and trusting nobody.
So what is a 0-conf transaction?
A brief explanation of how transactions occur with Bitcoin, Litecoin and DigiByte: When you make a transaction, you basically broadcast it to all the peers you are connected to. For example in the Core Wallet:
Hover your mouse over the icon beside the tick. This is the “connections” symbol and will tell you how many other wallets you are connected to.
Your wallet will broadcast your desire to make a transaction to all the people you are connected to, who will then also pass it along to their peers, until it reaches a miner. This is known as broadcasting your transaction to the “mempool”.
When a block is found, the transactions in the mempool are what is taken by a miner and put in to the block, verifying, validating, and locking that transaction in as permanent.
This broadcasting is how you can be “notified” a transaction is going to occur before it’s actually in a block.
If you’ve given somebody goods or services, on a 0-conf transaction, and then that transaction never occurs, you’re going to be pretty upset as a vendor taking crypto payments.
What does a 0-conf transaction look like?
Well, if you have a mobile wallet, and you get sent some Bitcoin, Litecoin or DigiByte, you get a notification in about 1–2 seconds. This occurs on all of those blockchains, as well as others such as Vertcoin, Doge, and more.
This is simply a “notification” that your funds have been received.
This is not the funds being mined and secured in the blockchain.
Now, technically speaking, you CAN take those funds and re-spend them immediately, all the aforementioned blockchains allow for this before the block has been mined. You can receive funds and re-spend them in the same block. However, if for whatever reason your initial receiving fails, then naturally so too will your subsequent on-spending fail.
Remember: If it’s not on the blockchain, it didn’t happen!
So why does the speed of DigiByte matter over Bitcoin / Litecoin?
Well, two reasons:
1 Block timing, verification, specifically the security of not being a 0-conf transaction
2 Scaling and future growth
You see, right now, Bitcoin does around 4–7 transactions per-second. We’ll be generous and say 7.
Litecoin has the capacity to handle 56 transactions per-second, 8x the capacity of Bitcoin.
DigiByte has the capacity to handle 560 transactions per-second, a further 10x the capacity of Litecoin, and 80x the capacity of Bitcoin. This will further double later in 2019 as the maximum block size limit is doubled.
0-conf transactions become significantly more problematic as the blocks get nearly full, one of the reasons being the explanation from before. They’re not a good idea in general though, and so you want to have a confirmation the transaction has been mined.
So why do we see John Kim on Twitter / YouTube showing off 0-conf transactions? Couldn’t they just use Bitcoin?
Should they use Bitcoin over Litecoin? I would also argue yes, that there’s not enough incentive in that minor improvement to warrant an entirely separate blockchain.
You see, originally Litecoin was supposed to be a CPU-only mined blockchain. That was why the Scrypt algorithm was chosen. However, when further progress was made, GPU mining, FPGA mining, and then ASIC mining came along, it was easier for Charlie Lee and the other Litecoin developers to just “roll with it” than actually do any improvements to the blockchain. It’s my opinion they’ve removed their main “selling point” over Bitcoin, otherwise you’re left with a barely incremental increase in max supply, 1/4 block timing, and 2x maximum block-size. This is why I personally believe more in Vertcoin rather than Litecoin, because at least Vertcoin have stayed true to their original vision rather than getting lazy. The only difference now is that Litecoin proponents basically believe 56 transactions per-second is sufficient for on-chain transactions compared to Bitcoins 7 transactions per-second.
I’m also going to let you in on another secret:
The Litecoin Loafwallet you see used in the demo’s is *not* special. The “instant” transactions are not unique to LTC, or even DGB for that matter. They’re 0-conf transactions that are as “instant” basically across all UTXO blockchains.
In fact, many people don’t know that Litecoins Loafwallet was forked from Bitcoins BRD (Breadwallet):
The only thing that Litecoin have really done with their Loafwallet is change the color to blue, and adjust the logo up the top-left.
There are tons of blockchains that forked Breadwallet (and users who did too, to work on BRD):
You can see them all for yourself: https://github.com/breadwallet/breadwallet-android/network/members
In fact, I’m going to let you in on another secret
DigiByte also forked the mobile wallet from the BRD code-base!
Now, DigiByte on the other hand again has continued to improve upon the original BRD code, significantly. We’ve stripped out a TON of code, removed some features, completely overhauled and improved the UI, made it easier for users to use by streamlining features, added Digi-ID, and are in the process of adding DigiAssets to it.
Again, this comes back to DigiByte being faster, more secure, and forward-thinking.
In fact, one last secret:
Vertcoin also forked DigiBytes code-base:
Yep, and I’m glad they did too, I’m a big fan of the improvements / changes we’ve made and think that Vertcoin have chosen a solid base for their new Android wallet.
So what’s the deal with using any of these in retail?
Well, if you’re using 0-conf transactions, then you can use Bitcoin. It’s *the* most stable out of all the cryptocurrencies so arguably you should.
If you’re not using 0-conf transactions, then Bitcoin and also Litecoin are far too long. In addition, Lightning Network would take close to two centuries to onboard the entire planet by the time you do the math (2 tx minimum to onboard, 7 TPS, 86400 seconds in a day, 365 days a year, 8–10 billion people). In which case, if you’re going to advocate for waiting for 1x confirmation, again you want to be using DigiByte, not Litecoin or Bitcoin.
If you’re going to talk about Bitcoin not scaling enough with the 7 TPS, then it’s also a fair assumption Litecoin is not sufficient at 56 TPS, and you should look at DigiByte for the future-proofed planning of scaling. Currently at 560 TPS, doubling later this year in 2019, and with planned and completely tested scaling all the way through to 280,000 TPS in the year 2035.
Should I just use Bitcoin then? This is all too much!
Probably not. You don’t want to use 0-conf. Don’t do it. It won’t scale and so you’re setting up infrastructure that’s going to be pointless.
Same for Litecoin, it’s too slow and also won’t scale, and you don’t want to use 0-conf.
Anybody selling you on the idea you should be using 0-conf should be stopped, and pulled up on it.
If you are going to be using a blockchain in retail, you’ll be wanting DigiByte.
But what if I just kept Bitcoin / Litecoin and atomic-swapped to something else?
Oh sweet child, I wish it were that easy. You see swaps like that are also either 0-conf (Which we’ve discussed, bad bad) or you’re going to have to wait XYZ blocks / minutes for the confirmations, which defeats the whole purpose.
Now, if you were to have some Bitcoin because you don’t want the price volatility, but you’re also a baller who believes in the future of cryptocurrency and retail adoption, you’d be keeping enough in DigiByte to be able to use for any day-to-day retail purchases.
However, until the world “gets onboard” with blockchain and cryptocurrencies, I would strongly advice against incurring all the fees associated with buying crypto (price premiums, credit card fees to top up your account etc), the tx-fees especially for BTC / LTC to get it to your wallet, and then buying something with it, only to then rinse / repeat.
What I would suggest people do is if you’re interested in using cryptocurrency, for retail, look at DigiByte. It is already head and shoulders above any other blockchain, and unlike other cryptocurrencies is not content to just rest on it’s laurels, but rather has a solid history for improving / widening it’s lead over the others.
Alternatively, buy Bitcoin.