Address
304 North Cardinal St.
Dorchester Center, MA 02124

Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM

Zk rollups:如何加入零知识运动并将以太坊扩展到下一个水平;并了解知道加密货币中的“Rollups”是如何减少费用和拥堵?

首页 » Blog » Zk rollups:如何加入零知识运动并将以太坊扩展到下一个水平;并了解知道加密货币中的“Rollups”是如何减少费用和拥堵?

零知识 (Zk) 汇总是一种第 2 层扩展解决方案,它通过将计算和状态存储移至链下来提高以太坊的吞吐量。

它可以批量处理数千笔交易,然后将最少的摘要数据发布到主网。

他们通过将多个交易捆绑到一个证明中来实现这一点,然后将其提交到主链。

zk-rollups 背后的技术依赖于零知识证明,这是一种加密技术,允许一方在不泄露任何附加信息的情况下证明声明的有效性。

什么是零知识证明?零是什么意思?

零知识证明是一种在不透露任何相关信息的情况下证明某件事是真实的方法。名称中的“零知识”部分是指证明不会透露超出声明有效性的任何信息。但如何呢?

Zk rollups:如何加入零知识运动并将以太坊扩展到下一个水平;并了解知道加密货币中的“Rollups”是如何减少费用和拥堵?

阿里巴巴实例| 交互式零知识证明

例子:阿里巴巴洞穴

假设您想向您的朋友证明您知道打开山洞中秘密门的魔法词。洞穴有两个入口,A 和 B,通向秘密门所在的同一点。只能通过念咒语才能打开洞内的门。你不想告诉你的朋友这个神奇的词或带他出去。

这个问题的零知识证明方法是这样的:

  • 您从 A 入口或 B 入口进入洞穴,而您的朋友则在外面等候。
  • 然后,您的朋友选择一个入口并向您喊出。
  • 你从你朋友选择的入口出来,证明你可以从里面打开门。
  • 你的朋友不相信。你有 50% 的机会从你朋友选择的同一个入口进入洞穴,并且在不开门的情况下出来。
  • 然而,如果你重复几次,最终你从你的朋友每次选择的同一个入口出来的概率就会很低。这会让你的朋友相信你知道这个神奇的词,而无需透露它或向他展示门。

零知识证明对于保护许多应用程序中的隐私和安全非常有用,例如身份验证、密码学、区块链等。

零知识证明有不同类型,例如交互式和非交互式。交互式零知识证明需要证明者和验证者之间进行通信,而非交互式零知识证明则不需要。上面的阿里巴巴洞穴场景就是交互式 ZKP 的一个例子。

非交互式零知识证明更加高效和方便,但它们依赖于更强的假设和更复杂的技术。

zk-rollups 背后的技术:

  • 零知识证明(ZKP):ZKP 允许一方在不透露任何附加信息的情况下证明声明的有效性。在 zk-rollups 的背景下,ZKP 用于证明捆绑交易的有效性,而无需透露其详细信息。
  • zk-SNARK:zk-SNARK 是 ZKP 的一种特定类型,是紧凑且高效的证明,可以快速验证。它们在 zk-rollups 中用于为多个交易创建单个证明。

zk rollup 的优点和缺点是什么?

优点:

  • 可扩展性:通过将多个交易捆绑到一个证明中,zk-rollups 显着提高了区块链的交易吞吐量。
  • 减少gas费用:由于主链只需要验证单个证明而不是单个交易,因此减少了gas费用。
  • 安全性:Zk-rollups 继承了底层主链的安全性,因为主链验证了 zk-SNARK。
  • 隐私:零知识证明可以通过隐藏交易细节来提供一定程度的隐私,同时仍然证明其有效性。

缺点:

  • 复杂的技术:Zk rollups 依赖于难以理解或实现的高级密码学和数学。
  • 功能有限:Zk rollups 目前针对代币传输和简单操作进行了优化,但不适用于复杂的智能合约或一般计算。
  • 前期成本高:Zk rollups 需要大量的计算资源和天然气费来生成和验证证明,这可能既昂贵又耗时。

zk rollup 项目的一些示例

