**by-**自然选择实验室
摘要---受原始RSS协议启发,一种包含了社交图谱和密码学认证的新协议被提出。RSS3包含所有权、配置文件、链接和项目等属性,以及用户在一些应用程序中发布的内容。为了禁止中心化文件托管的可能性,RSS3引入了基于IPFS协议的点对点托管。开放和去中心化的系统改变了数据所有权的结构,大大有利于用户和开发人员。用户将完全控制自己的数据,而应用程序可以平等地访问公共用户生成的内容,以提供更好的整体用户体验。新协议将支持流行的社交和内容网络,同时它的模块化允许构建强大的中间件,进一步增强其他类型的应用程序。
原始RSS是第一个被大规模采用的网络聚合器。这是对Web1.0时代“互联网精神”的完美诠释。它是开放、中立的和去中心化的。然而,随着中心化社交媒体平台的兴起,RSS的使用在Web2.0时代急剧下降。
在过去二十年中,内容和链接的控制逐渐被几个中心化的数据超级大国实现,然后这些超级大国滥用其垄断地位进行作恶:
•他们侵犯了我们的隐私——例如,Facebook未经Cambridge Analytica同意就分享数百万用户的个人数据做政治广告。
•他们盗用利润——例如,社交媒体平台的广告收入超过41.5美元,仅2020年一年就有10亿美元。
•他们协助并进行审查——例如,中国主要社交媒体平台禁止主流加密交易所的关键词。
•他们滥用算法-例如,社交媒体应用程序使用算法故意造成用户上瘾。
•他们不鼓励创新——例如,没有开发人员可以创建一个像数据垄断公司那样具有竞争力的应用程序。
让超级大国“不作恶”的努力被证明是徒劳的。似乎需要一个“不能作恶”的体系。
为了创造一个社交和内容网络自由、平等、繁荣的世界,需要一个去中心化的生态系统。作为Web 3.0运动的一部分,它从三个主要原则开始:
•开源:所有源代码都应提供给每个人审查;
•民主治理:生态系统的规则应在民主制度下制定;
•分布式控制:理想情况下,应将控制权分配给每一个参与者,并考虑其贡献;
为了使新的去中心化生态系统达到足够的规模,推翻现有的中心化生态系统,我们还需要:
• 包容性:应支持不同类型的现有和未来可能的应用;
• 中立:底层协议不应偏向特定应用;
• 激励:用户、内容创建者和开发者应该给予转换的实质性激励;
以前的点对点系统中有很多成功的公共内容分发想法,例如BitMessage或ZeroNet引入的广播和订阅功能,重点是站点分发。但是,这些系统,包括最初的RSS标准,不包括允许用户之间进行社交互动的规定。虽然Peergos或Mastodon等其他社交网络系统也支持信息发布,
它们要么专注于私有信息的分发,要么由于架构的多样性而倾向于生成超级节点。
RSS3源于RSS的精华,它是一个协议,它允许用户控制自己的数据,开发人员可以轻松构建去中心化的内容和社交网络。
一切都从RSS3标准开始。与最初的RSS标准相比,RSS3更轻便、更简单、更强大、更高效、更可扩展。具体而言,RSS3在以下方面有所不同:
•文件格式从XML更改为JSON,以简化和高效;
•加密密钥被用于验证和认证文件,确保数据完整性和所有权;
•文件通过链接和反向链接连接;
•实现与上游和上下文的内容交互;
•不同的mime类型支持不同形式的内容
•下一个项目和下一个列表用于支持历史记录;
RSS3文件被设计为包含五种基本属性:
•信息属性:文件的基本信息,如id、版本、更新日期等;

•所有权属性:用于加密验证所有权的变量;
•配置文件属性:身份信息-如头像、昵称和兴趣。私有属性是加密的;
•链接属性:与其他RSS3文件的关系。多种类型的关系可以被不同用途的应用程序所定义;
•项目属性:文件所有者发布的所有项目。与原始RSS类似,此处仅存储元数据和指针;
与最初的RSS不同,RSS只提供最新的项目,引入了“项目链”来创建项目文件的链接列表,完全由文件所有者控制。
对于更复杂的用例,应用程序可以在用户同意的情况下添加自定义变量。有关更多详细信息,请访问https://github.com/NaturalSelectionLabs/RSS3.
RSS3托管是一个为RSS3协议服务的点对点系统。一般来说,在这个系统中有三方:节点、用户和第三方应用程序。通常,用户指的是角色背后的真实人物,他们在多个平台上运行节点客户端,包括服务器、笔记本电脑、移动电话甚至嵌入式系统,这些平台都是点对点连接的。核心托管部分最强调的是让用户完全控制和访问他们的数据,应该是一个通用的共享分布式系统。因此,它与应用层解耦,这让用户可以自由切换应用程序,并给开发人员足够的灵活性。开发者可以在分布式节点上自由构建具有友好前端UI的第三方应用程序,这些节点可以是移动应用程序、桌面应用程序、浏览器扩展程序,或其他任何东西。关于中间件和第三方应用程序的进一步讨论见第五节和第六节。
每个托管节点包含三个组件,如图2所示:(1)作为全局文件存储系统的固定内容存储(IPFS),(2)指向RSS3文件或帖子的CID的RSS3指针,以及(3)通信模块,负责将RSS3指针与其他节点同步并处理最终用户查询。

