Pages:
Author

Topic: Segwit is a 51% attack on Bitcoin - page 2. (Read 946 times)

member
Activity: 119
Merit: 13
0x88628bf14F2391707bA9d1767f83c694Efd2a8B9
December 20, 2017, 09:31:17 PM
#57
Charlie lee has been warning against this for sometime already

I trust him
copper member
Activity: 630
Merit: 2614
If you don’t do PGP, you don’t do crypto!
December 20, 2017, 09:27:57 PM
#56
How exactly do non-mining nodes enforce the protocol?  They can say it is invalid, but what can they do about it?

Duh, they can ignore invalid blocks and ban the IP addresses of anybody who sends one.  To the Bitcoin protocol, invalid blocks simply do not exist.  To full nodes, invalid blocks simply do not exist.

ir.hn, stop spewing the same gibberish simultaneously over multiple different threads whilst ignoring, twisting, or dissimulating around all the thoughtful explanations given to you by smart people.  (Smart people, please stop wasting your time trying to explain to someone self-evidently ineducable; IMO the only task is to provide sufficient answer that newbies who happen across these threads won’t be misled by ir.hn’s disinformation campaign.)

Please stop spreading misinformation. This "attack" is not just limited to segwit; miners could have chosen to not verify signatures anyways before segwit activated. Regardless of whether segwit is activated, if a miner produces an invalid block because it contains a transaction that does not have a valid signature (again, regardless of segwit or not), other non-mining full nodes on the network will reject that block and the miner will be wasting his time and electricity.

Lets say all the non-mining full nodes reject the block.  Why would the miners care?  the miners are the one creating the blockchain.  You can cry foul all day long but unless you can vote with your hashpower on which chain is correct, you are yelling to the wind.

ir.hn:  You have no idea how Bitcoin works.  You have no idea how Segwit works.  Or at least, you are feigning gross ignorance.  In this thread and others, intelligent and well-informed people have attempted to educate you.  You shoot back with bare assertions and blatant misinformation.  Enough.

General point:  There is a common misconception about the role of miners.  Miners have one, only one, and exactly one job:  To provide the ordering of transactions in a Byzantine fault-tolerant manner (which in turn prevents double-spends).  That’s what miners do.  That is all miners do.  Granted, it is an important and resource-intensive job; that’s why miners get paid for it.  But that is the one and only security function of miners.

Of course, miners must validate each block they produce; if they didn’t, they would be unable to reliably produce valid blocks.  But miners are not the parties responsible for enforcing validation on the network.  Full nodes do that.  Each individual full node does that, so as to provide better security for its owner; and all full nodes collectively do that, thus providing validation security for the whole network.  Observe how here as everywhere, Bitcoin precisely aligns the individual’s selfish interest with the common good.

Full nodes do not blindly “follow the longest chain”.  They follow the chain independently validated by them which has the highest total POW.  A miner who produced invalid blocks would be wasting his hashrate, and likely risking widespread blacklisting of his IP address.  It doesn’t matter if the invalid blocks steal money from Segwit transactions, steal money from old-style transactions, create 21 billion new coins, or are filled with gibberish from /dev/random.  An invalid block is an invalid block, and shall be promptly discarded by all full nodes—period.

ir.hn is creating nonsensical non-arguments by exploiting the aforesaid misconception about the role of miners.  After all the attempts others have made to explain on this and other points, I cannot but conclude that ir.hn is maliciously spreading misinformation.  I write this post for the benefit of others.  I am uninterested in arguing with somebody who is a deliberate liar and/or so manifestly ineducable as to appear braindead.
member
Activity: 322
Merit: 54
Consensus is Constitution
December 20, 2017, 08:44:14 PM
#55

If all the non-mining nodes reject the block, then the vast majority of the network doesn't have a copy of it. It basically isn't a real block.

The network worked before there were ever non-mining nodes having a copy.  So if only the miners have a copy of the transactions then it is more than good enough.

Your example is like a straw poll.  The non-mining nodes had no real authority to actually enforce their conclusion.

Like I said the only vote that holds authority is if you win a block, then your vote on the previous block validity counts as a confirmation.

If you want to be PayPal, it is good enough for only miners to have a copy.  All nodes enforce the protocol regardless of your insistence that they do not.  Look at the code.


How exactly do non-mining nodes enforce the protocol?  They can say it is invalid, but what can they do about it?
legendary
Activity: 4270
Merit: 1313
December 20, 2017, 07:28:23 PM
#54

If all the non-mining nodes reject the block, then the vast majority of the network doesn't have a copy of it. It basically isn't a real block.

The network worked before there were ever non-mining nodes having a copy.  So if only the miners have a copy of the transactions then it is more than good enough.

Your example is like a straw poll.  The non-mining nodes had no real authority to actually enforce their conclusion.

Like I said the only vote that holds authority is if you win a block, then your vote on the previous block validity counts as a confirmation.

If you want to be PayPal, it is good enough for only miners to have a copy.  All nodes enforce the protocol regardless of your insistence that they do not.  Look at the code.
legendary
Activity: 4270
Merit: 1313
December 20, 2017, 07:17:41 PM
#53

If all the non-mining nodes reject the block, then the vast majority of the network doesn't have a copy of it. It basically isn't a real block.

The network worked before there were ever non-mining nodes having a copy.  So if only the miners have a copy of the transactions then it is more than good enough.

Your example is like a straw poll.  The non-mining nodes had no real authority to actually enforce their conclusion.

Like I said the only vote that holds authority is if you win a block, then your vote on the previous block validity counts as a confirmation.

If you mine an invalid block your “vote” isn’t counted by anyone except you...everyone else ignores you, and probably blocks your node if you do it enough. And it still isn’t a vote.
legendary
Activity: 4270
Merit: 1313
December 20, 2017, 07:15:35 PM
#52
So who cares if a non-mining node rejects a block?

Because no other node (including other miners) on the network will then accept any other blocks built upon that bad block and consequently no other transactions built on that block will be accepted.  So no miner will be able to spend the coinbase transactions - which means no reward for the miner.  Which means they aren't gaining anything, but are losing the entire block reward spending their electricity for nothing.  And wasting the capital invested in mining hardware.

Are we on the same page that the only node's vote that matters is miners?  Because the only vote you have is whether to mine on a block or not.  This act of mining on a block signifies you accept it.  So what do non-mining nodes have to do with this process?

Definitely not.  All nodes matter and, as above, they aren’t votes. All nodes enforce the protocol.  Any node that enforces different rules is a fork of bitcoin.  

Just put it to the reality test (as Carlton suggested): contact the mining pools and farms and see if they’ll use this idea. The answer has been explained above is that they won’t, but it seems like you don’t understand how bitcoin works well enough to see the problems with the suggestion and so for you, perhaps asking the current miners why they haven’t already been doing this will help you to understand.

This summer's BIP 148 was a great example of it.
member
Activity: 322
Merit: 54
Consensus is Constitution
December 20, 2017, 05:16:16 PM
#51

If all the non-mining nodes reject the block, then the vast majority of the network doesn't have a copy of it. It basically isn't a real block.

The network worked before there were ever non-mining nodes having a copy.  So if only the miners have a copy of the transactions then it is more than good enough.

Your example is like a straw poll.  The non-mining nodes had no real authority to actually enforce their conclusion.

Like I said the only vote that holds authority is if you win a block, then your vote on the previous block validity counts as a confirmation.

Sure the nodes have authority, as a group. If a miner violated BIP 148, they would have been forked off of the network, losing hundreds of thousands of dollars. If some miners want to make their own chain that breaks the rules of all the rest of the nodes, they can do that. But it will result in a currency split, creating two currencies, one where the miners are playing pretend and the other which was and still is the real bitcoin, where all the rest of the miners are still making money. That's if the dissenting miners aren't driven into bankruptcy before they can even confirm their own blocks, in which case it doesn't affect anyone else and there is no currency split.

How do you fork someone off the blockchain if you yourself do not create the blockchain?  The only way you can fork someone off is by mining faster then them on a different chain.  Yet non-mining nodes cannot do that.

If you mine an invalid block, you'll be forked off the chain. That's just how it works, you don't need to mine faster than someone for their invalid blocks to not be accepted.

Who enforces the invalidity of the block?  Is it not the fact that no miners will mine on top of your block if they determine it is not valid?  Therefore that would mean that the miners determine the validity of a block.
legendary
Activity: 1386
Merit: 1053
Please do not PM me loan requests!
December 20, 2017, 05:08:53 PM
#50

If all the non-mining nodes reject the block, then the vast majority of the network doesn't have a copy of it. It basically isn't a real block.

The network worked before there were ever non-mining nodes having a copy.  So if only the miners have a copy of the transactions then it is more than good enough.

Your example is like a straw poll.  The non-mining nodes had no real authority to actually enforce their conclusion.

Like I said the only vote that holds authority is if you win a block, then your vote on the previous block validity counts as a confirmation.

Sure the nodes have authority, as a group. If a miner violated BIP 148, they would have been forked off of the network, losing hundreds of thousands of dollars. If some miners want to make their own chain that breaks the rules of all the rest of the nodes, they can do that. But it will result in a currency split, creating two currencies, one where the miners are playing pretend and the other which was and still is the real bitcoin, where all the rest of the miners are still making money. That's if the dissenting miners aren't driven into bankruptcy before they can even confirm their own blocks, in which case it doesn't affect anyone else and there is no currency split.

How do you fork someone off the blockchain if you yourself do not create the blockchain?  The only way you can fork someone off is by mining faster then them on a different chain.  Yet non-mining nodes cannot do that.

If you mine an invalid block, you'll be forked off the chain. That's just how it works, you don't need to mine faster than someone for their invalid blocks to not be accepted.
member
Activity: 322
Merit: 54
Consensus is Constitution
December 20, 2017, 04:31:48 PM
#49

If all the non-mining nodes reject the block, then the vast majority of the network doesn't have a copy of it. It basically isn't a real block.

The network worked before there were ever non-mining nodes having a copy.  So if only the miners have a copy of the transactions then it is more than good enough.

Your example is like a straw poll.  The non-mining nodes had no real authority to actually enforce their conclusion.

Like I said the only vote that holds authority is if you win a block, then your vote on the previous block validity counts as a confirmation.

Sure the nodes have authority, as a group. If a miner violated BIP 148, they would have been forked off of the network, losing hundreds of thousands of dollars. If some miners want to make their own chain that breaks the rules of all the rest of the nodes, they can do that. But it will result in a currency split, creating two currencies, one where the miners are playing pretend and the other which was and still is the real bitcoin, where all the rest of the miners are still making money. That's if the dissenting miners aren't driven into bankruptcy before they can even confirm their own blocks, in which case it doesn't affect anyone else and there is no currency split.

How do you fork someone off the blockchain if you yourself do not create the blockchain?  The only way you can fork someone off is by mining faster then them on a different chain.  Yet non-mining nodes cannot do that.
legendary
Activity: 1386
Merit: 1053
Please do not PM me loan requests!
December 20, 2017, 04:25:18 PM
#48

If all the non-mining nodes reject the block, then the vast majority of the network doesn't have a copy of it. It basically isn't a real block.

The network worked before there were ever non-mining nodes having a copy.  So if only the miners have a copy of the transactions then it is more than good enough.

Your example is like a straw poll.  The non-mining nodes had no real authority to actually enforce their conclusion.

Like I said the only vote that holds authority is if you win a block, then your vote on the previous block validity counts as a confirmation.

Sure the nodes have authority, as a group. If a miner violated BIP 148, they would have been forked off of the network, losing hundreds of thousands of dollars. If some miners want to make their own chain that breaks the rules of all the rest of the nodes, they can do that. But it will result in a currency split, creating two currencies, one where the miners are playing pretend and the other which was and still is the real bitcoin, where all the rest of the miners are still making money. That's if the dissenting miners aren't driven into bankruptcy before they can even confirm their own blocks, in which case it doesn't affect anyone else and there is no currency split.
member
Activity: 322
Merit: 54
Consensus is Constitution
December 20, 2017, 04:11:53 PM
#47

If all the non-mining nodes reject the block, then the vast majority of the network doesn't have a copy of it. It basically isn't a real block.

The network worked before there were ever non-mining nodes having a copy.  So if only the miners have a copy of the transactions then it is more than good enough.

Your example is like a straw poll.  The non-mining nodes had no real authority to actually enforce their conclusion.

Like I said the only vote that holds authority is if you win a block, then your vote on the previous block validity counts as a confirmation.
legendary
Activity: 1386
Merit: 1053
Please do not PM me loan requests!
December 20, 2017, 04:00:23 PM
#46
So who cares if a non-mining node rejects a block?

Because no other node (including other miners) on the network will then accept any other blocks built upon that bad block and consequently no other transactions built on that block will be accepted.  So no miner will be able to spend the coinbase transactions - which means no reward for the miner.  Which means they aren't gaining anything, but are losing the entire block reward spending their electricity for nothing.  And wasting the capital invested in mining hardware.

Are we on the same page that the only node's vote that matters is miners?  Because the only vote you have is whether to mine on a block or not.  This act of mining on a block signifies you accept it.  So what do non-mining nodes have to do with this process?

Have you ever heard of a UASF? BIP 148 was a softfork that the nodes, not the miners, voted on. It said: after a certain time, make it illegal for miners to create blocks that don't vote for segwit. Since a lot of nodes adopted BIP 148, if miners didn't vote for segwit after that certain time, they would be mining "fool's gold" that they couldn't keep (as described in my post above). What happened when the nodes voted for BIP 148? The miners got scared and segwit was activated almost immediately. (First they voted for BIP 91, which also made it illegal to not vote for segwit, but from the miner's perspective too, not just the nodes.)

That bunch of dominos started falling because the nodes voted for BIP 148 by incorporating it in their software. It's why we have segwit today.

So who cares if a non-mining node rejects a block?
If a miner is mining blocks that the thousands of non-mining nodes are going to reject, then they simply aren't mining, they're just wasting millions of dollars of energy and hardware for the privilege of making blocks that nobody recognizes. Basically, they're mining fool's gold, except they don't even get to keep it.

What does it mean for a non-mining node to reject a block?  Does it mean they refuse to mine on it?  Because it's not like they were going to mine on it anyway.
If all the non-mining nodes reject the block, then the vast majority of the network doesn't have a copy of it. It basically isn't a real block.
member
Activity: 322
Merit: 54
Consensus is Constitution
December 20, 2017, 03:56:48 PM
#45
So who cares if a non-mining node rejects a block?
If a miner is mining blocks that the thousands of non-mining nodes are going to reject, then they simply aren't mining, they're just wasting millions of dollars of energy and hardware for the privilege of making blocks that nobody recognizes. Basically, they're mining fool's gold, except they don't even get to keep it.

What does it mean for a non-mining node to reject a block?  Does it mean they refuse to mine on it?  Because it's not like they were going to mine on it anyway.
member
Activity: 322
Merit: 54
Consensus is Constitution
December 20, 2017, 03:52:46 PM
#44
So who cares if a non-mining node rejects a block?

Because no other node (including other miners) on the network will then accept any other blocks built upon that bad block and consequently no other transactions built on that block will be accepted.  So no miner will be able to spend the coinbase transactions - which means no reward for the miner.  Which means they aren't gaining anything, but are losing the entire block reward spending their electricity for nothing.  And wasting the capital invested in mining hardware.

Are we on the same page that the only node's vote that matters is miners?  Because the only vote you have is whether to mine on a block or not.  This act of mining on a block signifies you accept it.  So what do non-mining nodes have to do with this process?
legendary
Activity: 4270
Merit: 1313
December 20, 2017, 03:33:44 PM
#43
So who cares if a non-mining node rejects a block?

Because no other node (including other miners) on the network will then accept any other blocks built upon that bad block and consequently no other transactions built on that block will be accepted.  So no miner will be able to spend the coinbase transactions - which means no reward for the miner.  Which means they aren't gaining anything, but are losing the entire block reward spending their electricity for nothing.  And wasting the capital invested in mining hardware.
legendary
Activity: 1386
Merit: 1053
Please do not PM me loan requests!
December 20, 2017, 03:29:38 PM
#42
So who cares if a non-mining node rejects a block?
If a miner is mining blocks that the thousands of non-mining nodes are going to reject, then they simply aren't mining, they're just wasting millions of dollars of energy and hardware for the privilege of making blocks that nobody recognizes. Basically, they're mining fool's gold, except they don't even get to keep it.
member
Activity: 322
Merit: 54
Consensus is Constitution
December 20, 2017, 03:17:22 PM
#41
So who cares if a non-mining node rejects a block?
member
Activity: 322
Merit: 54
Consensus is Constitution
December 20, 2017, 03:14:03 PM
#40
If there is no incentive for you to verify then what incentive would there be for the network to verify?  The problem is everyone will be more competitive if they stop verifying the signatures.

Your trolling is very poor quality (or you're totally insane, or unable to read)

You were just told what the incentive is, and that it's a very strong motivator.

And I made a pretty elaborate analogy to say why the network would tend to not verify, can you discuss how that is wrong?

The point is say you gain 10  seconds (1.6% blocktime) every block by not verifying the witness data.  One of your blocks is rejected by the network 1 out of 100 times (1%).  This practice gains you net profit.

The entire bitcoin network is made of nodes that verify signatures.  Everyone who uses bitcoins *wants* their node to verify signatures and they don't care if, assuming arguendo that it takes longer, it takes 10% (or 50%) more time to do so. If even 1% of the nodes stopped verifying it wouldn't matter to block verification because the other 156,520 (99% * 158,101) nodes would continue to do so and reject any blocks that had invalid signatures.  

It would be suicide for any miner to run node software that didn't verify signatures and to accept transactions with invalid signatures because the rest of the network - nodes and nodes other miners are using - would ignore them and they'd be on their own fork which would make them NO money.  In fact, it would open them up to a huge attack vector - other miners would sabotage them by submitting invalid transactions so their blocks would be ignored which would mean their hash rate would be worthless.

(And by the way your initial post is completely incorrect when it says "remove the signatures from the blockchain".)


*Number of nodes:
http://luke.dashjr.org/programs/bitcoin/files/charts/software.html

It all comes down to a business decision.  If miners determine that only 0.1% of blocks they skip verifying signatures is later rejected by the network and it saves them 10% of time to skip verifying signatures, then naturally they will start skipping signature verification.  I believe it is only a matter of time before this starts happening.  And like I said the more people skip verifying signatures, the amount of rejected blocks will decrease making it even more lucrative.

But yes I think you are right about the civil war you describe, when this starts happening people will try to skew that profitability metric by propagating false blocks to get the non-verifiers to mine wrong blocks.  But then if they are playing into the bad guys hands by ddosing the network and slowing it down.  So at that point bitcoin becomes a whirlwind of fraud and who is going to untangle it?
legendary
Activity: 4270
Merit: 1313
December 20, 2017, 03:11:02 PM
#39
So if code is released that skips the signature verification part and makes miners make more money, then the more miners adopt this code, the fewer of their blocks will be rejected and the more "valid" blocks they will create.  Thus the amount of extra money they make will snowball and get bigger and bigger.

You can keep on saying that, and it will still never happen. It's impossible while there are still regular people running full Bitcoin nodes. And as long as people have the resources to run full Bitcoin nodes, they will.


Let's put it this way: your detractors in this thread are very confident you are wrong. Why not email the major mining pools & mining farm owners to tell them about this extra money you believe they can make? Responsible behaviour is certainly not a reason, you should be trolling contacting the Bitcoin developers about this privately, not exposing it publicly so that the miners (according to your non-logic) can make malicious use your "exploit"

That's not how I operate, I am open source.  I don't support centralization by telling only select people of flaws, I tell everyone so they can prepare properly and not be blindsided.

And please explain how non-mining full nodes vote on block validity?

I think you missed the point. Carlton's point was: contact the pools and mining farm owners, let them know about this idea, and if it is a good one, they'll use it.  If it is incorrect they won't.  That way you won't have to argue with people here, you will have a real world demonstration as to whether the idea is good or not.  Unless you think the miners don't understand the bitcoin protocol either.  You could just direct them to this thread and then see how quickly (or never) they take up this idea.

As far as "voting": Nodes reject invalid blocks.  Go ahead an create an invalid block and see what happens to it when you broadcast it from your node.  It isn't a vote, it is an outright rejection of invalid blocks by anyone running a bitcoin node.


legendary
Activity: 4270
Merit: 1313
December 20, 2017, 03:04:01 PM
#38
If there is no incentive for you to verify then what incentive would there be for the network to verify?  The problem is everyone will be more competitive if they stop verifying the signatures.

Your trolling is very poor quality (or you're totally insane, or unable to read)

You were just told what the incentive is, and that it's a very strong motivator.

And I made a pretty elaborate analogy to say why the network would tend to not verify, can you discuss how that is wrong?

The point is say you gain 10  seconds (1.6% blocktime) every block by not verifying the witness data.  One of your blocks is rejected by the network 1 out of 100 times (1%).  This practice gains you net profit.

The entire bitcoin network is made of nodes that verify signatures.  Everyone who uses bitcoins *wants* their node to verify signatures and they don't care if, assuming arguendo that it takes longer, it takes 10% (or 50%) more time to do so. If even 1% of the nodes stopped verifying it wouldn't matter to block verification because the other 156,520 (99% * 158,101) nodes would continue to do so and reject any blocks that had invalid signatures.  

It would be suicide for any miner to run node software that didn't verify signatures and to accept transactions with invalid signatures because the rest of the network - nodes and nodes other miners are using - would ignore them and they'd be on their own fork which would make them NO money.  In fact, it would open them up to a huge attack vector - other miners would sabotage them by submitting invalid transactions so their blocks would be ignored which would mean their hash rate would be worthless.

(And by the way your initial post is completely incorrect when it says "remove the signatures from the blockchain".)


*Number of nodes:
http://luke.dashjr.org/programs/bitcoin/files/charts/software.html
Pages:
Jump to: