# 读懂StarkNet、Layer3及须关注的StarkNet上的项目

By [rabbithole](https://paragraph.com/@rabbithole-2) · 2022-05-02

---

本文对StarkNet生态做了完整分析，首先将介绍理解所讨论主题的所有基本概念（零知识、ZkRollup等）。

第二部分，将介绍StarkWare开发的解决方案StarkNet/StarkEx，StarkNet: Cairo的智能合约语言及其与Solidity相比的特殊性，以及一些非典型和创新的微妙之处。

最后将分享一小部分正在构建的项目，这些项目将会在生态系统爆发中发挥重要作用。

词汇表

ZKP = 零知识证明（Zero Knowlegde Proof）

ZKSTARK = 零知识可扩展透明知识论证（Zero-Knowledge Scalable Transparent ARguments of Knowledge）

Rollup = 来自ETH智能合约交易的链下聚合（Off-chain aggregation of transactions from a Smart Contract ETH）

ZK-Rollup = 使用ZKP进行Rollup

Scalabilité

SHARP = 共享证明者（Shared Prover）

Zero Knowledge、ZKSTARK和Rollup

零知识证明（Zero Knowledge Proof）

虽然区块链为我们带来了透明度、不变性和去中心化等巨大好处，但隐私的概念却很少被讨论。这就是零知识证明 ( ZKP ) 的用武之地：可组合性、隐私性和不变性的组合。

ZKP是一种加密方案，通过该方案，一方（PROVIDER，我们将其称为PR）可以向另一方（VERIFIER，我们将其称为VER）证明特定信息的真实性，而无需透露任何额外信息。

在一个具体的例子中，VER想要从金库中收集奖励。在ZK中：

PR秘密生成密钥 (K)

VER验证密钥（K），允许获得奖励

ZKP被验证证实

同样的，ZKP也可以解决：

PR生成密钥 (K) 并秘密地从保险库中检索奖励

VER验证奖励对应于仅在同一保险库中可用的奖励

ZKP被验证证实

总之，VER验证者将不知道除布尔语句之外的任何信息。其他方的信息和个人数据的详细信息保持匿名。

如你所见，ZKP允许隐私。但是这种方法的有趣之处在于它非常简单、安全并具有令人难以置信的可扩展性，许多区块链应用程序都选择它来实现这些优点。

Rollup和Zk-Rollup

以太坊Rollup是以太坊智能合约中交易的链下聚合，通过将吞吐量从当前的15 tps提高到超过 1000 tps来减少费用和拥塞。

ZK-Rollups是正在开发的用于构建2层的选项之一，通过在单个交易中处理大量转账来提高可扩展性。Plasma每次转账创建一个交易，ZK-Rollups将数百个转账聚合成一个交易。智能合约将解构并验证单笔交易中的所有转账：另一个可扩展性证明。

ZKP方法用于公开展示和记录以太坊区块链上区块的有效性。ZK通过减少交易中持有的数据量来减少验证区块的计算和存储资源；不需要数据集的知识。

ZKSNARK — ZKSTARK

下面将介绍本文的一个关键概念：ZKSNARK和ZKSTARK，它们实际上是两种不同类型的零知识证明。

ZK-Rollup方案由两种类型的用户组成：中继者和交易者。

1、交易者创建他们的转账并通过网络广播转账。智能合约将数据存储在两个Merkle树中：

一个默克尔树中的地址

另一个默克尔树中的转账的金额。

2、中继者收集大量转账以创建聚合。生成SNARK证明是中继者的工作：ZKSNARK。

SNARK证明是代表区块链状态改变的哈希值。SNARK证明将转账前的区块链快照与转移后的区块链快照进行比较，并仅向主网络报告可证明哈希的变化。

在ZK-STARK之前，ZK-SNARK用于创建ZK证明系统，但需要一个或多个受信任方来初始配置 ZK证明系统，这引入了这些受信任方的漏洞，从而危及整个系统的机密性。ZK-STARK通过消除对可信配置的需求来改进这项技术。

这个新证明解决了旧SNARK证明的最大缺陷之一。这个证明是由StarkWare团队提出。我稍后将介绍。

STARKs改善了无许可区块链的两个问题：可扩展性和隐私。

STARK通过允许开发人员将计算和存储转移到链下来提高可扩展性。链下服务将能够生成证明链下计算完整性的STARK证明。然后将这些证明送回链上，供任何相关方验证计算。使用 STARK转移大部分的链下计算工作允许现有的区块链基础设施以指数方式扩展，同时保持计算完整性：它将改变游戏规则。

现在你拥有进入StarkWare：StarkNet生态系统的钥匙了。

Starware x StarkNet

StarkNet是一种去中心化、无需许可的ZK-Rollup（基于ZKP），并使用ZKSTARK技术在不损害隐私的情况下实现指数级扩展。

StarkNet Alpha于2021年6月在公共测试网上发布，并于2021年11月主网上线。在主网部署时，StarkNet已经在类似以太坊的状态下提供通用计算。

在整个开发过程中，StarkWare团队选择了一种专注于首先发布最重要功能的方法，本质上是与社区共享进化过程。

StarkNet远未完成，但即使是现在，开发人员已经可以创建有意义且复杂的应用程序。如今，有数百名开发人员依赖StarkNet、大量dApp，以及一些外部团队为StarkNet生态系统开发工具和基础设施（我们将在最后一节中看到）。

一系列更新提供了许多重要功能。有几个引起了我的注意：

L1 L2消息传递

链上数据和可组合性支持

活动支持

基础定价机制，合约升级

钱包抽象（现在是智能合约）

测试框架、开发工具、快速确认

自2022年年初以来，生态系统已达到可用性门槛：可以构建完整且令人惊叹的dApp。团队现在将专注于系统性能：在当前状态下，它能够支持有限的交易流。目标是在2022年下半年初实现 TPS至少比以太坊高一个数量级，而成本至少比以太坊低两个数量级。

StarkNet必须是一个完全去中心化的无许可网络，具有领导选举和治理机制。一旦吞吐量飙升和成本下降，实现这一目标将成为主要目标。

StarkEx现在是一些使用L2的最成功dApp的扩展引擎：dYdX（永续合约）、DeversiFi（交易和现金支付），以及Immutable X(IMX) 和Sorare（NFT 铸造和交易）。

分形扩展：3层及更多

以太坊上高昂的交易成本推动L2发展。StarkWare的范式是，由于交易成本大幅降低、对DeFi 工具的支持不断增加以及它们提供的流动性增加，最终用户将在L2上开展大部分业务。L2s通过降低每笔交易的gas成本和提高交易率来提高可扩展性。同时，L2s保留了去中心化、通用逻辑和可组合性的好处。但是，某些应用程序需要特定的定制，可以通过单独的新层更好地服务：让我们谈谈第 3 层。

L3与L2相关，就像L2与L1相关一样。只要链接的L2能够支持智能合约验证者，就可以使用有效性证明来实现L3。当L2也使用提交给L1的有效性证明时，就像StarkNet所做的那样，它变成了一个疯狂的递归结构，其中L2证明的压缩优势乘以L3证明的压缩优势。

换句话说，如果每一层都实现了例如1000倍的成本降低，那么与L1相比，所讨论的L3可以实现100万倍的降低，同时保持相同的安全性。然后，人们可以想象一笔交易费用只需要通常的 gas费用的一小部分。

StarkWare解释了拥有3层的优势：

超可扩展性：利用递归证明的乘法效应。

由技术堆栈的应用程序设计人员更好地控制：

更具确定性的性能和成本

定制的数据可用性模型（例如，基于Validium或特定于应用程序的链式数据压缩），

更快的功能和技术速度（例如，引入尚未准备好普遍可用的新功能）。

机密性：ZKP应用于公共L2上的隐私保护交易。

互操作性：独立的L3将通过L2而不是L1进行交互。L2显然应该比L1便宜。

L3对于L2相当于Polkdot的“金丝雀”网络Kusama：在向公众提供之前，可以在L3上测试新的创新。

同样，我们也提供了一个由StarkWare提出的3层理论例子：

具有Validium数据可用性的StarkNet，例如，用于对价格极为敏感的应用程序的一般用途。

为获得更好的应用性能而定制的特定应用StarkNet系统，例如，使用指定的存储结构或数据可用性压缩。

具有Validium或Rollup数据可用性的StarkEx系统（例如服务于dYdX、Sorare、Immutable和 DeversiFi的系统）立即为StarkNet带来了经过实战验证的可扩展性优势。

隐私StarkNet实例（在此示例中也为L4）启用隐私保护交易，而无需将它们包含在公共StarkNet中。

Starknet上的智能合约：Cairo

StarkNet建立在Cairo编程语言之上，这是以太坊上第一个生产级完整的冯诺依曼图灵检查者（checker）。它实际上是生态系统中智能合约的语言。Cairo允许开发人员使用ZKSTARK的强大功能来创建完全可扩展的应用程序。让我们仔细看看。

Cairo：智能合约

Cairo是一种用于编写可证明程序的语言：Cairo程序的执行会产生跟踪，然后可以将其发送给证明者，证明者会生成由Cairo程序表示的指令或计算的有效性的STARK 证明。然后可以用验证者检查证明。

如今，大多数dApp都是围绕智能合约Solidity构建，实现了某种逻辑和接口以及后端。这些 dApp成功后，不可避免地会面临可扩展性问题。

我们越来越多地看到dApp通过转向基于证据的L2可扩展解决方案（例如StarkEx的 DeversiFi）来解决其可扩展性问题。链下组件支持业务逻辑的一些更复杂的部分，并与链上智能合约进行通信，而不会放弃安全性，因为对系统状态的所有更改都经过证据证明 ( ZKP )。可扩展性提高了，因为验证链上证明比完全在链上执行业务逻辑要便宜得多。

Cairo使用证明来实现可扩展性的障碍要低得多：在Cairo编写逻辑，然后代码必须在链下得到证明，一旦证明在链上得到验证，你最终会得到一个可以自信地使用的结果——就像它在链上运行一样。

在以太坊上，三点是昂贵的：计算、传输和存储。

Cairo解决了这三个问题。要了解它是如何做到这一点的，我们需要引入一个新概念——共享证明者（The Shared Prover或SHARP）。

SHARP是Cairo代码和Solidity智能合约之间的链接。它具有三个主要组件：证明者（链下）、智能合约验证者（链上）和事实记录器合约（链上）。

证明者跟踪你的程序的执行，证明它是有效的并将这个证明发送给验证者。在验证了证明之后，链上验证者采取了更重要的一步：它在事实寄存器中写入一个事实来证明证明的有效性。这个事实就像一个没有信任的批准印章，证明Cairo计划的计算是正确的。现在，dApp的智能合约剩下的就是验证这一事实是否存在，以便依赖于链下执行的计算。

为了进一步了解这个开发环境，请看Notion页面：

必须关注的StarkNet上的项目

StarkNet钱包：ArgentX

第一步是配置钱包。我们将使用ArgentX：下载chrome扩展或查看他们的repo

不像以太坊L1的私钥和账户通常是同一个东西（想想EOA钱包），StarkNet支持账户抽象，这意味着每个账户实际上都是一个智能合约，必须先部署它才能与网络交互。对于普通用户来说，这既是一个绝佳的机会，也增加了复杂性。

ArgentX钱包在这里被用来抽象出复杂性：它创建和保护私钥，部署密钥控制的账户合约，连接到去中心化应用程序并将交易发送到StarkNet网络。

在我看来，使用智能合约作为钱包是安全性的一大进步。ArgentX提供了与钱包相同的方式来创建保险柜（因此是自动多重签名）。除非你使用监护人，否则所有地址不受信任的交易都会被自动阻止。这种安全性涵盖了所有资产，具有可信地址的交易是透明的。

目前，可用的应用程序主要在StarkNet的测试网上，要使用它们，你必须获得测试代币：[https://faucet.goerli.starknet.io/](https://faucet.goerli.starknet.io/)

StarkNet桥

第二个最重要的事情是：如何将资金从L1（以太坊）转移到L2 Starknet。答案在StarGate网桥中。不过应该谨慎，因为它又是一个Alpha产品，尚未经过审计。

StarkNet DEX — AMM

我们将从进入新生态系统时都在寻找的东西开始：DEX、交易和AMM。

截至今天，有几个dApp脱颖而出：

Zigzag：DEX，一个围绕ZKP构建的去中心化交易所，带有OrderBook。

ZKX:永续合约交易

Starkswap:DEX AMM，自动做市商的去中心化交易所

StarkNet借贷

zkLend：zkLend是基于StarkNet的货币市场协议。ZkLend为机构客户（“Apollo”）和面向DeFi零售用户（“Artemis”）的免授权服务提供双重授权套件。

StarkNet Launchpad：Zkpad ZkPad为所有人建立一个风险投资平台。

像往常一样，在我看来，新生态系统的焦点之一是：Launchpad。ZkPad的目标是为创始人提供战略和运营支持，包括 Twitter/Discord上的联合营销、合作伙伴关系和生态系统介绍、访问选定人才的数据库，包括Cairo开发人员、UX/UI设计师和营销人员。该平台专门用于向个人开放以前为投资基金保留的投资机会。

StarkNet DeFi

Magnety：Magnety是一种资产管理协议，允许任何人（例如投资集团、DAO或个人）通过Starknet和L1 DeFi生态系统创建和管理对冲基金。该协议允许用户根据可以选择的投资策略创建一个高度可定制的金库。

StarkNet上的项目目前被汇集在这个Notion页面

---

*Originally published on [rabbithole](https://paragraph.com/@rabbithole-2/starknet-layer3-starknet)*
