原文:《A Beginner’s Guide to Ethereum Censorship》by Donovan Choy
编译:wesely
2022 年 8 月 8 日,美国财政部将 Tornado Cash 列出了制裁名单。
所有人都知道监管机构讨厌加密货币,但直接制裁 DeFi 出乎了所有人的意料,这反应了美国监管机构在打击加密货币方面所做的努力。
从某种程度上来说,对 Tornado 的制裁并不全是坏事,监管冲击让 DeFi 想起了它的基本原则,并开启了对分散金融版图中每一个中心化制约限制的冲击。
核心:去中心化实际上很重要。
我们走过的任何集中化捷径都会被反过来作用于你。
审查制度的话题很难被关注,要理解以太坊中心化问题需要一些技术知识,而 Crypto 的术语海洋对很多人来说难以涉足。本文试图揭开以太坊过去几个月里所有遭遇的各种审查问题,并尽可能用通俗易懂的语言揭开影藏其中的神秘面纱。
我列出了以太坊协议的每一个主要的中心化载体,并简要介绍了开发人员正在研究的各种技术解决方案。
以太坊供应链的简要总结
以太坊最初的设计理论上只涉及两个参与者:
- 运行自己的节点的用户,该节点将通过点对点网络发送事务到区块验证器,然后区块验证器将构建一个块并包含该事务。
- 区块链验证器 ( 我们在 PoW 中称它们为矿工,在 PoS 中称它们为质押者 ) 是验证块的中立参与者。
实践中,这个过程要复杂得多。通过向运行套利机器人的搜索者出售区块,验证者可以对打包交易进行不正当的歧视,在利益驱动下保持着这种动机。这会导致了更高的交易成本和链上的拥塞,这种现象被称为最大可提取值 (MEV)。过去两年,以太坊上的 MEV 已达 6.75 亿美元 (Cosmos 上估计为 670 万美元 )。
在合并后的以太坊中,MEV 交易顺序如下:
1. 用户通过 dapp 的前端与钱包创建交易。这些交易被发送到内存池
2. 搜索者运行套利机器人扫描内存池,然后将交易捆绑在一起
3. 捆绑交易被传递给区块建造者,后者再附上收费报价
4. 如果构建者和验证者都连接到中继器,则中继器将参与隐藏捆绑的去块,然后将其提供拍卖
5. 验证者 (AKA 区块提议者 ) 选择费用出价并提议区块
6. 证明者在区块最终上链之前对其进行证明
在这个事务顺序中,中心化载体存在于每一步当中,让我们从头开始依次梳理。
1. 前端接口
当你想买一些 ETH 时会访问 uniswap.com,可以看到精心设计的粉色 / 白色用户界面,并且可以让你轻松导航你的交易中。连接 MetaMask,选择流动资金池,然后单击「send」以执行您的交易。我们认为这个简单的过程是理所当然的,但这个环节中已经出现了许多中心化的威胁。
审查威胁
目前,许多 dapp 的前端接口的现实依赖是中心化。Web3 的短暂历史表明,当监管机进驻时,DeFi 往往都会妥协。这种情况发生在 Balancer 从其前端隐藏了 2000 万美元的流动资金池时、发生在 Uniswap Labs 迅速在其前端下架了数十种合成资产以避免 SEC 审查时。MetaMask 和 Infura 也根据 Tornado Cash 制裁措施来阻止钱包地址的访问。(推荐专题:《Tornado Cash陷入监管“龙卷风”》)
跨过前端也只是冰山一角。我们使用的 dapp 依赖 RPC 节点(服务器)来传达用户的需求,节点就是一个连接点,可以把它想象成一个 API,它能在区块链上访问信息、通信和执行交易。
在理想的世界中,每个人都会运行自己的节点。但正如 Signal 创始人 Moxie Marlinspike 曾在对 Web3 所做的批评,大多数人不运行自己的节点,这造成了对 Infura 和 Alchemy 等中心化节点服务提供商的依赖。他们的存在让 DeFi 变得更加轻松容易,但正如你所知,这中间是存在权衡取舍的。由于 Uniswap 和 Metamask 等大量 dapp 反过来依赖 Infura 运行节点,因此出现了一个重要的中心化载体。
像 Infura 这样的中心化公司,如果被监管机构盯上,将对以太坊造成重大破坏。今年 3 月份,Infura 就禁止了伊朗 IP 地址以遵守美国的政治制裁,出现中心化节点提供商这个问题的原因也有技术原因。以太坊在 2020 年 11 月经历了网络中断,当时 Infura 的主网 API 由于其 Geth 客户端不是最新的而导致许多 dapp 无法使用。
最后,节点需要托管在某个地方。实际上,许多以太坊节点都托管在 AWS、Hetzner 和 Google Cloud 等集中式云服务提供商上(Solana 和比特币也是如此)。这里的中心化载体很明显:云提供商可以任意停止服务器操作。8 月份,当 Hetzner 澄清在其服务器上运行以太坊节点违反其服务条款时,社区就收到了这一提醒。
资料来源:ethernodes.org
现在以及有这么多中心化载体,但我们还没有进入内存池。
解决方案#1
前端中心化是一个问题,但相对影响较小。这要归功于蓬勃发展的 DeFi 中间件生态系统,它让我们能够以各种方式绕过审查过的前端。包括 Zapper 和 Zerion 等投资组合跟踪器、具有集成「Swap」功能的加密钱包、1inch 和 Paraswap 等 DeFi 聚合器。它们让你无需直接访问即可访问 dapp。像 Uniswap 这样的大多数 dapp 也承诺将其前端代码开源,允许任何个人或是 DAO 重新创建前端。
为了绕过审查的前端,像 IPFS 这样的去中心化存储提供商也被用来托管具有静态内容的前端域。对于具有动态内容的前端(社交媒体),像 The Graph 这样的去中心化索引协议可以通过统一的查询语言跨链和 dapp 查询数据。对于域名审查,像 ENS 这样的去中心化域名服务通过在以太坊智能合约上构建域名,提供了一种更抗审查的方式来托管域名。这与当今大多数存储在集中式 DNS 服务器上的网站不同,后者会受到域名扣押或 IP 地址封锁的影响。
总之,这些去中心化的基础设施协议为 DeFi 前端的去中心化 Web3 经济奠定了基础。
解决方案#2
在解决节点中心化问题上,关键的技术方案是轻客户端。以太坊 Altair 硬分叉为他们铺平了道路。这些超轻量级客户端允许我们在自己的计算机、移动设备或网络浏览器上创建我们自己的原生版本的以太坊,我们可以向任何接受轻量级客户端查询的完整节点广播交易并向其发出请求。这样,dapps 也可以促进交易,而不是调用像 Infura 或 Alchemy 这样的集中式 RPC 服务节点。
轻客户端不会检索整个 Beacon 链或验证器集。这是计算密集型,他们只是通过了解对等节点来同步区块头。关键是,这个过程是通过随机分配的验证者组 ( 同步委员会 ) 来执行的。信标链 PoS 轻客户端的构建也比 PoW 轻客户机简单得多。只需几个非审查完整节点来反馈这些查询,就可以缓解节点集中的问题。有关轻客户端的更多信息,请参见此处。
解决方案#3
就我们依赖的外部节点提供商而言,存在 Infura 的去中心化替代方案,例如 Pocket Network 或 Ankr,可以最大限度地减少对 Infura 的需求。
回想一下,这里的问题是人们缺乏动力来运行自己的节点。这些 RPC 节点提供者为此引入一套经济激励措施。以 Pocket Network 为例,节点提供商质押 POKT 以运行区块链节点并在不同区块链之间中继数据,为请求链上数据的 dapp 提供服务。在这个无需许可的市场中,他们服务的中继越多,他们获得的 POKT 奖励就越多。在需求方面,用户 /dapps 也质押 POKT,允许它在网络上请求中继。需要注意的,这些项目本身也存在中心化的点。
资料来源:Sami Kassab
解决方案#4
节点托管问题是一个需要持续监控的中心化风险,但由于退出壁垒低,因此威胁不大。如果 AWS 决定限制在其云服务器上托管节点,节点运营商可以轻松迁移到不同的云服务器,而不会被锁定在任何地方。由于 Merge 后,如今使用 DIY 硬件 (Raspberry Pi) 和即插即用解决方案 (Avado) 可以更轻松地设置自己的节点。
2. 搜索者
当用户交易成功提交后,交易会进入 mempool 内存池。mempool 是一个普通用户提交的待处理交易数据库,有时它也被称为以太坊的「黑暗森林」,而 MEV 游戏也是从这里开始的。
一旦交易进入内存池,搜索者就会开始扫描交易以寻找有利可图的 MEV 机会。搜索者通常是运行套利机器人的大型机构和自营交易平台,但有时也有个人参与者。他们支付高昂的 GAS 费来让验证者率先接受他们的交易订单。
值得注意的是,虽然 MEV 通常被认为是一件坏事,但也有好的 MEV。比如需要在加密货币价格波动的情况下快速清算贷方抵押品的 DeFi 协议,就希望支付高昂的汽油费以确保其交易能够快速执行,如果区块链是按照先到先得的原则设计的,那么 DeFi 的效率就会非常低下。搜索者在平衡这种效率和构建高效区块方面发挥着重要作用。
然而,在不利的 MEV 方面,虽然搜索者本身并不是中心化风险,但他们通过与区块构建者勾结,在化身为巨大的中心化载体方面发挥了作用。它们在协议层中的作用是捆绑交易并将它们传递给下一个梯级的区块构建者。
3. 区块构建者和验证者 / 提议者
提议者 / 构建者分离(PBS)之前
在合并前的以太坊中,区块构建由矿工实体执行,矿工能够通过区分内存池中的交易来利用 DEX 进行套利和清算。
在这种情况之下,搜索者和矿工可以在地下市场勾结,以以最大化他们自己的交易来实现 MEV 套利。这最终推高了作为矿工的固定成本,因为大型矿池运营商有资本运行复杂的算法,过去两年在以太坊上提取的 MEV 总额已达 6.75 亿美元。
这里的中心化风险问题是双重的:首先,它伤害了支付更多交易费用和交易等待期的用户;其次,由于政治压力,资本充足的区块验证者更有能力进行审查。
作为回应,以太坊开发人员正在开发一种称为提议者 - 构建者分离 (PBS) 的协议内解决方案。顾名思义,PBS 将验证者角色分成两个独立的本地角色:
- 提议者(即质押 32 ETH 并构建区块的验证者)
- 构建者
在 PBS 下,区块构建者相互竞争,以创建来自搜索者的聚合有序交易列表。这些交易包进行了优化,以最大限度地提高建设者自己的 MEV 费用,然后将其传递给区块提议者。提议者根据自己的最高费用选择交易来创建区块并将其发送到网络主链上。
这减少了区块提议者审查的集中权力,因为构建区块者不是选择哪些交易包含区块中的同一个人。正如 Vitalik 在Endgame中所描述的,PBS 的重点是最大化验证者的去中心化。
但是 PBS 在技术上很复杂,而且要好几年才能准备好(可能需要 2-8 年)。好消息是,同时出现了解决验证者集中化的临时解决方案。
一方面,Merge 下的验证者被随机选择为每个槽中的区块提议者。这与合并前的 PoW 不同,所有矿工都在竞争解决数学难题以验证新交易。在以太坊上约 420K 个验证者中的一个被随机选择为区块提议者之后,另一个验证者委员会被随机选择提交关于所提议区块有效性的证明(投票)。这种双重随机洗牌层用于遏制以太坊上的验证者中心化,使攻击者更难审查或破坏网络。
其次,像 Flashbots 这样的项目已经介入人工创建 PBS。Flashbots 开发了一个软件客户端(用于 PoW 以太坊的 MEV-Geth,用于 PoS 以太坊的 MEV-Boost ),验证者可以简单地插入其共识客户端并在其节点上运行。这实际上将块构建的工作外包给了专门的构建者角色。(相关阅读:《Flashbots将推出SUAVE:审查制度与去中心化的权衡术》)
为什么要使用 Flashbot?验证者这样做仅仅是因为为他们质押奖励更有利可图。Flashbots 的软件在提议者和构建者之间更公平地分配 MEV 价值,而不是在大型矿池和搜索者之间共享。Flashbots 所做的是通过创建一个透明、开放的价格发现市场来阻止搜索者和矿工之间的这种内部勾结市场。根据 Hasu 的说法,使用 MEV-Boost 已将验证者的合并后质押奖励增加了 135%。
资料来源:Flashbots
请注意,MEV-Boost 是可选的,验证者仍然可以选择在其执行客户端上自行构建区块。
PBS 消除了大型验证者的中心化权力。但即使在设计了 PBS 之后,我们还没有达到去中心化的承诺。中心化载体尽管有所缓解,但仍将存在于后 PBS 世界中。本节的其余部分简要介绍了以太坊面临的各种审查威胁及其在工作中的对应的解决方案。
审查威胁 #1
虽然 PBS 缓解了以前的中心化问题,但它还是通过赋予构建者更高的审查交易能力,在构建者级别引入了新的中心化问题。通过创建专门的构建者角色,构建者将能够对区块进行高价竞标并排除某些交易。
解决方案#1
第一个解决方案是抗审查列表 (crList) 也称为「混合 PBS」。假设我们怀疑构建者正试图审查交易。我们知道这一点是因为他们为提议者构建的区块尚未填满,并且内存池中有符合条件的交易在等待。
crList 让提议者可以强制构建者充分利用空块空间,而无需让提议者具体规定要包含的交易的顺序:「嘿,构建者,请填写您的空块,否则我选择的交易将被包括在内。」
坚持审查交易,并忽略提议者 crList 的构建者将被证明者拒绝该区块(证明者是随机选择的验证者,他们在提议验证者提议一个区块后对规范链的头部进行投票)。简而言之,crLists 是一种间接机制,它可以让提议者在不违背 PBS 初始目的(去中心化提议者)的情况下控制集中式区块构建市场。
解决方案#2
但是如果提议者可以告诉构建者包含交易,如果他们与构建者勾结并告诉他们呢?这将我们带到了第二个解决方案:MEV-smoothing。就像 crLists 控制构建者一样,MEV-smoothing 通过消除他们的自由裁量权来控制提议者。
这里的想法是要求证明者关注去块构建市场,特别是附加到区块的费用投标,然后只证明提议者出价最高的区块。如果提议者没有提出已经为他们构建的最有利可图的区块,那么事情就发生了,所以证明者会问,「嘿,提议者,你只是讨厌赚钱还是想审查?」 实际上,MEV-smoothing 旨在使所有提议者的 MEV 利润均等化,并创建一个完全有效的市场,消除提议者参与歧视性审查的动机。
解决方案#3
第三种解决方案是使用加密的内存池。虽然有 crLists 计数器构建者和 MEV 平滑计数器提议者,但加密内存池旨在对抗两者。这种机制很容易理解:它在进入内存池之前对用户交易的内容和发送 / 接收地址进行加密,只有在链上时才解密。这使得参与者很难审查或参与 MEV 提取技术,如交易抢先运行。这消除了对于像 Flashbots、Protect 这样的私有内存池的需求。加密内存池技术也是 Cosmos 开发人员、Flashbot 和 Aztec 等隐私导向链正在试验的东西。
解决方案#4
第四个也是最后一个解决方案是我们最不希望依赖但又很不错的解决方案:利他的自我构建,提议者只需选择构建自己的区块,而不是将其外包给构建者。这里的好处是,即使有一小部分约 10% 的利他主义构建者,以太坊也可以继续前进。
这里明显的缺点是它与经济激励措施背道而驰,试想一下,验证者想要使用 MEV-Boost 是因为它产生的费用更高,这就是为什么在社会层面推广一种抵制审查制度和保持权力下放的文化非常重要的原因。
审查威胁 #2
要成为今天的以太坊验证者,您需要在存款合约中质押 32 ETH,同时运行两个软件客户端:一个执行客户端(用于执行交易)和一个共识客户端(用于新产生的区块达成共识)。今天的威胁是太多的验证者正在运行相同的执行客户端 Geth。
如果发现一个客户端存在错误或遭受攻击,就可能会给整个网络带来中断风险。这不是理论上的推测,正如 2016 年上海 DOS 攻击所证明的那样,攻击诱使 Geth 客户端减慢处理速度。在合并后的以太坊上,交易最终确定需要 2/3 的质押 ETH。占主导地位的客户端故障可能会暂时停止甚至分叉以太坊网络,这使得任何运行客户端占比不超过 2/3 的验证节点会至关重要!
客户端集中度问题非常严重,即使是像 Prysmatic Labs 这样使用率最高的客户端公司也建议节点验证器用户去使用竞争对手的验证器。毕竟,如果以太坊下跌,那是所有人的损失。
解决方案
这里的审查威胁不仅适用于单独的质押者,还适用于 Infura 和 Alchemy 等中心化节点提供商,或 Pocket Network 等去中心化节点提供商。以太坊开发人员实施的解决方案包括各种惩罚措施,以削减不活跃验证者的股份,如不活跃泄漏机制。在今天的 Beacon 链上,如果行为不端的验证者都在同一个客户端上失败,也有相关的惩罚,对行为不端的验证者进行更严厉的惩罚。实际上,这促进了多客户端文化,同时鼓励验证者在选择客户时不仅要考虑技术风险,还要考虑经济激励。
审查威胁 #3
最后,还有一个审查威胁不容忽视:ETH 集中在质押服务占比中,最大的两个块分别是流动质押协议和 CEX,它们分贝控制着约 37% 和约 31% 的质押 ETH 。这是一个严重的问题,因为任何拥有超过 33% ETH 的实体都可能进行双花攻击。
资料来源:沙丘分析
解决方案
这里没有简单的解决方案,但有理由保持乐观。一方面,虽然 Lido 控制着约 30% 的质押 ETH,但它并不作为一个单一实体存在,对区块构建没有直接影响。Lido 的 ETH 通过数万个节点传递给 28 个节点运营商,防止任何形式的单边网络攻击。
但这仍然太少了。一种可能解决 ETH 集中问题的技术解决方案是分布式验证器技术 (DVT),也称为秘密共享验证器技术,这是以太坊基金会自 2019 年以来一直在积极研究的领域。带头开发 DVT 的公司是机构区块链节点提供商 RockX Lido (28 个节点运营商之一)。
DVT 是一种开源协议,它将节点操作的操作活动分散在不同验证者之间,而不是单个验证者之间。它使用多方计算(MPC)过程来确保节点可以由多个验证者共同运行,因为私钥是「共享的」。因此,没有一个参与者可以完全访问签署消息所需的私钥。这也允许验证者在基础设施出现故障时能代替另一个验证者。
最后,虽然持有过多 ETH 的流动性质押协议非常令人担忧,但如果不是 Lido DAO ,而是将 ETH 完全质押在 Coinbase 和 Kraken 等政治上更脆弱的实体上,这种情况比现在要更糟糕。
4. 中继器
在 MEV-Boost 模型中,中继器充当中间经纪人的角色,它位于提议者和构建者之间,任何人都可以轻松启动。中继器是一种独特的中心化载体,它是 Flashbot 试图解决 MEV 的产物。要了解这里的审查威胁,首先需要了解为什么中继器会出现在其中。
回想一下,想要在 PBS 下将验证者角色拆分为提议者和构建者的原因是为了遏制验证者的审查权,并阻止一个实体(例如 Coinbase 或 Lido )持有大量质押 ETH 的情况,方式出现他们可以任意决定在链上包含哪些内容。
因此,要让 PBS 工作,提议者需要对他们从构建者那里收到的块的内容一无所知。否则,提议者将能够区分他们认为应该在链上的区块,而我们又回到了之前黑暗森林时期。
这就是 Flashbots 的 MEV-Boost 模型下中继器的用武之地。构建者向中继者发送一个组装块的费用投标,之后中继器将区块发送到一个隐藏的托管,并且只向任何提议者从该中继接受的有效载荷显示价格。
只有在提议者承诺签署区块头并接受出价后,区块内容才会被披露。这样,想要审查 Tornado Cash 交易的提议者别无选择,只能继续在链上提议区块,因为他们已经为此支付了费用,或者如果他们试图一次提议两个区块,但这就会被削减惩罚。
资料来源:Devcon
审查威胁
但是如果中继者自己选择审查呢?这将我们带到了中继者级别的中心化风险的核心。今天,以太坊上 58% 的中继区块都在审查 Tornado Cash 交易,即符合 OFAC 标准。这 58% 区块中的大部分(80%)来自 Flashbots 的中继器(见下图)。
请注意,还有许多其他验证者仍在接受 Tornado Cash 交易的区块,因此这实际上是一种「软」审查形式,会在几分钟后出现,而不是「硬」形式的审查。只要中继者拥有非审查少数群体,这个问题就会给用户带来不便,而不是我们传统上认为的「审查制度」。尽管如此,这个问题导致了最近几个月对以太坊审查的受到了广泛关注。
解决方案
这里的解决方案是鼓励更广泛的中继器多样性。验证器通常一次连接到多个中继器。如上所示,七个中继中的三个(BloXroute 和 Manifold )不审查 Tornado Cash 交易。因为中继是一个无需许可的实体,所以任何人都可以轻松创建自己的中继(Flashbots 自己已经善意地开源了自己的中继)。创建无审查中继的准入门槛很低,这意味着这种中心化在比在验证者级别要轻,在验证者级别阻止不诚实 / 行为不端的参与者成本要高得多。
好消息是,从长远来看,中继者是一个临时的审查媒介。当 PBS 正式纳入协议时,将不再需要中继器,因为构建者将连接到提议者。
最后
请注意,这篇文章只涵盖了软性审查形式,这通常相当于以秒 / 分钟为单位的区块收录延迟。
文章可能做不到详尽无遗,更多的中间件协议,如 oracles、sidechain 和 roll-ups,它们包含自己的中心化载体。像 51% 攻击这样的硬性审查形式,以及对它们的技术和社会解决方案也被排除在外。