作者:Oliver、Andy、Howe
全文约 10900 字
建议阅读时间:30 分钟
1969 年,金融市场的交易方式还停留在传统的交易大厅。彼时计算机技术尚未成熟,交易者们依赖于大声喊叫来下达指令,这种低效且不私密的交易方式使得机构投资者难以在不引起市场波动的情况下进行大额交易。由 Jerome Pustilnik 创立的 Instinet 应运而生,Instinet 通过电子交易平台,允许投资者匿名下单,平台负责匹配买卖双方的订单并执行交易。这种模式不仅提高了交易效率,还确保了交易的保密性,有效防止了市场影响和信息泄露。
而今,技术的进步带来了区块链技术的诞生,这一革命性的创新为金融交易带来了前所未有的透明度和安全性。然而,区块链的公开性和不可篡改性虽然为市场带来了诸多好处,但也为大额交易者带来了新的挑战。在区块链的公开账本中,每一笔交易都对所有参与者可见,这使得大额交易者在执行交易时难以保持匿名性。传统的交易所平台无法完全保护交易者的隐私,大额订单的公开可能导致价格波动,影响交易效率和成本。此外,监管的不确定性和市场的不透明性也为投资者带来了额外的风险。
本报告将探讨区块链暗池作为一种创新解决方案,它如何通过引入先进的隐私保护技术和自动化交易机制,为加密货币市场提供更加安全、高效的大额交易环境;以及 Singularity 如何通过其创新的解决方案,利用 FHE (全同态加密)、ZKP (零知识证明)等技术为大额投资者提供一个私密且合规的去中心化交易平台。
暗池(Dark Pools) 在传统金融市场中,是指那些不公开交易信息的私人交易平台,它们允许投资者在不暴露其交易意图的情况下进行大额交易。暗池交易最早出现在美国,兴起的主要原因与证券市场上兼并、收购日益频繁,大宗股权的转让需求蓬勃发展有密切关系。随着金融市场的发展,暗池在股票、债券、外汇等多个领域中的重要性日益凸显,尤其是在高频交易和算法交易成为主流的当下。据统计,暗池交易在股票市场中的占比已达到 30% 至 50% ,成为市场流动性的重要组成部分。
在加密货币市场,随着大户群体的壮大,大宗交易的需求持续上升。这些大额订单对市场的影响力巨大,有时甚至可能触发市场动荡。为了规避这种风险,许多交易者转向 OTC 市场甚至 Telegram 群组进行交易。根据 Kraken 交易所 2020 年的数据,自 2018 年起,全球 OTC 交易量激增 20 倍,日均交易额达到约 3000 亿美元,占整个加密货币市场交易量的近 70 %。然而,OTC 市场也面临着流动性不足和监管缺失的问题。为了应对这些挑战,暗池作为一种解决方案被引入,旨在提供一个更加稳定和私密的交易环境。
以下是暗池的关键要点:
暗池是隐私赛道的一个分支,暗池通过以下这些 PETs(隐私增强技术),如零知识证明、多方计算(MPC)和全同态加密(FHE)等,将隐私注入其基础架构中。
零知识证明(ZKP)技术允许证明者在不泄露任何实质性信息的情况下,向验证者证实某个陈述的正确性。这种技术在以太坊Layer 2扩容解决方案中尤为关键,如 ZK Rollup ,它通过将交易数据压缩成紧凑的ZK证明并提交至主网,实现了交易的有效性验证。这种证明不仅占用极小的存储空间,而且保护了交易信息的隐私,体现了无信任机制的天然优势。ZKP技术的应用不仅限于扩容,还包括隐私计算,其主要实现形式包括 zkSNARK、zkSTAR 和 Bulletproof,这些技术共同推动了加密货币隐私保护和交易效率的提升。
安全多方计算(MPC)是一种允许多个参与方在不泄露各自输入的情况下共同计算一个函数的技术。在隐私领域,MPC 提供了一种保护敏感数据的方法,使得参与方可以在不暴露个人数据的前提下,共同完成数据分析、计算任务或达成决策。MPC 的核心优势在于其隐私保护能力。通过分布式计算和加密技术,参与方可以确保自己的数据在整个计算过程中保持私密。
安全多方计算介绍
全同态加密(FHE)是一种密码学技术,它允许在加密数据上直接进行计算,而无需先解密。这意味着数据在保持加密状态时,就可以进行加、减、乘等运算,计算结果在解密后与在原始数据上进行相同运算的结果一致。FHE 的核心价值在于它为隐私保护提供了一种强大的工具,使得数据在被处理时始终保持私密,从而极大地增强了数据的安全性。
在公链上运行的去中心化交易所(DEX)如 Uniswap 和 Curve ,由于其账本的公开透明性,容易受到最大可提取价值(MEV)的影响。这种透明性意味着订单详情对所有人可见,使得搜索者和构建者能够通过重新安排交易顺序来优化自己的收益,这在一定程度上损害了其他用户的利益。
暗池作为一种金融交易场所,其核心优势在于提供隐私保护和抗审查性。在暗池中,订单详情通常对第三方保持隐秘,因为每笔订单都会生成零知识证明(ZKPs),这减少了交易信息的公开披露。这种架构对于大户和机构投资者尤其有吸引力,因为它能够保护他们的交易策略不被竞争对手或市场操纵者利用。此外,暗池的这种特性也有助于抵御MEV,因为交易的顺序和细节不公开,从而减少了被重新安排的可能性。
然而,当交易需要调用公共合约或使用共享定序器时,这些优势可能会减弱,因为这些操作可能会暴露交易信息,为 MEV 的捕获提供机会。尽管如此,对于寻求隐私和抗审查保护的大户和机构投资者来说,暗池仍然是一个有吸引力的选择,尤其是在他们的交易活动需要高度保密的情况下。
Tornado Cash 等隐私保护工具的出现,为用户提供了在链上进行匿名金融活动的可能性,但这也被一些犯罪分子用来从事洗钱等非法活动。Tornado Cash 的智能合约地址就因不合规被列入了 OFAC 名单。美国外国资产控制办公室(OFAC)通过维护一份特别指定国民(SDN)名单,对不合规的个人和实体进行制裁。不符合 OFAC 规定的协议,有很高的可能性会导致它们的交易被排除在链上的区块之外。截止至 2024 年 2 月 23 日,需要经过 OFAC 名单审查的的区块为 45%。这种抗审查性问题不仅影响区块生成者,还可能影响验证者和中继器,他们可以选择性地忽略某些交易或区块。
随着 Tornado Cash 因不合规而被禁止,市场出现了对合规隐私解决方案的需求真空。为了满足这一需求,后来的暗池项目需要在提供隐私保护的同时,避免类似的监管风险。笔者认为一种有效的方法是在项目中集成经过验证的 KYB/KYC 流程,这样不仅能确保用户活动的合法性,而且有助于规避可能的监管风险。法律监管往往跟不上技术发展的步伐,这导致隐私项目很容易被用于非法活动。为了确保项目的安全和合法性,积极拥抱并遵守监管是至关重要的。
在 2010 年至 2022 年期间,暗池项目的数量有限,且这些项目并未在大众中获得广泛认知。然而,随着零知识证明(ZKP)、多方计算(MPC)等隐私增强技术的进步,暗池领域迎来了一系列创新技术解决方案。这些技术的发展使得暗池在 2023 年重新进入了公众视野。尽管如此,由于技术的复杂性,暗池赛道的项目数量仍然相对较少。以下罗列几个已经相对比较成熟的项目。
理解隐私交易的概念需要考虑交易主体和交易细则两个方面,并区分匿名和隐藏两种类型的隐私。
一笔普通交易包含以下要素:
隐私交易可以根据对第三方的信息可见程度分为两类:
从整体结构来看,共可以分为大致 5 个模块:
这是用户主要交互的智能合约,用于表达和执行ZK电路逻辑。这些智能合约的功能包括隐藏 ETH/ERC20 代币的余额和交易记录,以实现匿名性和交易内容的隐藏。作为一个汇集了所有类型的所有交易者的所有资产的流动性地。其名称来源于其独特的特性,即对于所有观察者来说,所有的协议交易似乎都源自这个智能合约。这种设计为用户提供了多维度的隐私。
在 Singularity 协议中,ZK Notes 构成了交易的基本单位,它们包含了关键的交易信息,包括资产类型、金额以及与所有者相关的加密标识。这些 Notes 的设计旨在实现高度的隐私保护,确保交易者的身份和资产信息得到有效地保护。
每个 Note 包括以下关键信息:
除了上述信息外,每个 Note 还会生成一个相应的Nullifier。Nullifier的生成采用了哈希函数的加密技术,将 Note 的随机值和公钥作为输入,经过处理得到相应的Nullifier。这种设计旨在为交易提供额外的安全保障,确保只有合法的授权用户才能有效地操作和消费 Note。
Note 的添加存储
在 Singularity 协议中,所有的 Notes 都会被附加到一个只能追加的默克尔树上,并将新默克尔树的根永久存储。这样设计的目的是为了确保交易的完整性和安全性,防止数据被篡改和损坏。
以一个简单的例子说明:
假设 Alice 是一个 Singularity 协议的用户,她在某一时刻进行了一笔交易,将 1 ETH 存入了 Singularity 合约。这笔交易将被记录为一个 Note,并附加到当前的默克尔树上。此时,默克尔树的根是由这个单独的 Note 计算得到的。
随后,Bob 也进行了一笔交易,将 0.5 ETH 存入了 Singularity 合约。这笔交易也会被记录为一个 Note,并追加到当前的默克尔树上。默克尔树的根随着新的 Note 的添加而更新。
随着更多的用户进行交易,每个新的 Note 都会按照时间顺序被添加到默克尔树上。这样,每个用户的交易历史都被保留在同一个数据结构中,并且通过计算默克尔树的根哈希值,可以有效地验证整个交易历史的完整性。因为默克尔树是只能追加的,所以不可能修改或删除已经添加到树中的任何 Note,从而确保了交易数据的安全性和不可篡改性。
Note 的交易验证
当交易者进行交易消费时,他们必须透露相应的Nullifier,并在零知识证明中提供相关的证据,以验证Nullifier与相应的 Note 相关联,并证明 Note 在默克尔树中的存在。智能合约将对Nullifier的唯一性进行验证,并验证证据的有效性,以确保交易的合法性和安全性。
以一个简单的例子说明:
假设 Alice 拥有一个 Note,其中包含了她存入 Singularity 合约的 1 ETH,并且该 Note 的 Nullifier 为 "AAA123"。现在,Alice 想要使用这笔资金进行一笔交易,因此她必须提供 "AAA123" 作为Nullifier,并且通过零知识证明来证明以下两点:
智能合约将对 Alice 提供的 Nullifier 和证据进行验证,确保 Nullifier 的唯一性和证据的有效性。只有当验证通过时,合约才会执行交易,并将资金转移给 Alice 想要的接收方。这样,智能合约可以确保交易的合法性和安全性,防止任何恶意行为或欺诈行为的发生。
下述是以上逻辑的伪代码实现:
//伪代码
pragma solidity ^0.8.0;
contract SingularityContract {
mapping(address => mapping(bytes32 => bool)) private invalidValues;
mapping(bytes32 => bool) private merkleTree;
// 存款操作,将资金存入 Singularity 合约
function deposit(bytes32 noteHash, bytes32 invalidValue) public payable {
require(msg.value > 0, "Deposit amount must be greater than 0");
// 将 Note 添加到默克尔树中
merkleTree[noteHash] = true;
// 存储 nullifier
invalidValues[msg.sender][noteHash] = true;
}
// 交易消费操作,验证nullifier和证据,执行交易
function spend(bytes32 noteHash, bytes32 invalidValue, bytes memory proof) public {
// 验证提供的nullifier是否与存储的一致
require(invalidValues[msg.sender][noteHash], "Invalid value does not match");
// 验证 Note 在默克尔树中的存在
require(merkleTree[noteHash], "Note does not exist in the Merkle tree");
// 进行零知识证明的验证
require(_verifyProof(noteHash, invalidValue, proof), "Proof verification failed");
// 执行交易,将资金转移给接收方
// 这里省略了具体的转账操作
}
// 零知识证明的验证函数
function _verifyProof(bytes32 noteHash, bytes32 invalidValue, bytes memory proof) private view returns (bool) {
// 在实际中需要进行具体的零知识证明验证
// 这里省略了具体的验证过程
// 如果证明验证成功,则返回 true,否则返回 false
return true;
}
}
Book 通过采用全同态加密(Fully Homomorphic Encryption,FHE)技术构建完全私密的离线订单簿,为交易者提供安全可靠的交易环境。
在 Book 系统中,一组特殊的 FHE 节点,即 Bookies,扮演着关键角色,集体负责操作订单簿。其匹配流程包括:
为确保 Book 系统的稳定运行,采用了多数意见胜出的激励机制,并要求 Bookies 抵押代币:
在 Book 系统中,身份和声誉管理是关键,创新点包括:
以一个简单的例子说明: 假设 Alice 希望购买 1 个 ETH,
Automation 是一个协议内置的 AMM-DEX,其中 Book 作为备用流动性提供者。因为交易者可以通过 Singularity 提交交易来存入资金,而 Singularity 是匿名的。因此,存款到 Automation 的资金也是匿名的。这意味着交易者的身份不会被公开暴露,保护了他们的隐私。
交易者随时可以从 Automation 提取资金并将其转移到 Singularity 合约。这种灵活性使交易者能够自由地管理他们的资金,并在需要时随时提取。同样,由于 Singularity 合约本身是匿名的,因此资金的提取过程也能够保护交易者的匿名性。
对于未能与 Book 中的任何订单匹配的订单,Automation 将提供匹配,以帮助增加流动性。这确保了即使没有立即匹配到订单,交易者的订单仍然能够得到处理,并且他们的交易可以继续进行。通过提供额外的流动性,Automation 能够改善整个协议的效率和交易体验。
中继器(Relayer)在 Singularity 中扮演着重要的角色,负责代表用户提交元交易,并支付用户交易的 Gas Fee。这一设计是出于保护用户匿名性的考虑。因为 Gas Fee 必须支付给通常是公开的基础层区块链,如果用户支付自己的 Gas Fee,那么用户的身份可能会被暴露。
中继器通过提交元交易来执行这一任务。元交易是原生可验证的、可计算的,使得中继器无法篡改或更改交易的内容,从而确保交易的安全性和完整性。此外,为了确保中继器不会恶意行为,整个系统设计了一个无需信任的中继器网络。这意味着任何人都可以运行一个中继器,而无需提供任何形式的抵押。
用户提交的交易与其关联的费用是公开的,并且将支付给中继器以补偿其支付的 Gas Fee。这种设计使得中继器网络成为一个理性的系统,它们会接收任何有利可图的交易并将其提交。即便出现作恶中继器,只需要保证有大于等于 1 个诚实中继器便可以保证系统完备。当然交易者可以选择自己运行中继器并且进行 Gas Fee 替付,只是会牺牲部分的隐私性。
API 是用户与协议交互的接口节点。通过 API,用户可以生成并提交证明到 Singularity 合约,管理 Book 上的订单,监听 Book 以寻找匹配,并在 Singularity 合约上进行协商结算。此外,API 还允许用户与 Relayers 进行交互。
根据上述结构可以实现前文提及的隐私交易:
以 Automation 进行交易时,因为交易者需要进行 deposit 的操作,所以会暴露每次质押时的金额,正如每次 deposit 至 Singularity,无法避免第三方监听到该笔交易细则。因此 Automation 进行交易会牺牲交易隐藏性。
需要注意的是当 Book 无法匹配到交易者时,虽然其订单可以被纳入 Automation 交易池中匹配(貌似会暴露交易者地址),但仍保证交易者匿名性,因为转移其流动性的主体为 Singularity。
以 Singularity 进行交易结算时,无论该笔交易通过什么方式进行交易价格发现、意向撮合,最后交易的结算依然可以保证其匿名性、隐藏性,因为 Singularity 合约负责托管结算的资金,并且完成资金的转移最终性,也就实现了明池做暗。
暗池作为针对大型机构和专业交易者的一个不影响市场价格的交易平台,主要有 Transfer 和 Swap 这两大交易需求。接下来我们将根据上图的内容详细解读 Singularity 对这两种交易类型的实现。
需要注意的是上图中 API Nodes 和 Trading Nodes 属于同一个节点,这里为了更好的解释将其拆分为两种节点。
Transfer 交易主要发生在两个 Trader 节点之间,我们将想要接收的 Trader 节点定义为 Trader A,将想要发送的 Trader 节点定义为 Trader B。那么 Trader A 和 Trader B 具体的交易流程如下:
在这其中我们可以看到,节点与合约之间的交互都是通过 ZK Note 来进行,Note 采取 UTXO 模型来进行传递,相比于账户模型其自身已具备了一定的隐私性和匿名性。在这种方式下既保证了交易的具体信息只由这笔交易的发起者自己知道,又实现了从外部看仅是某个地址与 Singularity 合约进行了交互,但交易的基本信息如接收方地址或交易金额等无法被捕获。
Swap 交易相对于 Transfer 交易来说因为涉及到需要寻找交易对手而更复杂一些,这里我们将想要进行 Swap 交易的 Trader 节点定义为 Trader C,将最终找到的交易方 Trader 节点定义为 Trader D。那么 Trader C 和 Trader D 具体的交易流程如下:
由此,我们可以看到 Singularity 在交易过程中主要通过 ZK 和 FHE 技术来实现交易的隐私性和匿名性。ZK 技术的使用使得任何交易的具体信息只有该交易的发起者知晓,但又能让其他交易者或 Singularity 合约进行快速验证;FHE 技术使得 Book 节点在交易撮合过程中无需获知具体的交易信息就能计算出相互匹配的交易,且在通知双方交易者时也不会透露原始交易的信息,即双方只知道跟谁交易,但不知道具体的交易资产类型和交易金额等。
OTC 市场占整个加密货币市场交易量的近 70% 足见隐私交易在 Web3 行业中是一个巨大的用户需求。但目前隐私交易赛道仍面临着种种问题,例如,如何满足政府机关的监管需求、怎么在不透露用户和交易的具体信息的前提下达成交易、如何避免交易双方作恶等。Singularity 等去中心化暗池作为一种创新的解决方案,能够利用隐私技术和智能合约为用户提供更高级别的隐私保护和抗审查能力,减少对中心化实体的信任依赖。这些平台支持用户在匿名状态下进行大额交易,并能与合规服务相结合,创造出既去中心化又符合监管标准的交易环境。因此,对于暗池赛道而言,以下四大角度是笔者认为我们需要去着重考量的:
ZKP、MPC 等隐私增强技术是暗池赛道的基石,它们能够在不泄露交易细节的情况下验证交易的合法性。许多当前的协议主要或完全依赖于多方计算(MPC),但这种方法存在两个主要缺点:计算效率低下和协议复杂性。MPC 协议需要在 MPC 环境中对零知识证明 (ZKP) 进行证明和验证,而零知识证明本身就计算密集。此外,MPC 通常需要稳定的网络连接,这在全球化的分散网络中往往难以实现。这两个因素结合起来,使得基于完全 MPC 的协议在大规模应用,如订单匹配引擎中,变得不太实用。
监管是隐私赛道绕不开的话题。如何满足用户的交易和资金是完全匿名的,并提供足够的隐私保护,是一个相对困难的任务。这对于希望与合规资本进行交易的用户来说尤为重要。可见,暗池项目急需集成相应的 KYB/KYC 流程,积极拥抱监管,同时还需采取一系列措施保证用户的 KYC/KYB 数据不被泄漏,才能确保其平台的合法性和用户的信任。
流动性是暗池运营的关键因素。为了确保暗池的有效运作,交易量&资金安全至关重要,它不仅有助于订单的高效匹配,还能增强交易者的匿名性、参与意愿。在暗池中,资金的匿名性随着池内资金量的增加而提高,因为有更多的潜在存款人可以选择与这些资产关联,这使得追踪特定存款人变得更加困难。在流动性稀缺的情况下,很多协议采用的订单簿模式在用户间撮合交易也存在局限,因为并不总是能够提供足够的流动性来满足所有订单。除了订单簿以外,创新的 AMM 交易机制,集成更多公链生态中的 Defi 应用或许是扩大的有效途径之一。
确保暗池具备良好的可扩展性,能够应对不断增长的用户数量和交易量,是暗池的必经之路。暗池如果面临激增的 LP 却无法匹配相对应的订单,这将会让暗池损失。因此暗池在设计阶段就要考虑其结算层、技术设计、生态路线,以满足更高的交易需求,尤其在逐步完善的监管体系下,老钱的进场只会让此猝不及防。
暗池交易作为在传统行业已有一定历史且目前仍然没有被证伪的一种解决方案,其市场需求和发展潜力仍然相当巨大。传统的暗池交易面临着中心化交易商的信任风险,而 Singularity 作为去中心化的暗池交易项目之一,其创新性地采用了**“暗池+明池做暗”的模式**解决了传统暗池存在的依赖中心化、隐私性不够、抗审查能力差等痛点。
不同于以往的隐私交易项目,Singularity 在提供资产隐私交易功能的同时还提供了 DeFi 的资产交易能力。当前市场上的交易聚合器数不胜数,但是有特点有用户黏性设计的聚合器几乎没有,而 Singularity 作为明池的隐私层首先解决了机构和巨鲸的交易痛点,保持信息差。对比现在的隐私交易解决方案,暗池(隐私层)的设计天然具有 keep money in the pocket 的特点,因为如果交易者的资金频繁进出平台,隐私就失去了意义,相当于自我披露。所以大部分资金都会选择在暗池停留足够的时间之后才会撤出,这对于保持项目的 TVL 稳定增长有很好的好处,且能带给用户更多的安全感。
根据上述去中心化的暗池的标准,我们可以看到 Singularity 的表现情况在现有暗池解决方案中较为突出:
与此同时,我们在看到 Singularity 的核心竞争力时,也需要注意 Singularity 在未来可能会遇到的潜在风险:
综上所述,Eureka Partners 将隐私赛道作为重要战略投资赛道之一。对投资机构和其他参与方来说,Singularity 是暗池交易;但是对监管方来说,Singularity 更像是“灰池”,我们预期 OTC、机构交易将逐渐走向拥抱监管为主的暗池隐私交易方式。我们认为,Web3 目前的技术发展都是“折返式前进”。Tornado Cash 受到强监管后,隐私交易出现了肉眼可见的需求真空。同时纵观历史,规则的落地往往滞后于技术的突破和革命。当技术遇到挑战时,我们更应该拥抱变化,不浪费任何一次危机。我们期待 Singularity 会在拥抱监管的暗池 ZK 隐私赛道成为下一个领跑者。
Never waste a good crisis. -Winston Churchill