Pages:
Author

Topic: A simple method to (probably) prevent big pools from 51% attacking (Read 3033 times)

legendary
Activity: 1138
Merit: 1001
Cool, if you're bored, dumb idea no.2, could someone tell me why just speeding up the blocks isn't an option?

As I understand it a big incentive of pool mining is consistency of earnings.
The blocks come around so infrequently that unless you're in a decent size pool you will experience a lot of volatility.

How hard is it to change the block reward to 0.25 and have a new block found every 6 seconds?

That way you're 100X more likely to find a block and it will decrease volatility of earnings, thereby dis-incentivising pool mining.
(Of course you would probably need to wait for 300 confirmations vs. 3 but it would take the same amount of time.)

When you solve a block, all the other nodes on the network aren't instantaneously aware of it through any sort of quantum entanglement.  Instead, you have to broadcast the block to your peers (who then relay it to their peers, who then relay it to ...).  This means it can take a little bit of time for the entire network to hear about a recently solved block.

Until they've heard about the recent block any miner (or mining pool) will still be diligently working on their own block.  If difficulty is such that blocks come very quickly, then it is far more likely that several people will all solve blocks before all the solved blocks have been relayed throughout the entire network.

This then creates a temporary fork in the blockchain with various sections of the network each working on a block for a different fork.  Eventually one of the forks will win out, but in the meantime, anyone who put any effort into any of the other forks will have wasted effort on orphaned chains.



Cool, thanks for the clear reply. Appreciate it! 

So I guess, 6 seconds is pretty crazy. But Litecoin seems to do OK with 2.5 minute blocks? Is something in this range possible for Bitcoin and do you think it would help with decreasing volatility in smaller pools or not really enough of a difference to justify such a major change.
legendary
Activity: 3388
Merit: 4615
Cool, if you're bored, dumb idea no.2, could someone tell me why just speeding up the blocks isn't an option?

As I understand it a big incentive of pool mining is consistency of earnings.
The blocks come around so infrequently that unless you're in a decent size pool you will experience a lot of volatility.

How hard is it to change the block reward to 0.25 and have a new block found every 6 seconds?

That way you're 100X more likely to find a block and it will decrease volatility of earnings, thereby dis-incentivising pool mining.
(Of course you would probably need to wait for 300 confirmations vs. 3 but it would take the same amount of time.)

When you solve a block, all the other nodes on the network aren't instantaneously aware of it through any sort of quantum entanglement.  Instead, you have to broadcast the block to your peers (who then relay it to their peers, who then relay it to ...).  This means it can take a little bit of time for the entire network to hear about a recently solved block.

Until they've heard about the recent block any miner (or mining pool) will still be diligently working on their own block.  If difficulty is such that blocks come very quickly, then it is far more likely that several people will all solve blocks before all the solved blocks have been relayed throughout the entire network.

This then creates a temporary fork in the blockchain with various sections of the network each working on a block for a different fork.  Eventually one of the forks will win out, but in the meantime, anyone who put any effort into any of the other forks will have wasted effort on orphaned chains.

legendary
Activity: 1138
Merit: 1001
Cool, if you're bored, dumb idea no.2, could someone tell me why just speeding up the blocks isn't an option?

As I understand it a big incentive of pool mining is consistency of earnings.
The blocks come around so infrequently that unless you're in a decent size pool you will experience a lot of volatility.

How hard is it to change the block reward to 0.25 and have a new block found every 6 seconds?

That way you're 100X more likely to find a block and it will decrease volatility of earnings, thereby dis-incentivising pool mining.
(Of course you would probably need to wait for 300 confirmations vs. 3 but it would take the same amount of time.)
legendary
Activity: 882
Merit: 1000
Can you choose which pool you want to process your transaction?

I mean, is the problem now that if you made a 'patch' to the protocol that favoured P2Pool,  the big mining pools would never switch over to that version of Bitcoin and as they control the hashing power, they control Bitcoin. 

But what if the 5 biggest exchanges as well as Bitpay, Blockchain.info and Satoshi dice all said from this date and this time we are only sending our transactions to P2Pool?  Maybe those big players make up such a big % of the total transactions that the the big pools will be processing such a small % of transactions, and will be so totally against the will of the community, that the smaller fork will be the real fork.   

