去中心化点对点网络简史:现代去中心化网络 Nostr 和 RingsNetwork_ORK:RELAY

什么是点对点网络?

点对点网络又称对等网络,是去中心化、依靠用户群交换信息的互联网体系,它的作用在于,减低以往网路传输中的节点,以降低资料遗失的风险。

与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能,任何一个节点无法直接找到其他节点,必须依靠其户群进行信息交流。

点对点网络的分类

根据中心化程度,点对点网络可以分为三大类:

一般型P2P

节点同时作为客户端和服务器端。没有中心服务器。没有中心路由器。比特币网络、BitTorrent网络、eDonkey网络均属于一般型P2P,每一个节点均可以作为客户端和服务端,它没有一个中心,没有任何一个节点能够控制整个网络,每一个节点的功能和权限都是对等存在的。

特殊型P2P

有一个中心服务器保存节点的信息并对请求这些信息的要求做出响应。节点负责发布这些信息,让中心服务器知道它们想共享什么文件,让需要它的节点下载其可共享的资源。路由终端使用地址,通过被一组索引引用来获取绝对地址早期的Napster网络属于特殊型P2P网络,一群高性能的中央服务器保存着网络中所有活动对等计算机共享资源的目录信息。当需要查询某个文件时,对等机会向一台中央服务器发出文件查询请求。中央服务器进行相应的检索和查询后,会返回符合查询要求的对等机地址信息列表。查询发起对等机接收到应答后,会根据网络流量和延迟等信息进行选择,和合适的对等机建立连接,并开始文件传输。

混合型P2P

同时含有一般型P2P和特殊型P2P的特点。Skype属于混合型P2P网络,用户信息和聊天信息存储在中心化服务器中,当用户直接进行文件传输时,Skype客户端之间又可以发起直连,不通过服务器,允许客户端之间直接传递文件。

点对点网络发展史

1969年—ARPANET

ARPANET技术架构图

APRANET访问界面

ARPANET,是美国国防高级研究计划局开发的世界上第一个运营的数据包交换网络,是全球互联网的鼻祖。

阿帕网的主机之间视彼此为对等的计算机节点,而非C/S结构。

1979年—Usenet

1979年杜克大学的研究生汤姆·特拉斯科特与吉姆·埃利斯设计出来Usenet,并于1980年发布。Usenet包含众多新闻组,它是新闻组及其消息的网络集合,他就像早期的reddit,是用户聚集的论坛。

Usenet比万维网的诞生早了十年,被称为“穷人的阿帕网”。

当用户发布文章时,根据所分Usenet层级存储在服务器,它一开始仅在该用户使用的新闻服务器上可以浏览。每个新闻服务器与其他服务器交换文章。这种方式就是P2P信息传输,文章从一个服务器复制到另一个服务器,最终可以传达到网络中的每个服务器,新闻组消息得以被分布式存储于全球大量的计算机中。每一台服务器都包涵所有的文章内容,服务器之间独立运行,同步文章。

从90年代开始,用户便不断上传体积庞大的非文本类内容,自此开始Usenet的服务器在流量和存储空间上开始呈现爆炸趋势。AOL于2005年停止使用Usenet。2010年5月,早在30多年前就开始使用Usenet的杜克大学关闭了它的Usenet服务器,其理由是使用率低且成本不断上升。

1999年—Napster

Napster是一种提供线上音乐服务的软体,最初由约翰·范宁、肖恩·范宁和西恩·帕克共同创立的档案共享服务。

电影《社交网络》中Mark的投资人SeanParker

用户可以免费下载Napster客户端,然后从别人那里下载MP3文件,同时自己也作为一台服务器,供别人下载。

Napster有一台中心服务器,向所有用户提供文件目录服务,客户想下载音乐时,需要先到这台中心服务器上查询哪些客户端拥有这首音乐,然后直连到那台机器下载。

Napster操作界面

Napster是第一个被广泛应用的点对点音乐共享服务,它极大幅度地影响了人们,特别是对于大学生使用互联网的方式。而它的出现,也使得音乐爱好者间共享MP3歌曲变得容易,却也因此招致了影音界对其大规模侵权行为的指责。尽管在法庭的责令下该服务已经终止,但它却为其他点对点文件共享程序——如Kazaa,Limewire和BearShare——的拓展铺好了路,且对这种方式的文件共享的控制,亦变得愈加困难。如今Napster以经营付费服务为主,而免费的Napster的流行和回响使其在电脑界和娱乐业里成为一个传奇的象征。

