中金网|贾瑶琪:攻击无处不在 区块链安全和隐私问题有点与众不同( 六 )


大家都知道Monero本身的隐私性不是特别好 , 在区块链世界里谁的隐私性相对最好?就是Zcash , Zcash是使用零知识证明来保护发送者和接收者的身份以及发送金额 。
图中有几种特殊交易:透明交易 , A发给B , 大家知道数目 , 也知道发送者、接收者 。 之后B发给C , 进行匿名化 。 由于有匿名池 , C再发给DEFG的匿名交易 , 大家都分辨不出来到底谁是真正的接收者 。 但是 , DEFG有时候可能要去匿名化 , 把匿名身份转为非匿名身份 。
有意思的是Zcash里超过85%的交易都是透明的 , 入金/出金很容易推算出来的 。 有少于1%的交易是匿名交易的 , Zcash本身使用零知识证明 , 目前来讲零知识证明是比较安全的匿名化方法 。
很多研究者、攻击者会把精力放在怎么通过匿名化、去匿名化交易推断出地址关联性 。 有哪些人在使用匿名交易池呢?
1、矿工 , 分独立矿工和矿池 。 由于Zcash每个区块有10ZEC的奖励 , 那么很容易区分出区块的奖励者、接收者的地址 。
2、创始人 。 每个区块有2.5ZEC奖励 , 地址是公开的 , 大家也可以区分出来 。
3、个人用户等 。 看入金进入匿名交易池的地址是很容易区分的 , 有大于80%的入金匿名化交易来自矿工 , 创始人也有很清晰的交易步骤 。 矿工直接从区块拿到奖励 , 地址相对容易暴露出来 。 从匿名交易池出来的地址不容易区分 , 大于90%去匿名化的交易地址很难区分 。
通过一些分析 , 攻击者发现大家使用Zcash匿名化的过程中有一些很有意思的操作 , 例如创始人行为 。 很多情况下创始人入金都是249.999ZEC , 出金是250.001ZEC 。 如果仅从对应的数值来看 , 大家很容易区别出哪些地址在进行匿名化操作时候是来自创始人的 , 哪些去匿名化的地址也是来自于创始人的 , 因为数值可以进行绑定 。
矿池也有一个很有意思的行为 , 矿池会把资金转入匿名交易池 , 然而在分给矿工奖励的时候最终还会有自己的地址 。 这导致了很容易辨认的模式 , 攻击者可以分析出已知矿池地址 , 同时还有上百个其他地址 , 那么这笔交易肯定是属于矿池和矿工的 。
不管是Zcash还是Monero , 很少人能够很好地使用隐私保护系统以及手段 。 很多时候大家觉得自己用了隐私保护系统 , 那么保护效果就应该很好 。 但其实不是的 , 每个系统都有一些对应的设置 , 如果你作为用户没有设置好的话 , 那对应的交易是不能被很好地保护起来的 。
针对Zcash有69%的匿名化交易是可以根据刚刚的模式区分出来 , 但是Zcash的底层密码学技术是安全的 , 可以提供很高的匿名性以及隐私性 。 前提是大家能够比较正确地进行匿名化操作 , 保证自己没有使用那些明显的模式 , 而被攻击者、研究者发现出来 。
"在区块链的世界里 , 除了有破坏规则的恶意攻击者 , 还有很多利用规则的利益最大化者 。 "
例如区块扣押攻击以及利用区块链平台的拥塞攻击 。 大家没有破坏规则 , 只是利用区块链本身的规则/平台特性来达到利益最大化 。 我们在设计区块链系统和应用时 , 最好能够兼顾自己的系统或者程序是没有漏洞给恶意攻击者进行破坏 , 同时尽量防止利用协议/规则的损人利己的利益最大化行为 。
【中金网|贾瑶琪:攻击无处不在 区块链安全和隐私问题有点与众不同】最后 , 希望与大家一起创造出更好的方法 , 共建安全的Web3.0生态 。


推荐阅读