摘要
如今,大部分网络内容和用户数据都由几家大型科技公司控制。越来越多的运动将这种控制权均匀地转移到整个互联网上,这代表了向Web3的过渡。 为了使这一运动取得成功,必须开发技术和协议以使Web用户能够安全地使用Web,而无需信任任何其他用户。也就是说,当今的网络是结构化的,因此用户必须信任这些公司,因此尚未开发出不信任的替代方案。从广义上讲,这一运动强调开发点对点网络、区块链和分布式存储系统。这些系统利用密码原语来保证安全性。
I.简介
本次调查希望描述web3技术的广度和基础知识,这些技术结合在一起,试图使网络完全去中心化。由于容错性、抗攻击性和抗共谋性,通常鼓励分散系统。因此,大多数去中心化网络协议往往依赖于分布式系统或点对点网络,这有助于对抗大型科技公司带来的政府审查和垄断。然而,就目前而言,网络是相当集中的。因此,在最近的过去,有许多研究人员开发了去中心化协议和应用程序,以实现去中心化网络的目标。这项调查将记录这些研究人员取得的重大进展。
本次调查的其余部分安排如下:第二部分讨论了Web的历史以及向Web3过渡的动机;第三部分讨论了区块链,重点是比特币的技术细节以及后来改进比特币的研究;第四节讨论去中心化存储;第五节介绍了与Web3相关的其他研究方向;第六节结束了这项调查。
II.历史和动机
各种各样的网络可以分为两个部分:集中式(或星形)和分布式(或网格或网状网络)。 在实践中,星形和网状组件的混合用于形成通信网络。 Paul Baran是数据包交换的两位独立发明者之一,他将这种网络称为“去中心化”网络,因为并不总是需要完全依赖单点 [1](图1)。
尽管Internet是建立在分布式协议之上的,但Web需要围绕几个精心策划的服务平台进行整合,以便让人们日常使用变得实用。这种整合趋势对网络的两个关键功能,即网络发布和内容发现 [2] 产生了严重影响。因此,在今天的网络中,许多利益相关者对公众可以创建和消费的内容产生了巨大的影响。
在现代文献中,去中心化网络是基础设施和其他技术的控制可以分布在贡献者之间而不是由大型(“中央”)参与者支配的网络。这种控制有多种形式,例如拥有网络基础设施(例如服务器或门户)的所有权、数据的所有权、对网络决策的影响、删除内容的权力,或决定谁可以访问网络的共享功能、信息和知识。例如,Facebook是一个集中式网络,其中数据由中央实体控制,而亚马逊的云是一个分布式网络,其中数据跨网格存储,但仍由中央实体控制 [3]。

