文章分析了在去中心化金融中黑池的概念及其运作,深入探讨了Railgun协议如何通过零知识证明和Merkle树实现交易隐私,保护用户身份以及提升DeFi应用的便捷性。文章还总结了不同黑池技术解决方案的优缺点以及未来的发展方向。
在本系列的前两篇文章中,我们探讨了去中心化金融中的暗池概念,强调它们在解决如抢跑交易、报价衰退和 MEV(可最大提取价值)提取等关键问题中的作用。暗池是交易者的一个重要工具,因为它们在执行交易时不会向第三方观察者披露交易及其细节。因此,交易者能够以更优的价格执行交易,并减少价格滑点。
在我们的第一篇文章中,我们介绍了暗池并研究了 Renegade,它通过多方计算匹配引擎和协作 SNARKs 等独特技术在隐私生态系统中实现基于隐私的交易。第二篇文章将焦点转向速度导向的 Tristero,由于采用 TEE 而不是通常所称的安全但相对较慢和复杂的加密方法,它在目标受众和技术构建块上有所不同,因此可以称之为另一种选择。
本文通过 Railgun 的视角结束这一系列文章,研究构建暗池的另一种方法。Railgun 作为一个隐私增强协议,旨在保护交易过程中的交易隐私,并将隐私扩展至结算后的环节。Railgun 基于 zk-SNARKs 和全球 Merkle 树架构构建,使用户能够在进行 swaps、流动性提供和私密代币转移等去中心化金融活动时,保持匿名且实现可编程性。其独特的无辜证明机制进一步使其与众不同,允许用户通过证明其交易不含黑名单资金来展示合规性。
在系列文章的最后,我们将探讨 Railgun 的隐私保护架构,考虑其在 DeFi 暗池未来中的角色,并反思像 Renegade、Tristero 和 Railgun 这样的协议如何提供不同的技术解决方案,以应对私密、合规的链上交易所面临的不断变化的挑战。
Railgun 是一个隐私增强协议,旨在保护区块链交易,使用户能够在保持匿名性的情况下与去中心化金融(DeFi)互动。Railgun 建立在以太坊及其他 EVM 兼容链上,借助零知识证明(zk-SNARKs)和单一全球 Merkle 树创建一个私密、可审计且可扩展的环境。其架构将先进的零知识加密技术与可编程性相结合,创建了一个为 DeFi 应用提供无缝、机密互动的私密生态系统。虽然 Railgun 采用统一的单合约架构,但它与混合器从根本上不同,因为它不依赖于混合资金。相反,隐私是在不需要移动资金的情况下实现的,同时也提供了扩展的可编程性。
Railgun 隐私架构的核心是其全球 Merkle 树,作为管理私密资产和交易状态的基础的加密数据结构。这棵树以加密承诺的形式存储所有 Railgun 内部的互动——无论是隐藏代币、转移资产,还是参与 DeFi。每个承诺都代表用户的私密余额或交易的哈希表示,确保没有敏感细节在链上暴露,同时保持系统的完整性和可验证性。
当用户与 Railgun 交互时,他们通过区块链执行层上的单个智能合约进行操作。这种设计意味着每一个 Railgun 交易,无论用户或资产类型,都与这个统一的隐私合约接口。通过将所有交互聚合到一个统一的隐私层中,Railgun 模糊了输入(例如,存款)与输出(例如,转移或取款)之间的联系,使交易对外部观察者来说难以区分。通过这种方式,Railgun 作为一个基于 zk 的隐私钱包,保护用户活动免受区块链审查,同时提供更大的可编程性和灵活性。
Merkle 树通过将所有交易数据抽象为加密承诺来实现隐私。这些承诺作为树中的叶子,每个承诺都以计算上不可逆的方式表示用户的私密状态。例如,当用户隐藏代币——将其从公共 0x 账户转换为私密 0zk 账户时,会创建一个新的承诺并将其添加到树中。这隐藏了代币的原始来源,并将用户纳入 Railgun 的全球隐私层。相应的公共余额被隐藏,而用户的私密余额现在完全在 Merkle 树中管理。
Railgun 使用无效化器——加密标记——来防止双重花费,通过使已花费的承诺失效来实现。每个私人交易记录了前一个承诺的无效化器,同时向树中添加一个包含更新余额的新承诺。这个过渡通过在更新过程中打破状态间的连接来保持隐私,同时无效化器防止承诺重用。与 Renegade 一样,这个系统将全球 Merkle 树与无效化器相结合,以实现可扩展的隐私。
Merkle 树架构通过将所有交互整合在统一的隐私层内,防止交易追踪。全球树结构通过使存款、转移和取款不可链接而阻止区块链监控,即使是复杂的链上分析也无效。这种设计选择通过一致、可预测的状态更新增强了协议可扩展性和用户隐私。
为了确保对 Merkle 树的每次更新遵循 Railgun 的隐私和安全规则,协议使用 zk-SNARK 证明。这些证明验证每笔交易,而不会暴露敏感的细节,确保余额是准确的,无效化器得到了正确应用,并且没有对树进行未经授权的修改。与传统系统不同,在传统系统中,验证依赖于对交易数据的直接访问,zk-SNARK 允许 Railgun 智能合约以加密方式验证交易。这意味着验证者可以确认交互的合法性,而不需要查看底层细节,有效地保持协议的无信任和去中心化特性。此过程是 Railgun 能保持隐私而确保状态正确的基础。
zk-SNARK 证明与 Merkle 树的结合创造了一个双重的安全和隐私层,既稳健又可扩展。无论是隐藏代币、转移资产还是进行其他交互,对系统的更新都以加密方式记录,确保可以在协议层面进行审计,而不会泄露用户特定的信息。该设计不仅保护了单个用户的隐私,还增强了整个系统的完整性,因为每笔交易均可验证但保持匿名。它消除了对中介或托管监督的需求,使得 Railgun 能够以完全去中心化的方式运行。
Railgun 的创新架构展示了加密技术如何重新定义去中心化系统中隐私与可用性之间的平衡。通过利用像 Merkle 树和 zk-SNARKs 等先进工具,Railgun 能够在维护区块链的完整性和无信任性同时,无缝保护用户的交互。除了其技术能力外,该系统还为探索私密交易如何被执行、验证和与更广泛的 DeFi 生态系统整合奠定了基础。在接下来的章节中,我们将深入探讨 Railgun 中交易的生命周期,审视确保隐私和安全的复杂过程。
隐藏代币是进入 Railgun 私密生态系统的起点,用户资产从公共区块链可见性转移到 Railgun 的加密、隐私保护状态。此过程依赖于 Railgun 钱包、加密承诺和未花费交易输出(UTXOs)的创建,三者共同确保资产在不妨害隐私的情况下被隐藏。
Railgun 钱包依靠 BIP-32 标准进行密钥派生,允许用户从单个种子短语生成一组分层的加密密钥。这种架构简化了钱包创建,同时启用了强大的隐私特性。在 Railgun 钱包内派生出两个关键密钥,各自对系统起着不同的作用:
支出密钥:支出密钥用于证明对隐私代币的拥有权并授权私密交互,例如隐藏、转移和取消隐藏。从功能上讲,它类似于标准的私密密钥,但在 Railgun 私密生态系统内进行操作。支出密钥是使用 Baby Jubjub 椭圆曲线生成,这是一种对 zk-SNARK 友好的曲线,并优化为实现高效的加密证明。支出密钥在 Railgun 交易中扮演重要角色:
查看密钥:查看密钥提供对隐私数据的只读访问,允许用户或可信第三方解密并查看特定私人交互。与支出密钥不同,查看密钥无法授权交易,从而确保其不会妨害安全性。查看密钥是使用 Ed25519 椭圆曲线实现的,使其在解密任务中高效。查看密钥的关键特性:
钱包生成一个 0zk 地址,它是传统以太坊 0x 地址的私密对应物。此地址将支出和查看密钥组合成一种更复杂的格式,使用户能够在 Railgun 私密生态系统内进行交易,而不暴露其加密密钥或钱包活动。
在 Railgun 中隐藏代币涉及将资产从公共可见性转换为在全球 Merkle 树内管理的加密私密状态。从根本上讲,隐藏生成 UTXOs(未花费交易输出)——用户余额的加密表示——使 Railgun 能够在确保交易有效性的同时保持隐私。通过利用先进的加密承诺、随机性和零知识证明,Railgun 智能合约确保隐藏过程隐藏所有敏感信息,同时保持可验证和无需信任。
启动隐藏交互
在用户决定将代币(例如 ETH、ERC-20 代币或 NFT)移动到 Railgun 隐私系统时,隐藏过程开始。这一操作调用 Railgun 智能合约,并为创建一个私密余额奠定基础。隐藏不仅仅是移动资产;相反,系统将用户公开持有的代币转换为一种只能在 Railgun 隐私系统内访问的加密形式。在此时,创建一个 UTXO,封装交易细节:代币类型、代币数量、接收者公钥以及确保每个隐藏交互产生唯一输出的随机因素。随机性的使用在这里至关重要,因为它防止任何外部观察者关联到两个相同的交易或推断基于代币数量或接收者数据的模式。
创建加密承诺
一旦生成 UTXO,Railgun 将其内部值(包括随机性、代币数量和接收者的公钥)结合成一个加密承诺。这个承诺是使用 Poseidon 哈希函数创建的,这是一种为 zk-SNARK 电路高效运行而设计的友好的哈希算法。最终生成的哈希是不可逆的,这意味着外部观察者无法从承诺本身推断出 UTXO 的内部细节。从外部观察者的角度来看,承诺看起来像一个单一的不透明值。此承诺成为私密代币在 Railgun 系统中的锚,并在用户之后希望支出、转移或交互其隐藏余额时充当参考点。
生成零知识证明
为了确保隐藏过程的安全并遵循 Railgun 系统的加密规则,用户生成一个 zk-SNARK 证明。这个证明是在用户设备上本地创建的,确保隐藏交易是有效的,同时不会泄露任何敏感信息。
证明本身是简洁和高效的,允许 Railgun 智能合约快速验证,同时保持底层交易的隐私。这个机制确保协议保持无信任,因为验证者并不需要查看交易细节即可确认有效性。
更新 Merkle 树
一旦 zk-SNARK 证明被验证,Railgun 智能合约通过将新的承诺添加到全球 Merkle 树来最终确定隐藏过程。Merkle 树是 Railgun 所有被隐藏 UTXO 的加密分类账,以确保隐私和可验证性。添加新的承诺更新 Merkle 树的根哈希,反映所有被隐藏余额的当前状态。重要的是,树没有曝光单个承诺的内容,只有它们的哈希表示。该设计确保协议在完全保护用户特定数据的同时保持透明和可验证。在这一阶段,用户的代币正式进入 Railgun 隐私系统,而他们以前与公共 0x 地址的联系完全被屏蔽。
发出隐藏事件
作为最后一步,Railgun 智能合约发出一个包含承诺和相关交易元数据的加密隐藏事件。该事件对公众不可读,但可以使用用户的查看密钥解密。隐藏事件使用户能够安全地监控自己的隐私余额和交易历史,同时在公共区块链上保持完全的匿名性。此特性还引入了选择性透明性,因为用户可以与审计员或可信第三方共享其查看密钥,以验证特定交易而不妨害其整体隐私。
隐藏过程标志着进入 Railgun 隐私系统的关键起点。通过创建加密承诺和 UTXOs,Railgun 将公开可见的代币转变为无从外部观察者辨别的被隐藏状态。随机性和 zk-SNARK 证明的使用确保了隐藏过程是安全、无需信任且私密的,而全球 Merkle 树提供了一种可扩展且高效的机制来管理被隐藏余额的状态。一旦代币被隐藏,它们就可以在私密的 0zk 地址和链上继续用于转移、交换或其他 DeFi 交互。
尽管 Railgun 隐藏过程确保系统内的强大隐私性,但以太坊的透明特性在与 Railgun 智能合约交互时引入了独特的挑战。为了启动状态更改,必须有人在链上向 Railgun 的合约发送交易。如果用户直接与这些合约交互,外部观察者可能会将他们的外部 0x 以太坊地址链接到他们的私密 0zk 账户,从而损害他们的匿名性。
这一挑战因 Railgun 的单合约架构而进一步加剧。由于 Railgun 作为一个处理所有被隐藏交互的单一合约来运行,因此每个用户都必须与同一个合约进行交互,以启动交易。虽然这种设计提供了强大的内部隐私,但外部观察者可以看到与 Railgun 合约互动的模糊行为。虽然他们无法破译这些交易的内容或确认谁在执行,但交互本身的可见性可能提供可利用的模式。
为了减轻这个问题,Railgun 引入了广播者,即去中心化实体,它们作为中介,在交易提交过程中保持隐私。
在 Railgun 中,广播者是作为无许可中继的钱包,代表 Railgun 隐私用户向区块链提交加密交易。它们的主要作用是通过确保私密交易看起来源于广播者地址而非用户的公共以太坊地址,来对交互过程进行匿名化。通过充当中介,广播者保护用户的隐私,同时保持 Railgun 隐私保证的完整性。
从技术角度看,广播者是无许可的——因为它们本质上仅是钱包——并且理论上可以由任何人运营。它们运行轻量级的 Node.js 客户端,连接到配置了 Railgun 的钱包,处理超过收到的加密交互。广播者还会将 gas 需求广播给 Railgun 钱包,并自动处理发送给它们的交互,确保高效处理。
当用户在 Railgun 内发起私人交互时,他们根据 gas 费用和可用性等因素选择一个广播者。交互数据由用户的钱包本地加密并发送给选定的广播者。在此过程中:
这个过程确保交互模糊了关键细节,例如发送者的公共 0x 地址、交易金额和接收者信息。区块链分类账记录交易源自广播者的钱包,打破了与用户的直接可追溯性。
广播者对于 Railgun 隐私系统的作用至关重要,能够实现广播者与用户的公共以太坊账户和私密 0zk 账户之间的任何可观察联系。通过代表用户提交交易,广播者确保 Railgun 的隐私保证延续到整个链上交互的生命周期。这一额外的模糊层对于防止外部观察者根据与 Railgun 合约可见交互推断用户身份或交易模式至关重要。如果没有这个中介,用户在与区块链互动时就会面临损害匿名性的风险。
广播者网络旨在既稳健又去中心化,确保用户获得强有力的隐私保证。任何人都可以运营广播者,允许用户根据 gas 成本或可用性自由选择。这种灵活性不仅保持系统无许可和容错,还确保参与者在任何人失败或拒绝转发交易时始终可以访问协作广播者。此外,倾向于避免中介的用户可以选择自签名其交易,全权控制与 Railgun 智能合约的交互。通过将其交易直接提交到区块链,用户在不受任何潜在延迟或与广播者相关的成本影响的情况下,这就确保了隐私。去中心化的广播者与自签名的双重方式确保 Railgun 协议保持适应性、无信任并与区块链隐私的核心原则保持一致。
除了隐私之外,广播者还为用户提供实用的好处。通过启用无 gas 交易,用户可以以他们所选择的代币(例如 DAI 或 USDC)支付交易费用,而不必依赖区块链的原生货币。这个特性简化了交互,并增强了用户便利,同时维持了 Railgun 的严格隐私标准。事实上,广播者确保 Railgun 协议的隐私与功能保持稳健,为用户提供无缝的私密交易和在以太坊上交互的体验。
Railgun 的架构经过精心设计,以确保在每一次互动中,所有敏感细节(如发送者、接收者和交易金额)都被完全遮蔽。通过完全在区块链的执行层(L1)上操作,Railgun 无缝地将其隐私机制整合到原生链中,而不依赖于额外的层、桥接或中介。这一设计为用户提供了一个强大的隐私系统,同时维护了底层区块链的去中心化及无信任特性。
Railgun 隐私系统的核心是全球 Merkle 树,能够将所有被隐藏状态整合为一个单一的加密结构。该树确保没有外部观察者能够将输入(如存款)与输出(如交易或取款)链接,从而有效地打破透明区块链固有的可追踪链。用户余额、交易细节和代币信息以加密承诺的形式存储,确保公共存款与被隐藏资产之间不存在公共联系。这一全面的隐私机制将用户数据保护在区块链浏览器、恶意行为者和分析工具之外,创建一个交易对外部观察者来说难以区分的环境。
Railgun 的设计还提供了统一的执行层,使其能够完全在主区块链上运行,而不会出现碎片化。与依赖独立链或分离池孤立用户的混合器等隐私解决方案不同,Railgun 确保用户始终与更广泛的区块链生态系统保持连接。这种无缝整合避免了与跨链迁移或托管混合服务相关的低效率和安全风险。用户可以参与 DeFi 应用、执行代币转移,甚至在不离开 L1 环境的情况下隐藏 NFTs(ERC-721 和 ERC-1155),保持可组合性和访问完整的区块链功能范围。
然而,与任何隐私系统一样,Railgun 也并非没有局限性。一个挑战源于它与混合器共同的相似方面:时序和行为模式有时可能暴露用户身份。例如,如果用户隐藏 1000 ETH,随后又将相同的金额取消隐藏到一个新账号,外部观察者可能会推断出这两笔交易之间存在关联。这种关联的可能性强调了在 Railgun 系统内部实现隐私的同时,谨慎使用模式的重要性。尽管如此,广播者在一定程度上在减轻该问题方面发挥了关键作用。通过充当中介并代表用户提交交易,广播者模糊了交互的来源,打破了公共 0x 地址与私密 0zk 账户之间的直接联系。虽然这并不能消除可观察模式(如交易时机或金额)可能导致的关联风险,但它显著降低了外部观察者将交互与特定用户关联的可能性。与周到的交易行为相结合,广播者为用户在 Railgun 生态系统中保持匿名性提供了额外的保护层。
尽管存在这一局限性,Railgun 的架构提供了超出传统隐私解决方案的增强功能。该系统支持多种代币标准的私密交互,包括 ERC-20、ERC-721 和 ERC-1155。除了基本的转移,Railgun 通过其 SDK 启用可编程隐私,允许去中心化应用(dApp)本地集成隐私功能。这一可编程层使开发者能够构建用户可以直接隐藏其交互的应用程序,创建一个延伸区块链功能同时保持匿名性的隐私中心。
Railgun 的方法在强大的加密隐私与无缝区块链集成之间实现了平衡。通过利用全球 Merkle 树、zk-SNARK 证明和去中心化执行,Railgun 创建了一个完整的隐私层,能够在区块链生态系统内原生运行。尽管用户必须保持对可能妨害匿名性的行为模式的警惕,Railgun 的隐私、功能和可组合性的结合使其成为确保去中心化金融中的机密性的强大工具。
随着机制设计师寻求使 DeFi 更加安全和高效,暗池越来越受到关注。除了本文提到的协议外,像 Labyrinth、Penumbra 和 Fairblock 等其他实例也存在,以支持私密的链上交易。然而,暗池需要回答其可行性的多个问题:
如何提高暗池的流动性?像 Renegade 这样的暗池使用对等交易,而不是默认的对池模型。当有足够的对手可用以满足意图时,这种系统有效;但订单匹配的可用性并不保证,而交易保持私密的情况却可能加剧这一问题(潜在的流动性提供者不清楚是否应提供流动性)。Renegade 通过提供可选的“兴趣指示”来缓解这个问题,这使用户能够透露关于待处理订单的特定信息(例如,代币数量和交易对),以激励更快的订单匹配。这重新引入了前面讨论的问题,并从本质上代表了执行质量与执行延迟之间的权衡。
如何在暗池中实现合规性?在 2022 年实施 OFAC 制裁后,我们看到了设计以保持合规性的 DeFi 协议的增加。暗池属于无歧视性,无法本质上分离“有毒订单流”和“优质订单流”。这可能导致问题,并使暗池对那些关注其交易场所和交易对象的机构投资者失去吸引力。Renegade 允许用户在匹配前指定 KYC/AML 要求,而 Railgun 允许用户生成无辜证明(POI),证明资金未与非法资产混合。
如何最好地确保隐私——基于软件还是硬件的方法?MPC 和 ZKPs 提供了隐私的强力保证,因为它们允许对私密输入进行计算,但由于计算证明的需求而产生额外的开销。TEE 提供了较弱的隐私保证(依赖于硬件制造商),但可以提供更好的性能和更好的用户体验。机制设计师可能会选择探索深入防御的方法,将这些方法结合在一起,或投资于提高 MPC-ZKP 机制的效率。
如何使暗池有助于高效的价格发现?暗池中高效的价格发现需要平衡隐私与对市场动态的可见性。Renegade 通过可选的兴趣指示(IOI)实现这一目标,允许有选择性地披露订单参数,吸引对冲流动,同时保持隐私。Railgun 则专注于保持匿名性,同时支持 DeFi 交互,例如私密交换,间接通过增加交易活动来促进市场效率。另一方面,Tristero 则利用基于 TEE 的架构进行低延迟的订单匹配和意图哈希,确保可验证的交易而防止操控。机制设计师可以探索结合这些技术的混合方法,以优化流动性和透明度以助力价格发现。
去中心化暗池的演变面临着流动性、合规性、隐私和价格发现等相互关联的挑战。领先的协议展示了不同的技术方法:Renegade 和 Railgun 利用零知识证明和多方计算等加密解决方案,而 Tristero 则采用基于硬件的 TEE。这些实现建立了安全的私密交易环境,在综合性和可信性方面与传统金融市场竞争。
随着暗池的成熟,它们的技术框架将发展以满足更广泛用户群体的需求。对隐私保护技术和计算效率的持续改进将降低成本,并提升可用性,使得暗池对机构交易者和散户参与者都更具吸引力。此外,合规机制(如 KYC/AML 协议和无辜证明)的集成,可能会使暗池作为寻求安全和透明的受监管实体的首选选择。凭借其培育更深层次流动性、更惠及定价和更强的隐私保障的潜力,暗池有望在去中心化金融领域发挥变革性作用,成为各类交易者不可或缺的工具。
请关注 @2077Research 以获取更多研究文章,并访问网站了解以太坊研究和开发主题的深入分析。
- 原文链接: research.2077.xyz/the-hi...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!