摘要:Nocturne的推特账号第一次发文是今年的5月份,即在Vitalik探讨隐私地址5个月后,然后又过了5个月拿到了Vitalik的投资,所以还是挺成功的一次面向Vitalik创业的案例那单独聊聊隐私地址这个事吧,到底是做什么的,如何实现,效果怎么样。...
前天,Nocturne刚刚正式宣布融资600万美元,并获得了Vitalik投资。为什么我要求它为Vitalik创业?因为项目的主要技术是隐私地址,今年1月20日,Vitalik在自己的博客上发帖讨论隐私地址的可行性,第二天我也分析了这篇文章。你可以把它翻过来复习一下。
Nocturne的推特账号是今年5月发布的,也就是Vitalik讨论隐私地址5个月后,5个月后获得了Vitalik的投资,所以这是一个非常成功的Vitalik创业的例子
然后独立谈谈隐私地址这件事,到底是什么,怎么做,效果如何。
隐私地址的核心是实现Token转移过程中的匿名性,即Tornadoo 匿名转账是Crypto之前实现的一个永恒的话题,也是一个非常严格的需求。接下来,我会尽量详细介绍如何实现隐私地址和tornado cash有什么区别?
但首先要明确的是,隐私地址绝对不是一个新概念,而是存在了很长一段时间,产生了很多项目和衍生协议。门罗币几乎是一样的原则,但Vitalik是其以太坊生态理论化的重要推动者。 在22年8月的以太坊研究者论坛上,Nerolation提出了能否将ZK和ERC721结合起来,实现匿名发送和接收NFT。Vitalik回答说,你认为这太麻烦了,可能会以更简单的方式实现,暂时称之为ERC721S
随后,Nerolation和Vitalik提出了EIP5564,将其完全推向标准化
但事实上,在此之前,有一个项目将隐私地址实用化,至少在成熟度方面已经达到了可用状态,但我不知道为什么我没有得到Vitalik的青睐...相反,一年后才姗姗来迟的Nocturne被宠坏了
隐私地址的原理只是为每笔交易生成一次性新地址,付款人将钱转移到新地址,新地址只能由收款人控制,手动操作相当于生成一个新地址,然后将地址的私钥告知B,A转移到10U,因为只有B知道地址的私钥,所以B可以控制地址,10U进入交易所,因此,从公共链中,我们只看到A转向空地址10U,然后这个地址将10U转移到交易所,但没有人知道谁将10U转移到交易所。
但上述过程依赖于大量的人工操作,涉及到私钥的传输,不仅麻烦风险很高,有没有办法实用这个过程,思路是如何自动实现“A生成一个只有B才能控制的地址”的过程。
这就是隐私地址需要解决的问题,ZK的思想也在这里使用。
回到刚才的例子,比如A想把B转到10U,A已经知道了B的公共地址,但是A不想让别人知道A-B之间的交易链接,所以A生成了一对临时私钥和公钥,结合临时私钥和B的公共地址生成了隐私地址,然后A把10U转到了隐私地址。
从链条的角度来看,此时A已经将10U转移到一个新的地址,此时有两个问题。首先,B如何知道这个新的隐私地址是由A为B建立的?也许A会把它还给C、D、E和其他人也发送了10U。其次,即使B知道隐私地址是A为他建立的,B如何获得新地址的10U或如何控制新地址?
刚才提到A用来生成隐私地址的时候,先生会做一对临时私钥和公钥,包括临时私钥 B公开地址=隐私地址,B私钥 临时公钥也等于隐私地址,所以A在发送10U到隐私地址时也会在链上发布临时公钥,B扫描公钥注册表,对于每个新发现的临时公钥B将结合他的私钥生成隐私地址,如果里面正好有钱,说明是A给他的。
然后用B自己的私钥计算隐私地址的私钥,然后用隐私地址的私钥控制隐私地址进行下一次转账交易。
从链的角度来看,效果是A将10U转移到一个新地址,然后将10U转移到交易所,但谁操纵新地址进行转移并不能反映在链上。新地址就像一个线木偶,由后面的一只手控制。
以上是隐私地址的原理。到目前为止,Nocturne的测试网和主网还没有上线,也没有roadmap,那么Nocturne能否做到tornado 再次观察cash的效果。