2000年—Gnutella

与半中心化网络的Napster不同,Gnutella网络是完全分布式的。其最初的流行是源于2001年早期Napster由于法律纠纷而被关闭的威胁。不断增长的用户也使得该协议的最初版本暴露了不少缺陷。2001年早期,各种不同版本的协议使得Gnutella的扩展性得到了增强。与先前的协议将每一个用户节点都当作用户以及服务器不同,改进过的协议将某些用户当作”超节点”,其为与之连接的所有用户路由搜索请求及回应。

2000年—Freenet

Freenet是一个内容发布和沟通平台,专为抵御内容审查而设计。海盗湾、维基解密、丝绸之路等著名平台都是基于Freenet的。

P2P本身的特性使其具有天然的抗审查特性,其平台的内容得以在节点中永久保存且不容易一次性删除或屏蔽所有节点,可以说Freenet的发布正式开启了暗网时代。

、致幻剂、管制药品等在丝绸之路上以比特币明码标价

2001年—Bittorrent

BitTorrent协议是用在对等网络中文件分享的网络协议程序。

BitTorrent协议下载的特点是,下载的人越多,提供的带宽也越多,下载速度就越快。同时,拥有完整文件的用户也会越来越多,文件的“寿命”也就越长。

种子文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的Bencode规则进行编码。

后来BitTorrent引入了分布式哈希技术,相比泛洪查询技术,DHT效率显著提升。DHT全称为分布式哈希表,是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。使用支持该技术的BT下载软件,用户无需连上Tracker就可以下载,因为软件会在DHT网络中寻找下载同一文件的其他用户并与之通讯,开始下载任务。这种技术好处十分明显,就是大大减轻了Tracker的负担。用户之间可以更快速创建通讯。

BitTorrent的客户端之一

2009年—Bitcoin

比特币是一种基于去中心化,采用点对点网络与共识主动性,开放源代码,以区块链作为底层技术的加密货币,比特币由中本聪于2008年10月31日发表论文,2009年1月3日,创世区块诞生。

比特币结合P2P对等网络技术和密码学原理,来维持发行系统的安全可靠性。与有中心服务器的中央网络系统不同,在P2P网络中无中心服务器,每个用户端既是一个节点,也有服务器的功能,任何一个节点都无法直接找到其他节点,必须依靠其户群进行信息交流。比特币使用以下3种机制,来解决初次运行时,查找其他节点的问题。

在默认情况下,运行比特币的用户端加入一个IRC聊天通道,并可以获知加入该通道的其他用户端的IP地址和端口。该通道的名称和IRC聊天服务器的名称被写在了比特币软件中。

一些“知名的”比特币节点也被编写在软件中,以防IRC聊天服务功能因故无法访问。

可以手动添加运行比特币的其他用户端的IP地址。

现在不需要运行上述3个机制,一旦连接到比特币的某个节点,在发送的信息中,就会包含对等网络P2P其他节点的地址,直接通过其匿名用户群来找到其他节点。节点遍布整个互联网的P2P技术和密码学原理相结合,确保了比特币发行系统无法被政府、组织、或黑客监控、隔离、或破坏,从而保障了系统的可靠性和匿名性。拒绝服务式以及其他攻击,其目标都是针对比特币交易中心,这和攻击或关闭传统货币交易所的网络,理论上不影响其货币发行和使用一样。

2012年—Diaspora

Diaspora将自己定位为开源的个人Web服务器和去中心化的社交网络。2010年在Kickstarter上筹资$200,000后,项目正式成立,并迅速发布了一个测试版本,到了2012年,稳定的社区版才算正式发布。Diaspora的目标之一就是替代Facebook。Facebook是一个集中式的平台,用户使用它时,只需要一台Web浏览器即可,而Diaspora是需要专门下载自己的程序客户端的,这也使得推广起来比较难。另外,有的人其实根本不关心集中式平台带来的隐私问题。

Diaspora

总结

自1969年以来的50多年时间里,P2P网络由从昂贵走向廉价,由专用逐渐走向通用,多元化程度也得以发展,虚拟货币、隐私网络、开放公共资源等等方向层出不穷,使用方式也开始进行通证激励式的探索。

但P2P网络仍非主流。近20年来网络基础设施的发展使得普通个人能够接入高速宽带网络,大型机房里每个虚拟主机甚至都可以通过万兆的带宽为用户提供服务,这催生了一系列新生代信息传播方式和娱乐途径。互联网人在产品模式上都探索空间大大增加,人们在尽情享受中心化服务带来的便捷与乐趣,去中心化和点对点的需求在Web2.0时代大力发展的背景下也显得不那么重要了。

