Multicoin Capital: 世界计算机应该在逻辑上集中

本文转载自公众号:Multicoin Capital 官方

本文写作于2019年7月30日

Vitalik将以太坊构想为世界计算机:一个单一的、可组合的、开放的、无许可的状态机,它可以运行信任最小化的代码(https://blog.ethereum.org/2014/01/23/ethereum-now-going-public/)尽管以太坊在许多前沿领域——P2P层、确定性状态机、可组合的智能合约等——都取得了突破,但它在其他许多领域则表现平平。这些限制——最明显的是吞吐量低、高延迟、事务费用昂贵,以及在平淡无奇的虚拟机中使用自定义编程语言——这些都在妨碍以太坊实现其最初的承诺。 今天,我很高兴与大家分享Multicoin在Solana的投资理念,同时宣布我们向Solana投资了2,000万美元的消息。这是索拉纳的新闻稿:https://www.businesswire.com/news/home/20190730005295/en/Solana-Prepares-Launch-World%E2%80%99s-Web-Scale-Blockchain-Completes
支持开发人员构建Web规模的应用程序

Solana提供了信任最小化应用程序开发人员所需要的所有特性:
高吞吐量:目前,在一个由200个共识节点组成的全球网络上,该网络支持每秒50,000次事务
低延迟:最终化时间约1秒
低廉的交易费用:通常以一美分的一个零头来计算
用Rust作为旗舰编程语言(也支持C、C++和Libra的Move语言)
一个异步的、拜占庭容错(BFT)共识算法
支持可组合智能合约的单一全局状态

对于开发人员来说,1 – 5点的特性价值是显而易见的。而我想强调第6条的重要性:拥有一个支持可组合智能合约的单一全局状态。考虑到过去几年间加密货币开发人员社区中讨论的本质,第6条的价值再怎么强调都不为过。 构建智能合约的开发人员不想处理第2层和分片。或者跨分片应用程序状态和逻辑。或者是跨分片延迟。抑或是侧链中的安全模型。或者是状态信道网络中的流动性路由。再或者是他们如何使用零知识证明来进行离线计算。 拥有智能合约链的意义恰恰在于,链本身抽象了交付信任最小化计算所需的所有低层复杂性和经济系统,使得应用程序开发人员能将精力集中在应用程序逻辑上。事实上,当Vitalik于2014年1月在迈阿密向世人揭开以太坊的面纱时,他所强调的正是这一点:世界计算机的意义在于抽象所有不特定于应用程序的东西! 虽然有许多类型的可伸缩解决方案正在使用,但是每一种解决方案都为应用程序开发人员、用户和整个生态系统创建了特殊的复杂性。这当中最新的一种复杂性——我称之为”创造生态系统包袱”——尤其具有挑战性。例如,钱包需要知道用户资产在许多链和状态通道中的位置;用户需要瞭望塔(watchtowers);流动性提供者需要提供流动性;流动性池被打破;延迟被引入到各种奇怪的地方;诸如此类。 或者换一种说法:所有这些异构的可伸缩解决方案都破坏了定制的、不统一的、逻辑分散的单个逻辑中心化系统(但在架构和政治上是去中心化的)的优雅和简单性。逻辑碎片增加了用户、开发人员和服务提供者的复杂性和摩擦。 所有异构的可伸缩解决方案都是在回应这样一个事实:到目前为止,还没有人知道如何在扩展第1层的同时保持足够的架构和政治去中心化。当我告诉人们,Solana已经解决了如何扩展第1层的问题时,他们都认为这个架构肯定会是实验性的,而且存在风险。他们通常还认为,把赌注押在异构的第2层扩展上风险要小得多,这主要是因为加密界自2014年以来一直是这么讨论的。 讽刺的是,这与现实恰恰相反。第2层解决方案或分片完全没有超出概念验证的范围之外,也没有人成功解决了以异构方式进行扩展所产生的二阶和三阶问题(例如,通过跨链技术桥接侧链,处理拥挤的分片,要求应用程序逻辑考虑外生状态等)。 与此同时,开发人员——包括加密开发人员和非加密开发人员——已经知道如何为第1层构建和部署代码:在链上部署一个智能合约,然后用户向链发送签名消息。仅此而已。 如果没有逻辑集中的接口,就不可能提供简单的抽象。 这并不是说第2层不好,或者开发人员不会构建成功的第2层产品。相反,Solana的情况是,开发人员不必依赖这些定制的可伸缩解决方案(开发人员肯定会在Solana之上部署第2层,而且他们一定可以成功,因为Solana是无许可的)。对于绝大多数用例,构建在Solana之上的开发人员根本不需要考虑可伸缩性,因为Solana的第1层的全部意义就在于抽象复杂性。

将资金稀缺性和信任最小化的计算分离

Solana的指导原则是软件不应妨碍硬件。 我再重复一遍。 Solana的指导原则是软件不应妨碍硬件。 这里有三层主要含义: 首先,Solana网络作为一个整体以与单个验证器相同的速度运行。这一点其实很直观:如果软件不妨碍硬件,假设带宽不构成瓶颈(不会如此;这一点在下面的Turbine部分还会详述),网络将以与一台机器相同的速度运行。 其次,整体网络性能随着带宽和GPU内核的数量而扩展。带宽在持续以每18 – 24个月翻一番的速度增长(https://www.nngroup.com/articles/law-of-bandwidth/),现代互联网连接距离光纤达到物理极限饱和还有许多个数量级的差距。虽然单线程CPU的性能不再按照摩尔定律提高,但是GPU的数量也仍然是每18 – 24个月就会翻一番(https://www.karlrupp.net/2018/02/42-years-of-micro…),而且暂时还看不到这种发展的尽头(Solana利用具有4000多个内核的大规模并行GPU进行事务处理;更多信息请参考下面的Pipeline部分)。 第三,由于Solana的整体网络性能随底层硬件线性增长,Solana在当前稀缺的地方创造了丰富性:信任最小化的计算。在过去的几百年里,技术的主旋律一直是令以前稀缺的资源变得丰富。摩尔定律最清楚地捕捉到了丰富的概念,但丰富不仅仅关乎纯粹的计算能力。随着软件继续吞噬世界,几乎每个行业都感受到了丰富性的影响。 虽然丰富通常是好事,但在一个领域,丰富显然是件坏事:货币供应。由于无许可BFT共识的存在,使得每条无许可链都具有稀缺性,从而保证了货币供给的稀缺性,但这同时也造成了信任最小化计算的稀缺性。通过创建一个软件不妨碍硬件的网络——允许网络性能与硬件一起伸缩——Solana使信任最小化的计算成为一种丰富而不是稀缺的资源,同时仍然为货币供应提供强有力的保障。 货币供应的稀缺性和信任最小化计算的稀缺性从前是被捆绑在一起的。Solana让这二者彼此分离。 世界计算机必须提供丰富的计算能力,但需要由稀缺的资金提供动力。
技术概述

七个主要的技术突破令Solana成为可能。我将简要介绍每种突破。每一小节都提供了链接,可以看到来自Solana团队的详细解释。我按堆栈的顺序自下而上介绍:
历史证明(Proof of History, POH)。POH是一个微妙但基础的创新,Solana其他独特的架构都是建立在其上的。POH代表了一种全新的方法,用于在无许可设置中编码和通信节点之间的时间间隔,以解决时钟问题。POH在达成共识之前充当时钟,使得从共识的时序假设到复制证明(proofs of replication),从超优化数据传播到内存池管理等的各种独特的时序假设在堆栈上发生。在分布式系统中,时间是一切的基础,而Solana在无许可分布式系统中,采用了一种全新的时间概念。POH还提供了另一个好处。对POS系统最常见的批评之一在于它们不是客观的,而是弱主观的。正是由于POH,Solana变得客观。因为时间的推移被编码到区块本身,同时因为验证器通过并行化验证POH的速度可以比POH的初始生产速度快1,000倍,所以一个新的节点可以在没有带外信息的情况下,验证区块链从创世到当前的完整性。
Tower BFT。这是一个POH优化版本的实用拜占庭容错算法(PBFT),倾向于活性而非一致性。
Turbine(涡轮协议)。这个区块传播协议大量借鉴了BitTorrent。在Turbine的助力下,网络的总吞吐量相当于上/下速度最快的⅔节点,减去一些用于容错的擦除编码的常量因子。Solana与最快⅔的节点的带宽呈线性扩展。所有其他链都是以亚线性方式扩展的。
Gulf Stream。无内存池事务转发协议。
Pipeline VM。Pipeline是一个自定义虚拟机,它利用LLVM为GPU编译代码,以实现大规模并行事务执行(而不仅仅是签名验证)。这为Solana带来了巨大的规模收益。传统的区块链是单线程计算机,而Solana的Pipeline在GPU上同时处理数千个事务。此外,Pipeline利用伯克利包过滤器(Berkeley Packet Filter, BPF),这意味着虚拟机将事务执行直接交给硬件(而不是在虚拟机中执行事务),从而进一步提高性能。虽然Pipeline不依赖于WASM字节代码,但是开发人员可以使用为WASM编译器编写的代码,然后使用Pipeline编译器重新编译,当中只需要非常少量的更改。这使得Solana可以轻松支持为基于WASM的链(如EOS、Dfinity、Polkadot和以太坊2.0)编写的应用程序。除了支持C语言、C++语言和Libra的新Move语言之外,Pipeline的旗舰语言为Rust(更多内容见下文)。
Cloudbreak。可水平扩展的帐户数据库。像LevelDB这样的传统数据库在单个实例上每秒的随机写入操作不能超过5,000次。Cloudbreak是Solana针对水平扩展磁盘I/O的新解决方案。Cloudbreak基于分散-聚集等操作系统技术,以提供无与伦比的磁盘I/O。事实是,Solana速度如此之快,所以该团队只好从头开始创建一个新的数据库结构,避免磁盘I/O成为瓶颈。
复制器(Replicators)。一种分布式分类账存储,用于处理数兆字节级(pb)数据的数据可用性问题。以1GB/秒的速度来计算,一个网络一年将产生大约4 pb的数据。在这种规模下,存储事务历史将很快成为主要的中心化向量。Solana通过复制器解决数据可用性问题。Solana不需要共识节点存储整个历史,而是利用了第二类节点——即复制器——它们的唯一职责是存储事务历史的小片段。复制器利用复制证明(借鉴自Filecoin)来证明它们正在存储应该存储的状态片段。通过经济激励,Solana将管理数据可用性问题的成本分配给数千甚至数百万个复制器。
这些创新的共同主题可以归结为一个词:优化。在基于第一性原理,对堆栈的每一层进行构建方面,Solana是我所见过的最清晰的例证。这个团队系统地确定了拖慢其他链的每个问题(例如共识开销、单线程计算和磁盘I/O),并设计出了独到的解决方案,逐个击破。

Libra和Move语言

Facebook的Libra团队开发了一种名为Move的虚拟机和编程语言。虽然Libra在2020年推出主网时还不可编程,但Libra团队已经开放了Move代码库的源代码。事实证明,Move和Solana的Pipeline虚拟机之间的相似之处远多于不同点。 Solana本身支持Move,包括BPF和GPU上的并行事务处理。这意味着开发人员可以轻松地将为需许可的Libra链编写的应用程序移植到无许可的Solana链,并获得Solana提供的所有性能。 这对Solana来说是一个不可思议的催化剂,因为Solana既能从Libra的分布式协作中获益,同时仍然以完全无需许可的方式运作。 根据Solana计划于2019年10月推出的主网来看,Solana可能是第一个真正支持基于Move的应用程序的区块链。

独特的应用程序

Solana的性能极其优异,因此能支持以往不可能实现的全新应用程序。举个例子: Solana可以从创世单元到顶端单元验证整个比特币历史的块头。同样的道理也适用于像莱特币(Litecoin)和Zcash这类比特币的分叉,以及以太坊。因为Solana可以本地验证其他链的当前状态,所以Solana不需要依赖预言机(比如Cosmos的IBC协议)来理解外部状态。 这意味着Solana可以驱动非托管跨链去中心化交易所(DEX);在Solana上进行交易,在资产的原生链上进行结算。 同时由于POH可充当块内时钟(而不仅仅是块间),Solana在块内事务排序方面提供了更加强有力的保证。加上Solana惊人的吞吐量,该网络可以支持链上订单簿。这是去中心化交易所梦寐以求的必杀技。
团队

2017年下半年,Anatoly开始研究区块链。他认识到,共识背后的核心问题是时钟问题。具体来说,没有一个通用、全局可用、信任最小化的时钟,便于所有验证器利用它来对事务设置时间戳。他意识到计算机可以使用简单的SHA-256循环对时间的流逝进行编码,而且这种数据结构可以用来在免信任的计算机网络中同步时钟。这一核心创新被称为”历史证明”,它在形成共识之前起着一个全局时钟的作用。拥有一个独立于共识运作的全局时钟,是一个微妙而深刻的转变,对建立在POH之上的一切都具有重大意义,包括共识本身。 Anatoly组建了一支最优秀的加密货币工程团队。大多数核心工程团队成员此前已在高通(Qualcomm)共事了10年之久。团队拥有堆栈的每一层的专业知识,从无线网络到CPU/GPU/DSP设计、内核设计、嵌入式系统、OS和SDK等等。重点介绍以下成员: Anatoly Yakovenko设计了高性能DSP软件,支持谷歌Tango),后者是首款支持智能手机增强现实的移动设备。 Rob Walker曾任职Brew高级总监。在iPhone推出之前,Brew操作系统支持逾5亿部CDMA手机。 Greg Fitzgerald曾在高通首席科学家办公室就职,研究LLVM项目。 Pankaj Garg帮助定义LTE标准并构建ARM TrustZone。 Stephen Akridge曾是高通的GPU主管,专注于GPU编译器和驱动程序。 Michael Vines曾任Firefox OS的高级主管,后来与人共同创办了Silk Labs,该公司后被苹果(Apple)收购。 Eric Williams博士曾是欧洲核子研究中心(CERN)的一名粒子物理学家。 Solana之所以成为可能,正是源自于这个团队的技术深度和广度。该团队的专业程度之深,令他们可以深入钻研最基础的代码,他们利用了这种深度,让所有的假设都得到了验证。堆栈的每一层都获得了优化。

与社区见面

Solana的主网预计将于10月上线,在这之前的几个月里,这个团队将开始全球之旅,与世界各地的开发人员见面,回答问题,并展示系统的运行情况。除了世界各地的小型活动外,他们还将于8月在柏林参加Web3峰会,9月在上海参加2019年区块链国际周,10月在日本参加以太坊Devcon 5活动。如果你想要参加这些活动,请与Solana团队联系! 在正确启动一个全新的区块链方面,这是一次独特的机会。这意味着要拿出密钥管理解决方案、交易所和托管集成、开发人员工具(如Truffle)、查询和API层、调试工具等等。如果你正在构建Web3基础设施或高性能应用程序,并且希望与Solana集成或构建,欢迎与Solana团队联系。 很荣幸,我们能够有机会支持Anatoly和Solana团队,我们也期待着看到由Solana支持的独特的应用程序问世!
披露:Multicoin Capital持有SOLs的多头头寸。Multicoin Capital在本报告发布后72小时内(”禁止交易期”)遵守本报告所列资产的”禁止交易政策”。任何高级职员、董事或雇员不得在禁止交易期买卖上述任何资产。本文仅供参考之用,您不应将任何信息或其他材料视为投资或财务建议。本文中的任何内容均不构成Multicoin买卖任何代币或其他金融工具的招揽、推荐、背书或要约。