使用全同态加密的机密ERC20框架

Inco Network和Circle Research发布共同撰写的机密ERC20白皮书。机密ERC20框架将标准ERC-20代币转换为机密包装版本,以掩盖余额和交易金额,为用户提供额外的隐私保护,同时保持合规控制。

<!--StartFragment-->

Inco NetworkCircle Research 发布共同撰写的机密ERC20白皮书。机密ERC20框架将标准ERC-20代币转换为机密包装版本,以掩盖余额和交易金额,为用户提供额外的隐私保护,同时保持合规控制。

<!--EndFragment-->

这是机密ERC20白皮书的翻译

摘要

本文提出了Confidential ERC20框架,该框架将ERC20代币转换为保密形式,隐藏余额和交易金额,同时提供可选的查看和转账规则,以满足监管需求或增强程序化风险管理。尽管发送方和接收方之间的关联保留,但Confidential ERC20通过基于加密的方法(特别是完全同态加密FHE)在隐私与风险管理之间取得平衡,允许在不解密数据的情况下对其进行操作。

1 引言

1.1 区块链与隐私

区块链虽然去除了传统金融的中介,但在隐私方面有所不足,因为其假名设计缺乏广泛企业和消费者采纳所需的强大保密性。高级分析工具能够轻松追踪交易,揭示参与者身份。随着区块链的普及,用户往往转向中心化交易所等中介,以离链方式满足保密需求。这种重新引入中介的方式削弱了去中心化的原始愿景,增加了潜在的失败点和成本。隐私对金融系统至关重要,保护消费者和企业免受误用、身份盗窃和欺诈。

1.2 保密性与匿名性

隐私并非单一维度,支付的隐私主要包含两方面:

  1. 谁(发送方和接收方)
  2. 多少(转账金额)

  • 当发送方/接收方信息保密时,实现的是匿名性;Anonymity
  • 而当交易金额保密时,实现的是[机密性]。Confidentiality

尽管匿名性通常提供比机密性更强的隐私假设,但从风险管理角度来看,匿名性也可能让不法分子更容易掩盖非法活动。

相对而言,机密性足以满足金融系统中的多种需求,例如员工工资、供应链支付(避免竞争对手了解支付金额)或点对点支付(如Venmo)。链上机密性对于区块链技术的大规模应用至关重要,能够推动新的资产、应用和用户群的扩展。因此,本论文提出的机密ERC20旨在纯粹实现机密性,为EVM去中心化应用提供无许可、可编程且可组合的链上原语。

2 机密 ERC20 框架

2.1 ERC20 标准

ERC20 标准是在以太坊区块链上创建同质化代币的基础技术规范。该标准于 2015 年推出,规定了代币必须实现的一套标准规则和功能,以确保在 EVM 生态系统中的兼容性。ERC20 标准已成为以太坊生态系统的基石,支持了各种用途的代币——从用于协议和 dApp 的效用代币,到 DAOs 和协议决策的治理代币,再到锚定传统资产的稳定币,以及社区驱动的代币如 meme 币和其他社会性代币。

2.2 机密 ERC20

机密 ERC20 框架保留了标准 ERC20 的所有核心功能,同时增加了确保机密性的特性。它原生支持机密代币的铸造和销毁。此外,通过封装和解封机制,它可以为现有 ERC20 代币提供这些机密性功能。传输和解密规则可定制以满足合规要求,使其在监管环境中具有灵活性。

关键特性:

  • 加密余额:用户余额被加密,确保只有授权方(如用户本人或指定的监管者)可查看。
  • 加密转账:在转移封装资产时,地址间的转账金额被加密,确保交易细节不公开。
  • 委托查看(可选):可向特定方(如审计员或监管者)授权查看权限,不影响代币持有者的隐私。
  • 可编程转账规则(可选):智能合约层面上可编程转账规则,以强制执行合规规则,例如反洗钱(AML)黑名单或交易限额。

3 全同态加密(FHE)

机密 ERC20 代币框架利用全同态加密 (FHE) 实现机密性及合规性,以应对不断发展的监管环境。我们探讨 FHE 在以太坊虚拟机(EVM) 中的应用及其在此框架中的作用。尽管 FHE 是本研究的主要隐私增强技术 (PET),框架接口和功能可以适应集成其他基于加密的技术,如可信执行环境 (TEE)、混淆电路(GC)、多方计算 (MPC) 等。

3.1 什么是 FHE?

全同态加密 (FHE) 允许在不解密的情况下对加密数据进行运算,其“同态”特性使得在密文上进行的运算在解密后与明文上的运算结果相同。FHE 建立在公钥加密 (PKE) 基础上,使用一对密钥:公钥用于加密,私钥用于解密。

3.2 FHE 方案

虽然存在多种 FHE 方案(如 TFHE、CKKS、BFV),我们选择了 TFHE (Torus)方案,因其在智能合约环境中具有以下特性:

  • 广泛操作支持:TFHE 支持多种同态运算,适用于不同行业的多种用例。
  • 精确计算:在去中心化金融(DeFi) 等场景中,准确性至关重要。TFHE 确保密文计算的精确性,避免可能影响结果完整性的近似值。
  • 非分层结构:不同于分层方案,TFHE 不限制运算次数,适合智能合约中操作复杂且数量不定的 FHE 运算。

我们的初始原型使用 Zama 提供的 TFHE-rs 实现。

3.3 信任假设

(1)解密:

密文是通过一个全局的FHE公钥进行加密以确保可组合性,解密由持有私钥的可信机构进行。如果使用单个私钥,则该私钥由一个机构保管;如果通过多方计算(MPC)管理,则多个机构共享该密钥。

例如,可以使用n-of-m阈值将私钥分割给m个参与方,解密需要n个参与方签名。为了增强解密系统的安全性,可以采用各种技术,例如分布式密钥生成(DKG)、密钥轮换、将密钥共享存储在可信执行环境(TEE)中,以及与可信实体合作,以降低黑客攻击和串通的风险。

(2)计算完整性:

FHE计算是确定性的,在区块链上下文中,我们可以利用零知识证明(ZKP)、欺诈证明和/或共识协议来达成计算有效性的一致。

  • ZKP和计算正确性:使用ZKP引入FHE计算正确性的可验证证明是一个有前途的研究方向,但在短期内计算量太大,不具实用性。
  • 乐观系统中的欺诈证明:乐观系统(例如roll-ups)中的欺诈证明支持高效的链下计算,但需要至少七天的最终确认期。此延迟在平衡安全性和用户体验方面面临挑战,因为敏感的加密信息可能在挑战-响应阶段意外泄露或被恶意解密,造成数据泄露或经济损失(例如,解包余额)。
  • 共识协议:另一方面,共识协议依赖于在分布式参与者之间复制计算,这可能资源密集,但可以提供对计算完整性的可验证性,并为解密网络提供即时最终确认的保证。

3.4 将FHE应用于EVM

智能合约执行环境(如以太坊虚拟机EVM)可以增强以支持FHE加密类型和计算。通过这样做,EVM开发人员可以构建新类别的智能合约,其中链上状态也可以是私有的。

FHE增强EVM的关键智能合约特性:

  • 全局网络密钥:所有交易输入和链上状态都通过全局网络密钥进行加密,确保状态保密性和智能合约之间的可组合性。
  • 新加密数据类型:包括加密布尔(ebool)、地址(eaddress)和各种无符号整数(euint(8,16,32,64,128,256))。
  • 对加密类型的操作:支持的操作包括:
    1. 算术函数,如加法、减法、乘法,以及选择性除法或余数操作。
    2. 位操作,如与、或、异或,以及位移(左移和右移)。
    3. 比较运算符,如相等、不等、大于和小于检查。
    4. 其他函数,如最小值、最大值、取反和逻辑非。
    5. 特有的FHE运算符,如CMUX/SELECT用于条件赋值,以及PNRG用于直接在链上生成随机加密整数。
  • 集成到EVM中:FHE可以集成到EVM的预编译级别或作为以太坊和Arbitrum等现有链的协处理器,使机密代币(如cUSDC)能够在生态系统中存在。
  • 协处理方式:此方法涉及对源链的外部监控,并在链下执行FHE指令。任何解密都是异步进行的,解密后的值通过回调函数结算回链上。

3.5 为什么选择FHE

机密转账可以使用基于承诺或基于加密的方法。虽然基于承诺的方法是可行的,但基于加密的模型在可组合性和灵活的解密访问控制方面具有明显优势。

基于承诺的方法依赖于客户端的链下秘密存储,这在多方协调和限制跨dApp的可组合性方面带来了挑战,因为它们依赖于特定应用的电路和链下加密密钥。相比之下,FHE系统支持链上密文存储,使得可以在智能合约层级上对加密数据进行计算逻辑,并通过无权限的用户交互增强对私有状态的可组合性。

在基于承诺的模型中,用户必须定义查看密钥,使得访问控制(如委托或撤销)变得严格。然而,FHE使用共享加密密钥,使得指定的解密机构可以代表用户解密。这种方法使得解密规则更加灵活,且可根据链上规则和治理进行升级。

基于承诺的模型更适合对高匿名性需求的场景,如医疗隐私。而基于加密的模型适合需要保密但不需完全隐藏身份的用例,如供应链交易,其中各方通常是已知的。值得注意的是,FHE仍然计算密集,和ZK一样,需要硬件加速。不过,FHE在较简单的EVM用例中是实用的,且仅用于计算隐藏的状态转变。

4 实现

代码:https://github.com/Inco-fhevm/confidential-erc20-framework/tree/main/contracts 从github开源代码可知,他们只公开了合约层面的代码,针对TFHE密码学层面的代码未公开,我没有找到TFHE所包含各个函数的定义代码。

image.png

4.1 ConfidentialERC20Wrapper中的新增功能:

Wrapping 和 unwrapping:

当用户启动wrapping功能时,原始的ERC20代币被存入wrapper合约,用户的地址会铸造出等量的机密ERC20(cERC20)代币。请注意,此wrapping步骤会泄露有关存入金额的信息。

相反,unwrapping过程允许用户燃烧其cERC20代币以换取等量的原始ERC20代币。此过程同样会将转换金额泄露为明文。

4.2 ConfidentialERC20中的新增功能:

User Balance::

用户余额通过用户地址(外部拥有账户或智能合约钱包)与加密的64位无符号整数(euint64)之间的映射表示。balanceOf函数返回表示请求账户的加密余额的密文, 解密网络将验证访问控制规则并代表用户进行解密。

Transfer Amount:

该框架中的转账金额表示为加密值,例如euint64。在全同态加密(FHE)中,无法直接应用条件逻辑(如if/else语句)来检查余额,因为任何回退操作都会泄露有关基础明文值的信息。

相反,加密金额通过TFHE同态地与发送者的余额进行比较, 以验证其是否小于或等于余额,返回一个加密布尔值(ebool)。然后将该ebool传递给条件多路选择器操作(TFHE.select),如果布尔值为真则返回隐藏转账金额,否则返回加密零。根据结果调整发送者和接收者的余额,其中转账金额根据比较结果反映实际值或零。接收者可以请求权威机构解密其余额以确认金额的准确性。

Approval / Allowance:\ Allowance函数返回支出者被允许代表代币所有者支出的剩余代币,值以加密格式(euint64)存储和返回。approve函数授权支出者代表代币持有者转移指定数量的代币,同样以加密形式处理该金额。

5 Confidential ERC20的好处

(1)转账可追溯性:

Confidential ERC20利用区块链的透明特性,能够监控资金流动,同时保护转账金额和用户余额的机密性。在像Etherscan这样的区块浏览器上,转账信息将在发送者和接收者之间公开,但转账金额将被隐藏。

(2)可编程解密规则:

解密规则可以在智能合约级别进行编程,隐藏余额的查看/解密权限可以委托给特定实体, 如监管机构、政府机构、审计人员或原始代币发行者,以便履行其合规监控和审计的职责。

基于权限的解密示例:

例如,查看密钥可以授权给特定权限,这样它可以使用TFHE.allow将自己列入白名单,从而获得解密和查看特定地址隐藏余额的权利。在这种情况下,权限由智能合约所有者拥有,但也可以通过治理程序设定为第三方拥有的特定外部账户(EOA),例如Chainalysis。

需要注意的是,可以根据链上访问规则撤销特定地址对密文的查看权限。然而,由于任何解密的信息都应视为潜在泄露,因此这种撤销可能效果有限,因为查看者可能会保留副本,从而使撤销无法完全保护数据。

可编程转账规则:

可编程合规性使得根据用户身份或黑名单状态等因素强制执行转账规则。例如,去中心化标识符(DID)可以存储加密属性,如合格投资者状态,用于确定转账资格。由于FHE使用条件多路选择器(TFHE.select) 防止可观察到的交易失败,因此不符合合规条件的转账将以加密零金额继续进行,从而在外部观察者面前隐藏失败条件,同时保持机密性。

对于受严格监管要求的代币化资产类别,细粒度的转账规则控制尤其有价值。更全面的框架是ERC-3643标准,也称为T-REX(Token for Regulated EXchanges),旨在支持符合监管要求的证券代币的发行、管理和转让。它允许更细致的设计,并可以与其他OnchainID标准(如ERC734和ERC735)结合使用。

6. 可扩展性与可组合性

为什么选择机密 ERC-20

隐私可以在不同层面实现:作为独立的公共或许可区块链、去中心化应用/协议,或作为基础原语。每种方法都有其独特的优势和权衡。

我们专注于机密 ERC-20 框架,这是一个高度模块化和细粒度的组件,作为基础构建块,最大化可组合性和可扩展性,以便与生态系统中其他隐私保护应用无缝集成。

正如 ERC-20 标准成为 Uniswap(自动化做市商)和 Compound(货币市场)等去中心化应用的基础层,机密 ERC-20 标准为构建隐私保护应用提供了核心原语。

该框架支持对加密数据的可组合性,使其具有卓越的可扩展性,能够在保护隐私的同时解锁新的可能性。例如,用户可以直接将加密“amount”的机密 ERC-20 代币存入私有交易或借贷平台,省去以明文金额转账并随后在应用内包装的过程,从而避免泄露敏感信息。

以下是机密 ERC-20 可以支持和扩展的一些额外用例:

(1)支付相关用例

  • 私密跨境支付:支持私人国际交易,保护敏感财务细节,同时遵守当地法规。
  • 私密代币分配:管理和自动化代币分配,确保分配时间表和金额的机密性。
  • 私密 B2B 工资:促进企业之间的私密工资支付,保护工资细节并确保符合监管要求。
  • 国际汇款:提供安全和私密的资金跨境转移渠道,保护发送者和接收者免受曝光和欺诈。

(2)DeFi 相关用例

  • 私密 AMM 和暗池:执行私密代币交换,交易金额加密,防止前跑并保护交易策略。该实现面临有趣的挑战,可以在未来的研究中进一步探讨。
  • 私密 RWA 代币化:将现实世界资产代币化,具备隐私保护功能,保护敏感的所有权和交易细节。
  • 盲拍卖:促进拍卖,竞标在拍卖结束前保持机密,确保公平竞争的竞标过程。
  • 私密借贷:实现带有保密条款和抵押品的私密贷款,保护借款者隐私。可能通过纳入链上信用评分来支持低抵押贷款,以私密方式评估信用worthiness。

7. 结论

我们介绍了机密 ERC20 框架,作为资产发行者、应用开发者和最终用户的可编程保密原语。发行者和开发者可以自定义合规规则(解密和转移)、操作工作流以及其他特定于应用的要求, 同时在整个过程中保持机密性。链上可组合性使得无缝扩展成为可能,支持基于这一基础框架的新 dApp 的出现与构建。该原语结合了 Web2 中熟悉的用户体验和财务数据隐私,以及区块链系统的去信任性和安全性。

<!--EndFragment-->

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
在web3摘不拿拿
在web3摘不拿拿
我是一个 Web3 技术“摘蕉人”!在登链社区这片“热带雨林”里到处探索,寻找那些独特的“香蕉”——创新的项目、令人兴奋的技术。我会时不时写点文章分享我的“摘焦”心得,期待和大家一起讨论、交流和成长。