但P2P技术本身并没有被抛弃,甚至还在幕后为互联网服务着。

Web2.0大互联网时代的点对点

P2PCDN边缘加速

CDN

内容分发网络是指一种透过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。

例如某小型论坛网站只有一台服务器,其带宽为10M,10M的带宽完全可以为几百名在线的论坛用户同时提供数据传输服务。但论坛加入上传图片功能后,10M的带宽就不堪重负了,每张图片几百K至几十M不等,90%以上的带宽被用来传输图片,而这些图片本身是不会变化的,每个用户看到的都是相同的图片。用户加载速度也开始变慢了。此时CDN技术就来帮忙了,CDN技术帮助网站主把图片存储在全世界各地的服务器上,加州的用户访问论坛时只从论坛服务器拿到帖子正文内容和其中的图片地址,而图片是从加州本地的某个服务器上传输到用户计算机的。类比法国的用户也可以从法国本地的服务器上拿到该图片。全世界的用户都在从距离自己最近的服务器加载图片,用户的加载速度变快了,论坛的服务器带宽负载也下降了。

印度创企开发去中心化通知协议EPNS,可向以太坊钱包用户发送推送通知:印度一家初创公司建立了一种去中心化的通知协议,称为Ethereum Push Notification Service(EPNS) ,允许DApp向以太坊钱包用户发送推送通知。在接受采访时,EPNS创始人Richa Joshi表示,他们在发现互联网早期应用程序的运行方式与在Web 3.0上的运行方式惊人地相似后,开发了这个协议。Joshi解释说,Gmail或Orkut在早期并不像现在这样发送通知。用户必须每次都要查看是否收到了新的电子邮件或信息。这种情况在2010年苹果推出互联网应用通知后发生了改变,其认为,DApp、智能合约和其他去中心化的Web 3.0服务与早期的GMail和Orkut的工作原理类似。Joshi强调,这正是促使他们将推送通知引入去中心化世界的原因。(Cointelegraph)[2020/9/15]

CDN网络结构

边缘节点

上述例子中的存储和提供图片的「加州本地服务器」和「法国服务器」即被称作CDN网络中的「边缘节点」。

边缘节点不仅能提供静态文件服务,也能提供动态内容的服务。例如我们想要每一张图片加上防盗水印,水印内容为登录用户的用户名和IP,这样可以标记来源,防止用户盗取图片发到其他网站,因此每个用户访问时看到的都是带有不同水印的图片。该服务也可以运行在边缘节点上,在边缘节点上写好加水印的代码,在用户访问时直接加好水印提供给用户。边缘节点提供动态计算服务的功能就叫做边缘计算。

P2PCDN融合加速

当我们访问大型文件时,CDN边缘节点的带宽可能也不足够用户使用,此时很多服务商开始提供P2PCDN融合加速服务。Youtube等流媒体服务商就是使用此技术让用户能够无延迟播放高清视频的。

暗光纤是指运营商在为城市铺设光纤的时候,倾向于多铺一些。比如它们预计这个楼未来也就用1TB的宽带,但会在地下铺10TB带宽容量的设备和光纤。因为光纤铺设的成本主要来自挖地挖墙埋线,就和你家装修走线一样,开一次墙只有多铺的道理。虽然1TB的带宽足够目前使用,但随着用户数量的增加、用户需求的增加、互联网服务的升级,运营商预计未来一段时间内可能会用到10TB的带宽。就像十年前我们都在用10M的宽带,但是现在大多在用100M以上的宽带网络了。提前铺设好冗余带宽可以降低未来施工的费用。

而这部分暗光纤带宽在目前来说是闲置的。Google在运营商手中购买了大量的暗光纤使用权和二次售卖权。他们把这些暗光纤的带宽用来加速YouTube视频播放。例如当你加载一个大小为100M的视频时,原本CDN单个节点已经无法承载这样的内容加速了,但你所在的城市可能有10台接入了暗光纤的Youtube小型服务器都缓存了这个视频,YouTube便开始使用这10台节点和你的个人电脑通过暗光纤建立P2P连接,每台服务器向你发送10M大小的视频。从整体上来看这10台服务器都仅使用了很小的带宽和流量,而你却能够瞬间获得100M的视频文件,播放体验得到了提升。因为流量走的是暗光纤网络,没有占用公共带宽,不会影响该区域内其他用户的上网体验,可谓一举两得。

