Py学习  »  区块链

“胖协议”并不新鲜:区块链能从P2P文件共享中学到哪些?

蓝狐笔记 • 5 年前 • 411 次点击  

前言:区块链之前,协议是瘦协议。区块链之后,协议是胖协议。也就是说,之前的协议层基本上无法捕获价值,而区块链的到来,通过token 机制,它有了捕获价值的机会。但这还不是终局,如果应用不胖,协议也不会肥。最近,BitTorrent要发行自己的代币,代币机制会让P2P文件共享再次飞跃吗?一年后看结果吧。本文作者John Backus,来源于medium.com,由“蓝狐笔记”公众号社群的“李熙和”翻译。


从1999年开始,我们开始看到P2P文件共享技术呈现爆炸式增长。期间诞生了Gnutella(Limewire背后的协议),FastTrack(Kazaa),eDonkey,以及BitTorrent。Limewire,Kazaa以及eDonkey都死掉了,但是因它们而诞生的协议却依然持续!

 

人们佷早就开始猜测“胖协议”的未来将会如何。文件共享协议并不完全相同的,但是它们有很多共同点值得我们学习。

 

看看p2p的生态系统,就会发现有一些事情十分清楚:

 

· 当网络效应不阻止人们创造新的客户端时,胖协议的生态系统通常会拥有多样性和实验

· 不论创造者在不在,协议都会持续和发展

· 应用层似乎无法为其协议创造者捕获多少利润,但基于协议构建的第三方竞争可能是寻找产品/市场匹配度的强大力量

· 当时的人们虽然无法搞清楚如何将Token整合进p2p文件共享技术中,但现在看起来一个经过合适调整的Token市场能够解决不少问题,并能够加速p2p突破瓶颈以获得更多使用者

 

充满生机和竞争的生态

 

...通过在开放和去中心化的网络中复制和存储用户数据,而不是通过个人应用来控制对完全不同的孤岛信息的访问。我们降低了新进入者的门槛,并在顶部创建了更具活力和竞争力的产品和服务生态系统


 ——《协议》,来自Union Square Ventures

 

在BitTorrent之前你使用过哪些文件共享应用?是LimeWire,BearShare,Shareaza,giFT,Morpheus,Phex,或者Acquisition?这些应用虽然由不同的团队制作,但是它们都与Gnutella网络相关!除了这些,还有FrostWire, LimeWire Pirate Edition,以及WireShare,这些是Limewire客户端的分叉。

 

我接下来不会再继续像之前那样也为FastTrack和eDonkey列举一堆客户端的清单了。当然我完全可以这么做。因为每个协议都有一大堆客户端。事实上,Limewire并不是Gnutella协议的创造者,他们的应用只是因为添加了很多功能而受到欢迎。

 

功能

 

人们当然不会开发几乎一样的客户端。不同的公司在Gnutella协议上开发出满足不同用户需求的客户端。BearShare似乎是专注于开发一个好的客户端,比如加上一个简单明了的搜索,一个可以边下载边预览电影和音乐的“剧院”,以及诸如聊天室之类的各种功能。

 

BearShare 提供了全面功能的体验

 

质量

 

eDonkey公司开发了自己的网络(“eDonkey2000”网络)以及相应的客户端。但即使他们是协议的开发者,他们也得和另一个备受欢迎的开源客户端eMule竞争,而很多人认为后者的用户界面更好!

 

你更愿意用那个?

 

通用化

 

有些人试图通过开发更好的用户界面来提升用户体验。另一些则试图通过开发使用多个网络的客户端来提供尽可能多的内容。

 

Shareaza因为支持所有的文件共享协议而受到欢迎:


Shareaza...支持Gnutella, Gnutella2, eDonkey, BitTorrent, FTP, HTTP和HTTPS网络协议以及磁力链接,ed2k链接,甚至包括现在几乎用的Gnutella和Piolet链接

 

 Shareaza的搜索引擎可以搜索到所有文件共享协议中的源文件

 

