本文探讨了将保证金(bond)纳入OPStack的故障争议博弈中,以激励参与和诚实行为的理论基础。
本文探讨了将保证金(bond)纳入 OP Stack 的故障争议博弈中,以激励参与和诚实行为的理论基础。
在 OP Stack 的故障证明系统(Fault Proof System)中,争议博弈(dispute games)是去中心化的故障检测的关键机制,它利用系统的模块化架构增强可组合性并实现并行升级。这些博弈是争议协议(dispute games)的基础,提供了一个通过兼容激励和解决机制来验证信息的结构化方法,促进了公平和准确性。
争议博弈应提供两种激励:
诚实行为是防止无效结果的必要条件,在 OP Stack 的情境里,这意味着防止桥接中的无效提款。然而,这种激励并不够。我们仍然需要鼓励诚实的玩家实际参与进来。这就是保证金发挥作用的地方。
保证金用于封装与所作的声明(claims)相关的成本,这是争议博弈的一个关键方面。声明的成本源于几个因素。首先,不诚实的声明需要诚实玩家在游戏中投入额外的时间和精力。由于无法立即明确哪些是诚实的,所有声明都必须进行担保,以阻止轻率的声明。接下来,需要有一个奖励机制来激励诚实的参与者质疑声明。这个奖励池的价值由作出声明的过程承担。
虽然这些组件的内在成本保持不变,但保证金的价值由于不断变化的 gas 费而受到波动。因此,促进公平至关重要,以确保所有玩家的参与成本一致。如果不诚实参与者的花费可以超过诚实的参与者,系统就会变得不公平,使得无人质疑不诚实的声明。在诚实参与者的成本显著高于不诚实参与者的情形下,这尤其成问题,成了诚实参与的主要阻碍。这个就是我们所说的**抵押(collateralization)**问题。
此外,最符合这个博弈目标的是最小化保证金的要求。以此我们扩大了拥有必要资本来参与的,潜在的诚实玩家的池子。
在探索保证金的设计时,有几件事很重要——我们可探索的空间被限定在与故障争议博弈(fault dispute game,FDG)机制兼容的设计上。
抵押不足(Under-collateralization)必须仅限于其所属的个人债权,并且不应级联到其他子游戏中。明确地说,债券抵押应该是一种孤立的行为,与任何基于团队的考虑分开。
**理由:**在 OP Stack 故障争议博弈中,经过修订的决议协议和挑战者规则存在一种支持“无效路径(invalid path)”的激励,目的是惩罚搭便车的参与者。无论上层声明或上上层声明是否有足够抵押,这种激励都应该持续存在。因此,任何保证金设计都必须排除集体或团队性质的抵押。本质上,保证金抵押应局限于它所关联的特定子博弈。
作为上述限制的后续,抵押不足的声明不应改变已解决的子博弈的结果。对抵押不足的处罚应限于保证金激励(包括没收支付的保证金)。
**理由:**通过将抵押不足的后果限制在保证金支付上,我们确保故障争议博弈的基本动态保持不变。这保持了鼓励诚实行为的激励结构,同时惩罚不诚实或资本不足的玩家。这也保留了决议的简洁性——即使保证金增加,协议依然稳健。
上述考虑因素有助于确保我们的保证金设计不破坏争议博弈的机制。通过关注这些设计目标,我们简化了对争议博弈的分析。这也让我们可以在不重新审计整个争议博弈机制的情况下更改保证金的设计。实际上,保证金成为添加到争议博弈中的一个“模块”,创造针对用户参与的金融性激励。
在故障争议博弈中,保证金有两个功能:
用户需要保证金以参与故障争议博弈。具体来说,如今的移动要求声明具有保证金。进行一次移动有最低的保证金要求。然而,所需的确切金额可以从故障争议博弈的核心中抽象出来。
在子博弈决议中,如果子博弈根的决议结果显示其不正确,那么它的保证金将分配给最左侧的反驳者。在博弈的最大深度,当声明人通过调用 step()
来反驳一个有保证金的声明时,保证金将分配给成功调用 step()
的账户。
因此,OP Stack 的保证金设计中需要解决的唯一问题是计算出在故障争议博弈中进行移动的最小保证金要求:
function getRequiredBond(Position _gamePosition) public pure
returns (uint256 requiredBond_)
我们将要添加到故障争议博弈中的初始保证金设计是“大额保证金”。这本质上是对争议博弈中所有移动的由以太币计价的大额保证金的要求。保证金的定价取决于两个因素:反驳所附声明所需的 gas,以及该声明的深度。
保证金根据 gas 定价,以确保诚实玩家的奖励覆盖博弈中使用的 gas 成本。gas 的定价包括一个固定的基础费,通常显著高于平均基础费,以应对潜在的费用增长。这个基础费乘数遏制了垃圾声明。
在最大博弈深度处的移动是最昂贵的,因为它们可能需要与虚拟机甚至 PreimageOracle 交互。因此,在 MAX_DEPTH - 1 的保证金显著低于 MAX_DEPTH。攻击者可以利用这种差异,在 MAX_DEPTH-1 创建虚假声明以获得比诚实参与者更大的花费。为防止这一点,保证金通过基于声明深度的因子进行缩放,以避免 MAX_DEPTH 处保证金的大幅增加。这种方法有助于最小化在 MAX_DEPTH-1 提出声明的参与者的收益。
可以使用以下公式计算缩放因子 x:
通过将这个缩放因子应用位于深度 d 的保证金,定价则为 i * x^d。
考虑到这些因子,如果 g 等于 200M gas,i 是 400K,博弈深度是 73,那么根声明所需的保证金是 0.08 ETH,基础费是 200gwei。
大额保证金的设计直截了当,不具有很高的资本效率。尽管如此,设计目标是产生确保准确的争议决议的激励。故障争议博弈的模块性使得保证金设计的安全升级成为可能。
原文链接: Incentivizing honesty and participation in the OP Stack’s Fault Proof System
找到我们
OP 中文力量是由 GCC、LXDAO、PlanckerDAO,登链社区和 TraDAO 共同发起的 Optimism 中文开发者社区,是一个传播 Optimism 技术和公共物品理念的组织,旨在成为链接华语社区和 Optimism 生态的桥梁,促进 Optimism 生态和华语社区内的双向交流,促进公共物品的繁荣。
OP 中文力量是 GCC 中文力量计划旗下专注 OP 生态的中文社区,由 GCC 捐助孵化成立。
微信公众号: Optimism 中文
Twitter: <https://x.com/Optimismzh>
Notion:<https://www.notion.so/lxdao/Optimism-99a78f831195451a9f16724342c0c4ed>
Telegram:<https://t.me/optimism_cn>
Mirror: <https://mirror.xyz/optimismcn.eth>
微信群:公众号后台回复 【加群】
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!