ParaDigi Universe

Logo

A Decentralized Social Networking Service.

PDU 去中心化的社交网络服务 (version 2)

A decentralized social networking service

License Chat

摘要: 我们认为一个最接近自然状态的社交网络应当具备两个基础功能,任何参与者都能够自由的传播信息,同时也能够有效的获取信息

众多中心化社交服务平台的存在为实现以上两个功能提供了极大的帮助。通过手机号、邮箱等身份认证方式,平台可有效的限制虚拟身份创建以减少冗余信息的传播;利用推荐算法及用户之间的关联可提高使用者获取目标信息的效率。但同时,平台本身对于信息传播的影响也越发严重,如限制用户权限,屏蔽言论,利用推荐机制扩大特定话题的传播范围。我们并不否定舆论的引导在某些特定事件上存在的积极意义,只想表达对于信息非自然传播的严重担忧。

本文提出一种新的解决方案,基于点对点(P2P)的方式构建社交网络服务(SNS)。系统中所有信息均由签名确定其来源,称为消息。通过消息间的引用,同源消息可构成全序关系,所有消息可构成偏序关系。再以同源全序消息为基础定义账户。任何账户都可以自由的创建社区,定义其规则,并基于身份的自我认同邀请其他账户加入自身所属社区。使用者在任何社区中均可根据邀请关联关系对账户和信息行筛选,以实现信息的有效获取。

简介

现状

口耳相传是最原始的信息传播方式,也是完全自然的信息传播方式。将见闻、感受通过语言的形式依照自身意愿传递给他人,并反复这个过程让信息在群体中逐步扩散。文字的发明在时间和空间两个维度上拓展了信息传播的边界。当今,随着网络的发展,信息的传播效率有了质的变化,基本摆脱了时间与距离等物理条件的桎梏。

如同古代信件的传递依赖邮政系统,网络中信息的传播大多依赖于某个强大的中心化服务,如Facebook、Twitter、微信、微博等。这类服务的存在毋庸置疑给使用者带来了极大便利,但问题也逐渐显露。服务提供者有能力按照其自身的意愿,对信息的传播做出决定性的影响,比如有倾向性的增大或减小某个类别信息的传播受众,直接禁言或删除某些用户,同时对于另一些单一信息来源的大规模用户无所作为等。诸多问题最终可以归于一点,即第中心化的服务提供者完全有能力影响信息的自然传播,其影响程度只受限于平台自身的规模和意愿。

信息传播中对于中心化服务的依赖和所受影响是必然共存的,如果希望信息传播能够回归其本身的自然状态,必然需要抛弃这种依赖,也等同于需要实现在点对点的环境中对于信息及用户的有效筛选。

目标

我们认为,一个自然的信息传播系统应具备两个基础功能:

  1. 任何参与者都能够自由的传播信息
  2. 任何参与者都能够有效的获取信息

本文参照现实中自然的信息传播过程,提出一种新的解决方案,使得此过程能够摆脱对于中心化服务的依赖。首先,系统中的每一条消息必须附加数字签名以确认信息的来源。系统中的所有消息,根据其之间的引用关系,可构建出一个或多个偏序关系。要求来自同一私钥签名的所有消息通过引用可构成全序关系。我们将同源且具备全序关系的消息序列视为单一账户,以签名鉴定其身份。账户通过发布创建类型消息可以自由的创建社区并定义规则。任何账户均可通过邀请类型的消息邀请新成员加入自身所属社区。社区中账户间的邀请关系将成为垃圾账户及冗余信息筛选的依据。

前提

对于本文后续所述的信息传播系统,我们需要指出两个前提:

  1. 系统中所有信息都是公开的。我们可以简单的理解为保密信息的传递不是本系统所尝试解决的核心问题,但可以基于本系统解决。

  2. 系统的参与者都以信息传播的程度为唯一利益衡量。这里所说的传播程度,即包含时间尺度,也包含空间尺度,使用者希望信息在更短的时间内被更多的受众获取。

关于这两个前提的进一步讨论可见附录中所列的文档。

消息

消息是系统中最基础的数据结构,也是点对点之间唯一进行直接交互的数据类型。系统所涉及的其他数据类型,如账户、社区等,均可用消息为基础在各个节点自行生成。消息包含3个组成部分,消息内容(Contents),引用列表(References)及签名(Signature)。

消息内容

消息内容是消息的主体,由消息类型和多个内容片断构成。目前系统中包含5种消息类型:

引用列表

引用列表中可包含多条消息的签名,用以确定消息之间的有序关系。

消息可将任意已知的消息签名放入本消息的引用列表中,再计算hash后添加签名,用以证明本消息必然发生于被引用的消息之后。如果当前账户已经签发过消息,系统要求在引用列表中必须包含此账户之前签名的最后一条消息得签名。在使用过程中,推荐在引用列表中还至少包含一条比较新的消息,目的是给当前消息一个时序上更精确的可验证范围。

同一来源的所有消息间可确保通过引用的方式构成全序关系,即任意两条被同一账户签名的消息,都具有确定的先后顺序。不同来源的消息可借助相互的引用,构成一个或者多个偏序关系,可用有向无环图(DAG)表示。

签名

签名的存在首先可以对消息来源进行身份认证,同时确定消息内容的完整性。消息签名还可以被放入后续消息的引用列表中,表示消息间的有序关系。

msgs

上图展示每个消息的构建及引用关系。

账户

系统中所有的消息均附带签名,用以对其来源进行身份验证,而这个身份即是账户。账户与私钥是一一对应的关系,但二者并不等同。由于一个系统的使用者(自然人)可以创建多个账户,或者多个使用者操作同一账户的情况存在,所以账户与使用者之间也没有必然关系。我们认为,本系统中账户是一个以信息传播最大化为唯一目的的主体,由一系列具有全序关系的消息所展现,能够感知外部奖惩而修正未来自身行为的最小的单位。

msgs

在系统中,单独消息可以被看做是一个已经存在的孤立客观事件,其本身的内容不会因收到奖惩而改变,也无法表现出对传播的渴望。我们将系统中由同一账户签名的所有消息及未来可能发布消息的预期进行有序合并视为账户,即行为主体,来实现自身的目的并接收外界的反馈。

对于从系统中获取信息的使用者而言,可以通过对于账户的区别对待来施加奖励或惩罚。使用者会更积极的获取和传播自己喜好的信息并关注其账户未来发布的消息。反之,也可以通过屏蔽账号等方式,减小此账户的传播。对于账号拥有者而言,由于信息接收者可以根据账户身份来屏蔽信息,所以生产大量无意义的信息虽然未被禁止,但却因无法传播而失去了意义。

我们认为由于私钥创建的不受限及匿名等特性,账户的存在不会妨碍使用者信息发布的自由,即积极自由。同时账户的存在为信息筛选提供了标记,是支持系统使用者有效获取信息的基础,一定程度上保障了使用者的消极自由。

社区

规则

社区作为账户之间关系的基本组织形态,是去中心化社交系统的必要部分。借助社区,系统使用者才能在没有信息发布限制的同时筛选有效信息。前面我们以签名为标志在消息间建立联系,并将之视为账户,用来筛选消息。本节中的社区就是通过由邀请关系在用户间建立联系,并将构成的用户集合视为社区。需要说明的是,社区的存在的主要目的就是帮助系统参与者对于可能感兴趣的账户进行筛选,并不直接作用于消息传播的过程。

社区的创建及参与应符合以下规则:

  1. 每个账户都可以按照自身意愿创建任意多个社区,每条社区定义消息创建一个社区并定义其规则。
  2. 社区规则包含社区内每个账户有效邀请次数限制,外部账户加入社区必须收到的最少邀请次数及社区的初始账户等,创建者默认为社区内账户。
  3. 加入社区,只能通过现有成员账户邀请的方式,并达到社区定规则的最低要求。
  4. 社区的存在只是账户筛选的基础,系统使用者可以自主的屏蔽任何社区中的任何账户,以维护消极自由。

说明

我们认为传统的中心化平台不仅是提供社交网络服务的技术平台,更重要的是提供了一个中心化的权威,由其定义规则并依照这些规则对用户进行评判。例如在用户注册过程中平台往往会定义一些可验证的规则,像手机号验证,邮件验证,或者KYC等。与此相似,在系统内部的组织结构中,也设定有类似的权威身份。在微信群中,会有管理员;在reddit中会有版主。这类用户都具有超越其他用户的权限,使之能在权限范围内对其他用户进行奖励或惩罚,比如踢出群聊或者禁言等。我们认为这种不平等不应当属于系统的最基础的账户间关系,同时也认为基于自身主观认知而代表群体对他人进行处罚是不公正的。

