Tor
基于洋葱路由的第三代系统Tor,是如今广泛用在基于TCP应用(网页浏览,SSH,即时消息应用)、流量隔离与隐藏服务中的匿名系统。Tor网络由接近12000个路由节点组成,它们被划分和组织在不同的层次上。基于由网络赋予的不同信任度(特别是在线时长和是否通过Tor基金会的验证),路由节点在系统中扮演不同的角色,如中继服务,目录服务,会和节点等。
Tor是基于电路的分布式可信网络,大多数情况下使用一个三层加密来保证数据从入口节点进入Tor网络到通过退出节点到达目标地址之间的匿名性。Tor首先会从可信、冗余、权威的目录服务器中请求网络上上相关的节点信息,并且在几个约束的条件下建立一个通信电路。每个节点或洋葱路由(Onion Router)都会保留多个密钥对以用于解密和电路协商。一旦建立通信电路,客户端就会使用N个会话密钥对网络数据进行N层加密随后发送给Tor网络的入口节点。
Tor使用的是对称加密算法,每到达一层本层即可使用自己的会话密钥解密部分信息,接着将源地址替换为自身地址后向目的地址转发,整个传输过程如同剥开洋葱一般,每一层的节点都只能解密本层密钥加密的数据获得下一跳的路由信息,使得整个通信电路节点不会对整个数据的流向有所了解,从而保护了用户的匿名性。如下图所示:
Tor与区块链的相似性
一些区块链与Tor的相似特性与功能如下表:
首先上述区块链系统和Tor都是分布式、容错的点对点网络,他们使用数字签名来认证相关参与者,通过随时监控网络来接受节点的新交易来进行系统状态更新。网络的管理主要基于其体系结构,同时也依赖于用于建立Tor网络电路和验证区块链数据的密码学方案。此外相关的对等点保留自己的加密密钥,以相互认证并验证信息是否准确。同时大多数交互过程由于使用的是时间戳字段,故此过程中不涉及任何第三方。需要注意的是在Tor网络中进行密钥交换之前,首先会联系分布式目录服务器来获得网络成员相关信息,但是一旦建立了电路,这些服务器就不会干扰通信。
此外,区块链技术还用于零知识证明和信息保护。用户在不透露任何额外信息下可以从数学上得出某个输入对应一个相关的确定输出的结论。相应地,Tor的目标是在公共网络上传播用户请求的同时保护他们的数字身份。
另一方面来看,两者之间的主要的差异在于,区块链系统会维护一个安全的全局交易账本,而Tor只是被用来转发用户的请求,对网络数据只有忽略不计的可见性。试想一下如果Tor也拥有一个如区块链一般一样的共识,那么整个系统的关键特性–匿名性就会消失。同时Tor是一个分层的网络,其中不同节点拥有不同的角色和不同的权重,系统状态的维护只被保留给一部分要求用户信任的节点。例如为了转发请求,Tor网络为不同的连接场景提供了介绍点8和会合点9。至少在设计上与区块链相比,一般节点的重要性不尽相同。此外Tor只使用有限的节点来控制网络,因此Tor网络的弹性是有限的。一个不可忽视的部分是Tor是由基金会使用一种不太透明的方式管理的,这意味着系统安全性是建立在一定程度的未知部分之上的,特别是桥接路由目前还完全不可知。
最后,Tor网络中的隐藏服务(Hidden service)是只接受通过隐藏服务IP地址的特定协议进行传入连接的服务器,以保持其匿名性。同样比特币网络也可以保证一定匿名性,因为在将交易转发给多个对等点时,节点地址和它的IP之间没有明显的联系。 本质上来说,区块链和Tor网络提供了去中心化、信任、弹性、完整性。此外它们的区别是Tor不像区块链那样完全开放,使得任何服务都可以在区块链之上构建。