Pages:
Author

Topic: Are there protections built-in against 51% attack? (Read 410 times)

legendary
Activity: 4466
Merit: 3391
Exactly. Look at the 51% attack being executed on Bitcoin Cash ABC right now. https://blockchair.com/bitcoin-abc/blocks
i don't follow the details of all these shitcoins but it doesn't look like a 51% attack, there is no reorgs just some group that had a little amount of hashrate and decided they wanted to create a new shitcoin (bcashabc) out of an existing shitcoin (bcash) just like another group did and created another shitcoin (bcashsv) a while back. each with different consensus rules and mostly incompatible chains.
as i said before you can do the same exact thing with a single CPU too.

It's a DOS attack. All blocks are being kept empty by a single miner.
legendary
Activity: 3472
Merit: 10611
Exactly. Look at the 51% attack being executed on Bitcoin Cash ABC right now. https://blockchair.com/bitcoin-abc/blocks
i don't follow the details of all these shitcoins but it doesn't look like a 51% attack, there is no reorgs just some group that had a little amount of hashrate and decided they wanted to create a new shitcoin (bcashabc) out of an existing shitcoin (bcash) just like another group did and created another shitcoin (bcashsv) a while back. each with different consensus rules and mostly incompatible chains.
as i said before you can do the same exact thing with a single CPU too.
legendary
Activity: 4466
Merit: 3391
---------------------------------- Copied from another thread -----------------------------------------------------------------------------------
Unfortunately, there is not anything that can be done on a technical level to prevent an entity with sufficient mining resources from executing a 51% attack.
Not quite true. It has been discussed lately and an ultimate solution has been proposed: put a cap on the depth of chain-reorg attempts.
This would not stop a 51% attack.

There are 'legitimate' situations in which there would be a several-block-deep reorganization. Any cap on chain-reorganization attempts would need to exceed these possible situations.

A 51% attack is not simply one that double spends transactions that were confirmed 20 blocks ago. A 51% attack could also orphan blocks in a shallow chain-reorganization, which would cause the miners to follow the 51% attacker's chain in the future. It could blacklist addresses for arbitrary reasons, or force coin holders to pay an inflated fee to the attacker in order to have their transactions confirmed.

None of the above would require an attacker to execute a deep reorganization.

Exactly. Look at the 51% attack being executed on Bitcoin Cash ABC right now. https://blockchair.com/bitcoin-abc/blocks
copper member
Activity: 1666
Merit: 1901
Amazon Prime Member #7
---------------------------------- Copied from another thread -----------------------------------------------------------------------------------
Unfortunately, there is not anything that can be done on a technical level to prevent an entity with sufficient mining resources from executing a 51% attack.
Not quite true. It has been discussed lately and an ultimate solution has been proposed: put a cap on the depth of chain-reorg attempts.

This would not stop a 51% attack.

There are 'legitimate' situations in which there would be a several-block-deep reorganization. Any cap on chain-reorganization attempts would need to exceed these possible situations.

A 51% attack is not simply one that double spends transactions that were confirmed 20 blocks ago. A 51% attack could also orphan blocks in a shallow chain-reorganization, which would cause the miners to follow the 51% attacker's chain in the future. It could blacklist addresses for arbitrary reasons, or force coin holders to pay an inflated fee to the attacker in order to have their transactions confirmed.

None of the above would require an attacker to execute a deep reorganization.
legendary
Activity: 2730
Merit: 7065
EDIT: I forgot the interview link https://www.youtube.com/watch?v=7w-Q2GOZJSQ
Excellent source Karartma1. I suggest that anyone who hasn't listened to Andreas explaining 51% attacks, do it.

He talks about if a nation wanted to attack Bitcoin, there simply wouldn't be enough miners that could be produced at the pace they would need to get 51% of the hash power. The companies who produce these miners are already deep down and sell everything they produce. A new party willing to buy loads of the equipment wouldn't be able to do so because it's currently not producible. Especially without anyone noticing it.
hero member
Activity: 1680
Merit: 655

