当前以太坊生态系统中最大挑战之一是隐私。默认情况下,进入公共区块链的任何内容都是公开的,这不仅意味着资产和交易活动,还意味着ENS域名、POAP、NFT和灵魂绑定代币等。使用一系列以太坊应用就意味着你的很多活动会公开给其他任何人查看和分析。
我们需要改善这种状况。然而,到目前为止,关于改善隐私的讨论主要围绕一个特定的用例,即:ETH和主流ERC20代币的隐私保护转移。这篇文章将描述一种不同类别工具的机制和用例,可以在许多其他情况下改善以太坊的隐私状态,也就是「隐身地址」概念。
隐身地址系统是什么?
假设Alice想要给Bob转移资产,可能是一定数量的加密货币,也可能是一个NFT。当Bob收到资产时,他不想让其他人知道该笔资产的接收人是他。隐藏已经转移发生的事实是不可能的,特别是如果转移的是一个在链上仅存在一个副本的NFT,不过隐藏谁是接收者可能更可行。
Alice和Bob更想要的应该是这样一个支付流程系统,即,Bob向Alice发送某种能接收付款的「地址」编码,仅此信息就足以让Alice向他发送资产,而且这与目前的支付工作流程几乎完全相同。
需要注意的是,这种隐私性与TornadoCash提供的隐私完全不同。TornadoCash可以隐藏ETH或主要ERC-20等主流可替代资产的转账,但在为鲜为人知的ERC20转账添加隐私方面非常薄弱,并且根本无法为NFT转账添加隐私。
Klever Wallet:受影响钱包均为使用伪随机数生成器算法生成后导入:7月13日消息,Klever Wallet发推表示,经过彻底调查,已确定所有在7月12日受到可疑活动影响的钱包都受到了一个已知漏洞的影响,此漏洞是由低熵助记词引起的,存在缺陷的对应算法(Bip39使用的随机生成算法会损害生成私钥时的安全性和不可预测性,可能使其容易受到未经授权访问或恶意活动的攻击。
在上述事件中,所有涉及的钱包最初并非使用Klever Wallet K5创建,均为钱包生成后导入到Klever Wallet K5中,且是使用旧的、弱伪随机数生成器PRNG算法作为熵源创建的,会严重损害生成私钥的安全性和不可预测性,从而可能更容易受到攻击或未经授权的访问。强烈建议如果用户目前拥有在Klever Wallet之前创建的旧钱包,请务必立即迁移到在Klever Wallet K5或Klever Safe上创建的新钱包,保护它们免受与过时或弱伪随机数生成器算法相关的潜在漏洞的影响。[2023/7/13 10:51:46]
如上提到的使用加密货币进行支付的普通工作流程,增加了隐私性,即,没有人能知道资产接收人是Bob,而且工作流程未发生改变。
隐身地址是可以由Alice或Bob生成的地址,但只能由Bob控制。Bob生成一个支出密钥并对此进行保密,然后使用该密钥生成一个隐藏元地址。他将这个元地址传递给Alice。Alice可以对该元地址执行计算以生成属于Bob的隐身地址。然后Alice可以将她想发送的任何资产发送到这个地址,Bob将完全控制这些资产。转移过程中,Alice在链上发布了一些额外的加密数据,来帮助Bob发现这个地址属于他。
另一种看待它的方式是:隐身地址提供与Bob相同的隐私属性,为每笔交易生成一个新地址,但不需要Bob的任何交互。
隐身地址方案的完整工作流程如下所示:
Genesis:解决信贷部门暂停赎回的问题需要更多时间:1月4日消息,Genesis最新发布的致客户信显示,Genesis将继续与顾问合作,为其信贷部门(Genesis Trading)寻找解决方案,虽然Genesis致力于尽快解决问题,但这是一个非常复杂的过程,需要一些额外的时间。
此前消息,Genesis在12月8日发给其客户的邮件中表示,其公司信贷部门Genesis Global Capital暂停赎回的问题可能需要几周时间去解决。[2023/1/5 9:53:10]
Bob生成他的根支出密钥和隐身元地址。Bob添加了一条ENS记录来注册为bob.eth的隐身元地址bob.eth。我们假设Alice知道Bob的地址为bob.eth。Alice在ENS上查找Bob的隐身元地址。Alice生成一个只有她知道的临时密钥,并且她仅能使用一次。Alice使用一种算法,将她的临时密钥和Bob的元地址结合起来生成一个隐身地址。她现在可以将资产发送到这个地址。Alice还生成她的临时公钥,并将其发布到临时公钥注册表。为了让Bob发现属于他的隐身地址,Bob需要扫描临时公钥注册表,以查找自其上次扫描以来任何人发布的整个临时公钥列表。对于每个临时公钥,Bob尝试将其与他的根支出密钥结合起来生成一个隐身地址,并检查该地址中是否有任何资产。如果有,Bob计算该地址的支出密钥并记住它。这一切都依赖于密码的两种用途。首先,我们需要一对算法来生成共享密钥:一个算法使用Alice临时密钥和Bob的元地址,另一个算法使用Bob的根支出密钥和Alice的临时公钥。这可以通过多种方式完成;Diffie-Hellman密钥交换是建立现代密码学领域的成果之一,它恰好实现了这一点。
俄罗斯央行计划在监管沙盒框架内测试使用加密货币进行国际支付:12月20日消息,俄罗斯央行第一副主席Olga Skorobogatova周一在国家杜马(下议院)表示,俄罗斯央行计划在监管沙盒框架内测试使用加密货币进行国际支付,该试点项目将与感兴趣的市场参与者一起实施。但监管机构没有具体说明可能涉及哪些公司。(塔斯社)[2022/12/20 21:55:56]
但是仅共享秘密远远不够:如果我们只是从共享秘密生成一个私钥,那么Alice和Bob都可以从这个地址消费。我们还添加了一个密钥盲化机制:在一对算法中,其中Bob可以将共享密钥与他的根花费密钥结合起来,而Alice可以将共享密钥与Bob的元地址结合起来,这样Alice就可以生成隐身地址,并且Bob可以为该隐身地址生成支出密钥,所有这些都无需在隐身地址和Bob的元地址之间创建公共链接。
使用椭圆曲线密码学隐藏地址
使用椭圆曲线密码学隐藏地址最初是由PeterTodd于2014年在比特币背景下引入的。该技术的工作原理如下:
Bob生成一个密钥,并计算M=G*m,其中G是椭圆曲线的公认生成点。隐身元地址是。Alice生成一个临时密钥,并发布临时公钥R=G*r。Alice可以计算出一个共享密钥S=M*r,Bob也可以计算出相同的共享密钥S=m*R。一般来说,在比特币和以太坊中,地址是包含用于验证来自该地址的交易的公钥的哈希。因此,如果你计算公钥,就可以计算地址。为了计算公钥,Alice或Bob可以计算P=M+G*hash(S)要计算该地址的私钥,Bob可以计算p=m+hash(S)这满足了我们上面的所有要求,而且非常简单。
甚至有一个EIP试图为以太坊定义一个隐身地址标准,它既支持这种方法,又为用户提供了开发其他方法的空间。现在你可能会想:隐身地址并不是很难,理论知识已经扎实,采用仅是一个实施细节。然而,问题在于,真正有效的实现还需要通过一些重要的实施细节。
日本财务省计划增加人员参与CBDC的发行工作:金色财经消息,据媒体获得的一份文件显示,日本财务省计划增加人员参与央行数字货币(CBDC)的发行工作。该文件显示,财政部将在下一财年预算中为增加员工申请资金。此举将是连续第二年增加,突显出日本政府正越来越重视为日本发行CBDC打下基础。(金十)[2022/8/30 12:57:08]
隐身地址和支付交易费用
假设有人给你发了一个NFT。如果你想要确保隐私,他们会将其发送到您控制的隐身地址。扫描链上的临时公钥后,你的钱包会自动发现该地址。你现在可以自由证明NFT的所有权或将其转让给其他人。但有一个问题是,该帐户中的ETH余额为0,因此也无法支付交易费用。即使是ERC-4337代币付款人也不会奏效,因为它们只适用于可替代的ERC20代币。而且你不能从你的主钱包向它发送ETH,因为那样你就创建了一个公开可见的链接,也就是说没了隐私性。
有一种简单的方法可以解决这个问题:只需使用ZK-SNARKs转移资金来支付费用。但这样会消耗大量的Gas,仅单次转账就会额外消耗数几十万Gas。
另一种比较聪明的方法涉及信任专门的交易聚合器。这些聚合器将允许用户支付一次以购买一组可用于支付链上交易的“tickets”。当用户需要在一个不包含任何其他内容的隐身地址中花费NFT时,他们会向聚合器提供其中一张ticket,使用Chaumian盲法进行编码。这是在1980年代和1990年代提出的集中式隐私保护电子现金方案中使用的原始协议。搜索者接受ticket,并重复将交易免费包含在他们的捆绑包中,直到交易在一个区块中被成功接受。
隐身地址和分离支出和查看密钥
假设Bob不是只有一个可以做所有事情的主「根支出密钥」,而是想要一个单独的根支出密钥和查看密钥。该查看密钥可以看到Bob的所有隐身地址,但不能进行支出。
Moonbirds宣布改变版权模式引发持有者不满:金色财经报道,Moonbirds宣布改变版权模式引发持有者不满。Moonbirds 联合创始人 Kevin Rose 此前表示,Moonbirds 及其姊妹项目 Oddities 将采用 Creative Commons CC0 版权代码,这意味着其版权转向公共领域使用模式,任何人都可以在不通知所有者的情况下商业复制和使用这两个 NFT 项目中的收藏品,并在未经所有者同意的情况下自由分发、扩充和商业化,导致持有者不满,他们认为购买该 NFT 项目即拥有 NFT 的专有权,现在这些权利在没有事先通知的情况下被拿走了。 (theblock)[2022/8/9 12:11:31]
在椭圆曲线世界中,这可以使用一个非常简单的密码技巧来解决:
Bob的元地址现在的形式为(K,V),编码G*k和G*v,其中k是支出密钥,v是查看密钥。共享密钥现在为S=V*r=v*R,其中r仍然是Alice的临时密钥,R仍然是Alice发布的临时公钥。隐身地址的公钥是P=K+G*hash(S),私钥是p=k+hash(S)。第一个步骤使用查看密钥,第二个步骤使用根支出密钥。
这有很多用例。例如,如果Bob想要接收POAP,那么Bob可以给他的POAP钱包查看密钥来扫描链并查看他的所有POAP,而不需要给这个界面花费那些POAP的权力。
隐身地址和易扫描
为了更容易地扫描整个临时公钥集,一种技术是向每个临时公钥添加一个视图标签。在上述机制中执行此操作的一种方法是使视图标签成为共享密钥的一个字节(例如,S?modulo256的x坐标,或hash(S)的第一个字节。
这样,Bob只需要为每个临时公钥执行一次椭圆曲线乘法来计算共享密钥,由于有了视图标签,也更容易进行扫描。
隐身地址和抗量子安全
上面的方案依赖于椭圆曲线,不过尽管这种方案效果很好,但不幸的是,容易受到量子计算机的攻击。我们将需要切换到抗量子算法。有两个自然的候选者:椭圆曲线同源和格。
椭圆曲线同源是一种非常不同的基于椭圆曲线的数学构造,具有线性特性,可以让我们使用与上面所做的类似的密码技巧,但巧妙地避免了构造可能容易受到量子计算机离散对数攻击的循环群。
基于同源密码学的主要弱点是其高度复杂的底层数学,以及在这种复杂性下隐藏可能的攻击的风险。一些基于同源的协议去年被攻击,但其他协议仍然安全。同源的主要优势是相对较小的密钥大小,以及直接移植多种基于椭圆曲线的方法的能力。
A3-isogenyinCSIDH
格是一种非常不同的密码结构,依赖于比椭圆曲线同构简单的数学,并且能够做一些非常强大的事情。隐身地址方案可以建立在格上,尽管设计最好的方案是一个悬而未决的问题。然而,基于格的结构往往具有更大的密钥大小。
全同态加密,格的应用。FHE还可以用于以不同的方式帮助隐身地址协议:帮助Bob外包检查整个链中是否包含资产的隐身地址的计算,而无需透露他的视图密钥。
第三种方法是从通用黑盒原语构建隐身地址的方案。该方案的共享密钥生成部分直接映射到密钥交换,这是公钥加密系统中的重要组成部分。更难的部分是让Alice只生成隐身地址并让Bob生成支出密钥的并行算法。
不幸的是,你无法使用比构建公钥加密系统所需的更简单的成分来构建隐身地址。有一个简单的证明是,可以用一个隐身地址方案构建一个公钥加密系统。如果Alice想给Bob加密一条消息,她可以发送N笔交易,每笔交易要么发往Bob的一个隐身地址,要么发往一个属于她自己的隐身地址,Bob可以看到他收到了哪些交易来读取消息。这很重要,在数学证明中你不能只用哈希来做公钥加密,而你可以只用哈希来做零知识证明,因此,隐身地址不能只用哈希来完成。
这确实是一种使用相对简单成分的方法:零知识证明,可以由哈希和公钥加密组成。Bob的元地址是一个公开的加密密钥加上一个哈希h=hash(x),他的支出密钥是对应的解密密钥加上x。要创建一个隐身地址,Alice生成一个值c,并将Bob可读的c加密作为她的临时公钥发布。该地址本身是一个ERC-4337帐户,其代码通过要求交易提供零知识证明来验证交易,证明值x和c的所有权,使得k=hash(hash(x),c)。知道x和c,Bob就可以自己重建地址及代码。
(c)的加密不会告诉除Bob之外的其他任何人任何信息,并且(k)是一个哈希,它几乎不会透露有关c?的任何事情。钱包代码本身只包含(k),(c)私有意味着(k)无法追溯到(h)。
然而,这需要一个STARK。最终,我认为后量子以太坊世界很可能会涉及使用许多STARK的应用,因此我提倡像此处描述的聚合协议将所有这些STARK组合成一个递归STARK以节省空间。
隐身地址和社交恢复以及多L2钱包
很长一段时间以来,我一直很感兴趣社交恢复钱包,社交恢复钱包具有多重签名机制,其密钥能在机构、你的其他设备和朋友的某种组合之间共享。如若你丢失主要密钥,绝大多数密钥允许恢复账户访问。
然而,社交恢复钱包不能很好地与隐身地址结合:如果你必须恢复你的账户,你还必须执行一些步骤来改变你的N个隐身钱包的账户验证逻辑,这将需要N笔交易,以高昂的费用、便利性和隐私成本为代价。
社交恢复和多个L2协议的相互作用也存在类似的担忧:如果你在Optimism、Arbitrum、StarkNet、Scroll、Polygon上有账户,出于扩展原因有十几个并行实例,并且您在每个实例上都有一个帐户,那么更改密钥可能是一个非常复杂的操作。
更改多条链中多个帐户的密钥是一项巨大的工作。
也许你可以使用一些自动化软件在两周的时间跨度内以随机间隔将资产转移到新的隐身地址,以降低基于时间的关联的有效性。但这远非完美。另一种方法是在监护人之间秘密共享根密钥,而不是使用智能合约恢复。但是,这会消除停用监护人帮助恢复您帐户的权力的能力,因此存在长期风险。
一种更复杂的方法涉及零知识证明。这允许许多帐户,甚至跨越许多L2协议,在某处由单个k值控制,其中更改该值足以更改所有帐户的所有权,所有这些都不会泄你的多个帐户之间的联系。
结论
当前基本的隐身地址可以快速实施,并且可以显著提高以太坊上用户的隐私。我认为出于其他与隐私相关的原因,钱包应该开始转向更原生的多地址模型。
然而,隐身地址确实会带来一些长期的可用性问题,例如社交恢复的困难。从长远来看,这些问题是可以解决的,不过隐身地址生态系统看起来确实严重依赖于零知识证明。
MarsBitCryptoDaily2023年1月17日一、?今日要闻Aave团队成员:AaveV3或于本周上线以太坊主网Aave团队成员0xGraham.lens发推称.
1900/1/1 0:00:00应用链叙事越来越受欢迎。以下有6个未发布的DeFi协议,它们正在建立自己的应用链和Rollup?(值得关注的高潜力项目): 1.dYdXV4上海市发布《上海市“元宇宙”关键技术攻关行动方案(20.
1900/1/1 0:00:00一、过去一周行业发生重要事件1.产业以太坊客户端Prysm开发更新:已实现并审查所有支持Capella升级中提款的核心功能OffchainLabs发布以太坊客户端Prysm在Capella和EI.
1900/1/1 0:00:00a16z的Web3初创者加速器计划「CryptoStartupSchool」将于2023年3月6日开始,持续12周.
1900/1/1 0:00:00近日,加密分析公司TokenUnlocks发布《2022年度报告》,其中回顾了2022年加密货币行业并对2023年的市场进行了分析展望.
1900/1/1 0:00:00动画「TheTrialofJimmytheMonkey」、迷你游戏「Dookey?Dash」、通关卡「SewerPass」开启了BAYC生态的新故事线.
1900/1/1 0:00:00