项目描述
零克同步一个以用户为中心的 zk Rollup 平台,已在主网上活跃
zk交换基于零知识汇总的 AMM 模型的 Layer-2 DEX
zk管为用户和开发人员使用 ZK Rollup 解决方案生成零知识证明的协议
多边形赫尔梅兹开源零知识汇总,针对安全、低成本且可用的以太坊代币传输进行了优化
米尔协议一个开源平台,用户可以在其中创建安全、可扩展和私有的去中心化应用程序
路印协议实现以太坊上高效、低成本交易和交易的第 2 层

总而言之,zk-rollups 是一种很有前途的 Layer-2 可扩展性解决方案,它利用零知识证明将多个交易捆绑到一个证明中,从而提高交易吞吐量并降低 Gas 费用。虽然它们具有多种优势,但其复杂性和有限的支持可能会对广泛采用带来挑战。下面我们去了解了解加密货币中的“Rollups”是如何减少费用和拥堵?

了解加密货币中的“Rollups”:减少费用和拥堵

Zk rollups:如何加入零知识运动并将以太坊扩展到下一个水平;并了解知道加密货币中的“Rollups”是如何减少费用和拥堵?

目前,以太坊每秒只能处理大约 15 笔交易;这意味着验证者会从交易池中选择一组尚未确认的交易,而他们选择这些交易的方式实际上与他们的利润有关。因此,您必须争取将您的交易纳入其中,因为一次可以处理的交易数量有限。

您知道,当验证者将您的交易包含在区块中时,他们会获得费用。现在从验证者的角度思考;当前有两笔交易位于交易池中等待验证器接收。一笔交易愿意支付 10 美元,另一笔交易只支付 1 美元作为费用。 您会选择哪种交易?

10 美元的,对吗?因为如果您将此交易包含在区块中,您将获得 10 美元的费用。

但这是否意味着只有当我将费用设置得较高时我的交易才会被接受?

让我简单地解释一下。当与以太坊网络交互时,您通常会调用某些智能合约。智能合约是一组指令;将它们视为一个程序。每条指令都需要一定的计算能力。

以下是一个用 Solidity 语言编写的简单合约。

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract HelloWorld {
  string public message;
  constructor() {
    message = "Hello World";
  }
  
  function getMessage() public view returns (string memory) {
    return message;
  }

  function setMessage(string memory newMessage) public {
    message = newMessage;
  }
}

如果你是一个 坚固性 开发人员,您可以估算该合约部署在 EVM 上所需的 Gas 量。

当您部署此合约时,首先调用的是其 构造函数,它将 message 变量设置为 “Hello World”这改变了区块链的状态。任何状态变更都需要付费。 假设将字符串存储在变量中的成本为 1 美元。

如果您想将消息设置为其他内容,例如 “欢迎来到 Kishan 的文章”,您需要调用 setMessage() 合约中的方法,传递您所需的消息,这将再次需要一些费用,因为您正在更改状态。假设再次需要 1 美元。

如果我想查看消息内容该怎么办? 您可以简单地调用 getMessage(); 它,不需要任何费用,因为它不会改变状态。解释完之后,让我们回到我们的讨论。

假设,由于某种原因,您当前位于交易池中的交易调用此 HelloWorld 智能合约并将消息设置为您的名字。

现在假设验证者假设选择了您的交易,他会看到您已将费用设置为 1 美元,并且智能合约本身的调用将花费 1 美元。所以,他自己也没有得到什么回报。所有费用均通过与智能合约交互使用。 那他为什么要捡起来呢? 该交易将被拒绝,因为验证者没有动力处理它并将其包含在链中。因此,您必须以更高的费用重试,以便吸引验证者选择您的交易。

当大量用户在以太坊上进行交易时,汽油费会变得非常有竞争力。是的,您可以手动设置费用,但请注意,这可能需要大量时间才能得到确认,因为验证者只会选择对他们有利的交易。

如果您的交易对时间敏感,例如您希望尽快结束交易,那么就会存在被清算的风险。在这种情况下,您最好将费用设置得尽可能高,或者使用一个可以为您提供费用估算的钱包,以便在几秒钟内确认您的交易。因为节省天然气可能会导致您的整个投资组合被抹去。

高额费用阻碍了许多加密货币爱好者在以太坊上进行交易,并且引入了许多其他第一层来解决这个问题。但它们都缺乏去中心化,这就是为什么有人会转向 web3。

那么,有没有办法解决这个问题呢?

我们希望利用以太坊提供的去中心化和安全性,但同时,又不想因为这些高额费用而损失我们的口袋。

解决这些问题的一种方法是 Rollups,一种第 2 层扩展解决方案。

Rollups

Rollup是一种聚合交易并在链外处理交易并将结果发布回链上的方法。

所有这些链下和链上可能会给理解带来疑问,所以让我进一步澄清一下。将 Rollup 视为可以显着减少以太坊区块链费用和拥塞的过程。这项工作的方式是将大量交易Rollup(聚合)在一起,并将它们移动到链外,例如平行链、VM 等。这些平行链由第 2 层网络(例如 Arbitrum、zkSync)操作,乐观主义等

谁聚合交易?

聚合是由称为 Rollup 操作员的实体完成的  其主要工作是收集来自不同用户的交易并在链下环境中执行它们。同样,链下可能意味着很多东西,具体取决于实现,例如虚拟机、侧链或其他第 2 层协议。

一旦执行了交易,它就会将聚合数据(Rollup块)作为 调用数据提交到以太坊链, 并附上其已正确执行的证明。到这里,我们就清楚了,但是 calldata 是什么

将 calldata 视为一种特殊类型的数据,可以存储在以太坊上而不会被执行或影响其状态。

Rollup 运营商需要向以太坊验证器支付费用,以将通话数据包含在区块中。一旦它被包含在内。Rollup 操作员监视 Rollup 合约 (在下一节中解释)是否存在来自其他用户或验证者的任何质疑或争议。如有争议,将作出相应回应。

谁来验证?

Rollup 合约负责  验证 Rollup 操作员提交的调用数据中存在的交易数据和证明。它是部署在以太坊上的智能合约,用于管理Rollup的状态和逻辑。

Rollup 合约从 rollup 操作者处接收交易数据和证明作为 calldata,验证它们,更新 rollup 的状态,并针对任何状态更改发出事件。

它是如何工作的?

让我们结合我们所学到的所有知识并用一个例子来总结一下:

  1. 假设您想使用Rollup发送 1 ETH 给您的朋友 Ram。
  2. 您指定 Ram 的地址以及要发送到钱包中的金额并签署交易。
  3. 之后,您将交易提交给Rollup操作员,该操作员负责聚合来自不同用户的交易并在链外执行环境中执行它们。
  4. 然后,Rollup操作员会将您的交易与其他交易捆绑在所谓的 Rollup块中,并将其作为calldata 提交到以太坊链 。然后,它向验证者支付费用,以将其包含在区块中。
  5. 现在,根据Rollup的类型,Rollup操作员可能需要与调用数据一起提交汇总块有效性的证明或附加断言。
  6. 完成此操作后,Rollup将由 Rollup合约进行处理,Rollup合约是部署在以太坊链上的智能合约,用于管理Rollup的状态和逻辑。合约验证证明或断言,更新Rollup用户的状态,并针对任何状态更改发出事件。
  7. 最后,Ram 在他的Rollup账户中收到您发送的 1 ETH。

Rollup类型

Optimistic Rollup

Optimistic Rollup 是Optimistic的。我的意思是他们假设批次中的每笔交易都是有效的。但是有一个问题!他们给出了一个宽限期,认为交易无效的用户或验证者可以通过提交防欺诈来质疑该交易。然后以太坊主网对其进行验证,如果挑战成功,则rollup区块被拒绝,不诚实的运营商将受到严厉惩罚。

如果宽限期结束后没有争议,则该交易批次将锚定到以太坊,并且其包含的状态更改将被最终确定。

尽管它提供了更高的可扩展性并降低了汽油费,但它会导致交易最终结果延迟,因为人们必须等待宽限期。

比赛中有两匹主要马匹:

  1. Arbitrum
  2. Optimism

zK rollups

我写了一篇详细的文章解释zk-rollups,你可以参考一下。不管怎样,我会向您简要介绍一下它是什么以及它是如何工作的。

-END-