图1. 网络的多样性©1964 IEEE [1]。
A. 重新去中心化
由于像比特币这样的加密货币的流行,在过去十年中,围绕去中心化系统领域的兴奋日益突出。比特币是一种没有中央控制点的支付系统,它使用一种新颖的点对点网络协议来就分布式交易账本——区块链[4]达成一致。因此,区块链技术描绘了一幅世界图景,其中不受信任的计算机网络可以协调以提供重要的基础设施,如分布式存储和隐私。这些去中心化系统的倡导者提出相关技术作为“重新去中心化”网络的前进方向,通过将发布和发现从少数公司手中转移到用户手中 [5]。例如,Starling Lab在他们与路透社的“78 天”项目1中证明,许多与人类相关的信息可以通过去中心化系统保存下来。在这个项目中,他们解决了安全捕获、存储和验证数码照片(如识别深度伪造品)的挑战。
Starling框架使用Filecoin、IPFS、Hyperledger Fabric和GUN生态系统 (gun.eco) 将数码照片安全地存储在支持使用内容真实性倡议 (CAI) [6]进行身份验证的分布式网络上。因此,正如张龙鹏在他们的报告[7]中总结的那样,“随着群众通过互联网获得民主,去中心化可能是实现这一目标的唯一途径。 一个独立的网络,为人们提供他们想要的在线自由。”
然而,与暗网 [8] 类似,去中心化的网络也将使执法几乎不可能。例如,Library Genesis (Libgen) 和Sci-Hub等影子库现在使用 Cloudflare2支持的基于IPFS的点对点分布式库系统,以避免法律攻击(域删除、服务器关闭和国际女性猎杀/搜捕)[9]。此外,借助区块链技术和去中心化应用程序,版权的执行将不可能,因为那些在去中心化互联网上买卖未经授权的受版权保护材料副本的人不会受到法院禁令的约束 [10]。
B. 自认证Web协议
1989 年,Tim Berners-Lee和Robert Cailliau共同发明了万维网,其中一个典型的用户(自托管)网站将由超链接文本、文件、应用程序和其他数字对象组成,这些对象可以被网站访问者阅读和/或下载,现在称为“Web 1.0”或“只读网络”。当前的网络,称为“Web 2.0”(由Tim O'Reilly在2007年 [11] 创造的术语)或“读写网络”(由Richard McManus在2003年创造的术语)在2000年代开始发展 当新平台出现时,允许用户与内容进行交互,以及与其他平台(如Facebook和eBay)进行交互。然而,它并没有捕捉到Web成为公共和私人数据的安全、去中心化交换媒介的最初愿景[12]。因此,重新去中心化的网络被称为“Web 3.0”或“DWeb”。
1) Web 3.0:“Web 3.0”或““post-Snowden web”一词由Polkadot创始人和以太坊联合创始人Gavin Wood在2014年创造,指的是“基于以太坊的去中心化在线生态系统 [14]”[15]。根据Wood的说法,“Web 3.0 与加密货币、区块链或代币经济学无关 [16]。Web 3.0是关于去中心化、开放和透明的”[17]。2017年,Web3 Foundation成立,发布了5级(L0到L4)Web 3.0技术栈(图2)。
2) DWeb:“DWeb”或“去中心化和分布式 Web”一词由Internet Archive创始和Alexa Internet联合创始人Brewster Kahle创造在2015年,指 “使用Maelstrom[19]、区块链(以太坊、Namecoin、Storj)、比特币支付、I2P5、IPFS、Tahoe-LAFS和WebRTC等技术构建的可靠、私密和有趣的网络”[20 ]。2016年,DWeb社区 [21] 成立,组织各种峰会和营地,以促进构建去中心化网络所需技术的开源开发,如去中心化存储、托管、域名、数据、身份、数据传输层或支付。例如,分布式新闻 API[22] 用于发布名为COMPOST8的在线杂志,通过将其播种到Hypercore [23]和IPFS在WWW和DWeb上,并且可以在 Brave Browser[24]中查看。
然而,有许多人认为网络的“区块链化”[25] [26],使用区块链技术(如加密货币)来验证交易、支付服务费用和认证NFT等内容是一种大欺诈,因为在他们看来, “Web3 只是为了证明底层加密货币的合理性而增加了一层额外的复杂性”[27]。事实上,还有其他项目,如命名数据网络 (NDN)9,旨在通过替换现有的 TCP/IP 框架来实现某种程度的去中心化,而不使用基于区块链的技术;NDN和基于区块链的解决方案之间的比较可以在[28, §II]和[13, §5.7]中找到。 此外,还有像Beaker浏览器这样的项目,它们使用Dat协议(而不是IPFS)来支持P2P网站托管而不使用区块链 [29]。
因此,Jay Graber[30]给出了以下定义,以强调Web3中存在多于区块链的事实:
- Web1 - 主机生成的内容,主机生成的权限。
- Web2 - 用户生成的内容,主机生成的权限。
- Web3 - 用户生成的内容,用户生成的权限。
后者是通过基于加密用户标识符和内容寻址数据的“自我认证协议”实现的,这有助于去中心化。 “Web3=DWeb”的定义还包括较旧的协议,例如Git、PGP、Tahoe-LAF 和 BitTorrent,以及较新的协议,例如IPFS、Polkadot、Hypercore和Secure Scuttlebutt (SSB)。

图2.Web 3.0技术堆栈©2022 Web3 Foundation[18]
III.区块链
区块链通过提供公共和不可变的数据存储促进了Web3的发展。

图3. 区块链的架构,其中红色虚线的内容不是原始比特币设计的一部分©2019 ACM[31]。
没有类似结构的去中心化系统将无法正常运行,因为其用户将无法验证系统的状态。在这种情况下,系统的用户在最好的情况下会缺乏对系统有效执行他们请求的操作的信心。显然,笼罩在不确定性中的系统是无效的。最近,在区块链技术方面取得了许多进步,其中大部分是基于对第一个区块链比特币的批评和改进。因此,接下来将讨论比特币的基本特征,然后将承认并简要讨论比特币的改进。但是,由于无法在这篇短文中捕捉到区块链作用的真正本质,我们鼓励读者也阅读经典论文,如[32]、[33]、[34]、[35]、[ 36] 和 [37],像[38]和[39]这样的简短说明性文章,以及像[40]和[41]这样的书籍。
A. 比特币
比特币区块链是为单一应用程序创建的:去中心化货币。在这种情况下,权力下放意味着政府无法控制货币的供应或状态,并且不需要银行来完成交易。创建一种不需要任何中心化实体的货币是一项艰巨的任务,主要原因有一个:收款人必须能够验证付款人是否真的有足够的钱来完成交易。更具体地说,(1) 收款人必须能够验证付款人用真钱支付,(2) 收款人必须能够验证付款人用付款人拥有的钱付款,以及 (3) 收款人必须能够验证付款人尚未花费他们发送给收款人的钱。在集中式系统中,银行可以轻松跟踪客户拥有多少资金,并可以通过中央银行验证所述资金的真实性。然后,此信息可用于保证交易的完整性。但是,一个不使用中心化第三方来完成交易的去中心化系统必须使其用户能够自行验证交易。这只能通过准确且公开的交易历史来完成,以便收款人可以验证他们是用真钱支付的。这就是为什么将区块链用于比特币的原因。
区块链是跨计算机网络共享的数据库[42]。它被设计成一个不可变且仅附加的结构。如果没有这个属性,过去的交易可能会被抹去或伪造,从而导致系统完全失灵。下面是区块链结构的实现细节来解释为什么用户可以信任它的不可变属性。区块链将交易分组为“块”,其中每个新块都连接到前一个块以形成“链”。该链是通过在新块的数据中包含前一个块的加密哈希来创建的。因此,如果恶意行为者试图更改块的状态(即修改之前的交易),该区块的加密哈希值将改变,因此它与下一个区块的链接将被破坏。因此,为了修改前一个区块,恶意行为者必须更新每个后续区块的哈希链接以创建有效链。因此,区块链的安全性取决于创建和更改区块的难度。因此,比特币区块链使用“工作量证明”协议,该协议涉及重复计算两个参数的加密哈希,即块本身和生成的数字,直到哈希值小于阈值[43]。通过建立足够低的阈值,网络可以假设已经投入了大量工作来找到该数字。因此,恶意行为者必须花费大量时间在他们想要更改的块之后重新创建整个链。因此,区块链被视为不可变的数据结构(图4)。

图4. 区块链结构概述,包括哈希链接、工作证明随机数和交易[43]。
每笔比特币交易都是数字货币的所有权从付款人转移到收款人。要转移硬币,需要计算收款人公钥和硬币先前状态的哈希值。然后,付款人使用他们的私钥签署这个哈希来确认所有权的转移[43]。因此,局外人能够查看硬币的先前状态,以验证当前状态是使用有效的公钥/私钥对创建的(图5)。

图5. 硬币在用户之间转移时状态的可视化表示[43]。
B. 多样化的区块链应用
如前所述,创建比特币是为了支持一项服务:金融交易。 然而,Web3 指的是去中心化整个网络,而不仅仅是其应用程序的一小部分。 因此,在引入比特币后不久,创建了另一个区块链,称为以太坊 [44],以服务于广泛的应用程序。 以太坊区块链原生支持智能合约,允许用户编写可存储在区块链上以在需要时执行的代码。
因此,用户可以编写他们想要的任何应用程序并让它在以太坊区块链上运行。 例如,可以编写智能合约来创建子货币、去中心化自治组织、信誉系统等等(图 6)。
C. 可扩展性
比特币在扩展能力方面有两个主要弱点。首先,由于与存储和验证交易相关的大量开销,比特币无法处理图6中的数量。支持全球经济所需的交易。其次,由于比特币使用计算密集型和幼稚的工作量证明协议,因此由于能源成本飙升,挖矿能力可以集中。下面对这两个问题进行讨论。

