# 以太坊二层百花齐放，解读StarkNet的扩容之路

By [Untitled](https://paragraph.com/@0x8362cecbe8396fa5c6621f135a87af04647889a7) · 2023-03-12

---

2022年5月9日，据官方消息，以太坊二层扩容方案StarkWare宣布，StarkNet Bridge的第一个版本StarkGate Alpha上线主网，用户可以通过StarkGate Alpha将资产从以太坊主网转移到StarkNet Alpha。

**StarkNet简介**

StarkNet是一个运行在以太坊上的无需许可的去中心化Validity-Rollup（也称为“ZK-Rollup”），它作为以太坊上的L2网络运行。StarkNet允许任何dApp实现无限规模的计算，而不影响以太坊的可组合性和安全性，这要归功于其安全且且可扩展性更强的加密证明系统——STARK。StarkNet使用Cairo语言编译，这是以太坊上第一个生产级的图灵完备的冯诺伊曼验证器。Cairo和STARK都是由StarkWare自主开发的，并为团队所有的生产级应用提供动力。

StarkNet Alpha于2021年6月在公共测试网上发布，并于2021年11月主网上线。在主网部署时，StarkNet已经在类似以太坊的状态下提供通用计算。在整个开发过程中，StarkWare团队选择了一种首先发布最重要功能的策略，其本质上是尝试与社区共享进化过程。

因此，目前的StarkNet其实还远未完成。但是，开发人员已经可以借此创建有意义且复杂的应用程序。如今，有数百名开发人员依赖StarkNet、大量dApp，以及一些外部团队为StarkNet生态系统开发工具和基础设施。

自2022年初以来，StarkNet生态系统逐渐已经达到可用性门槛，其已经有能力构建完整且具有一定可用性的dApp。据其团队称，接下StarkNet将专注于系统的性能开发，因为在当前状态下，它仅能够支持有限的交易流。其团队希望在2022年下半年初实现TPS至少比以太坊高一个数量级，而成本至少比以太坊低两个数量级的目标。

**Zero Knowledge Proof、Rollup和ZKSTARK**

**1、零知识证明**

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

零知识证明是一种加密方案，通过该方案，PROVIDER方（PR）可以向VERIFIER方（VER）证明特定信息的真实性，而无需透露任何额外信息。举例而言，VER方如果想要从金库中收集奖励。则需要以下几个步骤：

*   PR方秘密生成密钥（K）
    
*   VER验证密钥（K），允许获得奖励
    
*   ZKP被验证证实
    

同样，如果PR方希望从保险库中检索奖励时则需要：

*   PR方生成密钥（K）并秘密地从保险库中检索奖励
    
*   VER方验证奖励对应于仅在同一保险库中可用的奖励
    
*   ZKP被验证证实
    

总之，其他方的信息和个人数据的详细信息将总是保持匿名。我们不难发现，ZKP相当重视隐私保护，这种方法的有趣之处在于它非常简单、安全并具有令人难以置信的可扩展性。因此许多区块链应用程序都选择它来实现这些优点。

**2、Rollup**

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

ZK-Rollups是正在开发的用于构建2层的选项之一，其通过在单个交易中处理大量转账来提高可扩展性。Plasma每次转账创建一个交易，ZK-Rollups将数百个转账聚合成一个交易。智能合约将解构并验证单笔交易中的所有转账。ZKP方法则被用于公开展示和记录以太坊区块链上区块的有效性。

**3、ZKSNARK和ZKSTARK**

ZKSNARK和ZKSTARK实际上是两种不同类型的零知识证明。

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

1.  交易者创建他们的转账并通过网络广播转账。智能合约将数据存储在两个Merkle树中：
    
2.  中继者收集大量转账以创建聚合。生成SNARK证明就是中继者的工作。
    

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

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

这个新证明解决了旧SNARK证明的最大缺陷之一。这个证明是由StarkWare团队提出，其改善了无许可区块链的两个问题：可扩展性和隐私。

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

StarkNet上的智能合约：Cairo

StarkNet建立在Cairo编程语言之上，这是以太坊上第一个生产级的图灵完备的冯诺伊曼验证器。它实际上是StarkNet生态系统中智能合约的语言。Cairo允许开发人员使用ZKSTARK的强大功能来创建完全可扩展的应用程序。

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

如今，大多数dApp都是围绕智能合约Solidity构建。但这些dApp构建成功后，不可避免地会面临可扩展性问题。因此，越来越多的dApp开始通过转向基于证据的L2可扩展解决方案来解决其可扩展性问题。其通过链下组件支持业务逻辑的一些更为复杂的部分，并在此基础上与链上智能合约进行通信，这样既不会放弃安全性，也有利于可拓展性的提高。因为对系统状态的所有更改都需要经过证据证明（ZKP），且验证链上的证明比完全在链上执行业务逻辑要便宜得多。

Cairo使用证明来实现可扩展性的障碍要低得多。因为如果在Cairo编写逻辑，之后其代码必须在链下得到证明，而一旦证明在链上得到验证后，最终会得到一个可以自信地使用的结果，而这就像它已经在链上运行过一样。

在以太坊上，三种业务是最为昂贵的——计算、传输和存储。

Cairo在一定程度上解决了这三个问题。

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

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

**L2和L3**

以太坊上高昂的交易成本推动了L2的迅猛发展。而由于交易成本大幅降低、对DeFi工具的支持不断增加以及提供流动性的增加，相信最终用户日后也将在L2上开展大部分业务。

L2通过降低每笔交易的gas成本和提高交易率来提高可扩展性。同时，L2保留了去中心化、通用逻辑和可组合性的好处。但是，某些应用程序需要特定的定制，可以通过单独的新层更好地服务，这就让L3有了存在的必要性。

L3与L2相关，就像L2与L1相关一样。只要链接的L2能够支持智能合约验证者，就可以使用有效性证明来实现L3。当L2也使用提交给L1的有效性证明时，就像StarkNet所做的那样，它变成了一个疯狂的递归结构，在其中L2证明的压缩优势就可以乘以L3证明的压缩优势。换言之，如果每一层都实现了1000倍的成本降低，那么与L1相比，L3就可以实现100万倍的降低，同时保持相同的安全性。这时人们的交易费用也只需要通常gas费用的一小部分。综上，我们可以对L3的优势进行如下总结：

*   超可扩展性：利用递归证明的乘法效应。
    
*   由技术堆栈的应用程序设计人员更好地控制
    
*   更具确定性的性能和成本
    
*   定制的数据可用性模型
    
*   更快的功能和技术速度
    
*   机密性：ZKP应用于公共L2上的隐私保护交易。
    
*   互操作性：独立的L3将通过L2而不是L1进行交互。L2显然应该比L1便宜。
    
*   L3对于L2相当于Polkdot的“金丝雀”网络Kusama：在向公众提供之前，可以在L3上测试新的创新。

---

*Originally published on [Untitled](https://paragraph.com/@0x8362cecbe8396fa5c6621f135a87af04647889a7/starknet)*