分开

 

giFT项目和Shareaza相似,它也试图囊括所有协议,但它的目标是成为文件共享的后端系统,其他人利用它来开发前端界面:

 

 

使用giFT作为后端的两个完全不同的前端界面(GiFTcurs和Apollon)

 

giFT支持大多数协议并能兼容Windows,Linux和Mac。

 

为“文件共享世界的胖协议”开发第三方应用的公司数不胜数。开源社区和独立的以盈利为目的的公司都有机会向最终用户提供产品和服务。这些应用和Twitter这样的第三方客户端完全不同;这些客户端可以做任何协议支持的事,即使协议创建者也不能阻止他们。

 

这里潜在的好处是“胖协议”把产品和市场匹配分成了两部分:

 

1.协议市场 匹配

 

协议是否足够强大和通用,能够让开发者开发出良好的用户体验?

 

2.应用和消费者匹配

 

应用是否针对消费者的需求进行了优化?

 

你不能认为一旦用上了协议就完事了。eDonkey的客户端让自己的网络受到欢迎,而Limewire也使Gnutella协议受到欢迎。然而,一旦协议有了网络效应,任何人都能够基于这些协议开发出更好的用户界面,并抢走最初的前端用户,即使你是协议的创建者也无济于事。

 

竞争者无须完全重构前端界面,他们只需移除一些恼人元素,如广告;这正是Kazaa Lite, Frostwire, WireShare, 以及其他一些客户端做的。app和消费者的匹配跟协议和市场的匹配,两者在激励上是不同的。

 

如果协议不能避免囚徒困境中的动机问题,应用就很可能采取不同的行为,以获得自私利益。Kazaa Lite和GreedyTorrent都可以帮助你在上传量上欺骗协议。

 

在《Y Combinator手册》(一本初创公司手册)中,有一条核心准则:跟你的用户沟通。如果你想基于“胖协议”开发第三方应用,可能了解竞争对手的用户也非常重要,这能帮助你发现有哪些需求还没有得到满足。同样的道理,协议开发者也应该与应用开发者多沟通并了解他们真正想要的。

 

瘦应用的价值更小?

 

这种协议与应用之间的关系在区块链应用堆栈发生了反转价值往往集中在共享协议层,而基于协议的应用层反而只获得一小部分价值。

 ——《协议》,来自Union Square Ventures

 

胖协议的创建者们往往发现:要通过他们的“瘦应用”来获利太难了。Limewire,Kazaa以及eDonkey都试图通过安装工具栏,收集用户数据以及展示广告等方式来实现商业化。虽然这能带来一些收入,但是很快他们会发现竞争性的应用会冒出来,而且它们往往没有这些让用户不爽的商业化功能。如果有人今天使用广告屏蔽插件来访问你的网站,至少你仍然可以要求他们付费。但如果用户开始使用不同的前端界面,你就完全失去了跟他们交流的机会。

 

人们不关心协议

 

协议创建者们要通过他们自己的瘦应用来捕获价值是很难的。并非由协议创造者开发的第三方客户端随着时间的流逝开始收获价值。FrostWire最初只是Limewire的分叉应用,但几年后BitTorrent成为明显的p2p的赢家后,他们就直接添加了BitTorrent支持的功能。Morpheus,Acquisition,MLDonkey,以及其他很多应用都是这么做的。

 

应用开发者只关心如何给用户提供更好的体验,他们并不忠诚于任何胖协议。如果之前大受欢迎的协议被新协议颠覆,第三方应用开发者可能会升级到新协议,同时尽可能减少对最终用户的影响。

 

并行精益创业

 

精益创业方法论(Lean Startup Methodology)认为:“每个创业都是一次大型试验,而实验试图回答一个问题。”关键的洞察是:创业都是关于迭代和尝试想法,直到你找到产品和市场匹配的那个东西。Steve Blank则将这一迭代公式化:

 

精益创业迭代循环

 

请记住,当初每个受欢迎的p2p胖协议都有几十个应用在尝试自己的方法。不同的团队对人们的真实需求有不同的解读,不断迭代自己的设计,试图找到应用和消费者需求的匹配。对传统公司来说,找到产品和市场的匹配可能是串行的,而找到应用和消费者匹配可能是令人尴尬的平行。



专门


在胖协议将文件共享的概念通用化之后,瘦应用可以按自己的喜好对协议进行精细化。BitTorrent可以被用来分享任何文件,但是Popcorn-Time将其专门化为在线播放电影的应用:

 

 

世界上最隐私的torrent社区专门分享受版权保护的内容。eDonkey网络客户端专门围绕视频,因为eDonkey协议十分擅长处理大型文件。

 

我们不应该只是把瘦应用看作是构建协议最佳前端的恶性竞争。如果胖协议足够通用,应用开发者们可以通过专注于某个特定用例而创造出各种完全不同的用户体验。

 

协议升级

 

这些协议的演变将取决于那些现在正使用这些协议的应用在未来的决策。这一特征有潜力创造一个更加民主的协议升级过程,特别是和那些历史上的委员会决策机制相比。

 

—《加密货币和即将到来的协议创新》Albert Wenger

 

在p2p领域有许多相互竞争的协议,它们都随着时间的推移而发展。虽然这些协议没有Token持有者,但我认为我们仍然可以从p2p领域的协议演变中学习到很多东西。

 

eMule vs eDonkey

 

正如之前提到的,开源的eMule客户端给eDonkey赚钱的机会。eMule事实上走得更远,他们基本上相当于对协议进行了分叉。

 

为了将eDonkey世界推向更纯粹的去中心化,协议的创造者发布了Overnet。Overnet是一种专有协议,这一协议可以在一个分布式哈希表中储存所有的文件和对等信息,它使用了另一个名为Kademlia的协议。

 

作为回应,eMule社区发起了Kad Network,一个使用Kademlia的基于分布式哈希表的开源协议!自从eMule变得非常受欢迎之后,Kad Network可能就已经比Overnet更受欢迎了.

 

除了Kad Network,eMule还加入了信用系统,以鼓励用户分享更多。

 

社区发展

 

Gnutella诞生于AOL,这个协议事实上从未真正开源过,AOL在创建者发行协议后不久就扼杀了Gnutella客户端。但是,人们仍然分享Gnutella客户端并对它进行逆向工程。每个成功的基于协议的应用(Limewire,BearShare,Morpheus)都是建立在不是它们自己创建的协议上。

 

Gnutella协议进化了。如果你看看0.6版本的草案,Limewire和BearShare(“Free Peers”)都为协议的新功能做出了很多贡献,而社区正是通过共同协作来创建规范。

 

当某个开发者创造了新协议,并称其为Gnutella2,并试图向Gnutella开发社区推广时,人们很不爽:

 

BearShare创建者公开谴责Gnutella2创建者

 

BearShare的创建者之一说他会屏蔽Gnutella2的流量并鼓励其他人也这么做。社区里的大多数人都认为,这个协议应该被称为“Mike的协议”而不是Gnutella2。

 

看看文件共享胖协议的历史,我看到在共同完成Gnutella的0.6版本的开发者之中形成了类似委员会的合作机制。eMule的社区本质上是分叉了eDonkey的协议。人们从未对FastTrack进行完整的逆向工程,所以我不确定是否有第三方将其扩展。BitTorrent也有BitTorrent优化提议(BEP),就像比特币有比特币优化提议(BIP)一样。

 

Gnutella社区让以下这一点变得十分清晰:当很多开发者基于某个协议开发一项业务或大型开源项目时,他们希望仔细考虑协议的升级,以便向后兼容并增强他们自己的应用。

 

eDonkey的协议是受产权保护的,这也是为什么eMule没有使用Overnet。

 

