或许这是最适合状态通道技术的用例。
撰文:LeftOfCenter
相信今天的互联网用户没人不知道BT下载,BT发明的点对点文件共享技术是一项伟大的技术,它采用高效的软件分发系统和P2P技术共享大体积文件,令无数互联网用户受益,一度有着极高的用户活跃度和网络流量,但却一直无法将技术转变成赚钱业务,最终被波场创始人孙宇晨收购,纳入波场生态,希望利用代币经济释放其商业价值,但是依然处于摸索状态。
而最近新出现的一个名为Web3Torrent的文件共享客户端,则有望通过为点对点文件传输协议引入「微支付」功能,从而为torrent网络引入有效的激励机制:下载者每进行一次文件下载操作,需向做种者支付以太坊代币作为酬劳,希望以此构建一种有机可持续的业务模式。
Web3Torrent,顾名思义,是一个Web3应用,目前所有代码已开源。Web3Torrent基于WebTorrent和状态通道创建——这里需要做一些基础知识的普及:「Web3Torrent」是一个Web端的torrent库,可通过WebRTC执行BitTorrent协议,从而让网络浏览器成为点对点共享网络中的节点;「状态通道」则是一种颇有潜力的扩容方案,不仅限于以太坊,比特币的闪电网络也是状态通道的一种,除此之外,作为Layer2解决方案的一种,状态通道同样也是公链项目Nervos主打支持的技术方案之一,除了状态通道外,专为Layer2设计的Layer1底层公链解决方案Nervos还支持支付通道和侧链等技术解决方案。
作为一种扩容的有效实现,目前状态通道的实际用例并不多,基于状态通道构建的产品主要有Celer和目前已生死不明的成人娱乐平台SpankChain。
而此次由开源组织StateChannels实现的Web3Torrent声称是一个「天然适合状态通道技术的用例」。为什么这么说?
今天链闻3分钟系列将回答这个问题:为什么说状态通道技术天然契合点对点文件传输协议?
为什么说状态通道适用于点对点文件传输协议?
作为一种热门的点对点共享文件的方法,Torrenting天然契合状态通道技术的用例,主要原因可以归纳为3点,分别是:
Torrent文件传输本质上是基于点对点的结构文件共享需要高频通信目前尚缺乏激励机制来推进发挥系统中的关键作用具体来说,点对点文件传输网络是基于点对点的结构,该网络主要由两种角色组成,即文件数据块的提供者和请求者。这样一种网络架构天然契合同样以点对点为特性的状态通道技术,后者可在其之上延展出微支付的功能。
第二,文件共享需要高频通信。当用户彼此共享一个文件片段时,会不断进行通信。目前已存在一系列的点对点传输协议供多个不同的torrent客户端使用,包括uTorrent、BitTorrent等。
第三,点对点文件传输网络缺乏经济激励,这就导致有时候节点缺少文件上传做种的动力,尤其是对于那些冷僻的文件,本来就很少有人拥有文件,如果没有经济激励,基本上很难发现做种者了。
状态通道作为以太坊二层扩容技术,可在固定用户组群之间实现无需信任、即时和零费用的交易。
目前为止,使用现有工具构建基于支付通道实现的简单应用是可能的,比如在Rock-Paper-Scissors中,每一次状态转换对应用户一次单击,这展示了状态通道的潜在用例,即用户无需等待链上交易只需点对点状态更新即可。
为点对点文件传输协议引入基于加密货币的微支付激励层将是一次有趣的实践,不仅可提高点对点网络的质量,还可提升网络的去中心化程度。想象一下,当一名用户通过支付以太坊下载文件的同时,还可通过保持客户端持续运行,将之前支付的费用赚回来,甚至可能超过之前的收益,即允许其他人通过付费的方式获取自己下载的文件,这样一来,很容易产生网络效应。
起底点对点文件传输技术
Torrent网络是专门为解决点对点文件共享问题而设计的,用户可从各种网站上下载torrent文件,这些torrent文件包含电影、游戏、应用程序等在内的各种媒体文件。
在Torrent网络中,有两个重要的角色,分别是做种者和下载者。做种者提供可供下载的整个文件,而下载者则是在点对点网络中寻找该文件的组成片段(Piece)。做种者通过网络广播告知自己拥有可供其他节点下载的整个文件,而下载者则会不断在网络中搜寻所有拥有该文件的其他节点进行下载。
文件被分割成几块,并在各个节点之间交换
当下载者正在下载某个文件的片段时,有可能同时也在为其他有需求的节点上传刚刚下载好的片段。如下图所示,如果两个用户分别拥有同一个文件中的不同片段,则可同时进行上传和下载的操作。
随着越来越多的用户加入文件共享网络,会开始互相从对方获取文件。
如何整合小额支付?
状态通道解决方案适用于点对点文件共享协议,这让设计基于状态通道的应用也非常简单。由于节点本身就在进行高速通信传输,在该过程中,节点将文件数据进行编码发送给彼此。为了增加激励层,可对状态更新进行编码,以实现在通信的过程中同时传输少量的加密货币,即同时进行微支付。
下载者每从一个节点中下载一个内容片段就会发送少量的ETH作为付款
在此需要扩展torrent文件共享的功能,实现彼此通信以确认谁打开了谁的通道,然后将加密货币附加在每一个内容片段中发送给对方,包括一个签名的状态通道更新,该更新可构造加密支付。
Web3Torrent客户端基于WebTorrent创建,WebTorrent是由FerossAboukhadije开发的一个web端的torrent库,允许通过WebRTC执行BitTorrent协议,从而让网络浏览器成为点对点共享网络中的节点。WebTorrent提供了方便的API实现,可以以上述方式扩展该协议,即扩展该协议支持对分享的文件分批进行微支付。
因此,一般来说,集成状态通道后发生在做种者和下载者之间的点对点文件传输将有如下步骤:
做种者广播文件做种并愿意以此获得收入的意愿对该文件感兴趣的下载者将与做种者建立WebRTC连接下载者从做种者请求该文件的第一条数据做种者为自己的钱包创建一个通道,并提示文件下载者加入该通道下载者使用钱包加入该通道,并发送确认签名下载者向自己的钱包发送状态更新命令,以将少量ETH发送给做种者做种者收到这笔付款后,将数据发送到交易对手并签署状态更新重复此流程,直到下载者文件下载完成。完成之后,还将有一系列流程发生:
下载者将关闭钱包中的支付通道做种者响应并关闭该通道做种者和下载者关闭WebRTC连接实际操作中,以上所有步骤只需几秒中即可完成,如下图所示:
Web3Torrent由开源项目StateChannels完成,并获得了以太坊基金会和Consensys的捐款资助,接下来团队将开发服务器钱包和hub基础结构软件,目前正在积极寻求主网集成。目前Web3Torrent已经在Go?rli测试上运行,请来这里试用。
来源链接:blog.statechannels.org
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。