声音 | 何治国:去中心化必须尊重现实 否则极易沦为乌托邦:据网易财经消息,清华经管数字金融资产研究中心学术顾问何治国称,在中本聪提出比特币这种点对点电子支付方式之前,在计算机领域已经有很多在这方面有意义以及突破性的尝试。中本聪比特币作为电子现金系统的一种实施方案只是把前人各种结果进行了另一个突破性的整合。去中心化必须尊重现实,否则极易沦为乌托邦。[2018/9/14]

现如今暗光纤及其二次销售几乎被抢购一空,部分厂商发布了分润模式的带宽共享服务,即在个人路由器、电脑或智能设备上安装带宽共享软件,在闲时启动,使用个人智能设备作为缓存节点,对其他有需要对用户进行P2P的资源共享服务,并获得利润分成。

中心化客户端中的P2P直连

虽然不是每个服务商都拥有Google的财力和技术水平能够使用暗光纤,但小型软件服务商仍然能够通过P2P技术提升用户体验。

想必大家都有这样的体验:当你和同事坐在同一个楼宇时,你们在Skype或其他聊天软件中互传文件时的速度比你给不在同一地区的客户传输文件的速度要快得多。因为Skype发现你们在同一内网中,于是你们的文件传输就不需要走Internet,而是直接建立点对点的连接,通过楼宇的路由器沟通,就可以直接传递了,而内网的带宽一半是非常大的,所以即便是几个G大小的文件也可以在几十秒钟之内传输完毕。

同样的场景也适用与广域网中,同一片社区,同一个城市,同一个ISP中的用户P2P直连传递文件通常要比经过互联网中心化服务器传输要快很多。

虽然这些软件普遍都是中心化的,脱离了中心服务器便无法运作,但是还是在这些功能上整合了P2P,极大提升了用户体验。

最近大家都在讨论#Nostr,我也借此讨论一个比较少有人讨论的话题,去中心化网络的结构化和点对点特性,以#Nostr和RingsNetwork举例来阐述一些异同点。

Nostr和RingsNetwork

1??中心化,去中心化,混合式

中心化网络大家都了解,像Twitter这样,运营者可以决定是否删除更改用户数据,如果停止运营或封禁用户,大家的虚拟资产便随之消失。

去中心化网络里最广为人知的就是比特币和以太坊,无论哪个节点下线都不影响网络的内容安全,传输安全和一致性通过加密算法保证而非人工干预。

混合式当前比较著名的就是Mastodon,各个服务器之间可以相关联,不同服务器的用户可以相联系,但若某个服务器停止工作,用户的账户也便不复存在。Mastodon在混合式网络里是偏中心化属性强一点的。

2??Nostr网络结构

Nostr在某种程度上来说是去中心化网络,但是我更愿意表述其为混合式网络,但是是去中心化程度较高的那种。Nostr的拓扑结构大体上是这样的:

每个用户都是独立的客户端,客户端只和relay相连接,relay如其字面上意义可以认为是转发节点。relay和relay之间可以互相连接,但是前提是互相之间知道对方的地址,对于不知道地址的relay是连接不到的,只能通过其他relay帮助转发。一个客户端也可以连接多个relay,这样整体上寻址和通信的效率也会提升上来。

我知道这些已经是老生常谈了,但是如果你不是这个领域的专家,理解起来有困难,大家可以把Nostr网络想象为移动网络:

客户端就是手机,relay就是基站,手机可以连接一个或多个信号塔,如果连接不到任何信号塔,也就无法发送和接收信息。

信号塔之间当然也需要互相连接,这样才能组成一张通讯网。一个信号塔可能会连接一个或几个其他信号塔,当其中某个连接不畅的时候可以有备选,多个连接也能保证最短到达需要寻找的手机。一个信号塔大多数情况下连接了成百上千的手机,而一个手机通常只会连接到个位数的信号塔,我们称这种结构为星型网络。多个基站联合起来组成了扩展式的星型网络。这就是Nostr的基本网络结构。

3??RingsNetwork网络结构

RingsNetwork使用的是Chord环状网络,所有节点依次列成一个环,然后通过算法控制,各个节点也会和环上其他节点建立若干个链接,当某个链接断开时,算法会控制不影响其他节点运行而重新组成环和建立新的链接。

4??差异对比

