Post
Topic
Board Bitcoin Discussion
Re: Why Bitcoin Core Developers won't compromise
by
AgentofCoin
on 19/05/2017, 23:48:26 UTC
Without the full nodes rejecting the non signaling segwit blocks, the miner would not have decided to forked. Without him forking, the market would not be able to determine the outcome.
So essentially your proof of power of full nodes is: full nodes have power over miners, because full nodes have power over miners.
No, seriously.  You talk about a "proof of power" and you assume in your proof what you need to prove Smiley
...
Full nodes have the power to accept or deny the miners work.
... for themselves.

No, that is what you wish to believe.

The economy and community does not follow the miners, they only
follow valid work.

There is no such thing as community.  There are individual entities that make individual choices, but that are limited to the technical capabilities they have.  There is no notion of "valid work".  There are just external factors, and each entity's own decisions.  The whole of this behaves in a certain way.

Bitcoin was designed to call by definition "valid work" (but it is called "consensus") what emerges as the block chain.  No more, no less.  That's its basic tenet.  If it is on the block chain, by definition, it is valid, and if it is not there, it "doesn't exist".  As such, the only judges of valid work, are those that make a block chain, and for that, a technical necessity was introduced, proof of work.  So not just anyone can pretend to build a block chain, he has to provide cryptographically secured proof of work.

Of course, dissent can happen, and then, several different block chains, with different rules, can be built.  We're talking about forking.   As such, there are two notions of "valid work", namely the two chains.

What you can do, as an outsider to that writing of block chains, is download and read the data.  That's it.

No. I disagree with your answer and again you ignore what I am saying.

Valid work is not Consensus, you are confused. Consensus is the combination
of PoW (Work) & Verification (Valid). If Miners only do PoW, and ignore Validation,
it falls to the Verifying Nodes to check Validation. If you don't understand that,
you likely don't want to. I'm talking very plain here.



If the miners wish to consistently mine in opposition
of the verifying node network, then they will lose everywhere except
amongst themselves. Their recent work becomes worthless and will be
orphaned. The economy and community rejects that recent work.
"orphaned" means, that miners are building ANOTHER chain.  Again, you are making a logical mistake.  No non-miner can orphan anything.  Orphaning means: a block that is a small fork, but has no other blocks built onto it, while his parent (or his parent's parent, or ....) has ANOTHER successor (built by a miner of course) on which a continuing chain is being built.  These notions have NO MEANING outside of what miners do.

As a non-mining node, you cannot "orphan" a block, because you cannot BUILD a competing chain !

You are ignoring my argument and nitpicking certain terms.
You are stating the obvious. Are you really this oblivious to what I am saying?

The violating chain will be orphaned by the violating miners themselves, when
the verifying nodes alert the network of an issue. The miners will then find themselves
alone and will either correct themselves or the community will contact them and tell
them to correct. This scenario assumes the miners are not attacking, but is only a mistake.



They only receive each others blocks for expedited mining, not for verification.
The verification is done individually (and sometimes not at all) as well as by the
verifying node network. If all miners say the work is valid, yet the verifying node
network says it is not, the exchanges and community are alerted and stops since
the miners are building a bad chain. It is then possible that the miners caused this
invalidated chain either on purpose as a collective attack or as a mistake.
But again, if all miners say the work is valid, they don't orphan it, and *it is the only chain that is available* to users.

So, in as much exchanges and users are aware of this, they have only two options:
A) accept the sole chain that is out there
B) not accept it and STOP.

Now, as I outlined already several times, choices are made INDIVIDUALLY, and so each entity by itself can chose to continue using bitcoin the way it is (the existing chain, which, by definition of consensus, is "the valid one"), or simply STOP, but then they cannot transact any more, cannot receive anything any more.  Do you really think that individually, each user will decide to forego his ability to transact, while his competitors can still do so ?

Again, you ignore what has actually occurred in the past.
The exchanges stop accepting and withdrawing transaction. They freeze.
Then wallet developers and Bitcoin developers sent out alerts throughout the
Bitcoin Social Media Sites and advise all Bitcoiners to not sent transaction until
the issue is resolved.

