The Chinese (Simplified) wiki is no longer maintained and is in read-only mode. Information contained within may be inaccurate or outdated. Please go to the English wiki for more up to date information.
从英文自动翻译:中文(简体)维基不再维护,处于只读模式。其中包含的信息可能不准确或过时。请前往英文维基获取更多最新信息。
匿名性
虽然比特币对匿名性有强有力的支持,但现在的交易环境通常并不具有足够的匿名性。
目前最主要的问题是:每笔交易都被记录在案。任何人都能看见比特币的去向(参见第一张图)。仅有这张图的话不能够用来辨识任何人,因为地址只是随机数。然而,如果任
何任何交易所包含的地址能够和一个身份相关联,就有很大的可能性从该关联出发,找出其他地址的所有者。这个身份情报可能来源于网络统计信息、流量监视或谷歌搜索。官
方所推荐的方法是每笔交易都更换一个地址,这会使这种攻击变得更加困难。
第二张图示一个简单的例子:某人(攻击者)同时经营着一个兑换比特币的网站和一个钓鱼网站,刘先生从兑换网站那里换了比特币,然后用这些比特币在钓鱼网站上买了东西。
攻击者就可以证实这两个交易来源于同一个人。区块链将显示:
- Import coins from address A. Send 100 to B. Authorized by (signature).
- Import coins from address B. Send 100 to C. Authorized by (signature).
你无法改变你的“发件地址”,刘先生必须从他接收比特币的地址——地址B进行发送。攻击者明白:地址B是刘先生的,因为他从刘先生的Paypal帐号收到了钱,并将比特币发送
到了地址B。 You can't change your "sending address"; Mr. Doe must send coins from the same address that he received them on: address B. The attacker knows for a fact
that address B is Mr. Doe because the attacker received $5 from Mr. Doe's Paypal account and then sent 100 BTC to that very same address.
另一个例子:某人被欺诈了,将自己的地址贴在了论坛上。这样就可以看出他们发送到了哪些地址。当比特币从欺诈者的地址发出时,收件地址也会很容易地被找到并被贴到论坛
上。这样一来,这些比特币都被标示为“脏钱”——包括它们将来会参与的交易。当那些聪明而且诚实的人注意到了他们的地址被记录了,他就能查明他从谁那里获得这些比特币
。比特币社区现在可以大展身手了,比如问他:“你从哪里收到这些比特币?”“他创建这个地址是为了哪些交易?”。最终,欺诈者会被拆穿。显然,牵连的地址越多,寻找犯
人就越困难。
你可能认为这种攻击方式行不通。但考虑一下以下情境:
- 你住在中国,想用比特币买一份说真话的报纸。
- 你加入了BTC论坛并拿你的地址当作论坛签名。由于你的突出贡献,几个月后你获得了30比特币的奖励。
- 倒霉催的,你是从一个钓鱼的国宝那里买的报纸。这时你还很傻很天真地认为比特币的匿名性完美无缺。
- 国宝使用了谷歌(更可能是百度)查找你使用的区块链中的每个地址,并发现了你在论坛上的签名,里面含有你的地址。由于你在帖子中留下了过多的个人信息,所以你马上就
要被请去喝茶了!
你需要通过防止两方面的攻击来保护你的匿名性:前端攻击(用收取比特币过程中原应保密的地址来确认你的个人信息,如欺诈者的那个例子)和末端攻击(用比特币发送过程中
原应保密的地址来确认你的个人信息,如报纸的那个例子)。
保持匿名
当你不得不从一个收件的地址进行发件操作时,应该谨慎选择从哪个地址发件。选择新生成的比特币或是已知不泄露个人信息的地址会很好的保护你的安全。可惜比特币客户端目
前并不支持此项功能,你必须做出最坏的假设,即:如果一个地址可以用来确认你的个人信息,那么你的整个账户都存在危险。
If your balance has been "dirtied" by containing both anonymous and non-anonymous coins, it is difficult to make it "clean". These methods are not
recommended:
- Sending coins to a different address under your control will give you some plausible deniability. However, an investigator is still likely to find you and
demand to know who you sent the coins to. It will be difficult to hide the fact that you sent them to yourself if you're searched: Bitcoin keeps logs of
every transaction you make, and there will probably be evidence of any other computers you control. If the attacker is not law enforcement (or maybe even if
they are), they might kill you "just in case". If you use this method, send bitcoins in small increments (no more than 50 BTC, but as small as you're willing
to use) to avoid combining coins, which reduces anonymity.
- Tor prevents network analysis and should be used, but it won't help make your Bitcoin balance "clean" The attacker isn't talking to you over the Internet;
they're looking at your changes to the block chain. This is similar to posting a threat and your street address on a message board using Tor -- Tor
doesn't stop the police from finding you.
This is the recommended way of anonymizing your balance:
- Send however many coins you want to anonymize to a new MyBitcoin account as a lump sum. Use Tor for both your client and your
Web connection to MyBitcoin. There are other eWallet services in addition to MyBitcoin however MyBitcoin is widely used and thus may offer the greatest
potential for anonymity. This is not an endorsement of trust in the MyBitcoin service. There are no guarantees that MyBitcoin won't one day
take all your bitcoins and disappear. Use at your own risk.
- Set up a brand new (empty) Bitcoin installation somewhere. Use Tor with it.
- Every day, withdraw 5% of the transaction amount to the new installation. Bonus points: add some randomization to the amount of Bitcoins you withdraw and
the time between doing it.
With this method, MyBitcoin acts like an encrypted proxy to your Bitcoin transfer. An attacker will have to gain access to MyBitcoin's transaction logs to
continue to follow you in the transaction history.
To further enhance your anonymity, you can:
- Send fewer coins from MyBitcoin to your new installation over a longer period of time.
- Send Bitcoins from MyBitcoin to another eWallet servicre and then to yourself. This is like chaining encrypted proxies: both will need to be
compromised for you to be identified.
The protection that this method offers is significantly reduced if you are trying to anonymize more than about 10% of the total number of Bitcoins that
MyBitcoin holds. You'll end up getting your own coins back instead of other users' coins. Withdrawing Bitcoins more slowly and in smaller increments will
help reduce this problem. Sending coins to MyBitcoin in the largest single transfer possible will also help.
Once you have an anonymous balance set up, be sure to keep your anonymous and non-anonymous balances completely separate. You can only move coins from the
anonymous balance to the non-anonymous balance if none of the anonymous coins were gotten in ways that should not be connected to your identity. You can move
one of your balances to a (new) MyBitcoin account if you'd like; this is not an anonymity problem if you use Tor while accessing MyBitcoin.
Help other people stay anonymous
- Set up a real external mixing service. Make it like MyBitcoin, but make sure that a user never withdraws
the same coins that he puts in. Also delete empty addresses and transaction logs. This requires modifications to Bitcoin.
- Even if you're not a programmer, you can make a slightly less secure version of an external mixing service (as a Tor hidden service, preferably):
- Set up two Bitcoin installations.
- Put some amount of BTC in installation B. This is the maximum amount of BTC you can deal with at once (for all customers).
- Customers send BTC to installation A. You send them an equal number of coins (or minus a fee) from installation B. Send as 10-50 BTC increments.
- Send all coins from A to B when all orders are satisfied. You can't send coins from A to B if you have any orders that have not been satisfied from
B.
- This can be automated, or you can do everything manually.
- Put lots of Bitcoins in MyBitcoin and keep it there. If anyone uses the anonymization method described in "staying anonymous" above, this will enhance it.
Send in small increments: less than 200 BTC.
See Also
- RFC: Bitcoin Mixnet
- anonymity
- Bitcoin Laundry (Does not mix well -- you may get your own coins back.)