零币协议是什么?-4K财经

一、定义

《区块链行业词典》:零币协议是一个发布于2013年的独立协议,原先的目的是为了在混币技术、环形签名技术外增强加密货币的匿名性,零币协议使用零知识证明实现完全匿名,通过一个集合的托管池(Escrow Pool)删除交易的历史记录。零币协议有两个主要部分:“铸币”使有交易记录的匿名化并置于托管池;通过零知识证明创建一个没有交易记录的新币,并销毁托管池中的币。

零币协议的出现是由于比特币满足不了一部分人对于加密货币匿名性的需求,在比特币的支付网络中,所有节点共同维护的那个公开账本为全世界提供了一个高度分散的机制来创建和传输世界各地的现金,也就是所谓的增加全球价值的流动和传递。但是比特币的设计机制就注定其有一个无法避免的缺陷:所有的交易记录记录在一个公开的账本上,这个公开的账本任何人都可以查看,那么就可能会被追踪到任何地址的进出明细,无论这笔交易的时间是多久之前,用一句话来说,就是匿名性很差。在比特币的交易网络中,如果要确认一笔交易,通过两个方面来进行了:1、所有到比特币交易都是使用公钥作为识别符,而这些公钥不与个人的地址或者用户挂钩 2、持有比特币的人可以产生很多的公钥(“身份”)来抵御其他用户的追踪。但是这样的设计机制并不能确保交易不会被追踪,这些交易信息会让数据挖掘者把单笔的交易信息,相关身份信息以及其他与交易有关的东西都联系起来用以追踪使用比特币的用户的活动痕迹。既然对于交易完全匿名性存在真实的市场需求,那么就会有人来满足这个需求,之前文章提到的混币服务就可以在一定程度上解决加密货币的匿名性问题,但是他匿名的程度还不够深,而真正实现匿名的是今天要说的零币协议,如果把混币服务比作是将背景图灰,让人无法简单的找到相应的交易,那么零币协议就是将背景图黑,让你彻底找不到这笔交易,以及交易背后的人是谁。

二、零币协议

零币协议(Zerocoin protocol )发布于2013年,目的是为了增强比特币的你明细以实现隐私的保护,但是作为一个独立的协议,他也可以用来保护其他的加密货币币种,加里-勒和伯乐明-因索姆(Poramin Insom)就使用了该协议,发布了Moneta密码学货币的测试网络。

想要理解零币协议,需要先来复习下之前说到过的零知识证明,零知识证明是指在不向验证者提供任何与个人有关信息的基础之上,就可以使验证者相信某个论断是正确的,即不通过泄露任何的个人信息就可以证明个人对于账户具有确实的操作权。在零币协议中使用到的一个技术概念叫做:zkSNARK(zeroknowledge surrinct noninteractive arguments of konwledge)。基于这个技术概念进行的协议设计使得系统无法通过暴力破解实现,进而就可以实现在计算上不可行的目的。

零币协议的基本框架依然使用比特币的系统,毕竟是基于比特币系统设计的一项满足特定需求的产品。在此基础之上,零币协议利用zkSNARK技术构造了一个去中心化的混币服务中心,通过mint和pour的循环操作就可以完成匿名性,所谓的mint是指用户向使用一定数额的零币兑换等值的确认(commitment),在记录列表写入确认的过程中,其中的确认必须由1个一次性的序列号加上用户的私钥签名,在通过哈希运算才可以获得,而且这种计算由于哈希计算的特殊性是不可能实现逆转的。零币的发行方式以及基本的获得方式与比特币一致,也需要通过挖矿获得,同时矿工获得的零币是可查询的,在系统中使用零币也需要进行数字签名,这种单纯的使用情况下,零币也不能实现完全匿名性。只有通过mint的操作得到的确认与使用者的地址就无关,此时如果用户想要使用这些经过mint确认的零币,与在比特币的系统中对于比特币进行操作不同的是,零币持有者还需要进行两个额外的操作:1、给出经过mint操作且进行确认之后得到的序列号 2、利用zkSNARK协议来证明自己知道生成存在于确认列表中的某个确认的用户私钥,这样的机制下,用户就实现了可以在不完全暴露身份的情况下,将这个币进行支付操作。

将上面的原理简化些来说,可能更便于你的理解:现在你手里有一个硬币,你不想让任何人知道你的币是如何花出去的,现在你进入赌场,在百家乐的桌前坐下,此时这个百家乐有很多人跟你一起玩,只不过你们有协议,任何人的钱扔进去之后,每个人对于整个盘面上的钱都有雨投入之前对应的支配权,你说我有一块钱在里面,现在将其支付给旁边给你端水的waiter,虽然你有一块钱的支配权,但是现在支付出去的一块钱并不一定是你扔到池子里的一块钱,没人可以确认,也并没有人关心,毕竟接受到钱的人确认你给的是钱交易就已经完成。