Pages:
Author

Topic: SPV Mining and how to slow it down ... if you care to ... - page 2. (Read 12859 times)

sr. member
Activity: 278
Merit: 254
Well Prop by design is flawed - so people don't use it any more.
PPS by design is flawed - but pools still use it ... ... ...

I wonder what people think about block withholding attacks,  particularly the advisability, morality and/or legality thereof.
sr. member
Activity: 278
Merit: 254
Payment systems that rely on transaction confirmation suddenly are in a position where they no longer know if their confirmed transactions are confirmed at all.

Transaction confirmation tends to be rather important ...

If >50% of the network is mining on an "invalid fork" then is that fork "invalid"?

It is never certain whether a bitcoin transaction is confirmed or not.  There is always a risk that a transaction can become unconfirmed in a reorganization.  It is up to payment systems to deal with this intrinsic behavior of bitcoin.  The presence of occasional SPV mining might increase the number of blockchain reorganizations, making it desirable to use a more conservative number of confirmations before releasing goods.  But SPV mining also reduces the orphan rate, so the reduced orphan rate lowers the risks associated with small numbers of confirmations.  Note that payment processors can always run a full node and make sure that any blocks in the chain up to their payouts are valid.  If they don't run a full node, then they have to trust any full nodes that their client uses.

If there is a significant risk, IMO it comes where a payment system uses an SPV client to access a "full" node that isn't validating the entire chain.  I'm not sure this extra risk is particularly bad, because it increases the incentives for people to run a full node.

Another way to look at this is that the miners are primarily performing an ordering and publishing process.  Miner validation doesn't really provide that much security when there are hundreds of times more full nodes that validate blocks for their users than nodes that mine a majority of the hash power.  (However, mining validation does serve a spam prevention purpose, otherwise double spends would pollute the block chain with useless data for transactions that will be rejected by every honest full node.)

The case of differences of opinion as to block validity is a separate issue from SPV mining.  It ultimately comes down to what is, or is not, "bitcoin" and how disputes between Alice and Bob get settled when Alice she claims she paid Bob and Bob rejected the payment because their definitions for "bitcoin" differed.

legendary
Activity: 4592
Merit: 1851
Linux since 1997 RedHat 4
Well Prop by design is flawed - so people don't use it any more.
PPS by design is flawed - but pools still use it ... ... ...
sr. member
Activity: 278
Merit: 254
I'm curious how many people and hash power outside of China mine in Chinese pools.  Even more curious as to the reasons why they do this.  (If a majority of mining were in Antarctica I would be asking a different question.)

A surprising amount. I've even seen quite a few respected members on bitcointalk say they're mining on f2pool/antpool. Pretty sad when you've got great alternatives like this pool.

They just think that they'll be able to get more profit at that pools (especially using PPS reward scheme) than at other pools.

Maybe some of these people are mounting a deliberate block witholding attack on these large PPS pools.
legendary
Activity: 2030
Merit: 1076
A humble Siberian miner
I'm curious how many people and hash power outside of China mine in Chinese pools.  Even more curious as to the reasons why they do this.  (If a majority of mining were in Antarctica I would be asking a different question.)

A surprising amount. I've even seen quite a few respected members on bitcointalk say they're mining on f2pool/antpool. Pretty sad when you've got great alternatives like this pool.

They just think that they'll be able to get more profit at that pools (especially using PPS reward scheme) than at other pools.
legendary
Activity: 1764
Merit: 1002
Payment systems that rely on transaction confirmation suddenly are in a position where they no longer know if their confirmed transactions are confirmed at all.


why are you saying this?
legendary
Activity: 4592
Merit: 1851
Linux since 1997 RedHat 4
Correct, but the issue is that people who make decisions based on confirmations can no longer be 100% sure if the confirmations are valid.

If bitcoin has no stability of confirmation of transactions it's value is greatly in question.

An earlier big fork a few years back, some bitcoin dev had the not so bright idea that going against the 'valid' fork was the solution.
The biggest pools agreed and thus any transactions that were in the valid fork were no longer guaranteed to have been confirmed.
Yeah that's directly against what you've said.

You can look at Bitcoin as an altcoin where they are all scams and who knows what altcoin is going to appear tomorrow and which one will no longer exist or have any exchange value the next day.
However, Bitcoin is no longer is in that arena and hasn't been for many years.
So simply saying that "yeah it's whoever feels like doing whatever they want" wont work any more.

A $4billion currency requires consensus among those who control more than 50% of it ... ... ...
The actual problem of course is that more than 50% control exists already and that continuing will indeed be the downfall of bitcoin.
I'm sure someone could go make a news breaking article about this current problem in Bitcoin and make the news headlines and we'd see the price of bitcoin fall drastically ...

P.S. A BIP101 chain will never be longest. It rarely ever even gets a block attributed to it.
legendary
Activity: 1153
Merit: 1000
Payment systems that rely on transaction confirmation suddenly are in a position where they no longer know if their confirmed transactions are confirmed at all.

