提案:结合全同态加密(FHE)与双密钥隐身地址协议(DKSAP)来改进以太坊的隐私保护

该项目旨在通过结合全同态加密(FHE)与双密钥隐身地址协议(DKSAP)来改进以太坊的隐私保护。提出了FHE-DKSAP,声称其能够防止量子计算攻击,重用隐身地址从而避免大量生成,并允许接受者外包链上资产检查计算,同时不泄露视图密钥,从而提升以太坊交易的隐私性和安全性。

(你的项目要解决什么问题?为什么它很重要?将影响协议的哪个部分?)

我的目标

我对 EFP 的目标是加深我对以太坊的理解,并探索如何使用密码学技术来提高以太坊的隐私保护。在我以往的经验中,我参与了许多大型交易系统的设计。其中大多数都有公开交易用于验证和审计目的,但也有私有交易来保护发送者和接收者的隐私(以一种受监管的方式)。毫无疑问,随着以太坊成为一台世界计算机,有很多用例需要在交易上进行隐私保护。我认为这是必不可少的(很高兴看到 Valtalik 在他的“三大转变”博客中也有相同的愿景)。那么问题是如何实现,特别是作为对现有以太坊设计的向前兼容的解决方案。这是我通过 EFP 实现的主要使命,并且我坚信这将是对以太坊生态系统的巨大贡献。

成功指标

  • 识别和研究以太坊上最先进的隐私保护交易机制(隐形地址和其他机制)
  • 提出并实施对现有机制的改进
  • 评估和研究改进的程度
  • 探索与以太坊系统的集成

背景

在以太坊生态系统中,隐私是最重要和未解决的挑战之一。在像以太坊这样的公共区块链上,所有信息,包括 ENS 名称(以太坊名称服务)、POAP(出席证明协议)、NFT(非同质化代币)和交易数据,本质上都是公开的。这种透明性是公共区块链的基本特征,使任何人都可以访问和验证记录在区块链上的数据。因此,它突出了隐私增强技术和协议在某些应用和用例中保护敏感信息和用户身份的重要性。 以太坊隐私保护的关键解决方案之一是切断收据地址的公开关联。隐形地址 (SA) 阻止区块链交易与接收者的钱包地址的公开关联。SA 有效地隐藏了交易的实际目标地址。这对于保护接收者的隐私以及切断对交易流的社会工程攻击至关重要。 根据我们的了解,所有研究都没有解决以下方面的整体要求:

  • 保护以太坊上的隐私,
  • 预防量子计算攻击,
  • 重用 SA 而不是创建许多 SA。

项目描述

(你提出的解决方案是什么?)

基于双密钥隐形地址协议 (DKSAP),我们进一步提出 FHE-DKSAP:一种具有全同态加密 (FHE) 的 SA 协议。FHE-DKSAP 具有以下主要优点:

  • FHE-DKSAP 用 FHE 替换 EC 以提高安全级别。FHE 构建了格密码学,并且天生就使 FHE-DKSAP 能够预防量子计算攻击。
  • 因此,FHE-DKSAP 中的 SA 可以安全地重用,并且无需生成大量 SA 来降低 SA 采用的复杂性和难度。
  • 与 EIP-5564 中的双密钥设计相比,我们在 FHE-DKSAP 中的设计可以帮助接收者外包检查整个链以查找包含资产的 SA 的计算,而无需泄露他的 view key。

规范

(你将如何实施你的解决方案?提供有关该项目的详细信息和更多技术信息。)

理论提案

我们通过将 FHE 应用于 DKSAP 来解决挑战,并将我们的新设计命名为 FHE-DKSAP。概述可以在下图中找到。 此内容仅在 Lark 文档中受支持 我们详细介绍 FHE-DKSAP 如下:

  1. Bob(接收者)创建两个密钥对:$(sk_2, PK_2)$ 和 $(sk_b, PK_b)$。
    • $sk_2$ 是一个随机生成的以太坊钱包私钥,用于 SA 消费目的。它在使用前不需要在以太坊上注册,也不是 Bob 的钱包私钥。
    • 使用 $sk_2$ 生成 SA 消费钱包地址公钥 $PK_2$。它遵循从 $sk_2$ 到 $PK_2$ 的标准以太坊地址转换。如前所述,由 $PK_2$ 生成的最终钱包地址在使用前不需要在以太坊上注册。
    • $sk_b$ 是用于 SA 加密和解密的 FHE 私钥。
    • $PK_b$ 用于加密 $sk_2$ 的值以获得密文 $C_2$。由于 FHE 可以预防量子计算攻击,因此将 $sk_2$ 加密到 $C_2$ 中是安全的。
    • Bob 公开共享 $PK_2$、$PK_b$ 和密文 $C_2$。
  2. Alice(发送者)为每个 SA 交易随机生成一个密钥对 $(sk_1, PK_1)$。
    • $sk_1$ 是以太坊临时密钥,并且公钥或钱包地址在使用前不需要在以太坊上注册。
    • 她将两个用于以太坊钱包生成的公钥 $PK_1$ 和 $PK_b$ 组合起来,以获得 $PK_z$。
    • 隐形地址 (SA) 是基于 $PK_z$ 通过遵循标准以太坊地址转换生成的。
    • Alice 使用 Bob 的 FHE 公钥 $PK_b$ 加密密钥 $sk_1$,从而生成密文 $C_1$。然后,Alice 会广播 C1,以便 Bob 能够以一种不可追踪的方式获取它。
    • Alice 无法知道 SA 的私钥,因为没有人可以从公钥 $PK_z$ 中猜出私钥。这意味着 Alice 只知道在哪里发送 SA 交易,但永远无法登录到此 SA 钱包。
  3. Bob 接收密文 $C_1$ 并将两个密文($C_1$、$C_2$)加在一起以获得 $C$。
    • 通过加法同态,他可以使用他的 FHE 私钥 $sk_b$ 解密密文 $C$。FHE 解密结果是接收 Alice 发送的钱包的私钥 $sk_z$。
    • 然后,他可以使用 $sk_z$ 生成隐形地址,并使用只有 Bob 拥有的私钥对其进行解密。因此,Bob 能够使用 SA 钱包的私钥 $sk_z$ 转移其余额。

实际实施

(将链接到 github)

非交互式隐形地址生成的标准化为以太坊网络和其他 EVM 兼容链提供了显著提高隐私能力的可能性,允许收件人在接收资产时保持私密性。通过提供具有多种加密方案的基础实现,收件人可以以 FHE 完全隐私的方式接收交易。

  1. SECP256k1 的初始实现

SECP256k1 椭圆曲线定义为在有限域 Z(2)(256)(-2)(32)(-977) 上的方程 y^2 = x^3 + 7 (mod p),这意味着 X 和 Y 坐标是模一个大数的 256 位整数。 现在让我们了解参数设置:

  • 生成器点 G:P 的乘积形成Set也是一个组,称为循环子群,P 称为循环子群的生成器或基点。
  • 阶 n:循环子群中元素的数量称为子群的阶。

以下参考文献分为三个部分:

  • 公钥和私钥生成:
  • ECDH 算法
  • 隐形私钥派生

公钥和私钥生成:

PK_scan = G sk_scan,PK_spend = G sk_spend,R = G * s

所有私钥只有一个部分,G 包含 (x,y)。因此,所有公钥都包含 (x,y) 两个部分。

输出类似于这样:

Alice 的私钥:0xe32868331fa8ef0138de0de85478346aec5e3912b6029ae71691c384237a3eeb

Alice 的公钥:(0x86b1aa5120f079594348c67647679e7ac4c365b2c01330db782b0ba611c1d677, 0x5f4376a23eed633657a90f385ba21068ed7e29859a7fab09e953cc5b3e89beba)

  • ECDH 算法:ss = r PK_scan = R sk_scan

sk_scan 和 r 是只有一部分的密钥。R 和 PK_scan 是包含两部分的公钥,因此共享密钥也包含两部分。例如: 共享密钥:(0x3e2ffbc3aa8a2836c1689e55cd169ba638b58a3a18803fcf7de153525b28c3cd, 0x43ca148c92af58ebdb525542488a4fe6397809200fe8c61b41a105449507083)

  • 密钥盲化算法:

地址的公钥:S_sa = h(ss) * G + P_spend

h(ss) 使用 keccak-256,输出是 256 位,也就是我们的私钥。私钥,只有 bob 拥有:s_sa = p_spend + H(ss) (1 部分) p_send 和 H(ss) 都是 256 位的,因此整个私钥是 256 位的。 s_sa 可以解密 S_sa,原因如下:

S_sa = s_sa G(根据 EC 密钥生成策略) h(ss) G + P_spend = h(ss) * G + p_spend G = (h(ss) +p_spend) G

  1. 使用 Paillier 的 FHE-DKSAP 要使用 Paillier,我们应该使用库:从 the import paillier,然后密钥流程包括三个步骤:
    • Bob 私钥生成和加密
    • Alice 私钥生成和加密
    • Bob 的最终密钥恢复和隐形地址生成

管理新型密钥对(例如由使用 Paillier 的 FHE-DKSAP 引入的密钥对)对钱包实现提出了重要的考虑因素。在 FHE-DKSAP 方案中,直接在 eth 钱包中存储 FHE 的私钥不是一个可行的方法。要建立合适的存储解决方案,必须将此私钥放置在公共域中,例如区块链上。当需要时,可以使用钱包的私钥解密 FHE 私钥。相反,就像其他常见 EOA 的公钥一样,FHE 的公钥可以直接导入到 eth 钱包中。

路线图

(你提出的时间表是什么?概述项目的各个部分,并深入了解执行它们需要多少时间。)

  • 完成项目提案(已完成)
  • 将早期研究发布到以太坊研究(已完成)
  • 实施提案(进行中)
  • 完成基准测试(进行中)
  • 完成带有基准评估的研究提案
  • 修改/提出 EIP
  • 实施用例

可能的挑战

(你可能需要克服的限制和问题是什么?)

通信成本、计算成本以及实现全同态加密的复杂性。同时,大多数 FHE 方案只能支持 64 位。但是,我们的隐形地址是 256 位的。问题在于如何扩展 FHE 的长度。

项目目标

(成功的标志是什么?描述项目的最终目标、范围、状态和影响,以便认为项目已完成并取得成功。)

  • 通过在密文上计算来保护隐形地址的隐私。
  • 与 DKSAP 和 BasedSAP 相比,我们的设计消除了密钥和个人信息泄露的风险。
  • 同时,它也可以预防量子计算攻击。

合作者

成员

(是否有任何成员与你一起参与此项目?) @Mason-Mind

导师

(哪些导师在帮助你完成项目?)

@nerolation

资源

(提供指向构成项目的存储库、PR 和其他资源的链接。)

  1. 隐形地址的不完整指南 https://vitalik.ca/general/2023/01/20/stealth.html
  • 原文链接: github.com/eth-protocol-...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
eth-protocol-fellows
eth-protocol-fellows
江湖只有他的大名,没有他的介绍。