Author

Topic: 洋葱币DeepOnion的深度协议(Deep Protocol)重装来袭 (Read 154 times)

jr. member
Activity: 56
Merit: 18
这一阵子,团队一直在测试深度协议Deep Protocol(也就是隐身地址Stealth Address),本文就是向那些不明白深度协议的工作机理的人讲述它是如何工作的。

隐身地址的着重点在于交易活动中接收者的隐私。

在加密货币领域,花掉一定数额的货币的权利,等同于知道该加密货币的公钥地址对应的秘钥。

简单来讲,拿洋葱币DeepOnion来说,如果有与公钥P关联有一个洋葱币DeepOnion,如果Bob知道对应的私钥x使得等式P=xG成立,那么他就可以通过发送一个用私钥x签名的消息来花掉这个洋葱币DeepOnion。

然而,这里有个问题:如果Bob一直使用相同的公钥地址P来接收洋葱币DeepOnion,那么任何观察者都可以看到Bob的所有交易行为。这一点是对Bob的隐私保护很不利的,而隐身地址解决的就是该问题。

在隐身地址的应用中,每个钱包地址都有两个公钥地址,一个是原来的,一个是隐身地址。如果一个人要转给Bob洋葱币DeepOnion,那么Bob使用隐身地址就行。具体而言,每次交易中,隐身地址可以产生一个新的公钥地址,发送者往该地址发送洋葱币DeepOnion即可。发送者并非往其隐身地址发送洋葱币DeepOnion,而是发送到由隐身地址产生的新地址。新产生的地址在交易之前,Bob是不知道的,更不要说控制它了。

隐身地址是这样工作的:

Bob分别创建了两个私钥-公钥对,分别标记为(a,A)和(b,B),根据定义有A=aG和B=bG。Bob将A,B告诉别人,这就是其隐身地址。

Alice希望发送一个洋葱币DeepOnion给Bob,即她想将该洋葱币DeepOnion赋给地址P,其中P=xG,而x是Bob所知道的。她将用一个Hash函数H根据Bob的隐身地址来创建这样的一个P,通过选择一个随机的大数r,并且P=H(rA)G+B。然后Alice发送该洋葱币DeepOnion到P,该交易与R=rG一道被广播到区块链网络。

那么,现在Bob怎么拿到这些钱呢?好吧,他需要时刻监听区块链网络的新交易信息,以获得属于他自己的交易。当他看到Alice的交易,他就执行x=H(aR)+b,并发现:
xG = (H(aR)+b)G = H(aR)G+bG = H(arG)G+B = H(raG)G+B = H(rA)G+B = P,
即,Bob可以重建符合P=xG的x,因此成为该洋葱币DeepOnion的拥有者。需要说明,任何观察者,包括Alice都不能得到x(因为a,b不为他们所知)。另外,除了Alice和Bob之外,没有人知道(x,P)是从Bob的隐身地址产生的(因为不知道r)。

需要指明,如前所述,该过程只保护Bob的隐私,但是Alice仍然在区块链网络是可见的。可以通过将Alice与其他人混淆起来来解决这个问题,门罗币就用了环形签名技术Ring Signatures,该技术要求Alice提供她确实发送了洋葱币DeepOnion给Bob的证明,而非直接对交易进行签名。环形签名背后的技术更复杂,是可以投入使用,没有问题。

总之:

隐身地址关注的是接收者的隐私,
环形签名关注的是发送者的隐私。

你。。。。手又开始抖了吗?
Jump to: