之前我的博客有篇摘录(《那些称为Web 3.0的东西》)简单提过实际上有两种不同的关于下一代Web的思路,即W3C的Web 3.0以及区块链的Web 3。最近有了一些更多思考,所以尝试探讨一下我对这个事情的看法。
Earlier, my blog had a brief extract (the "Web 3.0 " ) that briefly referred to two different ideas about the next generation of Web -- Web 3.0 for the W3C and Web 3 for the block chain. Some more thought had recently been given, so try to explore my views on the matter.
本文分别介绍一下这两种思路,梳理一下其关注的重点,然后进行对比,最后谈谈我的看法。主要侧重技术层面讨论,而非商业或宣传。
These two ideas are presented separately, and the focus of their attention is sorted out and then compared to my perspective. The focus is mainly on discussions at the technical level, rather than on business or advocacy.
本专栏文章是对我博客文章的搬运。由于B站限制,内容中缺少超链接,格式也有一定差距;也不含原文中Tim Berners-Lee讲授的照片。有兴趣者可以去看原文——同标题,但请直接全关键词搜索,而非默认搜索,否则你大概只能找到区块链Web 3的宣传。
This column is a porter of my blog articles. There are also some gaps in the format because of site B restrictions, the lack of hyperlinks in the content, and the fact that there are no photographs of Tim Berners-Lee in the original text. Interested parties can look at the original text -- same title, but do not search by default for all the keywords, otherwise you can probably only find the publicity of the block chain Web 3.
如果按时间来算,那么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)则是在此之上进一步增加了去中心化的性质。
In time, the W3C (World Wide Web Consortium) first introduced the Web 3.0 concept, not later than 2007 (see World Wide Web Consortium: Web 3.0 Emerging). Their idea is to use Semantic Web or Linked Data.
下文关于Web 3.0的讨论,如果涉及去中心化,多是以Solid的理念为基础进行的讨论。
The discussion on Web 3.0 below, if related to decentralisation, is mostly based on the Solid concept.
之所以以语义网络为核心,是因为其背后基于形式逻辑,可以带来强大的互操作性和推理能力。「互操作性」有很多方面,其中一个核心要点是指即使软件A原来设计时读取的是某个格式/结构为X的数据,但通过背后机制(即推理),它自动地可以读取格式/结构为Y的数据,不需要做专门的修改。举个不太对但能反映问题的例子:如果我编写了一个查看和搜索QQ聊天记录的软件,那么在互操作性的支持下,它自动也可以查看和搜索Element的聊天记录,即使两者的具体存储结构不同。另外,为了去中心化,我们还需要统一的(或至少跨服务的)身份认证和访问接口。
The semantic network is at its core because it is based on formal logic and can provide a strong interoperability and reasoning capability. There are many aspects of " interoperability ", one of which is that, even though software A was originally designed to read data in a format/structure as X, it can automatically read data in a format/structure as Y through the underlying mechanism (i.e. reasoning), without the need for specific modifications. An example that is not so right but reflects the problem: if I create a software to view and search QQ chat records, it can automatically view and search Element's chat records, even if the specific storage structure of the two is different. Also, in order to be centralized, we need a unified (or at least cross-service) identification and access interface.
这一系列反映的是,Web 3.0的关注重点是让Web的数据更加机器可读,统一及标准化,以及互操作性带来的数据的可移植性。从使用的角度上,以前面这些为基础,附加上逻辑推理能力,可以更容易地搭建更方便用户使用的软件/网站。从理念的角度上,Web3.0和Solid希望带给用户更多的选择或者自主权:
This series reflects the focus of Web 3.0 on making Web data more machine-readable, harmonized and standardized, as well as the portability of data generated by interoperability. From the point of view of use, it is easier to build more user-friendly software/websites based on these earlier elements. From the conceptual point of view, Web3.0 and Solid want to give users more choice or autonomy:
数据存储和控制的自主:可移植性使得用户可以轻易地将数据从一个服务转移到另一个服务去;
Autonomy of data storage and control: portability allows users to easily transfer data from one service to another;
数据使用上的自主:标准及互操作性使得可以比较容易地切换软件或开发替代软件。
Autonomy in the use of data: Standards and interoperability make it easier to switch software or develop alternative software.
另外,由于推理能力,已有的数据可以被用来(自动地)推出更多数据,可以一定程度上降低数据不完整带来的影响,且可以检查数据内部是否有冲突。
In addition, due to the ability to reason, existing data can be used (automaticly) to generate more data, to reduce to some extent the impact of incomplete data and to check whether there are conflicts within the data.
理所当然地,W3C的Web 3.0是基于现有的Web的,所以一般来讲用户不需要重新学习,也不需要放弃已有的东西。
As a matter of course, W3C's Web 3.0 is based on the existing Web, so it is generally not necessary for users to learn again or to give up what they already have.
近来这些年,随着区块链由于炒加密货币带来的火热,以及以太坊引入的智能合约机制,有人开始提出了基于区块链的Web3理念,并且这个理念现在更广为人知。其核心是使用区块链技术,将数据存储在其上,使用智能合约提供额外功能。
In recent years, the Web3 concept, based on the block chain, has begun to emerge as a result of the heat of block chains caused by the burning of encrypted currency, and the smart contract mechanism introduced by the Etherm, and is now more widely known. At its core is the use of block chain technology, where data are stored, and the use of smart contracts to provide additional functionality.
于是其卖点也全部围绕区块链的特性而展开。比如区块链的去中心化信任。比如数据保存在区块链上不会因为意外因素而消失,所以对应到网站上,则保证网站不会因为服务器的意外因素而消失,可以起到文库的作用。比如不可伪造性保证「我」的信息只有「我」能修改(或者智能合约授权的其他人),没有人可以仿冒或造假。比如不可变性带来的自动版本历史。
So all the outlets are organized around the characteristics of the block chain. For example, the decentralized trust in the block chain. For example, the data kept on the block chain does not disappear by accident, so it corresponds to the website, which ensures that the site does not disappear by accident on the server and can serve as a repository. For example, the non-false nature guarantees that "I" information can only be modified by "I" (or someone authorized by a smart contract) and that no one can imitate or falsify it.
可以看到,区块链的Web3理念考虑的重点是数据的存在性、所属性以及可用性(以及作为基础的去中心的信任)。
As can be seen, the concept of Web3 in the block chain focuses on the existence, affiliation and availability of data (as well as trust in the underlying de-centre).
但数据存在区块链上导致Web 3的使用必须另起炉灶,用户需要安装专门的软件,并且下载整个区块链(或者理论上可以优化到只下载用到的部分)到自己的硬盘上。虽然理论上可以由一些服务器提供桥接机制,让用户可以使用浏览器来浏览区块链上的Web 3,但这又带来对这些桥接服务器的依赖或者说一定程度的中心化,和区块链本身的理念是相悖的。
But the use of Web 3 on the data chain has to be replaced, and users need to install specialized software and download the entire block chain (or, theoretically, optimize it to download only) to their own hard disks. While it is theoretically possible for some servers to provide a bridge mechanism that allows users to use browsers to browse Web 3 on the block chain, this leads to dependence on, or some degree of centralization of, these bridges, and is contrary to the concept of the block chain itself.
无论是Web 3.0还是Web 3,两者都表达了对当下Web的(向大平台)中心化趋势的不满,追求去中心化,也都宣称要给用户更多控制权和自主权。但从两者的基本思路上可以看出它们有很大不同,也导向完全不同的途径。这里我以一些主要的话题来具体比较两者的异同。这里以Solid作为Web 3.0的代表技术,毕竟它和Web本身都是Tim Berners-Lee发明的;将以太坊作为Web 3的代表,毕竟它用户量极大,而且宣称自己先提了区块链版的Web 3。
Whether web 3.0 or Web 3, both express their dissatisfaction with the current trend of centralization of the Web (to the big platform) and their desire to decentralize, and claim to give users greater control and autonomy. But their basic thinking shows that they are very different and lead to a different path. Here I compare the two in concrete terms. Here I have some of the main topics. Solid represents the technology of Web 3.0, after all, it and Web were invented by Tim Berners-Lee itself; Taiku is the representative of Web 3, after all, it has a huge number of users and claims to have mentioned Web 3 of the chain.
其实以太坊那边把Web 3.0和Web 3两个名字都占过。但后来他们更倾向于使用Web 3,所以本文就叫他们Web 3。
Web 3.0 and Web 3 were actually taken by Ethio. But later they preferred Web 3, so they're called 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.0 seeks to decentralize data and use , i.e., the portability and interoperability of data, as well as the substitution of mechanisms providers. Web 3.0 allows anyone to build their own data warehouse and to move data to another warehouse, without affecting their use, so that there will be no locking of data by a centralized large platform - no data transfer, no data interconnection. In the case of Solid, you can choose an arbitrary Pod provider, or you can transfer your data to another provider; App does not save your ID or your data, but uses it on an ad hoc basis to obtain reading and writing authorization for your Pod, so that there will be no difference in its use; the data is in the form of Linked Dada (RDF files), which is embedded in it. In addition, identity provision and identification services can be replaced, allowing anyone to build their own services or choose/applause one service, which naturally avoids the centralization of one platform; we can also say that the Alipp version of each platform is used to eliminate each other.
而Web 3追求的去中心化则是延续了区块链的去中心化思路,即对信任的去中心化。区块链提供了去中心化的一致性机制,保证了写入的数据是正确的,且数据不会被篡改。由于数据统一存放在区块链上,那么互操作也可以保证,且自然也不会被某个平台(应用软件/App提供方)锁死。但同时,Web 3也假设了所有人共同使用同一个区块链(或同一组,见下文关于数据存储和访问的部分),也就是说Web 3的去中心化有一个巨大的中心化数据存储链假设。
The decentralization sought by Web3 is a continuation of the decentralization of the block chain, which is the decentralization of the
对Web 3.0来说,前面提到的2007年的演示文稿并没有规定如何表示用户标识。W3C有一些不同的技术方案,各有优劣。Solid使用了WebID机制,即通过一个(或一系列)RDF文档描述你的信息,登录时使用OAuth(向你的WebID的issuer)确认身份。Solid暂时还没有形成一个强制性的标准规定一个App如何识别用户(以为每个用户提供各自定制后的服务),但大体上要么是通过WebID的地址(URI),要么通过WebID文档的内容,要么通过Pod内存储的App信息(如配置)。
For Web 3.0, the 2007 presentation referred to above does not specify how user identifiers are to be expressed. W3C has a number of different technical options, each of which has merit. Solid uses the WebID mechanism, which describes your information through one (or a series of) RDF documents, and uses the OAuth (to your WebID's issuer). Solid has not yet developed a mandatory standard on how to identify a user (to provide customized services for each user), but generally either via the WebID address (URI), through the content of the WebID document, or through the App information stored in Pod (e.g. configuration).
对Web 3,用户标识就是一串数字,即你的公钥。而身份认证则是通过密码学技术,通过你持有的私钥确认你就是你。理论上可以为每个用户在特定的位置生成一个文档来描述用户信息,不过没有形成一致。
For Web 3, the user identifier is a string of numbers, your public key. Identification is a cryptography technique that recognizes you as you through the private key you hold. Theoretically, each user can generate a document to describe the user information at a given location, but it is not consistent.
二者的身份ID本身均不具有意义。同样的,如果用户希望创建另一个身份,但又想将两个关联(比如迁移旧身份到新身份),这两种系统都无法轻易做到这点——都有一些方案,但都不是标准的一部分。
Neither I.D. is meaningful in itself. Similarly, if users want to create another identity but want to link them (e.g. to move an old one to a new one), neither system can do that easily — there are some options, but they are not part of the criteria.
我所知的对多身份更好的一个机制是HubZilla的nomadic identity,参见《互联社交网络》。
One of the mechanisms I know better for multi-identity is the nomadic identity of HubZilla, see Internet Social Network.
以Solid为例,Web 3.0的App假设WebID的issuer是可信的,并且用户需要假定Pod提供方是可信的。由于两者均可自建(且两者往往是同一个),信任成本并不高。不过广泛来说,Web 3.0并没有着重讨论信任问题,可以认为是假定用户信任自己所选的(或自己搭建的)托管服务。
In the case of Solid, Apple of Web 3.0 assumes that WebID's assuer is credible and that users need to assume that Pod providers are credible. Since both can build themselves (and both are often the same), trust costs are not high. But, broadly speaking, Web 3.0 does not focus on trust issues, which can be assumed to assume that users trust in the hosting services they choose (or build on their own).
而Web 3假定所有人都不可信,于是通过区块链保证在这种情况下仍然可以正确存放数据和使用数据,所以Web 3不需要信任。当然也可以说,Web 3假定大家信任那个区块链技术/代码的信任机制和区块链的实际使用者之间相匹配。经典的例子就是比特币上拥有>50%算力即可控制整个链,所以用户需要假设不存在有人会控制50%算力。
Web 3 assumes that everyone is untrustworthy, so it is through the block chain that data can still be correctly stored and used in such situations, so Web 3 does not need to be trusted. Of course, Web 3 assumes confidence in the trust mechanism/code of the block chain and the match between the actual users of the block chain. The classic example is > on bitcoin; 50% is control of the entire chain, so users need to assume that there is no control of 50%.
Web 3.0将每个人自己的数据存储在自己的Pod(数据库)中,并且允许用户随意选择和迁移Pod。Pod是某(一或多)台机器/服务器,所以存在失效的可能。这些机器可以任意修改数据(无论是授权还是恶意),无法保证数据固定不变。由于Pod是存在某台机器/服务器上,由标准的协议提供外部访问,所以可以为数据设置访问许可。使用者不需要提前下载任何数据,也不需要持久化保存数据。
Web 3.0 stores each person's own data in its own Pod (database) and allows users to choose and migrate the Pod at will. Pod is a (one or more) machine/server, so there is a risk of failure. These machines can modify the data at will (whether authorized or malicious) and cannot guarantee that the data will remain fixed. Since Pod exists on a machine/server with external access provided by standard protocols, access permission can be set for the data. Users do not need to download any data in advance, nor do they need to keep the data permanently.
Web 3将数据存放在区块链上,由区块链的机制确保数据永远存在且不会被篡改。使用者需要提前下载整个区块链才能访问和修改数据(或如果优化存在的话则是下载相关区块)。同时,由于区块链的特性,这里隐藏了一个假设,即所有用户的所有事务(比如写入)需要可以互相验证。在绝大多数区块链设计中(比如以太坊),这意味着需要使用同一个区块链。注意这里的同一个不仅仅是要求技术一样,还要求从源头到数据都一样。如果两人用了两个不同的区块链,那么两者之间互相无法访问对方的信息,互相不信任区块的正确性,互相不认可用户身份,自然也不存在互操作。这就是为什么前文说Web 3的去中心化有一个巨大的中心化数据存储链假设。当然,有一些区块链系统,比如Polkadot之类的宣称自己可以支持多链,但也有各自的问题。而且它们的存在反而证实了这里关于互操作性缺陷的论点。
Web3 stores the data on block chains, ensuring that they are never altered. Users need to download the entire block chain in advance to access and modify the data (or, if optimized, the relevant block). At the same time, because of the characteristics of the block chain, there is a hidden hypothesis that all users (e.g. write) need to verify each other. That is why there is a huge central data-storage chain in the design of the block chain (e.g., too). Of course, there are a number of sector chain systems, such as Polkadot, which claim that they can support multiple chains.
Solid中用户可以很容易地存放私有数据,因为Pod内的数据由协议/接口保护,协议中包含身份认证和授权相关内容。
Users in Solid can easily store private data, as data in Pod are protected by protocols/interfaces that include identification and authorization-related elements.
Web 3存放在区块链上的数据全部公开,所以无法将私有数据简单存放在链上。如果需要存放私有数据,只有两种选择:1. 要么将其加密并存放在区块链上,且保证密钥不会存放在区块链上;2. 要么选择「链外存储」(off-chain storage),即在区块链上放置一个指针,指向一个链外的位置(比如「我的计算机上的某个文件地址」)。做法可以参考IPFS。但选择链外存储即意味着该数据失去区块链提供的保证,尤其是关于数据的可用性。
Web 3 contains all the data in the block chain, so it is not possible to simply store private data on the chain. If there is a need to store private data, there are only two options: 1. either encrypt it and store it on the block chain, and guarantee that the key will not be stored on the block chain; 2. Or choose off-chain storage, i.e. place a pointer on the block chain, pointing to a location outside the chain (e.g., "a file address on my computer").
这里我们只讨论私有数据的共享问题,因为公有数据本身就是「永远共享给所有人」的,没有必要讨论。
Here we only discuss the sharing of private data, because public data is in itself “forever shared for all”, and there is no need to discuss it.
在Solid上,共享数据也是通过授权机制实现,只需要在数据拥有者之外增加某个「其他人」的访问授权即可。访问控制的粒度取决于具体的协议,如WAC(Web Access Control)支持设置读、写、附加、控制。
In Solid, the sharing of data is also done through an authorization mechanism, with only one "other" access authorization added to the data owner. The size of the access control depends on specific protocols, such as Web Access Control, which supports setting up reading, writing, attaching, controlling.
在Web 3上,共享数据难以操作,因为共享也会涉及撤销共享。然而由于已有区块是不可修改的,所以使用区块链机制只能有意义地做到共享,但无法实际撤销——如果我是一个曾经被授权使用但现在不再拥有授权的恶意用户,使用我自己编写的软件/客户端,只要我能在历史区块中找到读取方式,那么就可以用它读取数据,而不受新的区块施加的限制的影响。智能合约只能限制写入,但无法限制恶意用户的读取行为。而如果不使用区块链的机制来达成共享,那么Web 3的意义便失去了不少。
On Web 3, sharing data is difficult to operate, because sharing also involves the withdrawal of sharing. However, since blocks already exist are unalterable, the use of block chain mechanisms can only be meaningfully shared, but cannot be effectively revoked — if I am a malicious user who was authorized to use but no longer has an authorized user, using software/clients that I have prepared, and as long as I can find a way to read in historical blocks, it can be used to read the data without being influenced by restrictions imposed by new blocks. Smart contracts can only limit to , but cannot limit the reading/strong > behaviour of malicious users.
Web 3.0沿用URI机制来标记地址,并且继续使用DNS来提供人类可读地址。理所当然地,这也延续了DNS机制的优缺点,包括但不限于控制在有限的分发者手中,且如果需要原生加密(HTTPS)则更进一步受限(引流《扯两句HTTPS和CNNIC的CA信任被吊销之事》)。
Web 3.0 uses the URL mechanism to mark addresses and continues to use DNS to provide readable addresses for humans. Naturally, this also perpetuates the advantages and disadvantages of the DNS mechanism, including, but not limited to, control in the hands of a limited number of distributors, and is further limited if the original encryption (HTTPS) is required (the two quotes of HTTPS and CNNIC's CA's untrustworthy).
Web 3则没有深入讨论该机制,而且也没有形成共识。但基础来说,由于数据存储在区块链上,都有区块编号,那么至少可以使用区块来作为数据的第一层地址。于是宽泛地说,Web 3应该可以沿用URL/URI机制,使用自己的「协议」,并以区块作为地址。例如可以规定指向(协议)对应的链上一个叫做的区块上一个叫做的数据。至于人类可读性,理论上Web 3也可以开发一个类DNS机制,但具体细节(尤其是导航向哪里)有许多种选择,这里就不展开了。这个机制的弊端也很明显,那就是如果数据更新,那么地址就过时了;永远无法简单地使用一个地址指向最新数据,除非每次都遍历整个区块链来寻找最新版本(或每个用户提前维护缓存)。至于加密则并没有标准,应当大体等同于HTTP时代自行处理加密的情况。
Web3 does not discuss the mechanism in depth, nor does it have a consensus. But basically, because data are stored in a block chain and there are block numbers, at least blocks can be used as the first-level address of the data. So, broadly speaking, Web3 should be able to follow the URL/URI mechanism, using its own “agreement” and using blocks as its address. For example, it can be specified that the data on a block in the chain that points to (the protocol) can be referred to. As to human readability, Web3 can also, in theory, develop a type DNS mechanism, but the details (especially where navigation goes) have many options, which are not available here.
Solid基于Web标准,并使用Linked Data(LD),原生支持使用URI/URL「引用」其他地方的数据。除了Web 1.0时代就有的超链接外,LD还支持其他的数据间关联方式,比如在数据中直接引用其他地方的数据。这也是Linked Data本身的含义:数据之间是互相链接的,可以很容易地从一个数据导航(比如链接、跳转、包含)到另一个数据。
Solid is based on the Web criteria and uses Linked Data (LD), which supports the use of URI/URL " quote" data elsewhere. In addition to the hyperlinks available in Web 1.0, LD supports other ways of linking data, such as direct references to data elsewhere in the data. This is what Linked Data itself means: data are linked and can easily go from one data navigation (e.g. link, jump, include) to another.
Web 3由于使用了区块链,原生支持数据和它的旧版本之间的关联。由于超链接只是地址的特殊用法,那么沿用上面提到的地址可能性,超链接也可以在Web 3上被支持。相比Solid或者LD,Web 3并没有更多地讨论数据间关系的表示。
Web3 links between the original supporting data and its old version because of the use of block chains. Because hyperlinks are only a special use of addresses, they can also be supported on Web 3. There is no more discussion of the indications of data relationships than Solid or LD, Web 3.
实际上有一个叫做IPLD(InterPlanetary Linked Data)的用于区块链的数据模型。但它和前面说的Linked Data不是一回事。
There's actually a data model for block chains called InterPlatetary Linked Data. It's not the same as Linked Data.
Solid或者说Web 3.0,由于数据的去中心化,都不存在遍历全部数据或用户的可能性。这点在现有的Web上也一样,所以应对方法也类似——目录/黄页、门户、搜索引擎等。现有Web在Web 2.0时代的许多「服务」是由「平台」提供的,它同时提供了数据存储、身份认证以及应用软件。于是对每一个平台来说,它拥有自己平台上的全部数据,可以说是一种「本地全局」,可以进行遍历。但Solid上数据存储或者身份和应用软件是分离的,所以应用软件不具有类似的「本地全局」,需要新的解决方案。
Solid or Web 3.0, because the data are decentralised, there is no possibility of going through all data or users. This is also true of the existing Web, so the response is similar - catalogues/yellow pages, portals, search engines, etc.. Many of the existing Web services in the Web 2.0 era are provided by the Platform, which also provides data storage, identification authentication, and applications. For each platform, it has all the data on its own platform, which can be described as a "local whole" that can go through it. But the data storage or identity and application software on Solid is separate, so the application does not have a similar "local whole" and requires new solutions.
Web 3则由于假设/要求所有数据存储在同一个/组区块链上,那么理论上完全可以遍历所有数据及(活动)用户。
On the other hand, Web3 is theoretically fully accessible to all data and (activity) users, as it assumes/requires that all data are stored on the same/group block chain.
Solid上的应用程序/App使用标准的协议和Solid Pods进行交互,读写用户数据。App的代码自行维护,和Pod相分离,可以使用任何语言,部署在任何地方。一般而言,如果App只需要应对一个用户(不特定的「一个」,或者也可以说是「当前用户」),那么App完全可以作为静态网页部署。
The application/App on Solid uses standard protocols to interact with Solid Pods to read and write user data. The App code is self-maintaining, separate from Pod, and can be deployed anywhere in any language. In general, if App only has to deal with one user (not a specific " one ", or " current user " ), it can be deployed as a static web page.
Web 3上的应用程序按用到的理念不同可以分成两类:1. 增强区块链功能的App;2. 使用区块链数据的App。其中第一种是Web 3比较经常提及的所谓dApp(decentralized App,即「去中心化应用程序」),需要依赖智能合约机制来保证执行的正确及结果的可靠;第二种则更接近普通意义的App,未必需要使用智能合约。使用dApp有一些典型场景,尤其是需要写入区块链的情况——如果不使用智能合约,没有人会信任写入的数据。而如果只涉及读取区块链上的数据,尤其是公开数据,那么完全不需要智能合约,可以类比为一个「客户端」。其中dApp(相比Web 2.0应用)的主要优势是消除了中心服务器,而依托于区块链的机制,由(所有的/大量的)对等端(客户端)共同完成。另外注意,区块链上只有持久数据(外存)和智能合约(程序),没有类似于内存的东西,所以如果涉及「状态」,那么需要客户端自行计算,其计算量也许会是一个问题。
Applications on Web3 can be divided according to the concepts used: 1. App to enhance block chain functionality; 2. App to use block chain data. The first is the so-called dapp (decentralized app) that web 3 refers to more often than not. If only the data on the block chain is read, especially public data, there is no need for a smart contract, it can be compared to a "customer ". The second is closer to a smart contract. The main advantage of using dApp is to remove a central server, depending on the mechanism that is attached to the self-connection chain. If only reading the data on the block chain, especially open data, there is no need for a smart contract, it can be compared to a "customer ".
Web 3.0沿用已有的Web架构,预期继续使用通用客户端即浏览器来访问,用法和现在的Web类似。只不过它不再围绕在「平台」上,而是使用/访问「应用程序」来和(用户自己的固定的)「数据存储」(Pod)交互。当然,和现在的Web类似,Web 3.0也一样可以使用专用客户端。如前面所说,Web 3.0带来的一大特性就是可以很容易地切换应用程序而不用担心丢失任何已有信息,因为数据存储在用户自己的仓库中,而非应用程序开发者的平台内,所以切换应用程序仍然可以访问原先的数据。
Web 3.0 follows the existing Web architecture, which is expected to continue to be accessed using a generic client, a browser, similar to the current Web. It simply does not revolve around the " platform ", but uses/accesss " applications " to interact with (the user's own fixed) " Data Storage " (Pod). Of course, like the current Web, Web 3.0 can also use a dedicated client. As noted earlier, a major feature of Web 3.0 is that it can easily switch applications without fear of losing any available information, since the data is stored in the user's own warehouse rather than in the platform of the application developers, so the switch application can still access the original data.
Web 3则是另一种机制,不具有传统意义上的浏览器。Web 3的用户需要使用一个区块链软件(对等端/客户端,例如相应加密货币钱包),下载整个区块链,然后访问其上的数据。这些下载的数据需要持久保存在本地。也就是说,用户需要预先下载大量数据到本地,然后访问本地的数据(传统的浏览器也下载,但数据量不可同日而语)。如果用到智能合约,那么需要下载更广泛的区块(如果之前通过优化仅下载部分区块),并且执行计算。
Web3 is another mechanism that does not have a traditional browser. Web3 users need to download the entire block chain using a block chain software (reciprocal/client end, for example, a corresponding encrypted currency wallet) and then access the data on it. These downloads need to be permanently stored locally. In other words, users need to download a large amount of data in advance to the local area and then access local data (traditional browsers also download, but the amount of data is not comparable). If smart contracts are used, larger blocks need to be downloaded (if previously, by optimizing only some of them) and calculations performed.
Web 3.0基于现有的Web,对其所有技术都兼容。不过Web 3.0希望对范式进行修改,所以在完整的Web 3.0下,现有的中心化服务将被抛弃,改为去中心化的App。
Web 3.0 is based on the existing Web, which is compatible with all its technologies. However, Web 3.0 wishes to change the paradigm, so under the full Web 3.0, the existing centralization services will be abandoned and replaced by a decentralised App.
Web 3则不具备和现有Web的兼容性,完全另起炉灶。的确,我们可以通过一些桥接站点,来使得用户可以通过浏览器和HTTP(S)协议访问Web 3的数据,但这仅对读取有意义,对写入则比较怪异。因为如果想要写入,那么就需要去竞争区块的写入权,其中涉及到计算。如果计算全部由那个桥接站点代劳,那么这些站点会形成新的中心,和公有区块链的基本假设和原则背道而驰。而如果计算由本地浏览器执行,那么基本等于使浏览器成为(全功能)客户端,那么桥接站点的存在则没有实际意义(更何况还有效率的问题)。而一个没有写入能力的所谓Web,其实又退回了Web 1.0时代,完全没有技术优势。
Web 3 does not have compatibility with the existing Web. Indeed, we can use a number of bridges to allow users to access Web 3 data through browsers and HTTP (S) protocols, but this has implications only for
上面我们针对一些具体的话题讨论了Web 3.0和Web 3技术上的特性。两者的差异源自选择的技术路线及其思考的关键特性,即区块链vs个人数据库,以及去中心化信任vs去中心化数据、使用和提供方。
We discussed the technical characteristics of Web 3.0 and Web 3 above on a number of specific topics. The differences arose from the choice of the technical route and the key characteristics of their thinking, i.e., the personal database of block chains vs, and decentralized trust vs. decentralised data, use and provider.
整体来看,两者各有优劣,且在一些方面通过不同的思路提供了类似的特性。
On the whole, the two have advantages and disadvantages, and in some respects offer similar characteristics through different thinking.
Web 3.0的优势是支持隐私数据和共享,用户(数据拥有者和使用者)本机存储和使用成本低,应用开发者可以随意选择语言,以及互操作性带来的好处。劣势是没有人能保证任何操作的可信性,用户需要信任「自己」以外的东西(小到服务器,大到Pod提供方)。而数据存储在Pod内这件事既可以是优势也可以是劣势:好处在于一个URI可以永远指向「最新」数据,用户也可以随意撤销访问授权(或删除数据);坏处是数据会随着服务器而消失。
The advantage of Web 3.0 is to support privacy data and sharing, with users (data owners and users) having low storage and use costs, application developers having a free choice of language, and the benefits of interoperability. The disadvantage is that no one can guarantee the credibility of any operation and users need to trust something other than " themselves" (small to the server, large to the Pod provider). This can be either an advantage or a disadvantage for data storage in Pod: the advantage is that an URI can always point to "up-to-date" data, and users can easily withdraw access authorizations (or delete data); the bad news is that data disappears with the server.
而Web 3的优势是用户(数据拥有者、使用者)和应用开发者不需要信任任何人(只要所有的对等端能满足该区块链的信任模型,比如不存在算力集中,那么一切都是可信的),且数据不会消失。而劣势则是对Web极其有限的兼容,对隐私数据极其有限的支持,难以共享数据,用户(数据使用者)需要下载大量数据和处理大量计算,应用开发一定程度上受语言限制(智能合约的语言),对区块链本身共识的要求,以及(延续自区块链的)全局性能限制。
The advantage of Web 3 is that users (data owners, users) and application developers do not need to trust anyone (and everything is credible as long as all peer equivalents satisfy the model of trust in the block chain, such as the absence of arithmetic concentration) and the data do not disappear. The disadvantage is that the compatibility of Web is extremely limited, support for privacy data is extremely limited, it is difficult to share data, users (data users) need to download a large amount of data and process a large amount of calculations, application is somewhat limited by language (the language of the smart contract), requirements for consensus on the block chain itself, and (continuing from the block chain) limitations on overall performance.
两者通过各自的技术方案,都消除了大(私有)平台控制用户数据的问题,都提供了去中心化应用构建的方法。
Both, through their respective technical programmes, have eliminated the problem of control of user data by large (private) platforms and have provided a method of decentralizing the application of construction.
所以,两者本质上并非是互相竞争的技术,而是两类不同的技术。最合理的做法是将两者结合,而非是用一种完全压过另一种(当然这里仍然存在一个以谁为主的问题,后文讨论我的看法)。之所以有谁压过谁或者你死我活的感觉,更多是宣传的问题。
So, in essence, the two are not competing technologies, but two different ones. The most rational thing is to combine the two, not to push one completely over the other (there is, of course, a question of who, and then to discuss my point of view, which is more a matter of propaganda than anyone who's pressurized or you're alive.
从这个角度看,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的兜售者,更擅长炒作和宣传,以及利用人性(的弱点)。有点工业和金融之分的味道。
From this perspective, Web 3.0 is much better than Web 3.0. Web 3.0 is less likely to assert that "I am the future" on this side, especially that "Web 3.0 is at the core of my technology" on the other hand, as in the case of the web of Solid, which does not even mention the word "Web 3.0" on the other hand. Web 3.0 is a "better Web" on the other hand. Web 3.0 is more of an academic or industry (technical) person who is in a better position to do and discuss technical issues on the Internet (a major reason why I can't read it) and Web 3. Web 3 is arbitrary to say that "Web 3 is at the core of the chain" on the other side, as in the case of the web 3 pages of the Taib and the website of the so-called Web 3.
另外,如果看过我之前那篇摘录的话,应该会看到区块链Web 3派中有一些喜欢碰瓷的人,比如那个碰瓷缩写W3C的流氓推特账号。可以说,之所以区块链的Web 3能广为人知,主要是因为区块链经济的火热,和它具体技术细节反而关系不大。
Moreover, if you look at my earlier excerpts, you can see that there are some of the Web 3 sections of the block chain who like to touch china, such as the hooligan Twitter account that touches the W3C. It can be said that the Web 3 of the block chain is well known, mainly because of the hotness of the block chain economy and its lack of specific technical detail.
至于我个人,我更认可Web 3.0的技术和思路,也更喜欢他们的环境。(这两者并没有因果关系。)当然这不代表我认为应该忽视区块链技术的优势,而是觉得区块链应当作为补充。
As for me personally, I prefer the technologies and ideas of Web 3.0 to their environment. (Both do not have a causal link.) This, of course, does not mean that I think the technical advantages of block chains should be ignored, but rather that they should be complemented.
首先,不管是Web 3.0还是Web 3,都宣称要去中心化。但区块链的Web 3本身又导致需要中心化到那一个/一组区块链上,这和它宣传的有所矛盾。而Web 3.0这边则没有这个顾虑。只要大家遵循同样的协议,那么各个不同组织或个人都可以自行搭建自己的系统,并且也可以提供各自的额外的功能。这和区块链中必须使用完全一样的区块链设计且使用同一个区块链有很大区别。尤其是Solid的协议中更是允许一切都由不同实体处理——WebID入口文档在一个URI,WebID又可以包含在其他地方的其他文档(另外的URI)作为内容的一部分,WebID(身份标识)、issuer(身份认证者)和Pod(数据存储)可以是分离的不同服务,可以有多个Pod;而App和前面的这些都没有所属关系,而只是通过认证来使用它们。
Web 3.0 does not have this concern. As long as you follow the same agreement, different organizations or individuals can build their own systems and provide their own additional functions. This must be identical to the block chain design and uses the same chain of blocks. In particular, the Solid agreement allows everything to be handled by different entities — the WebID entry file is an URI, the WebID can also be included as part of the content of other files elsewhere (other URIs), the WebID (identifier), and the Pod (data storage) can be separate services and can have multiple Pods; and neither App nor the previous ones have any relationship, but they can be used by authentication.
其次,区块链的所谓Web 3上不能有意义地存储隐私数据,可以说这本身就断绝了它作为「Web」的意义。而Web 3.0在这个方面完全不存在问题,数据共享以及撤销共享也被支持,还可以同时允许不同机制的存在。
Second, the lack of meaningful storage of privacy data on the so-called Web 3 of the block chain can be said to have severed its own meaning as "Web." Web 3.0 is completely unproblematic in this regard, and data sharing and cancellation of sharing are supported, allowing the existence of different mechanisms at the same time.
再次,区块链机制对资源需求很大,不论是存储还是计算资源。在它的设计中,不存在「服务器」,所以这个需求是每一个用户都需要承担的。换句话说,如果一个终端(比如手机,或更轻量的如智能家居设备)不具有承担这些需求的能力,它就不能正确使用区块链的Web 3。当然,如果使用了合适的优化措施,那么一个只需要读取Web 3信息的终端的确可以只使用更少的资源,然而一旦涉及写入那么则是另一种情况。取决于不同的共识机制,Web 3会有不同的要求,也有不同的事务处理速度上限,当然另一面则是不同共识机制的不同安全和信任度。而且取决于具体的技术,如果使用类以太坊的单一链技术,那么共识机制不可修改,除非愿意冒丢失用户数据的风险(参考关于以太坊的Hard Fork的讨论)——这对一个稳定运行的Web来说是不可接受的。
In other words, if a terminal (such as a mobile phone, or a lighter amount of a smart home device) does not have the capacity to absorb these needs, it cannot properly use Web3 of the block chain. Of course, if appropriate optimization measures are used, a terminal that only 最后,如果我们考虑失信或错误的处罚,以及协议或机制的更新,Web 3.0在这方面有显著高于Web 3的优势。对于Web
3.0,如果是托管服务(比如Pod服务器)失信,那么用户可以轻易迁移自己的数据到另一个Pod服务器上;如果应用程序开发者失信,那么用户可以吊销应用程序访问权,并更换其他应用程序(如果有数据损失则可以尝试从备份恢复);如果是协议有错误或缺陷,或者只是想要更新,那么服务提供者只需要更新为修正后的协议即可,除非整个Web
3.0的架构被修改。而对于Web
3,假如认可共识机制正常生效,那么托管失信的问题不存在;如果应用开发者失信,虽然可以之后更换应用,但之前使用应用的结果无法撤销无法恢复(除非产生Fork,但这个行为本身是大问题);如果应用程序有bug更新即可,但如果发现基本协议或设计的缺陷,那么则无法解决(还是只有产生Fork一条路)。当然,反过来Web
3的优势在于不用担心错误导致的数据丢失(除非是本质上的严重错误),而Web 3.0则对此没有任何讨论,需要使用备份机制来部分缓解问题。 Finally, in the case of Web 3.0, if the hosting service (e.g. the Pod server) fails, the user can easily move its data to another Pod server; if the application developer fails to believe, the user can cancel the application access rights and replace other applications (if there is a loss of data, it can try to recover from the backup); if there is an error or defect in the agreement, or if the agreement is only intended to be updated, then the service provider only needs to update the amended agreement, unless the entire Web 3.0 structure is modified. In the case of Web 3. If the consensus mechanism is accepted to be in force, the question of the trust loss does not exist; if the application developer loses faith, although the application can be replaced later, the result of the application cannot be reversed (unless there is a Fork, the act itself is a big problem); if the application has a bug update, but if the basic agreement or design is found to be defective, then the problem cannot be resolved (there is only one for Fork); if the use of the application is lost, there is no need for any significant problem of the use (web) (unless there is no concern for the missing of the error. 在我看来,如果Web 3不能解决前面的这些问题,它是不能作为共用的基础架构的。而因为它的区块链的技术本质,在保留它的承诺的前提下,隐私数据的存储、共享和撤销共享似乎是一座不可逾越的高山。 In my view, if Web3 does not solve the problems that lie ahead, it cannot serve as a shared infrastructure. Because of the technical nature of its block chain, the storage, sharing and withdrawal of privacy data appears to be an impenetrable mountain, while preserving its promise. 也许可以将一些区块链技术结合进来,用来改进目前的如Solid存在的一些缺憾。结合的核心是利用区块链的特性,尤其是不可伪造性,来存储一些Web
3.0中会遇到的数据。但主次不能颠倒,以Web 3.0为基础,而不是以Web 3为基础,否则会引入前述的Web
3(暂时或永远)难以解决的缺陷。 Perhaps some block chain techniques could be combined to improve some of the current shortcomings, such as the one in Solid. The core of the integration is the use of the characteristics of the block chain, especially its non-false nature, to store some of the data that will be encountered in Web 3.0. But the priority cannot be reversed, based on Web 3.0 instead of Web 3, which would otherwise introduce the previously mentioned Web 3 (temporary or permanent) defects. 比如在使用数据的时候,或许可以使用区块链记录访问和写入信息,或者说data
lineage或provenance。尤其是当数据使用涉及到多个用户的时候,这一机制的意义更明确——多个Pod服务器联合起来各自作为一个对等点来跑区块链,并共同记录。类似地,授权信息也可以一并记录,以备日后查询。 For example, when using data, it may be possible to use block chains to record access to and writing of information, or data lineage or progress. Especially when data are used with multiple users, this mechanism is more explicit — multiple Pod servers combine to run the block chain as a peer and to record it together. Similarly, authorized information can also be recorded together for subsequent queries. 当然,这其实也不是非区块链不可,因为核心是需要交叉认证/签名,而这一技术并非区块链发明的。类似地,许多其他「可以」用区块链进行的功能也都未必一定需要区块链(比如保障数据始终可用可以通过类似Internet
Archive的东西)。所以究竟是否有必要使用区块链也是一个值得讨论的话题。 Of course, this is not necessarily a block chain, because the core is the need for cross-certification/signature, and the technology is not invented by the block chain. Similarly, many other functions that can be performed with the block chain do not necessarily require a block chain (such as guaranteeing that data can always be used through something like the Internet Archive). 前面主要是在技术层面讨论Web 3.0和Web 3。但如何落实和推广则又是另一个问题了。 Web 3.0 and Web 3 are discussed at the technical level, but implementation and replication are another issue. 如前面所说,Web 3的宣传能力很强,已经让大多数人不加思考地认为它就是未来了。而且它也有盈利点,或者说炒作点,所以在商业上也站得住,可以持续有资金投入并维持开发。不得不承认,在这一点上,金融就是更厉害。 As stated earlier, Web3 has a strong propaganda capacity that has led most people to think that it is the future without thinking about it. And it has a profit point, or one that is preposterous, so it can stand commercially, and it can sustain investment and sustain development. Web
3.0这边则是另一种现象。因为它本身要颠覆现有的盈利生态(广告、封闭花园),而又没有直接提供一个新的盈利生态(不像区块链的概念本身就被炒作出来了盈利点),所以开发和推广速度很有限。而由于我们所处的社会时代限制,缺少商业利益推动的东西大多都会失败,所以Web
3.0需要尽快寻找到解决方案。技术优秀但推广失败的案例实在不少。 Web 3.0 is another phenomenon. Because it itself is about to destabilize the existing profitable ecology (advertisement, closed gardens), without directly providing a new profitable ecology (as the concept of a block chain itself is being fired), the pace of development and dissemination is limited. 而目前的Solid系统也有一些缺陷,尤其是关于推理部分的实现很有限——本身暂时不支持,故而App需要通过Comunica库(执行SPARQL查询)或自己执行推理。另外教程、文档和示例等信息也不够好或很有限,在这些方面亟待加强。 And the current Solid system has a number of shortcomings, especially with regard to the limited realization of the reasoning component – which is not supported for the time being – and therefore the App needs to execute the reasoning either through the Comunica library (executing SPARQL queries) or by itself. The information on lessons, documents, and examples is not good enough or limited, and needs to be strengthened in these areas.
注册有任何问题请添加 微信:MVIP619 拉你进入群

打开微信扫一扫
添加客服
进入交流群
发表评论