Hermez官方文档翻译(二)开发者-开发指南

开发者

开发指南

本文档是 Hermez Protocol 的概述。 其目的是向开发人员介绍Hermez协议,以使与Hermez Network进行交互的工具(例如HermezJS(javascript SDK)和REST API)的使用变得更加简单。 本文档假定您熟悉以太坊生态系统和 L2 Rollups (尤其是zk-rollups)。

有关更深入的分析,请阅读 协议 部分。

可以从此处下载Hermez智能合约(https://github.com/hermeznetwork/contracts)。

概述

Hermez是一个 zk-rollup解决方案,允许在以太坊公共区块链之上扩展支付和令牌转账。 它使用以太坊进行数据存储,但不进行计算。 此外,通过使用零知识证明,可以很容易地在链上验证计算是否已正确执行。

Hermez Network中的所有帐户和余额都存储在链下状态树中。 传入的用户交易被批处理在一起,并通过zk-SNARK证明这些交易满足智能合约中指定的某些规则,状态树将转换为新的可验证有效状态。

The coordinator is the entity that collects and codifies these transactions, calculates the ZK-SNARK proof and submits the result to the smart contract that validates the transition. Transactions are made public to provide data availability to the protocol so that anyone can rebuild the state tree from on-chain data.

协调者是收集和编码这些交易,计算ZK-SNARK证明并将结果提交给智能合约进行验证。 公开交易以提供协议的数据可用性,以便任何人都可以从链上数据重建状态树。

用户通常通过钱包将交易发送给Hermez。 该工具的目的是通过隐藏不同Hermez组件之间的内部交互并简化用法来改善使用Hermez的体验。

The governance is the entity that oversees the sustainability and evolution of the network. Some functions delegated to the governance include the upgrade of smart contracts, the modification of system parameters, or the execution of the withdrawal delay mechanism among others.

治理是监督网络可持续性和演进的实例。 委托给治理的一些功能包括智能合约的升级,系统参数的修改或执行提款延迟机制等。

Hermez部署了三个主要的智能合约:

  1. Hermez smart contract: Hermez智能合约,通过检查选定协调员提供的zk证明来管理锻造阶段,并更新状态树和退出树。 它还通过收集L1交易并将其添加到交易队列来与用户进行交互。
  2. Consensus smart contract: 共识智能合约, 通过拍卖过程管理协调器节点的选择。
  3. WithdrawalDelayer smart contract: WithdrawalDelayer智能合约, 管理嵌入到系统中的提款保护机制。

下图显示了Hermez的整体图。
在这里插入图片描述
用户使用UI发送L1交易(例如创建帐户,存款或取款请求)。 这些交易由Hermez智能合约收集,并添加到未处理的交易队列中。 用户还可以将L2交易(转移,退出)直接发送到协调器节点。 UI对用户隐藏了所有不必要的复杂性,用户只需选择操作的类型和给定操作(源帐户,目标帐户,转帐金额…)的输入数据即可。 在处理批处理时,协调器从Hermez智能合约中获取待处理的L1交易和已接收的L2交易,并生成证明这些交易已正确执行的证据。 该证明将提供给智能合约,以对其进行验证并更新网络状态。 同时,拍卖过程正在进行中,以在给定的时间内选择协调器节点。 在此拍卖中,节点竞标伪造即将到来的批次的权利,从而收取与那些交易相关的费用。 这些投标的程序将发送到不同的帐户,包括Gitcoin赠款帐户。

Hermez功能可以归纳为4个主要类别:

  1. 处理L1用户和L2用户交易
  2. Forging batches 锻造批次
  3. Forging batches 达成共识以选择协调员
  4. Withdrawal of funds 提取资金

在这里插入图片描述

账户

Hermez将帐户作为叶子存储在Hermez状态树中。 每个帐户存储一种类型的令牌。 一个用户可能拥有多个rollup帐户。

在Hermez Network中可以使用两种类型的帐户进行操作:

  1. Regular: 常规, 常规帐户可用于L1和L2交易。 常规账户包括以太坊和 babyjubjub 公钥。 以太坊密钥用于授权L1交易,Baby Jubjub密钥用于授权L2交易。 以太坊地址可以授权创建一个包含该以太坊地址和Baby Jubjub公钥的普通账户。 通常,这是通过UI完成的。
  2. Internal: 内部,内部帐户仅具有Baby Jubjub密钥,因此只能在L2交易中使用。 由于没有以太坊地址,因此创建帐户不需要授权,只需要使用Baby Jubjub密钥即可。

交易

Hermez交易有两种类型:

  • L1交易是通过智能合约执行的交易。 这些交易可以由用户或协调员启动。

  • L2事务是仅在L2上执行的交易。

L1交易

根据交易的发起者,L1交易可以分为两组:

  • L1用户交易:使用某种形式的UI源自Hermez最终用户。

  • L1协调器交易:源自协调器。

L1 User 交易

L1用户交易由智能合约接收。 将这些交易连接起来并添加到队列中,以强制协调器将它们作为批处理的一部分进行处理。 在下一个L1L2-batch中将被伪造的队列将始终被冻结,并且L1 Transactions将被添加到以下队列中。 如果交易无效(例如,尝试发送比帐户多的金额),电路将处理该交易,但该交易将无效。

该系统允许L1交易不可审查。

L1用户交易的示例包括CreateAccountDeposit,Deposit,DepositTransfer…。所有事务详细信息均由UI处理。

L1协调器交易

L1 Coordinator Transactions allow the coordinator to create regular or internal accounts when forging a batch so that a user can transfer funds to another user that doesn’t own an account yet.

L1协调人交易允许协调人在处理批次时创建常规帐户或内部帐户,以便用户可以将资金转移到尚不拥有帐户的另一个用户。

L2 交易

L2交易专门在L2上执行。 L2交易的示例包括在汇总帐户之间转移资金或将资金转移到退出树的退出。 所有L2交易均由用户发起,该用户通过REST API将交易直接发送到协调器。 取决于UI功能,用户可能能够在不同数量的协调器中进行选择(当前正在锻造的协调器,已经赢得在即将到来的槽位中进行锻造的权利的协调器,…)。

L2交易使用交易中使用的相同令牌支付费用。 协调员每批最多从64个不同的令牌中收取这些费用。 如果在同一批次中使用了超过64个令牌,那么对于过多的令牌将不收取任何费用。

Forging 锻造

在本节中,我们将描述如何达成共识,以选择允许锻造批次并从已处理交易中收取费用的协调员。 我们还将描述一些嵌入式安全机制,这些机制会阻止这些协调员进行恶意行为。

共识

在Hermez zkRollup中,时间分为一定持续时间的时隙:

  • 以太坊区块=〜15s。
  • 插槽= 40个以太坊区块〜10分钟。
    在这里插入图片描述
    Hermez通过举办由智能合约管理的拍卖,就谁将扮演协调员的角色达成共识。 该拍卖在每个插槽的现有节点之间进行。 在拍卖开始时为给定广告位出价最高的节点将声明该广告位的协调者角色。

允许协调器节点在授予的时间段内锻造批次,这是授权协调器处理一批交易,产生ZK-SNARK证明操作正确性并能够收回处理费用的机制。

拍卖出价仅放置在HEZ中。 未来插槽的拍卖会提前开放至S1插槽。 拍卖会在开始插槽之前关闭S2插槽。 暂定的S1和S2值分别是1个月和2个时段。 此外,可以随时通过治理更改这些参数。

如果它是广告位中的第一个出价,则拍卖期间的出价应至少高于最低出价,或者比前一个出价高出溢价出价P%。 最低出价和溢价出价因子(P)均可通过网络管理进行修改。 最低出价和溢价因子的暂定值分别为10 HEZ和10%。 不符合这些条件的竞标将无效,并且在锻造该广告位时,竞标者将收到其HEZ。

在这里插入图片描述在这里插入图片描述

资金分配

所有出价在下达之时即被存放在共识智能合约中。

锻造slot 后,令牌出价将分配给三个不同的帐户:

  • 部分将被烧毁。

  • 部分将分配给具有Gitcoin赠款的捐赠帐户,这将决定如何将这笔资金分配到不同的项目中。

  • 剩余的代币将分配给激励账户,补偿积极参与和网络采用。

保护机制

关于协调器必须如何处理交易有一些规则。 这些规则确保协调器将正确有效地运行,并尝试在其分配的时隙期间锻造尽可能多的交易。

L1/L2 Batches

有两种类型的批次:

  • L2批处理:仅挖矿L2交易。
  • L1L2批处理:L1和L2交易都可以被挖矿。 在这些批次中,协调器必须锻造最后的L1队列。

在这两种情况下,协调器都可以包括L1协调器交易。

协调者必须定期处理L1用户交易。 智能合约为L1L2批次确定了截止日期。 此截止期限表示两个连续L1L2批次之间的最长时间。 一旦达到此期限,协调员就无法锻造任何L2 batch , 直到重置期限为止,该期限仅在伪造L1L2 batch 之后发生。

下图总结了这种机制。
在这里插入图片描述

协调器替代

If for some reason the coordinator of the current slot doesn’t forge any batch in the N first available blocks inside the slot, any available coordinator may forge batches without bidding. This maximum idle time is called Slot deadline, and defines the amount of time that any coordinator must wait to start forging without bidding, provided that the coordinator that won the current slot action hasn’t forged anything during that time.

如果由于某些原因,当前 slot 的协调人没有在该slot 的N个第一个可用区块中锻造任何批次,则任何可用的协调人都可以锻造批次而无需出价。 该最大空闲时间称为“插槽截止时间”,它定义了任何协调员必须等待竞标才能开始进行锻造的时间量,前提是赢得当前插槽操作的协调员在这段时间内没有锻造任何东西。

该机制确保只要有一位诚实的工作协调员,Hermez Network就会运行,并且所有资金都将可收回。

Boot Coordinator 引导协调器

Hermez包括由网络管理的Boot协调器的角色。 引导协调器充当引导程序机制,其任务是确保在项目的早期阶段始终有可用的协调器。

Slot Grouping 插槽分组

Auction is structured in groups of 6 slots (i.e, slots are sequentially indexed 0,1,2,3,4,5,0,1,…). Each slot index has an independent minimum bidding price. This grouping allows certain flexibility to the governance to influence behavior of coordinators. If slots are frequently wasted (meaning that elected coordinators chose not to forge batches), governance may increase the minimum bid amount for certain slots to make slot wasting less efficient for coordinators, and thus allowing the boot coordinator to forge the batches.

拍卖以6个Slot 为一组(即,Slot 被顺序索引为0、1、2、3、4、5、0、1,…)。 每个Slot 索引都有一个独立的最低竞标价格。 这种分组为治理提供了一定的灵活性,以影响协调者的行为。 如果经常浪费slots(这意味着选举的协调员选择不锻造批次),则治理可能会提高某些位置的最低出价,从而使协调员浪费Slot 的效率降低,从而使启动协调员锻造批次。

When the minimum bidding price is set to 0 HEZ value for a given slot index, the value will be locked and governance will not be able to modify it anymore for that slot.

对于给定的slot索引,当最低出价设为0 HEZ值时,该值将被锁定,管理机构将无法再对该slot进行修改。

Withdrawal 提款、收回

通过连续执行两次交易,从Hermez网络中收回资金:

  1. Exit transaction: Funds are transferred from the state tree to the exit tree.
    退出交易:资金从状态树转移到退出树。
  2. Withdrawal 取款:资金从Hermez智能合约转移到用户以太坊地址。 可以从智能合约转移资金的限额和费率由漏斗算法来调节。 根据智能合约中可用的信用额度,提款可能是瞬时的,也可能是延迟的。

Hermez提款限额

Withdrawals are classified in one of several buckets depending on the USD amount to be withdrawn. Every bucket contains some amount of credits indicating the maximum amount that can be withdrawn at any point in time. Buckets are re-filled with credits at a specific rate (depending on bucket). When a user attempts to withdraw funds, credits in the selected bucket are subtracted. If the withdrawal amount exceeds the existing value of credits, the instant withdrawal cannot be performed and a delayed withdrawal will be done instead. Delayed withdrawal is handled by the WithdrawalDelayer smart contract.

提款根据要提款的美元金额分类为几个存储桶之一。 每个存储桶都包含一定数量的信用,这些信用表示在任何时间点都可以提取的最大金额。 桶将以特定的速率(取决于桶)重新填充信用额。 当用户尝试提取资金时,将减去所选存储桶中的信用。 如果提款金额超过信用额度,则无法立即提款,而是延迟提款。 延迟提款由WithdrawalDelayer智能合约处理。

Withdrawal Resolution 提款方案

The amount above the withdrawal limit set by the available credits wont be withdrawn instantly. In this case, excess tokens will be sent to the WithdrawalDelayer smart contract.

超出可用信用额度设置的提款限额的金额将不会立即提款。 在这种情况下,多余的令牌将被发送到WithdrawalDelayer智能合约。

WithdrawalDelayer智能合约可以处于以下两种状态之一:

  1. 正常模式:高于提款限额的金额可用于提款,但有延迟D。这是标准状态。
  2. 紧急模式:Hermez Foundation是唯一可以在发生攻击时将WithdrawalDelayer模式更改为“紧急”模式的机构。 在这种情况下,资金只能由紧急理事会的监管下的管理机构提取,该理事会将把资金退还给用户。

添加新的token

Hermez包含一个列表,其中包含所有受支持的令牌。 以下列表包括对令牌列表的一些要求:

  • 令牌必须为ERC20
  • 治理可以决定添加令牌的费用,因此可以规范令牌的列表。
  • 最多可以有2 ^ {32}个不同的令牌。
  • 合约维护一个汇总表中注册的所有令牌的列表,每个令牌都需要在使用前列出。
  • 令牌0将保留给以太币
  • 令牌只能添加一次

可以通过REST API检索支持的令牌列表(https://apidoc.hermez.network/)。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西京刀客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值