从理论上讲,可以使用本地文件存储系统作为存储基础,但在实践中,它可能会阻碍可扩展性。因此,我们提出了一种系统,其中所有节点都使用固定内容存储系统IPFS,这意味着所有RSS3文件都存储在IPFS上。每个RSS3文件都应该是可读写的,任何角色都有特定的限制。因此,存储系统不应该有基于角色的访问控制,因此IPFS是一个理想的选择。此外,不同于Arweave,IPFS不需要节点与之交互的令牌,这使得最终用户和开发人员能够更灵活、更容易地开始使用它。
因为我们只能用CID在IPFS上搜索,所以需要一些索引表。默认情况下,每个节点承载从用户地址到用户RSS3文件的CID的映射。由所有节点承载的表构成全局分布的表。
此外,针对不同模块的特定用途,还将提供可选的索引表,第六节将对此进行进一步讨论
将来,可以鼓励节点索引和存储索引值。
一方面,来自最终用户或第三方应用程序的查询将由通信模块处理。通常,有两种类型的查询:post和subscribe。一旦节点查询订阅RSS3文件,通信模块将首先从分布式RSS3文件表中查找CID,然后从IPFS查询整个RSS3文件,最后还回来。一旦节点查询发布消息,在验证之后,它将更新分布式RSS3文件表。一些高级查询(包括更新索引主题列表或订阅主题)共享类似的工作流。
为了维护分布式表,不同节点之间必须进行通信。表上的每个更新都将被广播,接收更新的节点将进行数据完整性验证。如果比现有版本更新,则节点将更新其本地版本。
从物理上讲,每个节点都可以在远程服务器、个人计算机甚至嵌入式系统上运行。对于公共IP,通信非常简单。对于私有IP,我们使用中继进行NAT遍历。具体来说,对于支持IPv6的用户,可以在IPv6上建立连接。此外,为了最大限度地提高信息流量,还将支持Wi-Fi和蓝牙连接。
对于对等系统,必须考虑可伸缩性。对于存储层,IPFS可以保证可扩展性。由于RSS3文件只包含元数据,因此将有足够的磁盘空间用于冗余。与此同时,IPFS社区同样致力于提高可扩展性。因此存储层的可扩展性不应构成挑战。
就RSS3指针而言,由于任何CID都小于64字节,且20字节以太坊兼容地址被用作用户公共地址,因此RSS3文件表的一个条目应小于84字节。假设我们为这个表分配了1GB的空间,我们可以在这个空间中保存1200万个条目。但我们预计RSS3主机将有数十亿
将来可能需要TB甚至更多空间的条目的数量。解决这个问题的一种方法是使用自聚合方法创建子对等组,从BitMessage中学习。
随着RSS3的引入,数据所有权得到了重组。用户通常有两种类型的数据,一种是对公众开放的数据,另一种是只有特定用户才能读取的数据。在中心化系统下,数据访问通常具有表1所示的结构:
RSS3有一个完全不同的数据所有权系统。加密身份验证的使用确保只有用户才能控制,同时打破不同应用程序之间的隔阂,如表2所示。

