http://www.tnmanning.com

开启Web3.0:解绑中心化向量

前言:web2.0中,数据所有权归平台所有,这导致时不时出现平台数据泄漏的问题。那么,web3.0的到来,能否实现将数据的所有权和应用逻辑进行解绑。如果能实现,具体如何实现?本文作者Kyle Samani,由“蓝狐笔记”社群的“SL”翻译。
一年前,我按照当时的理解来阐述Web3堆栈。最近又提到了Web3的投资主题,正如我所强调的,Web3的一个关键含义是数据所有权和应用逻辑的解绑。本文,我将解释这种解绑中固有的具体问题,以及我们如何考虑在Web3堆栈中进行投资。

数据库和数据在哪里?

出于实际目的,绝大多数现在的应用都可以被看作为基于数据库的一种UX。虽然有一些例外,例如,视频流和视频游戏。但通常这样看都是正确的。事实上,几乎每个主要的消费者服务,例如Facebook、Reddit、Evernote、Twitter、Google Docs、Gmail、iMessage等,都可以简化为基于数据库的UX。(蓝狐笔记:UX是一种用户体验,基于界面用户跟产品的交互体验。)

在Web2的模型中,应用提供者存储和管理用户数据,因此用户不必自己管理。此外,Web2的应用提供者总是在线,因为他们24/7小时运行服务器,即便用户经常离线(例如在地铁中、网络连接不良、电池没电等)。而在Web3模型中,没有一个中心化的应用提供者,因此,关于数据所有权的范式需要改变。

这引出了几个问题:

1.用户在哪里存储TA的数据(让我们将用户叫做Alice,假设她没有维护自己的服务器)?
2.如果Alice离线,内容发送者如何向她发送内容?

当然,答案必须是:将内容存储在始终在线且可访问的地方,并确保当Alice重新上线后,知道在哪里可以找到发给她的内容。这种范式同时封装了像消息这类P2P应用以及像新闻、社交媒体以及笔记这类传统数据库应用。

要执行此类操作,存在一些机械挑战:

1.其他人(不是Alice)需要知道存储内容和该内容的检索,以便Alice后续可以找到并下载它。
2.Alice需要知道哪里可以找到该索引。
3.通过该索引,Alice需要实际找到并下载底层数据本身。
4.存储数据的人不应该能阅读该内容(如果是私有的),或者对它审查。

通过解决这些问题,数据所有权和应用逻辑可以解绑,从而支持Web3.0走向繁荣。

在探索当代Web3.0创业家们如何解决这些问题之前,可先思考过去已经试图解决这些问题的其他人。

之前对互联网进行去中心化的尝试

有一些团队,包括但不限于Zeronet、Freenet、Scuttlebutt,他们试图“对互联网进行去中心化”。他们试图做这个事情,这比我们今天知道的当代加密时代还要早。大多数这些努力专注于支持狭隘的用例。例如,可抗审查的消息和留言板等。

如果你很好奇,你可以尝试使用下这些系统。你会发现它们的用户体验有很多不足。尽管这些系统存在很多UX问题,但迄今为止,最大的问题是速度。一切都很慢。

为什们它们这么慢?

因为它们在逻辑上全都是去中心化的。

这些系统采用了下列架构的一些变体。我将在加密和P2P的消息应用的背景下描述它们的架构:

· 这些系统基于如下想法:如果Alice离线时,有人给她发消息,他们会将其发给Bob,而Bob将代表Alice存储该信息。
· 当Alice重新上线时,她会询问Bob在她离线时是否错过消息(消息索引)。
· 遗憾的是,Alice得不到以下的保证:1)Bob当前在线;2)在Alice离线时,Bob一直在线;3)Bob实际上拥有她不在线时错过的完整消息索引。为了解决这个问题,Bob可以询问他的对等方他们是否注意到发送给Alice的消息。然而,这些对等方也可能不在线,并且他们也可能只有不完整的消息。

