区块链计算的4个时期:可组合程度

在A16Z的密码学货币会议中,我们讨论了密码学货币网络如何类似之处,以及城市和密码学货币网络如何受益于基于共享基础设施的自底向上增长。

传统的业务通常最适合在有居民、公共设施、法律、安全和充满活力的地方开设店铺。同样,开发者也会在基于共享资源创建内容时收益,例如现有用户基础、数据、安全和运行的节点。

我们将其称之为组合性。如果现有的资源可以用于创建区块和编程更高级的应用,则该平台是可组合的。可组合性是重要的,因为它可以让开发者用更少的工作实现更多,从而实现更快速的复合创新。

区块链计算机的无需信任对于可组合性来讲是一个重要功能,因为它可以让开发者在共享基础设施之上进行开发,而无需担心底层依赖被破坏。这是真的,因为区块链既是无需许可的(开源的伟大之处),也是有状态的(例如Twilio和Stripe的APIs的伟大之处)。

根据区块链计算的演变,我将描绘出4个不同时期的模型,每一个在组合性方面都有不同的架构和优先级:

  1. 计算器时期 – 特定的应用,组合性有限
  2. 主机时期 – 图灵完备,高组合性
  3. 服务器时期 – 特定应用,押注可组合性
  4. 云时期 – 图灵完备,可扩展的组合性

正如我所描述的,我将逐一分析它们的优缺点。但事先声明一下,在这个领域有很多开放性的研究问题,而且具体的运行原理也尚不完全清楚。每一个实验都值得尝试。

计算器时期

比特币是区块链计算的先驱。它也是特定应用的全栈解决方案:数字黄金。除了简单的函数跟踪余额和转账以外,比特币还提供了能够构建更复杂函数的脚本语言。

很多项目已经借助比特币的脚本来构建更高级的应用。例如,存在性证明借用OP_RETURN数据存储来创建证明某个特定的人在给定的时间拥有某个数字文档。诸如Colored CoinsCounterparty 则实现了在比特币区块链上创建定制代币。但是其它一些进一步扩展比特币代币功能的尝试则受到了比特币脚本语言的限制。

很多人认为对于去中心化货币系统,最重要的安全,而不是可编程,因此有限制的脚步语言是一个功能,而不是缺陷。从这角度来说,比特币更像是一个计算器,而非计算机(这句是正面评价!)。这是有意而为之,而且很好地实现了其功能,但是对于开发者以及愿意思考的人来说,创建一个能够支持应用的新架构势在必行。

主机时期

受比特币的激发,以太坊通过一个图灵完备的虚拟机实现了区块链计算机。这意味着,开发者能够在去中心化的机器网络上部署和运行任何程序。

目前,为了真实性,以太坊网络中的每一个节点都必须执行所有的程序。这降低了使用速度、增加了成本,但就无需信任的计算而言,以太坊依旧是无与伦比的。每一个程序都能按部就班地执行(正如所验证的),而且输出结果或状态对所有人都是可见的。因此以太坊上的每一个程序都可以作为一个独立和中立的区块来让开发者构建更高级的应用。今天我们看到这种情况正在发生:

Marble 实现了交易套利的闪电贷款:“交易者可以从Marble智能合约银行借款,在其DEX去中心化交易所上购买某一种代币,然后再其它DEX上以更高的价格出售该代币,然后再还款给银行,从而在单个原子交易中获得套利利润。”为了实现这些,Marble借助以太坊独有的虚拟机来在独立的项目中执行一系列的函数,结果就是任何人都可以使用这个简单的应用。

Primotif是一个用以跟踪真实指数的金融衍生品,例如S&P 500指数。它使用Augur股份来跟踪潜在指数的价格,dYdX 则可以做空来对冲以太坊的波动性,而且dYdX 使用Maker’s的Dai稳定币。Primotif是在一周内创建的,这是一个很好的例子可以说明组合性能够实现复杂创新和很强的开发者网络效应。

通过组合性产生网络效应并不是新现象。Twitter的创始人在2007年通过AVC说道他们API的可组合性:

“API可以说是最重要的,甚至可以说是我们对Twitter所做的最重要的事情。首先,它可以让我们让服务变得简单,并创建简单的API,因此开发者能够在我们的基础设施上进行创建,产生更好的点子,创建诸如Twitterific等的项目,这是一个非常优雅的使用Twitter的方式,就连我们自己也没做到,而且还是一个非常小的团队完成的。因此,API能够很容易地实现比网站大10倍的访问流量,一直以来对我们都非常重要。”

不幸的是,组合性在Web 2.0中出现的时间并不长。一个问题在于无法通过API来发送资金,也没有公平、有效的方式来管理平台规则,例如广告展示。这在开发者和平台之间没有形成激励,从而导致数据重新中心化,并散失了第三方创新。

我的合伙人Chris曾写道密码学代币如何更好地激励可持续、开放的网络。如今的问题在于,与激励保持一致的、可组合的网络无法扩展。

这是区块链的“主机时期”。而早期的网络效应无疑是由于可组合性 – 集体安全性、用户、数据和代码运行 – 随着采用大型主机来对抗吞吐量限制,这带来了边际收益的递减。这反过来又推高了每个额外用户和开发人员的成本。如下图所示:

由于资源限制,每个用户的边际成本增加,最终超过可组合性的边际价值(共享资源和开发人员网络效应)

进入“服务器时期”

为了探索可扩展性,一些开发者开始放弃可组合性和共享网络效应,进而转向特定应用架构。这类愿景的项目诸如Polkadot和Cosmos是多个异构链中的一个,每一个都链都是为一个特定的应用而定制的。Polkadot的SubstrateCosmos的SDK是模块化的区块链创建工具包,用以创建自己的全栈应用链。

与在现有网络资源之上创建组合相比,使用全栈要复杂得多。对于开发者,它意味着向下创建状态机,向上创建应用程序接口,引导网络的最低可行安全性,并找出与生态系统中其他系统的互操作性。

但从历史上看,事实证明,全栈策略在推动未来和将早期技术推向市场方面是成功的。早在PC应用出现之前,王安实验室就提供了一款功能强大的文字处理器作为软硬件结合的解决方案。之后,AOL捆绑了ISP、内容传输系统、电子邮件和即时通信 – 这在互联网早期是非常高级的用户体验,尽管当时还处于建造中。而且RIM也捆绑了一款移动设备、操作系统和早期的应用例如BBM,并推送邮件,以促进智能手机的应用。

在互联网早期阶段,每一个网站都有一台定制的服务器运行在最近的某个地方。为了获得端对端体验,开发者也需要拥有一部分基础设施。区块链计算的下一个时期可能也是如此。这就是我所谓的“服务器时期。”

“服务器时期”的区块链明显折中组合性以获得控制。这分为两个方面:对终端用户体验的控制,以及对网络供应端资源的经济性进行更细微的控制。“服务器时期”架构的假设之一是诸如安全性、存储、计算等的网络资源是受需求约束的。也就是说,随着应用程序获得应用,它们可以根据需求扩展。这与“主机时期”的架构有所区别,那个时期的资源成本随着网络上所有其他流量的变化而变化。该理论认为,全栈服务器时代的体系结构可以减轻主机链条升级的风险。

“服务器时期”的区块链与之前的全栈平台不同,它们仍然是区块链!然而,王安实验室、AOL和RIM是闭源的平台,“服务器时期”的区块链仍然是可验证的,而且拥有可编程激励的开放数据结构。这种特性可以让它们组合到中枢Hub中(这也是Cosmos和Polkadot所做的)。一条区块链可以是另外一条的轻量级客户端,开发者能够创建原子化交换和其它延伸功能。

这意味着即使是“服务器时期”的区块链仍然是可组合的,但是不同于“主机时期”的区块链。与运行单个虚拟机不同,这些区块链计算机需要新的标准来与其它区块链进行通信,以支持跨链应用的组合。这些通信界面正是当今研究和标准化工作的核心,而且毫无疑问,这会增加开发者在可组合性体验方面的复杂性。尽管有这样的缺点,捆绑包的可能是区块链架构的新浪潮的催化剂,我希望在短期内我们会看到更多的项目采用全堆栈的方法。

“云时期”

“运时期”意味着实现了可扩展、通用的无需信任的计算底层。在这种情况下,组合性只受限于创造性,而不是扩展或通信复杂性,创新可以在在不触及递减回报的情况下实现组合。

具体的运行原理还在探索中。服务器时代体系结构的支持者认为,云时代的体验将通过异构区块链间的标准化和抽象化来实现。其它诸如以太坊2.0(Serenity)和Dfinity则是共享版本的同态图灵完备的区块链。您可以将此想象为一个由许多主机组成的世界,这些主机共享一个安全池,但在同构虚拟机之间分割状态和计算。而且还有很多人也正在研究完全全新的架构来实现链下计算。

考虑到研究社区的规模,以及这种解决方案的潜在价值,如果云计算时代的区块链计算在所谓的“服务器时期”的末尾成为热门的话,我并不会感到惊讶。我们已经铺设了电缆,建立了数据中心 – “云计算时代”的区块链计算主要是软件创新。无论我们何时能够实现这些,可以明确地一点是,对于开发者来说无需信任的可组合性将是全新的超级力量,当开发者可以用更少的资源做更多的事情时,我们都将成为互联网上更多协作、创造力和选择的受益者。

allwelder

Allwelder-连接所有!

        
微博:@nextcoin    微信公众号:blockchains     QQ群号:338331006     QQ公众号:blockchain