对 Web3 堆栈的一些观察


译文。

Web3 堆栈图示,这是一次尝试。考虑到 Web3 生态系统的广阔,这个图几乎肯定是不完整的,并可能有一些不准确。

在本文其余部分,我将重点介绍我从该图提取的一些最有趣观察结果。

核心堆栈(The Core Stack)

核心开发堆栈实际需要为 dapp 开发者提供什么?

它必须提供有序,有效交易的单一权威分类账( a single canonical ledger of ordered, valid transactions )。

P2P 层,共识层,状态转换器( state transition machine)层共同提供这些功能。

相对于构建图右可选组件(optional components)的团队数量,构建图左组件的团队数量较少。包括可选组件,不包括互联网协议,从堆栈底部向上移动:

  • Oasis Labs 正在构建一个中立平台 Ekiden ,它将允许许多链——支持私有,链下,基于 TEE 的计算。
  • Handshake 正在构建去中心化 DNS 。考虑到 OS-defaults for DNS,获取采用将非常困难。
  • Monero 正在构建 Kovri,以支持节点之间的 privacy-preserving packet routing ,从而保证 IP 级隐私。Kovri 将支持许多链。
  • BloxRoute 正致力于 chain-agnostic block delivery network。
  • 以太坊基金会构建了 DevP2PProtocol Labs 构建了 LibP2P 。大多数新链都正采用这两个框架中的一个,甚至有关于以太坊转向 LibP2P 的谣言。
  • 以太坊Polkadot 正致力于全状态分片。
  • 有超过十二个团队在共识层进行实验:
  • Leader-based blockchain consensus
  • Bitcoin 及 Bitcoin Cash - ASIC-optimized proof of work (POW)
  • 以太坊 1.0,Monero,Zcash,其他 - ASIC-resistant POW
  • Kadena – braided POW
  • Chia – 时空证明(proof of space and time [POST] )及时间流逝证明( proof of elapsed time [POET])
  • Filecoin - POST with useful data
  • 以太坊 2.0 - Casper TFG proof of stake (POS)
  • Thunder – POS with POW fallback
  • Decred – hybrid POW/POS
  • Polkadot – Honeybadger POS
  • EOS – delegated proof of stake (DPOS)
  • Tezos – 另一种 DPOS 变种
  • Tendermint – 另一种 DPOS 变种
  • Solana – 历史证明(proof of history [POH])
  • Dfinity – threshold relay + probabilistic slot consensus
  • Algorand – byzantine agreement with leader election (BA⋆)
  • Leaderless blockchain consensus
  • Ripple Consensus Protocol
  • Stellar Consensus Protocol
  • Avalanche
  • Block DAGs
  • Byteball – Byteball Main Chain Consensus
  • Hashgraph – Hashgrah Consensus Protocol
  • DAGlabs – Spectre
  • Blink – Blink Consensus Protocol
  • Spacemesh – POST for committee selection, then tortoise + hare
  • 有一些主要的状态转换器
  • 以太坊虚拟机(EVM) - 以太坊1.0,EthermintHashgraphWANchain,及其他
  • Web Assembly Virtual Machine (WASM) – Dfinity, EOS, Polkadot, 以太坊 2.0
  • Direct LLVM exposure – Cardano, Solana
  • Custom state transition machines:Kadena,Tezos,Rchain,Coda

这个列表提出了一个问题:相对核心堆栈的其他层,为什么有那么多团队致力于共识层?

明确答案是,那是钱之所在。

为什么所有价值都聚集于共识层?

共识层是区块链的最大瓶颈,共识方案受到基本权衡的限制。此外,共识方案是相斥的:单一链不能同时部署两种共识方案(A single chain cannot employ two consensus schemes simultaneously)。协议设计师们认识到比特币 POW 的局限性,并看到了构建庞大的全球化数字储备资产的机会,因此,参与了将价值数十万亿美元的市场的理性竞争。

目前为止,可以合理地认为,鉴于可扩展性困境,没有人建立一个能够提供基本 Pareto 改进的共识算法( consensus algorithm that delivers a fundamental Pareto improvement)。大多数在共识层进行创新的团队,都在为某些用例集,选择最佳平衡点,做着基本赌注。

如果一个团队确实提出了代表基本 Pareto 改进的机制,我们怎么知道呢?简单答案是,为给定级别的区块生产去中心化量化吞吐量(  The simple answer would be to quantify throughput for a given level of decentralization of block production )。Dfinity,Algorand,Solana 等团队认为这是可能的,尽管 Vitalik 不这么认为

有一个合理观点认为,共识算法可以被复制(consensus algorithms can be copied)。虽然这在技术上是可处理的(参见 Cosmos with the EVM on Tendermint ),但在政治上可能无法达成改变现有链上共识算法(it may not be politically achievable to change consensus algorithms on existing chains),尤其是在具有紧耦合链上治理的系统中。链上治理越紧耦合,越难以说服根深蒂固的利益改变(试试说服 21 个EOS 区块生产者中的一个放弃其中一个令人垂涎的位置,以获得更去中心化、同等性能的理论系统)。这正是为什么以太坊可以放弃 POW 转向 POS ,原生 POS 链不太可能愿意做出类似重大变化。

我们正看到核心堆栈另一层的一些实验是,状态转换器层。不基于 WASM 构建的团队,往往对区块链状态转换器应该做什么,不应该做什么,有非常明确的看法:

  • Kadena 认为,智能合约必须是人类可读的( human readable )。
  • Tezos 认为,所有智能合约都必须经过形式化验证。
  • Rchain 认为,智能合约应跨 dapp 链并行运行( smart contracts should run concurrently across dapp chains),并形式化验证。
  • Coda 认为,一切都必须通过 SNARKs 运行,以确保即使很小的节点,也可以验证链的完整性,从而最大化“永久保持最大去中心化”的可能性( maximizing the probability of maintaining maximum decentralization in perpetuity)。

在状态转换器层,最有趣的观察是:1)许多主要项目已达成共识使用 WASM(尽管事实上,WASM 从未打算过被区块链使用); 2)Kadena,Tezos,Rchain 和 Coda 所正投注特质程度。

因为在加密领域,所有都是开源的,所以可以考虑,网络效应与堆栈每一层相关。例如,EVM 已达到临界量,并由于为 EVM 构建的工具/开发者教育/库等,EVM 现在具有网络效应。这正是为什么许多其他项目--Hashgraph,Cosmos Ethermint,Wanchain,RSK,Blink 等都决定采用 EVM ,尽管以太坊本身想要离开 EVM(Ethereum itself wants to move off of the EVM)。

在实践中,我对“状态转换器可跨链移植”(state transition machines are portable across chains)的观点持怀疑态度。就 EVM 而言,甚至以太坊基金会都不想保留它(In the case of the of the EVM, not even the Ethereum Foundation wants to keep it around)。我的感觉是,开发者通常不希望用 solidity 编写代码,但他们只能这样做,因为在区块生产的去中心化及开源软件开发方面,他们是以太坊意识形态倡导者。如果我的假设是正确的,采用 EVM 的非以太坊链将不会受益于“ EVM 的网络效应”(non-Ethereum chains that adopt the EVM will not benefit from the “network effect of the EVM”)。

但就 WASM 而言,情况可能有所不同。因为大多数主要的加密团队,都希望站在「构建和维护 WASM 的巨头」肩膀上,实际上可能存在一种可移植的跨链网络效应,围绕 WASM(WASM 作为区块链状态转换器) 构建( there may in fact be a portable, cross-chain network effect that builds around WASM as the state transition machine for blockchains)。

如果围绕 WASM 的这种网络效应显现出来,那么开发独一无二状态转换器的团队将难以长期与之竞争。

扩展核心堆栈( The Extended Core Stack )

有一些元素不是,也不应该是基层链的一部分,并且尚未被认为是 dapp 开发所必不可少,但我相信,它将成为开发堆栈的核心组件。上移堆栈:

  • 许多团队正在构建侧链。比特币中最值得注意的实现是, drivechainsLiquid。在以太坊宇宙中,最重要的实现是,plasma 框架内的 SKALECosmos Ethermint chains 作为 sovereign dapp chains 。
  • 比特币中,有许多团队致力于支付通道和状态通道网络,最著名的是 Lightning LabsBlockstream。在以太坊生态系统中,是 RaidenCeler 。许多人,尤其是比特币社区内的人,认为这种方式是提升扩展性的唯一途径。
  • Interledger Protocol(ILP)在几个月前完成。一些团队正在使用它来实现跨链互操作性。大多数开发者和投资者(包括我在内)都没有对 ILP 给予足够重视,直到最近。然而,ILP 成为 Web3 堆栈(类似于此)中最重要层,完全是貌似合理的( it’s entirely plausible) ,因为价值聚集于 BTC 等安全链,而商业则发生在更功能性的链上如以太坊。
  • 据我所知,The Graph 是唯一一个为以太坊构建去中心化查询层(decentralized query layer )的团队。以前,在以太坊上建立 dapp 的每个团队,都必须构建一个专有的索引基础架构(proprietary indexing infrastructure)。
  • BigchainDBOrbitDBBluezelle 等许多团队,正在构建不可变更的结构化数据库(immutable structured databases),作为无需许可的独立链(permissionless, free standing chains)。考虑到使用结构化数据库可以提升性能,看看开发者是选择原生性地使用这些系统,还是像 SKALE 这样的团队,将这些开源系统作为 plasma 链来实现,这将会很有趣。

通常,扩展核心堆栈( extended core stack ),远没比核心堆栈成熟。基本上,这些部件都没有任何有意义的规模生产。因此,dapp 开发者现在暂时还不能使用这些组件。

随着扩展核心堆栈( extended core stack )的成熟,我预计, dapp 开发速度将大幅提升。 Dapp 开发者不应该必须考虑这些组件要解决的任何问题,但考虑到堆栈的当前状态,他们不得不构建自己的堆栈组件,这是低效的。

可选组件

正如有云 APIs 用于任何,从发送邮件(Sendgrid),到SMS(Twilio),到映射(Google Maps ),将有大量“去中心化库”(以可选去中心化组件的形式)。其中,每一个都将执行一组独特功能,dapp 开发者可以选择将这些功能纳入。

这些可选组件服务,只有其中少数在主网上,一些例子包括:Livepeer,0x,Kyber,Storj,Sia,Oraclize 和 Civic 。但构建这些组件的大多数团队,还没有发布可用于生产的工具( production-ready tools)。

这至少部分地解释了 dapps 量的不足:如果没有可用库,很难构建有用的 dapp。没有可用库,每个 dapp 都必须重新发明轮子。

同样有趣的是,认识到,这些组件中的绝大部分,都是为以太坊生态系统而构建。一些团队,例如 KeepTruebit ,已经公开讨论过支持 Dfinity 作为跨链服务( have publicly discussed supporting Dfinity as cross-chain services)。但今天加密生态系统中的绝大多数基础设施正在构建,至少支持 EVM ,更广泛地支持以太坊生态系统。

接下来的一年,随着 EOS,Tezos,Kadena ,Dfinity ,Solana ,Tari ,Hashgraph 等推出并完善自己的链,他们将争夺 dapp 基础设施组件建设团队的关注。无缝支持跨链开发所需的工具,目前肯定还没到位,因此构建核心链的团队需要竞争,以使这些 dapp 基础设施提供商支持其各自的链。

如上所述,像 WASM 这样的状态转换器的网络效应,可能可大部分跨链移植,如果没有任何开发者的努力,而 100%可移植,这是不可能的。有趣的是,可以看下一下,基层链团队是否可以无缝移植垮链基础架构(porting infrastructure across chains seamless),以吸引为以太坊而构建的第一批基础架构开发者。

堆栈顶部

在大多数堆栈图中,应用是堆栈顶部。但基本上,所有加密开发焦点都是后端,而非前端。因此,有一些元素存在于 Web3 堆栈中的 dapp 之上( there are a few elements that live above the dapp in the Web3 stack )。

有趣的是,加密领域中,几乎没有人谈论去中心化应用托管(decentralizing application hosting)。这一点特别令人好奇,因为现在,在每个 dapp ,这层基本上是中心化的。它是中心化的,或因为托管应用的 Web 服务器是中心化的,或因为有一个下载链接用以下载应用并将其安装到客户端设备上,将该生态系统推回到围墙花园模型,根据定义,该模型是中心化的。在一个理想世界,应用主机(application host )可以同时去中心化,及及时交付(delivered just in time),一种现代化的 Web 应用。

为什么基本上没有针对去中心化应用托管的解决方案?我可以确定两个原因:要么这个层去中心化无关紧要,要么这是一个很难的问题,以至没有人愿意去解决它。我想答案是两者兼而有之。

在任何 dapp 中,只要数据库和资产存储充分去中心化,应用主机是否中心化就无关紧要。如果政府通过关闭应用主机来审查 dapp ,则 dapp 作者可以只开源前端代码,让其他人启动一个新主机 ,提供一个拥有同样后端的 portal 。这可能会像 2000 年代的 torrent trackers 那样发挥作用:关闭一个,又有 5 个在其他地方出现。

但如果你可以去中心化一个应用主机呢?由 Ripple 发起的开源项目 Codius 试图在 2015 年, Ripple 停止为其分配资源之前,做到这一点。最近,Ripple 前 CTO Stefan Thomas 离开了 Ripple,开始启动 Coil —— 重新捡起 Codius 所停止的工作 。看看这个堆栈层的实际工作方式,以及将其集成到现有 DNS( 假定是中心化的,可信应用主机) 的可能结果,这将非常有趣。

最后,堆栈顶部是终端用户所实际与之交互的:dapp 浏览器。这包括用于以太坊的 Metamask 和 Toshi ,以及用于 EOS 的 Scatter

第 2 层扩展解决方案

我已经在本文中讨论了这些层,但我认为,值得在扩展区块链的语境中重新审视它们。

首先是分片。基于以太坊和 Polkadot 团队所面临的挫折,分片似乎是实施中最具技术挑战性的扩展解决方案。即使它可行,也不清楚它是否会成为许多人(包括我自己在内)所希望的圣杯。分片的最大问题是跨分片延迟(cross-shard latency)。这可能严重限制了实际设置中分片的功效。此外,分片会产生各种下游问题( downstream problems ),例如:客户端可能不知道,根据用户查询(depending on a user query),可以从哪个分片读取数据。

第 2 层扩展解决方案 —— 侧链,支付和状态通道网络,ILP ——遭受相同的普遍问题。随着侧链的激增,当用户忘记他们的资产所在链时,事情就会变得混乱。支付和状态通道网络存在显著的延迟挑战( latency challenge),并产生与流动性路由( liquidity routing ),货币传输和隐私相关的各种新问题。鉴于价值存储链,比特币,有 10 分钟的区块时间,ILP 将面临真正的延迟挑战。

使这一切变得更加混乱的是,想象一个用户在一个支付通道中拥有资金,这个支付通道存在于一个分片中,她想将那些资产移入另一个分片上的一个侧链。

事情在变得清晰之前,将变得更加混乱。

元观察(Meta Observations)

也许 Web3 堆栈最迷人的部分,就是堆栈本身的去中心化程度。大多数传统的应用开发堆栈—— Windows,iOS,Android —— 几乎都是完全中心化,只有少数第三方开发者库和服务已达到临界质量。这与 Web3 堆栈形成鲜明对比,Web3 堆栈由全世界数百个团队同时构建,虽然从理论上讲,除了核心以太坊协议所提供的之外, dapp 开发者不需要任何东西,但实际上,dapp 开发者需要以太坊基金会没有也不会构建的各种工具。这是“加密领域是集市顶峰”的最终证明。

考虑到 Web3 堆栈中,有多少仍处于开发阶段,难怪 dapp 的使用非常糟糕:考虑到今天的 Web3 堆栈状态,几乎不可能构建可用的 dapps。像许多其他技术一样,Web3 堆栈将进展缓慢,然后在超过一些临界点后,迅速进展。

在 Web3 堆栈实现某种程度的可用性,稳定性和功能完整性之后不久,dapp 革命就会发生。我想这是 2-3 年后的事了。

 

我写这篇文章是为了寻求反馈。我确信我描述的 Web3 图表不完整。如果你有任何想法,意见或反馈,请发送邮件至 research@multicoin.capital 。

感谢 Albert WengerNick GrossmanJosh Nussbaum 对这篇文章的反馈。

发布这篇文章后,我发现 Web3 FoundationTrent McConaghy Stephen Taul 已经写过 Web3 堆栈。

译文仅供参考。

原文:https://multicoin.capital/2018/07/10/the-web3-stack/
作者:KYLE SAMANI
编译:椰子加农炮,热爱 @ 币未来 biweilai.com