图 6. 用于实现子货币的示例以太坊智能合约 [44]。
1) 比特币闪电网络:比特币每秒可支持约 7 笔交易,而Visa每秒可处理约47,000笔交易[45]。显然,比特币区块链必须能够处理更多的交易,才能成为一个可行的全球系统。一种解决方案,比特币闪电网络[45],通过仅直接在区块链上处理一小部分交易来解决这个问题,这允许系统中的交易比以前更多。虽然处理远离区块链的交易似乎会破坏系统的安全保证,但可以将这个系统设计成功能性的。比特币闪电网络在两个比特币用户之间建立了链外“支付渠道”。支付渠道是一个共享资金池,其中每个用户拥有的部分能够随着时间而改变。支付通道只需要两个区块链交易:(1)打开通道(用户输入他们共享池的数量)和(2)关闭通道(用户清算他们的池份额)。具有共享支付渠道的用户之间的所有其他交易不需要在区块链上处理;这些交易只通过支付渠道。每次通过支付渠道进行交易时,用户都会生成一个新的公钥/私钥对来对其进行签名。 然后,如果支付通道关闭,他们可以使用区块链上的相应密钥来领取他们的钱。因此,如果两个用户经常进行交易,在他们之间建立支付渠道会显着减少使用的区块链交易数量。
与这些通道相关的一个安全问题是,用户可能会使用先前的状态(即他们拥有比现在更大的共享池部分的状态)恶意关闭通道。为了解决这个问题,每当创建通道的新状态时,每个用户都会透露他们之前状态的私钥,这样如果之前的状态被恶意泄露[46](图7),任何一个用户都可以索取货币。
然而,如果每个用户都必须与其他用户有一个支付渠道,那么可扩展性问题就无法解决。因此,支付必须能够通过第三方之间的支付渠道流动。因此,一种称为哈希时间锁定合约(HTLC) [46]的机制用于保证两端付款不会被转发方窃取的用户。

图7. Alice和Bob[46]之间支付通道的状态转换。
首先,收款人生成一个随机数并计算其哈希值。然后,哈希直接传送给付款人。然后,付款人将付款转发给转发方,但使用与收款人创建的哈希相对应的 HTLC 锁定付款。只有当转发方可以证明他们知道生成哈希的随机数时,转发方才能解锁HTLC。因此,他们将通过其他支付渠道将资金转给最终到达收款人,收款人将在收到付款后显示随机数。然后,每个转发方都可以解锁他们的HTLC来取款(图8和图9)。

图8. Alice将付款转发给Bob(不受信任)以转到Carol。R是随机数,H是它的哈希值 [46]。

图9. Bob将付款转发给Carol,因此Carol可以透露R,因此Bob可以从Alice [46]的付款通道中索取钱。
2) Plasma:与闪电网络类似,Plasma[47]是一系列合约,在现有区块链(例如以太坊)之上运行,以确保执行,同时确保能够以净结算的合约状态持有资金 /稍后退出。它由设计的两个关键部分组成:将所有区块链计算重新构建为一组MapReduce函数,以及在现有区块链之上进行权益证明令牌绑定的可选方法,并理解中本聪共识激励阻止区块 代扣代缴。Plasma并非旨在快速达到确定的最终确定性,即使交易在子链中得到快速确认,它也需要在底层根区块链上最终确定。然而,使用闪电网络(包括Plasma之上的闪电网络),可以进行令人难以置信的快速更新,并具有合理的局部确定性。
3) Polkadot:Polkadot[48]旨在成为一个完全可扩展和可扩展的区块链开发、部署和交互测试平台。 通常的区块链实现侧重于为潜在应用提供不同程度的通用性的单个链。然而,Polkadot是一种可扩展的异构多链,旨在根本不提供固有的应用程序功能。它被认为是可扩展的,因为它是一组独立的链(例如包含以太坊、Namecoin 和比特币的集合),称为“平行链”,具有集中的安全性和无信任的链间可交易性。Polkadot网络的维护中有四个基本角色:验证者、提名者、整理者和渔夫。 粗略地说,验证者类似于当前PoW区块链的矿池;提名人类似于当今PoW网络的矿工;渔民是独立的“赏金猎人”,其动机是一次性大额奖励,资源需求和带宽承诺较低,类似于当今区块链系统中的“全节点”。收集人为特定的平行链维护一个“全节点”,即他们保留所有必要的信息,以便能够以与矿工在当前PoW区块链上所做的几乎相同的方式创建新块并执行交易。收集人、提名人和验证人之间关系的确切性质预计会随着时间而改变。Polkadot和Plasma的设计有一些相似之处;Plasma构建了一系列子区块链,这些子区块链通过Merkle证明[47]执行状态,而不是使用“渔民”验证器确保区块准确性的结构。
4) 工作量证明的缺点:如前所述,比特币使用简单的基于哈希的工作量证明协议运行。这有两个主要弱点会损害比特币有效扩大规模的能力。首先,工作量证明计算简单;即只需要一个编号和当前区块的基本信息。这导致了“矿池”的流行,其中节点可能有助于在不独立验证交易的情况下找到工作证明[44]。因此,只有池的领导者被认为负责验证交易,这是一种集中化的形式。以太坊提出的一种解决方案使用工作量证明协议,该协议强制矿工包含更多交易数据,从而引导矿工独立验证交易。其次,工作量证明本质上是计算密集型和能源密集型的。随着网络的发展,工作证明变得越来越难,因此需要更多的能量。因此,已经提出了其他协议,例如权益证明[48]、权限证明[48]和存储证明[49],以减少能源使用。
D. 区块链隐私
值得注意的是,比特币不提供内置的、完全匿名的交易。也就是说,由于交易必须公开广播,因此可以将比特币交易追溯到其所有者。用户,无论是个人还是组织,通常不希望公众知道他们的钱去哪儿了或从哪里来。此外,在一个交易可以通过时间追踪到声誉不佳的用户(考虑恐怖组织或受制裁的外国政府)的系统中,一些代币可能不被接受作为付款(即代币不再是可替代的),这是不可取的。Zerocoin[50]和Zerocash[51]建立在Zerocoin的基础上,通过为比特币创建自动化和安全的洗钱协议来解决这个问题。这些协议基于零知识证明的概念,其中洗衣用户能够向其他人证明他们拥有洗过的硬币而不透露他们的身份[31]。
IV.去中心化存储
去中心化存储可以可视化为一个P2P(点对点)服务器网络,它们在全球存储节点网络中存储数据。因此,在真正分散的存储系统中,存储位置和存储管理都是分散的 [3]。
A. 分布式文件系统
InterPlanetary File System (IPFS) 是一种点对点分布式文件系统,旨在将所有计算设备与相同的文件系统连接起来。它结合了重要的P2P属性,如分布式哈希表 (DHT)、文件共享系统 (BitTorrent)、版本控制系统 (Git) 和自我认证文件系统 (SFS)。IPFS的核心原则是将所有数据建模为相同Merkle有向无环图 (DAG) [52]的一部分。有向无环图 (DAG) 是一种图,其中边有方向且不允许循环。Merkle-DAG是一个DAG,其中每个节点都有一个标识符,这是使用SHA256[53]之类的加密哈希函数对节点内容(节点携带的任何不透明有效负载及其子节点的标识符列表)进行哈希处理的结果。已经提出了一个基于区块链的IPFS扩展,称为acl-IPFS [54],它可以通过利用以太坊智能合约处理访问控制列表来提供访问控制(用户可以注册文件,并授予或撤销对它们的访问权限)。
B. 去中心化存储网络
去中心化存储网络 (DSN) 聚合由多个独立存储提供商提供的存储,并自行协调以向客户提供数据存储和数据检索。协调是分散的,不需要受信任的各方:这些系统的安全操作是通过协调和验证各方执行的操作的协议来实现的。 以下是三个流行的 DSN 提供商:
- Filecoin[49]作为 IPFS 之上的激励层,可以为任何数据提供存储基础设施。客户向矿工网络支付数据存储和检索费用;矿工提供磁盘空间和带宽以换取付款。只有当网络可以使用复制证明 (PoRep) 和时空证明 (PoSt) 方案来审计他们的服务是否正确提供时,矿工才会收到他们的付款。
- Storj [55]是一个与Amazon S3兼容的DSN,它假定基于以太坊的STORJ令牌作为默认支付机制。它还支持一个参考架构,该架构支持一个IPFS节点,该节点由使用Nextcloud等服务自托管的去中心化网络提供支持。
- Sia [56]是比特币协议(工作证明)的一个变体,它通过加密合约实现去中心化文件存储。这些合同可用于强制执行客户端和主机之间的存储协议。同意存储文件后,主机必须定期向网络提交存储证明 (PoS)。无论客户端的行为如何,主机将自动使用Siacoin存储文件进行补偿。它还通过Skynet12支持IPFS。
C. 个人数据存储
今天,数据是我们经济中的宝贵资产,我们都从数据驱动的社会中获益。然而,公众越来越关注用户隐私。个人数据存储 (PDS) 通过对数据的存储和共享方式提供更多控制和透明度,使个人能够轻松地重复使用他们的数据。例如,openPDS提出了一种用于自主部署PDS的模型,其中包括一种用于返回数据而不是原始数据本身的计算的机制[57]。事实上,PDS是Tim Berners-Lee为分散WWW[58]发起的Solid项目(社交链接数据)的关键技术组件。此外,区块链可用于设计分散的PDS,其作用类似于不需要信任第三方的自动访问控制管理器 [59]。
D. 去中心化通信
一个开放的、去中心化的消息传递平台对于去中心化网络的成功至关重要。因此,近几十年来开发了几种去中心化即时消息(IM)协议,其中最流行的一种是Matrix协议。Matrix主要由家庭服务器和客户端组成。在这些家庭服务器内部有一个叫做房间的东西,它是一个虚拟环境,消息在参与的客户端之间发送。Matrix的去中心化来自这样一个事实,即每个房间都存储在参与同一房间的每个家庭服务器上。这创建了一个家庭服务器和客户端的联合网络,其中不存在中央服务器 [60]。另一个例子是 Status,它通过Whisper协议和提供消息传递平台也是一个移动界面,用于与运行在以太坊网络上的去中心化应用程序(DApps)进行交互[61]。由于以太坊协议还充当大型分布式密钥库,因此可以借助Whisper通信协议 [14] 在区块链上迁移用户帐户、凭据和声誉。
V.研究方向
让我们看一些与去中心化和web3技术相关的重要研究方向。
A. 智能合约的安全性和隐私性
如前所述,智能合约允许开发人员在区块链之上构建新的应用程序。因此,智能合约研究非常流行,尤其是在与安全和隐私相关的主题中。Hawk[62]与之前讨论的比特币Zerocoin和Zerocash隐私协议类似,致力于通过为智能合约程序员创建一个框架来确保隐私,从而使智能合约交易在以太坊区块链上无法追踪。DEFIER[63]是一种用于分析以太坊区块链历史以发现和分析攻击模式的工具。它检测到数十万次利用尝试,智能合约所有者可以使用它来识别他们的系统是否易受攻击。oyente和Manticore等工具分析智能合约代码以查找漏洞,而名为MAIAN的工具甚至能够生成输入以创建针对已识别漏洞的利用[64]。
VI.结论
在本次调查中,我们总结了Web3的含义和动机,以及它最知名的应用程序。应该清楚的是,安全的Web3应用程序和协议比Web2对应物更难设计,因为去中心化需要公开存储数据,而信任不是保证。因此,必须对整个网络进行重组以适应这些新假设。我们相信我们的调查已经传达了Web3领域正在发生的研究的广度和性质。最后,这些研究人员正在努力构建一个去中心化的网络,该网络至少具有与当前网络一样强大的性能、安全性、隐私等保证。
原文链接:https://www.techrxiv.org/articles/preprint/Decentralization_and_web3_technologies/19727734
---煤油灯科技victorlamp.com翻译整理---