Transaction confirmation tends to be rather important ...

If >50% of the network is mining on an "invalid fork" then is that fork "invalid"?
It is up to each user what is invalid and what is valid. That is distributed consensus.

If a BIP101 chain is the longest, Maxwell is free to consider it invalid and continue working on the 1MB chain (as he as said he would). To Maxwell a 1MB chain used by 10 people would be the valid chain. To many others the longer chain used by many would be the valid chain.

Eventually the two sides would not be able to transact with each other, this is fine.

We are all free to choose which chains we consider valid or not valid.

I think the chain that follows Satoshi's vision and white paper as a global payment system everyone can interact with directly is the valid chain, and will follow that even if it is shorter and used by fewer people for a time. That is my choice and option, no 3 core devs can tell me otherwise or force me to accept chains that are a fork from Satoshi's clearly stated vision.
legendary
Activity: 1764
Merit: 1002
Payment systems that rely on transaction confirmation suddenly are in a position where they no longer know if their confirmed transactions are confirmed at all.

Transaction confirmation tends to be rather important ...

If >50% of the network is mining on an "invalid fork" then is that fork "invalid"?

we need bigger blocks to clear out those mempools
legendary
Activity: 4592
Merit: 1851
Linux since 1997 RedHat 4
Payment systems that rely on transaction confirmation suddenly are in a position where they no longer know if their confirmed transactions are confirmed at all.

Transaction confirmation tends to be rather important ...

If >50% of the network is mining on an "invalid fork" then is that fork "invalid"?
sr. member
Activity: 278
Merit: 254
if you read my post above about what appears to be the granularity of how the bip66 fork actually happened, if Lightsword is correct, then upgrading that one Antpool node from v2 to v3 should've solved the forking problem:

https://bitcointalksearch.org/topic/m.13205888
And that is precisely why SPV mining is bad.  One bad actor - in this case a single node - relayed a block that never should have been included in the first place, and wouldn't have been if it was properly validated.  Then it got compounded because the other pool saw the block, also didn't bother validating it, then built a block on top of it.

This "problem" was definitely a problem for some miners who lost block rewards.  How much of a problem was it for users of bitcoin?   If it was a large problem for a few miners and a tiny problem for the rest of bitcoin, could this perhaps been a demonstration of the Bitcoin incentive structure working?

If someone believes this analysis is incorrect, I'd like to see a cogent explanation of who was hurt and/or how people could have been hurt.
legendary
Activity: 1260
Merit: 1008
In this case, where they know the previous block is valid b/c they mined it, why wouldn't they simply mine the next with tx's in it?  the reason these spv miners do what they do is b/c they don't want to waste time validating another pools just received block, which is not the case in this situation since it's their own.
It is both as can be seen when 2 blocks back to back come from an SPV pool and the 2nd block has zero txns. The reason is they've not gone to the effort to make the bitcoind validation process fast in their own nodes and they don't want to wait for bitcoind to validate the block (it takes time) before starting on their next block. For solo.ckpool.org and kano.is we run a customised bitcoind which speeds up the validation process dramatically, making this delay negligible.

fantastic. just out of curiosity did you submit your bitcoind changes upstream? I would be interested in knowing which kind of changes you applied so I wonder if there's a PR somewhere on Bitcoin core github repo.

in any case keep up the good work!
legendary
Activity: 1764
Merit: 1002
if you read my post above about what appears to be the granularity of how the bip66 fork actually happened, if Lightsword is correct, then upgrading that one Antpool node from v2 to v3 should've solved the forking problem:

https://bitcointalksearch.org/topic/m.13205888
And that is precisely why SPV mining is bad.  One bad actor - in this case a single node - relayed a block that never should have been included in the first place, and wouldn't have been if it was properly validated.  Then it got compounded because the other pool saw the block, also didn't bother validating it, then built a block on top of it.

precisely.

i wasn't condoning it.  i am just trying to explain it.  which is why delving into the technicals is so important so that hopefully we can understand how to counteract these subversive activities.
legendary
Activity: 1344
Merit: 1024
Mine at Jonny's Pool
if you read my post above about what appears to be the granularity of how the bip66 fork actually happened, if Lightsword is correct, then upgrading that one Antpool node from v2 to v3 should've solved the forking problem:

https://bitcointalksearch.org/topic/m.13205888
And that is precisely why SPV mining is bad.  One bad actor - in this case a single node - relayed a block that never should have been included in the first place, and wouldn't have been if it was properly validated.  Then it got compounded because the other pool saw the block, also didn't bother validating it, then built a block on top of it.
legendary
Activity: 1764
Merit: 1002
Well, the discussion goes to SPV Mining.
F2Pool is improving, as I can see it, so it is fair to say the message come through and they try their best.
AntPool still produce 0 Blocks. They do nothing, just counting their income.
Let's not confuse empty blocks with SPV mining.  F2Pool has definitely taken steps to reduce the number of empty blocks they produce.  Since macbook-air made his post:

KnC - 2 of 35 are empty
bw.com - 2 of 34 empty
AntPool - 13 of 81 empty
Eligius - 1 of 10
f2pool - 2 of 110

That's a far lower percentage than is typical for them, so whatever changes they made have produced noticeable results.

Having written this, the fact remains that f2pool, AntPool, etc continue to SPV mine.


Yes they all do and the forking issue remains with f2pool.

But all the others have both the forking issue and the empty block issue.

If we could get all spv miners to do what f2pool did about empty blocks. The forking issue would remain
But maybe they can figure a way to stop the forking issue. Which could be far greater problem then the empty block issue.
Is there another problem besides forks and empty blocks?

if you read my post above about what appears to be the granularity of how the bip66 fork actually happened, if Lightsword is correct, then upgrading that one Antpool node from v2 to v3 should've solved the forking problem:

https://bitcointalksearch.org/topic/m.13205888
legendary
Activity: 4256
Merit: 8551
'The right to privacy matters'
Well, the discussion goes to SPV Mining.
F2Pool is improving, as I can see it, so it is fair to say the message come through and they try their best.
AntPool still produce 0 Blocks. They do nothing, just counting their income.
Let's not confuse empty blocks with SPV mining.  F2Pool has definitely taken steps to reduce the number of empty blocks they produce.  Since macbook-air made his post:

KnC - 2 of 35 are empty
bw.com - 2 of 34 empty
AntPool - 13 of 81 empty
Eligius - 1 of 10
f2pool - 2 of 110

That's a far lower percentage than is typical for them, so whatever changes they made have produced noticeable results.

Having written this, the fact remains that f2pool, AntPool, etc continue to SPV mine.


Yes they all do and the forking issue remains with f2pool.

But all the others have both the forking issue and the empty block issue.

If we could get all spv miners to do what f2pool did about empty blocks. The forking issue would remain
But maybe they can figure a way to stop the forking issue. Which could be far greater problem then the empty block issue.
Is there another problem besides forks and empty blocks?
legendary
Activity: 1344
Merit: 1024
Mine at Jonny's Pool
Well, the discussion goes to SPV Mining.
F2Pool is improving, as I can see it, so it is fair to say the message come through and they try their best.
AntPool still produce 0 Blocks. They do nothing, just counting their income.
Let's not confuse empty blocks with SPV mining.  F2Pool has definitely taken steps to reduce the number of empty blocks they produce.  Since macbook-air made his post:

KnC - 2 of 35 are empty
bw.com - 2 of 34 empty
AntPool - 13 of 81 empty
Eligius - 1 of 10
f2pool - 2 of 110

That's a far lower percentage than is typical for them, so whatever changes they made have produced noticeable results.

Having written this, the fact remains that f2pool, AntPool, etc continue to SPV mine.
legendary
Activity: 1764
Merit: 1002
Eligius doesn't SPV mine... yes, they produce empty blocks on that pool, but it is a byproduct of the way the pool distributes work.
Well, yes you could word it that way.

or in detail:

What eligius does is they send out empty block work every block change.
Then soon after, they send out block work with transactions.
During this gap, empty blocks can of course be generated.
The length of the gap can be determined by seeing how often, over a long period of time, they produce empty blocks.

Their excuse is that it is faster than sending out block work with transactions the first time.
Of course it is faster, but faster than what else?
eligius is SLOWER than my pool https://kano.is that always sends out block work with transactions.

They are blaming bitcoin for their poor pool software performance and thus producing empty blocks to compensate for their skill level.
The problem is their pool software performance.
Rather than resolve that, they instead blame bitcoin and produce empty blocks.

ty Kano.

one day this will all be sorted out.  the good news is you've put in the hard effort to make it so.  which will give you an advantage when the dependence on fees escalates.  like maybe around July.
legendary
Activity: 1708
Merit: 1020
In this case, where they know the previous block is valid b/c they mined it, why wouldn't they simply mine the next with tx's in it?  the reason these spv miners do what they do is b/c they don't want to waste time validating another pools just received block, which is not the case in this situation since it's their own.
It is both as can be seen when 2 blocks back to back come from an SPV pool and the 2nd block has zero txns. The reason is they've not gone to the effort to make the bitcoind validation process fast in their own nodes and they don't want to wait for bitcoind to validate the block (it takes time) before starting on their next block. For solo.ckpool.org and kano.is we run a customised bitcoind which speeds up the validation process dramatically, making this delay negligible.
Maybe your speed ups could go into the official client?
legendary
Activity: 2483
Merit: 1482
-> morgen, ist heute, schon gestern <-
 Wink I don't mine there as well.
Pages:
Jump to: