CoinmanLabs

發布於 2023-10-30到 Mirror 閱讀

聊聊nocturnelabs

     大家好,我是来自Coinmanlabs(欢迎关注推特,《程序员角度全分析千个项目》持续更新中)的Paul,今天想跟大家聊聊nocturnelabs。

     我们都知道现有的区块链(比特币和以太坊)都是一种公共开放的分布式账本,所有的交细节都以明文的方式存储在区块链上,如果我们想知道某个钱包曾交易过什么代币等活动,只需要使用区块浏览器查询即可,只需要几分钟就能掌握一个钱包地址的所有的历史活动,这样的机制确实大幅增加了透明度,但是同样带来了困扰,那就是可以直接将地址跟现实人物关联上,虽然我们并不知道这个人是谁,通常把这种叫做“伪匿名”,但是如果通过分析交易图谱可以并结合某些信息,是可以找到这个地址的真实身份。

产生地址的步骤

1.通过随机数发生器获得一个私钥。一般而言,私钥是一串数据,可以用于操 作相应的区块链账户。由于私钥可以直接打开账户,需要严格保管,以防丢 失。

2.将私钥经过算法处理生成一把公钥。技术上,可以从私钥计算得到“公钥”, 但是“公钥”无法倒退获得私钥。

3. 利用“公钥”进行哈希计算得到公钥哈希。 在“公钥哈希”头部连接一个字节的地址版本,

4.对其进行两次哈希运算,结 果的前 4 个字节可以作为公钥哈希校验值,连接至尾部。

5.对上一步的运算结果进行编码,即可得到一个区块链账户地址。      

地址产生过程

     鉴于上面的原因,人们开始倾向为区块链交易添加隐私保护功能。

**隐私地址     **

     隐私地址是一项保护加密货币接受者隐私的隐私增强技术,隐私地址要求发送方代表接收方为每笔交易提供随机的一次性地址,以便公众无法对同一收款人的不同转账进行关联。

我们可以看到隐私地址的几个重要特性:

1.为保护接受者的隐私

2.发送方代表接受发那个生成地址

3.接收地址都是一次性的地址

     下面给大家一个例子来更好的理解相关的内容。

     现在lisa需要给Paul转100u,但是paul不行太多的人知道自己的地址,所以建议使用隐私地址来操作,现在lisa生成一个地址,然后将地址的私钥告诉paul,lisa在确认paul收到了私钥之后想生成的地址转入100u,因为paul持有该地址的私钥就可以轻易的将钱转移交易所,当这100u转入交易所后该地址就被弃用了,具体是谁转入的交易所是无从查询的。

     如果你仔细看上面的流程你会发觉一个问题,就是私钥的传输安全的问题,不能让那个lisa把私钥写到纸上面然后将地址邮寄给paul吧。

     这时候就的想办法来改进上面的流程了。

     前面我们说了lisa只将了私钥告诉了paul,现在lisa先生成一对私钥和公钥,并且将私钥+paul的公开地址结合产生一个隐私地址,同时A将生成的公钥发布上链同时向该地址打入100u,上面我们说了私钥+paul的公开地址是一个隐私地址,同样paul的私钥+公钥也是一个隐私地址,paul只需要去扫描公钥注册表,一旦扫描到某个地址有钱则可以根据paul的私钥计算出隐私地址的私钥,从而控制了隐私地址进行下一步操作。

Nocturne

项目推特:

https://twitter.com/nocturne_xyz

项目官网:

https://nocturnelabs.xyz/

项目介绍:Nocturne 是一个在以太坊上启用私人账户的协议。想象一个传统的以太坊帐户,但具有内置的资产隐私。Nocturne 允许用户向 Nocturne 合约内的私人隐形地址存入或接收资金。那么,未来用户可以在零知识的情况下证明资产的所有权,用于任意交易或机密转移。

     现在有了我们上面的前置知识是不是理解Nocturne起来就比较简单了,Nocturne的核心就是隐私地址,在Nocturne中将“查看”交易的能力和“签署”交易的能力分离成两个独立的“私钥”——查看密钥支出密钥

为了避免密钥管理复杂化,查看密钥可以从支出密钥派生但支出密钥不能从查看密钥派生。换句话说:

  • 仅有权访问用户查看密钥的人可以跟踪用户的交易,但无法花费用户的资金。

  • 有权访问用户支出密钥的人可以花费用户的资金追踪他们的交易

  • 无法访问任一密钥的人无法追踪用户的交易或花费其资金。

然后,我们从查看密钥中派生出一个关联的地址,我们将其称为规范地址。用户的规范地址类似于用户的以太坊地址 - 它充当唯一标识帐户的假名。

然而,与以太坊地址不同的是,任何用户都可以将任何其他用户的规范地址随机化为一次性隐形地址,而无需访问用户的查看密钥。该隐形地址指的是与规范地址相同的账户,然而,第三方在不访问相应查看密钥的情况下无法确定关联(即,它“看起来是随机的”)。以同样的方式,任何用户也可以重新随机化任何隐形地址并生成新的隐形地址。

考虑一个用户 Alice。她可以生成任意数量的一次性隐形地址,这些地址只能通过其查看密钥进行链接。

假设爱丽丝有一个名叫鲍勃的朋友。她信任鲍勃,因此爱丽丝与他分享了她的规范地址。他可以生成秘密地址来向 Alice 付款,而无需透露她的规范地址或知道她的查看密钥。

现在考虑第三个名为 Charlie 的用户,她对 Alice 来说是陌生人,因此 Alice 不想向他提供她的规范地址。相反,爱丽丝可以给他一个她的秘密地址,或者他可以从鲍勃那里得到一个。然后,如果查理想要向爱丽丝付款,他可以重新随机化隐形地址并使用重新随机化的地址向爱丽丝付款。

目前进展

     现在Nocturne的测试网和主网都没有上线,且无roadmap,所以持续关注。

Recommended Reading