SN-0026 已核对来源,附原文与上下文。
> 网络上的节点能分辨硬币从哪个比特币 > 地址发出、发到哪个比特币地址吗?区块里是否保存着 > 比特币转来转去的历史?
比特币从一个比特币地址发往另一个比特币地址,而比特币地址,本质上便是不含任何身份信息的随机数。
按 IP 地址发送时,交易仍会写入一个比特币地址。IP 地址只是用来连接收款方的计算机,向其索取一个新的比特币地址、把交易直接交给对方并获得确认。
区块保存着硬币被转往哪些比特币地址的历史。倘若使用这些比特币地址的人身份不明、且每个地址只用一次,那么这些信息所能表明的,不过是:某个身份不明的人,给另一个人转了某个数额。
匿名或化名的可能性,取决于你并不把任何身份信息与你所用的比特币地址关联起来。倘若你在网上公布了自己的比特币地址,那么这个地址及其全部交易,便与你发帖所用的名字关联在了一起。倘若你用的是未曾关联真实身份的马甲,那仍然是化名。
若想获得更高的隐私,最好每个比特币地址只用一次。你随时可以在 Options->Change Your Address 里更换地址。按 IP 地址转账之时,每次都会自动使用新的比特币地址。
> 节点能判断哪些比特币地址属于哪些 IP 地址吗?
不能。
> bitcoin 首次启动时,有没有命令行选项 > 可以启用 sock 代理?
在下一个版本(0.2 版)中,从第一次运行就走代理的命令行是: bitcoin -proxy=127.0.0.1:9050
TOR 的问题在于,Bitcoin 用来初始发现其他节点的 IRC 服务器封禁 TOR 出口节点——所有 IRC 服务器都这么干。如果你之前已经连上过一次,那已经有了种子节点;但第一次运行时,你需要提供一个节点地址,像这样:
bitcoin -proxy=127.0.0.1:9050 -addnode=
如果有谁运行着静态 IP、可接受入站连接的节点,愿意把自己的 IP 贴出来供 -addnode 使用,那就太好了。
> 如果向一个通过 NAT(网络地址转换)接入了 > 多个客户端的 IP 地址发送比特币,会发生什么?
你在 NAT 上把 8333 端口转发给哪台机器,哪台机器就会收到。如果你的路由器转发时能改端口号,你可以让不止一个客户端收到。比如把 8334 转发到某台计算机的 8333 端口,发送方就可以发到 "x.x.x.x:8334"
如果你的 NAT 不能转换端口号,目前没有修改 bitcoin 入站绑定端口的命令行选项,但我会研究一下。