public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Ivan Pustogarov <ivan.pustogarov@uni.lu>
To: <bitcoin-development@lists.sourceforge.net>
Subject: [Bitcoin-development] Outbound connections rotation
Date: Mon, 18 Aug 2014 18:46:12 +0200	[thread overview]
Message-ID: <20140818164543.GB31175@localhost.localdomain> (raw)

Hi there,

I'd like to start a discussion on periodic rotation of outbound connections.
E.g. every 2-10 minutes an outbound connections is dropped and replaced
by a new one.

Motivation:
Each bitcoin non-UPnP client behind NAT has 8 outbound connections
which change only rarely (due to occasional remote side disconnections).
A subset of these 8 entry nodes uniquely identifies a user.
An attacker can listen for transactions in Bitcoin network and for each
transaction record the first 8 peers which forwarded the transaction.
If two distinct transactions (with unrelated bitcoin addresses)
come from the same set of 8 peers, the attacker can conclude that they
originated from the same user. This gives another method (in addition
to transaction graph analysis) for an attacker to link different BC
addresses of the same user.
Also note that by default bitcoin clients advertise their public IP
addresses. The attacker can link the advertised IP's to corresponding
8 entry nodes and use it to deanonymise Bitcoin clients.

If a bitcoin client periodically rotates his set of outbound
connections, his 8-peers fingerprint is blurred over time.

Corresponding pull request is #4723.

Some details are here: https://www.cryptolux.org/index.php/Bitcoin

-- 
Ivan



             reply	other threads:[~2014-08-18 16:54 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-18 16:46 Ivan Pustogarov [this message]
2014-08-18 17:19 ` [Bitcoin-development] Outbound connections rotation Jeff Garzik
2014-08-18 17:21 ` Gregory Maxwell
2014-08-18 17:27   ` Mike Hearn
2014-08-18 17:35   ` Pieter Wuille
     [not found]   ` <CAPg+sBgzEMAQ03GTE2j82+K2B+Dia6T0z14ZYWsBQ8z8QSVoLg@mail.gmail.com>
     [not found]     ` <CAAS2fgRT8OQzUkneKwpjD15aLZDivT=hgBMTB63EjN8RBrp+RQ@mail.gmail.com>
2014-08-18 18:13       ` [Bitcoin-development] Fwd: " Gregory Maxwell
2014-08-18 18:38         ` Wladimir
2014-08-18 18:37   ` [Bitcoin-development] " Ivan Pustogarov
2014-08-18 19:37     ` Gregory Maxwell
2014-08-18 20:33       ` Ivan Pustogarov
2014-08-18 20:43         ` Gregory Maxwell
2014-08-18 21:02           ` Ivan Pustogarov
2014-08-18 23:20             ` Gregory Maxwell
2014-08-20 12:59 ` [Bitcoin-development] Proposal: PoW-based throttling of addresses (was: Outbound connections rotation) Isidor Zeuner
2014-08-20 14:41   ` Mike Hearn
2014-08-23 11:53   ` Isidor Zeuner
2014-08-23 13:03     ` Mike Hearn
2014-11-13 22:52     ` Isidor Zeuner
2014-11-18 12:06       ` Mike Hearn
2014-11-27  3:29   ` Isidor Zeuner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140818164543.GB31175@localhost.localdomain \
    --to=ivan.pustogarov@uni.lu \
    --cc=bitcoin-development@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox