论Web3.0和Web3

renyuneyun 2023年03月16日(周四) 1 mins

之前本博客有篇摘录(《那些称为Web 3.0的东西》)简单提过实际上有两种不同的关于下一代Web的思路,即W3C的Web 3.0以及区块链的Web 3。最近有了一些更多思考,所以尝试探讨一下我对这个事情的看法。

本文分别介绍一下这两种思路,梳理一下其关注的重点,然后进行对比,最后谈谈我的看法。主要侧重技术层面讨论,而非商业或宣传。

W3C的Web 3.0以及Tim Berners-Lee的SoLiD

如果按时间来算,那么W3C(World Wide Web Consortium)是首先提出Web3.0概念的,不晚于2007年(参见World Wide Web Consortium: Web 3.0 Emerging)。他们的理念中,核心是要使用语义网络(Semantic Web)或者说互联数据(Linked Data)。在2007年这个文档中并没有讨论「去中心化」,可能是因为当年的中心化情形尚不严重。但后来如万维网之父Tim Berners-Lee的SoLiD(Social Linked Data)则是在此之上进一步增加了去中心化的性质。

下文关于Web 3.0的讨论,如果涉及去中心化,多是以Solid的理念为基础进行的讨论。

Tim Berners-Lee讲解Solid基本理念

之所以以语义网络为核心,是因为其背后基于形式逻辑,可以带来强大的互操作性和推理能力。「互操作性」有很多方面,其中一个核心要点是指即使软件A原来设计时读取的是某个格式/结构为X的数据,但通过背后机制(即推理),它自动地可以读取格式/结构为Y的数据,不需要做专门的修改。举个不太对但能反映问题的例子:如果我编写了一个查看和搜索QQ聊天记录的软件,那么在互操作性的支持下,它自动也可以查看和搜索Element的聊天记录,即使两者的具体存储结构不同。另外,为了去中心化,我们还需要统一的(或至少跨服务的)身份认证和访问接口。

Tim Berners-Lee认为的Web1.0-3.0

这一系列反映的是,Web 3.0的关注重点是让Web的数据更加机器可读,统一及标准化,以及互操作性带来的数据的可移植性。从使用的角度上,以前面这些为基础,附加上逻辑推理能力,可以更容易地搭建更方便用户使用的软件/网站。从理念的角度上,Web3.0和Solid希望带给用户更多的选择或者自主权:

  • 数据存储和控制的自主:可移植性使得用户可以轻易地将数据从一个服务转移到另一个服务去;

  • 数据使用上的自主:标准及互操作性使得可以比较容易地切换软件或开发替代软件。

另外,由于推理能力,已有的数据可以被用来(自动地)推出更多数据,可以一定程度上降低数据不完整带来的影响,且可以检查数据内部是否有冲突。

理所当然地,W3C的Web 3.0是基于现有的Web的,所以一般来讲用户不需要重新学习,也不需要放弃已有的东西。

区块链的Web 3

近来这些年,随着区块链由于炒加密货币带来的火热,以及以太坊引入的智能合约机制,有人开始提出了基于区块链的Web3理念,并且这个理念现在更广为人知。其核心是使用区块链技术,将数据存储在其上,使用智能合约提供额外功能。

于是其卖点也全部围绕区块链的特性而展开。比如区块链的去中心化信任。比如数据保存在区块链上不会因为意外因素而消失,所以对应到网站上,则保证网站不会因为服务器的意外因素而消失,可以起到文库的作用。比如不可伪造性保证「我」的信息只有「我」能修改(或者智能合约授权的其他人),没有人可以仿冒或造假。比如不可变性带来的自动版本历史。

可以看到,区块链的Web3理念考虑的重点是数据的存在性、所属性以及可用性(以及作为基础的去中心的信任)。

但数据存在区块链上导致Web 3的使用必须另起炉灶,用户需要安装专门的软件,并且下载整个区块链(或者理论上可以优化到只下载用到的部分)到自己的硬盘上。虽然理论上可以由一些服务器提供桥接机制,让用户可以使用浏览器来浏览区块链上的Web 3,但这又带来对这些桥接服务器的依赖或者说一定程度的中心化,和区块链本身的理念是相悖的。

两者在主要特点上的对比

无论是Web 3.0还是Web 3,两者都表达了对当下Web的(向大平台)中心化趋势的不满,追求去中心化,也都宣称要给用户更多控制权和自主权。但从两者的基本思路上可以看出它们有很大不同,也导向完全不同的途径。这里我以一些主要的话题来具体比较两者的异同。这里以Solid作为Web 3.0的代表技术,毕竟它和Web本身都是Tim Berners-Lee发明的;将以太坊作为Web 3的代表,毕竟它用户量极大,而且宣称自己先提了区块链版的Web 3。

其实以太坊那边把Web 3.0和Web 3两个名字都占过。但后来他们更倾向于使用Web 3,所以本文就叫他们Web 3。

如何去中心化

Web 3.0追求的去中心化是对数据和使用的去中心化,也就是数据的可移植性和互操作性,以及各种机制提供方的可替换性。Web 3.0允许任何人建立自己的数据仓库,并且允许迁移数据到另一个仓库,且不影响使用,这样就不会出现中心化大平台将数据锁死在其上的情况——不允许数据转移,不允许数据互联。以Solid为例,Pod就是你的数据仓库,你可以选择任意的Pod提供者,也可以将你的数据转移到另一个提供者;App本身不保存你的ID或数据,而是临时使用你的ID去获取对你的Pod的读写授权,这样迁移Pod后你对App的使用不会有任何不同;数据是Linked Data形式(RDF文档),互联性是内蕴在其中的。另外,身份提供和身份认证的服务均可替换,允许任何人自行搭建自己的服务或选择/切换任一服务,自然也避免了中心化在某一个平台上。从另一个角度考虑,我们也可以说Solid消除了Web 2.0对平台的中心化,取而代之的是各个App和各个用户的Pod互相平级镶嵌。

而Web 3追求的去中心化则是延续了区块链的去中心化思路,即对信任的去中心化。区块链提供了去中心化的一致性机制,保证了写入的数据是正确的,且数据不会被篡改。由于数据统一存放在区块链上,那么互操作也可以保证,且自然也不会被某个平台(应用软件/App提供方)锁死。但同时,Web 3也假设了所有人共同使用同一个区块链(或同一组,见下文关于数据存储和访问的部分),也就是说Web 3的去中心化有一个巨大的中心化数据存储链假设。

用户标识(ID)和身份认证

对Web 3.0来说,前面提到的2007年的演示文稿并没有规定如何表示用户标识。W3C有一些不同的技术方案,各有优劣。Solid使用了WebID机制,即通过一个(或一系列)RDF文档描述你的信息,登录时使用OAuth(向你的WebID的issuer)确认身份。Solid暂时还没有形成一个强制性的标准规定一个App如何识别用户(以为每个用户提供各自定制后的服务),但大体上要么是通过WebID的地址(URI),要么通过WebID文档的内容,要么通过Pod内存储的App信息(如配置)。

对Web 3,用户标识就是一串数字,即你的公钥。而身份认证则是通过密码学技术,通过你持有的私钥确认你就是你。理论上可以为每个用户在特定的位置生成一个文档来描述用户信息,不过没有形成一致。

二者的身份ID本身均不具有意义。同样的,如果用户希望创建另一个身份,但又想将两个关联(比如迁移旧身份到新身份),这两种系统都无法轻易做到这点——都有一些方案,但都不是标准的一部分。

我所知的对多身份更好的一个机制是HubZilla的nomadic identity,参见《互联社交网络》

信任机制

以Solid为例,Web 3.0的App假设WebID的issuer是可信的,并且用户需要假定Pod提供方是可信的。由于两者均可自建(且两者往往是同一个),信任成本并不高。不过广泛来说,Web 3.0并没有着重讨论信任问题,可以认为是假定用户信任自己所选的(或自己搭建的)托管服务。

而Web 3假定所有人都不可信,于是通过区块链保证在这种情况下仍然可以正确存放数据和使用数据,所以Web 3不需要信任。当然也可以说,Web 3假定大家信任那个区块链技术/代码的信任机制和区块链的实际使用者之间相匹配。经典的例子就是比特币上拥有>50%算力即可控制整个链,所以用户需要假设不存在有人会控制50%算力。

数据存储和使用

Web 3.0将每个人自己的数据存储在自己的Pod(数据库)中,并且允许用户随意选择和迁移Pod。Pod是某(一或多)台机器/服务器,所以存在失效的可能。这些机器可以任意修改数据(无论是授权还是恶意),无法保证数据固定不变。由于Pod是存在某台机器/服务器上,由标准的协议提供外部访问,所以可以为数据设置访问许可。使用者不需要提前下载任何数据,也不需要持久化保存数据。

Web 3将数据存放在区块链上,由区块链的机制确保数据永远存在且不会被篡改。使用者需要提前下载整个区块链才能访问和修改数据(或如果优化存在的话则是下载相关区块)。同时,由于区块链的特性,这里隐藏了一个假设,即所有用户的所有事务(比如写入)需要可以互相验证。在绝大多数区块链设计中(比如以太坊),这意味着需要使用同一个区块链。注意这里的同一个不仅仅是要求技术一样,还要求从源头到数据都一样。如果两人用了两个不同的区块链,那么两者之间互相无法访问对方的信息,互相不信任区块的正确性,互相不认可用户身份,自然也不存在互操作。这就是为什么前文说Web 3的去中心化有一个巨大的中心化数据存储链假设。当然,有一些区块链系统,比如Polkadot之类的宣称自己可以支持多链,但也有各自的问题。而且它们的存在反而证实了这里关于互操作性缺陷的论点。

数据隐私

Solid中用户可以很容易地存放私有数据,因为Pod内的数据由协议/接口保护,协议中包含身份认证和授权相关内容。

Web 3存放在区块链上的数据全部公开,所以无法将私有数据简单存放在链上。如果需要存放私有数据,只有两种选择:1. 要么将其加密并存放在区块链上,且保证密钥不会存放在区块链上;2. 要么选择「链外存储」(off-chain storage),即在区块链上放置一个指针,指向一个链外的位置(比如「我的计算机上的某个文件地址」)。做法可以参考IPFS。但选择链外存储即意味着该数据失去区块链提供的保证,尤其是关于数据的可用性。

数据共享

这里我们只讨论私有数据的共享问题,因为公有数据本身就是「永远共享给所有人」的,没有必要讨论。

在Solid上,共享数据也是通过授权机制实现,只需要在数据拥有者之外增加某个「其他人」的访问授权即可。访问控制的粒度取决于具体的协议,如WAC(Web Access Control)支持设置读、写、附加、控制。

在Web 3上,共享数据难以操作,因为共享也会涉及撤销共享。然而由于已有区块是不可修改的,所以使用区块链机制只能有意义地做到共享,但无法实际撤销——如果我是一个曾经被授权使用但现在不再拥有授权的恶意用户,使用我自己编写的软件/客户端,只要我能在历史区块中找到读取方式,那么就可以用它读取数据,而不受新的区块施加的限制的影响。智能合约只能限制写入,但无法限制恶意用户的读取行为。而如果不使用区块链的机制来达成共享,那么Web 3的意义便失去了不少。

地址和人类友好地址

Web 3.0沿用URI机制来标记地址,并且继续使用DNS来提供人类可读地址。理所当然地,这也延续了DNS机制的优缺点,包括但不限于控制在有限的分发者手中,且如果需要原生加密(HTTPS)则更进一步受限(引流《扯两句HTTPS和CNNIC的CA信任被吊销之事》)。

Web 3则没有深入讨论该机制,而且也没有形成共识。但基础来说,由于数据存储在区块链上,都有区块编号,那么至少可以使用区块来作为数据的第一层地址。于是宽泛地说,Web 3应该可以沿用URL/URI机制,使用自己的「协议」,并以区块作为地址。例如可以规定my-web3://qwert/article-a指向my-web3(协议)对应的链上一个叫做qwert的区块上一个叫做article-a的数据。至于人类可读性,理论上Web 3也可以开发一个类DNS机制,但具体细节(尤其是导航向哪里)有许多种选择,这里就不展开了。这个机制的弊端也很明显,那就是如果数据更新,那么地址就过时了;永远无法简单地使用一个地址指向最新数据,除非每次都遍历整个区块链来寻找最新版本(或每个用户提前维护缓存)。至于加密则并没有标准,应当大体等同于HTTP时代自行处理加密的情况。

超链接或其他数据间关系

Solid基于Web标准,并使用Linked Data(LD),原生支持使用URI/URL「引用」其他地方的数据。除了Web 1.0时代就有的超链接外,LD还支持其他的数据间关联方式,比如在数据中直接引用其他地方的数据。这也是Linked Data本身的含义:数据之间是互相链接的,可以很容易地从一个数据导航(比如链接、跳转、包含)到另一个数据。

Web 3由于使用了区块链,原生支持数据和它的旧版本之间的关联。由于超链接只是地址的特殊用法,那么沿用上面提到的地址可能性,超链接也可以在Web 3上被支持。相比Solid或者LD,Web 3并没有更多地讨论数据间关系的表示。

