美文网首页
2018-10-12

2018-10-12

作者: 柏汇云 | 来源:发表于2018-10-12 16:47 被阅读0次

    Web时代互联网用于传递信息,是信息的载体;Web2.0开启了交互大时代,涌现出很多优秀的交互平台及产品。区块链技术,尤其是以太坊的出现使Web3成为基于区块链进行价值传递的基础网络。

    如果未来某一天,互联网不再需要中心化服务器,所有的Web应用都是去中心化的,在互联网中,你可以治理、使用数据,这听起来是非常酷的!未来,Web3技术栈就会帮你实现它。

    那么,什么是Web3技术栈?Web3技术栈又细分成哪些?目前又存在哪些问题?和 Kyle Samani 一起,探索Web3技术栈的奥秘吧!

    目前还没有关于Web3技术栈的详细分析,所以我想尝试对Web3技术栈进行细致的解读。下图是Web3技术栈示意图,这幅图肯定不是完整的,而且可能会存在一些不准确的地方。

    在这篇文章中,Kyle Samani将带你探索Web3技术栈的奥秘。

    核心技术

    我一直在思考,Dapp开发人员真正需要哪些核心开发栈功能?我认为,是唯一的包含很多有序和有效交易的规范分类账本。

    P2P层(P2P Layer)、共识层(Consensus)和状态转换机层(State Transition Machine)保证统一分类账本功能实现。目前以太坊(Ethereum)和比特币(Bitcoin)仅有这些功能,不过以太坊最终将利用分片技术(Sharding)进行功能扩展。

    在Web3技术栈中可以看出,图右半部分可选组件(Optional Components)数量较多,图左半部分可选组件数量较少。从栈底向上看,可选组件包括可选组件模块(OPTIONAL COMPONENTS)等用虚线标注的部分。

    Oasis实验室正在搭建一个中立的平台——Ekiden,这个平台允许区块链支持私有的、链外的(off-chain)、基于可信执行环境(TEE)的计算。

    Handshake正在搭建去中心化的DNS。由于DNS操作系统的默认设置比较复杂,去中心化DNS项目的进展比较困难。

    Monero正在推进Kovri项目,这个项目旨在保护节点之间包路由的隐私性,从而保证IP级别(IP-level)的隐私。Kovri项目支持多链架构。

    BloxRoute正在开发一个与链结构无关的区块交付网络。

    以太坊基金会(Ethereum Foundation)开发了DevP2P框架(DevP2P项目主要是实现了RLPx网络层),协议实验室(Protocol Labs)开发了LibP2P框架(LibP2P项目旨在实现一套驱动IPFS的模组化的安全网络)。大多数新开发的区块链都采用了这两种框架中的一种,而且有传言说以太坊将逐步过渡到LibP2P。

    Ethereum和Polkadot正在开发全状态分片技术。

    有超过12个团队在共识层进行实验:

    有领导者的区块链共识协议

    Bitcoin 和 Bitcoin Cash——ASIC优化后的工作证明算法

    Ethereum 1.0, Monero, Zcash等——抵制ASIC矿机的工作量证明算法

    Kadena——交错的工作量证明算法

    Chia——空间和时间证明 (POST) 和运行时间证明(POET)

    Filecoin——有用数据的空间和时间证明

    Ethereum 2.0——Casper TFG权益证明(POS)

    Thunder——带工作量证明(POW)反馈的权益证明(POS)

    Decred——混合工作量证明(POW)和权益证明(POS)

    Polkadot——蜜獾权益证明(Honeybadger POS)

    EOS——委托权益证明 (DPOS)

    Tezos——委托权益证明(DPOS)变体

    Tendermint——委托权益证明(DPOS)变体

    Solana——历史证明 (POH)

    Dfinity——阈值中继(threshold relay)和概率时隙(probabilistic slot)共识

    Algorand——领导人选举的拜占庭协议

    无领导者的区块链共识协议

    Ripple共识协议

    Stellar共识协议

    Avalanche共识协议

    基于区块有向无环图(DAGs)的共识协议

    Byteball——Byteball主链共识协议

    Hashgraph——Hashgrah共识协议

    DAGlabs——Spectre共识协议

    Blink——Blink共识协议

    Spacemesh——先进行基于委员选举的空间和时间证明(PoST)共识,后进行龟兔协议

    有一些典型的状态转换机:

    以太坊虚拟机 (EVM)——Ethereum 1.0, Ethermint, Hashgraph,

    WANchain等

    Web组装虚拟机(WASM)——Dfinity,EOS,Polkadot,Ethereum 2.0

    直接暴露底层虚拟机(LLVM)——Cardano, Solana

    传统的状态转换机

    Kadena

    Tezos

    Rchain

    Coda

    相对于核心技术栈的其他层,为什么有那么多的团队在共识层展开工作?显而易见的答案就是:研究共识层可以获得最多的钱。

    那么,为什么共识层这么有价值?

    共识层是区块链技术层面上最大的难题,而且所有的共识方案都受到基本权衡(fundamental tradeoffs)的限制。此外,共识方案是相互排斥的:一个独立的区块链不能同时使用两种共识方案。

    全球技术顶层的协议设计人员逐渐认识到比特币POW(工作量证明),并且发现了一个可以搭建庞大全球数字储备资产的机会。所以,很多人在价值数十万亿美元的市场上展开竞争,这个市场就是共识层协议的设计市场。

    到目前为止,由于可扩展性难题(区块链系统只能拥有以下三个属性中的两个属性:去中心化,可扩展性和安全性),没人能提出一个能够提供基本帕累托(Pareto)改进的共识算法。

    大多数在共识层进行创新的团队都做了基本的权衡——即基于某些场景选择了最佳的折衷方案。

    如果一个团队提出了一个能代表帕累托(Pareto)改进的共识算法的机制,如何判断这个机制是否有效?

    最简单的方法就是在去中心化基础上量化吞吐量。尽管Vitalik认为这样的机制是不存在的,但是Dfinity、Algorand、Solana和其他团队都认为这是可能的。

    有一种观点认为,共识算法可以被复制。尽管这在技术上是可行的,但在政治层面改变现有链上共识算法是不可能的,特别是在具有紧密耦合的、链上治理的系统中。

    链上治理的联系越紧密,就越难说服相关的利益方做出改变。

    这就是为什么以太坊能够逐渐从POW共识机制逐渐过渡到POS共识机制,而原生的基于POS共识机制的区块链不愿意做出类似改变的原因。

    核心技术栈的另一层是状态转换机层。没有利用Web组装虚拟机(WASM)的团队对区块链状态转换机可以做什么持有非常尖锐的看法:

    Kadena认为,智能合约必须是人类可读的。

    Tezos认为,所有智能合约都必须得到正式的验证。

    Rchain认为,智能合约应该在Dapp链上运行,并进行正式验证。

    Coda认为,即使是轻节点也要能验证链的完整性,从而最大限度地保持去中心化的概率,而所有的一切都必须通过零知识证明(SNARKs)来运行。

    有些很有趣的现象:

    许多重大项目已达成共识,使用WASM;

    尽量达到Kadena、Tezos、Rchain和Coda所描述的程度。

    因为去中心化,所有东西都是开源的,所以可以基于技术栈的每一层来考虑网络效应。由于EVM搭建的工具数量多、开发人员对EVM掌握熟练、库非常多,网络效应已经形成。

    这也是为什么Hashgraph、Cosmos Ethermint、Wanchain、RSK、Blink等项目都决定采用EVM!

    在实践中,我对状态转换机可以跨链移植的观点持怀疑态度。就EVM而言,就连以太坊基金会也不愿意继续使用它。

    我认为,虽然开发人员不希望用Solidity语言编写代码,但是他们还是选择了Solidity,主要原因是因为他们是以太坊的专家。如果我的假设是正确的,采用EVM的非以太坊区块链将不会受益于“EVM的网络效应”。

    然而,在WASM这个例子中,情况可能有所不同。因为大多数的团队都希望站在巨人的肩膀上来搭建和维护WASM。因此,可能存在一种可移植的、跨链的网络效应—用WASM作为区块链的状态转换机。

    如果WASM的这种网络效应显现出来,那么开发独特状态转换机的团队在长期内也很难赢得市场。

    扩展的核心技术栈

    有一些元素不属于区块链基础层(base-layer)部分,而且不会是Dapp开发的必要组成部分,但我相信它们将成为开发技术栈的核心组件之一。

    许多团队正在搭建侧链,最引人注目的比特币侧链项目是drivechains和Liquid,基于以太坊的侧链项目包括利用Plasma框架的SKALE项目和以Ethermint链作为Dapp主链的Cosmos项目。

    有许多团队致力于实现比特币支付通道和状态通道,最著名的项目是Lightning Labs和Blockstream。在以太坊生态系统中,则是Raiden 和 Celer项目。许多人,尤其是比特币社区的人都认为这种方式是增加区块链扩展性的唯一途径。

    Interledger协议(ILP)在几个月前就敲定了。许多团队正在使用它来支持跨链互操作。直到最近大多数开发商和投资者都没有关注ILP。

    但是ILP完全有可能会成为Web3技术栈中最重要的一层,因为像BTC这样的安全链产生了价值,而像以太坊这样的多功能链则会发生更多的交易。

    据我所知,The Graph团队是唯一基于以太坊建立分散查询层的团队。在此之前,基于以太坊搭建Dapp的团队都必须搭建专有的索引基础设施。

    有一些团队,例如BigchainDB、OrbitDB和Bluezelle,正在搭建不可变的结构化数据库,因为他们考虑到使用结构化数据库可以提升性能。

    总的来说,扩展的核心技术栈比没扩展的核心技术栈成熟很多。因目前这些组件中没有一个适用于大规模生产环境,所以Dapp开发人员现在还不能使用这些组件。

    随着扩展的核心技术栈的成熟, Dapp开发的速度将大大加快。考虑到目前技术栈的状态,Dapp开发人员不得不搭建自己的技术栈组件,这样会导致Dapp开发效率低下。

    可选组件

    云API可以处理从发送电子邮件(Sendgrid)到SMS (Twilio)再到映射(谷歌映射)的所有内容。

    未来Web3技术栈也会像云API一样,以分散组件的形式存在于“去中心化库”,每一个库都将执行一组独特的功能,Dapp开发人员可以选择合并这些功能,从而快速开发新的Dapp。

    这些可选组件服务只有少数是在主网上的,例如Livepeer、0x、Kyber、Storj、Sia、Oraclize和Civic。而且大多数搭建这些组件的团队还没有发布可用于生产环境的工具。

    这至少在一定程度上解释了目前Dapps数量较少的原因:如果没有可用的库,就很难搭建有用的Dapps;如果没有可用的库,每一个Dapp都必须重新“造轮子”。

    有趣的是,这些组件中的绝大多数都是为以太坊生态系统而搭建的。一些团队,比如Keep和Truebit,已经公开支持Dfinity作为跨链服务。目前密码学生态系统中绝大多数的基础设施正在建设,以最低限度支持EVM以及更广泛支持以太坊生态系统。

    在接下来的一年里,随着EOS、Tezos、Kadena、Dfinity、Solana、Tari和Hashgraph等众多公司推出并逐渐完善他们的区块链,这些公司将开始激烈地争夺搭建Dapp基础设施组件的团队。

    还不存在对跨链开发进行无缝支持的成熟工具,因此搭建核心区块链的团队需要相互竞争,让尽可能多的Dapp基础设施提供商支持自己的区块链。

    如上所述,像WASM这样的状态转换机的网络效果很可能是跨链可移植的,而且不需要开发人员做任何努力。如果底层区块链研发团队能够在链与链之间无缝地移植基础设施,以此吸引为以太坊搭建基础设施的开发人员,这将是一件非常有趣的事情。

    技术栈顶

    在大多数技术栈图中,应用程序(APP)位于技术栈的顶部。但基本上所有的加密都是面向后端,而不是面向前端的。所以,在Web3技术栈中有一些元素位于Dapp之上,比如说Dapp浏览器。

    但是几乎没有人讨论去中心化的应用托管。这一点特别令人好奇,因为去中心化的应用托管层几乎都集中在于每个Dapp中,应用托管层是集中的,可能是因为承载应用程序的Web服务器是集中的,也可能是因为有单一的下载链接来下载应用程序并将其安装到客户端设备上,从而将整个生态系统变为封闭的围墙花园模型,根据围墙花园模型的定义,整个生态系统是集中的。

    为什么目前几乎没有针对去中心化应用程序托管的解决方案?

    主要有两个原因:要么应用程序托管层是否去中心化无关紧要,要么这是一个很难解决的问题。

    在任何Dapp中,只要数据库和资产存储足够分散,应用程序主机是否集中就显得无足轻重了。如果政府通过关闭应用程序主机来审查Dapp,那么Dapp的开发者就可以开放前端的源代码,并指导其他人用一个新的主机调用同一个后端提供的接口。这可能会像21世纪前十年的种子追踪器一样:关闭一个,在其他地方会再出现5个。

    但是,如果可以分散应用程序主机,又会怎么样呢?2015年,由Ripple发起的开源项目Codius试图在Ripple停止为它分配资源之前实现分散主机的操作。

    而最近,曾担任Ripple公司首席技术官的斯特凡•托马斯(Stefan Thomas)离开了Ripple公司,开始着手于Coil项目。

    最后,技术栈顶是实际与终端用户交互的界面:Dapp浏览器,其中包括以太坊的Metamask和Toshi,以及EOS的Scatter。

    第2层扩展性解决方案

    我在这篇文章中已经提到了这些层,但是我认为应该在提高区块链扩展性的背景下重新讨论这一层。

    首先是分片技术,分片技术是目前Ethereum和Polkadot开发团队都准备做的事情,分片被认为是最具技术挑战性的、提高区块链扩展性的解决方案。即使分片技术被成功应用,也不清楚它是否会具有多数人希望的性能。

    分片最大的问题是跨片通讯的时延,这个时延可能长达几分钟,会严重限制分片技术在实际环境中的应用。

    此外,分片会在下游产生各种问题,例如客户端可能不知道从哪个分片读取数据以应对用户查询操作。

    第2层扩展解决方案(侧链、支付和状态通道网络以及ILP)也面临同样的问题。随着侧链的激增,当用户忘记他们的资产在哪个链时,事情会变得越发的混乱。

    支付和状态通道网络存在很大的延迟,并可能会产生与流动性路由、货币传输和隐私相关的各种新问题。而ILP将面临真正的延迟挑战,因为价值链的存储——比特币的出块时间为10分钟。

    更让人困惑的场景是,假设一个用户在一个分片中有一个支付通道,他想将这些资产转移到另一分片的侧链中,实现起来会很复杂。

    也许Web3技术栈中最吸引人的部分就是技术栈本身的去中心化。

    大多数传统的应用程序开发技术栈(—Windows、iOS、Android)几乎都是完全中心化的,与Web3技术栈形成了鲜明的对比,Web3技术栈同时由世界各地数百个团队搭建。

    理论上讲,除了核心的以太坊协议之外,人们并不需要任何东西来搭建Dapps,但实际上,Dapp开发者更需要以太坊基金会没有也不会搭建的各种工具。

    考虑到有很多Web3技术栈仍在开发中,所以目前已开发的Dapp质量非常糟糕,几乎没有一个可用的Dapp。但像许多其他技术一样,Web3技术栈会慢慢地发展,并且在超过某个临界点之后进入迅速发展的阶段。

    在Web3技术栈达到一定程度的可用性、稳定性和特征完备性之后,Dapp将会发生质变的飞跃,这个过程可能需要2至3年。

    Kyle Samani:毕业于纽约大学斯特恩商学院,Multicoin联合创始人及董事,企业家,投资人,曾任Pristine CEO。

    最新热文:

    150亿数字加密货币被盗的真相之后,还能拿什么拯救你,我的交易所!

    V神绞尽脑汁开发Vyper,Python、Solidity要失宠?十分钟,看完这份12岁儿童都能看懂的智能合约指南,你就明白了…

    透过8个行业,带你了解Web 3.0区块链网络时代的颠覆性,你的行业会被颠覆吗

    相关文章

      网友评论

          本文标题:2018-10-12

          本文链接:https://www.haomeiwen.com/subject/cougaftx.html