2018年7月10日由KYLE SAMANI@ Multicoin Capital发表,翻译 Effe
到目前为止我还没有看到任何一张Web3 Stack的堆栈图,所以我尝试着描绘了一张。考虑到Web3生态系统的扩展速度,这个图几乎肯定是不完整的,并且可能有一些不准确之处。
本文的其余部分,我将重点介绍我从该图中提取的一些有趣的观察结果。
The Core Stack
开发人员正在开发的Core Stack,真正需要为dapp开发人员提供什么?
它必须提供一个唯一的、权威的账本,这个账本按照顺序记录了所有的有效交易。
“P2P”层、“共识”层和“状态机”层共同提供这些功能。今天,Ethereum和比特币都只提供这些功能,虽然Ethereum核心协议最终将包括“分片”。
相对于构建图右侧的可选组件的团队数量,有较少的团队在图的左侧构建组件。排除“IP协议”层,我们从堆栈的底部向上看(包括可选组件):
Oasis Labs正在构建Ekiden,这是一个中立的平台,允许多链支持基于TEE的、隐私的、链下的计算。
Handshake(没有链接)正在建立去中心化的DNS。鉴于操作系统自带DNS,获得采用将非常困难。
Monero正在构建Kovri,以在节点之间实现保护隐私的数据包路由,从而保证IP级别的隐私。Kovri将支持多链。
BloxRoute正致力于“与链无关”的区块交付网络。
Ethereum基金会开发了DevP2P,Protocol Labs开发了LibP2P。大多数新的区块链正在采用这两个框架中的一个,甚至有关于Ethereum将转向LibP2P的传言。
有超过十二个团队在“共识层”进行实验:
基于领导者的区块链共识
BTC和BCH- ASIC-optimized proof of work (POW)
Ethereum1.0、Monero、Zcash、及其他- ASIC-resistant POW
Kadena– braided POW
Chia- proof of space and time (POST) and proof of elapsed time (POET)
Filecoin- POST with useful data
Ethereum2.0 - Casper TFG POS
Thunder- POS with POW fallback
Decred - hybrid POW/POS 混合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⋆)
无领袖的区块链共识
区块有向无环图(Block DAG)
Byteball - Byteball主链共识
Hashgraph - Hashgrah共识协议
DAGlabs - Spectre
Blink - Blink共识协议
Spacemesh – 用于选择委员会的POST,然后是tortoise + hare
有一些主要的状态机:
Ethereum虚拟机(EVM) - Ethereum1.0,Ethermint,Hashgraph,WANchain,及其他
Web Assembly Virtual Machine(WASM)-Dfinity,EOS,Polkadot,Ethereum 2.0
Direct LLVM exposure -Cardano、Solana
自定义状态机
从这个列表可以看出一个问题:相对于核心Stack的其他层,为什么有那么多团队在“共识层”上工作?
显而易见的答案是因为:钱在这里。
这自然会导致一个问题:为什么所有的价值都会在“共识层”产生?
“共识层”是区块链中最大的瓶颈,共识方案受到基本权衡的限制(不可能三角)。此外,共识方案是相互排斥的:单一区块链不能同时采用两种共识方案。全球的协议设计领导者们承认比特币POW的限制,并看到建立一个巨大的全球数字储备资产的机会,于是在这个价值数十万亿美元的市场中展开竞争。
到目前为止,可以这样认为:鉴于“不可能三角”问题,尚没有任何一个团队建立了能够提供基本“帕累托改进”的共识算法。大多数在共识层进行创新的团队仅仅是为某些应用子集选择了“最佳权衡”。
如果一个团队确实提出了代表“帕累托改进”的机制,我们怎么能确定呢?简单的答案是在一个给定的去中心化的区块生产水平上,来对吞吐量进行量化。Dfinity,Algorand,Solana和其他团队认为这是可能的,尽管Vitalik 不这样认为。
共识算法是可以复制的:虽然这在技术上是可管理的(参见Cosmos的具有EVM 的Tendermint共识算法),但在政治上可能无法实现(改变区块链上已有的共识算法),尤其是在具有“紧耦合”的“链上治理”的系统中。越是紧耦合的链上治理,就越难以说服根深蒂固的利益发生改变(比如试图说服21个EOS区块生产商中的一个放弃他们的一些既得利益,以获得提供同等性能的更去中心化的理论体系)。这正是Ethereum可以放弃POW转向POS的原因(不是紧耦合的链上治理),而原生POS区块链不太可能愿意做出类似模式的变化。
核心Stack的另一层我们正在进行相当多的实验,即“状态机层”。那些没有使用WASM的团队倾向于对区块链状态机应该和不应该做什么有非常尖锐的看法:
Kadena认为智能合约必须是可读的。
Tezos认为所有智能合约都必须经过正式验证。
Rchain认为智能合约应该“跨DAPP链”同时运行并正式验证。
Coda认为一切都必须贯穿SNARKs,以确保即使很小的节点也可以验证链的完整性,从而最大限度地保持永久的最大去中心化的可能性。
状态机层最有趣的观察结果是:1)许多主要项目已达成共识以使用WASM(尽管事实上WASM 从未打算被区块链使用); 2)Kadena,Tezos,Rchain和Coda正在下的“赌注”的特殊程度。
因为加密网络中的所有内容都是开源的,所以可以考虑Stack的每一层都具有网络效应。例如,EVM已达到使用规模的临界值,并且由于为EVM构建的工具,开发人员教育,知识库等,现在EVM已经具有网络效应。这正是为什么许多其他项目--Hashgraph,Cosmos Ethermint,Wanchain,RSK,Blink及其他项目 - 决定采用EVM,尽管Ethereum本身想要离开EVM!
在实践中,我对状态机可跨链移植的观点持怀疑态度。以EVM为例,甚至Ethereum基金会都不想保留它。我的感觉是,开发人员通常不希望用Solidity编程,而他们这样做只是因为他们是Ethereum区块去中心化生产和软件开源开发的理念拥护者。如果我的假设是正确的,采用EVM的非Ethereum链将不会受益于“EVM的网络效应”。
但是,WASM的情况可能会有所不同。因为大多数主要的加密项目团队都希望站在WASM 这个巨人肩膀上,实际上可能存在一种可移植的、跨链的网络效应,使得围绕WASM来构建区块链的状态机。
如果围绕WASM的这种网络效应表现出来,那么开发独特的状态机的团队将难以展开竞争。
The Extended Core Stack
有一些元素不是也不应该是基础链的一部分,并且尚未被认为对于dapp的开发是必不可少的:但我相信它将成为Stack的核心组件。我们从下往上看Stack:
许多团队正在开发侧链。比特币中最值得注意的是drivechains和Liquid。在Ethereum中,最重要的是Plasma框架内的SKALE,而CosmosEthermint区块链则作为自主管理的DAPP链。
在比特币中有许多团队致力于“支付隧道Payment
Channel”和“状态隧道State Channel”网络,最著名的是Lightning Labs和Blockstream。在Ethereum生态系统中,他们是Raiden和Celer。许多人,尤其是比特币社区内的人,都认为这种方法是唯一能实现可扩展性的方法。
Interledger协议(ILP)几个月前完成。相当多的团队正在使用它来实现跨链互操作性。直到最近,包括我在内的大多数开发者和投资者都没有对ILP给予足够的重视。然而,有充分的理由可以认为ILP会成为Web3
Stack中最重要的层(类似于此),因为价值会汇集到像BTC这样的安全链,而商业行为则会更多的发生在像Ethereum这样的功能链上。
据我所知,The Graph是唯一一个为Ethereum构建去中心化查询层的团队。以前,在Ethereum上建立dapps的每个团队都必须构建一个专有的索引基础架构。
BigchainDB,OrbitDB和Bluezelle等许多团队正在构建不可篡改的结构化数据库(Web3图的右下角)作为无需许可的、独立的区块链。鉴于使用结构化数据库可以带来性能提升,我们将继续观察看看开发人员是否从一开始就选择使用这些系统,还是像SKALE这样的团队把这些开源系统作为Plasma侧链来实现。
总体上来说,The Extended Core Stack比The Core Stack更不成熟。基本上,这些组件中没有任何一个已经有了规模化应用。因此,dapp开发人员暂时无法使用这些组件。
随着The Extended Core
Stack的成熟,我预计dapp的开发速度将大幅提升。正常来讲Dapp开发人员不应该考虑这些组件旨在解决的任何问题,但是考虑到Stack的当前状态,他们不得不自己构建这些Stack组件。这是非常低效的。
可选组件
正如有各种各样的Cloud APIs一样,从发送emails(Sendgrid)到SMS(Twilio)到mapping(谷歌地图)等,将会有大量“去中心化库”以可选的去中心化组件的形式存在。其中每个都将实现一组特定功能,并且供dapp的开发人员选择和采用。
这些可选组件服务中只有少数已经上线,如:Livepeer,0x,Kyber,Storj,Sia,Oraclize和Civic。大多数团队尚未发布能用于生产的工具。
这至少部分地解释了缺乏dapps的原因:如果没有可用的“库”,很难构建有用的dapps。没有可用的“库”,每个dapp都必须重新发明“轮子”。
同样有趣的是,人们发现这些组件中的绝大部分都是为Ethereum生态系统而构建的。虽然有一些团队,例如Keep和Truebit,已经公开讨论过支持Dfinity以提供跨链服务,但是现在加密生态系统中的绝大多数基础设施仅仅是为了支持EVM,或者支持Ethereum生态系统而构建的。
在接下来的一年里,随着EOS,Tezos,Kadena,Dfinity,Solana,Tari,Hashgraph和其他团队发布和成熟他们的区块链(图),他们将争夺建立dapp基础设施组件的团队的注意力。当今,那些能无缝支持跨链开发所需的工具当然不存在,因此构建核心链的团队需要竞争以使这些“dapp基础设施提供商”支持其各自的链。
如上所述,像WASM这样的状态机的网络效应可能很大程度上可以跨链进行移植,但前提是必须经过开发人员的努力,否则它不太可能100%可移植。
这将会很有趣:是否能在自己的基础链上实现无缝地跨链移植“dapp基础设施”,从而吸引业内的第一波,同时也是为Ethereum生态工作的“dapp基础设施”开发人员支持自己的基础链。
Stack的顶部
在大多数Stack图中,dapp是Stack的顶部。但基本上所有加密项目开发都是以后端为重点,而不是前端。因此,有一些组件存在于Web3 Stack中的dapp之上。
有趣的是,在加密网络领域几乎没有人在谈论去中心化的“应用程序托管”(Hosting)。这特别有趣,因为现在基本上每一个dapp的这一层都是中心化的。它的中心化,或者是因为托管应用程序的Web服务器是中心化的,或者是因为有一个下载链接来下载应用程序并将其安装在客户端设备上,将生态系统回推到“围墙花园模型(walled-garden model)”,而该模型本身就是中心化的。理想中的应用程序托管应该是去中心化的,同时也可以及时交付,这将是一种新型的Web应用程序。
为什么基本上没有针对应用程序托管的去中心化解决方案呢?我可以确定有两个原因:要么是这一层的去中心化是无关紧要的,要么就是这是个难题,甚至没有人愿意去解决。我怀疑答案是两者兼而有之。
任何一个dapp,只要数据库和资产存储是足够去中心化的,应用程序托管是否是去中心化的其实并不重要。如果政府通过关闭应用程序主机来审查dapp,则dapp作者可以只开源前端代码,并让其他人启动一个新的主机,为同一个后端提供门户。这可能会像21世纪初的Torrent那样:关闭一个,在其他地方会出现另外5个。
但是,如果您可以实现应用程序主机托管的去中心化呢?Codius,起初是Ripple发起的一个开源项目,在2015年Ripple停止给他分配资源之前曾试图做到这一点。Stefan Thomas,Ripple的前CTO,离开了Ripple并启动了Coil,把Codius放弃的重新拾了起来。继续观察Stack的这一层在实践中是如何工作的,以及集成到现有的DNS中,这将会很有趣(现有DNS是中心化的,可信的应用程序主机)。
最后,Stack的顶部是最终用户与之交互的部分:dapp浏览器。这包括用于以太坊的Metamask和Toshi,以及用于EOS的Scatter。
第2层扩展解决方案
我已经在本文中涉及到了这些内容,但我认为值得在当前扩展区块链的大背景下重新审视它们。
首先是分片。基于Ethereum和Polkadot团队所面临的挫折,分片似乎是技术上最具挑战性的扩展解决方案。即使它有效,现在也不清楚它是否能成为许多人,包括我自己,所期待的“圣杯”。分片的最大问题是“跨分片延迟”,在Ethereum中可能是几分钟,这可能严重限制了实际使用中分片的功效。此外,分片会产生各种下游问题,例如客户端根据用户的查询可能不知道要读取哪个分片。
第2层扩展解决方案 - 侧链、支付和状态隧道网络以及ILP - 遇到相同的一般性问题。随着侧链的激增,当用户忘记他们的资产所在的链时,事情就会变得混乱。支付和状态隧道网络存在严重的延迟挑战,并产生与“流动路径liquidity routing”,资金传输和隐私相关的各种新问题。鉴于价值储存区块链- 比特币 - 的出块时间为10分钟,ILP将面临真正的延迟挑战。
让我们假设:用户在位于一个分片中的支付隧道中有资金,这时她希望将这些资产移动到位于另外一个分片上的侧链中。这将使这一切变得更加混乱。
在事情变得清晰之前,事情会变得更加混乱。
宏观观察Meta Observations
也许Web3 Stack中最迷人的部分就是Stack本身的去中心化程度。大多数传统的应用程序开发Stack--Windows,iOS,Android--几乎是完全中心化的,只有少数第三方开发者库和服务达到一定的使用量。这与Web3 Stack形成鲜明对比,Web3 Stack由全球数百个团队同时构建!虽然从理论上讲,开发者不需要任何超出“核心Ethereum协议”提供的东西来构建dapps,但实际上dapp开发人员是需要那些以太网基金会没有也不会去构建的各种工具的。这是最重要的证据,加密网络是自由市场的巅峰之作。
考虑到Web3 Stack仍处于初级开发阶段,难怪dapp的使用非常糟糕:考虑到今天Web3 Stack的状态,几乎不可能构建可用的dapps!像许多其他技术一样,Web3 Stack将进展缓慢,然后在超过一些临界点后迅速发展。
在Web3 Stack实现某种程度的可用性,稳定性和功能完整性之后不久,dapp革命就会发生。我怀疑这将会是2 - 3年之后了。
结论性思考
Multicoin已经在Web3 Stack的多个层面上投资了十几个协议。我们将继续评估构建Web3基础架构的项目。如果您正在构建Web3 Stack的一部分,请联系我们!我们想要了解更多。
我写这篇文章的另外一个目的也是为了获得反馈。我确信我所描绘的Web3堆栈图并不完整。如果您有任何想法,意见或反馈,请发送电子邮件至research@multicoin.capital。
感谢Albert Wenger,Nick Grossman和Josh Nussbaum提供有关此文的反馈。
更新:在发表这篇文章后,我了解到Web3基金会,Trent McConaghy和Stephen Taul已经写过关于Web3 Stack的文章。