本文提出了一种新的inclusion lists机制,旨在将交易选择的权力分散到大量的参与者中,而非集中在单个行为者身上。该机制通过让每个参与者贡献部分数据,并使用纠删码技术对交易进行编码,从而实现半可否认性,并增加了攻击难度。文章还讨论了该机制的局限性以及可能的改进方案,例如通过修改分叉选择规则来减少审查。
包含列表是一种用于分配选择将哪些交易包含到下一个区块中的权限的技术。目前,最好的想法是让一个来自可能高度去中心化的集合(例如,共识区块提议者)的行为者生成列表。这种权限与排序(或前置)交易的权利是分离的,后者本质上需要规模经济,因此在实践中可能高度集中。
但是,如果我们能够避免将责任放到单个行为者身上,而是放到一大群行为者身上呢?事实上,我们甚至可以以一种半可否认的方式来做到这一点:从每个证明者的贡献来看,没有明确的证据表明他们包含了哪些交易,因为一个单独的数据可能来自多个可能的交易。
这篇文章提出了实现这一目标的一种可能方式。
当 Slot N 的区块发布时,设 seed
为该区块的 RANDAO_REVEAL。为了方便起见,假设每笔交易都在 T
字节以下(例如 T = 500
);我们可以初步提出不支持更大的交易。我们将该 Slot 的所有证明者分成大小为 2 * T
的组,共有 k = attesters_per_slot / (2 * T)
个组。
选择每个证明者作为第 i 组的第 j 个证明者。他们确定在 Slot N 区块之前发布的,优先级费用最高的有效交易,并且其中 hash(seed + tx)
在 2**256 / k * i
和 2**256 / k * (i+1)
之间。他们将该交易进行纠删码编码为 2T
位,并将纠删码编码的第 j 位作为其证明的一部分发布。
当这些证明包含在下一个区块中时,使用诸如 Berlekamp-Welch 之类的算法来尝试从提供的证明者位中提取交易。
[\\
attester\_inclusion\_list.drawio891×351 42.7 KB](https://ethresear.ch/uploads/default/original/3X/d/e/deedccb04e5bb133ccacdbe2c2c17d1e5abdc3ce.png "attester_inclusion_list.drawio")
在两种情况下,Reed-Solomon 解码将失败:
请注意,在情况 (2) 中,如果交易足够小,则高级的 列表解码算法 仍然能够恢复几个或所有交易!
下一个区块提议者将能够看到证明意味着哪些交易,因此他们将能够通过选择性地不包含证明来阻止列表中的交易。这是该方案不可避免的限制,但是可以通过让分叉选择规则降低未能包含足够证明的区块的权重来缓解。
此外,可以修改该机制,以便如果某个交易在 2 个以上的 Slot 中未被包含,所有证明者(或其中很大一部分)都尝试包含它,因此任何未能包含该交易的区块都将失去分叉选择。一种简单的方法是不按 priority_fee
对交易进行评分,而是按 priority_fee * time_seen
进行评分,同时制定一个规则,即已经看到 k
个 Slot 的交易不仅是证明者组 i
的候选者,而且也是证明者组 i...i+k-1
的候选者(如果需要,可以回绕)。
- 原文链接: ethresear.ch/t/one-bit-p...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!