12月16号20:00,BlockMania AMA直播第35期暨BlockMania「201技术AMA」第2期继续进行,「201技术AMA」是BlockMania继「博士大爆炸」之后推出的另一个区块链硬核技术科普系列,通过邀请业内多家知名技术社区的大咖进行分享,为开发工程师们提供一个交流互动的平台,同时也让更多的人感受区块链底层技术与逻辑的魅力,共同探索区块链的前景。
本期主题为「公开透明的区块链技术该如何保护隐私」,分享嘉宾为Grin中国社区创始成员、独立开发者Xiaojay,分享内容为区块链网络中隐私保护的重要性以及MimbleWimble隐私协议的特点。
以下为本次AMA全程回顾
1. 为什么加密世界需要隐私保护?有了隐私保护,有哪些原本无法在链上完成的实践可以得以完成?
首先隐私保护不仅在加密世界中需要保护,在现实世界中也是同样需要。
而针对加密世界,目前大多数区块链项目,通过公开的、永久保存的账本(如BTC)/状态改变记录(如 ETH),来实现去中心化、构建信任的目的。但与此同时也带来了隐私保护问题。
举个例子,在ETH世界里,你的转账、投资记录都是公开透明、可追踪的,大家可以看下这篇文章「Top 10 DeFi 大户的链上人生」。
文章链接:https://orange.xyz/p/506
而如果你不小心在有KYC的交易所进行了交易,很有可能你的个人身份也会曝光。很明显,对于想要在加密世界进行金融活动的朋友来说,这是很难接受的。大多数加密资产持有者不希望他们的资产和交易记录被完全公开。
而有了隐私保护后,更多的资产、金融活动就有理由迁移到区块链。
2. 您看好哪些隐私保护技术?有哪些项目正在使用隐私保护技术?
我比较看好优雅简洁的Mimblewimble技术,而对zk-SNARKs和zk-STARKs为代表零知识证明技术也很有兴趣。当然对于后一种,我并不是专家。
实现了Mimblewimble技术的目前主要有两种主要的加密货币 Grin 和 Beam;而应用zk-SNARKs和zk-STARK技术的项目主要有Zcash、Eth等。
3. 请简单介绍下Mimblewimble协议的特点?
Mimblewimble协议的交易也是UXTO模型,即 交易输入 = 交易输出 + fee。
而基于椭圆曲线的加法同态性原理,即:
(k+j)*H = k*H + j*H 其中k 和 j 都是私钥,H 是椭圆曲线的点,MW协议实现了交易金额的隐藏。
而通过和coinjoin(即 A -> B 和 C -> D 等价于 (A+B -> C+D))以及cut-through(即A + B -> C 和 C+D -> E 等价于 A+B+D -> E)结合实现了区块链容量的精简和链上的匿名性。
总结来说,MW协议通过可靠的数学原理实现了交易匿名特性和链上交易容量的可扩展性。
4. 请简单介绍下Grin项目?和比特币相比有什么不同?
Grin是第一个实现的MimbleWimble协议项目,它是一个开源、公平(No ICO、No 预挖、No创始人奖励),只依靠社区捐赠来开发的加密货币项目。
和BTC相比,Grin区块链不记录地址、交易具体金额,有着更好的匿名性;并且只需要更少的存储空间。
Grin还采用了与BTC不同的货币排放模式,出块时间是1分钟,每个区块奖励为60grin,不减半。至于采用这个货币排放模式的原因,大家可以读读官方的这篇文章
https://github.com/mimblewimble/docs/wiki/Monetary-Policy
5. 如何看待mimblewimble协议的漏洞(网络「窃听者」可以通过观察「交易图」将交易进行关联)以及开发者对这一问题的修复?
我想你指的是Ivan Bogatyy的这篇文章中描述的Grin网络的可链接性攻击。
文章链接:
https://medium.com/dragonfly-research/breaking-mimblewimble-privacy-model-84bcd67bfe52)
首先我想指出的是这篇文章有些夸大其词,监听到某些交易的交易输出和交易输入到实际找出交易者之间还有非常大的距离。
其次这是一个Grin开发者已知、并开始着手进行改进的缺陷。可用于改进的方案包括但不限于
在发送交易前采用Coinjoin
https://www.grin-forum.org/t/yo-dawg-i-heard-you-like-coinjoins/5296
发送交易的蒲公英协议,增加decoy 交易等等。所以我们有理由相信经过这次事件后,Grin会变得更好。
6. 比特币是否可能会采用MW协议?最近LTC的宣布「将要考虑在莱特币使用MW协议」是怎么回事?
LTC将会通过「扩展区块」的方法来实现Mimblewimble协议。
参考链接:
https://github.com/litecoin-project/lips/blob/master/lip-0002.mediawiki
https://github.com/litecoin-project/lips/blob/master/lip-0003.mediawiki)
具体来说:
1、普通区块记录的LTC可以通过 Peg-in交易 发送到 特定扩展地址(ExtAddr)。这样,这部分数量的LTC就被锁定在扩展区块中;
2、而在「扩展区块」中ltc 将通过Mimblewimble协议进行发送、接收,可以保证匿名,扩展区块交易格式是MW协议的格式;
3、锁定在「扩展区块」中LTC可以通过 Peg-out交易来回到LTC普通的区块上。
这个方法应该会采用 「软分叉」激活。至于而BTC是否会采用还不是很清楚。