这是第一次,用户不必将其存储和写入权限委托给中心化的一方,这通常会导致数据侵权、丢失或泄漏。此外,用户不受任何特定应用程序或平台的约束,因为他们现有的内容和关系可以轻松地携带到他们决定使用的任何新的应用程序中。公共内容现在可以从任何应用程序访问,这允许更多用户访问,从而产生更高的影响力覆盖率。
用户将永远不会因为毫无根据的规定而被禁止。即使某些应用程序(在非常罕见的情况下)确实在本地禁止它们,它们也可以随时获取数据并切换到其他应用程序。审查制度也在很大程度上受到压制,只有一些特定的案例,如父母控制。用户将体验社交媒体和通信应用程序,就像他们现在在以太坊上与DAPP交互一样。他们将只需要一个分布式身份管理器来管理所有的角色,将其用于自己的特定用途,然后使用自己的私钥进行签名。
开发人员现在可以观察、研究和利用一个巨大的公共数据集。在Web2.0时代,平台严格保护自己的数据集,使得外部开发人员无法使用,即使这些数据是最终用户创建的公共内容。使用RSS3,您可以启动“Instagram”,而无需担心如何获得前100万张图片供用户查看:公共UGC已经存在,就像以太坊网络上的交易历史一样。由于除了用户本身之外,没有人可以控制用户数据,因此新的应用程序及其背后的开发人员与现有应用程序相比不再处于严重劣势。如果一个应用程序能够提供更好的用户体验,那么它将被允许更好地为用户服务,而不是因为数据不足而失败。过去为了争夺自己的数据垄断权而相互竞争的应用程序将共同为整个生态系统构建更丰富的数据集。
最初的RSS标准被设计成一种只关注内容的web合成。通过引入RSS3文件之间的链接,可以形成网络。这些链接进一步使RSS3能够授权不同类型的内容和社交网络,包括但不限于:
传统媒体网络是指仅指定特定节点来创建和发布内容,而其他节点只能选择是否订阅的内容网络类型。这种类型的网络通常具有较高的平均内容质量,因为选择了可以发布的网络。它还可以提高每个内容的覆盖率,覆盖率由受影响的节点数除以节点总数来定义。这些网络中的内容创作者的主要目的通常是从用户那里获得更多的印象,用户通常都在寻找高质量的内容。然而,由于内容和活动节点有限,这些网络的链路密度预计较低,见图3。这些网络将由向特定用户添加特定标签的应用程序创建,这些用户的内容将显示在订阅者的时间表上。这些应用程序可以是集团报纸、传统有线电视和其他面向内容的网络。

社交媒体网络指的是所有节点都拥有相同的发布和关注权限的网络。在这些网络中,内容创建者只是用户。由于每个人都有相同的发帖权,用户通常有影响力和社交的混合目的。过去十年中大部分成功的社交和内容网络都属于这一类,包括Twitter、Instagram和Tiktok。尽管它不像传统媒体网络那样具有高平均内容覆盖率或高平均内容质量,但更多的节点被激活以创建,从而导致更繁荣的生态系统。如图4所示,预期这两个系统都具有更高的链路密度定向和双向链接。应用程序可以帮助用户创建不同形式的内容,然后根据特定需求提供不同的内容消费体验。

通信网络是指那些节点可以自由地相互连接,主要目的是社交的网络。这些类型的网络中只存在双向链接,内容主要是为一小部分人(只要不是一个人)创建的。WhatsApp、微信和Facebook Messenger就是这一类的例子。通过利用RSS3文件之间的链接,应用程序可以轻松地与其他开源和对等协议(如WebRTC)一起构建通信网络。图5显示了通信网络的外观。