Agreeing with Wind_FURY regarding this one since the number of confirmations you should be considering that is secure should be dependent on how much is the value of your transaction is as the number of confirmations tells us how much the attacker is willing to spend in order to reverse that attack. I don't have the exact value for that but I think as a good measurement transactions below 10,000$ should at least wait for 3 confirmations in order to say that your transaction is irreversible anything larger than that should wait for more confirmations to consider your transaction to be secured.

Shower thought. What if someone sent $1,000,000,000 in Bitcoin?

For me personally I still wait at it at 6 confirmations and see if something strange is happening in the network as all of the attacker's effort would be obvious. For example at the time of your transaction you will see a noticeable increase in hashrate or the share of hashing power is dwarfed by an unknown mining pool but really at this point where it will suddenly dwarf the current existing hash rate we have would still be impractical or even unprofitable for the attacker even if they are trying to reverse a million dollars worth of Bitcoin. Whales do transfer with these kinds of amount or even larger but we won't see any news about a 51% attack happening because of that.
legendary
Activity: 2898
Merit: 1823
---------------------------------- Copied from another thread -----------------------------------------------------------------------------------
Unfortunately, there is not anything that can be done on a technical level to prevent an entity with sufficient mining resources from executing a 51% attack.
Not quite true. It has been discussed lately and an ultimate solution has been proposed: put a cap on the depth of chain-reorg attempts.

It is controversial though: implementing finality in PoW is not welcomed by many of the core devs because they traditionally believe in a booting from the genesis idea, asking it as a measure of how trust-less the system is or at least looks like. Once the blockchain is finalized in some height, individuals have no strong incentive to validate the whole history to become convinced about the state of the machine individually, it is frightening for many people. Obviously, it turns to be more of a philosophical debate about what trust means and questions like 'is it possible ever to get rid of the social aspects of a monetary system?' Believe it or not it is considered as a Satoshi tradition the idealized bitcoiner who does not trust, verifies! A mathematical notion of a timeless, alone entity called individual user who is surrounded by a bunch of thieves and scammers and adversaries and the super-hero fights with all of them by verifying the history of the blockchain they propose from day one, the genesis block.


Plus once done, and becomes "standard procedure", what's the use for Proof of Work? It would all be a waste of time and energy.

Although, POS people would support it, with their broken incentive-structure.

Implementing finalization is absolutely possible in PoW.

Suppose We have a version of UTXO commitment implemented in block headers,  bootstrapping nodes can start as SPV wallets, checking the complete history of work, then tracing back to a recent safe point  and verify the chain thereafter, becoming an ordinary pruned full node. For what this topic is interested in, resisting 51% attack the length of the above mentioned trace back process is the threshold above which a re-org attempt should be considered illegal.  

I afraid it would be pretty off-topic to discuss PoS/PoW issue further but FYI, I give a bit more credit than what you do to PoS as being a "usable" idea for solving a number of cryptocurrency problems. Hsitory strongly suggests that hybrid structures and models are the ones that survive and adopt. So, I recommend remaining open to diversity rather than engaging in binary debates like PoS/PoW.


Of course ANY cryptocurrency can do it, BUT what would that make the POW, the incentive structure that keeps it together? It would be wasting energy. Why not remove POW, and implement check-points.

From various posts that I have seen in both Bitcointalk and stackexchange you will see how they explained why 6 confirmations is needed for you to guarantee that your transaction is irreversible. Basically with 6 confirmations on your transaction the attacker would consider it impractical on trying to reverse your transaction as it will be unprofitable on their end.
Six confirmations is considered the standard nowadays, but most people really don't need to wait that long. For amounts of a few dollars, or several hundred dollars, 1 confirmation, or 2-3 confirmations would suffice. 6 confirmations is for higher amounts. I am not sure where this threshold begins, but I would say at least a few tens of thousands of $, if not hundreds of thousands. Exchanges usually require 6 confirmations before crediting the bitcoin to your account, but for a $50 deposit for example, that is really excessive. 


The threshold should begin in how large the transactions are. 6-digit amount payments/transactions to anyone as the person being paid, should require at least six confirmations.

Agreeing with Wind_FURY regarding this one since the number of confirmations you should be considering that is secure should be dependent on how much is the value of your transaction is as the number of confirmations tells us how much the attacker is willing to spend in order to reverse that attack. I don't have the exact value for that but I think as a good measurement transactions below 10,000$ should at least wait for 3 confirmations in order to say that your transaction is irreversible anything larger than that should wait for more confirmations to consider your transaction to be secured.


