Inco Network和Circle Research发布共同撰写的机密ERC20白皮书。机密ERC20框架将标准ERC-20代币转换为机密包装版本,以掩盖余额和交易金额,为用户提供额外的隐私保护,同时保持合规控制。
<!--StartFragment-->
Inco Network 和 Circle Research 发布共同撰写的机密ERC20白皮书。机密ERC20框架将标准ERC-20代币转换为机密包装版本,以掩盖余额和交易金额,为用户提供额外的隐私保护,同时保持合规控制。
<!--EndFragment-->
这是机密ERC20白皮书的翻译
本文提出了Confidential ERC20框架,该框架将ERC20代币转换为保密形式,隐藏余额和交易金额,同时提供可选的查看和转账规则,以满足监管需求或增强程序化风险管理。尽管发送方和接收方之间的关联保留,但Confidential ERC20通过基于加密的方法(特别是完全同态加密FHE)在隐私与风险管理之间取得平衡,允许在不解密数据的情况下对其进行操作。
区块链虽然去除了传统金融的中介,但在隐私方面有所不足,因为其假名设计缺乏广泛企业和消费者采纳所需的强大保密性。高级分析工具能够轻松追踪交易,揭示参与者身份。随着区块链的普及,用户往往转向中心化交易所等中介,以离链方式满足保密需求。这种重新引入中介的方式削弱了去中心化的原始愿景,增加了潜在的失败点和成本。隐私对金融系统至关重要,保护消费者和企业免受误用、身份盗窃和欺诈。
隐私并非单一维度,支付的隐私主要包含两方面:
尽管匿名性通常提供比机密性更强的隐私假设,但从风险管理角度来看,匿名性也可能让不法分子更容易掩盖非法活动。
相对而言,机密性足以满足金融系统中的多种需求,例如员工工资、供应链支付(避免竞争对手了解支付金额)或点对点支付(如Venmo)。链上机密性对于区块链技术的大规模应用至关重要,能够推动新的资产、应用和用户群的扩展。因此,本论文提出的机密ERC20旨在纯粹实现机密性,为EVM去中心化应用提供无许可、可编程且可组合的链上原语。
ERC20 标准是在以太坊区块链上创建同质化代币的基础技术规范。该标准于 2015 年推出,规定了代币必须实现的一套标准规则和功能,以确保在 EVM 生态系统中的兼容性。ERC20 标准已成为以太坊生态系统的基石,支持了各种用途的代币——从用于协议和 dApp 的效用代币,到 DAOs 和协议决策的治理代币,再到锚定传统资产的稳定币,以及社区驱动的代币如 meme 币和其他社会性代币。
机密 ERC20 框架保留了标准 ERC20 的所有核心功能,同时增加了确保机密性的特性。它原生支持机密代币的铸造和销毁。此外,通过封装和解封机制,它可以为现有 ERC20 代币提供这些机密性功能。传输和解密规则可定制以满足合规要求,使其在监管环境中具有灵活性。
关键特性:
机密 ERC20 代币框架利用全同态加密 (FHE) 实现机密性及合规性,以应对不断发展的监管环境。我们探讨 FHE 在以太坊虚拟机(EVM) 中的应用及其在此框架中的作用。尽管 FHE 是本研究的主要隐私增强技术 (PET),框架接口和功能可以适应集成其他基于加密的技术,如可信执行环境 (TEE)、混淆电路(GC)、多方计算 (MPC) 等。
全同态加密 (FHE) 允许在不解密的情况下对加密数据进行运算,其“同态”特性使得在密文上进行的运算在解密后与明文上的运算结果相同。FHE 建立在公钥加密 (PKE) 基础上,使用一对密钥:公钥用于加密,私钥用于解密。
虽然存在多种 FHE 方案(如 TFHE、CKKS、BFV),我们选择了 TFHE (Torus)方案,因其在智能合约环境中具有以下特性:
我们的初始原型使用 Zama 提供的 TFHE-rs 实现。
(1)解密:
密文是通过一个全局的FHE公钥进行加密以确保可组合性,解密由持有私钥的可信机构进行。如果使用单个私钥,则该私钥由一个机构保管;如果通过多方计算(MPC)管理,则多个机构共享该密钥。
例如,可以使用n-of-m阈值将私钥分割给m个参与方,解密需要n个参与方签名。为了增强解密系统的安全性,可以采用各种技术,例如分布式密钥生成(DKG)、密钥轮换、将密钥共享存储在可信执行环境(TEE)中,以及与可信实体合作,以降低黑客攻击和串通的风险。
(2)计算完整性:
FHE计算是确定性的,在区块链上下文中,我们可以利用零知识证明(ZKP)、欺诈证明和/或共识协议来达成计算有效性的一致。
智能合约执行环境(如以太坊虚拟机EVM)可以增强以支持FHE加密类型和计算。通过这样做,EVM开发人员可以构建新类别的智能合约,其中链上状态也可以是私有的。
FHE增强EVM的关键智能合约特性:
机密转账可以使用基于承诺或基于加密的方法。虽然基于承诺的方法是可行的,但基于加密的模型在可组合性和灵活的解密访问控制方面具有明显优势。
基于承诺的方法依赖于客户端的链下秘密存储,这在多方协调和限制跨dApp的可组合性方面带来了挑战,因为它们依赖于特定应用的电路和链下加密密钥。相比之下,FHE系统支持链上密文存储,使得可以在智能合约层级上对加密数据进行计算逻辑,并通过无权限的用户交互增强对私有状态的可组合性。
在基于承诺的模型中,用户必须定义查看密钥,使得访问控制(如委托或撤销)变得严格。然而,FHE使用共享加密密钥,使得指定的解密机构可以代表用户解密。这种方法使得解密规则更加灵活,且可根据链上规则和治理进行升级。
基于承诺的模型更适合对高匿名性需求的场景,如医疗隐私。而基于加密的模型适合需要保密但不需完全隐藏身份的用例,如供应链交易,其中各方通常是已知的。值得注意的是,FHE仍然计算密集,和ZK一样,需要硬件加速。不过,FHE在较简单的EVM用例中是实用的,且仅用于计算隐藏的状态转变。
代码:https://github.com/Inco-fhevm/confidential-erc20-framework/tree/main/contracts 从github开源代码可知,他们只公开了合约层面的代码,针对TFHE密码学层面的代码未公开,我没有找到TFHE所包含各个函数的定义代码。
Wrapping 和 unwrapping:
当用户启动wrapping功能时,原始的ERC20代币被存入wrapper合约,用户的地址会铸造出等量的机密ERC20(cERC20)代币。请注意,此wrapping步骤会泄露有关存入金额的信息。
相反,unwrapping过程允许用户燃烧其cERC20代币以换取等量的原始ERC20代币。此过程同样会将转换金额泄露为明文。
User Balance::
用户余额通过用户地址(外部拥有账户或智能合约钱包)与加密的64位无符号整数(euint64)之间的映射表示。balanceOf函数返回表示请求账户的加密余额的密文, 解密网络将验证访问控制规则并代表用户进行解密。
Transfer Amount:
该框架中的转账金额表示为加密值,例如euint64。在全同态加密(FHE)中,无法直接应用条件逻辑(如if/else语句)来检查余额,因为任何回退操作都会泄露有关基础明文值的信息。
相反,加密金额通过TFHE同态地与发送者的余额进行比较, 以验证其是否小于或等于余额,返回一个加密布尔值(ebool)。然后将该ebool传递给条件多路选择器操作(TFHE.select),如果布尔值为真则返回隐藏转账金额,否则返回加密零。根据结果调整发送者和接收者的余额,其中转账金额根据比较结果反映实际值或零。接收者可以请求权威机构解密其余额以确认金额的准确性。
Approval / Allowance:\ Allowance函数返回支出者被允许代表代币所有者支出的剩余代币,值以加密格式(euint64)存储和返回。approve函数授权支出者代表代币持有者转移指定数量的代币,同样以加密形式处理该金额。
(1)转账可追溯性:
Confidential ERC20利用区块链的透明特性,能够监控资金流动,同时保护转账金额和用户余额的机密性。在像Etherscan这样的区块浏览器上,转账信息将在发送者和接收者之间公开,但转账金额将被隐藏。
(2)可编程解密规则:
解密规则可以在智能合约级别进行编程,隐藏余额的查看/解密权限可以委托给特定实体, 如监管机构、政府机构、审计人员或原始代币发行者,以便履行其合规监控和审计的职责。
基于权限的解密示例:
例如,查看密钥可以授权给特定权限,这样它可以使用TFHE.allow将自己列入白名单,从而获得解密和查看特定地址隐藏余额的权利。在这种情况下,权限由智能合约所有者拥有,但也可以通过治理程序设定为第三方拥有的特定外部账户(EOA),例如Chainalysis。
需要注意的是,可以根据链上访问规则撤销特定地址对密文的查看权限。然而,由于任何解密的信息都应视为潜在泄露,因此这种撤销可能效果有限,因为查看者可能会保留副本,从而使撤销无法完全保护数据。
可编程转账规则:
可编程合规性使得根据用户身份或黑名单状态等因素强制执行转账规则。例如,去中心化标识符(DID)可以存储加密属性,如合格投资者状态,用于确定转账资格。由于FHE使用条件多路选择器(TFHE.select) 防止可观察到的交易失败,因此不符合合规条件的转账将以加密零金额继续进行,从而在外部观察者面前隐藏失败条件,同时保持机密性。
对于受严格监管要求的代币化资产类别,细粒度的转账规则控制尤其有价值。更全面的框架是ERC-3643标准,也称为T-REX(Token for Regulated EXchanges),旨在支持符合监管要求的证券代币的发行、管理和转让。它允许更细致的设计,并可以与其他OnchainID标准(如ERC734和ERC735)结合使用。
为什么选择机密 ERC-20
隐私可以在不同层面实现:作为独立的公共或许可区块链、去中心化应用/协议,或作为基础原语。每种方法都有其独特的优势和权衡。
我们专注于机密 ERC-20 框架,这是一个高度模块化和细粒度的组件,作为基础构建块,最大化可组合性和可扩展性,以便与生态系统中其他隐私保护应用无缝集成。
正如 ERC-20 标准成为 Uniswap(自动化做市商)和 Compound(货币市场)等去中心化应用的基础层,机密 ERC-20 标准为构建隐私保护应用提供了核心原语。
该框架支持对加密数据的可组合性,使其具有卓越的可扩展性,能够在保护隐私的同时解锁新的可能性。例如,用户可以直接将加密“amount”的机密 ERC-20 代币存入私有交易或借贷平台,省去以明文金额转账并随后在应用内包装的过程,从而避免泄露敏感信息。
以下是机密 ERC-20 可以支持和扩展的一些额外用例:
(1)支付相关用例
(2)DeFi 相关用例
我们介绍了机密 ERC20 框架,作为资产发行者、应用开发者和最终用户的可编程保密原语。发行者和开发者可以自定义合规规则(解密和转移)、操作工作流以及其他特定于应用的要求, 同时在整个过程中保持机密性。链上可组合性使得无缝扩展成为可能,支持基于这一基础框架的新 dApp 的出现与构建。该原语结合了 Web2 中熟悉的用户体验和财务数据隐私,以及区块链系统的去信任性和安全性。
<!--EndFragment-->
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!