实际上有一个叫做IPLD(InterPlanetary Linked Data)的用于区块链的数据模型。但它和前面说的Linked Data不是一回事。

遍历数据或用户

Solid或者说Web 3.0,由于数据的去中心化,都不存在遍历全部数据或用户的可能性。这点在现有的Web上也一样,所以应对方法也类似——目录/黄页、门户、搜索引擎等。现有Web在Web 2.0时代的许多「服务」是由「平台」提供的,它同时提供了数据存储、身份认证以及应用软件。于是对每一个平台来说,它拥有自己平台上的全部数据,可以说是一种「本地全局」,可以进行遍历。但Solid上数据存储或者身份和应用软件是分离的,所以应用软件不具有类似的「本地全局」,需要新的解决方案。

Web 3则由于假设/要求所有数据存储在同一个/组区块链上,那么理论上完全可以遍历所有数据及(活动)用户。

应用程序/App

Solid上的应用程序/App使用标准的协议和Solid Pods进行交互,读写用户数据。App的代码自行维护,和Pod相分离,可以使用任何语言,部署在任何地方。一般而言,如果App只需要应对一个用户(不特定的「一个」,或者也可以说是「当前用户」),那么App完全可以作为静态网页部署。

Web 3上的应用程序按用到的理念不同可以分成两类:1. 增强区块链功能的App;2. 使用区块链数据的App。其中第一种是Web 3比较经常提及的所谓dApp(decentralized App,即「去中心化应用程序」),需要依赖智能合约机制来保证执行的正确及结果的可靠;第二种则更接近普通意义的App,未必需要使用智能合约。使用dApp有一些典型场景,尤其是需要写入区块链的情况——如果不使用智能合约,没有人会信任写入的数据。而如果只涉及读取区块链上的数据,尤其是公开数据,那么完全不需要智能合约,可以类比为一个「客户端」。其中dApp(相比Web 2.0应用)的主要优势是消除了中心服务器,而依托于区块链的机制,由(所有的/大量的)对等端(客户端)共同完成。另外注意,区块链上只有持久数据(外存)和智能合约(程序),没有类似于内存的东西,所以如果涉及「状态」,那么需要客户端自行计算,其计算量也许会是一个问题。

客户端或浏览器类似物

Web 3.0沿用已有的Web架构,预期继续使用通用客户端即浏览器来访问,用法和现在的Web类似。只不过它不再围绕在「平台」上,而是使用/访问「应用程序」来和(用户自己的固定的)「数据存储」(Pod)交互。当然,和现在的Web类似,Web 3.0也一样可以使用专用客户端。如前面所说,Web 3.0带来的一大特性就是可以很容易地切换应用程序而不用担心丢失任何已有信息,因为数据存储在用户自己的仓库中,而非应用程序开发者的平台内,所以切换应用程序仍然可以访问原先的数据。

Web 3则是另一种机制,不具有传统意义上的浏览器。Web 3的用户需要使用一个区块链软件(对等端/客户端,例如相应加密货币钱包),下载整个区块链,然后访问其上的数据。这些下载的数据需要持久保存在本地。也就是说,用户需要预先下载大量数据到本地,然后访问本地的数据(传统的浏览器也下载,但数据量不可同日而语)。如果用到智能合约,那么需要下载更广泛的区块(如果之前通过优化仅下载部分区块),并且执行计算。

和已有Web的兼容性

Web 3.0基于现有的Web,对其所有技术都兼容。不过Web 3.0希望对范式进行修改,所以在完整的Web 3.0下,现有的中心化服务将被抛弃,改为去中心化的App。

Web 3则不具备和现有Web的兼容性,完全另起炉灶。的确,我们可以通过一些桥接站点,来使得用户可以通过浏览器和HTTP(S)协议访问Web 3的数据,但这仅对读取有意义,对写入则比较怪异。因为如果想要写入,那么就需要去竞争区块的写入权,其中涉及到计算。如果计算全部由那个桥接站点代劳,那么这些站点会形成新的中心,和公有区块链的基本假设和原则背道而驰。而如果计算由本地浏览器执行,那么基本等于使浏览器成为(全功能)客户端,那么桥接站点的存在则没有实际意义(更何况还有效率的问题)。而一个没有写入能力的所谓Web,其实又退回了Web 1.0时代,完全没有技术优势。

综合对比

上面我们针对一些具体的话题讨论了Web 3.0和Web 3技术上的特性。两者的差异源自选择的技术路线及其思考的关键特性,即区块链vs个人数据库,以及去中心化信任vs去中心化数据、使用和提供方。

整体来看,两者各有优劣,且在一些方面通过不同的思路提供了类似的特性。

Web 3.0的优势是支持隐私数据和共享,用户(数据拥有者和使用者)本机存储和使用成本低,应用开发者可以随意选择语言,以及互操作性带来的好处。劣势是没有人能保证任何操作的可信性,用户需要信任「自己」以外的东西(小到服务器,大到Pod提供方)。而数据存储在Pod内这件事既可以是优势也可以是劣势:好处在于一个URI可以永远指向「最新」数据,用户也可以随意撤销访问授权(或删除数据);坏处是数据会随着服务器而消失。

而Web 3的优势是用户(数据拥有者、使用者)和应用开发者不需要信任任何人(只要所有的对等端能满足该区块链的信任模型,比如不存在算力集中,那么一切都是可信的),且数据不会消失。而劣势则是对Web极其有限的兼容,对隐私数据极其有限的支持,难以共享数据,用户(数据使用者)需要下载大量数据和处理大量计算,应用开发一定程度上受语言限制(智能合约的语言),对区块链本身共识的要求,以及(延续自区块链的)全局性能限制。

两者通过各自的技术方案,都消除了大(私有)平台控制用户数据的问题,都提供了去中心化应用构建的方法。

所以,两者本质上并非是互相竞争的技术,而是两类不同的技术。最合理的做法是将两者结合,而非是用一种完全压过另一种(当然这里仍然存在一个以谁为主的问题,后文讨论我的看法)。之所以有谁压过谁或者你死我活的感觉,更多是宣传的问题。

从这个角度看,Web 3.0派比Web 3派要好很多。Web 3.0这边不怎么断言「我就是未来」,尤其是一般不会说「Web 3.0就是要以我这个技术为核心」,比如Solid的官网甚至没有提Web 3.0这个词,而只是说「提供更好的Web」;这也是为什么你都不怎么能在网上看到关于Web 3.0的讨论(这也是我为什么看不下去决定写这篇博文的一大原因)。而Web 3这边则很武断地说「Web 3就是以区块链为核心」,比如以太坊的Web 3页面和所谓的Web 3基金会的网站。Web 3.0这边更多的是学界或业界(技术)人士,本身更擅长和倾向于做事和讨论技术问题,当然也理所当然地会产生相互竞争的技术和议案,比如各种不同的ID方案。而Web 3派则更多的是区块链的(商业)人士和鼓吹手,甚至是虚拟币的炒币者或是NFT的兜售者,更擅长炒作和宣传,以及利用人性(的弱点)。有点工业和金融之分的味道。

另外,如果看过我之前那篇摘录的话,应该会看到区块链Web 3派中有一些喜欢碰瓷的人,比如那个碰瓷缩写W3C的流氓推特账号。可以说,之所以区块链的Web 3能广为人知,主要是因为区块链经济的火热,和它具体技术细节反而关系不大。

我的看法

至于我个人,我更认可Web 3.0的技术和思路,也更喜欢他们的环境。(这两者并没有因果关系。)当然这不代表我认为应该忽视区块链技术的优势,而是觉得区块链应当作为补充。

为什么更认可Web 3.0

首先,不管是Web 3.0还是Web 3,都宣称要去中心化。但区块链的Web 3本身又导致需要中心化到那一个/一组区块链上,这和它宣传的有所矛盾。而Web 3.0这边则没有这个顾虑。只要大家遵循同样的协议,那么各个不同组织或个人都可以自行搭建自己的系统,并且也可以提供各自的额外的功能。这和区块链中必须使用完全一样的区块链设计使用同一个区块链有很大区别。尤其是Solid的协议中更是允许一切都由不同实体处理——WebID入口文档在一个URI,WebID又可以包含在其他地方的其他文档(另外的URI)作为内容的一部分,WebID(身份标识)、issuer(身份认证者)和Pod(数据存储)可以是分离的不同服务,可以有多个Pod;而App和前面的这些都没有所属关系,而只是通过认证来使用它们。

其次,区块链的所谓Web 3上不能有意义地存储隐私数据,可以说这本身就断绝了它作为「Web」的意义。而Web 3.0在这个方面完全不存在问题,数据共享以及撤销共享也被支持,还可以同时允许不同机制的存在。

再次,区块链机制对资源需求很大,不论是存储还是计算资源。在它的设计中,不存在「服务器」,所以这个需求是每一个用户都需要承担的。换句话说,如果一个终端(比如手机,或更轻量的如智能家居设备)不具有承担这些需求的能力,它就不能正确使用区块链的Web 3。当然,如果使用了合适的优化措施,那么一个只需要读取Web 3信息的终端的确可以只使用更少的资源,然而一旦涉及写入那么则是另一种情况。取决于不同的共识机制,Web 3会有不同的要求,也有不同的事务处理速度上限,当然另一面则是不同共识机制的不同安全和信任度。而且取决于具体的技术,如果使用类以太坊的单一链技术,那么共识机制不可修改,除非愿意冒丢失用户数据的风险(参考关于以太坊的Hard Fork的讨论)——这对一个稳定运行的Web来说是不可接受的。

最后,如果我们考虑失信或错误的处罚,以及协议或机制的更新,Web 3.0在这方面有显著高于Web 3的优势。对于Web 3.0,如果是托管服务(比如Pod服务器)失信,那么用户可以轻易迁移自己的数据到另一个Pod服务器上;如果应用程序开发者失信,那么用户可以吊销应用程序访问权,并更换其他应用程序(如果有数据损失则可以尝试从备份恢复);如果是协议有错误或缺陷,或者只是想要更新,那么服务提供者只需要更新为修正后的协议即可,除非整个Web 3.0的架构被修改。而对于Web 3,假如认可共识机制正常生效,那么托管失信的问题不存在;如果应用开发者失信,虽然可以之后更换应用,但之前使用应用的结果无法撤销无法恢复(除非产生Fork,但这个行为本身是大问题);如果应用程序有bug更新即可,但如果发现基本协议或设计的缺陷,那么则无法解决(还是只有产生Fork一条路)。当然,反过来Web 3的优势在于不用担心错误导致的数据丢失(除非是本质上的严重错误),而Web 3.0则对此没有任何讨论,需要使用备份机制来部分缓解问题。

在我看来,如果Web 3不能解决前面的这些问题,它是不能作为共用的基础架构的。而因为它的区块链的技术本质,在保留它的承诺的前提下,隐私数据的存储、共享和撤销共享似乎是一座不可逾越的高山。

结合?

也许可以将一些区块链技术结合进来,用来改进目前的如Solid存在的一些缺憾。结合的核心是利用区块链的特性,尤其是不可伪造性,来存储一些Web 3.0中会遇到的数据。但主次不能颠倒,以Web 3.0为基础,而不是以Web 3为基础,否则会引入前述的Web 3(暂时或永远)难以解决的缺陷。

比如在使用数据的时候,或许可以使用区块链记录访问和写入信息,或者说data lineage或provenance。尤其是当数据使用涉及到多个用户的时候,这一机制的意义更明确——多个Pod服务器联合起来各自作为一个对等点来跑区块链,并共同记录。类似地,授权信息也可以一并记录,以备日后查询。

当然,这其实也不是非区块链不可,因为核心是需要交叉认证/签名,而这一技术并非区块链发明的。类似地,许多其他「可以」用区块链进行的功能也都未必一定需要区块链(比如保障数据始终可用可以通过类似Internet Archive的东西)。所以究竟是否有必要使用区块链也是一个值得讨论的话题。

其他与未来

前面主要是在技术层面讨论Web 3.0和Web 3。但如何落实和推广则又是另一个问题了。

如前面所说,Web 3的宣传能力很强,已经让大多数人不加思考地认为它就是未来了。而且它也有盈利点,或者说炒作点,所以在商业上也站得住,可以持续有资金投入并维持开发。不得不承认,在这一点上,金融就是更厉害。

Web 3.0这边则是另一种现象。因为它本身要颠覆现有的盈利生态(广告、封闭花园),而又没有直接提供一个新的盈利生态(不像区块链的概念本身就被炒作出来了盈利点),所以开发和推广速度很有限。而由于我们所处的社会时代限制,缺少商业利益推动的东西大多都会失败,所以Web 3.0需要尽快寻找到解决方案。技术优秀但推广失败的案例实在不少。

而目前的Solid系统也有一些缺陷,尤其是关于推理部分的实现很有限——本身暂时不支持,故而App需要通过Comunica库(执行SPARQL查询)或自己执行推理。另外教程、文档和示例等信息也不够好或很有限,在这些方面亟待加强。


Related posts:

您可以在Hypothesis上的該群組內進行評論,或使用下面的Disqus評論。