Shower thought. What if someone sent $1,000,000,000 in Bitcoin?
hero member
Activity: 1680
Merit: 655
From various posts that I have seen in both Bitcointalk and stackexchange you will see how they explained why 6 confirmations is needed for you to guarantee that your transaction is irreversible. Basically with 6 confirmations on your transaction the attacker would consider it impractical on trying to reverse your transaction as it will be unprofitable on their end.
Six confirmations is considered the standard nowadays, but most people really don't need to wait that long. For amounts of a few dollars, or several hundred dollars, 1 confirmation, or 2-3 confirmations would suffice. 6 confirmations is for higher amounts. I am not sure where this threshold begins, but I would say at least a few tens of thousands of $, if not hundreds of thousands. Exchanges usually require 6 confirmations before crediting the bitcoin to your account, but for a $50 deposit for example, that is really excessive. 


The threshold should begin in how large the transactions are. 6-digit amount payments/transactions to anyone as the person being paid, should require at least six confirmations.

Agreeing with Wind_FURY regarding this one since the number of confirmations you should be considering that is secure should be dependent on how much is the value of your transaction is as the number of confirmations tells us how much the attacker is willing to spend in order to reverse that attack. I don't have the exact value for that but I think as a good measurement transactions below 10,000$ should at least wait for 3 confirmations in order to say that your transaction is irreversible anything larger than that should wait for more confirmations to consider your transaction to be secured.
legendary
Activity: 1456
Merit: 1175
Always remember the cause!
---------------------------------- Copied from another thread -----------------------------------------------------------------------------------
Unfortunately, there is not anything that can be done on a technical level to prevent an entity with sufficient mining resources from executing a 51% attack.
Not quite true. It has been discussed lately and an ultimate solution has been proposed: put a cap on the depth of chain-reorg attempts.

It is controversial though: implementing finality in PoW is not welcomed by many of the core devs because they traditionally believe in a booting from the genesis idea, asking it as a measure of how trust-less the system is or at least looks like. Once the blockchain is finalized in some height, individuals have no strong incentive to validate the whole history to become convinced about the state of the machine individually, it is frightening for many people. Obviously, it turns to be more of a philosophical debate about what trust means and questions like 'is it possible ever to get rid of the social aspects of a monetary system?' Believe it or not it is considered as a Satoshi tradition the idealized bitcoiner who does not trust, verifies! A mathematical notion of a timeless, alone entity called individual user who is surrounded by a bunch of thieves and scammers and adversaries and the super-hero fights with all of them by verifying the history of the blockchain they propose from day one, the genesis block.


Plus once done, and becomes "standard procedure", what's the use for Proof of Work? It would all be a waste of time and energy.

Although, POS people would support it, with their broken incentive-structure.
Implementing finalization is absolutely possible in PoW.
Suppose We have a version of UTXO commitment implemented in block headers,  bootstrapping nodes can start as SPV wallets, checking the complete history of work, then tracing back to a recent safe point  and verify the chain thereafter, becoming an ordinary pruned full node. For what this topic is interested in, resisting 51% attack the length of the above mentioned trace back process is the threshold above which a re-org attempt should be considered illegal.  

I afraid it would be pretty off-topic to discuss PoS/PoW issue further but FYI, I give a bit more credit than what you do to PoS as being a "usable" idea for solving a number of cryptocurrency problems. Hsitory strongly suggests that hybrid structures and models are the ones that survive and adopt. So, I recommend remaining open to diversity rather than engaging in binary debates like PoS/PoW.
legendary
Activity: 2898
Merit: 1823
From various posts that I have seen in both Bitcointalk and stackexchange you will see how they explained why 6 confirmations is needed for you to guarantee that your transaction is irreversible. Basically with 6 confirmations on your transaction the attacker would consider it impractical on trying to reverse your transaction as it will be unprofitable on their end.
Six confirmations is considered the standard nowadays, but most people really don't need to wait that long. For amounts of a few dollars, or several hundred dollars, 1 confirmation, or 2-3 confirmations would suffice. 6 confirmations is for higher amounts. I am not sure where this threshold begins, but I would say at least a few tens of thousands of $, if not hundreds of thousands. Exchanges usually require 6 confirmations before crediting the bitcoin to your account, but for a $50 deposit for example, that is really excessive. 


The threshold should begin in how large the transactions are. 6-digit amount payments/transactions to anyone as the person being paid, should require at least six confirmations.
legendary
Activity: 2730
Merit: 7065
From various posts that I have seen in both Bitcointalk and stackexchange you will see how they explained why 6 confirmations is needed for you to guarantee that your transaction is irreversible. Basically with 6 confirmations on your transaction the attacker would consider it impractical on trying to reverse your transaction as it will be unprofitable on their end.
Six confirmations is considered the standard nowadays, but most people really don't need to wait that long. For amounts of a few dollars, or several hundred dollars, 1 confirmation, or 2-3 confirmations would suffice. 6 confirmations is for higher amounts. I am not sure where this threshold begins, but I would say at least a few tens of thousands of $, if not hundreds of thousands. Exchanges usually require 6 confirmations before crediting the bitcoin to your account, but for a $50 deposit for example, that is really excessive. 
legendary
Activity: 2898
Merit: 1823
---------------------------------- Copied from another thread -----------------------------------------------------------------------------------
Unfortunately, there is not anything that can be done on a technical level to prevent an entity with sufficient mining resources from executing a 51% attack.
Not quite true. It has been discussed lately and an ultimate solution has been proposed: put a cap on the depth of chain-reorg attempts.

It is controversial though: implementing finality in PoW is not welcomed by many of the core devs because they traditionally believe in a booting from the genesis idea, asking it as a measure of how trust-less the system is or at least looks like. Once the blockchain is finalized in some height, individuals have no strong incentive to validate the whole history to become convinced about the state of the machine individually, it is frightening for many people. Obviously, it turns to be more of a philosophical debate about what trust means and questions like 'is it possible ever to get rid of the social aspects of a monetary system?' Believe it or not it is considered as a Satoshi tradition the idealized bitcoiner who does not trust, verifies! A mathematical notion of a timeless, alone entity called individual user who is surrounded by a bunch of thieves and scammers and adversaries and the super-hero fights with all of them by verifying the history of the blockchain they propose from day one, the genesis block.


Plus once done, and becomes "standard procedure", what's the use for Proof of Work? It would all be a waste of time and energy.

Although, POS people would support it, with their broken incentive-structure.

Quote

My point: it is not a pure technical hurdle because the suggested cap would fix it easily, rather it is a political/philosophical debate.


BUT it doesn't make it a less important debate.
legendary
Activity: 3472
Merit: 10611
Not exactly into dust since there are few altcoin which have same PoW algorithm, but still a huge loss. Additionally, it'll affect bitcoin price in negative way and reducing value of the mined Bitcoin.
a good point, but considering the fact that said altcoins are copies of bitcoin that are copying its every move it stands to reason to assume they would also make the transition (in an even easier manner since most of them are centralized or very small) to the new algorithm.
hero member
Activity: 1680
Merit: 655
I consider the number of confirmations on your transaction as some kind of safe way on ensuring that your transaction won't be under a 51% attack. From various posts that I have seen in both Bitcointalk and stackexchange you will see how they explained why 6 confirmations is needed for you to guarantee that your transaction is irreversible. Basically with 6 confirmations on your transaction the attacker would consider it impractical on trying to reverse your transaction as it will be unprofitable on their end. So if you always want to have some kind of peace of mind with your transactions I would recommend you on waiting out the number of confirmations before you proceed with your business.
legendary
Activity: 2310
Merit: 1422
Hi OP, welcome.
About possible 51% attacks on Bitcoin, I suggest you listen to this 30 minutes interview with Andreas M. Antonopoulos. He covers most of the basics elegantly and in the end, you would know much more on the subject. If you are into learning bitcoin, Andreas is such a good resource available online

EDIT: I forgot the interview link https://www.youtube.com/watch?v=7w-Q2GOZJSQ
legendary
Activity: 1456
Merit: 1175
Always remember the cause!
---------------------------------- Copied from another thread -----------------------------------------------------------------------------------
Unfortunately, there is not anything that can be done on a technical level to prevent an entity with sufficient mining resources from executing a 51% attack.
Not quite true. It has been discussed lately and an ultimate solution has been proposed: put a cap on the depth of chain-reorg attempts.

It is controversial though: implementing finality in PoW is not welcomed by many of the core devs because they traditionally believe in a booting from the genesis idea, asking it as a measure of how trust-less the system is or at least looks like. Once the blockchain is finalized in some height, individuals have no strong incentive to validate the whole history to become convinced about the state of the machine individually, it is frightening for many people. Obviously, it turns to be more of a philosophical debate about what trust means and questions like 'is it possible ever to get rid of the social aspects of a monetary system?' Believe it or not it is considered as a Satoshi tradition the idealized bitcoiner who does not trust, verifies! A mathematical notion of a timeless, alone entity called individual user who is surrounded by a bunch of thieves and scammers and adversaries and the super-hero fights with all of them by verifying the history of the blockchain they propose from day one, the genesis block.

My point: it is not a pure technical hurdle because the suggested cap would fix it easily, rather it is a political/philosophical debate.
[/quote]
-------------------------------------------------------------------------------------------------------------------------------------------------
Op, you are welcome to follow the link provided in the above comment which I copied from another topic but before succeeding any more, you need to read and thoroughly understand what have been repeatedly reminded above thread: a 51% attack can't, just can't enforce any sort of commitment to an illegitimate chain.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
Since majority of the hashing power is controlled by the adversary in the case of 51% attack, they can literally do anything for as long as they can sustain the attack.
I don't know how you understand double-spending, but I'm imagining it like that. Some nodes will receive the red transaction first and some others the green. Therefore, they will reject the invalid transactions. The problem is that not all nodes agree to the same transaction.



Even with a 51% attack, you can't double-spend bitcoins. You can reverse transactions, which is different.

Are there any capabilities built into the code of Bitcoin or Bitcoin mining node softwares to tackle a scenario like this?
Unfortunately, no. I had made the same question on this thread: A solution to every 51% attack. The reason why this can't happen is pretty dumb in my opinion and it has to do with the already written consensus rules. If the developers change them, they're officially turning bitcoin into a fork. Sooner or later, though, they'll have to change some consensus rules, because technology evolves.

Transactions <100, 500, 1000 or whatever> blocks deep should remain in the blockchain forever.
legendary
Activity: 3472
Merit: 10611
As per my understanding, with a successful 51% attack, an attacker can confirm invalid transactions and do double spending of BTC.
they can only double spend a transaction they initiated themselves (meaning a transaction they made and have the private key to the outputs that were spent in it) not any other transaction and they can not confirm anything that is invalid.

doing any of this (apart from double spending) can be performed using a single CPU (not even an ASIC) because it is a hard fork that changes the consensus rules (eg. confirming invalid tx, reversing other people's txs,...) to create a new altcoin (just like the hundreds of altcoins that were created back in 2017 and 18) and their blocks are easily rejected by the entire bitcoin network.
legendary
Activity: 2898
Merit: 1823
OP, welcome to the forum. The window for a successful 51% attack has already closed. Bitcoin's hashing power, and the investment behind it, is simply too high now.

https://twitter.com/bitcoinmagazine/status/1197161029832265729

legendary
Activity: 4466
Merit: 3391
As per my understanding, with a successful 51% attack, an attacker can confirm invalid transactions and do double spending of BTC. They can probably reverse recent transactions too.

Are there any capabilities built into the code of Bitcoin or Bitcoin mining node softwares to tackle a scenario like this?

Since majority of the hashing power is controlled by the adversary in the case of 51% attack, they can literally do anything for as long as they can sustain the attack.

It is not true that they can do anything.

  • A miner cannot confirm invalid transactions because that would split the chain.
  • The ability to double spend is limited because it requires mining an additional number of old blocks faster than everyone else can mine just new blocks.
  • 51% of the hash power also allows the attacker to censor transactions for as long as they have 51%

As for defenses, they are mainly economic, especially against double spending. However, there is potentially no defense against a 51% attack used to censor transactions except perhaps politics.
Pages:
Jump to: