玩了一个多月的farcaster,才发现co-founder Varun Srinivasan在半年前写的一篇文章,文中给出了有关于去中心化社交网络的诸多基础定义,并深入浅出地提出了去中心化社交网络的最佳实践。之前一直听到去中心化社交网络这个概念,围绕这个主题也有很多文章,但Varun在文中的观点非常适合作为基础和起点,让我更好地理解和学习。
Varun Srinivasan,印度长大,CMU计算机本科毕业进入微软,典型的印度卷王精英。在微软不到三年出来创业,做了一个叫SoundFocus的公司,用音频处理技术帮助听障人士。两年后加入Coinbase带领产品和工程团队,四年做到高级总裁后离职创立Farcaster。顺便说一下Farcaster的另外一个联创,Dan Romero,2014年加入coinbase,离职前为VP,同时也是天使投资人。
最重要的三个去中心化功能:可以声明唯一用户名,可以此用户名发布消息,从任意有效用户名读取消息的能力
去中心化社交网络面临的三大挑战:网络扩张,域名注册的去中心化,构建新的社交原语
自托管可以实现去中心化,但复杂且昂贵,托管主机可以提供更好的用户体验
注册表是网络中唯一需要在区块链上同步的部分
成功的社交网络往往围绕一种新的通信原语
每年,中心化社交网络都会给用户和开发者越来越多的限制。他们似乎认为不断加以限制可以通向一个更健康的网络,然而很可能恰恰相反。一个去中心化的社交网络可以用两个非常有力的保证来对这个假设提出挑战:去中心化网络可以保证用户和他的听众的关系的所有权,同时保证开发者可以在网络上构建应用。
中心化的社交网络持续地控制用户触达听众的能力。它会高亮某些推文和打压其他推文来增加点击和收入。但可靠地触达听众对于社交网络的用户来说是很有价值的,而并不是以发帖获得收入为目的。例如,马斯克在推特上的关注数可以让他轻松公开募集数十亿美金。当大家发现社交平台限制他们的访问是为了自身的利益的时候,当然会不爽。而让他们更不爽的是,平台可以随意控制他们的身份,并且直接把身份从社交网络上踢掉,且不给任何追索的机会。(笔者自己的公众号,直接就被微信删了,并且不能恢复)
在一个社交网络中,即使这个网络其他所有用户都想要阻止他们,但任意两个用户可以找到对方并且进行交流,这个社交网络可以理解为实现了去中心化。这意味着用户永远可以触达受众,这只有在开发者在这个社交网络上构建了多个客户端的情况下才能保证。如果只存在一个客户端,它可以随时把用户的通信切断。实现这些需要三个去中心化的特征:声明唯一用户名的能力、以此发布消息的能力、以及从任意有效用户名读取消息的能力。
当然,社交网络有更多其他的功能。比方说把消息作成长回复、推送通知、推荐关注等等。这些功能并不容易去中心化,而且用户对新功能的需求增长速度比实现原有功能的去中心化要快得多(原功能还没找到去中心化的方式,新的功能需求又来了)。但是这些功能并没有影响到充分去中心化的本质,因此各个客户端可以以中心化的方式实现这些功能。以电子邮件为例,发送消息是通信协议的一部分,但是客户端可以开发自身的垃圾邮件过滤。
有的人认为把整个社交网络上链才叫去中心化。这是不必要的甚至是不可取的。社交网络每年都会产生以PB记的数据,把这些都在区块链上储存成本非常高。在链上还不能删改数据,但是这对于用户来说是一个很重要的功能。通过上链来实现所有权的去中心化,同时通过链下系统提供更好的用户体验,这样的设计是构建社交网络的更好方式。
我们已经花费了很多精力构建去中心化社交网络,但大多数用户还是留在中心化的社交网络上。为什么这么久了还没有改变?有三大挑战限制了去中心化社交网络的发展:**网络化规模扩张、域名注册表的去中心化、构建新的社交原语。**而现在,对于这三个问题有了实际的解决方案。
社交网络实际上是用户间通过中心化服务器传递一系列的消息。而减少中心化程度的简单方式就是消除对中心化服务器的需求。用户可以选择自己喜欢的任何一个服务器来储存消息,并且用公私钥对的方式进行签名。公钥就是用户的唯一识别符号,同时消息是防篡改的。

以去中心化的方式使用社交网络理应是免费且直接的,但是实际情况却没这么简单。用户想让所有的受众都收到消息,这需要始终在云端的持续在线服务器。一个相对保守的估计是自托管会和运行自己的网站一样复杂和高成本。但我们让数十亿人加入进来的时候不可能让他们每个人都自己运行服务器。(上图是中心化服务器和自己运行一个服务器的区别)
这个时候就有了主机托管方案。社交平台公司托管用户的社交数据,就像Gmail和Outlook托管电子邮件。托管主机可以提供用户没办法大规模实现的功能,比方说内容审核系统。这些社交平台提供更好的用户体验,显然更多用户会选择这些平台产品而不是自己运行一个服务器。

