原始文献 / 论坛帖 / Re: Repost: How anonymous are bitcoins?
Re: Repost: How anonymous are bitcoins?
Bitcointalk · 2009-11-25 18:17:23 UTC
网络上的节点能看出币是从哪个、向哪个比特币地址发送的吗?区块里是否包含比特币转到过哪里、从哪里转来的历史?
比特币是在比特币地址之间发送的,比特币地址本质上是没有身份信息的随机数。
当你发送到一个 IP 地址时,交易仍然是写到一个比特币地址上的。IP 地址只用来连接到接收方的电脑,请求一个新的比特币地址,把交易直接交给接收方并得到确认。
区块包含一枚币被转移到过的比特币地址的历史。如果使用这些比特币地址的人的身份不为人知,而且每个地址只用一次,那么这些信息只揭示了:某个不知名的人把一定数量转给了另一个人。
能否匿名或化名,取决于你有没有在与你使用的比特币地址相关联的场合透露任何身份信息。如果你把自己的比特币地址发到网上,那就等于把这个地址以及与之相关的所有交易,跟你发帖用的名字关联起来了。如果你发帖用的网名没有跟你的真实身份关联,那你仍然是化名的。
为了更好的隐私,最好每个比特币地址只用一次。你可以用"选项 -> 更改你的地址"随时换地址。通过 IP 地址的转账每次都会自动用新的比特币地址。
节点能看出哪些比特币地址属于哪些 IP 地址吗?
不能。
比特币第一次启动时有没有命令行选项可以启用 sock 代理?
在下一个版本(0.2)中,第一次启动就通过代理运行的命令行是:
bitcoin -proxy=127.0.0.1:9050
TOR 的问题在于,比特币用来初始发现其他节点的 IRC 服务器像所有 IRC 服务器一样封禁了 TOR 出口节点。如果你之前已经连接过一次,你已经有种子了,但第一次连接时,你需要像这样提供一个节点的地址:
bitcoin -proxy=127.0.0.1:9050 -addnode=<某个ip地址>
如果有运行节点、拥有可接受入站连接的固定 IP 地址的人能把自己的 IP 发出来供 -addnode 使用,那就太好了。
如果你把比特币发到一个有多个客户端通过网络地址转换(NAT)连接的 IP 地址,会发生什么?
你把 NAT 设置里把 8333 端口转发给谁,谁就收到。如果你的路由器转发时能改端口号,你可以让多个客户端都能接收。比如,如果 8334 端口转发到某台电脑的 8333 端口,发送方就可以发到"x.x.x.x:8334"。
如果你的 NAT 不能转换端口号,目前还没有命令行选项能改比特币绑定的入站端口,但我会研究一下。
英文原文
Can nodes on the network tell from which and or to which bitcoin
address coins are being sent? Do blocks contain a history of where
bitcoins have been transfered to and from?
Bitcoins are sent to and from bitcoin addresses, which are essentially random numbers with no identifying information.
When you send to an IP address, the transaction is still written to a bitcoin address. The IP address is only used to connect to the recipient's computer to request a fresh bitcoin address, give the transaction directly to the recipient and get a confirmation.
Blocks contain a history of the bitcoin addresses that a coin has been transferred to. If the identities of the people using the bitcoin addresses are not known and each address is used only once, then this information only reveals that some unknown person transferred some amount to someone else.
The possibility to be anonymous or pseudonymous relies on you not revealing any identifying information about yourself in connection with the bitcoin addresses you use. If you post your bitcoin address on the web, then you're associating that address and any transactions with it with the name you posted under. If you posted under a handle that you haven't associated with your real identity, then you're still pseudonymous.
For greater privacy, it's best to use bitcoin addresses only once. You can change addresses as often as you want using Options->Change Your Address. Transfers by IP address automatically use a new bitcoin address each time.
Can nodes tell which bitcoin addresses belong to which IP addresses?
No.
Is there a command line option to enable the sock proxy the first
time that bitcoin starts?
In the next release (version 0.2), the command line to run it through a proxy from the first time is:
bitcoin -proxy=127.0.0.1:9050
The problem for TOR is that the IRC server which Bitcoin uses to initially discover other nodes bans the TOR exit nodes, as all IRC servers do. If you've already connected once before then you're already seeded, but for the first time, you'd need to provide the address of a node as such:
bitcoin -proxy=127.0.0.1:9050 -addnode=<someipaddress>
If someone running a node with a static IP address that can accept incoming connections could post their IP to use for -addnode, that would be great.
What happens if you send bitcoins to an IP address that has multiple
clients connected through network address translation (NAT)?
Whichever one you've set your NAT to forward port 8333 to will receive it. If your router can change the port number when it forwards, you could allow more than one client to receive. For instance, if port 8334 forwards to a computer's port 8333, then senders could send to "x.x.x.x:8334"
If your NAT can't translate port numbers, there currently isn't a command line option to change the incoming port that bitcoin binds to, but I'll look into it.