在这种范式中,根本不可能保证消息传递,因为它不清楚消息应该传递到哪里,且谁应该存储消息索引。当消息接受者重新上线时,由于接收者不知道哪里可以找到发送给她的消息列表或数据消息的指向,这还会产生复合问题。

Scuttlebutt是专注于构建P2P社交网络的项目,它试图通过采用类似于Facebook的双向选择朋友系统来解决这个问题。也就是说,一旦Alice和Bob变成朋友,他们共享彼此的朋友列表,这样,Bob可以代表Alice索引和存储Alice朋友们发布的内容。这要求Alice通知她所有的朋友,而Bob是她的代理,反之亦然。然后,当Alice不在线时,她的朋友们发布更新,Alice的朋友可以将更新发送Bob,他能为Alice托管。

Zeronet和Freenet是更普遍化的项目,而不仅仅是P2P社交网络,它们使用类似的模型,除了没有双向选择的朋友模型。这给系统增加了很多复杂性,这让它变得更加缓慢。与Scuttlebutt模型不同,在Scuttlebutt中,朋友们同意相互帮忙定义信息路径,而Freenet和Zeronet的用户则不得不随机ping其他用户,并询问他们关于他们知道的信息。这就是为什么这些系统如此缓慢的关键原因。

让我们说,在某种机缘情况下,Alice最终将其离线时错过的各种内容索引拼凑起来。也就是说,她知道Carol给她发送了一张照片,且Dave将该照片存储在“dave.com/alicepic1.png”。如果Dave离线,Alice如何能访问该照片呢?

这些都是需要重视的问题。对互联网进行去中心化很难。

逻辑和架构的(去中心化)中心化

上述所有问题的根本原因是缺乏逻辑上的中心化存储和索引。什么是逻辑上的中心化存储?要回答这个问题,它有助于理解分布式系统中的去中心化的三个向量:

1.架构的
>系统中的计算机数量

2.政治的
>能够对系统施加影响的人数

3.逻辑的
>外部代理与系统交互的接口数

为更好理解这些概念,可以阅读“蓝狐笔记”之前发布的文章《以太坊创始人V神:如何理解大发3d的“去中心化”》

Web2.0垄断解决了上述的所有问题,因为它们依赖于逻辑上的中心化存储。也就是说,当Alice重新上线时,她只需向中心网络服务器发出请求,网络服务器维持中心存储,它存储了自Alice下线后所有错过的消息。网络服务查询它控制的包含所有用户消息的数据库,然后返回正确的消息。

这种模式的问题在于,Web2.0系统耦合了所有形式的中心化:它们不仅在逻辑上是中心化的,而且在政治上和架构上也是中心化的。

那么,存储系统在逻辑上中心化,但在架构和政治上可以是去中心化的么?

幸运的是,答案是肯定的:用于基于合约存储的IPFS和用于永久存储的Arweave(基于合约的存储:在Y时间段内存储X字节的数据,同时具有Z的可检索性保证。AWS、GCP、Azure、Filecoin以及Sia都是基于合约的存储系统。)

这个系统在逻辑上是中心化的,而在架构和政治上是去中心化的,这究竟意味着什么?理解这个问题最好的方法是考虑一下计算机是如何从网络上的其他服务器上检索基本文件(基于位置的寻址),然后将其与IPFS/Arweave方法进行比较(基于内容的寻址)。

在web2.0的架构中,如果Alice想要从服务器下载图片,Alice会转到一个URL类似于:

Website.com/image.png。当Alice试图访问该URL时,到底发生了什么?

使用DNS,Alice知道在website.com上找到服务器的位置,她会向服务器询问它所托管的图像位于“/image.png”的本地文件系统上。假设服务器想合作,它会检查它的/image.png的目录,如果文件存在,它会返回结果。

注意这个系统是多么脆弱:如果文件被移动、更改,或者服务器很忙,或者服务器因为任何原因不想合作,请求就会失败。

这就是当今网络构建web的基础。

而在像IPFS和Arweave这样的基于内容的寻址系统中,Alice访问的URL是像这样的:

mTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。