V神发布的stealth addresses隐密地址指南真的有那么厉害吗?

Jason chen热度: 19415

原文作者:Jason chen

原文来源:mirror

V神昨天发布了关于对stealth addresses隐形地址的指南,浅研一下这个方向。

比特币

众所周知区块链同时具备匿名性和公开性这两个互相撕扯的特点,尽管地址本身不会透出任何用户信息,但是通过该地址与其他链上/下的数据结合可以分析出背后具体的真实身份。

尤其是随着现在大量DID和SBT的产品,一不小心你的地址就被黏上一些会暴露你身份的东西,以及通过链上特征分析甚至直接通过cex向地址的交易记录(虽然正常情况下cex不会给出)也可以判断出地址持有人,关于交易匿名问题也有如tornado cash等混币器一定程度可以解决,但是对于小众币和NFT则无能为力,以及tornado cash也因法律问题被封杀关停,混币器方案治标不治本。

隐私地址的原理很简单,其实就是为每次交易生成一个一次性的新地址,用完即抛,相当于自己有很多代理人白手套,这样多个交易就无法追查到同一个人。 隐形地址并不是新鲜玩意,比特币、门罗币在这方面的探索都相对成熟,但是以太坊比较滞后,我搜索 ethereum stealth addresses能找到的资料基本围绕3个相关事件:

  1. 2022.6.16 Umbra发布,在以太坊中使用了隐秘地址的项目
  2. 2022.8.8 V神在论坛中提到ERC721S,畅想实现隐形地址收发NFT
  3. 2022.1.21 V神发布以太坊隐形身份指南,即我文章开头说到的

Umbra应该是以太坊生态第一个落地隐形身份的项目(也许有更早的我没有看到),但是貌似市场上不温不火,没有太多的资料,具体原因未知。它的实现形态和门罗币很像,我创建Umbra账户时会生成两个私钥:支出私钥和查看私钥,并产生对应的公钥发布在链上,且这两个公钥和我的地址是关联的。

比特币

付款人可以使用我的地址查到我对应的那两个公钥,然后再使用随机数+支出公钥生成一个隐形地址并将钱打进去,随机数会再结合查看公钥进行加密,最后这个交易会被正常广播。然后我可以用查看私钥来解密随机数,再用该数字结合支出私钥得到隐形地址私钥,并对该隐形地址的资产进行控制。

最终实现的效果是通过链上数据只能看到张三给好几个空的新地址发送了资金,但是这几个地址直接却毫无关联关系。

我并不是Umbra的用户,如之前所说这个项目我觉得思路还不错,也是很早一篇在以太坊做隐形地址的,但是却不温不火,具体原因我还不太了解,需要再详细调研看是不是有什么坑或者硬伤。

然后是22年V神在一个帖子中提到了ERC721S,这只是他的一个畅想,源于一个人说在尝试将zk-SNARK和NFT相结合,V神说你搞那么复杂干嘛我有更棒的低技术实现思路,具体内容大家可以看这个帖子,原理和Umbra差不多。

比特币

比特币

然后昨天是天V神正式发了一篇隐形地址指南文章,使用椭圆曲线加密,首先Bob有他正常地址的公钥和私钥,Alice生成一个临时公钥和私钥,该私钥结合Bob的地址生成隐形地址并把钱打进去,再将该交易包含临时公钥正常广播,Bob用自己的私钥结合临时公钥生成隐形地址,如果里面有钱则说明这是他的资产,然后Bob再计算出该地址的支出私钥并控制该账户。

比特币

所以不论比特币、门罗币的隐形地址解决方案,还是Umbra、ERC721S和V神指南在思路上都差不多,整体原理上还是比较成熟清晰的,不是什么前沿的高难度技术,但要注意V神在文章中也说理论基础已经很扎实了,但是真正要有效落地需要大量的实施细节。

注意也许你会疑惑Bob使用隐秘地址方案来生成一堆新地址,和自己手动创建新地址有什么区别呢?这里不少人会误解,地址并不是Bob收款人生成的,而是付款人Alice生成的,相当于是Alice在给Bob付钱的时候,将钱装进一个信封后丢在大街上,该信封是Alice拿出来的,但是只有Bob有资格将该信封打开。

其实我认为隐秘地址虽然是低技术实现匿名转账的方案,但是应该也只是对于匿名转账的权宜之计,它的问题也还是比较多的。

首先是它是单边匿名,即对于收款人来说是很爽的,每一次收款都是一个新的钱包,并且这个钱包只和付款人有关,可以对收款人做到完全匿名,但是对于付款人来说是完全透明的,从链上可以看到付款人给某些空地址打了钱,如果某个地址再将钱打给了非法组织,则付款人就逃脱不了干系了,相当于是将匿名的风险完全转移给了付款人。

另外它还存在GAS的问题,即如果我将非ETH的token和NFT打到了隐秘地址,因为是空地址,收款人想转移出去的话需要缴纳GAS费,则需要付款人或者收款人再打点GAS进去,麻烦不说,还导致会产生一大堆零钱地址,因为不可能恰好将打的GAS费用完,非常的浪费,比如我这种有强迫症的看到这么多地址都残留着钱就会非常难受,其实这一点我认为可以通过账户抽象智能钱包来解决,首先智能钱包提供匿名交易是很强的业务互补,再加上relayer的代付可以解决刚才说到的GAS问题,关于账户抽象大家可以回顾我之前的文章:为什么我们需要账户抽象与智能钱包?

最后每一次转账都生成一个新地址,尽管也许这个生成的过程无成本无感知,但是对我来说还是会非常的别扭难受,我每次一想到我名下如果有一大堆一次性地址就觉得不舒服,而且这种过程对于用户的管理和理解门槛也很高。

总之隐秘地址不是新鲜玩意,是已经出现快10年的概念了,在一定程度上确实可以实现匿名转账,但是问题也很多,这也许就是为什么Umbra到现在过去3年了还不温不火的原因吧。

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。 未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。