# StarkEx：为什么、什么以及如何？

By [0xBai_](https://paragraph.com/@alpies) · 2023-11-05

---

**StarkWare 或：我如何学会停止担忧并热爱复杂性**
-------------------------------

STARK 证明（以及 StarkWare 的实际应用）是自比特币发明以来最令人兴奋的技术飞跃之一。与任何技术飞跃一样，STARK 也非常复杂。这种复杂性可能成为人们理解该技术的限制因素，从而成为大众进入 web3 的限制因素。本文的目的是简单解释 STARK，以及 StarkWare 如何实施该技术，以加速区块链的采用。

在我们深入了解 STARK 的工作原理之前，有必要通过一些案例研究来强调这项技术的力量。该案例研究为 STARK 的力量提供了一个很好的例子。

#### **案例研究：Sorare 和 STARKs**

[Sorare](https://sorare.com/) 是欧洲足球、NBA 和美国职业棒球大联盟流行在线奇幻体育游戏的创造者。用户获得数字卡来代表游戏中的玩家，这些卡以 NFT 的形式出现。为了为客户创建 NFT，Sorare 在以太坊上支付“gas”（gas 是在以太坊上执行交易所支付的费用——更多内容见下文）；在巅峰时期，Sorare 每周支付 100 万美元的 Gas 费来铸造（创建）NFT。对于 Sorare 来说，提供以太坊安全性很重要，但 Gas 成本很高。随后，Sorare 与 StarkEx（StarkWare 的 Saas 平台）集成，并从直接在以太坊上铸造转向在第 2 层上铸造。结果：他们的 Gas 成本从每周 100 万美元减少到每周 1 万美元。通过一次技术变革，Sorare 将业务成本大幅降低了 100 倍，同时保持了相同的用户体验和客户安全。当我们谈论技术进步 1000 倍时，我们正在进入印刷机和微处理器领域。STARK 承诺以类似的规模改变区块链。

#### **区块链物理定律**

在了解 STARK 之前，了解区块链本身的优点和局限性会很有帮助。如果您已经熟悉区块链三难困境，您可以跳过这一部分，直接进入解释 L2 及其工作原理的部分。

本文将特别关注以太坊区块链。几乎以任何标准衡量，以太坊都是最大、最成功的区块链（不包括比特币，比特币不是通用的智能合约平台）：它占所有区块链锁定总价值的 50% 以上，拥有约 4000 名活跃开发者（高于比所有其他连锁店的总和还要多）。以太坊也是基于 STARK 技术的基础安全层。

要了解以太坊的优点和局限性，我们应该从以太坊联合创始人 Vitalik Buterin 创建的理解区块链权衡的模型开始，称为区块链三难困境。

区块链三难困境有点像区块链的物理定律：它指出区块链必须在三个关键因素之间进行权衡：安全性、去中心化和可扩展性，并且它只能针对其中两个因素进行优化。就像宇宙中存在万有引力定律一样，任何区块链都无法摆脱区块链三难困境。了解区块链三难困境是了解 STARK 力量的先决条件：

*   **去中心化**有两个因素：第一个是网络中“节点”的数量。节点是整个区块链的副本——简单地说，它是该区块链上发生的所有交易的数据库。具有单个节点的网络是集中式的——例如，保存在笔记本电脑硬盘上的文件或保存在房地产经纪人办公室后面的服务器上的客户帐户列表。由单个实体控制的具有多个节点的网络也是集中式的，例如银行将其客户数据库存储在跨多个区域的两个云网络上。具有许多节点且有许多不同实体控制这些节点的网络是去中心化的。以太坊在给定时间内拥有 7000-8000 个节点。这比 Solana（约 2k）或 Polygon（约 100）等以太坊竞争对手多几倍，使其高度去中心化。然而，值得注意的是对以太坊的一个批评：这些节点的所有权集中——大约 50% 的以太坊节点由三个实体（Lido、Coinbase 和 Kraken）运行。这涉及到去中心化的第二个因素，即“包容性”。这意味着任何想要运行节点的人都可以这样做。包容性的限制因素（除了访问互联网）是运行节点的成本。该成本由运行区块（最新一批交易的副本）所需的计算能力和质押成本（您需要锁定多少特定加密货币\[称为质押\]来决定）运行一个节点）。需要一个装满服务器的房间的计算能力的区块链将不具有包容性，因为只有能够负担得起装满服务器的房间的人或实体才能运行节点。相反，只需要智能手机中包含的计算能力的区块链将具有高度包容性，因为任何拥有智能手机的人都可以参与运行节点。
    
*   **安全性** 是衡量区块链不可变程度的指标；换句话说，任何一方更改或伪造区块链上的交易有多容易。如果一方能够伪造区块链上的交易，他们就可以让账本说出他们想要的任何内容——例如，他们可以在自己的余额中添加一些额外的零，并将其他人的余额清零。对于中心化应用程序来说，伪造账本上的交易在技术上很简单（尽管可能会冒着声誉、巨额罚款甚至牢狱之灾的风险）。这就是监管机构存在的原因，也是银行合规团队拥有数千人并在合规技术上花费数亿美元的原因。区块链确保安全的方式是要求 51% 的节点在将其提交到区块链之前验证一个区块——因此，如果有人能够在以太坊上伪造交易，他们就必须控制 51% 的节点，在高度去中心化的区块链上，这在技术上和财务上都极其困难。因此，高度去中心化的区块链也高度安全。
    
*   **可扩展性** 是通过在任何给定时间可以在区块链上运行的事务数量来衡量的（通常以每秒事务数来衡量）。区块链可扩展性的限制因素实际上是去中心化——区块链的可扩展性取决于其网络中最弱的节点（例如最慢的计算机）。区块链每秒可以处理的交易量取决于区块链中区块的大小和创建频率（区块是数据库的更新版本，每个新区块代表该数据库的最新版本——一条链）块然后成为区块链）。包容性较低的区块链需要功能强大、昂贵的计算机来运行其节点，与需要不太复杂的机器的区块链相比，每秒可以产生更高的交易量。块有容量限制，因为它们需要足够小，以便网络上最小的计算机可以运行，并在网络需求较高时填满。如果有人想确保他们的交易在区块中得到优先考虑（例如，他们想确保他们购买的 NFT 立即记录到以太坊上），他们需要向节点运营商支付额外的“gas”（执行交易所需的费用）为了让他们的交易先于其他交易到达队列的前面。将其视为一场拍卖——竞争进入空间有限的区块的交易越多（需求\[交易\]越多，供应\[区块空间\]有限），执行任何单笔交易的成本就越高。2021 年牛市最高峰时，以太坊上一笔交易的平均成本为 21 美元。因此，无论有人转移 100 万美元还是 10 美元的以太币，在 2021 年网络拥塞高峰时完成该交易将花费 21 美元。
    

像以太坊这样高度去中心化和高度包容性的区块链（因此对用户来说是最安全的）本质上可扩展性较差。因此，尽管以太坊是领先的智能合约区块链，但它无法提供影响数十亿人生活的吞吐量（全球支付网络、国家身份解决方案、全球供应链、社交媒体）并实现以太坊成为全球领先的智能合约区块链的目标。世界计算机。

#### **Layer 2 解决以太坊可扩展性**

Layer 2 旨在解决以太坊的可扩展性问题。简而言之，第 2 层可扩展性平台位于应用程序和以太坊之间。一个过于简化的类比（将在下面展开）是，第 2 层对事务的作用就像 zip 文件对数据的作用一样。当交易通过第 2 层协议从应用程序发送到以太坊时，以太坊区块上使用的空间比这些交易直接从应用程序发送到以太坊要小几个数量级（最多小 1000 倍）。那么这是如何运作的呢？

第一步是了解“链上”和“链下”之间的区别。链上活动发生在区块链上。如果交易、计算、数据存储等发生在链上，则意味着它是在区块链的所有节点上进行和存储的。由于区块大小的限制，链上交易和链上存储都很昂贵。对于优先考虑可扩展性而不是去中心化和安全性的区块链来说，链上交易更便宜。另一方面，链下计算和存储要便宜很多倍。云平台是“链下”计算和存储专家——启动一个新的计算实例来运行应用程序的成本非常低，创建一个数据库来存储所需数量的数据也只需花费很少的成本。AWS 和 Azure 是集中式工具：它们没有限制可扩展性的块，因此它们可以几乎无限地扩展计算和存储。

这如何应用于 StarkWare 的扩展解决方案等第 2 层？简而言之，Layer 2 承担运行 NFT 市场（铸造、转移和交换 NFT）或加密货币交易所（记录客户余额、汇率、加密货币支付、钱包签名等）等应用程序所需的所有高计算活动，并运行他们的计算是在链外进行的，其中计算和存储都很便宜。在第 2 层上，无需支付 Gas 费，因此运行这些高度复杂的计算现在的成本只是链上成本的一小部分。当然，这引出了一个显而易见的问题——如果这些计算是在链外运行的，那么它们如何在链上运行呢？

#### **StarkEx 系统的交易之旅**

为了从链下到链上，一笔交易要经历几个步骤。以下示例适用于 StarkWare 的第 2 层 SaaS 平台（称为 [StarkEx）](https://starkware.co/starkex/)。Sorare、ImmutableX 和 dYdX 等 StarkWare 客户使用该平台来实现第 2 层可扩展性，而无需编写自己的智能合约 - 相反，客户在 StarkEx API 之上构建应用程序，就像使用大多数 B2B 技术平台一样。

#### **链下：应用运营商和 StarkEx 系统**

首先，交易由最终用户在 _运营商的_ 应用程序上生成（例如，Sorare 的客户登录 Sorare 并购买 NFT）。运营商将审查交易以确保其有效（具有数字签名、用户具有适当的余额、遵守所需的业务规则），然后将其发送到自己的 StarkEx 实例。每个应用程序都有自己的 StarkEx 实例，针对其特定用例进行配置 - 永续合约、现货交易、NFT 等。然后，StarkEx 实例再次对交易运行自己的逻辑，确保它们满足所有必需的业务规则。

#### **链下证明者**

对于最后的链下步骤，交易从 StarkEx 实例发送到 STARK Prover。STARK Prover 是交易“汇总”发生的地方。与 zip 文件处理数据的方式类似，STARK Prover 需要数十万笔交易（有时数百万笔）并生成一串非常长的数字来代表所有这些交易，称为证明。有趣的是：几乎所有 StarkEx 运营商都会发送 STARK Prover 的交易来“共享”证明者生成的证明——因此我们将共享证明者称为“Sharp”。

#### **上链**

一旦证明完成（当它完全充满交易时或在指定的时间段之后），操作就会转移到链上。证明在链上发送到 STARK Verifier 智能合约。该智能合约位于以太坊区块链上——与所有以太坊智能合约一样，它是公开且开源的。STARK Verifier 智能合约 _不能_ 接受无效的证明。如果未经客户同意（例如数字签名）而转移资金，如果帐户没有可用余额来完成交易，则证明将被拒绝。如果证明有效（满足所有业务规则），那么该证明将被写入以太坊区块链，从而为这些交易提供“以太坊级”的最终性和安全性（永远在分类账上）。通过这种方式，STARK 证明在 StarkEx 的链下流程上强化了以太坊第 1 层安全性。

证明验证是 StarkEx 从链下发送到链上的两条信息之一。第二条信息是状态更新。状态更新表示处理批次中的所有交易后所有客户帐户的新余额。这需要存储在链上，以便在链下服务停止工作的情况下，客户仍然可以从以太坊提取资金。

### **数据可用性**

状态更新从每个运营商自己的 StarkEx 实例写入一个单独的链上智能合约，称为 StarkEx 智能合约 - ImmutableX 有自己的 StarkEx 智能合约，dYdX、Sorare 等也是如此。存储状态更新的最简单方法是将所有交易记录在链上；然而，就像计算一样，链上的数据存储非常昂贵。运营商有两种存储数据的选择，而不是存储每笔交易——我们称之为数据可用性模式。

#### **汇总模式**

操作员可以选择 Rollup 模式（dYdX 使用的）；在 Rollup 模式下，前一个状态的余额与下一个状态的余额之间的差额将传输到运营商在以太坊上的 StarkEx 智能合约。这允许第三方通过检查每个状态更新报告的增量更改来独立地对 StarkEx 的状态进行逆向工程。这比在链上存储所有交易的整个历史记录便宜几个数量级，甚至比将交易列表报告为 calldata 便宜。与显示交易列表相比，它还具有更高的保密性，因为仅显示起始状态和结束状态（之后可能有数千个交易）。

#### **有效模式**

另一种数据可用性模式是 Validium；在 Validium 模式下，状态更新由数据可用性委员会 (DAC) 成员存储。DAC 成员是独立的第三方，同意代表运营商接收并保存每个状态更新——如果运营商（或 StarkWare）离线，DAC 成员承诺在链上发布状态更新，这保证了用户始终能够收回他们的资金（自我托管的关键组成部分）。DAC 成员包括 Consensys、Chainstack 和 StarkWare 以及更多信誉良好的团体。运营商选择Validium模式是因为它比Rollup模式便宜；在 Validium 模式下，只有 DAC 成员的签名来验证他们是否具有最新的状态更新，才会存储在 StarkEx 智能合约的链上。Validum 模式的另一个特点是交易和余额不存储在链上——这对于想要保护用户机密的公司来说是一个巨大的好处。

最终，StarkEx 智能合约是确保自我托管的关键部分；通过在链上更新最新的状态，用户可以 _随时_ 提取资金。并且通过要求用户对每笔交易进行签名，  未经用户的明确批准，余额\*永远不会改变。\*这样，即使StarkEx崩溃了，即使运营商倒闭了，用户也可以直接写入以太坊上的StarkEx智能合约来检索他们的余额。这是使 StarkEx 成为可扩展且安全的自我托管平台并防止 FTX 等灾难的关键。

---

*Originally published on [0xBai_](https://paragraph.com/@alpies/starkex)*