如上所述,RSS3标准和RSS3主机足以构建基本应用程序。然而,作为一个开放的生态系统,RSS3被设计为具有不同的可扩展性模块。就像开发基于RSS3的应用程序一样,开发人员可以在没有任何许可的情况下为系统创建不同的模块。为了支持不同用途的应用程序,我们在此提出一些可能的中间件,这些中间件可以构建在RSS3之上,从而释放出巨大的可能性。
RSS3的内容分发系统中可以添加付费解锁模块,这为内容创作者带来了一系列不同的货币化可能性。我们预计付费解锁模块将基于加密学和去中心化托管构建。付费解锁可以按内容使用,用户直接向创建者付费换取解密密钥,也可以与订阅模型一起使用,用户在特定时间段内支付密钥以解锁一系列特殊内容。应用程序还可以利用RSS3文件中的链接和NFT相关资产属性,以实现更好的付费订阅关系。
当然,在RSS3系统本身中,没有简单的方法可以获得所有已发布项目的全局索引。最好在将来引入去中心化的全局索引服务。通过这种方式,应用程序将能够为用户提供“探索”功能,以便更好地发现新内容和用户关注。此外,这还将使应用程序能够从全局数据集进行筛选。这些过滤器可以是标签、媒体类型、创建者类型或不同属性的组合。有了过滤器,eBay和Zillow等市场应用程序、Reddit和Quora等论坛应用程序以及Pinterest和Dribble等内容应用程序就可以显现。
为了使系统实现更高的内容分发效率,节点标记内容的透明方式非常有用。与全局索引一起,我们可以期望为最终用户提供更好的搜索和排名体验。我们期望内容标签也由分散的RSS3节点执行,节点可以选择是否要为任务投入额外的计算资源。因此,使用节点放置的标签的应用程序应该为服务付费。为实现相对普遍的采用,可能需要一个内容标签标准。
最终用户的兴趣图谱对于更好的用户体验也很重要。与中心化式的服务不同,中心化式服务中的用户活动都在中心化服务器中进行跟踪和分析,RSS3生态系统的兴趣图谱应该是一个离线的模块,并且可能具有统一的标准。兴趣图谱只能由开源应用程序使用私钥加密字符串的结果进行更新。因此,用户可以对不同用户体验的任何应用程序感兴趣。此外,应用程序应该让用户完全控制他们是否想要推荐增强的体验,并允许他们随时选择退出。
我们的节点有两个可能的篡改点:IPFS存储系统和指针表。
对于具有足够副本的IPFS存储系统,基本上不可能完全删除某些文件。只要指针表得到正确维护,用户数据就不会被篡改。
由于在我们的系统中,公钥用作用户地址,每个RSS3文件(除所有权属性外,有四个基本部分)都附有签名,因此节点可以轻松验证数据和海报是否被伪造,并决定是否同意指针更新。
如果某个节点行为不正常,则只修改其本地存储。连接到它的可信节点会拒绝更新,这样全局分布式指针表就不会被破坏。通过这种方式,节点可以信任他们接收的内容,而不必信任他们从中接收内容的对等方。由于最终用户可以轻松地自己启动一个节点,因此他们没有动机从另一个可疑节点进行查询。此外,将来我们可以有惩罚机制。
传统DDoS攻击的目标是一个或几个托管web服务的集中式服务器。在RSS3系统中,内容是大规模分布的,并且将有许多节点承载同一内容,因此,将所有节点淹没更加困难。
为了减轻特定内容对专用节点的本地攻击,每个节点可以自由断开任何传入连接或设置带宽限制规则。
RSS3网络上可能存在两种形式的审查:以用户为目标的审查和以内容为目标的审查。
除非每个节点都同意封锁,否则不可能封锁某个用户。只要存在索引用户RSS3文件的CID的节点,就无法阻止该用户。
内容审查可能基于每个平台或应用程序。然而,只要第三方应用程序协调努力在IPFS或其他地方复制此类内容,原始帖子就不会丢失。
至于对特定帖子的评论,不可能在RSS3系统中审查其帖子的评论。我们建议采用一种系统,将评论记录在评论者的RSS3文件中,只有评论者可以更新自己的内容。
此外,单个RSS3文件不能被任意阻止。随着越来越多的节点加入RSS3网络,并且随着网络的连接和可扩展性越来越强,预计阻止单个RSS3文件将变得越来越困难,因为没有人有能力完全阻止此类文件。审查仍然可以在集中的“代理网关”级别进行,但是,如果启动一个节点既简单又便宜,最终用户就没有动力从这样的网关进行查询。
一种用于构建“不能作恶”内容和社交网络的协议被提出。我们首先提出了一个新设计的标准,该标准源于最初的RSS标准。通过引入基于密码的身份验证和文件之间的链接,整个系统实现了分散的数据所有权,并可以支持各种类型的网络。与最初的RSS生态系统不同,不同的RSS文件通常存储在子数据中心,将为RSS3构建对等托管服务,因此形成任何数据超级大国的可能性极低。RSS3的灵活性和适应性使其能够支持各种类型的内容和社交网络,无论是现有的还是尚未创建的。
我们感谢Dave Winer和RSS-DEV工作组为最初的RSS标准所做的努力,这在很大程度上促进了开放web。我们感谢Suji Yan和ByteDave的大力支持和建议,帮助RSS3成为可能。我们感谢Guo Liu和Yisi Liu关于RSS3标准设计的想法。我们感谢投资者一直以来对我们的支持。我们感谢我们的家人和合作伙伴容忍我们糟糕的睡眠时间(相信我们,我们很快就会从屏幕前离开)。
最后,谢谢你,中本聪,无论你身在何处。
[1] Zeronet - 去中心化的p2p网络平台.
[2] Hilary Andersson. 社交媒体应用程序“故意”让用户上瘾, 2018.8.
[3] Rosalie Chan. 剑桥分析揭发者解释了fifirm如何利用facebook数据影响选举, 2019.10.
[4] Megan Graham. 尽管受到流感大流行的打击,数字广告支出在2020年仍增长了12%,2021.4.
[5] Rudiger Klaehn.[2021主题提案]可扩展的分散式内容路由, 2020.12.
[6] Kelly Le. 在中国,微博对币安和火币的临检对加密技术意味着什么?,2021.3
[7] Ross Ulbricht. 去中心化社交媒体, 2021.3.
[8] Jonathan Warren. Bitmessage:一个点对点的消息认证和传递系统, 2012.11.
