{"content":{"title":"以太坊L2扩容方案与零知识证明","body":"# 以太坊L2扩容方案与零知识证明\r\n\r\n## 简介\r\n\r\n\r\n\r\n- 简要概述以太坊L2层现有解决方案\r\n- 简要概述以太坊L2未来扩容的方向\r\n- 简要概述零知识证明的基本概念和零知识证明在以太坊的运用\r\n- 简要概述stark ware的两个产品，但并不推荐现有使用和研究\r\n- 简要概述polygon zkEVM，推荐使用和研究\r\n\r\n## zk-SNARK 与 zk-STARK\r\n\r\n\r\n\r\nzk-SNARK 和 zk-STARK，是零知识证明底层技术。二者都是非交互式证明。\r\n\r\nzk-SNARK，全拼Zero-Knowledge Succinct Non-Interactive Argument of Knowledge，即零知识简洁非交互证明。\r\n\r\nzk-STARK，全拼Zero-Knowledge Scalable Transparent Argument of Knowledge，即零知识可扩展透明证明。\r\n\r\n两者直观的区别在于，zk-SNARK 需要可信设置，zk-STARK 不需要。\r\n\r\n## 以太坊L2 扩容方案\r\n\r\n​\t\t有两种参数可以用来对 L2 扩容解决方案进行分类。其一是根据使用的加密证明分类，其二是看它们的数据可用性 (Data Availability, DA) 存储在链上还是链下。\r\n\r\n\r\n\r\n两种主要的证明类型：\r\n\r\n- 有效性证明 (Validity Proofs) —— 这是一种利用零知识 (ZK, zero-knowledge) 密码学以确保交易有效性的数学证明\r\n- 欺诈证明 (Fraud Proofs) —— 这种证明引入了一种所谓的争议时间延迟 (Dispute Time Delay, DTD)，一旦证明提交至 L2，验证者留有一定的时间以标记出无效的证明；无效证明可能包含着不正确的状态转换，因而会对涉及的验证者施加惩罚；随后状态回滚至最近的有效快照状态处\r\n\r\n\r\n\r\n数据可用性存储在链上或链下：\r\n\r\n- 链上：状态数据连同所有交易的所有已执行的 calldata (智能合约函数调用、原生代币转移、签名) 一起放入交易捆/rollup 的加密证明中，这使得可以在链上访问和验证所有数据。\r\n- 链下：已执行的 calldata 和状态由 L2 处理并存储在链下。这使得这个方案不够安全和去中心化。然而，链下存储数据方案更容易将更多交易打包进一个 rollup 中，也因此比链上调用数据证明方案的速度快许多。\r\n\r\n\r\n![image-20230215161952787.png](https://img.learnblockchain.cn/attachments/2023/02/U8iK2G5863f578c93f3fd.png)\r\n\r\n##  Rollup\r\n\r\n​\t\tRollup是目前用于以太坊扩容的首选二层网络解决方案。通过使用Rollup，与一层网络相比，用户可以[将燃料费减少多达 100 倍](https://l2fees.info/)。\r\n\r\n​\t\tRollup将数百笔交易捆绑（“打包”）为一层网络上的单笔交易。这将把一层网络的费用分摊给Rollup中的每一个人，因而对每个用户都更便宜。Rollup交易在一层网络之外执行，但交易数据会被发布到一层网络。通过将交易数据发布到一层网络，Rollup继承了以太坊的安全性。有两种不同方式可以实现Rollup：基于欺诈性证明的 optimistic Rollup，以及基于零知识证明的 zk Rollup。它们的主要区别在于如何将此交易数据发布到一层网络。\r\n\r\n​\t\t基于 optimistic rollup 的 layer2 为 Optimism 和 Arbitrum，其优势在于：兼容 EVM 的难度不高，可以直接使用 solidity 部署智能合约，直接开发 Dapp；劣势在于：提款等待时间长，安全性、TPS和交易成本方面不如 zk-Rollup。\r\n\r\n​\t\t基于 zk-Rollup 的 layer2 为 StarkNet 和 zkSync，其优势在于：安全性更高，交易确认的时效性更强，TPS和交易成本显著优于 optimistic rollup；但是其劣势在于不易兼容 EVM。\r\n\r\n​\t\t目前业界正在开发 zkEVM 解决方案，现polygon团队已推出第一个开源的zkEVM解决方案polygon zkEVM。\r\n\r\n## stark ware\r\n\r\n​\t\tStarkWare 是目前业界技术领先的 zk-Rollup 扩容解决方案开发公司，其团队核心成员是两种算法的提出者和改进者，并以 zk Stark 技术为核心开发两条产品线：扩容服务引擎 StarkEx，二层扩容网络 StarkNet。\r\n\r\n​\t\t对于StarkWare团队来说，可以从两方面理解它的这两个“产品线”。\r\n\r\n​\t\t一方面，从技术上来看，两者都是以zk Stark技术为基础的解决方案，同时两者的区别在于，StarkEx提供了一系列基础组件，专门为以太坊链上应用（DApp）提供程序服务。具有定制化的特点，因此能满足专用应用的高可扩展性的需求。2020 年 6 月，该产品正式部署在以太坊主网上；而StarkNet的定位与之相反，它采用的是通用的二层扩容解决方案，满足用户对区块链交易效率和交易成本优化的需求，也满足不同应用的兼容性和可组合性需求，但是可扩展性（TPS，Gas费优化）不如定制化的StarkEx引擎。\r\n\r\n​\t\t另一方面，从商业模式上看，StarkEx面向的是B端合作项目方，赚取服务费用或项目分成；而StarkNet面向的广大的C端用户、开发者、sequencer、prover等生态参与者，通过tokenomics以及技术支撑做大L2生态来盈利。所以无论从技术上或者商业上，两个“产品线”都互为补充。\r\n\r\n​\t**特别注意：starkNet 智能合约并不兼容EVM，而是使用的自开发Cairo语言**\r\n\r\n\r\n\r\n- stark ware官网：[Homepage - Starkware](https://starkware.co/)\r\n\r\n- starknet合约代码: https://etherscan.io/address/0xE267213B0749Bb94c575F6170812c887330d9cE3#code\r\n\r\n- stark ware介绍以及starkEx架构：https://mp.weixin.qq.com/s/fBBMttbfyG_Uxf6bLfoHLQ\r\n\r\n- starkEx Github: [starkware-libs/starkex-core (github.com)](https://github.com/starkware-libs/starkex-core/)\r\n\r\n## polygon zkEVM\r\n\r\n​\t\t\r\n\r\n​\t\tPolygon zkEVM 是第一个提供源代码的 zk-Rollup，一个零知识证明以太坊虚拟机，也是第一个此类 L2 可扩展性解决方案。提供完整的 EVM 操作码等效性，以实现流畅的用户体验和以太坊的安全性。最初项目名为Hermez，在2021年8月Hermez被Polygon收购后更名为Polygon zkEVM。在V神的EVM兼容性等级分类中，当前Polygon zkEVM与Scroll并列为第三级，超过其他ZK Rollup，在EVM兼容性方面处于目前的ZK Rollup里的前列。\r\n\r\n**强大且去信任**\r\n\r\n- zk-SNARKs 保证以太坊级别的安全性\r\n- 2000 TPS 的高吞吐量\r\n- 非托管架构\r\n- 资产的完全所有权和控制权（抗审查）\r\n- 以太坊主网上的数据可用性\r\n\r\n**唯一去中心化的zk-rollup**\r\n\r\n- 完全开源和社区驱动\r\n- 与 Hermez REST API 无缝集成\r\n- 无许可的协调者网络\r\n- 带有验证奖励代币的去中心化拍卖模型\r\n- 治理最小化战略\r\n\r\n**简化代币转移**\r\n\r\n- 简单的网络和移动应用程序钱包\r\n- 低成本代币转移\r\n- 原子交换（Atomic swaps）\r\n- 以单一货币支付的费用\r\n- 几分钟内快速高效的退出（提款）\r\n\r\n-----------------------------------------------------------------\r\n\r\n- polygon zkEVM官网：[Polygon | Ethereum's Internet of Blockchains - Polygon](https://polygon.technology/solutions/polygon-zkevm)\r\n\r\n- polygon zkEVM 官方文档：[Polygon zkEVM Documentation | Polygon Wiki](https://wiki.polygon.technology/docs/zkEVM/introduction)\r\n\r\n- polygon zkEVM GitHub：[Polygon zkEVM (github.com)](https://github.com/0xPolygonHermez)"},"author":{"user":"https://learnblockchain.cn/people/66","address":"0xCCF0761Ff668AAc57881af58607765573515CDA4"},"history":"QmTa7evbPTJFndhnniXjehW912PDQqwXWKpCTUVbpHmvWC","timestamp":1678261413,"version":1}