Author

Topic: How do you make decisions for a change in BTC protocal (Read 1358 times)

legendary
Activity: 1988
Merit: 1012
Beyond Imagination
I think vote is good, due to the complexity of technical details, even technical experts have different value, vote is the only way to keep the network from spliting. Even some people do not agree with the majority, if there is a vote result, they have the incentive to follow that result thus keep the integrity of bitcoin community

So far, there is no clear political structure in bitcoin community, and this will be needed sooner or later. We can establish a decision making mechanism by a process of maybe "poll - debate - vote", no senators, no house, no president  Smiley

Of course such kind of vote could develope into a situation of "mass's stupidity take majority", that is the weakness of today's political system. I think there should be a test of each person's knowledge about block-chain and then decide what kind of weighting his vote could have
legendary
Activity: 1064
Merit: 1001
The only meaningful way to ensure that a hard fork is accepted is to:

1) Provide overwhelming evidence that a problem exists

2) Provide a well thought out solution that has been extensively peer reviewed, that miners approve of

3) Make sure that the changes are discussed with as wide an audience as possible
staff
Activity: 4284
Merit: 8808
Is this purely hypothetical or are there hints from the core developer kitchen that a fork is on the table?
https://en.bitcoin.it/wiki/Hardfork_Wishlist
It's purely hypothetical— basically just used to track things, and so when someone come up yet again repeating the same idea for the Nth time they can just be pointed to a list where its been suggested before— also a little bit because some people find the almost complete lack of innovation in altcoins depressing, and the page can give them some useful ideas.
sr. member
Activity: 322
Merit: 251
FirstBits: 168Bc
Is this purely hypothetical or are there hints from the core developer kitchen that a fork is on the table?

https://en.bitcoin.it/wiki/Hardfork_Wishlist
legendary
Activity: 1988
Merit: 1012
Beyond Imagination
bump this up to get some more input Cool

I think the highest priority is to maintain and even promote people's trust for blockchain
legendary
Activity: 3472
Merit: 4801
Then you make it incompatible rather than trying to make one way compatibility with the other fork and thus ensure your efforts are continually overwritten.  I think you misunderstand the point.  The point isn't that forks are impossible it is that they are FORKS and they will not rejoin in the future. 

But what if one fork decide to incorporate transactions that is compatible with it from the other fork's blocks? If lets say fork A now has more computation power, and people who mine forkA would like fork A becomes dominant and so it will read forkB's block's orphan transaction and verify if they are compatible with forkA and put that transaction in forkA. As long as A has more block acceptance power, A will outgrow B and most tranactions that are valid is in A, so people will naturally move to forkA, this is self-reinforcing, so should be resolve the fork in the long run?

The above is just my hypothesis given my understanding, welcome to refute if you see points are invalid.
It won't work, because transactions in forkB will be trying to spend outputs that have already been spent in forkA (or the other way around). Other transactions will be trying to spend coinbase outputs that don't even exist in the chain. So each fork won't see these transactions from the other fork as valid.  The length of the forks won't matter because forkB can't even see forkA (just like the length of the litecoin blockchain doesn't matter to bitcoin, because the bitcoin clients don't even see the litecoin blockchain).
full member
Activity: 154
Merit: 100
Then you make it incompatible rather than trying to make one way compatibility with the other fork and thus ensure your efforts are continually overwritten.  I think you misunderstand the point.  The point isn't that forks are impossible it is that they are FORKS and they will not rejoin in the future. 

But what if one fork decide to incorporate transactions that is compatible with it from the other fork's blocks? If lets say fork A now has more computation power, and people who mine forkA would like fork A becomes dominant and so it will read forkB's block's orphan transaction and verify if they are compatible with forkA and put that transaction in forkA. As long as A has more block acceptance power, A will outgrow B and most tranactions that are valid is in A, so people will naturally move to forkA, this is self-reinforcing, so should be resolve the fork in the long run?

The above is just my hypothesis given my understanding, welcome to refute if you see points are invalid.
donator
Activity: 1218
Merit: 1079
Gerald Davis
Then you make it incompatible rather than trying to make one way compatibility with the other fork and thus ensure your efforts are continually overwritten.  I think you misunderstand the point.  The point isn't that forks are impossible it is that they are FORKS and they will not rejoin in the future. 
sr. member
Activity: 476
Merit: 250
Bytecoin: 8VofSsbQvTd8YwAcxiCcxrqZ9MnGPjaAQm
what miner is going to miner a new fork's blocks knowing there is a high probability that will result in an orphan when he/she can just mine the old fork's blocks without risk.

One that thinks there is more long-term benefit for himself in the new chain and hopes that it gets off the ground.  There are people now mining simply to support bitcoin and not making a profit.  I assume there would be for such new proposals.  They would certainly have a tough obstacle to climb to succeed, which is why I think this would only work for something that turns out to be needed, e.g., subdividing satoshis in a hypothetical future where bitcoin loss is extreme.
donator
Activity: 1218
Merit: 1079
Gerald Davis
Blocks have the prior block's hash as part of their header.  One there is a incompatible fork the chains will never rejoin without orphaning the new fork's blocks and what miner is going to miner a new fork's blocks knowing there is a high probability that will result in an orphan when he/she can just mine the old fork's blocks without risk.

