本文提出了一种名为匿名包含列表(anon-IL)的设计,旨在通过使用可链接环签名和匿名广播协议(ABP)来匿名化以太坊上的包含列表(IL)提议者,从而增强网络的审查抵抗性。该设计在保护参与者身份的同时,降低了贿赂和敲诈等承诺攻击的风险,从而促进更广泛的IL采用,并提升以太坊的链中立性。
由 Thomas Thiery 和 Luca Zanolini 撰写,并与 Mary Maller、Mark Simkin 和 Antonio Sanso 合作完成
– 2024年5月23日
特别感谢 Julian Ma、Barnabé Monnot 和 Francesco D’Amato 提供的有益意见和反馈。
在以太坊上,依赖少数复杂的实体来构建基础设施会削弱网络的抗审查性。目前,超过 60% 的区块 由主动审查与受制裁地址交互的交易的构建者创建。因此,人们重新燃起寻找方法的兴趣,以使 更去中心化的 提议者集合能够在以太坊区块中强制包含交易。这种兴趣已经体现在专注于包含列表(ILs)的研究和开发工作中。在 ILs 的第一个实际实现方面已经取得了重大进展,目前正在考虑将其纳入即将到来的 Pectra 分叉中(参见设计,EIP 和 规范 此处)。
与此同时,一些工作致力于通过限制创建和提议 ILs 对单一实体的依赖来提高 IL 设计的稳健性,例如通过委员会强制包含集合(COMIS)和多个并发提议者。然而,据我们所知,还没有人尝试开发一种机制,既能保护参与 IL 构建的参与者的身份,又能减少像贿赂和敲诈勒索游戏这样的承诺攻击载体的攻击面。
保护 IL 提议者的身份对于确保隐私、防范任何形式的问责或身份泄露以及促进以太坊上 ILs 的采用至关重要。这一原则类似于投票系统中提供的保密性,参与者可以在没有暴露或报复风险的情况下表达自己的偏好(例如,法律后果)。在这里,我们通过引入匿名包含列表(anon-IL)来解决这一差距,该设计利用可链接的环签名和一个匿名广播协议(ABP)来匿名化以太坊上的 IL 提议者。
本文旨在初步探索匿名化 IL 提议者的分布式机制,为未来的研究和讨论奠定基础。我们以模块化的方式构建该机制,详细说明每个模块的角色以及我们认为实现匿名性所必需的属性。这些模块可以与其他模块交换或作为独立的构建块进行研究。
每个 slot n
,信标委员会的一个子集 C,被称为 IL 委员会,从验证者中随机选择,以参与构建一个全局包含列表(IL^G),该列表由 mempool 中待处理的交易 t 组成。在 IL^G 的构建过程中,秘密选出 IL 委员会成员的一个子集 P 作为 IL 提议者,创建、签名和传播本地包含列表 IL^L,而不泄露他们的身份(第 1 轮)。随机选择的 IL 提出者,即 IL 聚合器 A,收集所有观察到的 IL^L,以创建原始 IL^G 交易及其相关的 IL^G_\text{summary} 并分发给 IL 委员会的其余成员,然后他们对 IL^G_\text{summary} 的有效性进行投票(第 2 轮)。图 1 说明了如何从信标委员会的验证者中选择 P、C 和 A。如果被认为是有效的,则区块 n+1
必须包含 IL^G_\text{summary}、一个证明其有效性的法定人数证书以及满足摘要条目的交易。至关重要的是,我们使用可链接的环签名方案和一个匿名广播协议(ABP)来确保 IL 委员会成员可以签名和广播消息(ILs、投票),而无需泄露其身份。
\
Screenshot 2024-05-13 at 10.38.021320×1300 111 KB
图 1. Anon-IL 参与者选择。 在每个 slot 中,从信标委员会中随机选择 256 个验证者来组成公开已知的 IL 委员会 C。大约有一半的 IL 委员会成员(即
≈128
),即 IL 提议者 P,被秘密选出以参与 IL 的构建。这些提议者之一被随机选出担任 IL 聚合器 A,负责传播最终的全局 IL,以便其他 IL 提议者可以验证它。
在本节中,我们将说明(图 2)并提供 anon-IL 机制的逐步描述。
\
Screenshot 2024-04-24 at 16.51.221898×1032 174 KB
图 2. 说明 anon-IL 设计的示意图。
256
个 IL 委员会成员是公开已知的。256
个 IL 委员会成员中,平均只有一半(即 ≈128
)被秘密选为 IL 提案者 P,以准备 mempool 中观察到的交易的本地包含列表(IL^L)并参与环签名方案。每个 IL 提议者使用他们的私钥以及所有 256
个 IL 委员会成员的公钥签署他们的列表。然后,每个 IL 提案者在 slot n
截止日期 d 之前,通过 ABP 将他们的 IL^L 及其环签名传播到专用的 inclusion_set
子网。10%
)的数量中出现,则构建最终的、去重的全局包含列表(IL^G),并从中派生出 IL^G 摘要。IL^G_\text{summary} 包含一个(address
,gasLimit
)对的列表,用于指定所有 IL^L 中每个交易的 from
和 gasLimit
。每个对都被称为一个 Entry
。然后,聚合器的 IL^G_\text{summary} 及其所有 IL 提案者的签名,以及与汇总条目相对应的原始交易列表,在使用 第 1 轮 中使用的 ABP 在 inclusion_set
子网中广播。TRUE
。此步骤确保对聚合器提议的全局 IL 进行质量检查,并防止单个方生成任意 IL。为了保留投票者的匿名性,投票也使用相同的环签名方案和 ABP 进行传播。如果收到足够多的 TRUE
投票,IL 聚合器(匿名地)通过 ABP 广播有效的 IL^G_\text{summary}、IL^G 原始交易以及验证在全球主题上累积了足够 TRUE
投票的法定人数证书(为了被认为是有效的,区块 n+1
必须包含:
Attester 必须验证提案者 n+1
提议的区块是否包含了满足聚合器传播的有效 IL^G_\text{summary} 条目的所有交易,以及在为区块 n+1
投出证明之前的所有其他标准有效性检查。
确认区块的有效性后,证明者将为区块 n+1
投出证明。
如果 IL^G 没有及时提供,或者没有达到 TRUE
投票的法定人数,则区块 n+1
在不包含满足 IL 的交易的情况下是有效的。
在本节中,我们将介绍选择验证者成为 IL 委员会成员的过程,并介绍 anon-IL 的两个主要组成部分:一个可链接的环签名方案,该方案允许选定的验证者签署他们的本地包含列表和投票,从而证明他们是 IL 委员会的成员,而无需泄露他们的身份;以及一个同步匿名广播协议,该协议使 IL 委员会成员能够在对等网络子网中传播消息,而他们的身份不会因网络流量模式而泄露。
可链接环签名是一种密码学结构,允许一个组(环)的成员代表该组匿名签署消息。这种类型的签名确保以下属性:
环中的每个参与者都维护一对公钥和私钥。公钥是每个人都知道的,并且共同用于形成环。签名者从组中选择几个公钥,通常包括他们自己的公钥,以创建一个环。这种选择的目的是不可能识别参与者中谁是实际的签名者,从而在组内保持匿名性。重要的是,签名验证非常简单,不需要任何特殊访问权限或权限;任何有权访问环成员公钥的人都可以验证签名是否有效,以及签名是否由环的成员之一创建。这确保了任何参与者都可能是特定交易的签名者,从而保持了强大的匿名性和安全性。
对于 anon-IL 设计,我们使用 Groth 和 Kohlweiss 的 “one-out-of-many” 环签名方案。在该方案中,参与者“拥有作为承诺的公钥,并证明他们知道其中一个承诺的开放,以不可链接地表明他们属于该组”。该方案唯一依赖的密码学是组操作和哈希函数。零知识证明者和验证者也可以直接使用,无需编辑,使其特别适合 anon-IL 用例。最后,我们希望它能够很好地扩展到 IL 委员会中选择的参与者数量。
256
个验证者被随机选择以形成 IL 委员会 C(即,环)。这些 IL 委员会成员必须发送一个承诺来证明他们是环的一部分。128
)被秘密选为 IL 提案者 P,并积极参与 IL 的构建。虽然我们采用可链接的环签名方案来隐藏 IL 签名者的身份,但匿名化发送者也至关重要。这是因为,尽管签名者的身份被环签名方案所掩盖,但仍然存在观察者可能将签名者的身份与传输环签名的 IL 的实体联系起来的风险。这种联系可以通过分析与传输相关的元数据或网络模式来实现。为了防止这种情况并充分保护提案者的匿名性,匿名广播协议似乎必不可少。该协议将确保签名的 IL 的传输无法追溯到其来源,从而保障所涉及的身份。
概述
我们引入了一个匿名广播协议 (ABP),其灵感来自 Dandelion 和 Dandelion ++,并根据以太坊的要求量身定制。ABP 旨在于消息传播时(即 IL 和投票),保护委员会成员免受去匿名化攻击。这是通过一个随机化的多阶段过程来路由他们的通信来实现的,该过程隐藏了消息的来源,从而大大复杂化了基于网络流量将这些消息追溯到其原始来源的努力。该协议由两个阶段组成:STEM 阶段和 FLUFF 阶段。在 STEM 阶段,每个委员会成员,无论是作为中继还是扩散器,都会将其本地生成的包含列表转发给一个或两个对等方。委员会成员可以是中继或扩散器。如果委员会成员充当 中继,则在收到本地包含列表后,会将该列表转发给另一个或两个对等方。如果委员会成员是 扩散器,则它通过将收到的列表广播给所有成员来启动 FLUFF 阶段。重要的是要注意,扩散器的角色(涉及为每个消息充当扩散器)是通过一种随机机制确定的,该机制考虑了 slot 编号和成员的身份。
\
Screenshot 2024-05-23 at 09.56.421925×553 59.9 KB
图 3. 在 slot
n
期间执行 ABP 期间,消息的生命周期位于 (A) STEM 和 (B) FLUFF 阶段。 发送方节点以白色着色,中继节点以黑色着色,扩散器节点以红色着色。
为了进一步明确:
ABP 参数
我们进行了初步分析,以确定 ABP 参数,使其能够在以太坊的时间和带宽约束下有效运行。这些分析是了解选择这些参数的权衡和后果的第一步。还应进行详细、全面的分析,以评估延迟、参与者数量以及角色分配(中继与扩散器)对 anon-IL 提供的安全性和匿名化保证的影响。如前所述,我们的设计需要两轮消息交换(一轮用于本地 IL,一轮用于对全局 IL 进行投票),这意味着 ABP 必须在每 12 秒的 slot 中运行两次。我们假设最大 IL 大小为 3M
gas,这相当于大约 0.33 Mb
(有关更多详细信息,请参见附录 1.1)。我们预计环签名方案每轮需要大约 1 秒,为 ABP 留下每轮 5 秒
来完成 STEM 和 FLUFF 阶段。我们评估了传输延迟和网络大小对传播时间的影响 (附录 1.2) 以及拜占庭节点对消息传播成功的影响 (附录 1.3)。此评估帮助我们为 ABP 选择初始参数,并为每个阶段(STEM 和 FLUFF)分配 2.5 秒
,网络大小为 128 个节点
,并在 100 毫秒
和 900 毫秒
之间随机选择一个额外的传输延迟。
在本节中,我们将讨论如何评估 anon-IL 以及在其设计中所做的权衡。
anon-IL背后的核心思想是允许验证者参与构建IL,而不泄露他们的身份。这是通过使用可链接的环签名方案实现的。重要的是,拥有两倍于秘密IL提案者( 128
)的IL委员会成员( 256
)的数量,使每个参与者都可以合理地否认签署或发送任何特定消息。此外,IL提案者使用匿名广播协议来传播消息,从而进一步保护他们的匿名性,防止外部观察者分析网络流量。这些匿名性保证的有效性取决于:
假设anon-IL提供强大的匿名性保证,我们相信它代表了对其他IL设计的重大改进。允许验证者参与维护链中立性,同时受到有针对性的法律或监管措施的保护,大大提高了IL采用的机会。目前,根据censorship.pics,大约7.5%的提案者审查交易。随着IL的引入,这个百分比可能会增加,因为提案者的代理权将是明确要求的。通过保护他们的身份,我们允许整个验证者集合,包括今天审查交易的提案者,参与提高网络对审查的抵抗力,而不受监管措施的针对。此外,依靠秘密选择的IL提案者集合来参与IL的构建,降低了承诺攻击的可行性。似乎合理的推测是,我们的设计将要求攻击者贿赂 256
个IL委员会成员的很大一部分,以便将交易包含在全局IL中或从全局IL中排除。与COMIS不同,在anon-IL中,IL聚合器还使用ABP将其全局IL广播给其他委员会成员,这实际上消除了针对单个方的承诺攻击,除非聚合器自愿自我暴露。攻击者总是可以针对提案者 n+1
,但这会迫使其错过其slot(否则块不是有效的),从而错过所有执行和共识层奖励,并且可能在将来招致错过slot的处罚。
在 anon-IL 中,包含保证在 第 2 轮 中通过包含阈值明确确定,IL 聚合器使用该包含阈值在他们收集的 IL^L\text{s} 中超过 X%
时包含交易。我们建议将此包含阈值设置为 10%
,这意味着最终包含在超过 128 个 IL 提案者中的 12 个
本地 IL 中的每个交易都应包含在 IL^G 及其关联的摘要中。选择相对较低的非零包含阈值可提供良好的包含保证,同时防止来自单个方的垃圾邮件交易填充全局 IL。这种方法避免了单个 IL 提案者可以用其交易淹没系统的情况,从而确保仅包含与其他提案者的本地 IL 重叠的那些交易。通过要求在多个本地列表中看到交易,该协议减轻了恶意 IL 提案者使用垃圾信息交易支配全局列表的风险。这种选择性包含有助于维护 IL 的完整性和效率。第 2 轮 中的另一个参数也会影响包含保证,因为只有当交易的 IL 提案者的 IL^G\text{s} 满足聚合器的 IL^G_\text{summary} 中的至少一部分条目时,才会投 TRUE
投票。这为可能由于 p2p 网络延迟而错过第 1 轮中传播的一些 IL^L\text{s} 的 IL 提案者提供了一些回旋余地。但是,我们建议使用较高的重叠百分比(例如,90%)来约束聚合器的 IL^G 构建并提高包含保证。
我们还需要考虑 IL 已满的情况。当有资格包含的交易超过 IL gas 限制(即 3M
gas)时,IL 提案者和聚合器应如何构建 IL?如果填充 IL 成为一种有利可图的策略,则超过包含阈值的协调 IL 提案者可能会在其 IL^L\text{s} 中添加完全相同的交易,从而挤出其他候选交易。为了减轻这种担忧,我们可以:
保护 IL 提案者身份最明显的缺点是,它使得设计激励方案来奖励为该机制提供有用输入的各方或惩罚那些不提供有用输入的各方变得非常困难。在这篇文章中,anon-IL 不以任何方式奖励 IL 委员会成员,并且假定为改善网络的抗审查性做出贡献是一项验证者可以在不期望额外奖励的情况下承担的任务。也就是说,我们可以设计依赖于指标来评估 IL 提案者构建的全局 IL 质量的激励措施,而无需识别特定的贡献者来奖励个人输入。例如,IL 委员会成员可以根据所有本地 IL 之间的重叠程度获得统一奖励,从而鼓励 IL 提案者包含他们看到的所有在 mempool 中等待的公共交易。
这是一个实现此目的的简单模型,如果我们假设奖励来自与交易相关的费用(请参见条件性小费)。我们让 C 代表委员会成员的总数(在当前的 anon-IL 设计中为 256
),而 T 表示在 mempool 中等待的所有交易的集合。T 中的每个交易 t 都与费用 f_t 相关联,而 I_i 是提案者 i 在其本地 IL 中包含的交易集合。
奖励计算:
R_i = \frac {1} {N} ∑_{t ∈ U} f_t
示例场景:
R_i = \frac {1} {3}(0.1+0.3+0.4+1+0.6) = 0.8 对于每个成员。
请注意,如果奖励来自发行,我们还可以考虑有多少 IL 提案者(在所有可能的提案者中)为激励参与做出了贡献。另一个有趣的途径是让所有委员会成员参与抽奖。所有 256
个参与者都有机会赢得抽奖并获得一部分奖励,但是获胜的概率可能会因 IL 提案者和聚合器秘密证明他们角色的贡献和贡献而有所偏差。这将提供一种奖励个人角色或贡献的方式,同时仍然提供合理的否定(例如,“我得到了奖励,因为我很幸运,但我实际上根本没有参与创建列表”)。我们认为,探索在不损害 IL 提案者匿名性的情况下奖励其贡献的解决方案(例如,将来使用受保护的奖励池、隐形地址或全同态加密)值得进一步研究。
无条件:此属性确保一旦 IL 包含交易,则保证该交易最迟在 slot n+1
上链。
n+1
的末尾。重要的是,如果满足 IL 摘要要求的交易已经包含在有效负载中,则它们将优先于 IL 交易。如果发生这种情况,IL 交易将被还原。在 anon-IL 中,拜占庭节点能够在机制的不同阶段发起各种攻击。这些攻击可以大致分为两种类型:
必须进行彻底的安全分析,以尽可能减轻去匿名化和活性攻击。但是,重要的是要记住,最坏的情况会导致为一个 slot 构建不了 IL:可审查的交易可能仍在 mempool 中等待,并且可以被下一个 IL 委员会拾取。
我们对以太坊上的 IL 提案者进行匿名化的方法虽然在其设计中很强大,但遇到了需要注意的特定局限性:
1.1. IL gas 和大小 (h/t Toni)
之前的 IL 规范经常提到使用 3M gas
的 IL 大小。 我们为 anon-IL 设计选择了相同的 gas 量,并证明了在 snappy 压缩后,一个块可以拥有的最大字节大小是零字节占比 28%
的块(图 S1)。 鉴于零字节的成本较低(4 gas
),而非零字节的成本较高(16 gas
),我们计算一个 3M gas
的 IL 可以拥有的最大大小如下:3M \times 0.28/4 + 3M \times 0.72/16 = 0.33Mb。
\
Screenshot 2024-04-25 at 10.42.201920×782 68.6 KB
**图 S1.** A. 在 Snappy 压缩后,相对于 30M gas 区块中零字节的百分比,Mb 为单位的最大区块大小。 B. 热图显示了区块中零字节的百分比与应用 Snappy 压缩后区块的压缩大小(以 MB 为单位)之间的关系,以及不同的 gas 限制(两个图均来自 Toni)。
1.2. 传输延迟和网络规模对传播时间的影响
然后,我们评估了改变最大传输延迟和网络规模(即 IL 提议者的数量)如何影响 STEM 和 FLUFF 阶段中给定消息的传播时间。
8
,并且秘密的 IL 提议者在每轮中使用 ABP 发送消息,我们假设最小 100 ms
的传输延迟 T_{delay},以及由我们添加到每个消息传输中的最大随机延迟决定的最大值,以帮助去匿名参与者。 因此,我们使用一个简单的分析模型来计算在 FLUFF 阶段到达所有节点所需的传播时间 PT_{FLUFF}:PT_{FLUFF} = T_{delay} \times \log_{(MS - 1)}(R)
其中 \log_{(MS - 1)}(R) 用于计算给定消息到达所有节点所需的跳数。 使用这些参数,根据 T_{delay},计算的传播时间 *PT_{FLUFF}* 在 FLUFF 阶段到达所有节点的情况如图 S2. A 所示。
然后,我们简单地将 PT_{FLUFF} 和 PT_{STEM} 相加,以找到允许在每轮 5 秒
内将消息传播给每个人的可行参数(图 S2.C.)。 因此,我们选择为每个阶段分配 2.5 秒
,将参数设置为 128 个节点
的网络规模,最大添加随机延迟为 900ms
。
\
Screenshot 2024-05-23 at 15.20.171920×919 127 KB
**图 S2.** (**A**) FLUFF 阶段,(**B**) 在 100 次模拟运行中 STEM 阶段,(**C**) 给定轮次的总传播时间(FLUFF + STEM)的**传播时间相对于传输延迟和网络大小**。 x 轴表示传输延迟 T\_{delay},y 轴显示网络大小(64、128、256 个节点)。 颜色强度从快到慢变化。
1.3 拜占庭节点对消息传播成功率的影响
我们考虑了拜占庭节点可能对 IL 委员会成员网络中消息(IL 和投票)的传播产生的影响。 在图 S3 中,我们显示了在 STEM 阶段,对于各种网络规模,在拜占庭参与者不同百分比的情况下,成功到达所有节点的消息比例。
\
Byzantine_Nodes7200×3600 442 KB
**图 S3. 拜占庭节点对消息传播成功率的影响。** 此热图显示了对于 _STEM_ 阶段,在具有不同大小和拜占庭节点比例的网络中,完整消息传播的成功率,并对 100 次模拟运行求平均值。 x 轴表示拜占庭节点的百分比(0% 到 50%),y 轴显示网络大小(64、128、256 个节点)。 颜色强度从蓝色(较高成功率)到红色(较低成功率)不等,说明了拜占庭节点增加如何影响网络可靠性。
- 原文链接: ethresear.ch/t/anonymous...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!