09匿名性
约 840 个字 预计阅读时间 3 分钟
匿名性(anonymity)一般和隐私保护(privacy)相联系!
- BTC采用的是pseudonymity(假名)
- BTC中的匿名性没有想象的那么好,尤其如果你想干坏事
可以采取哪些方法尽可能提高匿名性
网络层看:采用多路径转发(数据不直接发送出去),而是经过很多跳(洋葱路由TOR)
应用层看:将各个不同用户的BTC混合在一起,使追查变得混乱(Coin mixing)
暴露用户隐私正是由于 区块链的公开性和不可篡改性
- 不可篡改性对于隐私保护,实际上是灾难性的
零知识证明(ZKP)
一方(证明者)向另一方(验证者)证明某一个陈述是正确的,但不需要透露除该陈述是正确的之外的任何信息
其数学基础是 同态隐藏 :
- 若x,y不同,那么加密函数值E(x)和E(y)也不同 『无碰撞』
- 给定E(x),很难反推出x 『加密函数不可逆』
- 给定E(x)和E(y),可以很容易地计算出某些关于x,y的加密函数值 『同态运算』
- 同态加法:通过E(x)和E(y)计算出E(x + y)
- 同态乘法:通过E(x)和E(y)计算出E(xy)
- 可扩展到多项式
例子
Alice想要向Bob证明她知道一组数x和y使得x +y = 7,同时不让Bob知道x和y的具体数值
其中证明者为Alice,验证者为Bob。最简单的证明如下:
- Alice将E(x)、E(y)发给Bob(性质2,不可逆)
- Bob通过收到的E(x)、E(y)计算得到E(x+y)(性质3,同态加法)
- Bob验证E(x+y) = E(7)?若相等则通过,否则失败(性质1,无碰撞)
缺陷:Bob可以暴力获取x与y的值
盲签名(Blind Signature)
盲签名是一种特殊的数字签名技术。其中消息的内容在签名之前对签名者是不可见的(盲化)
- 一是签名者对消息的内容是不可见的
- 二是签名被公开后,签名者不能追踪签名
零币和零钞
专门为匿名性设计的货币,零币和零钞在协议层就融合了匿名化处理,其匿名属性来自密码学保证
- 零币(zerocoin)系统中存在基础币和零币,通过基础币和零币的来回转换,消除旧地址和新地址的关联性,其原理类似于混币服务
- 零钞(zerocash)系统使用zk-SNARKs协议,不依赖一种基础币,区块链中只记录交易的存在性和矿工用来验证系统正常运行所需要关键属性的证明。区块链上既不显示交易地址也不显示交易金额,所有交易通过零知识验证的方式进行
老师箴言
知识改变命运,这句话本身没有错,但是对知识的一知半解可能让你的命运变得更差,搞科研是很有意义的,但是不要给学术界的思维限制头脑,不要为程序员的思维限制想象力
加密和哈希:
- 加密可逆、哈希不可逆
- 加密不损失信息、哈希破坏信息