反对主机托管的常见观点就是他们会让网络变得中心化。例如,主流服务器厂商可以联合起来针对某些内容对用户收取更多的费用。这种行为从长远看是不可持续的,因为这相当于激励开发者去提供新的托管主机,而用户会相应迁移过去。而电子邮件和加密货币的协议从一开始就让迁移服务提供商变得非常简单,所以也就不存在大厂商联合作恶的行为。
一个用户的粉丝需要找到正确的主机来收发消息。域名注册表的作用就是让每一个人的唯一的公钥可以映射到主机URL和一个好记的唯一的用户名,比方说@alice。这样子Alice的粉丝就可以询问她的主机并且接收到正确的URL。怎么样可以保护Alice免受恶意主机的攻击呢?如果这是一个去中心化的注册表且仅允许Alice本人更改她的URL地址即可。如果一个主机停止服务,用户可以修改他们的注册表以指向新的主机,这样他们的粉丝就可以自动切换到新的地方。
去中心化的域名注册是很难的(见Zooko不可能三角),之前的一些尝试做了很多的权衡:ActivityPub协议方案(一个开源去中心化社交网络协议)在使用托管主机的情况下必须舍弃去中心化;Secure Scuttlebutt(一个点对点通信协议)实现了去中心化但是不允许用户使用独特的好记的名称,这样用户很难被定位到;而Keybase则用中心化的方式实现注册表。
然而,智能合约实现了去中心化注册表。用户可以通过在区块链上智能合约的交易,实现去中心化的域名注册。该智能合约保证了只有该用户可以更改URL,而区块链也把两个人同时注册同样名字的情况解决了。ENS和Unstoppable Domains就已经在以太坊上实现了类似的系统。

域名注册是整个社交网络中唯一需要上链的部分。其他所有的动作都可以用密钥对签名后在链下进行。如果你收到了声称来自@alice的消息,你可以向注册表索要@alice的公钥,以验证这个签名是不是来自真的@alice的私钥。
用户不会想要一个去中心化版本的twitter或者facebook。用户对一个新的社交网络的期待更多来自于社交地位或者娱乐,同时还有去中心化带来的好处。任何新的社交网络都必须同时实现这两点,否则拿什么和原来的社交平台进行竞争?
区块链确实创造了一些获得社交地位的新方法。作为早期用户、作为某些代币的holder或者持有选票等这些都是赋予人们新的地位。而面向区块链用户的社交网络可以很轻易地让用户生成这些活动证明。这个网络还可以提供一些相关功能,比方说由token门槛的社区、nft持有人的验证勋章或者代币持有人的匿名投票等等。链上系统也是高度可组合的,因此一些专门为ERC721标准设计的社交功能也适用于未来每一个新的代币。
每一个成功的社交网络都是围绕一个新的通信原语构成。Facebook有留言板,Twitter有140字限制的推文,Snapchat有阅后即焚。通过去中心化身份、区块链还有zkp等等你的脑洞可以开得足够大,并且也有新的通信原语等着被发现。去中心化的社交网络应该不断进行探索,并且通过这种方式来吸引用户。提出一个尚不存在的产品需求比单纯复制现有的社交网络要有意思很多。
中心化的社交网络已经进入到我们生活的方方面面,但是他们的弊端也很明显。密码学和区块链的进步为实现充分的去中心化提供了切实可行的解决方案。我们用一种合理的方式来构建去中心化的域名注册、便于网络扩张的链上链下混合架构、以及构建新的有意思的社交原语。更重要的是,人们对现状不满,想要更好的东西。如果你也想有改变世界的野心,这就是一个很好开始building的起点。
如果你玩过teaparty或者lenster一定会觉得所有action都上链真的很蠢,用户体验极差。Farcaster用了截然不同的思路,只有域名注册是去中心化的,所有人都可以基于Farcaster这个protocol来构建中心化的APP,收发信息都可以通过主机自托管来实现,同时信息的收发也是以一种类区块链的形式。只要不断有新的应用在这个协议之上来构建,有更多的人或者团体愿意托管主机,它的去中心化程度就越高。这其实是区块链的技术思路用在了自己的协议上,同时最大程度地保障了用户体验。基于farcaster已经有非常多的应用了,如bebcaster、instacaster、searchcaster等等。这至少是去中心化社交网络的其中一种切实可行的方案。
作为Farcaster的联合创始人,文中提出了有一些我觉得稍微有点利益相关的观点,但是整体而言给出了对充分去中心化的社交网络一些比较清晰的定义,而这些定义对我们的理解是必须的。同时,“每一个成功的社交网络都是围绕一个新的通信原语构成。”这句话我非常认同。希望在去中心化的社交网络这股热潮中,可以出现一些崭新的社交原语,给用户带来前所未有的体验。
原文链接:
https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks#fn:1
欢迎关注推特@QijieF:

