张蕾讲故事:比特币的前世今生4

4、  数字货币开始登上历史舞台


张蕾讲故事:比特币的前世今生4


上一节我们讲到,信用卡被引入到了在线支付的领域,由于第三方支付的兴起,逐渐被大家接受。

 

这一节我们聊聊货币系统的使用。

 

以前我们做过对比,使用货币系统必须有个“启动的过程”,但是货币系统的优势是可以有效防止债务违约的风险。

 

其实货币系统还有两个独特的优点:第一就是匿名性。使用货币作为支付手段,只要货币不是伪造的,商户根本不关心你是谁、你的钱从哪里来。但是使用信用卡支付的话,因为信用卡的发行是实名制的,所以银行(信用卡公司)知道你是谁,并可以跟踪你的消费过程。

 

第二个优点是,货币支付可以是线下的,不需要连接网络。而信用卡支付必须有一个联网的刷卡器,有时候你还有会收到信用卡公司的确认电话。

 

比特币作为一种货币,其实并不能完全满足上面的两个特征。比特币其实不是匿名的,虽然比特币系统中使用的地址跟现实中的个人身份没有对应关系,但是聪明的分析师还是可以根据地址的交易记录发现一些个人身份的“蛛丝马迹”。

 

而且,比特币也是不能在离线状态下使用的。不过好的消息是,比特币不需要中心节点,它通过网络的P2P方式进行交易,所以对网络的依赖度不高。现在一些人也在研究比特币在特定条件下的线下支付模式。

 

最早设想将加密学应该到数字货币的人是David Chaum,那是在1983年。为了便于理解,我们先从现实生活中的案例开始谈起。

 

比如,我拿出一张纸,上面写着“任何人拿到这张纸,可以找我换取一元钱”,然后附上我的签名。如果大家认可这张纸,相信我的签名不会被伪造,那么这张纸实际上就成了一种货币,可以用来交换产品,最后拿到这张纸的人可以找我来换取一元钱。其实,银行的支票也是这个原理,支票的历史很短,但是它有银行(或国家)的信用做背书。

 

如果纸质支票的模式可行,那么数字支票+ 数字签名是否也可行呢?(这里的数字支票可能只是一串代码)。 这里遇到了一个大的问题,就是“双重消费”,这是数字货币领域面临的最大挑战。如果你收到了一串代码表示的数字支票和一个数字签名,你有可能把它复制2份或更多份发给别人。实际就是货币被重复消费,而且货币数量被无限放大,这显然不是我们想要的。那么如何解决这个问题?

 

下面是一种可能的解决方案。当我发行数字货币的时候,我在支票上填上一个唯一的***。你收到这个数字货币后,验证我的签名,然后给我打电话,询问这个***是否已经使用。我有一个笔记本记录所有的***,如果***使用过,那么表示这个货币已经无效;如果***没有使用,表示这个货币有效。同时我会把这个***标记为“已使用”,并且给你发送一个新的***。

 

这样通过登记-验证的方式,确保数字货币不会被多次使用。但是这种方法非常麻烦,而且需要建立一个中心服务器,负责***的登记和验证工作。更重要的问题是,这种方法使得数字货币不再是匿名的了,因为每次你打电话确认***的时候,我就可以记下你的名字,这样我就可以跟踪货币在哪里被使用?流通到谁的手里了?

 

正因为如此,David Chaum做了很多创新和突破。他希望得到:既要保证数字货币的匿名性,又要能有效防止双重消费的风险。他提出了这样一个思路:当我发行一个新的货币是,由你(接受方)填上一个随机的***,然后把这个***隐藏起来(我看不到),然后我再签上自己的名字。这种方法在加密学里面称为“盲签名”。这个***你可以选择长一点的、随机性的,以保证唯一性。而且我也不担心你选择重复的***,因为一旦***重复,相当于这个货币就无效了,受损失的还是你。

 

这是第一个真正意义上的数字货币协议。它虽然有效,但是仍然需要一个中心化的、权威性的服务器(比如银行)来提供验证服务。如果这个服务器出现宕机等例外情况,所有的支付都要暂停。

 

随后的几年,Chaum又联合其他两位加密学专家Fiat Naor 致力于双重消费的监测研究,提出了一个复杂的加密学过程。每一个数字货币交易的时候,都会附带交易人的个人身份信息,只不过这个信息是加密的。其他人,包括商户和银行都无法解密。当货币交易时,接收者要求交易人提供这个加密信息的一个随机的子集的解密,当然仅仅通过这个解密是无法获得交易人的身份信息的。当一个货币被双重消费时,两个接收人从银行中都无法取到钱,银行就把他们各自手里的解密信息合并在一块,可以**出交易人的身份信息。


通俗的讲就是,如果交易是合法的,个人身份信息是加密隐藏的;如果出现非法交易,可以**出交易人的身份信息,从而通过法律等其他途径来解决双重消费问题。

 

多年来,很多加密学专家都在这一领域研究,并从多个角度提出改进意见。比如,在Chaum-Fiat-Naor的算法中,如果你有100元钱,你准备购买一个75元的商品,对方是无法给你找25元零钱的。在 OkamotoOhta 研究中,他们就提出了利用“Merkle trees(二叉树)的方式,使得数字货币可以从整钱分解为零钱。在我的网络视频课程中,会专门讲到Merkle trees的数据结构。

 

交易效率方面,Chaum-Fiat-Naor的算法也有很多提升空间。最近在零知识证明(zero-knowledge proofs)方面就取得了丰硕的成果。零知识证明也被广泛地应用在比特币中,在我的网络视频课程中也会详细解读。

 



下一篇,我将介绍第一个真正意义的数字货币的诞生。欢迎关注。




我正在进行为期三个月(12周)的网络视频教学:《比特币和数字加密货币技术》 将详细讲解比特币和区块链的核心算法和技术实现。请加我个人微信(161555)咨询,或者通过下方“阅读原文”直接报名。