Gnutella2由Shareaza的创造者开发,它支持所有共享协议。它对同行评审缺乏兴趣,只是一心向所有人推销Gnutella2,这最终导致大家对他的不满。这里的主要教训似乎佷直接:

 

· 协议倾向于在民间社区中民主地进化(Gnutella0.6,BItTorrent)

· 当关系走向对抗,协议倾向于分叉(Gnutella2,Kad Network)

 

激励的采用

 

“...一个开源网络和共享数据层并不足以激励大家来采用。第二个元素,也就是协议内部的token被用来获取网络提供的服务(比特币的交易,以太坊中的算力,Sia和Storj中的文件存储等等),这填补了激励用户采用的空缺。”

 

—《胖协议》,来自Union Square Ventures

 

我想将本文讨论的范围限定在p2p协议带给我们什么启示中,所以我不能直接回答“token能促进应用的采用吗?”。因为p2p并没有任何一种主流的token。

 

但是,我们会回答相似的问题:

 

· 采用看上去是什么样的?

· Token有存在的必要吗?

· 人们就向系统添加token进行过讨论吗?

· 人们真的试图向p2p协议中添加过token吗?

 

为了回答与token相关的问题,我们需要理解p2p协议的运行机制,然后我们才能理解token经济是否有意义。

 

人们爱免费的东西

 

这一点虽然无聊但很重要。显然,我想我们都知道人们对文件共享胖协议充满了热情。所有网络都见证了巨大的增长量,即使众所周知的游走在法律的边缘。

 

P2P 从2003到2006的增长

 

我称其无聊是因为:谁不爱免费的东西?唯一值得记住的一点是:只要胖协议有价值,人们会很乐意接受。

 

搭便车

 

很多文件共享系统都有搭便车问题。大多数人只是下载了他们需要的东西,却不提供任何回报。有一篇被广泛引用的论文《Gnutella中的搭便车行为》称:

 

“我们发现将近70%的Gnutella用户从不分享任何文件,将近50%的被分享文件来自前1%的分享者。”

 

换句话说,所有人都想下载但没有人想要分享。这表现在如下几个方面:

 

· 大多数用户从不在网络里分享他们的文件

· 在那些确实分享的人中,很多人不愿意分享真正被需要的文件

· 大多数用户下载了文件之后就会关掉客户端。而理想的情况是,他们会帮助其他用户下载文件。

 

恶意文件

 

文件共享协议有一个很大的问题,就是人们会分享恶意文件。

 

下面的话是来自被广泛引用的论文《用于p2p网络声誉管理的EigenTrust算法》:

 

“匿名的恶意对等方发起的攻击在今天的p2p网络中广泛存在。比如:恶意攻击者使用这些网络引入病毒,比如VBS.Gnutella蠕虫病毒,它将自己复制到对等方的Gnutella程序文件目录中进行病毒的传播,然后修改Gnutella.ini文件并允许分享.vbs文件。更常见的攻击还有虚假文件攻击,在这种攻击中恶意对等方会提供篡改过的或者毫无用处的钓鱼文件。”

 

《p2p系统和应用》一书将这一问题看作是Kazaa使用率下降的原因之一:

 

“在Kazaa中,由于过时的哈希算法的弱点,难以识别的恶意文件数量明显提升。因此,用户转而使用像Gnutella和eDonkey这些应用,这些应用恶意文件明显少很多。”

 

FastTrack (Kazaa)用户量的下降

 

和带宽的交易

 

BitTorrent系统中引入大量的博弈论。从更高层面,你的torrent客户端会追踪谁向你上传并试图传回。如果对等方似乎只有下载而没有上传,你的客户端可以阻止他们。这个投桃报李(tit for tat)的机制最大化了下载速度,尤其是当torrent是新的,且在下载者比种子提供者更多时。

 

BitTorrent似乎比eDonkey快得多,后者也是从多个对等方下载并在下载了一部分文件之后就开始上传。BitTorrent做了很多事情,以便于最大化下载速度,而其他协议没有做这些,但我想可以肯定地说它引入了基本的市场机制,这有助于下载速度的提升。

 

