bg
  • CT中文
  • 2022年10月28日06时

    新手指南:以太坊面临的审查威胁以及解决方案

    以太坊尚未实现抗审查……以下是开发者正在采取的措施。


    文:Donovan Choy
    编译:Zion 责编:karen
    来源:Bankless
    2022年8月8日,美国财政部制裁了Tornado Cash。
    所有人都知道监管机构讨厌加密货币,但这一制裁令DeFi措手不及。这代表着美国监管机构在正式打击加密货币方面一次前所未有的努力。
    在某种程度上,对Tornado Cash的制裁是因祸得福。这一监管冲击让DeFi想起了它的基本原则,对整个去中心化金融领域中每一处中心化卡口展开了审查。
    去中心化实际上很重要。
    你走的任何中心化捷径都能被用来对付你。
    审查的话题很难理解。试图理解围绕以太坊中心化的担忧需要一些技术知识,而加密术语的海洋难以涉足。
    本文试图揭开以太坊过去几个月里所有审查问题的神秘面纱,并将它们提炼成任何加密公民(甚至是厌恶者)都能容易理解的术语。
    我列出了以太坊协议上的每一个主要的中心化向量,并简要介绍了企业家和开发者正在研究的各种市场和技术解决方案。

    以太坊供应链的简要概述

    以太坊最初的设计理论只涉及两个参与者:运行自己的节点的用户,通过点对点网络将交易发送给区块验证者,区块验证者将构建一个区块并包含该交易。
    区块链验证者(我们在PoW中称他们为矿工,在PoS中称他们为质押者)本应是验证区块的中立参与者。
    实际上,这个过程要复杂得多。通过向运行套利机器人的搜索者出售区块,验证者面临着不正当的激励歧视。这导致普通用户的交易成本提高,区块链上出现拥堵——这种现象被称为最大可提取价值(MEV)。过去两年,以太坊上的MEV达到6.75亿美元(Cosmos上估计为670万美元)。
    在合并后的以太坊中,以下是一般的交易顺序:
    1. 用户通过dapp的前端与钱包创建交易。这些交易被发送到内存池(mempool)


    2. 搜索者运行套利机器人并扫描内存池,然后将交易捆绑在一起


    3. 捆绑好的交易被传递给区块构建者,后者再附上费用出价


    4. 如果构建者和验证者都连接到一个中继器,那么中继器将在提交拍卖之前隐藏捆绑的区块


    5. 验证者(又名区块提议者)选择费用出价并提议区块


    6. 证明人在区块最终上链之前对其进行验证

    (请注意,在本文中,验证者和提议者这两个词是互换使用的。)
    在这个交易顺序中,每一步都存在中心化向量。
    让我们从前端开始,依次来看。

    1. 前端界面

    你想买一些ETH,可以转到uniswap.com,其设计精美、时尚粉白配色的用户界面可以帮助你轻松地进行交易。你连接MetaMask,选择你的流动性池,然后点击“发送”来执行交易。我们认为这个简单的过程是理所当然的,但是已经有许多中心化威胁出现在这些中介上。
    审查威胁
    如今,许多dapp的前端接口都是中心化的。Web3的短暂历史表明,当监管机构来敲门时,DeFi会应门。这种情况就发生在当Balancer在其前端隐藏了一个2000万美元的流动性池时,或者当Uniswap Labs迅速在其前端下架几十个合成衍生代币以规避SEC的审查时。MetaMask和Infura也采取了同样的措施来封锁符合Tornado Cash制裁规定的钱包地址。
    越过前端只是冰山一角。我们使用的dapp依赖于RPC节点(服务器)来传达用户意图。节点是一个连接点(可以把它看作一个API),它在区块链上访问信息、通信并执行交易。
    在理想的情况下,每个人都可以运行自己的节点。但正如Signal创始人Moxie Marlinspike曾经在批评Web3时提出的那样,大多数人都不运行自己的节点,这造成了对Infura和Alchemy等中心化节点服务提供商的依赖。他们让DeFi的生活轻松了很多,但正如你所知,这是有代价的。由于Uniswap和Metamask等大量dapp反过来依赖Infura运行节点,因此在这一端出现了一个重要的中心化向量。
    像Infura这样的中心化公司,如果被监管机构盯上,将对以太坊造成重大干扰。事实上,当Infura在3月份禁止伊朗IP地址以遵守美国的政治制裁时,这种情况就发生了。中心化节点提供商存在问题还有一些技术原因。以太坊在2020年11月经历了一次网络中断,当时Infura的主网API因其Geth客户端没有更新而瘫痪,许多dapp无法使用。
    最后,节点需要被托管在某个地方。实际上,许多以太坊节点被托管在AWS、Hetzner和谷歌云等中心化云服务提供商上(Solana和比特币也是如此)。这里的中心化向量很明显:云提供商可以任意停止服务器运行。今年8月,当Hetzner澄清在其服务器上运行以太坊节点违反其服务条款时,该社区就收到了这一提醒。
    来源:ethernodes.org
    已经有这么多中心化向量了,我们甚至还没讲到内存池。
    怎么办呢?
    解决方案1
    前端中心化是一个相对较小的问题。这要感谢蓬勃发展的DeFi中间件生态系统,它允许我们以各种方式通过替代场所绕过受审查的前端。例子包括Zapper和Zerion等投资组合跟踪器,集成了“交换”功能的加密钱包,1inch和Paraswap等DeFi聚合器。它们让你无需直接访问它们就能访问dapp。Uniswap等大多数dapp也致力于开源其前端的代码,允许任何个人甚至专门的DAO重新创建前端。
    为了绕过被审查的前端,像IPFS这样的去中心化存储提供商也被用来托管带有静态内容的前端域名。对于有动态内容(社交媒体)的前端,像The Graph这样的去中心化索引协议被用于通过统一的查询语言查询各个区块链和dapp的数据。而对于被审查的域名,像ENS这样的去中心化域名服务通过在以太坊智能合约上构建域名,提供了一种更抗审查的方式来托管域名。这与当今存储在中心化DNS服务器上的大多数网站不同,容易受到域名扣押或IP地址封锁的影响。
    总之,这些去中心化的基础设施协议构成了DeFi前端去中心化Web3经济的基本构件。
    解决方案2
    对于节点中心化问题,关键的技术解决方案是轻客户端。以太坊Altair硬分叉为它们铺平了道路。这些超轻量级客户端允许我们在自己的计算机、移动设备或web浏览器上创建我们自己的主权、原生版本的以太坊,我们可以向任何接受轻量级客户端查询的完整节点广播交易并发出请求。通过这样做,dapp可以促进交易,而不是调用Infura或Alchemy等中心化RPC端点。
    轻客户端不会试图检索整个信标链或验证者集。这将需要大量的计算——因此它被称为“轻型”!它们只是通过了解对等节点来同步区块头。关键在于,这个过程是通过随机分配的验证者组(同步委员会)以去信任的方式来执行的。信标链PoS轻客户端的构建也比PoW轻客户端简单得多。通过只有几个回答这些查询的非审查完整节点,节点中心化问题得到了缓解。更多关于轻客户端的信息,请参阅这里
    解决方案3
    当我们想要依赖外部节点提供者时,有一些去中心化的Infura替代方案,如Pocket Network或Ankr,它们可以最大限度地减少对Infura的需求。
    回想一下,这里的问题是人们缺乏激励来运行自己的节点。这些RPC节点提供商引入了经济激励。以Pocket Network为例,节点提供商质押POKT来运行区块链节点,并在不同的区块链之间中继数据,为请求链上数据的dapp提供服务。在这个无许可的市场中,他们服务的中继越多,他们获得的POKT奖励就越多。在需求方,用户/dapp也质押POKT,允许它在网络上请求中继。注意,这些项目本身存在中心化点,但是有移除它们的路线图。
    来源:Sami Kassab
    解决方案4
    节点托管问题是一种需要不断监控的中心化风险,但由于退出壁垒较低,威胁不大。如果AWS决定在其云服务器上限制节点托管,节点运行商可以轻松地转移到另一个云服务器,而不会被锁定在任何地方。由于合并,现在通过DIY硬件(Raspberry Pi)和即插即用解决方案(Avado),设置自己的节点变得更加容易

    2. 搜索者

    在用户交易成功提交之后,就会进入内存池。内存池是一个由你我这样的普通用户提交的待处理交易的数据库,有时被称为以太坊的“黑暗森林”。MEV游戏就是从这里开始的。
    一旦交易进入内存池,搜索者就开始扫描黑暗森林,寻找有利可图的MEV机会。搜索者通常是运行套利机器人的大型机构和自营交易平台,但有时也包括个人。他们支付高额的gas费用来让验证者接受他们的交易订单,而不是通过公共池。
    这里需要注意的一点是,尽管人们通常认为MEV完全是坏事,但也有好的MEV。在加密货币价格波动剧烈的情况下,DeFi协议需要快速清算贷款人的抵押品,它需要支付高额的gas费,以确保交易能够快速执行。如果区块链是按照先到先得的原则设计的,那么DeFi的效率将非常低。搜索者在平衡这种效率和构建高效区块方面发挥着重要作用。
    然而,在糟糕的MEV方面,虽然搜索者本身并不是中心化风险,但它们通过与区块构建者勾结,在实现巨大的中心化向量方面发挥了作用。它们在协议层中的作用是将交易捆绑起来,并将它们传递给黑暗森林下一梯队的区块构建者。

    3.区块构建者和验证者/提议者

    提议者构建者分离(PBS)之前
    在以太坊合并之前,区块构建由一个实体执行:矿工。这让矿工能够通过区分内存池中的交易来利用DEX套利和清算。
    随着时间的推移,问题变得更糟。搜索者和矿工开始在地下市场串通,最有效地选择交易,以最大化他们自己的MEV利润。这最终推高了作为矿工的固定成本,因为大型矿池运营商有资本运行复杂的算法,超过了家庭经营的矿工——催生了我们所知的MEV。过去两年在以太坊上提取的MEV总额已达6.75亿美元!
    这里的中心化风险有两个问题:首先,它伤害了以太坊用户,他们最终会等待更长时间或支付更多的交易费用;其次,由于政治压力,资本雄厚的区块验证者在审查方面处于更有利的地位。
    为了应对这一问题,以太坊开发者正在开发一种协议内解决方案,被称为提议者-构建者分离(PBS)。顾名思义,PBS将验证者角色分成两个独立的原生角色:
    1. 提议者(即质押32个ETH并构建区块的验证者)


    2. 区块构建者
    在PBS下,区块构建者彼此竞争,以创建来自搜索者的交易的聚合有序列表。这些交易捆绑在一起进行优化,可以最大化构建者自己的MEV费用,然后将其传递给区块提议者。提议者被鼓励根据自己的最高费用选择交易来创建区块,并将其发送到网络,包括链上。
    这减少了区块提议者审查的中心化权力,因为构建区块的人并不是选择要包含在区块中的交易的同一个人。正如Vitalik在Endgame一文中所描述的,PBS的全部意义在于最大化验证者去中心化。
    但是PBS在技术上很复杂,几年内都不会准备好(也许2-8年以后!)好消息是,在此期间已经出现了解决验证者中心化的临时解决方案。
    首先,合并后的验证者被随机选择为每个插槽中的区块提议者。这与合并前的PoW不同,在合并前的PoW中,所有矿工都要通过解决数学难题来验证新交易。在以太坊上约42万个验证者中的一个被随机选择为区块提议者后,另一个验证者委员会被随机选择来提交关于被提议区块的有效性证明(投票)。这种双层随机洗牌层的作用是遏制以太坊上的验证者中心化,使攻击者更难审查或破坏网络。
    第二,像Flashbots这样的公司已经介入,人为地创造PBS。Flashbots开发了一个软件客户端(用于PoW以太坊的MEV-Geth,用于PoS以太坊的MEV-Boost),验证者可以简单地将其插入他们的共识客户端并在其节点上运行。这实际上将构建区块的工作外包给了专门的构建者角色(提议者与构建者分离!)
    为什么使用Flashbots?验证者这样做的原因很简单,因为对他们来说,质押奖励更有利可图。Flashbots的软件在提议者和构建者之间更公平地分配MEV价值,而不是在大型矿池和搜索者之间共享。Flashbots所做的是通过创建一个透明、公开的价格发现市场,来阻止搜索者和矿工之间的内幕勾结市场。据Hasu称,使用MEV-Boost将验证者的合并后质押奖励提高了135%。
    来源:Flashbots
    请注意,MEV-Boost是可选的,验证者仍然可以选择在它们的执行客户端上自己构建区块。
    PBS时代
    PBS消除了大型验证者的中心化权力。但是,即使在PBS被设计出来之后,我们还没有到达去中心化的应许之地。在后PBS时代,中心化向量虽然有所缓解,但仍将存在。本节的其余部分将简要介绍以太坊面临的各种审查威胁,以及其正在进行的相应解决方案。
    审查威胁1
    虽然PBS缓解了以前的中心化问题,但它也通过增强构建者审查交易的能力,在构建者层面引入了新的中心化向量。通过创建一个专门的构建者角色,构建者将有能力为区块出价过高并排除某些交易。
    解决方案1
    第一个解决方案是抗审查列表(crList),也被称为“混合PBS”。假设我们怀疑构建者试图审查交易。我们知道这一点是因为他们为提议者构建的区块没有满,并且有符合条件的交易在内存池中等待被包含进去。
    crList允许提议者迫使构建者充分利用空的区块空间,而不允许提议者明确规定要包含的交易的顺序:“嗨,构建者,请填满空的区块,否则我所选择的交易将被包含进去。”
    如果构建者坚持审查交易,并忽略提议者的crList,则证明人将拒绝该区块(证明人是随机选择的,在提议验证者提议区块后,对规范链的区块头进行投票)。简而言之,crLists是一种间接的机制,它可以让提议者在不破坏PBS的整个目的(将提议者去中心化)的前提下,监督一个中心化的区块构建市场。
    解决方案2
    但是,如果提议者可以要求构建者将交易包含其中,或者如果他们与构建者勾结,并告诉构建者不要包含交易呢?这就引出了第二个解决方案:MEV-smoothing。就像crList让构建者受到制约一样,MEV-smoothing通过去除提议者的自由裁量权来控制提议者。
    这里的想法是要求证明人关注区块构建市场,特别是与区块所附的费用出价,然后只证明来自提议者的最高出价的区块。如果提议者提出的不是已经为他们构建的最有利可图钱的区块,那一定是出了什么问题,所以证明人会问:“嘿,提议者,你是讨厌赚钱,还是想要审查?”实际上,MEV-smoothing旨在使所有提议者的MEV利润均等,并创建一个完全有效的市场,消除提议者从事歧视性审查的动机。
    解决方案3
    第三种解决方案是使用加密的内存池。crLists是用来对付构建者的,而MEV-smoothing是用来对付提议者的,但加密的内存池被设计来对抗这两者。这种机制很容易理解:它在用户交易的内容和发送/接收地址进入内存池之前对其进行加密,只有在链上时才解密。这使得行为者很难审查或参与MEV提取技术,如交易前端。这样就不需要像Flashbots Protect这样的私有内存池了。加密内存池技术是Cosmos开发者Flashbots和面向隐私的链(如Aztec)也在尝试的技术。
    解决方案4
    第四个也是最后一个解决方案是我们最不希望依赖的,但也是一个不错的选择:利他主义的自我构建,在这种情况下,提议者只需选择构建自己的区块,而不是将其外包给构建者。这样做的好处是,即使只有10%左右的少数利他主义构建者,以太坊也可以继续发展。
    这里明显的缺点是它与经济激励背道而驰——回想一下,验证者想要使用MEV-Boost是因为它能产生更高的费用。这就是为什么在社会层面促进一种抗审查文化和保持去中心化是非常重要的。
    审查威胁2
    今天,要作为以太坊验证者参与进来,你需要在一个存款合约中质押32个ETH,同时运行两个软件客户端:执行客户端(执行交易)和共识客户端(对新产生的区块达成共识)。今天的威胁是,太多的验证者在运行同一个的执行客户端Geth。
    来源:clientdiversity.org
    如果发现某个客户端存在bug或遭受攻击,则会带来更高的网络中断风险。这不是理论上的猜测,正如2016年上海DOS攻击事件所证明的那样,当时攻击者欺骗了Geth客户端,使其降低了处理速度。在合并后的以太坊,需要三分之二的质押ETH才能达到最终性。一个主要的客户端出现故障,可能会暂时使以太坊网络停滞(或者更糟:分裂)——这使得任何特定的客户端在不超过三分之二的验证者节点上运行变得至关重要!
    客户端中心化的问题非常严重,甚至像Prysmatic Labs这样客户端使用率最高的领先公司都建议节点验证者“使用他们的竞争对手”。毕竟,如果以太坊崩溃,对所有人来说都是损失。
    解决方案
    请注意,这里的审查威胁不仅适用于单个质押者,还适用于Infura和Alchemy等中心化节点提供商,或Pocket Network等去中心化节点提供商。以太坊开发者已经实现的解决方案包括各种惩罚措施,以削减不活动验证者的份额,如Inactivity Leak Mechanism。在今天的信标链上,如果行为不当的验证者在同一个客户端上都失败了,那么反相关性惩罚也会更加严厉。实际上,这促进了多客户端文化,同时鼓励验证者在选择客户端时不仅要考虑技术风险,还要考虑经济激励。
    审查威胁3
    最后,经常提到的在验证者层的另一个审查威胁,那就是ETH质押服务中的中心化。流动质押协议和CEX分别控制了质押ETH的约37%和约31%。这是一个严重的问题,因为任何一个拥有超过33%的ETH的实体都可能进行双花攻击。
    来源:Dune Analytics
    解决方案
    没有简单的解决办法,但我们有理由保持乐观。首先,尽管Lido控制了30%的质押ETH,但它并不是作为一个单一实体存在,对区块构建没有直接影响。Lido的ETH战争基金被传递给28个节点运营商,这些运营商通过数万个节点进行质押,防止任何形式的单边网络攻击。
    去中心化最大化主义者不会在28个节点运营商中找到太多安慰,考虑到质押(以太坊网络!),这仍然太少了。一种可能解决ETH中心化问题的技术解决方案是分布式验证者技术(DVT),也被称为秘密共享验证者技术,以太坊基金会自2019年以来一直在积极研究这一领域。带头开发DVT的公司是RockX,一家机构区块链节点提供商,也是Lido的28个节点运营商之一。
    DVT是一种开源协议,它将节点运行活动分散在不同的验证者之间,而不是单个验证者。它使用多方计算(MPC)过程来确保节点可以由多个验证者共同运行,因为私钥是“共享的”。因此,没有任何行为者能完全获得签署信息所需的私钥。这还允许验证者在基础设施发生故障时替代另一个验证者。
    最后,尽管持有过多ETH的流动质押协议非常令人担忧,但值得考虑一下,假设不存在Lido DAO。在那样的情况下,ETH将被已经持有大量ETH的Coinbase和Kraken等在政治上更脆弱的实体质押,这种情况将比现状糟糕得多。

    4. 中继器

    在MEV-Boost模型中,中继器扮演着提议者和构建者之间的中间“经纪人”角色。中继器是一种独特的中心化向量,是Flashbots试图解决MEV问题的结果。要理解这里的审查威胁,首先需要理解为什么会出现中继器。
    回想一下,想要在PBS下将验证者角色拆分为提议者和构建者的全部原因是为了遏制验证者的审查权力,并阻止一个实体(如Coinbase或Lido)持有大量质押的ETH份额,可以任意决定链上包含什么。
    因此,为了让PBS发挥作用,提议者需要对他们从构建者那里收到的区块内容一无所知。否则,提议者将能够区分他们认为应该上链的区块,我们将回到PBS之前的起点。
    这就是Flashbots的MEV-Boost模型下中继器的作用。构建者将一个组装好的区块的出价发送给中继器,然后中继器将区块发送到一个隐藏的托管处,并只向任何接受该中继器有效载荷的提议者透露价格。
    只有在提议者承诺签署区块头并接受出价后,区块内容才会显示出来。这样,想要审查Tornado Cash交易的提议者别无选择,只能继续在链上提议区块,因为他们已经为它支付了费用。
    来源:Devcon
    审查威胁
    但如果中继器自己选择审查呢?这就把我们带到了中继器层面的中心化风险的核心。今天,以太坊上58%的中继区块都在审查Tornado Cash交易,即符合OFAC的要求。这58%的大部分(80%)来自于Flashbots的中继区块(见下图)。
    请注意,还有许多其他验证者仍在接受带有Tornado Cash交易的区块,因此这实际上是一种“软”审查形式,表现为几分钟的延迟,而不是“硬”审查形式。只要中继器中有少数不进行审查,这个问题对用户来说仍然不便,这不是我们传统上认为的“审查”。尽管如此,这是一个导致最近几个月围绕以太坊被审查的广泛关注的问题(详见这里)。
    解决方案
    显而易见的解决方案是鼓励更广泛的中继器。验证者通常同时连接到多个中继器。如上所示,7个中继器(BloXroute和Manifold)中有3个不审查Tornado Cash交易。因为中继器是一个无许可的实体,这使得任何人都可以很容易地创建自己的中继器(Flashbots本身已经开源了自己的中继器)。创建非审查中继器的进入门槛很低,这意味着这个中心化向量比验证者层面上的要轻得多,在验证者层面阻止不诚实/行为不当的参与者,成本要高得多。
    好消息是,从长远来看,中继器是一个临时的审查向量。当PBS被正式纳入协议中时,中继器将不再需要,因为构建者将连接到提议者。
    所以,你应该了解了整个MEV供应链以及我们正在做的事情。
    请注意,本文只涉及软审查形式,这通常相当于以秒/分钟为单位的区块包含延迟。
    这篇文章并不详尽——我省略了更多的中间件协议,比如预言机、侧链和roll-up,它们有自己的中心化向量。像51%攻击这样的硬性审查形式,以及针对它们的技术和社会解决方案也没有包括在本文中。
    加入我们:
    推特:@CTChinaOfficial

    电报:https://t.me/CointelegraphChina_Official


    关联阅读:
    真实世界资产(RWA):金融通往加密世界的桥梁
    马斯克领导的Twitter,会变成Web3平台吗?

    本平台推送内容仅代表作者观点,不代表平台意见。如需转载请联系Cointelegraph华语相关工作人员。


    点击原文,了解更多