If it is pre-announced, hashers should pre-emptively switch to P2Pool anyway and enough of the friendly big pools, BTC Guild and Eligius might reluctantly point their own equipment into P2Pool too, maybe giving the new Bitcoin patch 51% of the hashing power anyway.

Leaving a 'potentially' nefarious Ghash.io stranded? 
In a P2P network, you cannot control where you send the transaction. You announce your transaction to the nodes connecting with you and they will relay it to their neighbours and go on.

Moreover, I don't think there can be a 'patch' to favour P2Pool. Bitcoin protocol itself has no favour to any miner as long as they can create a correct block.

Thanks! I really appreciate you taking the time to give me that response. I know a non technical guy like me actually helping to find a solution to this problem, would be akin to Homer Simpson helping to find a cure for cancer, but you never know! I guess I want to show that I'm not just complaining about the problem, but I am trying to get involved/help as limited as that help might be.   
Sure, any suggestion and discussion is welcome. I'm just explain why your idea does not work. In my opinion, no idea is useless or stupid.
legendary
Activity: 882
Merit: 1000
Can you choose which pool you want to process your transaction?

I mean, is the problem now that if you made a 'patch' to the protocol that favoured P2Pool,  the big mining pools would never switch over to that version of Bitcoin and as they control the hashing power, they control Bitcoin. 

But what if the 5 biggest exchanges as well as Bitpay, Blockchain.info and Satoshi dice all said from this date and this time we are only sending our transactions to P2Pool?  Maybe those big players make up such a big % of the total transactions that the the big pools will be processing such a small % of transactions, and will be so totally against the will of the community, that the smaller fork will be the real fork.   

If it is pre-announced, hashers should pre-emptively switch to P2Pool anyway and enough of the friendly big pools, BTC Guild and Eligius might reluctantly point their own equipment into P2Pool too, maybe giving the new Bitcoin patch 51% of the hashing power anyway.

Leaving a 'potentially' nefarious Ghash.io stranded? 
In a P2P network, you cannot control where you send the transaction. You announce your transaction to the nodes connecting with you and they will relay it to their neighbours and go on.

Moreover, I don't think there can be a 'patch' to favour P2Pool. Bitcoin protocol itself has no favour to any miner as long as they can create a correct block.

Yes you can because you can control which nodes you connect to if you want.  You can start Bitcoin-QT with options to connect to specific nodes and only those specific nodes.  Most users probably just connect without those options but you can do it pretty easily. 
You can control who you connect, but cannot control who your connectors connect.
hero member
Activity: 546
Merit: 501
Cypherpunk and full-time CryptoAnarchist
Can you choose which pool you want to process your transaction?

I mean, is the problem now that if you made a 'patch' to the protocol that favoured P2Pool,  the big mining pools would never switch over to that version of Bitcoin and as they control the hashing power, they control Bitcoin. 

But what if the 5 biggest exchanges as well as Bitpay, Blockchain.info and Satoshi dice all said from this date and this time we are only sending our transactions to P2Pool?  Maybe those big players make up such a big % of the total transactions that the the big pools will be processing such a small % of transactions, and will be so totally against the will of the community, that the smaller fork will be the real fork.   

If it is pre-announced, hashers should pre-emptively switch to P2Pool anyway and enough of the friendly big pools, BTC Guild and Eligius might reluctantly point their own equipment into P2Pool too, maybe giving the new Bitcoin patch 51% of the hashing power anyway.

Leaving a 'potentially' nefarious Ghash.io stranded? 
In a P2P network, you cannot control where you send the transaction. You announce your transaction to the nodes connecting with you and they will relay it to their neighbours and go on.

Moreover, I don't think there can be a 'patch' to favour P2Pool. Bitcoin protocol itself has no favour to any miner as long as they can create a correct block.

Yes you can because you can control which nodes you connect to if you want.  You can start Bitcoin-QT with options to connect to specific nodes and only those specific nodes.  Most users probably just connect without those options but you can do it pretty easily. 

But  how can  anyone get a 51% besides Ghash.io at this moment?
hero member
Activity: 510
Merit: 500
Can you choose which pool you want to process your transaction?

I mean, is the problem now that if you made a 'patch' to the protocol that favoured P2Pool,  the big mining pools would never switch over to that version of Bitcoin and as they control the hashing power, they control Bitcoin. 

