BTC-匿名性
比特币的匿名性
比特币的匿名性弱于现金,也弱于无需实名的银行,强于实名制的银行
一个人可以拥有很多个账户,但这些账户可能会被关联起来(账户与账户的关联)
当比特币与现实世界发生联系时,例如用比特币换为法币或是在现实世界消费比特币时,也可能泄露身份(账户与现实实体的关联)
Zero-knowledge proof
零知识证明
零知识证明是指一方(证明者)向另一方(验证者)证明一个陈述是正确的,而无需透露除该陈述是正确的外的任何信息
同态隐藏
- 如果 \(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(x \cdot y)\) 的值
- 扩展到多项式
盲签方法
- 用户 A 提供 SerialNum,银行在不知道 SerialNum 的情况下返回签名 Token,减少 A 的存款
- 用户 A 把 SerialNum 和 Token 交给 B 完成交易
- 用户 B 拿 SerialNUm 和 Token 给银行验证,银行验证通过,增加 B 的存款
- 银行无法把 A 和 B 联系起来
- 中心化
零币和零钞
- 零币和零钞在协议层就融合了匿名化处理,其匿名属性来自密码学保证
- 零币(
zerocoin
)系统中存在基础币(例如比特币)和零币,通过基础币和零币的来回转换,消除旧地址和新地址的关联,其原理类似于混币服务 - 零钞(
zerocash
)系统使用 zh-SNARKs 协议,不依赖一种基础币,区块链中只记录交易的存在性和矿工用来验证系统正常运行所需要关键属性的证明。区块链上既不显示交易地址也不显示交易金额,所有交易通过零知识验证的方式进行