Pages:
Author

Topic: Gavin coding SPV mining into Classic (Read 2668 times)

full member
Activity: 136
Merit: 100
March 18, 2016, 09:05:28 PM
#44
if you are going to do that you might as well make block times more reasonable around 1 minutes,  dump 99.999% of the PoW and make it efficient, return mining to CPU only, etc...  a simple XOR checksum would do, etc, etc...
administrator
Activity: 5222
Merit: 13032
March 18, 2016, 09:04:13 PM
#43
Now, if miners stop using that code --- and nothing in the node software can force them to do that AFAIK --- what kind of trade-off are we making? What are the risks?

The thing Luke pointed out is an extremely major issue, so it'd be crazy for anyone to use this until that behavior of mining software has been changed.

If that's addressed, then something like this change would make confirmations somewhat less reliable for lightweight wallets. You'd probably want several (3-6) extra confirmations to get the same level of security as before. However, the benefit is that it might be less of a problem for blocks to propagate slowly across the network. (Currently, if blocks take too long to propagate then it can cause orphan blocks for miners, and in severe cases protracted chain forks can result.) I'm not sure exactly how much benefit headers-first would actually bring, though. I guess maybe the benefit could be large enough to safely allow for larger block sizes, but my instinct is that the maximum benefit wouldn't actually be very large. More thought and measurements would be necessary.

If this was rolled out generally, several precautions would be necessary to ensure that a whole bunch of miners don't accidentally mine many blocks on top of an invalid chain. Furthermore, there's a nightmare scenario where the majority of miners mine on an invalid chain and never stop mining on it until manually fixed. Something like headers-first mining would have to ensure that these things are impossible, or that they could cause only small, limited damage.

Headers-first seems to me like mainly an improvement over the headers-only or validationless mining that some miners seem to be doing now, but not something ideal. I think that IBLT / weak blocks will be the real eventual solution to this problem.
full member
Activity: 136
Merit: 100
March 18, 2016, 09:02:01 PM
#42
headers only mining is dangerous and could result in loss of many blocks, if any one of the "headers only" blocks turns out to be fake null headers
or orphaned later

but it's good enough for now Smiley
legendary
Activity: 3920
Merit: 2349
Eadem mutata resurgo
March 18, 2016, 07:40:35 PM
#41
Validating a block takes around 300ms on my pool.
My pool has the 2nd highest average block size.

The highest is solo.ckpool.org that also has this tiny time to validate blocks.

So anyone using some argument about why empty blocks are required clearly has no idea about the facts and about coding.

The pro empty block argument is FUD to cover crappy pool software and low quality coders.

Yep ... so much fail flying around these days, there's bound to be an accident.
full member
Activity: 298
Merit: 100
March 18, 2016, 06:00:27 PM
#40
dont worry guys!

gavin says we dont need to plan against double spend attacks because it costs miners a whole block to attack someone! Roll Eyes

also, core supposedly has "zero clue what real-world security entails" -- coming from someone that says the whole network should assume that people are honest. thats the point of bitcoin right? to trust everyone else to be honest?

what a douchebag:



this kind of mindset will be the end of bitcoin. security first, always. if people blindly follow gavin's best-case scenario planning, all hes gonna say when shit hits the fan is "oops! bitcoin is an experiment after all!"
legendary
Activity: 1652
Merit: 1483
March 18, 2016, 04:45:08 PM
#39

nothing in this blog addresses the security concerns presented here. no mention of gains in mounting double spend attack vs cost to produce invalid blocks based on spv vulnerability. the 20 second window mentioned cannot be enforced at the node level, so anyone following non-validating miners is at risk of being on a bad chain. and not just for 20 seconds.

that blog is totally useless
legendary
Activity: 996
Merit: 1013
full member
Activity: 182
Merit: 107
March 18, 2016, 03:33:58 PM
#37
Well, did Gavin and Mike Hearn not try something similar with the XT implimentation? Sneaking in code to spy on people and blacklisting IP's was just one of the things they tried. This is one of the reason I am not supporting the Classic/Gavin fanboys. They hook you in the beginning by providing all the features people think they need and once they are in control, they will sneak in more things you do not want. A small tweak here and there. Do not give these guys the foot in the door, they will destroy Bitcoin.

Gavin I believe is doing what he thinks is best for Bitcoin. I just think he is wrong.

Hearn I have no respect for whatsoever.
hero member
Activity: 756
Merit: 502
CryptoTalk.Org - Get Paid for every Post!
March 18, 2016, 01:43:15 PM
#36
@exstasie @kano
Both header and POW are shared on the network (on head first mining), so the miner/pool can check if it's valid or not, in few ms.

In SPV mining the miner/pool only receive the header and NOT the POW.

That may be your definition of SPV mining but the important fact about Gavin's code is that miners are not validating transactions.

There can be a situation where a miner/pool can create an invalid block (with invalid tx), but to make it, he will still need to make a valid POW.
It means that the miner/pool will have to pay the same costs to find an invalid block as finding a valid one.

And? Are you suggesting that the benefits of double spending will never outweigh the costs in that case? That seems very silly. Do you realize that after the next reward halving, the reward vs. risk for miners to double spend doubles? And that this is true of every halving? Security from dishonest miners becomes increasingly important as time goes on.

And ... the invalid block will live only for 30 seconds at best.

Read up thread. That's apparently not true and there is nothing the stock node software can do about it.

(making invalid blocks is useless and uneconomic)

On its face, no it's not. It depends how much an attacker will gain by doing so.
staff
Activity: 4270
Merit: 1209
I support freedom of choice
March 18, 2016, 09:37:54 AM
#35
@exstasie @kano
Both header and POW are shared on the network (on head first mining), so the miner/pool can check if it's valid or not, in few ms.

In SPV mining the miner/pool only receive the header and NOT the POW.

There can be a situation where a miner/pool can create an invalid block (with invalid tx), but to make it, he will still need to make a valid POW.
It means that the miner/pool will have to pay the same costs to find an invalid block as finding a valid one.

And ... the invalid block will live only for 30 seconds at best.

The core rule of Bitcoin is more economic than technical, better financial results comes from working on the long interest of the network. (making invalid blocks is useless and uneconomic)
legendary
Activity: 4592
Merit: 1851
Linux since 1997 RedHat 4
March 18, 2016, 08:49:41 AM
#34
"SPV mining" was that the miner/pool was starting mining on the header without knowing if it was already validated.

Miners/pools were just guessing/hoping that it was right only because the interrogated pool was changing to a new header.

With "Head first mining" nodes spread validated header (because they validate the block after fully downloaded it)
I guess you are trying to imply that someone else has validated the transactions.

Well, that makes no difference since someone somewhere along the way has to validate it, and unless you control what validates it, you are SPV mining.

If you control what validates it, well, you are still having to wait for it to be validated, so yeah there's no sense in implying there's a performance gain unless you really are SPV mining and not validating it somewhere.

What I proposed to the devs was to allow a trust relationship to pass SPV headers to other btcd - to fully validate the header, excluding the contents of the merkle tree, is only nanoseconds.
Since all btcd SHOULD be validating the transactions (and core does this) it means of course you still need to validate them, but you don't have to wait for everyone you are connected to, to validate them also, i.e. allowing to choose to remove the largest repeated work before forwarding the block.

This is called "Black Magic" by gmaxwell:
"In general our experience suggests that trust settings are black magic that cannot be configured correctly even by experts"
https://github.com/bitcoin/bitcoin/issues/7049
legendary
Activity: 3542
Merit: 1965
Leading Crypto Sports Betting & Casino Platform
March 18, 2016, 01:28:35 AM
#33
Well, did Gavin and Mike Hearn not try something similar with the XT implimentation? Sneaking in code to spy on people and blacklisting IP's was just one of the things they tried. This is one of the reason I am not supporting the Classic/Gavin fanboys. They hook you in the beginning by providing all the features people think they need and once they are in control, they will sneak in more things you do not want. A small tweak here and there. Do not give these guys the foot in the door, they will destroy Bitcoin.
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
March 18, 2016, 01:10:34 AM
#32
Validating a block takes around 300ms on my pool.
My pool has the 2nd highest average block size.

The highest is solo.ckpool.org that also has this tiny time to validate blocks.
Minor correction. 300ms is the slowest block validation time. Some blocks are much faster to verify depending on how complex it is. Solo has different hardware and verifies in up to ~140ms by comparison.
full member
Activity: 187
Merit: 100
March 18, 2016, 12:50:07 AM
#31
To be honest I was way more bearish last year about Bitcoin but seeing it successfully defend itself against the Gavinistas has given me hope.  The community sees through these attacks now, including spv mining is such an obviously bad idea that I hope some of the Gavinistas finally see the light.
legendary
Activity: 1806
Merit: 1521
March 18, 2016, 12:03:30 AM
#30
"SPV mining" was that the miner/pool was starting mining on the header without knowing if it was already validated.

Miners/pools were just guessing/hoping that it was right only because the interrogated pool was changing to a new header.

With "Head first mining" nodes spread validated header (because they validate the block after fully downloaded it)

They are mining without validating blocks first. That's called SPV mining.

LOL..... you guys really trying to defend this bullshit? Gavin has gone off the deep end, and more and more people are realizing it. I'm all for improving on orphan risks. But not by jeopardizing user security. If it's not obvious to everyone why he is proposing this now then you aren't thinking hard enough. He's trying to buy off Chinese miners at the cost of our security.

Every action that Gavin takes further solidifies my choice to run a Core node and ignore miners that attempt to hard fork. Fork off, I don't give a shit anymore. Go ahead and break bitcoin's consensus. Scumbags like Gavin don't give a fuck about us, the users.
staff
Activity: 4270
Merit: 1209
I support freedom of choice
March 17, 2016, 09:13:24 PM
#29
"SPV mining" was that the miner/pool was starting mining on the header without knowing if it was already validated.

Miners/pools were just guessing/hoping that it was right only because the interrogated pool was changing to a new header.

With "Head first mining" nodes spread validated header (because they validate the block after fully downloaded it)
legendary
Activity: 4592
Merit: 1851
Linux since 1997 RedHat 4
March 17, 2016, 08:56:57 PM
#28
I think that the problem for china pools/miners is related to "download blocks", and not validate them.
Everyone has to download blocks to mine ... unless they are SPV mining.

Quote
Head first mining (that it isn't SPV mining), will work great with this too:
https://github.com/bitcoinclassic/bitcoinclassic/pull/147
The term "Head first" has nothing to do with mining, unless you are SPV mining.

SPV mining means mining off the header without validating the transactions the header confirms.
You can't just use the header to mine unless you are SPV mining.

Thus the term "Head first mining" makes no sense at all since it is simply SPV mining -
and thus no need to create a new name to hide that fact.
legendary
Activity: 4410
Merit: 4766
March 17, 2016, 07:42:54 PM
#27
I think that the problem for china pools/miners is related to "download blocks", and not validate them.

mining POOL servers do not need to be in the same physical location as the ASIC warehouse..

antpool for instance is in sanfransisco. while the warehouse of ASICS that just does the hashing element is in china, a short distance from the manufacturer. this avoids any delay in time for delivery and costs.

remember the pools processes the transactions/validates blocks. and the ASICS just hash away a small clump of data. the asics do not relay transactions (they are not nodes) they do not receive competitors blocks(syncing the chain). basically they have no hard drive and only have one job.. to hash.

so an asic behind the china firewall does not care, and the pool owner can have the pool server anywhere in the world, still connected to his asics in china
legendary
Activity: 2156
Merit: 1072
Crypto is the separation of Power and State.
March 17, 2016, 07:39:12 PM
#26
Jeez how much longer until Classic is finally confined to the garbage bin? How & why are some of the community still pushing this crap & backing Gavin?

Classic is a Trojan horse filled with allied Buttcoiners and CoinbaseCoiners.

The Buttcoiners failed to get Honey Badger's attention with their futile (albeit occasionally amusing) ass-clowning, so they're trying a new angle.

By pretending to be actual Bitcoiners, the media and other low-information institutions/individuals are more apt to take them seriously.

We can do the same thing back to them by feigning support for "Satoshi's Bitcoin" (a project that is not compatible with Classic's goals because it eventually changes the PoW).

Time to update the Classic #REKT thread with this latest hilarity from the Gavinista LOLcows!   Grin
staff
Activity: 4270
Merit: 1209
I support freedom of choice
March 17, 2016, 06:52:24 PM
#25
I think that the problem for china pools/miners is related to "download blocks", and not validate them.

Head first mining (that it isn't SPV mining), will work great with this too:
https://github.com/bitcoinclassic/bitcoinclassic/pull/147
Pages:
Jump to: