Pages:
Author

Topic: Double-spending with 6 confirmations - page 2. (Read 2854 times)

legendary
Activity: 2142
Merit: 1010
Newbie
October 06, 2012, 07:45:32 AM
#10
Yes. The attacker is the only who has connections to the victim.

And how exactly does the attacker control that (without having first hacked the victim's computer)?


https://en.bitcoin.it/wiki/Weaknesses:

Quote
It's trivial for an attacker to fill the network with clients controlled by him. This might be helpful in the execution of other attacks.
For example, an attacker might connect 100,000 IP addresses to the IRC bootstrap channel. You would then be very likely to connect only to attacker nodes. This state can be exploited in (at least) the following ways:
The attacker can refuse to relay blocks and transactions from everyone, disconnecting you from the network.
The attacker can relay only blocks that he creates, putting you on a separate network. You're then open to double-spending attacks.
If you rely on transactions with 0 confirmations, the attacker can just filter out certain transactions to execute a double-spending attack.
Low-latency encryption/anonymization of Bitcoin's transmissions (With Tor, JAP, etc.) can be defeated relatively easy with a timing attack if you're connected to several of the attacker's nodes and the attacker is watching your transmissions at your ISP.
Bitcoin makes these attacks more difficult by only making an outbound connection to one IP address per /16 (x.y.0.0). Incoming connections are unlimited and unregulated, but this is generally only a problem in the anonymity case, where you're probably already unable to accept incoming connections.
Looking for suspiciously low network hash-rates may help prevent the second one.

Cancer nodes attack is implemented right now as it's said in the thread I made a link to.
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
October 06, 2012, 07:40:23 AM
#9
Yes. The attacker is the only who has connections to the victim.

And how exactly does the attacker control that (without having first hacked the victim's computer)?
full member
Activity: 137
Merit: 100
Semi-retired software developer, tech consultant
October 06, 2012, 07:39:04 AM
#8
I believe the servers forward the transaction to other servers. (Can someone verify this?). The client can't control who the server forwards the transaction to, therefore the assumption you base the exploit on would not be valid.
legendary
Activity: 2142
Merit: 1010
Newbie
October 06, 2012, 07:34:19 AM
#7
Actually even if they did own the victims internet connection they would still have to be rather amazing to be able to complete the 6 confirmations within one hour. Wink
If there is only a bot on victim's side it won't care if it takes 10 hours for 6 confirmations.


As far as I know the standard client will send the tx to all the connections it has (nothing to do with who you are sending actual bitcoin to and in all likelihood your attacker would not even be one of those connections).

Is the point that the attacker is somehow the only connection the victim has to the P2P network?


Yes. The attacker is the only who has connections to the victim.
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
October 06, 2012, 07:25:27 AM
#6
Sorry - I edited the last post a bit late - as far as I know the standard client will send the tx to all the connections it has (nothing to do with who you are sending actual bitcoin to and in all likelihood your attacker would not even be one of those connections).

Is the point that the attacker is somehow the only connection the victim has to the P2P network?
legendary
Activity: 2142
Merit: 1010
Newbie
October 06, 2012, 07:23:39 AM
#5

I thought that your point was that other nodes know nothing about the transaction - how has the attacker stopped that from occurring?


Does client use P2P broadcasting (with explicit connection) or it's IP broadcasting to the whole Internet? If it's P2P, then tx won't be really broadcasted, coz only the attacker will receive it.
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
October 06, 2012, 07:21:11 AM
#4
2. The attacker sends a transaction only to the victim, all other nodes know nothing about the transaction.

Unless the "victim" is running some non-standard software or have been configured specifically to not broadcast tx's this should not be possible (unless you are saying the attacker owns the victims internet connection).


If the victim broadcasts tx then the attacker receives it.

I thought that your point was that other nodes know nothing about the transaction - how has the attacker stopped that from occurring (i.e. the victim won't only send the tx to the attacker)?
legendary
Activity: 2142
Merit: 1010
Newbie
October 06, 2012, 07:19:34 AM
#3
2. The attacker sends a transaction only to the victim, all other nodes know nothing about the transaction.

Unless the "victim" is running some non-standard software or have been configured specifically to not broadcast tx's this should not be possible (unless you are saying the attacker owns the victims internet connection).


If the victim broadcasts tx then only the attacker receives it.
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
October 06, 2012, 07:17:45 AM
#2
2. The attacker sends a transaction only to the victim, all other nodes know nothing about the transaction.

Unless the "victim" is running some non-standard software or have been configured specifically to not broadcast tx's this should not be possible (unless you are saying the attacker owns the victims internet connection).

Actually even if they did own the victims internet connection they would still have to be rather amazing to be able to complete the 6 confirmations within one hour. Wink
legendary
Activity: 2142
Merit: 1010
Newbie
October 06, 2012, 07:13:43 AM
#1
This idea came after reading https://bitcointalk.org/index.php?topic=114102.00:

Imagine that someone opened a lot of connections with multiple IPs to other nodes. Number of such connections so big that there are a lot of nodes connected only to the attacker. Let's assume the attacker attempts double-spending attack with the following scenario:

1. He chooses a victim and says that he will pay some bitcoins for something.
2. The attacker sends a transaction only to the victim, all other nodes know nothing about the transaction.
3. The attacker solves 6 blocks so the transaction gets 6 confirmations.
4. The victim sees the confirmations and complete its part of the deal.
5. While the attaker was solving his blocks the main blockchain got higher cumulative difficulty coz more than 6 blocks were solved. Even if the victim reconnects to other nodes it will see that non-legit transaction disappeared from the blockchain and the attacker still owns "spent" coins.

Is it possible theoretically and practically? What could be used to prevent such an attack?
Pages:
Jump to: