MimbleWimble 系列之Pedersen 承诺

MimbleWimble 系列之Pedersen 承诺

导读: 19年1月12日周六参加了一场隐私技术MW的硬核技术会议,会上几位技术咖介绍了MW协议还有Beam 和Grin项目,一个多月前也看过Mw的Paper,其实没看懂什么,这次会议对我来说是扫盲会议,所以借BG技术论坛把之前看到的一些资料和自己了解的内容分享出来,以供大家学习,内容中会借用几位讲师的PPT图片,为了说明白此技术,实属无奈,如有用到我会注明作者,如果原来作者看到此文,认为里面的图片不适合公开分享,请下面留言回复下,我会尽快删掉,谢谢!

MW协议中几个主要的概念

  • Pedersen 承诺
  • 交易合并
  • 范围证明
  • 蒲公英路由

**Pedersen承诺-**用来达到匿名保密交易的协议,简单来说你转给我5个token,在其他人不知道数额和地址的情况下,保证这笔交易是有效的,任何人在区块浏览器上都查不到数额和地址信息,跟BTC/ETH不一样,这听起来有点玄乎,但确实在真真切切的在实现,在MW之前之前,已经有Zcash ,门罗在做这种探索了,都有各自的优秀之处,MW试图以一种新的方式,简单易实现来达到同样的目的。

这是一个BEAM的交易,大家进去看一下,你啥也看不到,全是隐藏的,感受下!

经常会看到这个公式: P = r · G +v·H,在第一篇文章里也简单介绍了这个协议,G和H是椭圆曲线上的不同的点,r是Blinding factor(可以看作是私匙) ,v就是打币的数值,如果已知 C,G,H,反向求r 和v的数值几乎是可能的。这里用到了数学上的离散对数问题(你也不用管它是啥,我也不懂,哈哈!总之你反向推到不出来结果,到现在数十年过去了,也没人破解的了)

刚才我们说了Pddersen在不泄漏转账数字的情况下可以把交易这个活干了,他是怎么实现的呢?

首先是一个等式,大家想想看,如果我有8个mw 币 ,给你转了6个,1个是找零,还有1个座位矿工费用

这个等式为 8 - 6 =1 + 1,这个对吧?把P承诺公式套进来,利用陈乐博士这张图咱们尝试看一下它的交易逻辑!

Pedersen_exchange

左上角的那个是传统的UTXO,一个UTXO 5个token,一个UTXO 3个Token ,如果Alice想给Bob转6个Token,找零1个,交易费1个。左下角那个图是MW里的交易过程,看不到数额,右边2个图是Alice 在MW里转移6个Token 给Bob的过程,这里面利用了前面说的Pederson等式!

  1. Cin1 = r1G + 5H (r1是Alice的私钥 5是数量), 同理Cin2 = r2G + 3H, 5 和3即为Alice持有的token数量

  2. C change (找零) = r3G + 1H, r Alice = r1 + r2 - r3(加加减减还是一堆秘钥,不告诉你就破解不了)

  3. 对于Bob来说,他利用自己的私钥r4 和G, H还有他要收到数量6一样生成个Pedersen等式,在生成一个K,利用r alice 和自己的r4 产生的,每一个交易都会产生这么个东西,留着给矿工用。

  4. 大家回过头来看看,Bob知道r alice的结果,但是解不出来 r1 r2 和r3,即他不知道Alice的秘钥,或者你再给其一个系数G,变成Ralice=r alice *G,离散对数里的方程,假如已知 R 和G,你是计算不出来r alice的。

  5. Bob可以检查等式两边是否相等,同样矿工利用公布出来的数据也可以检查两边的数据是否相等,也不需要知道里边的秘钥细节,总之out=in+找零 相等就行了。

2个疑问?

  1. 大家可能有疑问这里边的fee在实际中是怎样给出的呢,客户端根据市场价默认天蝎的嘛?还是Alice手动修改的?

  2. 另外这个等式里要求Bob知道Alice给他转的是6个token,就是说我们要先约定好才行,或者要在线”沟通“,可在现实中的情况是我只给对方一个“账户/地址”,然后跟对方说,打几个币然我玩玩,你怎么知道对方会打多少?谁没事总在线,这块我还没研究明白,有知道的同学,跟我说下,Grin和Beam是怎么”提前知道“这个转账数字的?

先写这么多(也只能写这么多,哈哈),其他几个特点稍后再写,如果你想看系列文章,也可以看看之前写的2篇!

1. MimbleWinble系列之协议介绍

2.MimbleWimble系列之Grin & Beam大不同

索引

[1]: https://scalingbitcoin.org/papers/mimblewimble.txt “MimbleWimble paper”
[2]: https://www.beam.mw/ “Beam official documents”
[3]: https://grin-tech.org/ “Grin official documents”
[4]: GrinCuckoo算法 “量子链架构师 何华明”
[5]: Beam2019 “Beam中国区负责人 茹云风”
[6]: Mimblewimble加密算法 “火币密码学家 陈乐博士”
[7]: Grin&Beam挖矿 “上海挖易联合创始人 李陪才”

对此技术有兴趣的技术开发者可以进BG的技术问答群,专门讨论MW技术,我近期正在看国外的相关论坛,有兴趣的可以跟我一起当跑腿儿,推广下这块的技术。

BG2qun

update, 关于第二个问题,刚刚请教了BEAM中国负责人茹云风

接受的value一定要提前沟通好,就是说要在线的!

即使利用Sbss通道也要提前沟通收发的数量,当然,只有双方知道,通道加密!