If miners perform a mistake or an attack, we will do this again.



This exactly happened in the past (was a miner mistake then) and the economies
and community stopped transacting and rolled back their work (orphaned that chain).
The verifying node network saw that they were not validating their work (built bad chain)
and stopped everyone from using that chain. Your attempted argument now ignores
this historical event that proves my viewpoint. Your argument contradicts what did occur
in the past and what the community lived and learned from.
Ah.  You mean that all miners had been mining for a while a "wrong" chain, and then, because users stopped transacting, they decided to wind back the chain collectively, under pressure of the non-mining nodes ?  That never happened.
You are talking about the bug  of 8/8/2010 - I suppose that's a joke ; or you are talking about the rollback of 11/3/2013, when there was a genuine hard fork in bitcoin due to two incompatible versions ?   What happened then was that miners forked accidentally.  And those on the buggy fork graciously stopped their fork.  They could have continued too, but at that date, nobody knew what such things would do.

Oh graciously? That's an interesting word in light that your argument is that "miners always
build valid blocks on the only valid chain that they singularly determine to be valid". Lol.
Miners are blind busy-workers only intended to reconcile differences, yet many times they
aren't paying attention.

The miners in both events, didn't even know what was occurring in real time. They were not
monitoring the network. They were blinded as that there were two forks. The only reason why
miners were alerted was because non-mining nodes were detected to the issues and then
non-miners determined which chain to orphan. The miners then complied with that advice.
Gracious is pretty brown-nosing.


Note that this didn't have anything to do, AGAIN, with non-mining nodes.  MINING nodes were making two different block chains by error, because there was a bug in version 0.8 that allowed big blocks (huhuhu), and other miners, still running version 0.7 didn't accept that, and made another fork.  

This is absolutely not what one is talking about here.  This was considered, back then, as a bug, not a matter of choice or power.
And at that time, the mining industry wasn't yet entirely separate from the customers/users, and Core was still the accepted sole centralized authority that decided about everything.

You clearly do not understand what I have been trying to explain.
You are too busying trying to prove that verifying nodes do nothing at all.

If you are correct, then the miners should have hardforked for larger blocks long ago.
Everyday they do not perform a hardfork, is a day that my argument is correct and
yours is based on wishful thinking.



Nope. You have confused and combined two individual systems.
You have combined PoW with verification. They are separate systems and not
contingent upon the other. One involves computational hashing work and the
other involves validation of origins. Your understanding of modern mining is
incorrect.
What you don't seem to understand, is that if you have no power to build a new block on top of an old one, which is the sole WAY to validate the old block, your validation is without any power.  PoW means that there's only one way to validate a history, to turn it into a consensus: building on what you want to validate.  As such, the only ones that have power to validate, are mining pools.

Yes, you can VERIFY FOR YOURSELF.  But that's only *informational*.  You can see "hey, the consensus, validated by PoW, wasn't following the rules I have in my software here".  So now you know. But that's it.  Your "validation" has no value in the consensus mechanism, because you didn't build on top of it with PoW.

"valid chain" is the chain that is being build.  If a chain forks, there are two alternative "valid chains".  But the only ones deciding about what's valid or not, are those that validate an old block, by putting a new block on top of it.  

No. PoW does not always need to be valid work. There are no mechanisms that
exist within the PoW Consensus mechanism that determines if the work is valid.
Validity only comes from verification of the contents of that work. Fake work
could be performed upon fake blocks and repeated. Validation only exists when
a miner or a verifying node intentionally check and verify the contents.



You ignore that miners can create bad blocks and other miners could choose
to build on those bad blocks, thus creating bad chains.

Then, BY DEFINITION of PoW consensus, this is the good chain.  The good chain, is by definition, what is built with PoW on top of one another.  The definition of good block is the one on top of which miners build.  

There can be forks, and then there are two alternative "good chains", with different notions of "good".

LOL! Well there you have it. Your understanding is fucked.
I will make it very simple.

Scenario 1 - Valid Work
Miner PoW + Miner Validation + Protocol Compliance = Good Chain (Level 1 - Miner)
Verifying Node Validation + Protocol Compliance = Good Miner Chain (Level 2 - Everyone Else)

Scenario 2 - Non-Validated Work aka Invalid Work
Miner PoW - Miner Validation + Protocol Compliance = Unknown Chain (Level 1 - Miner)
Verifying Node Validation + Protocol Compliance = Good or Bad Miner Chain (Level 2 - Everyone Else)

Scenario 3 - Protocol Violating Work aka Invalid Work
Miner PoW + Miner Validation - Protocol Compliance = Unknown Chain (Level 1 - Miner)
Verifying Node Validation + Protocol Compliance = Good or Bad Miner Chain (Level 2 - Everyone Else)

Scenario 4 - Non-Validated & Protocol Violating Work aka Invalid Work
Miner PoW - Miner Validation - Protocol Compliance = Unknown Chain (Level 1 - Miner)
Verifying Node Validation + Protocol Compliance = Good or Bad Miner Chain (Level 2 - Everyone Else)

Scenario 5 - Bad PoW & Non-Validated & Protocol Violating Work aka Invalid Work
Miner PoW - Miner Validation - Protocol Compliance = Bad Chain (Level 1 - Miner)
Verifying Node Validation + Protocol Compliance =  Bad Miner Chain (Level 2 - Everyone Else)

If Bad PoW is performed in any different version of a block scenario combination,
it is always rejected as a bad block. Verifying Node do not need to check that work
since it is always wrong. There is no need to validate bad PoW.

My arguments apply to Scenarios 2 through 5. That is what I am talking about.
When I have talked about "Vetos" I am referring to Level 2 of each scenario.
When a Level 2 event occurs, Verifying nodes could rejects the miners invalid work.

It seems your argument is that scenarios 1 through 5 are always valid chains
because the miner says so. That is very laughable and I wish we could test your
belief in the real world, but unfortunately for me, not all miners are that dense.



In those events, where
is the "Veto Power"? Where is the "checks & balances"? That is performed by
the Verifying Node network and you're purposefully ignoring that aspect for the
sake of your misunderstood argument.

Nope.  As you can technically see, there is no veto power to be had, because by definition, the chain being build is the good one.  But your full node can INFORM you that what is now out there as "good chain" is not being built according to the rules that were put in your software.  That's all.  You can take your economic decisions based upon that, but even if you don't like it, and you want to sell your coins, you will have to accept the new chain, at least for the time of you transacting and selling your coins.  Because if you don't accept that chain, you cannot do ANYTHING.

Nope. You talk nonsense. As you can see above in my Scenario example, there
are times where valid work is not valid. You are redefining terms to fit within
your word games. Valid work is always independently verified. Block on top of
block does not guarantee verification. Only by checking the PoW and the block
contents is the work valid.

Under your misguided definition, if all miners stop verifying data or violate the
protocol, and they build blocks that are all lies, you would still consider that
good and valid work. If that is what you are really saying and believe, I'm
disappointed that I bothered to explain my view point to you, since you are
unsalvageable or just malicious.



This comment is irrelevant and in a way actually proves my point. Miners are
blind to the realities of the network and how it functions, and instead are only
concerned with the "rat race" that they conduct between themselves. They have
existed in this ignorant state for so long, they have deluded themselves into thinking
they are the controllers of the chain based upon outdated and incorrect Bitcoin theory.

This is simply because in bitcoin, they *define* what is the valid chain.  They don't have to take into account anything else.  By definition of "consensus by PoW", the chain on which miners build, is the valid chain, and the rules by which they build it, is the de facto protocol.   You can use that chain, or you can refuse to use it, and if you refuse to use it, you locked yourself out from any transaction possibility.

It is quite amazing that people don't seem to understand the fundamental consensus mechanism by proof of work.  There is no such thing as "verification consensus".  The only consensus that exists, is the one that is given by proof of work.  According to bitcoin's fundamental design.  And the "valid protocol by consensus" is WHATEVER is the rule set that comes out of this consensus mechanism.

