Back to list
讨论Meshnet的时间延迟和隐私安全相关的问题
本博客文章内容讲所的是_Skywire_形成初期,在_Skywire_这个名字被使用之前的内容。此文章是从_2014_年_8_月_9_日发表在_bitcointalk_论坛上的博客文章改编而来。
引用自:CraigM 2014年8月9日,上午 07:20:24
Meshnet是设计作为一个效益可以媲美tor的隐私工具, 并且拥有更低的延迟时间,这是正确的吗?
Meshnet的设计是允许资金节点通过Skycoin里的小额支付来覆盖带宽成本,是正确的吗?这难道不会让所有的节点因为需要存储交易记录和详细的发布日志而造成压力吗?(在他们个人的区块链上)这些日志描述了所有与通过他们节点发送的所有人相对应的交易数据。这看起来像是它将允许任何第三方来进行流量相关攻击,就像tor上的攻击,差异在于你不需要登录到那些连接。即便他们最后没有被公开检查,记录一切数据看起来或许有些真正面对的问题(执法部门可能会对它提出要求,同时也可能占用太多的存储空间)
最初的版本是打算用中心化的路由服务器来寻找路由,这正确吗?这意味着如果你想和某人连接(另一端),你必须把这件事告诉第三方,这正确吗?除非这个逻辑被修复,否则它似乎并不是一个类似Tor的隐私服务。是否有理由相信你们将很快能找到解决方案吗?(或者:解决这个问题难不?)
你如何找到一条可靠的第三方的路由,同时为你寻找另一端的路由? 我假设你这是特殊情况(不要使用发送方路由选择),但如果您有其他(更好的)设计,我会感兴趣和好奇。
问题回应
是的。它实际上比TCP/IP更加快速。ISPs采用"热土豆"的路由算法。Skywire的延迟不应当比TCP/IP来得糟糕,因此理论上应当更快。
其隐私保证是:
- 每个节点只知道前一个节点和下一个节点
- 节点之间的传输是加密的
- 传输是端对端加密的
- 传输的节点是受保护的,通过对节点的端点采用公钥,从而达到传输免受中间人的攻击。(网络地址在网络上使用的是公钥)
- 所有加密都是可拒绝和短期的 (节点间会快速更换加密KEY)
- 协议的设计是为了阻止深度数据包检查来识别运行节点用户的企图(不是固定端口,不是已知的电报形式的明文,主干网和其它的节点是固定连接的)
所以它可以解释为像一个支持带宽小额支付功能的超低延迟的TOR。
- 它比HTTPS更安全,隐私性更高
- 它比TOR更快,可扩展,但是仍然会遭受一些攻击
- 它的代码比TOR的简单得多,因此后门和隐藏的弱点被展示的空间很小。在整个实施过程中只有一个外部依赖方(截止最新开发进展,已经消除了全部外部依赖)
- 如果你需要绝对地安全,并且能够防御时序攻击,你应该使用一个混合服务或者在暗网上运行比特信息。
- 所有低延迟网络都可能受到时序攻击
路由服务器
是的,路由服务器是个薄弱环节。为了实现最大化的隐私,你应当运行你自己的内部路由服务器。
另一种方式是你使用公共路由服务器,你可以设计通过多个节点连接到它,它虽然也无法识别出你。尽管如此,相比起来还是运行自己的节点路由器会更加安全。
处理带宽的小额支付
小额支付的处理方式是通过一个第三方。节点连接到一个"网关",然后在网关存储一枚币来获得一个信用点。目前节点可以和网关产生匿名的64位的"地址"。网关不知道连接过来的节点身份。它只知道此连接节点之前通过的上一个节点。
因此,你如果给网关搭建12个连接,它们看起来像连接到网关的12个不同的用户。最终发送到网关的通信将通过一个非同步的通信通道。
节点传输着带宽,其他连接到同一个网关的节点也一样传输着带宽。两个节点间将可以通过网关彼此支付,而网关不会知道两个节点的身份。当一个节点有足够多的币信用值时(一整个币,节点收到的币如果每满一个数量后,就自动存储及生成一个新地址另存进去),它就能生成一个新的天空币地址,并且可以把币从原有地址转到新的地址。因此网关每次只需要处理单个节点比较小的交易金额(同时可以多个节点进行)。
天空币协议中的网关是指任何持有天空币的服务器或者代表第三方的账户余额。网关是存款机构,它们有自己的协议和API。
最终结论:
- 将会由多个网关和交叉网关进行币的转移。这些交易的发生是在私下进行的,除非你从网关提币,否则交易数据不会出现在区块链上。
- 网关间的通信将通过一个非同步的通信通道来进行(每一个信息通道将得到一个新的匿名身份)
- 网关协议的部分是OT实现,允许你证明某个特别的网关是否在盗币。你给网关的每个API函数调用签名,然后网关执行并签名相关的输出。因此会有一个串连起来的签名和交易数据,在不伪造签名的情况下网关无法让币消失。如果你把币存储在某个地方,而它们却消失了,你因此可以公布你的交易日志,然后被指定的节点拥有者不得不展示一个你所授权的币的去向日志。如果它们不能调用一个已签名的API函数,那就证明它正在撒谎或者不诚实。
- 最终交易所将会按照网关协议来运行
你建议对于网关内的内部余额来搭建一条公链是很有意思的。我认为将内部交易放到一条公共的个人区块链上,可以保护用户隐私的同时也可以让交易所保持诚实。