与传统平台中的群组关系不同,在我们提出的去中心化社交服务系统中,社区并不存在任何单一的判定权威,社区内的账户身份是完全平等的。包含创建者在内,任何账户均没有任何特殊权力。任何账户都可以同时属于多个社区,每个社区中的账户都基于其自我角色认同,邀请账户加入。举例来说我的账户可以同时属于「程序员社区」和「朝阳群众社区」,当我通过浏览消息发觉某个账户A经常发布有用的朝阳本地信息时,我便会对其发出加入「朝阳群众社区」的邀请,但并不会邀请他加入「程序员社区」。需要强调的是,当账户获得了足够的加入某社区邀请后就会被认为已经属于此社区,但这只表达了这个社区对此账号的认同,并不表示这个账号对于此社区的认同。还有要说明的是,社区是对于账户的界定,而非消息,所以在使用过程中,社区的范围更倾向于某种身份,而非某种爱好。

对于消息发布者而言,被邀请加入更多的社区表示自己被更大范围的承认,有利于自身的信息传播。对于信息获取者而言,社区的存在给予其更好的信息筛选基础,结合由邀请关系构成的社区内账户间关联,能够有效的屏蔽过滤冗余账户及其发布的信息。

网络传播

社交系统应具备两个基本功能即自由的发布信息有效的获取信息。在传统的中心化服务中,消息的发布及获取都是以用户身份为基本单元,但是在去中心化的社交系统中却略有不同。账户为每条消息添加对应的签名,成为发布信息的基本单元。而节点被作为获取信息的基本单元,并通过相互的连接构成网络,实现信息的自然传播。

节点和账户不存在任何强制性的绑定关系,信息的获取者无需任何账户均可以使用或构建节点。节点的作用在于可自由选择如何处理收到的信息,如接收(保存),拒绝(屏蔽)或者传播(转发)。每个节点可以保存任意部分消息而非全量。传播过程支持平台化节点的存在,他们可以存储更多的消息,并为使用者提供消息查询、搜索等服务。但区别于传统的中心化第三方平台,本系统中的所有消息属于发布者,而且完全公开,所以使用任何一个第三方平台都可获取到相同的信息。当然,任何节点也有对特定消息按照自身意愿屏蔽的自由。

系统建议节点判断是否接收某个消息时参考以下因素:

  1. 消息来源账户是否被屏蔽。
  2. 消息引用所代表的时间,不晚于某个特定的期限。

系统建议节点判断是否转发某个消息时参考以下因素:

  1. 消息内容本身,某种意义上类似于传统三方平台点赞和评论的行为影响。
  2. 节点自身的转发规则,比如当前节点是否倾向于转发未被广泛扩散的消息或某特定领域的消息。

需要注意,消息的传播过程是持续动态变化的,系统中的每个节点都可能在任何时刻传播,存储或删除任何消息。

奖励和惩罚

我们相信任何可持续运行的系统都应该包含两个要素,即必要的共识规则合理的利益驱动。所有参与者对于规则的认同,是构成系统的基础,或者说任何系统都是由认同某些同样规则的个体所组成。而合理的利益驱动则是系统参与者行为的原因,其不会改变,规则只有符合参与者的利益系统才能持续。以上两点并非特指去中心化的系统。通过定义消息账户社区的概念,我们已经为构建去中心化的信息传播系统提供了足够的规则。本节中我们进一步解释,为何基于这些规则,系统能够符合参与者的利益以使得系统持续的运行。

简介中我们提出过一个前提设定,即系统的参与者都以信息传播的程度为唯一的利益衡量,所有在本节的讨论中,我们也会以此为基础来解释用户行为对于互相之间的影响。我们认为一个系统的参与者对于其他参与者的奖励以帮助其消息扩散的方式体现,反之,惩罚则表现为自身对其消息屏蔽。就系统整体而言,对于每个账户的奖惩最终会表现为消息传播的速度与广度的预期。就个体而言,奖惩完全取决于每个节点对其他用户及消息的主观意愿,但由于所有节点拥有者都是平等的,即不存在某个节点有权力替代别的节点做出传播或屏蔽的决定,所以此种主观决断并不影响信息的自然扩散。