Lol. No, your statement and understanding is an oversimplification of what is
actually occurring. PoW is one part. What you are arguing is only part of the story.



So if that consensus mechanism, today, says that bitcoin is the stuff made with blocks of 1 MB, then today, that's part of bitcoin's consensus.  If tomorrow, we DISCOVER that the only block chain out there has 10 MB blocks, then we can *observe* that the consensus protocol is visibly the one that has 10 MB blocks.  If in a few years, we *discover* that the only chain out there has block rewards of 500 BTC per block, then we can *observe* that the consensus protocol of bitcoin is one in which each block has a block reward of 500 BTC.   Consensus protocol is an emerging property, and is defined by whatever are the rules according to which the sole active chain out there is discovered/observed to be made.  However, individual antagony between miners and their resulting catch-22 for changing anything is such, that most probably, this consensus protocol is largely believed to be immutable.  But that is a property that is still to be seen, although, up to now, it seems to hold water.  Only a centralized force can modify that, if it can influence more than 51% of the hash rate.  In the past, Core was the central authority of bitcoin, and could hence impose the rule changes simply because all miners downloaded their software and blindly used it.  So in the past, the consensus protocol could change by Core's desires.  

This is irrelevant to our discussion.
Changing the protocol in the future and whether immutability actually exists  
within a blockchain system are entirely separate topics.



But on top of that, we are in fact discussing a totally different situation.  Miners, for the moment, are not deviating from what is bitcoins' protocol.  In fact, what some desperately try to do, is to FORCE miners to deviate from the protocol they have been using until now.  This is even more impossible for non-mining nodes.  If miners keep on happily making the chain like they are used to, and suddenly, some nodes decide to CHANGE THEIR SOFTWARE, and find out that the new software has new rules that don't comply with how the miners have been making the whole chain all this time, then this *really* doesn't matter for those miners.  Note that in the few "rollbacks" we've seen, it was the NEW software that miners installed, that forked off, and one REVERTED to the old protocol, graceously (simply because nobody WANTED to make a fork).  If you install new, incompatible software with what is going on, and your new software is not going to agree with what is being produced, then that's really absolutely of no significance.

This is irrelevant to our discussion.
I have no interest in Verifying Nodes that change the rules in an attempt to
compel the miners to those new rules. Your are changing the topic. In this
recent argument, it is no wonder why you are arguing against my Verifying
Node view point. The real reason you are disagreeing with me, is that you
don't like the logic that it leads to into the UASF proposal. Whether my logic
flows into the UASF proposal is irrelevant and I am only discussing what
Verifying Nodes have been doing since 2010.

So the reality is that your fear of UASF has blinded you to my point unrelated
to UASF.


In a way, we are discussing how non-mining nodes could impose deviations from the protocol by their sheer majority.  You could see this as a way of attacking bitcoin: if ever a sheer majority of non-mining nodes can impose any modification of the protocol rules, and hence, make miners deviate from what was the set of rules by which the block chain was to be made, this would be an easy way of attacking bitcoin !

In fact, you could almost say that if ever this worked, if ever, putting a new protocol on full nodes, and by majority of full nodes, you force that new protocol upon miners, then bitcoin is in great danger.  Because I can just write any new protocol code, launch it on 10 000 nodes, and that would mean that miners have to comply to what I now launch as a new protocol ?  Even if it means, for instance, that every new block now contains a coinbase transaction to my address with 200 new coins ?  If I modify Core software to do that, and then I launch this on 10 000 nodes, miners are obliged to follow my protocol ?

This is irrelevant to our discussion. I never made statements to the contrary of
what you are now expounding upon. You are talking to yourself here.

You ignore my statements in order to make a speech about some of the flaws in
UASF proposal. You are telling me what I already know and have never argued for.
I am talking about non-mining validating nodes and whether they have value to the
network or not. Your argument has been that they provide no service and that miners
should be worshiped as trusted noble parties.

My argument is miners serve the network, the network does not serve them.
If a point comes where the network serves them, the network is worthless and
the miners will be the last to know, as usual.