28 比特币的匿名性
不像装满百元美钞的手提箱那样可以不留痕迹地转移,比特币的交易记录在公开账本上。尽管比特币地址实质上是匿名的,但是通过这些地址进行的交易可不是。
比特币的匿名性如何?
中本聪,2009年11月25日,下午06:17:23
网络节点知道比特币的来龙去脉吗?区块是否包含进出账的历史?
收发比特币的地址在本质上是没有任何识别信息的随机数。
向IP地址发送的交易仍然写入了比特币地址。IP地址只是用于连接收款人的计算机以请求新的比特币地址、将交易直接交给收款人并得到确认。
区块包含转入的比特币地址历史。如果使用该比特币地址的人身份不明,且每个地址只用过一次,那么历史信息只会说明一些匿名人把钱转给了其他人。
匿名和使用笔名的可能性取决于是否透露与比特币地址相关的身份信息。如果在网上公布了自己的比特币地址,那么就可以把该地址、它所包含的交易以及公布时所用的名字关联起来了。如果使用没有关联真实身份信息的马甲发布,那么就是匿名的。
要想更好地保护隐私,比特币地址最好只用一次。这可以通过修改Options->Change来调整地址变更的频度。
节点是否知道比特币地址属于哪个IP?
不知道。
在比特币首次启动时是否有命令行选项可以控制服务端口的代理服务器?
下一个版本(0.2版)提供在启动时通过代理利用命令行控制:
bitcoin -proxy=127.0.0.1:9050
TOR的问题是在启动时发现其他节点的比特币IRC服务器禁止TOR退出节点,所有的IRC服务器都是如此。如果之前曾经连接上了,那么说明已经有种子存在,但是第一次需要提供一个像下面这样的节点地址:
bitcoin -proxy=127.0.0.1:9050 -addnode=<someipaddress>
如果节点使用静态IP地址接受传入的连接,就可以把这个IP用于-addnode, 那可就太棒了。
如果把比特币发送到某个IP地址,而该IP地址的后面有多个客户端通过网络地址转换(NAT)连接,那会怎么样?
通过NAT端口8333转发到的那个客户端会收到交易。如果路由器能在转发时改变端口,就可以允许多个客户端接收比特币。例如,如果端口8334把交易转发到一台计算机的8333端口,那么付款者可以把比特币支付给“x.x.x.x:8334”。
如果NAT不能进行端口转换,那么目前还没有命令行的可选项来改变比特币所绑定的接收端口,但我会继续深入研究。