User avatar
arnoudk
Bronze Bitcoiner
Bronze Bitcoiner
Posts: 631
Joined: Wed Oct 21, 2015 4:04 am
Location: Belize

Full blocks itself is a software hard fork event

Sun May 29, 2016 8:19 pm

Today, I got another question about why transactions were not confirming on the blockchain. A friend sent a few bitcoins to an exchange (using an older version of bitcoin-qt from Core), but did not include a fee. This transaction did not confirm, so he thought: "I'll just send another transaction, and include a fee in that one. I'll eventually have double the funds there.". So he did exactly that. The thought makes sense to me.

As luck would have it, his wallet included the change output from the unconfirmed transaction in his second fee-paying transaction. But, as child pays for parent is as yet unimplemented, the second transaction cannot possibly confirm until the first one is confirmed.

So, he now has TWO transactions stuck in the queue. He has waited several hours before contacting me.

He still wants money in the exchange as soon as possible, so I told him he should send a THIRD transaction - that does not reference any unspent inputs, and that has a fee.

(So rather than sending ONE tx, he is broadcasting THREE - and none of them are 'spam' transactions). He is doing that, BECAUSE blocks are full and transactions are not confirming in a timely manner.

There are so many fundamental problems with that. The first, is that I have to explain how, under the hood, bitcoin works and why it is showing this behavior. The end user should not have to care, but if I have to start explaining tx inputs, change addresses and unconfirmed inputs - this is a sign bitcoin is nowhere near ready for the mainstream. He should have been able to 'just make the transaction'.

Ah, but isn't he using an old version of Core? Yes he is! Well, then isn't it his fault for not upgrading!!

Let's examine that.

Because this is a much more fundamental problem. The users would have to upgrade their software, so that it will calculate the correct fee and not use unconfirmed transaction inputs.

The end users must change their software, in order to be able to continue using bitcoin in this full-blocks environment. The economic rules have changed, and all users MUST upgrade in order to be able to continue using bitcoin.

THIS IS A HARD FORK! *

EDIT for clarity: I am not talking about a blockchain fork here. I'm talking about a software change that users are forced to implement in order to continue using the system. See posts below.
Last edited by arnoudk on Sun May 29, 2016 11:11 pm, edited 2 times in total.
Excited about the potential of Bitcoin Cash in the beautiful country of Belize.
Developer of the RegisterDocuments.com Document Registration Service (using the Bitcoin Cash blockchain).

User avatar
arnoudk
Bronze Bitcoiner
Bronze Bitcoiner
Posts: 631
Joined: Wed Oct 21, 2015 4:04 am
Location: Belize

Re: Full blocks itself is a software hard fork event

Sun May 29, 2016 8:40 pm

Last edited by arnoudk on Sun May 29, 2016 9:32 pm, edited 1 time in total.
Excited about the potential of Bitcoin Cash in the beautiful country of Belize.
Developer of the RegisterDocuments.com Document Registration Service (using the Bitcoin Cash blockchain).

User avatar
arnoudk
Bronze Bitcoiner
Bronze Bitcoiner
Posts: 631
Joined: Wed Oct 21, 2015 4:04 am
Location: Belize

Re: Full blocks itself is a software hard fork event

Sun May 29, 2016 9:31 pm

An important clarification:
It is a rather intense change in economics.

It is not a fork though.
I'm not talking about a fork of the blockchain, obviously this won't create two competing chains. I should have been clearer on this.

I'm talking about a fork of the software. Old clients have the old economic rules (and old fee calculations), as they were designed in a time when there was no squeeze to get the transaction into a block. New clients have now changed these economic rules, by changing the fee they send. Thus, this is a fork of the software. Old clients can still create a perfectly valid transaction, but with an incorrect fee, and thus it will not confirm in a timely manner. The new clients have updated fee logic, that is the software fork I am talking about.

A software upgrade can be minor (not really requiring an upgrade and still being able to use the system), to being major (if you don't upgrade, critical functionality is affected). In this case, the core of the software (sending transactions) is affected.

I cannot unfortunately change the title to reflect I am talking about software forks here, not blockchain forks. I could have been clearer on that.
Excited about the potential of Bitcoin Cash in the beautiful country of Belize.
Developer of the RegisterDocuments.com Document Registration Service (using the Bitcoin Cash blockchain).

krisives
Nickel Bitcoiner
Nickel Bitcoiner
Posts: 23
Joined: Sun Oct 04, 2015 12:21 am

Re: Full blocks itself is a software hard fork event

Sun May 29, 2016 10:24 pm

If you believe this is true, where was the fork? I think the system is failing to scale, not that it's been forked to do so.

User avatar
arnoudk
Bronze Bitcoiner
Bronze Bitcoiner
Posts: 631
Joined: Wed Oct 21, 2015 4:04 am
Location: Belize

Re: Full blocks itself is a software hard fork event

Sun May 29, 2016 10:31 pm

If you believe this is true, where was the fork? I think the system is failing to scale, not that it's been forked to do so.
The new clients have updated their fee logic. This is a natural reaction to 'failing to scale' and the new economic reality. It means their transactions get pushed to the top, it also means that the transactions created by non-upgraded clients are thus forced to the bottom (if they ever confirm at all). This new implementation of the economic fee rules, is a software fork.

If no-one upgraded to new economic rules - there still would be an issue with transactions not confirming. Of course, fees are not a scaling solution. They are a barrier to entry solution that reduces demand due to the higher cost.

Still, now that many people have upgraded their fee calculations, anyone that has not done so (for whatever reason) is left behind. They can create perfectly valid transactions, but they will just not confirm in a timely manner, because upgraded nodes are prioritized due to their better fee calculations. This impacts a core functionality of bitcoin - to send transactions. Because of this, upgrading is not a choice but a prerequisite to using the system. That's where the software fork is.
Excited about the potential of Bitcoin Cash in the beautiful country of Belize.
Developer of the RegisterDocuments.com Document Registration Service (using the Bitcoin Cash blockchain).

krisives
Nickel Bitcoiner
Nickel Bitcoiner
Posts: 23
Joined: Sun Oct 04, 2015 12:21 am

Re: Full blocks itself is a software hard fork event

Sun May 29, 2016 10:46 pm

I agree that changing the calculation method for fees is driving up the fee, but that's a client-side feature in my view, not a change to the rules of the blockchain. The actual consensus rule there is how miners calculate the expected/minimum fee - which I believe is still based on the size of the transaction and how likely the coins are small "dust" transactions.

Have the consensus rules changed related? If not, this is probably economic activity. Anyone could have made a client that calculated fees automatically and this problem could never have manifested itself if nobody chose to use such clients. This makes me think it's not a fork.

User avatar
arnoudk
Bronze Bitcoiner
Bronze Bitcoiner
Posts: 631
Joined: Wed Oct 21, 2015 4:04 am
Location: Belize

Re: Full blocks itself is a software hard fork event

Sun May 29, 2016 10:53 pm

I agree that changing the calculation method for fees is driving up the fee, but that's a client-side feature in my view, not a change to the rules of the blockchain. The actual consensus rule there is how miners calculate the expected/minimum fee - which I believe is still based on the size of the transaction and how likely the coins are small "dust" transactions.

Have the consensus rules changed related? If not, this is probably economic activity. Anyone could have made a client that calculated fees automatically and this problem could never have manifested itself if nobody chose to use such clients. This makes me think it's not a fork.
I agree that it is not a blockchain fork. I regret not making this clearer initially - I am talking about a fork of the software, see my previous post regarding the clarification.

So no, the rules of the blockchain have not changed.

However, the rules for a transaction being included into a block have changed - a higher and possibly dynamic fee is now required. The software must be upgraded for this fee calculation.

The software should also not send transactions containing an unspent input. Besides being dangerous from a transaction malleability point of view, it means that the second transaction cannot confirm before the first.

Thus, to effectively use bitcoin, you must upgrade.

This is the argument against hard forks (also blockchain hard forks): you force the users to upgrade. With a blockchain hard fork, there is the added risk of two chains co-existing (at least theoretically) and being on the wrong chain. In this case, that obviously is not a risk.
Excited about the potential of Bitcoin Cash in the beautiful country of Belize.
Developer of the RegisterDocuments.com Document Registration Service (using the Bitcoin Cash blockchain).

iFixBTCmemoryIssues
Gold Bitcoiner
Gold Bitcoiner
Posts: 2682
Joined: Tue Nov 24, 2015 9:03 pm

Re: Full blocks itself is a software hard fork event

Mon May 30, 2016 4:45 pm

Today, I got another question about why transactions were not confirming on the blockchain. A friend sent a few bitcoins to an exchange (using an older version of bitcoin-qt from Core), but did not include a fee. This transaction did not confirm, so he thought: "I'll just send another transaction, and include a fee in that one. I'll eventually have double the funds there.". So he did exactly that. The thought makes sense to me.

As luck would have it, his wallet included the change output from the unconfirmed transaction in his second fee-paying transaction. But, as child pays for parent is as yet unimplemented, the second transaction cannot possibly confirm until the first one is confirmed.

So, he now has TWO transactions stuck in the queue. He has waited several hours before contacting me.

He still wants money in the exchange as soon as possible, so I told him he should send a THIRD transaction - that does not reference any unspent inputs, and that has a fee.

(So rather than sending ONE tx, he is broadcasting THREE - and none of them are 'spam' transactions). He is doing that, BECAUSE blocks are full and transactions are not confirming in a timely manner.

There are so many fundamental problems with that. The first, is that I have to explain how, under the hood, bitcoin works and why it is showing this behavior. The end user should not have to care, but if I have to start explaining tx inputs, change addresses and unconfirmed inputs - this is a sign bitcoin is nowhere near ready for the mainstream. He should have been able to 'just make the transaction'.

Ah, but isn't he using an old version of Core? Yes he is! Well, then isn't it his fault for not upgrading!!

Let's examine that.

Because this is a much more fundamental problem. The users would have to upgrade their software, so that it will calculate the correct fee and not use unconfirmed transaction inputs.

The end users must change their software, in order to be able to continue using bitcoin in this full-blocks environment. The economic rules have changed, and all users MUST upgrade in order to be able to continue using bitcoin.

THIS IS A HARD FORK! *

EDIT for clarity: I am not talking about a blockchain fork here. I'm talking about a software change that users are forced to implement in order to continue using the system. See posts below.
Massive problems in Bitcoin, every 10 out of 10 people that I know are having some type of problem. From the manipulated price, confirmation times, fees and blocksize.

Thank you for speaking out and bringing attention to your problem. I know it can be frustrating at times, always remember that you are working for the greater good. We've all made fortunes from Bitcoin and this is our giving back to its ideals.
Image

If you are running a version of Bitcoin Core, stop using it. Upgrade to Bitcoin Unlimited or Classic immediately.

Fix Your Unconfirmed Transaction.

Vote for the future of our Bitcoin network!

Return to “Bitcoin Discussion”

Who is online

Users browsing this forum: No registered users and 2 guests