需要特意指出,系统中还会出现一种可能被忽视的恶意行为,即通过引用关系,存在无法判断先后顺序的同源的消息。相当于由这个账户添加签名的已知消息可构成偏序关系但却无法构成全序关系。我们之所以将这种情况视为恶意行为,因为这种情况会使得系统失去将由此账号签发的系列消息视为单独个体账户的理论基础。对于这种情况,我们建议的处理方式如下:

  1. 一旦发现出现这种情况,应屏蔽此账户,不再接收其后续消息。
  2. 对于已接收的消息,尽量以先被本系统接收的不矛盾消息为准,但也可主观选择。
  3. 在发布消息时,应尽量引用多个可信的异源账户发布的消息,避免这种情况对自身的影响。
  4. 将已接收的包含矛盾引用的消息视为包含未知引用的情况进行处理。

我们也可以预见社区作为用户筛选工具,其存在对于消息传播的影响,这种影响并不是直接的、强制性的,但却是十分巨大的。总之,与传统的中心化社交系统不同,我们将信息的筛选判断的权利交给每个系统的参与和他们之间的关联关系,每个系统参与者都可以有自己的选择,而非只能接收某一个中心化的判断。

隐私

如简介中所述的第一个前提设定,系统中所有的信息都是公开的,我们认为绝对的隐私并非真正存在。

任何传播过的消息都会以某种方式留下痕迹,可能被一些节点存储,或者被另一些消息所引用。而未留下丝毫痕迹的信息,因为其并未对系统产生任何影响也就完全等同于并不存在。信息的传播的速度和广度取决于信息本身,所谓隐私只是公开程度限于某个暂时的,且无法保证的臆想。其后果往往不是信息的保密,而是扭曲后的继续扩散。

保护隐私的偏好来源于思维方式的局限,认为整体的利益破坏在于整体对于隐私的探查,但我们认为不公来源于并非所有的消息都同等程度的完全公开,现实中只有部分的个体的信息能够被另一部分个体所知,反之而不可能。真正的隐私只有个体心中从未表达过的信息,其不需要任何系统以任何形式进行保护。而公开的,有过传播的信息,都应该被准确的记录、公开。

对于通常意义上的隐私信息,我们认为其不直接属于这个系统。对于涉及隐私的文章,不推荐创建消息,即使是以加密的形式。因为在别人看来无意义的信息会影响账户其他信息的传播。对于涉及隐私的通讯,可以以消息的形式公布自己的联系方式,再通过其他方式进行联系。

总结

我们认为单独创建去中心化账户系统(DID)的方式是不可行的。因为在去中心化的系统中,账户创建过程无法附带一个合理且能被其他使用者验证的成本。使用者无法像中心化平台一样,验证其他用户的手机号、邮箱等与其真实身份关联的信息。同时,系统也无法像比特币一样以算力作为账户创建成本,因为算力作为成本对应的必然是需要绝对一致性的系统整体,而非单个行为。所以我们放弃了账户创建过程中可验证的客观成本,而将其转变为由发布的内容所附带的主观成本,并据此构建去中心化的社交服务。

我们利用数字签名及相互引用,将消息组合为代表某个特定意志的账户,并基于账户的自我认同,构建出社区这种具备关联关系的账户集合。通过这两个层级关系,彻底解决了在点对点的信息传播过程中,信息无法筛选的问题。使得系统使用者在能自由创建消息的同时,也有能力在海量的数据中选取自己需要的内容。点对点的系统本身就保证了用户的积极自由,任何人可以依照自身意愿发布信息。我们再此文中提出的系统也给予了用户保护自身消极自由的方式,减少其所受冗余数据的影响。

与主流的保护用户隐私的想法不同,我们认为任何发生在不同个体间的信息交流,都会留下存在的痕迹。现今的问题根本上源于个体间信息披露的程度不公平,当所有信息均被记录和公开时,谎言将会消失,活在当下将成为过去,时间或许可以完成从0到1的维度升级。

附录

  1. 更多的相关内容
  1. PDU的实现

go-pdu

back