Example:
Block A (original)
Block B ( increased precision - "sub satoshi values")

Both chains are the same until block 1,000,001.
In Block 1,000,0001B a miner produces a block with a "sub satoshi".  This Block will be seen as invalid by network A.

Now Network A produces a block 1,000,0001A and eventually 1,000,0002A.    Network B can't use 1,000,002A without 1,000,0001A (which will orphan the miner which produces the "first sub satoshi block".  No miner would risk including sub satoshi's when that increases the risk its block will be oprhaned.   So the fork will never be used.  The only way to prevent that economic cost is to make the chain incompatible.  If the "B" chain introduces incompatible changes to the blockheader then "A" chain could never oprhan the "B" chain.

That would make 1,000,001A and 1,000,001B mutually exclusive and incompatible with the other network forever.
sr. member
Activity: 476
Merit: 250
Bytecoin: 8VofSsbQvTd8YwAcxiCcxrqZ9MnGPjaAQm
No.  If there is a breaking change then BitcoinA won't see blocks from BitcoinB as valid and vice versa.  They both would exist independently until one chain is completely abandoned (a 100% consensus event). 

It is possible that one chain might accept blocks from the other.  For example, suppose some people start running an enhanced client that subdivides satoshis into tenths, but still accepts previously well-formed blocks.  Then you might have a situation where the new BitcoinB accepts its own customized chain for awhile, then suddenly rejects itself when the work in BitcoinA is greater than the work in BitcoinB.  It might oscillate for awhile generating blocks, then rejecting them, then building out the chain a little more.
legendary
Activity: 1988
Merit: 1012
Beyond Imagination
I never said I will force a change, I mean if we need to consider a hard fork or not, take block size for example, some people do not like big block, some others think that is a necessary for future success of BTC, how do you solve that conflict?

See the other discussion about block size:
https://bitcointalksearch.org/topic/the-maxblocksize-fork-140233

You can not always avoid the problem with technology, the decision making is unavoidable for everyone, either follow or not follow a new fork. If that fork is coming from very authoritive guys like core developers, there will be conflicts, maybe half of the people stay with original protocal and the other half go for the new protocal, then...

donator
Activity: 1218
Merit: 1079
Gerald Davis
No.  If there is a breaking change then BitcoinA won't see blocks from BitcoinB as valid and vice versa.  They both would exist independently until one chain is completely abandoned (a 100% consensus event). 
full member
Activity: 154
Merit: 100
You can't force a change.  All you can do is fork the network.  If enough people join your fork then it may become dominant.  If only a few people remain on the original fork it may eventually become unknown to the masses (as other obsolete protocols have become).  As long as a single copy of the current software and blockchain exist the current fork (Bitcoin as it is today) will always exist.  As long a single node is actively mining the network will remain.

So all of your possible choices are incorrect and impossible.  None of them can force a change.  The only thing which would prevent a fork is complete unanimous consent and action by all users.  Not 99.999999999999999% but exactly 100% (past, current, and future).  All users agree and update their nodes, then a change will occurs without a fork.  Baring that near impossibility to make a breaking change to the protocol will cause a fork.

And the two blockchain grow at different rate, the one that become longer wins. Acutally I think it may resolve quickly ( but the resolution will be 99% of time, no change)
donator
Activity: 1218
Merit: 1079
Gerald Davis
You can't force a change.  All you can do is fork the network.  If enough people join your fork then it may become dominant.  If only a few people remain on the original fork it may eventually become unknown to the masses (as other obsolete protocols have become).  As long as a single copy of the current software and blockchain exist the current fork (Bitcoin as it is today) will always exist.  As long a single node is actively mining the network will remain.

So all of your possible choices are incorrect and impossible.  None of them can force a change.  The only thing which would prevent a fork is complete unanimous consent and action by all users.  Not 99.999999999999999% but exactly 100% (past, current, and future).  All users agree and update their nodes, then a change will occurs without a fork.  Baring that near impossibility to make a breaking change to the protocol will cause a fork.
legendary
Activity: 1988
Merit: 1012
Beyond Imagination
I had a feeling that this will become a question sooner or later, either we stick to the original protocal, or we have a mechanism to solve the conflict in opinion

I personally hate politics, during my working years at super multinational corporation, it is always political change that made people feel unsafe and uncertain, and that always changed the product consistency

But the world will always change in an unexpected way, so the ability to be able to change might be needed for survival. Every change could also lead to ruin, so who have the right to decide this change? And who can be responsible for the result of the change if it turns out to be a disaster?

If we really need to do the change, it should be very well understood, tested by the mass and it never change the consistency of BTC itself
Jump to: