*转发原文标题:Eureka Partners 研报:Singularity — 透明区块链上的隐私交易
1969 年,金融市场的交易方式还停留在传统的交易大厅。彼时计算机技术尚未成熟,交易者们依赖于大声喊叫来下达指令,这种低效且不私密的交易方式使得机构投资者难以在不引起市场波动的情况下进行大额交易。由 Jerome Pustilnik 创立的 Instinet 应运而生,Instinet 通过电子交易平台,允许投资者匿名下单,平台负责匹配买卖双方的订单并执行交易。这种模式不仅提高了交易效率,还确保了交易的保密性,有效防止了市场影响和信息泄露。
而今,技术的进步带来了区块链技术的诞生,这一革命性的创新为金融交易带来了前所未有的透明度和安全性。然而,区块链的公开性和不可篡改性虽然为市场带来了诸多好处,但也为大额交易者带来了新的挑战。在区块链的公开账本中,每一笔交易都对所有参与者可见,这使得大额交易者在执行交易时难以保持匿名性。传统的交易所平台无法完全保护交易者的隐私,大额订单的公开可能导致价格波动,影响交易效率和成本。此外,监管的不确定性和市场的不透明性也为投资者带来了额外的风险。
本报告将探讨区块链暗池作为一种创新解决方案,它如何通过引入先进的隐私保护技术和自动化交易机制,为加密货币市场提供更加安全、高效的大额交易环境;以及 Singularity 如何通过其创新的解决方案,利用 FHE (全同态加密)、ZKP (零知识证明)等技术为大额投资者提供一个私密且合规的去中心化交易平台。
暗池(Dark Pools) 在传统金融市场中,是指那些不公开交易信息的私人交易平台,它们允许投资者在不暴露其交易意图的情况下进行大额交易。暗池交易最早出现在美国,兴起的主要原因与证券市场上兼并、收购日益频繁,大宗股权的转让需求蓬勃发展有密切关系。随着金融市场的发展,暗池在股票、债券、外汇等多个领域中的重要性日益凸显,尤其是在高频交易和算法交易成为主流的当下。据统计,暗池交易在股票市场中的占比已达到 30% 至 50% ,成为市场流动性的重要组成部分。
在加密货币市场,随着大户群体的壮大,大宗交易的需求持续上升。这些大额订单对市场的影响力巨大,有时甚至可能触发市场动荡。为了规避这种风险,许多交易者转向 OTC 市场甚至 Telegram 群组进行交易。根据 Kraken 交易所 2020 年的数据,自 2018 年起,全球 OTC 交易量激增 20 倍,日均交易额达到约 3000 亿美元,占整个加密货币市场交易量的近 70 %。然而,OTC 市场也面临着流动性不足和监管缺失的问题。为了应对这些挑战,暗池作为一种解决方案被引入,旨在提供一个更加稳定和私密的交易环境。
以下是暗池的关键要点:
▪ 隐私和保密性:暗池允许交易者匿名交易,保护其身份和订单大小不被公开市场知晓,直到交易执行完毕。
▪ 减少市场影响:暗池使大型机构投资者能够在不引起公开市场显著价格波动的情况下执行大额订单,最小化市场影响和滑点。
▪ 不披露交易策略:暗池交易有助于保护交易者的策略不被公开市场知晓,避免被 MEV 套利、复制交易套利以及统计套利等。
▪ 流动性和价格改善:暗池通过匹配可能在传统交易所中未能找到交易对手的买卖双方,为市场提供额外流动性,从而可能为参与者带来价格改善,尤其是对于大宗交易。
▪ 引入监管:暗池受到监管,监管机构监控暗池活动,防止不公平访问、内幕交易或市场操纵。但对于很多暗池而言,中心化的管理方式仍存在安全性、可信度以及私人数据潜在滥用的风险,历史上,已有多起因中心化暗池违反信任原则而受到处罚的案例。
暗池是隐私赛道的一个分支,暗池通过以下这些隐私增强技术(PET),如零知识证明(ZKP) 、多方计算(MPC)和全同态加密(FHE)等,将隐私注入其基础架构中。
▪ 零知识证明(Zero Knowledge Proof , ZKP)
零知识证明(ZKP)技术允许证明者在不泄露任何实质性信息的情况下,向验证者证实某个陈述的正确性。这种技术在以太坊Layer 2扩容解决方案中尤为关键,如 ZK Rollup ,它通过将交易数据压缩成紧凑的ZK证明并提交至主网,实现了交易的有效性验证。这种证明不仅占用极小的存储空间,而且保护了交易信息的隐私,体现了无信任机制的天然优势。ZKP技术的应用不仅限于扩容,还包括隐私计算,其主要实现形式包括 zkSNARK、zkSTAR 和 Bulletproof,这些技术共同推动了加密货币隐私保护和交易效率的提升。
零知识证明介绍
▪ 安全多方计算(Multi-Party Computation, MPC)
安全多方计算(MPC)是一种允许多个参与方在不泄露各自输入的情况下共同计算一个函数的技术。在隐私领域,MPC 提供了一种保护敏感数据的方法,使得参与方可以在不暴露个人数据的前提下,共同完成数据分析、计算任务或达成决策。MPC 的核心优势在于其隐私保护能力。通过分布式计算和加密技术,参与方可以确保自己的数据在整个计算过程中保持私密。
安全多方计算介绍
▪ 全同态加密(Fully Homomorphic Encryption, FHE)
全同态加密(FHE)是一种密码学技术,它允许在加密数据上直接进行计算,而无需先解密。这意味着数据在保持加密状态时,就可以进行加、减、乘等运算,计算结果在解密后与在原始数据上进行相同运算的结果一致。FHE 的核心价值在于它为隐私保护提供了一种强大的工具,使得数据在被处理时始终保持私密,从而极大地增强了数据的安全性。
在公链上运行的去中心化交易所(DEX)如 Uniswap 和 Curve ,由于其账本的公开透明性,容易受到最大可提取价值(MEV)的影响。这种透明性意味着订单详情对所有人可见,使得搜索者和构建者能够通过重新安排交易顺序来优化自己的收益,这在一定程度上损害了其他用户的利益。
暗池作为一种金融交易场所,其核心优势在于提供隐私保护和抗审查性。在暗池中,订单详情通常对第三方保持隐秘,因为每笔订单都会生成零知识证明(ZKPs),这减少了交易信息的公开披露。这种架构对于大户和机构投资者尤其有吸引力,因为它能够保护他们的交易策略不被竞争对手或市场操纵者利用。此外,暗池的这种特性也有助于抵御MEV,因为交易的顺序和细节不公开,从而减少了被重新安排的可能性。
然而,当交易需要调用公共合约或使用共享定序器时,这些优势可能会减弱,因为这些操作可能会暴露交易信息,为 MEV 的捕获提供机会。尽管如此,对于寻求隐私和抗审查保护的大户和机构投资者来说,暗池仍然是一个有吸引力的选择,尤其是在他们的交易活动需要高度保密的情况下。
Tornado Cash 等隐私保护工具的出现,为用户提供了在链上进行匿名金融活动的可能性,但这也被一些犯罪分子用来从事洗钱等非法活动。Tornado Cash 的智能合约地址就因不合规被列入了 OFAC 名单。美国外国资产控制办公室(OFAC)通过维护一份特别指定国民(SDN)名单,对不合规的个人和实体进行制裁。不符合 OFAC 规定的协议,有很高的可能性会导致它们的交易被排除在链上的区块之外。截止至 2024 年 2 月 23 日,需要经过 OFAC 名单审查的的区块为 45%。这种抗审查性问题不仅影响区块生成者,还可能影响验证者和中继器,他们可以选择性地忽略某些交易或区块。
经过 OFAC 名单审查的区块比例
随着 Tornado Cash 因不合规而被禁止,市场出现了对合规隐私解决方案的需求真空。为了满足这一需求,后来的暗池项目需要在提供隐私保护的同时,避免类似的监管风险。笔者认为一种有效的方法是在项目中集成经过验证的 KYB/KYC 流程,这样不仅能确保用户活动的合法性,而且有助于规避可能的监管风险。法律监管往往跟不上技术发展的步伐,这导致隐私项目很容易被用于非法活动。为了确保项目的安全和合法性,积极拥抱并遵守监管是至关重要的。
在 2010 年至 2022 年期间,暗池项目的数量有限,且这些项目并未在大众中获得广泛认知。然而,随着零知识证明(ZKP)、多方计算(MPC)等隐私增强技术的进步,暗池领域迎来了一系列创新技术解决方案。这些技术的发展使得暗池在 2023 年重新进入了公众视野。尽管如此,由于技术的复杂性,暗池赛道的项目数量仍然相对较少。以下罗列几个已经相对比较成熟的项目。
Renegade 成立于 2022 年,是一个基于 MPC-ZKP 架构的去中心化暗池,专为机构投资者提供大额交易服务。Renegade通过点对点网络和多方计算(MPC)技术进行订单匹配,并使用 ZK-SNARKs 确保在验证订单匹配过程中,交易细节对外部保持匿名。此外,它还采用了中点执行机制,保证所有交易直接以实时聚合的中心化交易所中点价格成交,以避免滑点。其默认的匿名交叉交易功能,结合兴趣指标,促进了全面的价格发现和优化了流动性。
Penumbra 是一个构建在 Cosmos 生态系统中的一个去中心化的交易平台,它提供了一种类似暗池的交易环境,允许用户在保持隐私的同时进行交易。通过一种私有委托机制,Penumbra 结合了隐私保护和 POS(Proof-of-Stake)共识机制,能够提供质押衍生品、税收效率的质押以及带有私密投票功能的链上治理。Penumbra 通过 IBC(跨链通信)与 Cosmos 生态系统相连,作为一个生态系统范围内的暗池,允许在任何 IBC 兼容资产中进行私密交易。用户还可以使用 ZSwap,一个支持密封出价批量拍卖和 Uniswap-V3 集中流动性的私密去中心化交易所,来交换这些资产。
Panther 是一个跨链的 DeFi 平台,它结合了零知识技术,旨在提供一个既符合监管要求又保护用户隐私的解决方案。用户可以将数字资产存入 Panther 的多资产屏蔽池(MASPs),并按1:1比例获得 zAssets。通过 Zswap 模块,Panther 连接到其他DeFi协议,聚合报价供用户选择。交易时,Zswap 创建一个加密的托管合约,允许用户在不泄露交易细节的情况下交换资产。这种设计使得资产可以在多样化池中共存,保持数据的异构性,从而难以追踪和去匿名化用户。Panther 的屏蔽池利用 ZK SNARK 和 ZKP 技术,确保交易的隐私性和合规性。
Railgun 是一个为以太坊、BSC、Polygon 和 Arbitrum 设计的 ZKP-MPC 架构的隐私系统,它利用零知识(ZK)加密技术,利用 MPC 技术来完成可信设置仪式,允许用户在保持交易隐私的同时,安全地执行智能合约和 DeFi 操作。当用户通过 Railgun 下达交易指令时,一个名为 Adapt Module 智能合约会自动处理私有余额的隐私屏蔽解除、验证订单有效性,然后由中继器在聚合的 DEX 流动性中寻找最优汇率,最后将交易资产重新隐私屏蔽,确保用户活动和地址的匿名性。这一流程不仅适用于资产交换,还可扩展至其他 DeFi 交易类型。
如何实现隐私交易
隐私交易概念理解
理解隐私交易的概念需要考虑交易主体和交易细则两个方面,并区分匿名和隐藏两种类型的隐私。
一笔普通交易包含以下要素:
▪ 交易主体:包括交易的发送者(交易者A)和接收者(交易者B)。
▪ 交易细则:包括交易的金额、子交易次数、交易的哈希等具体细节。
隐私交易可以根据对第三方的信息可见程度分为两类:
▪ 匿名交易:在匿名交易中,对于第三方来说,交易的发送者和接收者的地址是不可知的。这意味着在交易过程中,除了参与交易的两个主体之外,其他人无法确定交易的具体参与者。例如,Tornado Cash 就是一种通过混淆交易路径来实现匿名性的隐私协议。
▪ 隐藏交易:在隐藏交易中,虽然交易的发送者和接收者的地址是可见的,但是交易的具体细则却是不可知的。这意味着交易的金额、子交易次数、交易的哈希等详细信息对于第三方来说是隐藏的。这种隐私可以通过使用零知识证明(Zero-Knowledge Proofs,ZKP)等技术来实现。例如,Zcash 就是一种利用 zk-SNARKs 技术实现交易细则隐藏的隐私加密货币。
Singularity 整体架构图
从整体结构来看,共可以分为大致 5 个模块:
这是用户主要交互的智能合约,用于表达和执行ZK电路逻辑。这些智能合约的功能包括隐藏 ETH/ERC20 代币的余额和交易记录,以实现匿名性和交易内容的隐藏。作为一个汇集了所有类型的所有交易者的所有资产的流动性地。其名称来源于其独特的特性,即对于所有观察者来说,所有的协议交易似乎都源自这个智能合约。这种设计为用户提供了多维度的隐私。
在 Singularity 协议中,ZK Notes 构成了交易的基本单位,它们包含了关键的交易信息,包括资产类型、金额以及与所有者相关的加密标识。这些 Notes 的设计旨在实现高度的隐私保护,确保交易者的身份和资产信息得到有效地保护。
每个 Note 包括以下关键信息:
资产类型(Asset Type):表示交易中涉及的资产类型,例如加密货币的代币类型或其他数字资产。
金额(Amount):指示 Note 中所包含的资产数量,用于确定交易的价值。
随机值(Rho):是一个随机生成的字段值,用于增强交易的隐私性,防止外部观察者对交易进行跟踪和分析。
Schnorr 公钥(Public Key):用于加密签名和验证交易的身份,确保只有授权用户才能进行有效的交易操作。
除了上述信息外,每个 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 进行复制并计算 Hash
随着更多的用户进行交易,每个新的 Note 都会按照时间顺序被添加到默克尔树上。这样,每个用户的交易历史都被保留在同一个数据结构中,并且通过计算默克尔树的根哈希值,可以有效地验证整个交易历史的完整性。因为默克尔树是只能追加的,所以不可能修改或删除已经添加到树中的任何 Note,从而确保了交易数据的安全性和不可篡改性。
Note 的交易验证
当交易者进行交易消费时,他们必须透露相应的Nullifier,并在零知识证明中提供相关的证据,以验证Nullifier与相应的 Note 相关联,并证明 Note 在默克尔树中的存在。智能合约将对Nullifier的唯一性进行验证,并验证证据的有效性,以确保交易的合法性和安全性。
以一个简单的例子说明:
假设 Alice 拥有一个 Note,其中包含了她存入 Singularity 合约的 1 ETH,并且该 Note 的 Nullifier 为 “AAA123”。现在,Alice 想要使用这笔资金进行一笔交易,因此她必须提供 “AAA123” 作为Nullifier,并且通过零知识证明来证明以下两点:
证明 “AAA123” 与所消费的 Note 相关联,即这笔交易的资金确实来自于该 Note。
证明该 Note 在默克尔树中的存在,即该 Note 是之前存入 Singularity 合约的,并且没有被篡改。
智能合约将对 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,扮演着关键角色,集体负责操作订单簿。其匹配流程包括:
API 节点对订单进行加密,确保订单内容的私密性,然后 Bookies 利用 FHE 协议进行订单匹配计算,保障订单信息的保密性。
订单匹配结果公布,但原始订单内容仍保持私密,以维护交易者的隐私权。
已匹配交易者可直接交流并使用 Singularity 合约的 Swap 功能进行结算,未能结算的交易者将受到声誉惩罚。
为确保 Book 系统的稳定运行,采用了多数意见胜出的激励机制,并要求 Bookies 抵押代币:
Bookies 间采用多数意见胜出机制,应对加密订单匹配中可能出现的分歧情况,避免恶意行为发生。
抵押代币设定旨在防范 Sybil 攻击,同时激励 Bookies 履行职责,保障系统正常运行。
在 Book 系统中,身份和声誉管理是关键,创新点包括:
每个匿名身份对应一个声誉,反映其历史结算概率,同时维护身份隐私。
交易者可设定声誉门槛,筛选订单匹配交易对手,确保交易安全性与可靠性。
未能结算交易者将受到声誉惩罚,同时影响其交易对手声誉。
以一个简单的例子说明:假设 Alice 希望购买 1 个 ETH,
订单提交:Alice 提交了购买 1 个 ETH 的订单,指定价格为 $2000 USDT。
订单匹配:Book 系统找到了卖家 Bob,他愿意以 $2000 USDT 的价格出售 1 个 ETH。
交易确认:Alice 和 Bob 确认他们的订单已经成功匹配。
交易结算:Alice 向 Bob 支付 $2000 USDT,并收到 1 个 ETH。Singularity 系统更新了他们的账户余额。
声誉管理:如果 Bob 未能按时完成交易或出现其他不良行为,他的声誉可能会受到降低,导致系统限制他与其他交易者的匹配。假设 Bob 的声誉评级为 5,这表示他是一个可靠的交易者。然而,如果 Bob 未能按时完成交易或出现其他不良行为,比如多次取消订单或恶意操纵市场,他的声誉可能会受到影响。这可能导致他的声誉评级下降 1 分,使其声誉降至 4,进一步限制其未来参与交易的门槛。
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)
以 Automation 进行交易时,因为交易者需要进行 deposit 的操作,所以会暴露每次质押时的金额,正如每次 deposit 至 Singularity,无法避免第三方监听到该笔交易细则。因此 Automation 进行交易会牺牲交易隐藏性。
需要注意的是当 Book 无法匹配到交易者时,虽然其订单可以被纳入 Automation 交易池中匹配(貌似会暴露交易者地址),但仍保证交易者匿名性,因为转移其流动性的主体为 Singularity。
▪ 匿名+隐藏交易 (Singularity 结算)
以 Singularity 进行交易结算时,无论该笔交易通过什么方式进行交易价格发现、意向撮合,最后交易的结算依然可以保证其匿名性、隐藏性,因为 Singularity 合约负责托管结算的资金,并且完成资金的转移最终性,也就实现了明池做暗。
Singularity 的交易流程
暗池作为针对大型机构和专业交易者的一个不影响市场价格的交易平台,主要有 Transfer 和 Swap 这两大交易需求。接下来我们将根据上图的内容详细解读 Singularity 对这两种交易类型的实现。
需要注意的是上图中 API Nodes 和 Trading Nodes 属于同一个节点,这里为了更好的解释将其拆分为两种节点。
Transfer 交易主要发生在两个 Trader 节点之间,我们将想要接收的 Trader 节点定义为 Trader A,将想要发送的 Trader 节点定义为 Trader B。那么 Trader A 和 Trader B 具体的交易流程如下:
1) Trader B 节点在进行交易时都需要将资金存入到 Singularity 合约中,Trader B 节点通过调用 API 对这笔存款交易进行加密,从而生成一个 ZK Proof 即前面提到的 ZK Note 并提供给 Singularity 合约已验证 Trader B 已经将资金存入其中
2) Trader B 在存入资金后会通过调用 API 向 Singularity 合约发起一笔 Transfer 交易,这笔交易同样也是以 ZK Note 的形式发送给 Singularity 合约
3) Singularity 合约在接收到 Trader B 的 Note 后会根据 Note 提供的内容找到对应的 Trader A,此时 Trader A 就可以将该 Transfer 交易的金额从 Singularity 合约提取出来
在这其中我们可以看到,节点与合约之间的交互都是通过 ZK Note 来进行,Note 采取 UTXO 模型来进行传递,相比于账户模型其自身已具备了一定的隐私性和匿名性。在这种方式下既保证了交易的具体信息只由这笔交易的发起者自己知道,又实现了从外部看仅是某个地址与 Singularity 合约进行了交互,但交易的基本信息如接收方地址或交易金额等无法被捕获。
Swap 交易相对于 Transfer 交易来说因为涉及到需要寻找交易对手而更复杂一些,这里我们将想要进行 Swap 交易的 Trader 节点定义为 Trader C,将最终找到的交易方 Trader 节点定义为 Trader D。那么 Trader C 和 Trader D 具体的交易流程如下:
1) 与前面 Transfer 交易的第 1 步相同,Trader C 需要将资金存入到 Singularity 合约中,同时 Trader C 会通过调用 API 先向 Book 节点发起一个 Order 交易
2) Book 节点作为一个链下的订单簿节点,它会在 FHE (全同态加密) 环境下尝试在不获知具体的 Order 交易信息的前提下将各个不同的 Order 交易进行撮合
a. 撮合成功时,Book 节点会通知对应的两个 Trader 节点进行交易
b. 撮合失败时,Book 会将这笔交易对应的资金放入到链上的 Automation 上 作为备用的流动性资金。这类似于我们把闲钱放入到余额宝中,在之后假如还有撮合失败的交易会优先从 Automation 中去进行交易,当 Automation金额不足以完成交易时才会通过 Singularity 合约与外部 DEX 如 Uniswap 等进行交互。
在找到交易对手并协商 Swap 细节之后,交易者将相互对 Swap 的交易细节进行签名。然后任何一方交易者都可以使用这些签名构造一个零知识证明,这使得该交易无需双方在线即可改变 Notes 的所有权。需要注意的是为了保障交易的隐私性,Swap 交易依然是通过 Singularity 合约来进行的。
由此,我们可以看到 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 的表现情况在现有暗池解决方案中较为突出:
▪ 匿名性和隐私保护:在匿名性处理,常规的方案都是 ZKP。因此,寻找到合适的合作方才是核心。目前 Singularity 让 ComplyCube (KYC) & Shufti Pro (KYC&KYB) 负责链下 KYC&KYB 处理,并且由 Keyring 构建对应的 proof,最后由预言机上链。对比其他项目,Singularity 要更加符合现在的合规需求,避免未来出现类似 Tornado Cash 的监管风险问题。
▪ 资金安全:合约安全无法进行直接对比。但是因为 Singularity 允许明池作暗,进一步让用户、机构资金迁移意愿下降,使其资金可能长期暴露在合约安全风险。上文也提及过,作为机构/用户,频繁的迁移资金也会暴露地址,因此需要在地址隐私和资金安全两者之间找到一个平衡点。
▪ 流动性:不同于只依赖于订单簿/AMM 模型的项目,Singularity 引入了订单簿&AMM 以确保流动性的效率能够最大化。但从实际应用来说,交易模式的不同最终导致的流动性差距可能不会很大,更多在于项目方的 BD 能力以及项目合规性,且最终的决定权更多在市场的用户身上。
▪ 可扩展性:从生态兼容性来说,Singularity 兼容 EVM 的生态算是主流叙事的一个打法,如果不考虑自己做链,其交易结算效率仍高度受限于其结算层,极端情况下,这些结算层未必能兜得住高频的交易。因此,中长期来看以 App-chain 生态延展的方向的项目会更具可扩展性。在技术方案中,上文也略有着笔,Singularity 选择以 FHE+ZKP 会比用 MPC-ZKP 的方案更高效,原因在于 MPC-ZKP 对计算效率要求很高。因此,目前来看,Singularity 选的技术方案还是能够满足相应的交易需求。从生态拓展来看,“明池作暗”的玩法还可以延伸到非交易的场景,还有其他 Defi 的场景,其想象力不亚于 Uniswap V4 提出的 hook。
与此同时,我们在看到 Singularity 的核心竞争力时,也需要注意 Singularity 在未来可能会遇到的潜在风险:
▪ 市场价格失去有效的价格发现功能:由于暗池交易的匿名性和交易资金量大等特性,市场上资产的价格可能无法准确反映暗池内发生的波动。这导致市场价格失去了有效的价格发现功能,因为其他市场参与者无法获取暗池内交易的信息。唯一的例外是,如果用户在 Singularity 使用常规 DEX 进行价格发现,那么价格可能会反映出真实的市场供需情况。
▪ 政府监管风险:由于暗池交易可能被用于逃避监管和规范,政府机构可能会采取一系列更加严厉的监管措施。这可能包括加强对暗池交易的监测和监管,或者对参与暗池交易的个人和实体进行处罚。这些监管措施可能会对 Singularity 项目的发展和运营造成影响,并增加法律风险。
▪ 资金管控安全:由于资金长期保管在 Singularity 合约中,这相当于一个 Vault,在极端情况下可能会存在一些合约风险,但因为 Singularity 不涉及多链之间的通信、负责交易递信的 Relayers,其安全性至少会比跨链桥要高。
▪ KYC/KYB 风险:在身份确权方面高度依赖有限的合作方对用户的资格审查,有可能出现单点风险。
综上所述,Eureka Partners 将隐私赛道作为重要战略投资赛道之一。对投资机构和其他参与方来说,Singularity 是暗池交易;但是对监管方来说,Singularity 更像是“灰池”,我们预期 OTC、机构交易将逐渐走向拥抱监管为主的暗池隐私交易方式。我们认为,Web3 目前的技术发展都是“折返式前进”。Tornado Cash 受到强监管后,隐私交易出现了肉眼可见的需求真空。同时纵观历史,规则的落地往往滞后于技术的突破和革命。当技术遇到挑战时,我们更应该拥抱变化,不浪费任何一次危机。我们期待 Singularity 会在拥抱监管的暗池 ZK 隐私赛道成为下一个领跑者。
Never waste a good crisis. -Winston Churchill
*转发原文标题:Eureka Partners 研报:Singularity — 透明区块链上的隐私交易
1969 年,金融市场的交易方式还停留在传统的交易大厅。彼时计算机技术尚未成熟,交易者们依赖于大声喊叫来下达指令,这种低效且不私密的交易方式使得机构投资者难以在不引起市场波动的情况下进行大额交易。由 Jerome Pustilnik 创立的 Instinet 应运而生,Instinet 通过电子交易平台,允许投资者匿名下单,平台负责匹配买卖双方的订单并执行交易。这种模式不仅提高了交易效率,还确保了交易的保密性,有效防止了市场影响和信息泄露。
而今,技术的进步带来了区块链技术的诞生,这一革命性的创新为金融交易带来了前所未有的透明度和安全性。然而,区块链的公开性和不可篡改性虽然为市场带来了诸多好处,但也为大额交易者带来了新的挑战。在区块链的公开账本中,每一笔交易都对所有参与者可见,这使得大额交易者在执行交易时难以保持匿名性。传统的交易所平台无法完全保护交易者的隐私,大额订单的公开可能导致价格波动,影响交易效率和成本。此外,监管的不确定性和市场的不透明性也为投资者带来了额外的风险。
本报告将探讨区块链暗池作为一种创新解决方案,它如何通过引入先进的隐私保护技术和自动化交易机制,为加密货币市场提供更加安全、高效的大额交易环境;以及 Singularity 如何通过其创新的解决方案,利用 FHE (全同态加密)、ZKP (零知识证明)等技术为大额投资者提供一个私密且合规的去中心化交易平台。
暗池(Dark Pools) 在传统金融市场中,是指那些不公开交易信息的私人交易平台,它们允许投资者在不暴露其交易意图的情况下进行大额交易。暗池交易最早出现在美国,兴起的主要原因与证券市场上兼并、收购日益频繁,大宗股权的转让需求蓬勃发展有密切关系。随着金融市场的发展,暗池在股票、债券、外汇等多个领域中的重要性日益凸显,尤其是在高频交易和算法交易成为主流的当下。据统计,暗池交易在股票市场中的占比已达到 30% 至 50% ,成为市场流动性的重要组成部分。
在加密货币市场,随着大户群体的壮大,大宗交易的需求持续上升。这些大额订单对市场的影响力巨大,有时甚至可能触发市场动荡。为了规避这种风险,许多交易者转向 OTC 市场甚至 Telegram 群组进行交易。根据 Kraken 交易所 2020 年的数据,自 2018 年起,全球 OTC 交易量激增 20 倍,日均交易额达到约 3000 亿美元,占整个加密货币市场交易量的近 70 %。然而,OTC 市场也面临着流动性不足和监管缺失的问题。为了应对这些挑战,暗池作为一种解决方案被引入,旨在提供一个更加稳定和私密的交易环境。
以下是暗池的关键要点:
▪ 隐私和保密性:暗池允许交易者匿名交易,保护其身份和订单大小不被公开市场知晓,直到交易执行完毕。
▪ 减少市场影响:暗池使大型机构投资者能够在不引起公开市场显著价格波动的情况下执行大额订单,最小化市场影响和滑点。
▪ 不披露交易策略:暗池交易有助于保护交易者的策略不被公开市场知晓,避免被 MEV 套利、复制交易套利以及统计套利等。
▪ 流动性和价格改善:暗池通过匹配可能在传统交易所中未能找到交易对手的买卖双方,为市场提供额外流动性,从而可能为参与者带来价格改善,尤其是对于大宗交易。
▪ 引入监管:暗池受到监管,监管机构监控暗池活动,防止不公平访问、内幕交易或市场操纵。但对于很多暗池而言,中心化的管理方式仍存在安全性、可信度以及私人数据潜在滥用的风险,历史上,已有多起因中心化暗池违反信任原则而受到处罚的案例。
暗池是隐私赛道的一个分支,暗池通过以下这些隐私增强技术(PET),如零知识证明(ZKP) 、多方计算(MPC)和全同态加密(FHE)等,将隐私注入其基础架构中。
▪ 零知识证明(Zero Knowledge Proof , ZKP)
零知识证明(ZKP)技术允许证明者在不泄露任何实质性信息的情况下,向验证者证实某个陈述的正确性。这种技术在以太坊Layer 2扩容解决方案中尤为关键,如 ZK Rollup ,它通过将交易数据压缩成紧凑的ZK证明并提交至主网,实现了交易的有效性验证。这种证明不仅占用极小的存储空间,而且保护了交易信息的隐私,体现了无信任机制的天然优势。ZKP技术的应用不仅限于扩容,还包括隐私计算,其主要实现形式包括 zkSNARK、zkSTAR 和 Bulletproof,这些技术共同推动了加密货币隐私保护和交易效率的提升。
零知识证明介绍
▪ 安全多方计算(Multi-Party Computation, MPC)
安全多方计算(MPC)是一种允许多个参与方在不泄露各自输入的情况下共同计算一个函数的技术。在隐私领域,MPC 提供了一种保护敏感数据的方法,使得参与方可以在不暴露个人数据的前提下,共同完成数据分析、计算任务或达成决策。MPC 的核心优势在于其隐私保护能力。通过分布式计算和加密技术,参与方可以确保自己的数据在整个计算过程中保持私密。
安全多方计算介绍
▪ 全同态加密(Fully Homomorphic Encryption, FHE)
全同态加密(FHE)是一种密码学技术,它允许在加密数据上直接进行计算,而无需先解密。这意味着数据在保持加密状态时,就可以进行加、减、乘等运算,计算结果在解密后与在原始数据上进行相同运算的结果一致。FHE 的核心价值在于它为隐私保护提供了一种强大的工具,使得数据在被处理时始终保持私密,从而极大地增强了数据的安全性。
在公链上运行的去中心化交易所(DEX)如 Uniswap 和 Curve ,由于其账本的公开透明性,容易受到最大可提取价值(MEV)的影响。这种透明性意味着订单详情对所有人可见,使得搜索者和构建者能够通过重新安排交易顺序来优化自己的收益,这在一定程度上损害了其他用户的利益。
暗池作为一种金融交易场所,其核心优势在于提供隐私保护和抗审查性。在暗池中,订单详情通常对第三方保持隐秘,因为每笔订单都会生成零知识证明(ZKPs),这减少了交易信息的公开披露。这种架构对于大户和机构投资者尤其有吸引力,因为它能够保护他们的交易策略不被竞争对手或市场操纵者利用。此外,暗池的这种特性也有助于抵御MEV,因为交易的顺序和细节不公开,从而减少了被重新安排的可能性。
然而,当交易需要调用公共合约或使用共享定序器时,这些优势可能会减弱,因为这些操作可能会暴露交易信息,为 MEV 的捕获提供机会。尽管如此,对于寻求隐私和抗审查保护的大户和机构投资者来说,暗池仍然是一个有吸引力的选择,尤其是在他们的交易活动需要高度保密的情况下。
Tornado Cash 等隐私保护工具的出现,为用户提供了在链上进行匿名金融活动的可能性,但这也被一些犯罪分子用来从事洗钱等非法活动。Tornado Cash 的智能合约地址就因不合规被列入了 OFAC 名单。美国外国资产控制办公室(OFAC)通过维护一份特别指定国民(SDN)名单,对不合规的个人和实体进行制裁。不符合 OFAC 规定的协议,有很高的可能性会导致它们的交易被排除在链上的区块之外。截止至 2024 年 2 月 23 日,需要经过 OFAC 名单审查的的区块为 45%。这种抗审查性问题不仅影响区块生成者,还可能影响验证者和中继器,他们可以选择性地忽略某些交易或区块。
经过 OFAC 名单审查的区块比例
随着 Tornado Cash 因不合规而被禁止,市场出现了对合规隐私解决方案的需求真空。为了满足这一需求,后来的暗池项目需要在提供隐私保护的同时,避免类似的监管风险。笔者认为一种有效的方法是在项目中集成经过验证的 KYB/KYC 流程,这样不仅能确保用户活动的合法性,而且有助于规避可能的监管风险。法律监管往往跟不上技术发展的步伐,这导致隐私项目很容易被用于非法活动。为了确保项目的安全和合法性,积极拥抱并遵守监管是至关重要的。
在 2010 年至 2022 年期间,暗池项目的数量有限,且这些项目并未在大众中获得广泛认知。然而,随着零知识证明(ZKP)、多方计算(MPC)等隐私增强技术的进步,暗池领域迎来了一系列创新技术解决方案。这些技术的发展使得暗池在 2023 年重新进入了公众视野。尽管如此,由于技术的复杂性,暗池赛道的项目数量仍然相对较少。以下罗列几个已经相对比较成熟的项目。
Renegade 成立于 2022 年,是一个基于 MPC-ZKP 架构的去中心化暗池,专为机构投资者提供大额交易服务。Renegade通过点对点网络和多方计算(MPC)技术进行订单匹配,并使用 ZK-SNARKs 确保在验证订单匹配过程中,交易细节对外部保持匿名。此外,它还采用了中点执行机制,保证所有交易直接以实时聚合的中心化交易所中点价格成交,以避免滑点。其默认的匿名交叉交易功能,结合兴趣指标,促进了全面的价格发现和优化了流动性。
Penumbra 是一个构建在 Cosmos 生态系统中的一个去中心化的交易平台,它提供了一种类似暗池的交易环境,允许用户在保持隐私的同时进行交易。通过一种私有委托机制,Penumbra 结合了隐私保护和 POS(Proof-of-Stake)共识机制,能够提供质押衍生品、税收效率的质押以及带有私密投票功能的链上治理。Penumbra 通过 IBC(跨链通信)与 Cosmos 生态系统相连,作为一个生态系统范围内的暗池,允许在任何 IBC 兼容资产中进行私密交易。用户还可以使用 ZSwap,一个支持密封出价批量拍卖和 Uniswap-V3 集中流动性的私密去中心化交易所,来交换这些资产。
Panther 是一个跨链的 DeFi 平台,它结合了零知识技术,旨在提供一个既符合监管要求又保护用户隐私的解决方案。用户可以将数字资产存入 Panther 的多资产屏蔽池(MASPs),并按1:1比例获得 zAssets。通过 Zswap 模块,Panther 连接到其他DeFi协议,聚合报价供用户选择。交易时,Zswap 创建一个加密的托管合约,允许用户在不泄露交易细节的情况下交换资产。这种设计使得资产可以在多样化池中共存,保持数据的异构性,从而难以追踪和去匿名化用户。Panther 的屏蔽池利用 ZK SNARK 和 ZKP 技术,确保交易的隐私性和合规性。
Railgun 是一个为以太坊、BSC、Polygon 和 Arbitrum 设计的 ZKP-MPC 架构的隐私系统,它利用零知识(ZK)加密技术,利用 MPC 技术来完成可信设置仪式,允许用户在保持交易隐私的同时,安全地执行智能合约和 DeFi 操作。当用户通过 Railgun 下达交易指令时,一个名为 Adapt Module 智能合约会自动处理私有余额的隐私屏蔽解除、验证订单有效性,然后由中继器在聚合的 DEX 流动性中寻找最优汇率,最后将交易资产重新隐私屏蔽,确保用户活动和地址的匿名性。这一流程不仅适用于资产交换,还可扩展至其他 DeFi 交易类型。
如何实现隐私交易
隐私交易概念理解
理解隐私交易的概念需要考虑交易主体和交易细则两个方面,并区分匿名和隐藏两种类型的隐私。
一笔普通交易包含以下要素:
▪ 交易主体:包括交易的发送者(交易者A)和接收者(交易者B)。
▪ 交易细则:包括交易的金额、子交易次数、交易的哈希等具体细节。
隐私交易可以根据对第三方的信息可见程度分为两类:
▪ 匿名交易:在匿名交易中,对于第三方来说,交易的发送者和接收者的地址是不可知的。这意味着在交易过程中,除了参与交易的两个主体之外,其他人无法确定交易的具体参与者。例如,Tornado Cash 就是一种通过混淆交易路径来实现匿名性的隐私协议。
▪ 隐藏交易:在隐藏交易中,虽然交易的发送者和接收者的地址是可见的,但是交易的具体细则却是不可知的。这意味着交易的金额、子交易次数、交易的哈希等详细信息对于第三方来说是隐藏的。这种隐私可以通过使用零知识证明(Zero-Knowledge Proofs,ZKP)等技术来实现。例如,Zcash 就是一种利用 zk-SNARKs 技术实现交易细则隐藏的隐私加密货币。
Singularity 整体架构图
从整体结构来看,共可以分为大致 5 个模块:
这是用户主要交互的智能合约,用于表达和执行ZK电路逻辑。这些智能合约的功能包括隐藏 ETH/ERC20 代币的余额和交易记录,以实现匿名性和交易内容的隐藏。作为一个汇集了所有类型的所有交易者的所有资产的流动性地。其名称来源于其独特的特性,即对于所有观察者来说,所有的协议交易似乎都源自这个智能合约。这种设计为用户提供了多维度的隐私。
在 Singularity 协议中,ZK Notes 构成了交易的基本单位,它们包含了关键的交易信息,包括资产类型、金额以及与所有者相关的加密标识。这些 Notes 的设计旨在实现高度的隐私保护,确保交易者的身份和资产信息得到有效地保护。
每个 Note 包括以下关键信息:
资产类型(Asset Type):表示交易中涉及的资产类型,例如加密货币的代币类型或其他数字资产。
金额(Amount):指示 Note 中所包含的资产数量,用于确定交易的价值。
随机值(Rho):是一个随机生成的字段值,用于增强交易的隐私性,防止外部观察者对交易进行跟踪和分析。
Schnorr 公钥(Public Key):用于加密签名和验证交易的身份,确保只有授权用户才能进行有效的交易操作。
除了上述信息外,每个 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 进行复制并计算 Hash
随着更多的用户进行交易,每个新的 Note 都会按照时间顺序被添加到默克尔树上。这样,每个用户的交易历史都被保留在同一个数据结构中,并且通过计算默克尔树的根哈希值,可以有效地验证整个交易历史的完整性。因为默克尔树是只能追加的,所以不可能修改或删除已经添加到树中的任何 Note,从而确保了交易数据的安全性和不可篡改性。
Note 的交易验证
当交易者进行交易消费时,他们必须透露相应的Nullifier,并在零知识证明中提供相关的证据,以验证Nullifier与相应的 Note 相关联,并证明 Note 在默克尔树中的存在。智能合约将对Nullifier的唯一性进行验证,并验证证据的有效性,以确保交易的合法性和安全性。
以一个简单的例子说明:
假设 Alice 拥有一个 Note,其中包含了她存入 Singularity 合约的 1 ETH,并且该 Note 的 Nullifier 为 “AAA123”。现在,Alice 想要使用这笔资金进行一笔交易,因此她必须提供 “AAA123” 作为Nullifier,并且通过零知识证明来证明以下两点:
证明 “AAA123” 与所消费的 Note 相关联,即这笔交易的资金确实来自于该 Note。
证明该 Note 在默克尔树中的存在,即该 Note 是之前存入 Singularity 合约的,并且没有被篡改。
智能合约将对 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,扮演着关键角色,集体负责操作订单簿。其匹配流程包括:
API 节点对订单进行加密,确保订单内容的私密性,然后 Bookies 利用 FHE 协议进行订单匹配计算,保障订单信息的保密性。
订单匹配结果公布,但原始订单内容仍保持私密,以维护交易者的隐私权。
已匹配交易者可直接交流并使用 Singularity 合约的 Swap 功能进行结算,未能结算的交易者将受到声誉惩罚。
为确保 Book 系统的稳定运行,采用了多数意见胜出的激励机制,并要求 Bookies 抵押代币:
Bookies 间采用多数意见胜出机制,应对加密订单匹配中可能出现的分歧情况,避免恶意行为发生。
抵押代币设定旨在防范 Sybil 攻击,同时激励 Bookies 履行职责,保障系统正常运行。
在 Book 系统中,身份和声誉管理是关键,创新点包括:
每个匿名身份对应一个声誉,反映其历史结算概率,同时维护身份隐私。
交易者可设定声誉门槛,筛选订单匹配交易对手,确保交易安全性与可靠性。
未能结算交易者将受到声誉惩罚,同时影响其交易对手声誉。
以一个简单的例子说明:假设 Alice 希望购买 1 个 ETH,
订单提交:Alice 提交了购买 1 个 ETH 的订单,指定价格为 $2000 USDT。
订单匹配:Book 系统找到了卖家 Bob,他愿意以 $2000 USDT 的价格出售 1 个 ETH。
交易确认:Alice 和 Bob 确认他们的订单已经成功匹配。
交易结算:Alice 向 Bob 支付 $2000 USDT,并收到 1 个 ETH。Singularity 系统更新了他们的账户余额。
声誉管理:如果 Bob 未能按时完成交易或出现其他不良行为,他的声誉可能会受到降低,导致系统限制他与其他交易者的匹配。假设 Bob 的声誉评级为 5,这表示他是一个可靠的交易者。然而,如果 Bob 未能按时完成交易或出现其他不良行为,比如多次取消订单或恶意操纵市场,他的声誉可能会受到影响。这可能导致他的声誉评级下降 1 分,使其声誉降至 4,进一步限制其未来参与交易的门槛。
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)
以 Automation 进行交易时,因为交易者需要进行 deposit 的操作,所以会暴露每次质押时的金额,正如每次 deposit 至 Singularity,无法避免第三方监听到该笔交易细则。因此 Automation 进行交易会牺牲交易隐藏性。
需要注意的是当 Book 无法匹配到交易者时,虽然其订单可以被纳入 Automation 交易池中匹配(貌似会暴露交易者地址),但仍保证交易者匿名性,因为转移其流动性的主体为 Singularity。
▪ 匿名+隐藏交易 (Singularity 结算)
以 Singularity 进行交易结算时,无论该笔交易通过什么方式进行交易价格发现、意向撮合,最后交易的结算依然可以保证其匿名性、隐藏性,因为 Singularity 合约负责托管结算的资金,并且完成资金的转移最终性,也就实现了明池做暗。
Singularity 的交易流程
暗池作为针对大型机构和专业交易者的一个不影响市场价格的交易平台,主要有 Transfer 和 Swap 这两大交易需求。接下来我们将根据上图的内容详细解读 Singularity 对这两种交易类型的实现。
需要注意的是上图中 API Nodes 和 Trading Nodes 属于同一个节点,这里为了更好的解释将其拆分为两种节点。
Transfer 交易主要发生在两个 Trader 节点之间,我们将想要接收的 Trader 节点定义为 Trader A,将想要发送的 Trader 节点定义为 Trader B。那么 Trader A 和 Trader B 具体的交易流程如下:
1) Trader B 节点在进行交易时都需要将资金存入到 Singularity 合约中,Trader B 节点通过调用 API 对这笔存款交易进行加密,从而生成一个 ZK Proof 即前面提到的 ZK Note 并提供给 Singularity 合约已验证 Trader B 已经将资金存入其中
2) Trader B 在存入资金后会通过调用 API 向 Singularity 合约发起一笔 Transfer 交易,这笔交易同样也是以 ZK Note 的形式发送给 Singularity 合约
3) Singularity 合约在接收到 Trader B 的 Note 后会根据 Note 提供的内容找到对应的 Trader A,此时 Trader A 就可以将该 Transfer 交易的金额从 Singularity 合约提取出来
在这其中我们可以看到,节点与合约之间的交互都是通过 ZK Note 来进行,Note 采取 UTXO 模型来进行传递,相比于账户模型其自身已具备了一定的隐私性和匿名性。在这种方式下既保证了交易的具体信息只由这笔交易的发起者自己知道,又实现了从外部看仅是某个地址与 Singularity 合约进行了交互,但交易的基本信息如接收方地址或交易金额等无法被捕获。
Swap 交易相对于 Transfer 交易来说因为涉及到需要寻找交易对手而更复杂一些,这里我们将想要进行 Swap 交易的 Trader 节点定义为 Trader C,将最终找到的交易方 Trader 节点定义为 Trader D。那么 Trader C 和 Trader D 具体的交易流程如下:
1) 与前面 Transfer 交易的第 1 步相同,Trader C 需要将资金存入到 Singularity 合约中,同时 Trader C 会通过调用 API 先向 Book 节点发起一个 Order 交易
2) Book 节点作为一个链下的订单簿节点,它会在 FHE (全同态加密) 环境下尝试在不获知具体的 Order 交易信息的前提下将各个不同的 Order 交易进行撮合
a. 撮合成功时,Book 节点会通知对应的两个 Trader 节点进行交易
b. 撮合失败时,Book 会将这笔交易对应的资金放入到链上的 Automation 上 作为备用的流动性资金。这类似于我们把闲钱放入到余额宝中,在之后假如还有撮合失败的交易会优先从 Automation 中去进行交易,当 Automation金额不足以完成交易时才会通过 Singularity 合约与外部 DEX 如 Uniswap 等进行交互。
在找到交易对手并协商 Swap 细节之后,交易者将相互对 Swap 的交易细节进行签名。然后任何一方交易者都可以使用这些签名构造一个零知识证明,这使得该交易无需双方在线即可改变 Notes 的所有权。需要注意的是为了保障交易的隐私性,Swap 交易依然是通过 Singularity 合约来进行的。
由此,我们可以看到 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 的表现情况在现有暗池解决方案中较为突出:
▪ 匿名性和隐私保护:在匿名性处理,常规的方案都是 ZKP。因此,寻找到合适的合作方才是核心。目前 Singularity 让 ComplyCube (KYC) & Shufti Pro (KYC&KYB) 负责链下 KYC&KYB 处理,并且由 Keyring 构建对应的 proof,最后由预言机上链。对比其他项目,Singularity 要更加符合现在的合规需求,避免未来出现类似 Tornado Cash 的监管风险问题。
▪ 资金安全:合约安全无法进行直接对比。但是因为 Singularity 允许明池作暗,进一步让用户、机构资金迁移意愿下降,使其资金可能长期暴露在合约安全风险。上文也提及过,作为机构/用户,频繁的迁移资金也会暴露地址,因此需要在地址隐私和资金安全两者之间找到一个平衡点。
▪ 流动性:不同于只依赖于订单簿/AMM 模型的项目,Singularity 引入了订单簿&AMM 以确保流动性的效率能够最大化。但从实际应用来说,交易模式的不同最终导致的流动性差距可能不会很大,更多在于项目方的 BD 能力以及项目合规性,且最终的决定权更多在市场的用户身上。
▪ 可扩展性:从生态兼容性来说,Singularity 兼容 EVM 的生态算是主流叙事的一个打法,如果不考虑自己做链,其交易结算效率仍高度受限于其结算层,极端情况下,这些结算层未必能兜得住高频的交易。因此,中长期来看以 App-chain 生态延展的方向的项目会更具可扩展性。在技术方案中,上文也略有着笔,Singularity 选择以 FHE+ZKP 会比用 MPC-ZKP 的方案更高效,原因在于 MPC-ZKP 对计算效率要求很高。因此,目前来看,Singularity 选的技术方案还是能够满足相应的交易需求。从生态拓展来看,“明池作暗”的玩法还可以延伸到非交易的场景,还有其他 Defi 的场景,其想象力不亚于 Uniswap V4 提出的 hook。
与此同时,我们在看到 Singularity 的核心竞争力时,也需要注意 Singularity 在未来可能会遇到的潜在风险:
▪ 市场价格失去有效的价格发现功能:由于暗池交易的匿名性和交易资金量大等特性,市场上资产的价格可能无法准确反映暗池内发生的波动。这导致市场价格失去了有效的价格发现功能,因为其他市场参与者无法获取暗池内交易的信息。唯一的例外是,如果用户在 Singularity 使用常规 DEX 进行价格发现,那么价格可能会反映出真实的市场供需情况。
▪ 政府监管风险:由于暗池交易可能被用于逃避监管和规范,政府机构可能会采取一系列更加严厉的监管措施。这可能包括加强对暗池交易的监测和监管,或者对参与暗池交易的个人和实体进行处罚。这些监管措施可能会对 Singularity 项目的发展和运营造成影响,并增加法律风险。
▪ 资金管控安全:由于资金长期保管在 Singularity 合约中,这相当于一个 Vault,在极端情况下可能会存在一些合约风险,但因为 Singularity 不涉及多链之间的通信、负责交易递信的 Relayers,其安全性至少会比跨链桥要高。
▪ KYC/KYB 风险:在身份确权方面高度依赖有限的合作方对用户的资格审查,有可能出现单点风险。
综上所述,Eureka Partners 将隐私赛道作为重要战略投资赛道之一。对投资机构和其他参与方来说,Singularity 是暗池交易;但是对监管方来说,Singularity 更像是“灰池”,我们预期 OTC、机构交易将逐渐走向拥抱监管为主的暗池隐私交易方式。我们认为,Web3 目前的技术发展都是“折返式前进”。Tornado Cash 受到强监管后,隐私交易出现了肉眼可见的需求真空。同时纵观历史,规则的落地往往滞后于技术的突破和革命。当技术遇到挑战时,我们更应该拥抱变化,不浪费任何一次危机。我们期待 Singularity 会在拥抱监管的暗池 ZK 隐私赛道成为下一个领跑者。
Never waste a good crisis. -Winston Churchill