Skycoin的Darknet计划白皮书(中文版)
时间:2014-08-30 来源:壹比特 作者:zccoin
Skycoin的Darknet匿名网络计划 英文原版地址:https://github.com/skycoin/whitepapers 中文翻译地址:https://github.com/zccoin/skycoinwhitepapers 译者:招财币冷月 新浪微博 @招财币冷月 BTC捐赠地址:1HLnkctB8dN4AcorjsJK493pHL7rUSVfzm ZCC捐赠地址:ZVX7namJi8CinMQbFruzHA27eW53qTznXW Darknet计划 ============ Skycoin Darknet是一个受cjdns启发的高性能,具有隐私保护的路由协议。用户通过贡献资源到网络来获取skycoin并且为使用网络资源而付出资源。 这个协议被设计用来在传统互联网上运行,并且节点通过wifi物理性连接。长期目标是创建远程点对点wifi链接而绕过现有的互联网供应商。 Skywire Meshnet白皮书 =========================== 实现细节 https://docs.google.com/document/d/1_rPNMTokwmBPFel1pZfLbTtTkooSWtGKrTLB3RbXIrI 用户案例:链路聚合 =============================== Bob有一个2 Mb/s的互联网连接。它需要花费Bob几分钟来加载Youtube视频。Bob有五个有2 Mb/s链接的邻居。他们安装Skycoin节点。Bob的Skycoin节点链接通过wifi连接到他的邻居并且聚合带宽,给Bob带来了12 Mb/s连接。 Bob接受Skycoin用于传递流量并且为了使用网络资源而花费Skycoin。 备注: - Bob的IPv4流量通过Darknet隧道进入本地服务器的普通的互联网 - Bob的Skycoin链接作为他电脑上的VPN链接出现 - Bob的流量可能经过多个他家和IPv4网管节点间的路由器 - 花费$150设备费用,Bob可以40 Mb/s连接到最多五英里外的节点 - 话费$1500设备费用,Bob可以1.4 Gb/s连接到最多十五英里外的节点 用户案例:回程 ====================== Alice住在一个大城市,离每秒T级骨干光纤托管中心2英里。 Alice的网速是 2 Mb/s。 Alice在FCC搞定公共运营访问规则前有更便宜更快的互联网。现在,在美国两个最大的有线公司合并之后,Alice仅仅有一个ISP。 合并后CFO表示“人们并不想要更快的互联网”,提高价格并且设置带宽上限。Alice超过100 Gb带宽上限后每GB付费$0.30。 自从网络中立性被秘密的,甚至国会议员在被签署前并不被允许看到或者投票的后门国际协定搞定了之后,Alice的ISP正变的越来越糟。 Alice的Youtube和Netflix视频比之前加载更慢。Alice的ISP已经开始限制Netflix,Youtube和Bittorrent,并且公开抵制它们。 Alice的ISP开始跟踪她访问的每个站点,记录她的个人信息并且卖给NSA和营销公司。Alice的ISP已经开始从Alice访问的网站窃取利润,把网站的广告替换成它自己的。Alice的ISP开始黑名单它不喜欢的网站。 Alice听说了Skycoin,发现另外一个Skycoin用户有一个位于托管中心的办公室。Alice在她的房顶花了$1500并且安装了1.4 Gb/秒的Ubiquity airFiber天线来桥接她和骨干光纤的距离。Alice的网络作为她的邻居们本地Skycoin mesh的回程。 Alice取消了她的网络服务。 用户案例:互联网杀死交换 =================================
硬件 ======== 在开发中,我们使用如下: 平台: - Debian - 树莓派/Beagle开发板 Wifi设备: - Edimax EW-7811Un (良好的Linux支持) - TP-LINK TL-WN722N (外部天线支持远程方向性连接) 方向性天线: - TP-LINK TL-ANT2424B 24dBi 60 cm 方向性网格抛物线天线。 直线无遮挡下最高10英里范围。 - 参见: http://fabfi.fabfolk.com/ 未来: - RONJA (see http://en.wikipedia.org/wiki/RONJA ) - HackRF http://kck.st/1eb5z2R - Li-Fi http://en.wikipedia.org/wiki/Li-Fi 技术目标 ==================== 实现: - Go语言原型 - 非常简单 - 最小化的依赖关系 设计目标: - 隐私保护 - 提供带宽,存储和回程给予虚拟货币激励 - 开放访问的Wifi mesh网络 - 设计用来桥接骨干网络和家之间最后一英里 - "零配置"。即插即用,无需配置 - 很难被检测到或者限制 协议 v0.2 ============== 协议应该 - 简单 - 快速 - 安全 连接层: - 打开到远程主机的TCP套接字。使用带curve secp256k1的ECDH建立ChaCha20对称session key。 - 现在你拥有了可以用来发送接收数据到节点的双向连接 路由 v0.1: - 在每个节点,建立一个“路径”。路由中的每个节点,下一个节点注册并分配一个四字节整数。数据包的前缀四字节决定了数据被传递到的节点。 - 每个节点解码数据包,得到前面四个字节来决定要传播数据到的下一个节点。简单的查找表。Routing decisions pushed to origin. - 流量是单向 路由 v0.2: - 每个节点,建立一个“路径”。路由中的每个节点,下个节点注册并分配一个由发起端决定的八字节整数。发起端接收到8字节salt。Salt是哈希或者压缩函数 (例如 XOR)。 - 每个节点读取数据包的头八个字节,使用salt函数对这8个字节进行哈希并得到Salt(S, H)。节点在路由表中查找这个值并得到数据包被传递到的节点。 - 假设P1是来源节点数据包8字节前缀,S是salt,P2是传播到下个节点数据包的整数前缀,然后下个节点表示为Salt(P1,S)。返回路径是Salt(S,P2)。 - Salt有传输节点选择来防止和通过节点的其它路径发生碰撞。为了恒定查找时间,Salt可以从路由器哈希表中选取来防止碰撞。哈希查找表内部应该有随机性来防止信息泄漏。 - 假设D是数据包的前缀,Salt(P2,D)是前向路由,Salt(P1,D)是后向路由。Xor或者不可逆压缩函数可以用来作为salt。 - 假设XOR被用作salt函数,每个节点有一个seed。如果采用不可逆压缩函数,前向和后向路径可能要求单独的值。对称密钥加密每个节点仅仅需要一个salt。要求两个不可逆函数。 - 双向流通。目标能够反向和发起端通信而不需要知道salt值和返回路径。路由信息是确定的8字节。 流量付费: - 节点保留有每个方向多少路由流量 - 发起路由的人使用一个120字节离链Skycoin交易发起一次担保的“confidence payment”。 - 发起节点每几分钟和节点结算费用 备注: - 路由是由流量发起端决定 - 目标可以和发起端反向通信但是不能识别发起节点 - 每次付款的消耗是120字节 - 每个hop的开销是4字节 (留给读者的练习:把它变为常数) - 协议中公钥从不明文暴露 - 没有节点公钥不能和节点通信 - 32位路由路径前缀信息应该由节点共享的密钥混淆 - 对于安全应用,数据包应该是固定长度或者2的指数次幂来抵抗流量分析 - 一个发送节点的公钥可以被扔掉。目标公钥哈希作为路由的网络地址。目标公钥仅仅解码,从不签名。session key的成功解作为拥有私钥的证明和标识。 Todo: - 这是传输层协议。使用fountain coding,该层上的协议层通过多个路径发送流量到目标。 - 由于起点决定路径,起点能为延迟或者通量以及其他因素进行优化 - 为了防止被ISP阻断,流量和握手应该伪装成SSL协议。 隐私 ======= 一个运行Skycoin Wifi访问点的用户允许范围内的任意用户通过访问点连接。因为经过加密,访问点运营者不能决定通过访问点的流量的形态。流量的接收者不能决定流量经过访问点的路径。 这非常有效的去除了运营公开访问点的法律责任。运营者从来不能拥有所中继流量的任何信息,流量的接收者也不能识别网络接入点的运营者 并且,通过增加强制hop(一个“保卫节点”)ISP们不可能轻易的从通过一个特定电缆modem中继的一个特定的公共访问节点识别出Skycoin Darknet流量。 总结: - Skycoin Darknet Wifi访问点默认是公开的 - 访问点运营者不能看到通过访问点的流量内容 - 访问点运营者不能看到通过访问点路由的流量的目的地 - 流量的接收者不能决定起点或者数据经由网络的路径 - 使用“防卫节点” ISP们不能从通过一个特定终端连接(cable modem)中继的一个特定的公共访问节点识别出流量。 折中: ========= Skycoin Darknet协议是低延迟,高通量,并且比之前提供系统更高程度的隐私性。然而为了达成这些目标,有必要进行几个折中。 1. 路由决定被回到发起节点而不是网络 2. 由于加密的开销,树莓派仅仅能够前送 150 Mb/s。FPGA硬件能够把这个加速到GB/s。 3. 对于大型延迟不敏感的传输,网络具有更好的性能和最低的开销。Torrents能够在网络上运行非常良好。 4. 需要发送很多小型数据包的实时应用能够在网络上工作,但是比TCP/IP网络引入更大的开销。理论上的延迟和延迟的“抖动”小于TCP/IP,但是对于像VOIP的实时应用有更高的带宽要求。 5. 带宽的微型交易污染区块链。因此我们依靠可信任的第三方来完成低开销的带宽保证金付款的离链微型交易。 6. 由于路由决定被推回发起客户端,客户端必须维护路由表或者依赖第三方服务器的路由信息。 7. 存储和发送操作增加了网络的流通量和可靠性,但是降低了实时应用的服务质量。存储和发送操作带来对节点内存和存储的额外要求,这有可能影响传统路由器的容量。 8. 在Skycoin Darknet和传统互联网接口的节点可能遇到Tor退出节点同样的问题。大多数的tor退出节点因为垃圾问题被列入编辑维基百科和注册网站帐号的黑名单。为了维护高质量服务,退出节点可能要求信任关系,付款或者用户注册来防止滥用。 |