比特币的匿名问题与解决方案(零知识证明)

我一般不用微信支付,我压根就没有支付宝,我在能不刷卡的时候就不刷卡,我喜欢用现金!因为它是匿名的(我没有那么大额度的支付,所以不会动用武装力量关联我个人和纸钞上的数字代码)。

诉求

你以为我很土吗?不,我从事最新潮的互联网行业,我购买最新最没人用的电子设备,我喜欢想象十年后的东西,当然了,我确实很土,比如我两年不买衣服,几年不理发,从来都是在光头和长发之间徘徊,多年不体检,大病是小概率事件,得了治不好,小病不用治…其实我想说的是,我讨厌泄漏隐私,特别是我不想把我自己的任何信息交给银行,商店,医院,公司,甚至老婆,还有我妈!所以,我选择匿名,所以我尽可能逃避任何的证件,我几乎从不参加任何形式的聚会,除非万不得已,我尽量少和其它不相关的人产生交集。我善于选择不与人对话,当我的女儿哭闹抱怨时,我怕落入她社会工程学的圈套产生不必要的花销,所以我选择闭嘴,不理她,直到她安静!当然,我也有自己的圈子…

  OK,步入正题。

  你很了解比特币,既然如此,你肯定知道在区块链上,你的每一笔买卖都会记录在案,是吗?

  但这不重要,因为在比特币之前,在你使用法币的时候,你的每一笔交易也是记录在案的,只是那些信息只存在一个地方,即银行!比特币不同点是,它存在区块链上,而区块链是全世界所有人共享的,so,原则上每一个人都可以知道谁在什么时间什么地点(追IP即可)向谁付了多少钱…如果收款方的地址被绑定到了一家卖充气娃娃的店家,你怎么和你老婆解释?!

  所以,比特币必须匿名!

  嗯,比特币一开始就声称它是匿名的,所以才有了所谓的比特币钱包,这玩意儿就是一串数字,和个人没有任何关联,你可以随时随地随意生成。但是人们还是可以采用一些不是那么技术的手段关联比特币钱包个人。这里说的可能并不直观,但是确实是事实,如果你发现一个钱包往另一个钱包转币,当天正在下暴雨,那么收款方是个卖雨具的概率就会加大,这就是旁路猜测…侦探不是每天都在干这个吗?

  所以,为了匿名,我们需要学点洗钱的艺术!洗钱就是为了匿名,而反洗钱就是为了追踪!

  怎么洗钱?以10块钱为例,简单说就是把这张10元的纸钞扔到一个钱堆里,然后你随便再拿一张10元的纸钞走人,这就是洗钱,按照概率解释,任何人无法知道你当初放进去的那10元钱被谁拿走了,也没有人知道你拿走的那10元钱是谁放进去的。好了,这个时候,你的同伙分批次放进去3.5个亿,然后你分批次取走3.5个亿,这钱就无法追踪了,算是洗白了…

  这一切,比特币如何实现?


零币

以下的内容算是如何用技术的手段实现上述的想法。

  比特币挖矿其实是在做一个认证,挖矿行为并不要求交易单到底是一个什么形式,只要交易单能以某种方式证明自己即可。在标准的比特币系统中,交易单证明自己的方式就是解锁脚本,因为只有自己的公钥才能验证自己的签名。

  理解了挖矿行为与比特币无关后,我们来看一下如何洗钱。我假设用户A希望洗他的1个比特币,他需要做如下操作:
1. 把这个比特币放到一个堆中;
2. 从这个堆中随意取出一个等价的比特币。

为了完成这件事情,A需要创建两个交易
1. 把自己的1个比特币放进堆,并领取一个取款凭证;
2. 将来的某个时候,凭借这个取款凭证兑换1个比特币。

其中,第一笔交易的输入是自己的1个比特币,而输出则是一个只有自己知晓细节凭证,它可以是一个摘要信息,该摘要由两部分生成:一个序列号S和一个随机数R。该摘要信息记为:

C = H ( S , R )

好了,现在 C 就是所谓的凭证了。因为 C 由仅仅由A知道的S和R生产,所以没有任何人可以生成 C ,这是现代密码学保证的,不用质疑。

  矿工要做的,就是仅仅把这个 C 纳入到区块链中,注意,仅仅是 C 而已,没有输入。

  接下来,当有人要用凭证去赎回一个比特币的时候,此人因为有自己的随机数R以及序列号S,因此它能计算出 C ,该 C 确实处于区块链中,因此此人就能赎回一个比特币,而该比特币和之前的那个,已经没有任何关系了!

  为了使得这个系统可以运行,必须是单位交换,系统中只能一1个比特币为单位兑换,这样所有比特币持有者的兑换行为将完全一致!

  以上的做法已经被叫做零币的币种使用了,其核心就是零知识证明机制。所谓的零知识证明指的就是不透露自己的任何信息,却能证明自己拥有某个属性的一种方法。在现代密码学中,信息摘要是其典型的应用场景之一。


中心化/去中心化

中心化是实名至少也是化名的世界,只有去中心化才是匿名的世界。

猜你喜欢

转载自blog.csdn.net/dog250/article/details/79823708
今日推荐