There is nothing more annoying than our Bitcoin transactions stuck for long periods. We've all been there. We sent our Bitcoin to participate in some activity such as ICOs, until it got stuck and has yet to get any confirmations after sending them. It can go for as long as days or a span of weeks. What happened? When we first heard of Bitcoin, we were told about 10-minute transactions and we are a long way from that now.
The reason for this is the 1Mb block size cap and an inefficient difficulty adjustment. Whenever the miners see fit that another coin is more viable to mine, they switch to that coin and this in turns results to an increasing amounts of unconfirmed transactions.
Bitcoin is inefficient at switching mining difficulty. The difficulty remains high while there are lesser miners after switching to another coin. The bitcoin difficulty is slow to adjust because it is designed to be so. It updates every 2016 blocks. Each blocks is created every 10 minutes. Do the maths on how long is takes for Bitcoin to adjust difficulties. A big mining farm switches to another coin and instantly 20% to 30% of the hash power gone slowing down the entire process of transaction confirmations. And because there is only 1Mb block size, every byte amounts to huge demands. And fees, will of course increase for your transactions to be included on the next block.
Because of this, Bitcoin has become a store of value instead of a currency. The insurmountable fees to transfer makes it much more like transferring tons of gold than a weightless digital money.
For some reason, I understand Roger Ver's sentiments despite a lot of heat under his name. After all, he's one of the figures that believed in cryptocurrencies before none else did. He only wants what is best for the crypto space. Everything he says now is twisted and taken out of context. The newbies actually believe he's this evil villain guy. I can almost confirm these people against him and Bitcoin Cash are the same people who have most of their positions on Bitcoin and they don't want their "precious" devalued.
I mean come on? Why would you experiment on the main one? Do that on forks or altcoins maybe? I just don't understand their take on this "linear scaling" bullshit they say about what Bitcoin Cash does. If semi-conductors increase exponentially, storage capacity increase exponentially, and network bandwidth increase exponentially, then why is a flexible block size a linear solution? It is still Proof-of-Work, only scalable. A system that has already been proven unlike Lightning Network.
I get it. It's still inefficient. But it's the only MASSIVE thing we have right now! Bitcoin is a gateway to other cryptocurrencies, and for it to be very slow and expensive to transact is what's keeping mass adoption at bay. I'd say experiment on forks and altcoins!
Either way, all has been done and we can't do a thing about it. We'll just have to figure out a way to adjust. The most viable solution to a stuck transaction is a process called "child pays for parent".
Child Pays For Parent (CPFP)
Creating a CPFP transaction is not as complex as it sounds. The theory behind it is to have a new transaction (child) pay for the original transaction (parent) that got stuck due to low fees. This means the new transaction will have to have the correct fees that the original transaction didn't. Great right? More fees.
Here are the steps to execute a CPFP transaction:
#1. Locate the original transaction (parent) that got stuck and take note of the "txID" (Transaction ID). This can be found on the list of transactions of your bitcoin wallet, or through searching through blockchain explorers and then input your BTC address on the Search bar.
#2. Calculate the correct amount for the fee to include to your new transaction. You can use a real time fees calculator.
#3. Use a raw transaction tool such as Coinbin to broadcast the new transaction. To do this , click +New -> Transaction.
#4. Input your BTC address on the Address, WIF key or Redeem Script field, and then click Load.
#5. After your BTC address is loaded, it should show your inputs and outputs. Inputs are the Bitcoin you have and the Outputs are where you send it to. Check and make sure the Inputs tab contain the Transaction ID in Step #1.
#6. You can now edit your Outputs. On the Outputs tab, in the Address field, enter your own BTC address. The same BTC address you entered in Step #4. On the Amount field enter the total amount of Bitcoin you have minus the fees (calculated in Step #2). Essentially what you're doing here is sending all your Bitcoins to yourself minus the correct fees. You are trading a portion of your Bitcoin so your original transaction will be confirmed alongside this new transaction.
#7. If you did the Step #6 right, the Transaction Fee field should automatically reflect the correct fees. Click on Submit to generate the unsigned transaction hash.
#8. You still need to sign the transaction hash generated in Step #7 to prove you are the owner of this address. Otherwise, anyone can send anyone's Bitcoin, right? To do this, copy the transaction hash in Step #7 and go to Sign tab and paste the transaction hash on the 2nd field. Enter your private key for your BTC address, then click on Submit. This should generate a signed transaction hash.
#9 Once your transaction hash is signed, we can now broadcast this to the network of miners. To do this, copy the signed transaction hash and go to Broadcast tab. Paste your signed transaction hash to the field provided and click on Submit. Your transaction should be broadcasted and a new Transaction ID generated. You may copy this new Transaction ID and look it up on a blockchain explorer.
Now having the higher fees and referencing to the old transaction ID in your Inputs, the miners will pick this up and will have to confirm the old transaction first before confirming the new transaction you broadcasted. Usually, this results to the 2 transactions getting confirmed at the same exact time.
If this blog post has entertained or helped you, please consider to follow, upvote, resteem and/or consider buying me a beer:
BTC: 1GNqY5CsYrkHvDf9Jj3bwSXhHogbvmXBmF
ETH: 0x6c2F7128363332965b92A6c71eee0276FF27E0cD
LTC: LbLb9DcNvKzp2ywtYCctiv5NfpzvSwg7Ve
Legal Disclaimer: Everything in this post is of my personal bias. Make of it what you wish. It is not an advice nor recommendation to buy or sell anything. It is meant for informative and entertainment purposes only.