Vitalik Buterin 发布的提案是一个实用的解决方案,该方案可以在以太坊网络上更好的保护用户隐私。
原文作者:Kenny
原文来源:medium
原文标题:What Is a Stealth Address? Vitalik’s Solution for Privacy on Ethereum
编译:ChinaDeFi
以太坊的联合创始人Vitalik Buterin前段时间发表了一篇文章,该文章主要讨论的是如何通过所谓的“隐身地址”来为以太坊网络增加隐私。他在文章中解释了隐身地址的工作原理,以及该技术在以太坊网络上能够增加用户隐私的潜力。在本文中,作者试图使用一个示例来解释隐身地址的工作原理:Alice想给Bob发送1.2个ETH。
我们为什么需要隐身地址?
很多人认为以太坊和比特币这些公共区块链是私有的,这种想法其实是一种常见的误解。我们应该明确的知道公共区块链不是私有的。公共区块链确实通过钱包地址这种形式的“假名”提供了某种意义上的隐私。但是我们只要把钱包地址想成是一个账户,只要一旦有人匹配到这个账户是现实生活中的哪个人,那么这个人做的所有事情都将摊在阳光下。
钱包地址在链上进行的每一次交互,包括交易,与去中心化应用程序的交互,购买NFT等,这些数据都将以公开的方式被记录和存储、只要是能够连接互联网的人都可以随意查看。像Etherscan这样的网站,让人们能够非常方便地查看这些信息。Dune Analytics等应用程序,给人们分析这些信息带来了便利。如果没有隐私的保护,这些信息可以在未经同意的情况下被他人轻松利用。
使用公共区块链,是可以看到用户的购买地点,订阅等内容的,有心者有可能会利用这些信息来进行一些犯罪活动。鉴于此,链上隐私解决方案正迅速成为保护全球Web3用户的解决方案。最近Vitalik Buterin对这个话题进行了更深入的思考,并通过所谓的隐身地址来为以太坊生态系统提供解决方案。
生成密钥以创建隐身地址
隐身地址必须由两个参与者参与生成:在下面的例子中Bob是接收方,Alice是发送方。Bob生成:
为了获得Bob和Alice独有的隐形元地址,Alice还需要生成两个密钥:
临时公钥是临时私钥生成的,就类似于助记词生成以太坊地址。临时公钥可以发到任何人都可以查看的公共分类账。临时密钥对只使用一次,因此Alice如果想与其他人进行交易,则必须生成新的临时密钥对。
总结一下就是:
想要生成最终隐身地址的下一个步骤是,Bob和Alice共享各自的公钥。Bob向Alice提供自己的任何人都能查看的隐形元地址(公共)。然后Alice将Bob提供的隐形元地址与自己创建的临时私钥结合起来。该组合会创建出隐身地址。Alice可以将1.2个ETH发送到隐身地址上。
访问隐身地址
Bob为了能够找到Alice给他发送的1.2个ETH所在的隐身地址,就必须也创建出Alice创建的隐身地址,但有一个问题是这个步骤是需要结合Alice的临时私钥和Bob的隐形元地址的,问题在于,Bob并不知道Alice的临时私钥,因为临时私钥是私有的。如果使用密码学概念,Bob就会有另一种选择:他可以使用不同的私钥/公钥组合创建相同的隐身地址(并使用自己的支出密钥来控制隐身地址内的加密货币)。Bob可以将自己的支出密钥和Alice的临时公钥进行结合来创建隐身地址。
为了找到Alice的临时公钥,Bob需要浏览所有现有临时公钥的列表。把看到的每个临时公钥,与自己的支出密钥结合起来,就会创建出一个由此产生的隐身地址。Bob查看隐身地址中可用的加密货币。在大多数情况下,使用随机临时公钥和Bob的支出密钥创建出的隐身地址当中应该会包含0ETH,但只要和Alice的临时公钥结合起来,Bob就可以看到生成的隐身地址中包含1.2个ETH。
实际上,Bob是不需要手动去匹配所有的临时公钥来寻找正确的那个,这个过程会由计算机自动完成,这样才会大大的减少投入的时间和精力。
总结
Vitalik Buterin 发布的提案是一个实用的解决方案,该方案可以在以太坊网络上更好的保护用户隐私。Manta Network等其他项目使用 zkAddress 系统 + UTXO 来实现链上隐私。Buterin 提出的隐身地址系统是以太坊网络上一种独特且有前途的隐私解决方案。更重要的是,像 Vitalik Buterin 这样的领导者正在考虑链上隐私的创新,这件事本身就是朝着正确方向迈出的一步。