优化人们下载文件的速度只是整个问题的冰山一角。理想的情况是,市场也能够激励人们在下载后成为源文件提供者。除此之外,还有其他的市场需求,比如:文件存储和分享稀有和价值内容。

 

Kazaa参与度

 

Kazaa添加了一个天真的声誉系统(参与度),它描述用户向网络回报的程度。如果你分享更多,你下载速度就会更快!他们还让人们对文件进行“完整性评级”,这也会提高上传用户的参与度。不过,人们很快就发现他们只需要修改客户端就能欺骗网络,所以这一机制没能持续多久。

 

分享或者禁用

 

私有的BitTorrent追踪器通常会强制执行seeding 率(上传量/下载量比率),如果不维持一定比率的用户会遭到禁用。

 

“上传量/下载量比率:如果你上传了100GB并且下载了25GB,那么你的比率就是4。比率维持在1左右较为合适。这意味着你的上传量等于下载量。如果所有用户都这么做,就能够确保更快的下载,因为源文件比torrent更多,以及更长的torrent寿命,还有不会受到系统自动禁止的限制。如果你的比率掉落至0.5以下,并在一段时间内没回升至合格的水平你就会遭到禁用。”(译者注:我们常说的种子文件实为torrent,而原文的seed指的是源文件)


 ——BitMeTV的比率规则

 

这一机制运行良好,甚至鼓励部分用户购买seedboxes,以此维持一个较好的比率。

 

去中心化的信任

 

EigenTrust试图通过在协议顶层添加信任算法来解决恶意文件的问题。这个算法简单来说就是:如果Alice向Bob传输一个文件,Bob能够对这次交易评级。如果Bob信任Alice的文件,那么他也可能信任她对其他人的评级。这种可传递的信任有助于过滤掉网络中大量恶意内容。

 

信用

 

Kazaa引入了“peer points” ,只要分享内容即可赚取该点数。如果你收到很多“对等点数”,你可以用它来兑换奖励。

 


eMule创造了信用系统,它用来奖励那些乐于分享的用户。如果Alice上传了很多内容给Bob,他们都会互相保有记录。在Bob有Alice需要的文件时,Bob会让Alice在下载队列中获得最高的优先级。

 

Kazaa 的peer points和eMule的信用系统在现实生活中被p2p所运用,取得了一些成功。研发人员也提出过更好的系统,但这些系统从未真正被网络使用过。Swift提出过一个系统,用于追踪对等方之间的上传和下载,并只向那些正比率的用户上传内容。在理论上的Karma网络中,用户的上传下载比率会被64个随机的对等方存储并更新,从而使这个记录可以被整个网络使用。

 

理论上token


 P2P网络“会计学选项”分类

 

围绕着向p2p网络添加市场有一大堆研究。如果你感兴趣,请详阅PPayPeerMintKarmaMMAPPS,和 PeerMart

 

这些不同方法的大致目的是提供一种足够安全的token,可用于网络内部的微交易。微支付可用于不同的服务,比如带宽,存储,向对等方提请求,缓存信息等。也就是说,token被设计成为系统内部的通用货币,用户可以花费和接收token以协调激励。

 

现实中token

 

2000年,Jim McCoy,Zooko Wilcox(Zcash创始人)和Bram Cohen(BitTorrent的最终创造者)开发了一个叫做MojoNation的协议。引用他们的旧网站的话:

 

“Mojo Nation将市场的灵活性与安全的“集群分布”机制相结合,远远超过当今所有的文件共享系统:提供多个对等方并行的高速下载。”

 

听起来像是带有token的BitTorrent。那么该系统中的token代表什么呢?是之前提到的那种系统内通用货币吗?

 

Jom McCoy在Defcon上的讲话中提到:

 

“在这个系统中,你最终都需要付出。通过MojoNation,我们记录分数。我们说我们会创造一种货币,“数字货币”,它以计算资源命名。我们将以Mojo命名该货币单元,以代表一揽子浮动的商品:CPU时间,硬盘空间,带宽;它代表人们常说:我的资源价值为X,你的是Y,现在我们来交易吧。”


—Mojo Nation:构建下一代分布式数据服务

 

在Defcon的谈话中,他们甚至明确提到能够用真钱购买和出售Mojo!

 

“那么怎么让现实中的钱在系统中流入和流出呢?...我们将运行这一功能,而其他人也可以。一个数字货币只是一个数字,只要你愿意,你可以在eBay上卖。我们不会阻止。但我们会是货币市场的做市商,也就是说,如果没人购买或出售mojo,我们会。”

 

—Mojo Nation:建立次世代分布式数据服务

 

MojoNation并没有向我们之前讨论的那些协议那样名声大噪。用Peter Thiel的话说:“大多数商业的失败原因不止一个。所以当一桩生意失败,你通常什么也学不到。”

 

但是2007年Nick Szabo,Zooko和(可能是)Jim McCoy之间的一段讨论仍然值得一读。虽然整个对话都很有趣,但这一段令人印象深刻:

 

“Bram在剥离MojoNation以创建BitTorrent时干的最聪明的事就是:BitTorrent使数字资源的机制与用户的实际行为相符。”


对“Unenumerated: Nanobarter.”的评论

 

Zooko在对MojoNation失败的反思中,列举了几项MojoNation当时未能解决的技术问题,这限制了它的用户采用。主要的结论似乎是MojoNation野心过大:产品是个完整的token市场,分布式文件存储,类似BitTorrent的群集文件传输,以及其他众多的去中心化基础设施,并想要将它们全部整合在一起。这在2000年似乎是个过于困难的任务。

 

Gnutella曾经有过搭便车难题。Kazaa有过恶意文件难题。每个网络都想要更好地激励上传行为。这些共同难题的悲剧是似乎人们对市场所期待的,并没有适当地分配资源。人们尝试过投桃报李(tit for tat)的博弈论,发布跟上传量相绑定的p2p信用额度,以及完整的token市场。

 

这场文件共享战争的最终解决方案,从市场机制上来说,在我看来似乎是一个“越糟反而越好”的案例。我认为BitTorrent是因为法律原因最终获胜,而不是因为它的市场机制方面更正确,但这个话题会换篇文章来谈。BitTorrent的投桃报李策略十分聪明,但似乎很多其他市场机制在这此期间都没有解决问题。

 

文件共享协议的腾飞是因为所有人都爱免费的东西。想想如果你能够通过分享一位当红歌手的一首预发行的歌而赚取token。再想想如果人们需要分享一些他们的带宽或者硬盘空间来换取下载一些他们在别处找不到的电影或歌曲,这个网络会变得有多棒。我认为文件共享协议依然会起飞,尽管市场机制没有得到解决。

 

所有这些市场机制并不是偶然发生的。看起来似乎任何涉及资源分配的胖协议都能够受益于添加到系统内流通的货币。当然,BitTorrent从MojoNation灰烬中的涅槃也不该被轻描淡写。跟解决单个用户场景的激励问题相比,向技术中合法地添加完成市场则要困难得多

 

请注意,所有的这些实验都是在大约15年前发生的。在当时,当涉及拜占庭将军问题时,几乎所有试图解决这些问题的论文都认为它并不完全安全且存在问题。跟那时相比,我们已经取得很大进步;当时人们看到的所有可能也许在今天能够成为现实。


------

风险警示:蓝狐笔记所有文章都不构成投资推荐投资有风险,投资应该考虑个人风险承受能力,建议对项目进行深入考察,慎重做好自己的投资决策。

通往区块链的新世界:关注“蓝狐笔记”区块链公众号:lanhubiji 

或加入蓝狐笔记的知识星球:https://t.zsxq.com/iaQNnIq


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/TxyEy7fIlO
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/27709
 
411 次点击