技术方案

frxETH

frxETH 与 Frax 和 FPI 稳定币共享大量代码,并实现了 ERC-2612 标准,允许通过传递给 permit() 函数的 ERC-712 签名进行支出批准。

sfrxETH

sfrxETH 是符合 ERC-4626 标准的保险库。要获取 sfrxETH,首先需要将 sfrxETH 合约批准为 frxETH 的支出者,然后调用 mint()(铸造特定数量的 sfrxETH)或 deposit()(存入特定数量的 frxETH)。批准和铸造步骤可以通过 depositWithSignature()mintWithSignature() 组合,从而无需进行两次单独的交易。

随着验证者产生质押收益,等量的 frxETH 会被铸造并发送到 sfrxETH 合约。这意味着,一旦奖励同步后,用户可以通过赎回 sfrxETH 获取比最初铸造时更多的 frxETH。

为防止恶意用户盗取验证者的收益分配到保险库,奖励分配会在时间周期内平滑分配。每当调用 sfrxETH 合约上的 syncRewards() 时,合约内部余额之外的任何额外 frxETH 都会排队,线性分配到剩余的周期窗口。

sfrxETH 也符合 ERC-2612 标准,允许使用签名授权。

有关验证者的实时信息和监控,请参阅 Frax Facts

frxETHMinter

frxETHMinter 会在接收到 ETH 时通过 submit()receive() 函数铸造 frxETH。每当提交的金额使 minter 余额超过 32 ETH 时,合约会从堆栈中取出一个验证者的存款凭证,并将 32 ETH 的存款连同凭证一起发送到 ETH 2.0 的存款合约,自动启动一个新的验证者节点。

为确保验证者随时准备接受存款,新的凭证会根据需要被添加到堆栈中。如果合约在任何时候耗尽了验证者,frxETH 将继续照常铸造(除非暂停),但不会启动新的验证者,直到更多的验证者凭证被添加到堆栈中。

堆栈中的所有验证者共享同一个提款凭证,即所有验证者共用同一个提款地址。该地址在启动时被设置为 Frax 金库合约,以确保在上线后可以安全地处理提款。

此外,在添加验证者时,必须提供生成存款数据时的 DepositDataRoot,以确保在 ETH 存入时,防止因参数错误导致的验证者被错误接受。

协议可能设置在提交 ETH 时预留部分资金的比例。这些资金在收集 32 ETH 存款用于启动验证者时不被计算在内,而是用于在 DeFi 市场进行做市操作,以确保 frxETH 的流动性市场。

Frax in-House Validators

每个验证者的公开地址和实时统计数据可以在以下链接监控: https://facts.frax.finance/frxeth/validators

第三方和社区对所有 frxETH 验证者的跟踪信息可以在以下链接找到: https://www.rated.network/o/Frax?network=mainnet&timeWindow=1d

Last updated