STARK 证明(及其在 StarkWare 中的实际应用)是自比特币发明以来最激动人心的技术飞跃之一。如同所有飞跃般的技术,STARK 同样复杂并令人费解。这种复杂性可能会限制人们了解该项技术,并因此限制 Web3 进入大众世界。本文旨在对 STARK 简单介绍,以及 StarkWare 是如何实现此技术,并用于促进区块链采用。
在本文深入探讨 STARK 如何执行工作前,通过一个简单研究案例来凸显 STARK 技术的强大功能,该案例研究为 STARK 技术提供了很好的示例。
Sorare 是人气线上梦幻体育类游戏,包含了欧洲足球、NBA 和美国职业棒球大联盟 (MLB) 等热门体育赛事。用户在游戏中可获得代表球员的数字 NFT 卡牌。为了给玩家创建 NFT,Sorare 在以太坊上支付 gas(gas 是在以太坊上执行交易的费用,下文将详细介绍);在巅峰时期,Sorare 每周需要支付 100 万美元的 gas 费用于铸造 NFT。 以太坊所提供的安全性很重要,但 gas 成本太高。Sorare 后来与 StarkEx(即 StarkWare 的 Saas 平台)整合,并从直接在以太坊上铸造转为在 L2 上铸造。最终 Sorare 的 gas 成本从每周 100 万美元骤降至每周 1 万美元。通过此次技术革新,Sorare 将经济成本大大降低了 100 倍,且保持了同样的用户体验和用户安全性。当讨论到技术正以千倍速度进步时,我们也走进了从印刷机到微处理器的技术迭代领域。STARK 技术有望以类似的规模改写区块链。
在学习 STARK 之前,了解区块链本身的优势和局限性会有更好的理解。如果您已熟悉区块链三难困境,则可以跳过这部分,直接进入解释 L2 及其工作原理的部分。
本文将特别关注以太坊区块链。几乎以任何标准衡量,以太坊都是最大和最成功的区块链(不包括比特币,因为不是通用的智能合约平台):占所有区块链总锁仓价值 (TVL) 的 50%,有大约 4000 名活跃开发者(比所有其他区块链的总和更高)。以太坊也是 STARK 技术的基础安全层。
要了解以太坊的优势和局限性,我们应从以太坊联合创始人 Vitalik Buterin 创建的用于理解区块链权衡的模型开始,该模型即为区块链三难困境。
区块链三难困境类似于区块链的物理定律:它指出区块链必须在三个关键因素之间进行权衡:安全性、去中心化和可扩展性,并且只能针对其中两个进行优化。就像宇宙万有引力定律一样,任何区块链都无法逃脱区块链三难困境。理解区块链三难困境是理解 STARK 技术力量的先决条件:
去中心化有两个因素:第一个是网络中「节点」的数量。节点是整个区块链的副本,简单来说,即节点是该区块链上曾发生的所有交易的数据库。只有单个节点的网络是中心化的,比如保存在你笔记本电脑硬盘上的文件,或是保存在房地产经纪人服务器上的客户帐户列表。有多个节点,但由单一实体控制的网络也是中心化的,比如一家银行的客户数据库存储在几个地区的两个云端网络上。有许多节点,且由许多不同实体控制的网络是去中心化的。以太坊在某特定时间有 7000-8000 个节点,这比竞争对手如 Solana(约 2 千)或 Polygon(约 100)多出好几倍,这使得以太坊达到高度去中心化。然而值得注意的是,以太坊的节点所有权很集中,大约 50% 的以太坊节点由三个实体(Lido、Coinbase 和 Kraken)运营。这与去中心化的第二个因素有关,即「包容性」。包容性意味着任何想运行节点的人都可以这么做。包容性的限制因素(除了访问互联网)是运行一个节点所需的成本。这个成本由运行一个区块(最新一批交易的副本)所需的计算能力和质押成本(为了运行一个节点,你需要锁定多少特定的加密货币)所决定的。需要集中服务器算力的区块链并不具备包容性,因为只有能够负担这么多服务器的人或实体才能运行节点。相反,若只需智能手机算力的区块链是高度包容的,任何拥有智能手机的人都可以参与运行一个节点。
安全性是衡量区块链不可变性的一个标准;换句话说,任何一方改变或伪造区块链上的交易的难易程度。如果一方能够伪造区块链上的交易,就可以改变账本记录,例如可以在自己的余额中增加几个额外的零,还可以将别人的余额清零。对于中心化的应用程序来说,在技术上很容易伪造(即使可能冒着声誉、巨额罚款甚至坐牢的风险)。这就是监管机构存在的原因,也是为什么银行会有数千人组成的合规团队,并在合规技术上花费数亿美元的原因。区块链确保安全的方式是要求 51% 的所有节点在区块被提交到区块链之前进行验证。因此,如果有人能够伪造以太坊上的交易,就必须控制 51% 的所有节点,在一个高度去中心化的区块链上,这在技术上和财务上都极其困难。因此,一个高度去中心化的区块链也是高度安全的。
可扩展性由在任意时刻可以在区块链上运行多少个交易来衡量的(通常以每秒交易量来衡量)。区块链可扩展性的限制因素实际上是去中心化,区块链的可扩展性仅相当于其网络中最弱的节点(如最慢的计算机)。区块链每秒能处理的交易量是由区块链中区块的大小和创建频率决定的(区块是数据库的更新版本,每个新区块代表该数据库的最新版本,一串链的区块就成为了区块链)。包容性较差的区块链,需要强大、昂贵的计算机来运行节点,与需要不太复杂的机器的区块链相比,每秒钟可以产生更多的交易量。区块有容量限制,因为它们需要小到网络上最小的计算机都能运行,并在网络上有高需求时填满。如果有人想确保他们的交易在区块中被优先处理(例如,他们想确保他们购买的 NFT 立即被记录到以太坊上),他们会向节点运营商支付额外的 「gas」(执行交易所需的费用),以便让他们的交易在其他交易之前排到前面。把它想象成一个拍卖会,在一个空间有限的区块中,竞争的交易越多(需求[交易]越多,供应[区块空间]有限),执行任何单一交易的成本就越贵。在 2021 年的牛市高峰期,以太坊的平均交易成本是 21美元。因此,无论某人转让 100 万美元还是 10 美元的以太坊,在 2021 年的网络拥堵高峰期,完成该交易的成本都为 21 美元。
像以太坊这样高度去中心化和高度包容的区块链(因此对用户来说是最安全的),其本质上可扩展性较差。因此,即使以太坊是领先的智能合约区块链,它也不能满足数十亿人生活的吞吐量(全球支付网络、国家身份解决方案、全球供应链、社交媒体),并实现以太坊成为世界计算机的目标。
L2 旨在解决以太坊的可扩展性难题。简而言之,L2 可扩展性平台位于应用程序和以太坊之间。一个简化比喻(下文将展开解释),L2 对交易的处理就像压缩文件处理数据。当交易通过 L2 协议从应用程序发送到以太坊时,比直接从应用程序发送至以太坊所使用的区块空间要小几个数量级(最高达 1000 倍)。它是如何实现的呢?
第一步,理解「链上」和「链下」的区别。链上即发生在区块链上的活动,如果交易、计算、数据存储等发生在链上,意味着它是在区块链所有节点上执行并完成存储。因为区块大小限制,链上交易和链上存储的成本非常高昂。然而对于那些优先考虑可扩展性,去中心化和安全性其次的区块链来说,链上交易成本更低廉。另一方面,链下计算和存储的成本更低。云平台在「链下」计算和存储方面已非常成熟,启用新的计算实例来运行一个应用程序的成本很低,而且创建数据库用于存储数据的成本同样不高。AWS 和 Azure 是中心化工具,它们不具有区块扩展性限制,因此可以近乎无限制的扩展计算和存储。
StarkWare 这种扩容解决方案如何应用在 L2?简单来说,L2 承担了运行应用的所有高计算活动,NFT 交易市场(铸造、转移、交易 NFT)、加密货币交易所(记录用户余额、交易所汇率、加密货币支付、钱包签名等)以及链下进行计算和存储的成本低廉。在 L2 中无需支付 gas 费,因此执行这些高复杂性计算的成本仅等同于链上的小部分。那么问题来了,如何将这些在链下执行的计算引入到链上呢?
一笔交易需要完成几个步骤才能够实现从链下到链上,例如 StarkWare 的 L2 Saas 平台,StarkEx。它是 Sorare、ImmutableX 和 dYdX 等无需编写自身智能合约即可实现 L2 可扩展性的平台,用户在 StarkEx API 上构建他们的应用程序,操作过程类似在大部分 b2b 技术平台部署。
首先,交易是由终端用户在运营商的应用程序上生成(如,Sorare 的用户登入 Sorare 并购买 NFT)。运营商将审查此笔交易以确保有效性(包含数字签名、用户适当余额、遵守业务规定),然后再发送到他们的 StarkEx 实例 (StarkEx Instance) 中。每个应用程序都拥有专属的 StarkEx 实例以配置它们的使用情况:永续合约、现货交易、NFT 等。最后 StarkEx 实例执行交易的专属逻辑,再次确保它们符合所需的业务规定。
链下的最后一步,交易从 StarkEx 实例发送到 STARK 验证器。STARK 验证器是处理交易「扩容」的部分,类似压缩文件对于数据的处理,STARK 验证器需处理数十万笔交易(有时数百万笔)并生成长长的数字字符串以表达所有交易,也称为证明。有趣的点是:近乎所有的 StarkEx 运营商都会使用 STARK 验证器发送交易,从而「共享」验证器所生产的证明,因此也将共享验证器称之为「Sharp」。
一旦证明完成(完整的完成交易或在指定时间周期后),活动就转移到链上。证明会发送到链上的 STARK 验证器智能合约。这个智能合约处于以太坊区块链上,就像所有的以太坊智能合约一样,它是公共且开源的。STARK 验证器智能合约不能接收无效证明。如果资金在未经过用户批准(如数字签名)转移,且帐户中没有可用余额来完成交易,那么证明就会被拒绝。如果证明有效(即满足所有业务规定),则该证明会写入以太坊区块链,从而使这些交易具备「以太坊级别」的最终性和安全性(永久记录在区块链上)。通过这种方式,SATRK 证明能够让 StarkEx 在链下过程中实现以太坊 L1 的安全性。
证明验证是 StarkEx 从链下发送到链上的两段信息之一。第二段信息是状态更新。状态更新代表用户帐户完成批量交易后的新余额。它被存储在链上,可应对在链下服务停止工作的情况下,用户仍然可以从以太坊提取自身的资产。
状态更新从每个运营商本身的 StarkEx 实例编写一个链上智能合约,也称为 StarkEx 智能合约,例如,ImmutableX、dYdX、Sorare 都有专属的 StarkEx 智能合约。记录所有的链上交易是存储状态更新的最简单方式;然而,类似于计算,链上的数据存储的成本十分昂贵。运营商有两种选择来实现交易存储,即数据可用性模式。
运营商可以挑选 Rollup 模式(即 dYdX 所采用的);在 Rollup 模式中,上一个状态余额和下一个状态余额之间的差异将被发送到运营商在以太坊上的 StarkEx 智能合约中。它允许第三方访问每个状态更新的增长变化,并单独对 StarkEx 状态做出逆向工程 (Reverse Engineer)。相比于在链上存储每笔交易完整历史,甚至比交易清单的数据调用的成本更低。同时也比交易清单更具有保密性,因为只展示开始状态和结束状态(从中可能包含数以万计笔交易)。
Validium 是另一种数据可用性模式;在 Validium 中,将状态更新存储在数据可用性委员会 (Data Availability Committee) 处。DAC 是独立的第三方,可代表营运商批准并接收和持有每个状态更新,DAC 成员承诺:如果营运商离线时,它们在链上发布状态更新,确保用户可随时查询资产(自托管的重要组成部分)。DAC 成员包括 Consensys、Chainstack、StarkWare 和许多知名团队。成本低于 Rollup 模式是运营商选择 Validium 模式的原因之一;在 Validium 模式中,只有 DAC 成员的签名验证即时的状态更新并存储在 StarkEx 智能合约中。Validium 模式的另一个特点是:交易和余额不存储在链上,对于那些需要确保用户机密的公司来说无疑是个巨大优势。
最后,StarkEx 智能合约是实现自托管的关键部分;通过即时的链上状态更新,用户能够随时提取他们的资产。要求用户为每笔交易签名,如果没有用户批准,将无法变更帐户余额。因此,即使在 StarkEx 崩溃、运营商破产的情况下,用户仍然可以直接通过以太坊上的 StarkEx 智能合约提取余额。这就是 StarkEx 能够预防 FTX 事件,实现可扩展性、安全性和自托管平台的关键。