各种网络结构组成都各有优势和劣势,基本上不存在本质上的优良之分,而是基于使用场景和所解决的问题采用合适的网络结构才是最优方案。这里我们谈一下两者在一些常见场景下的处理差异:

连接方式

Nostr客户端和relay之间的连接是基于WebSocket的,不允许p2p连接。而RingsNetwork节点间是基于WebRTC的,节点间可以进行p2p连接。

此处连接方式上可以看得出两个网络在设计上都有很强的指向性——为web服务。浏览器目前是大家主流的互联网交互方式,脱离浏览器的app则会受到例如AppStore或GooglePlay等中心化组织的审核审查,所以本身可运行在浏览器中、连接方式被浏览器默认支持是非常重要的。无论WebSocket还是WebRTC,在浏览器中进行高效、并行连接,或进行流式数据传输,都是很好的选择。

与此同时,RingsNetwork选择了p2p的方式进行连接,在传输效率上必然没有Nostr星型网络的中心节点群带宽状态好,但是连通性上会更胜一筹。两种去中心化网络在数据传输效率和连通性上有所不同取舍。

节点角色

Nostr网络中存在中心节点,它们负责维护整个网络的状态;RingsNetwork网络中没有中心节点,所有节点在整个网络中具有相同的角色。

如果网络中有恶意节点存在,两种网络均不会被钓鱼或虚假消息攻击,因为两者都是经过加密算法保证每一条消息的可靠性。但是当恶意节点的目的是监听、追踪、蓄意不传递消息位置时,在Nostr网络中,恶意的客户端不会造成太大影响,但是恶意的relay则会造成网络故障或用户隐私暴露;在RingsNetwork中,精心编排的Chordid恶意节点也有可能通过控制一定数量的恶意节点达成监听和追踪的目的,但是不容易造成网络故障或不可用。

数据存储

Nostr网络中,数据存储在relay节点;RingsNetwork网络中,数据分布存储在整个网络中的各个节点,不过目前而言RingsNetwork的DHT暂且没有节点连接信息以外的内容,以胶水协议形式使用任意第三方进行存储。

Nostr这种设计更偏向现有区块链的节点形式,但并非所有relay都对所有消息进行持久化,是一种在成本和效率中有所兼顾的方案。而RingsNetwork本身没有这种功能,依赖第三方在形式上为开发者提供了更多灵活的选择、降低了开发难度,不过同时也舍弃了网络本身的功能。

数据查询

Nostr网络中,数据查询需要经过中心节点;RingsNetwork网络中,数据查询可以通过环状网络中的任意节点进行。因此大多数情况下Nostr查询吞吐量较高,而查询较为中心化,relay节点性能要求、网络要求均较高,RingsNetwork平均查询吞吐量则较低,但是不会收到单点退出网络而造成数据丢失。

可靠性

Nostr网络的可靠性取决于relay节点的可靠性,如果中心节点故障,整个网络将受到影响;RingsNetwork网络的可靠性较高,即使一个或多个节点故障,整个网络仍然能够正常工作。

当遭遇单点故障时,主要取决于故障点属性。Nostr网络中,如果故障点发生在relay节点上,大量客户端将受到影响,如果多个relay节点遭遇故障,可能会造成网络分裂成几部分,甚至整个网络瘫痪。而RingsNetwork遭遇单点故障时则表现较好,因为各个节点关系对等,即使50%节点遭遇故障仍能保持95%以上的可用性。

效率

Nostr网络的效率可能受到中心节点的限制,数据的查询和存储都需要经过中心节点;RingsNetwork网络的效率较高,数据的查询和存储都可以通过任意节点进行。

Nostr网络中随着网络的发展壮大,客户端数量和relay数量的比值如果一直较为均衡,则不容易出现堵塞,但如果客户端数量剧增而relay数量和质量没有跟上网络发展的速度,瘫痪的情况则有可能发生。不过在理想状态下,整体传输效率较高,速度也较快,但是即使在这种情况下,随着网络中消息包数量剧增,很容易造成类似DDOS效果的消息风暴出现,可能会拖垮整个网络。

RingsNetwork网络则相反,如果节点数量剧增,则网络效率和传输质量会有所提升,理论上节点越多连通性越好,相应的多点传输带来的带宽效应也会体现;而如果节点数量较少,偏僻节点则可能无法获得很好的体验。但随着节点数量增加顺势导致的消息量增加时,因为点对点传输的缘故,消息风暴出现的可能性非常低。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-5:176ms