But what if the 5 biggest exchanges as well as Bitpay, Blockchain.info and Satoshi dice all said from this date and this time we are only sending our transactions to P2Pool?  Maybe those big players make up such a big % of the total transactions that the the big pools will be processing such a small % of transactions, and will be so totally against the will of the community, that the smaller fork will be the real fork.   

If it is pre-announced, hashers should pre-emptively switch to P2Pool anyway and enough of the friendly big pools, BTC Guild and Eligius might reluctantly point their own equipment into P2Pool too, maybe giving the new Bitcoin patch 51% of the hashing power anyway.

Leaving a 'potentially' nefarious Ghash.io stranded? 
In a P2P network, you cannot control where you send the transaction. You announce your transaction to the nodes connecting with you and they will relay it to their neighbours and go on.

Moreover, I don't think there can be a 'patch' to favour P2Pool. Bitcoin protocol itself has no favour to any miner as long as they can create a correct block.

Yes you can because you can control which nodes you connect to if you want.  You can start Bitcoin-QT with options to connect to specific nodes and only those specific nodes.  Most users probably just connect without those options but you can do it pretty easily. 
legendary
Activity: 1138
Merit: 1001
Can you choose which pool you want to process your transaction?

I mean, is the problem now that if you made a 'patch' to the protocol that favoured P2Pool,  the big mining pools would never switch over to that version of Bitcoin and as they control the hashing power, they control Bitcoin. 

But what if the 5 biggest exchanges as well as Bitpay, Blockchain.info and Satoshi dice all said from this date and this time we are only sending our transactions to P2Pool?  Maybe those big players make up such a big % of the total transactions that the the big pools will be processing such a small % of transactions, and will be so totally against the will of the community, that the smaller fork will be the real fork.   

If it is pre-announced, hashers should pre-emptively switch to P2Pool anyway and enough of the friendly big pools, BTC Guild and Eligius might reluctantly point their own equipment into P2Pool too, maybe giving the new Bitcoin patch 51% of the hashing power anyway.

Leaving a 'potentially' nefarious Ghash.io stranded? 
In a P2P network, you cannot control where you send the transaction. You announce your transaction to the nodes connecting with you and they will relay it to their neighbours and go on.

Moreover, I don't think there can be a 'patch' to favour P2Pool. Bitcoin protocol itself has no favour to any miner as long as they can create a correct block.

Thanks! I really appreciate you taking the time to give me that response. I know a non technical guy like me actually helping to find a solution to this problem, would be akin to Homer Simpson helping to find a cure for cancer, but you never know! I guess I want to show that I'm not just complaining about the problem, but I am trying to get involved/help as limited as that help might be.   
legendary
Activity: 882
Merit: 1000
Random thought... not to derail your topic (sorry)


Could government or banks have an incentive to pay pools like CEX.IO billions of dollars for them to do a 51% attack and jeopardize the value and integrity of network in order to destroy bitcoin?

If the price is right it could be worth doing for CEX.IO...... billions of $ sounds like a lot for something like this, but for central banks and governments it would be worth it to kill off the threat of bitcoin if you think about it.
With that amount of money, they could just secretly buy enough hashing power and do the 51% attack. No need to do it in public (you can never trust CEX.IO to keep the secret).

However, killing BTC secretly does not help much if cryptocurrency is a thread to them. It will only help the GPU coins (litecoin) and CPU coins (primecoin) to emerge. A safer way for them is to own BTC and try to control BTC just like they regulate the gold, and in my opinion it is also easier.
legendary
Activity: 1330
Merit: 1000
dafar consulting
Random thought... not to derail your topic (sorry)


Could government or banks have an incentive to pay pools like CEX.IO billions of dollars for them to do a 51% attack and jeopardize the value and integrity of network in order to destroy bitcoin?

If the price is right it could be worth doing for CEX.IO...... billions of $ sounds like a lot for something like this, but for central banks and governments it would be worth it to kill off the threat of bitcoin if you think about it.
legendary
Activity: 882
Merit: 1000
Can you choose which pool you want to process your transaction?

I mean, is the problem now that if you made a 'patch' to the protocol that favoured P2Pool,  the big mining pools would never switch over to that version of Bitcoin and as they control the hashing power, they control Bitcoin. 

But what if the 5 biggest exchanges as well as Bitpay, Blockchain.info and Satoshi dice all said from this date and this time we are only sending our transactions to P2Pool?  Maybe those big players make up such a big % of the total transactions that the the big pools will be processing such a small % of transactions, and will be so totally against the will of the community, that the smaller fork will be the real fork.   

If it is pre-announced, hashers should pre-emptively switch to P2Pool anyway and enough of the friendly big pools, BTC Guild and Eligius might reluctantly point their own equipment into P2Pool too, maybe giving the new Bitcoin patch 51% of the hashing power anyway.

Leaving a 'potentially' nefarious Ghash.io stranded? 
In a P2P network, you cannot control where you send the transaction. You announce your transaction to the nodes connecting with you and they will relay it to their neighbours and go on.

Moreover, I don't think there can be a 'patch' to favour P2Pool. Bitcoin protocol itself has no favour to any miner as long as they can create a correct block.
legendary
Activity: 1138
Merit: 1001
Can you choose which pool you want to process your transaction?

I mean, is the problem now that if you made a 'patch' to the protocol that favoured P2Pool,  the big mining pools would never switch over to that version of Bitcoin and as they control the hashing power, they control Bitcoin. 

But what if the 5 biggest exchanges as well as Bitpay, Blockchain.info and Satoshi dice all said from this date and this time we are only sending our transactions to P2Pool?  Maybe those big players make up such a big % of the total transactions that the the big pools will be processing such a small % of transactions, and will be so totally against the will of the community, that the smaller fork will be the real fork.   

If it is pre-announced, hashers should pre-emptively switch to P2Pool anyway and enough of the friendly big pools, BTC Guild and Eligius might reluctantly point their own equipment into P2Pool too, maybe giving the new Bitcoin patch 51% of the hashing power anyway.

Leaving a 'potentially' nefarious Ghash.io stranded? 
legendary
Activity: 882
Merit: 1000
Yes, but if a pool tends to use alternate address in mining, it proves itself malicious.
Not at all. Pools are supposed to use a new address for every transaction, just like everyone else.

Nobody is "supposed to" do anything.  Bitcoin can be used by anyone any way they see fit.  They have the ability to use different addresses if that is what they want to do.
Smiley I think this is already debated in Luke's own thread for months already. I agree that his reasons make sense in many scenarios.
However, I think knowing from which pool coins are mined does not affect the anonymity too much. Moreover, most pools do use one fix mining address now.
hero member
Activity: 510
Merit: 500
Yes, but if a pool tends to use alternate address in mining, it proves itself malicious.
Not at all. Pools are supposed to use a new address for every transaction, just like everyone else.

Nobody is "supposed to" do anything.  Bitcoin can be used by anyone any way they see fit.  They have the ability to use different addresses if that is what they want to do.
newbie
Activity: 35
Merit: 0
OK, thanks--that answers my question.  Cry
legendary
Activity: 882
Merit: 1000
I have asked this before without an answer.

We have all heard of botfarms created by trojans that mine for bitcoin. It is my understanding that the combined cpu power makes it worthwhile with simple machines. If this is true could we not all (or at least some of us) volunteer into such a "botnet" for p2Pool? Do we need high powered miner machines to contribute?

I am more concerned about the 51% issue that the piddling amount I could make mining on my own.

We could run a cpu miner and join the p2pool now, but currently the hashing rate of CPU mining is negligible.

Normal i5 - i7 can mine at around 10MH/s, and currently the total network hashing rate is 15 PH ( = 15,000,000,000 MH) and still increases fast. Therefore, even we found 1 billion volunteers, the total CPU hash rate is only 10 PH.
legendary
Activity: 882
Merit: 1000
I know very little about how pool mining works.

Is it possible for a big mining pool to split their hashing power into 4 sections, but let 3 seperate Bitcoin Foundation members control access to 3 of the sections? So Ghash.io still gets all the profits but their control is a bit more decentralised.

E.g. Ghash.io has 40% of the network, but they give the 'keys' to 30% of the network to 3 different Bitcoin Foundation members who live in 3 seperate countries. so that in the event of a double spend attack the three trusted Bitcoin friendly parties holding the keys can turn off 75% of their hashing power at least in a process that lasts 24 hours or something giving the rest of the community enough time to create a defense if necessary?

This way no-one entity can control more than 10% of the hashing power but they can still get the profit from having 40% of the hashing power if their business model is the most popular?

The problem is that the bitcoin is supposed to be decentralized, so the foundation cannot be trusted. Otherwise, a much simpler way is just to introduce more official checkpoints or even official blockchain.

I absolutely agree.

In the short term though 4 different people, 3 of them 'trusted' splitting Ghash.io hashing power is still better than the current system.

But yes we need to find a real, decentralised solution to this.

As I explained above, even there're three trusted monitors, they have to be alerted before the double spending is confirmed. It's hard to be found before it happens, but without my proposal, once a big pool changes a mining address, every one is warned.

OK but what can you do once you are warned if they control the hashing power? Lets say someone takes control of BTCGuild and Ghash.io and get 60% of the total hashing power. They change the address. We get the warning but what can we do? They have 60% of the hashing power?

Is the idea that enough of their hashing power comes from external hashers, who once the warning goes off can direct their hashing power to a different pool?


Yes, exactly the miners could choose to reject mining to a different address.

But in your example, if the one controls both BTCGuild and Ghash.io, they don't need to change the mining address even with my proposed patch. My proposal cannot prevent multiple pools to double spend together, unfortunately.
newbie
Activity: 35
Merit: 0
I have asked this before without an answer.

We have all heard of botfarms created by trojans that mine for bitcoin. It is my understanding that the combined cpu power makes it worthwhile with simple machines. If this is true could we not all (or at least some of us) volunteer into such a "botnet" for p2Pool? Do we need high powered miner machines to contribute?

I am more concerned about the 51% issue that the piddling amount I could make mining on my own.
legendary
Activity: 1138
Merit: 1001
I know very little about how pool mining works.

Is it possible for a big mining pool to split their hashing power into 4 sections, but let 3 seperate Bitcoin Foundation members control access to 3 of the sections? So Ghash.io still gets all the profits but their control is a bit more decentralised.

E.g. Ghash.io has 40% of the network, but they give the 'keys' to 30% of the network to 3 different Bitcoin Foundation members who live in 3 seperate countries. so that in the event of a double spend attack the three trusted Bitcoin friendly parties holding the keys can turn off 75% of their hashing power at least in a process that lasts 24 hours or something giving the rest of the community enough time to create a defense if necessary?

This way no-one entity can control more than 10% of the hashing power but they can still get the profit from having 40% of the hashing power if their business model is the most popular?

The problem is that the bitcoin is supposed to be decentralized, so the foundation cannot be trusted. Otherwise, a much simpler way is just to introduce more official checkpoints or even official blockchain.

I absolutely agree.

In the short term though 4 different people, 3 of them 'trusted' splitting Ghash.io hashing power is still better than the current system.

But yes we need to find a real, decentralised solution to this.

As I explained above, even there're three trusted monitors, they have to be alerted before the double spending is confirmed. It's hard to be found before it happens, but without my proposal, once a big pool changes a mining address, every one is warned.

OK but what can you do once you are warned if they control the hashing power? Lets say someone takes control of BTCGuild and Ghash.io and get 60% of the total hashing power. They change the address. We get the warning but what can we do? They have 60% of the hashing power?

Is the idea that enough of their hashing power comes from external hashers, who once the warning goes off can direct their hashing power to a different pool?
legendary
Activity: 882
Merit: 1000
From my very limited point of view the best way to thwart the 51% attack is to bolster p2Pool. If it were ever to grow to 51% the problem disappears--or am I misunderstanding something? Huh

Yes if you could make p2Pool more attractive for hashers, it would make a big difference. I'm surprised none of the big guys like Bitpay/Gox/BTC-E etc. are putting funds into something like that.

They make more profit than the mining pools, and the biggest threat to their business (Bitcoin obv.) is the risks caused by centralisation of mining but they don't address it.
Yes, if we found a way for the big organizations to subsidize the P2Pool miners (more than compensate their loss in choosing P2Pool), then maybe it's network share will increase.

Nonetheless, since my proposal does not cause any hard fork, so it can be added and removed (once p2pool rules the mining world) without causing too much troubles. It will also be fine to keep it in the code forever.
Pages:
Jump to: