首页 比特币是一条数字签名链
文章
取消

比特币是一条数字签名链

老实说,我在第一次读比特币白皮书,看到第二章交易这部分的时候,就没太看懂。原因是我对其中出现的一些背景知识,如数字签名、公钥等不太了解(哈希还是知道的)。

虽说我还是学计算机出身的,但也很惭愧,我很明显是属于学艺不精的那种类型了。好在我的脑子也还能用,日子也还长,我还有的补。于是就有了前面几篇文章,我分别讲了哈希、非对称加密(公钥和私钥)以及数字签名。现在,带着这些背景知识的铺垫,我终于可以引出比特币的定义了。

引用原文的话就是:

“We define an electronic coin as a chain of digital signatures.”

即“我们定义一枚电子货币就是一条数字签名链。”

这里说的电子货币当然就是比特币。交易的发生过程我们在前边也提到过,就是“每个拥有者都通过将上一次交易和下一个拥有者的公钥的哈希值的数字签名添加到此货币末尾的方式将这枚货币转移给下一个拥有者。收款人可以通过验证数字签名来证实其为该链的所有者。”

这里再次请出我们熟悉的那张图来描述这条数字签名链:

交易

通过这样一条数字签名链,一枚比特币从诞生到现在的所有交易记录都被串联在了一起。链上的最后一个公钥即是该枚比特币现在的所有者。通过这样的设计,收款方可以轻易验证这笔交易的真实性,即付款方真的拥有这枚比特币。而一旦交易真的最终达成了,那么数字签名链上的最后一个公钥就是收款方自己的公钥了。数字签名链的变长,或者说链上最后一个公钥的变更,象征着这枚比特币所有者的变更。

对比我们日常生活中发生的交易,比如我给你1块钱这样的一笔非常简单的交易。比特币的数字签名链设计可以让你相信我给你的那1块钱是真的,而不是伪造的假钱,而且我真的拥有这一块钱。

在现实世界的现金交易中,我给你一块钱纸币或者硬币,而你只要能确信那1块钱是真的,那就可以放心收下了,这笔交易就算达成了。因为我把纸币或者硬币交给你之后,我就真的失去了这张纸币或者这枚硬币。

但在数字世界中,钱不是一个实物,而是一个数字,而数字是可以复制和篡改的。就像我把一个文件通过网络发给你之后,这个文件是被复制了一份给你的,我并没有失去它。我可以接着再把这个文件发给另一个人。

对比电子货币来说,我实际上可以把一枚电子货币转给两个人,甚至更多。因为数字签名链可以证明我真的拥有这个文件(货币)的所有权,所以我发起的每笔交易都是可以被接收者验证通过的。但你无法知道我有没有把这个文件(货币)又发给了另一个人。这就是双重支付的问题,或称双花问题,即把一枚数字货币重复支付(花)两次。

一枚电子货币,或称数字货币必须要能解决双花问题才能可用。

对于我们现在的金融系统来说,这个问题很好办。因为有我们信任的中介,即中心化金融机构(银行、微信、支付宝等)来避免我们把钱花两次。比如我的账户上有1块钱,我转给你1块钱,那么我的账户上的数字就会立刻-1,变成0了。中介会及时的对我的账户余额进行更新操作(记账),以防止我可以一直花那1块钱。而这个账本就是中心化金融机构自己的数据库,记账就是对这些数据库进行操作。

而在比特币这样的去中心化系统中,没有中介来及时地记账。而比特币需要能让收款人知道自己要收到的比特币的上一个所有者没有进行双花,即自己的交易是唯一有效的。所以比特币网络的账本,即所有交易记录,应当是公开的。

由此可见,传统的中心化金融系统中,账本和记账权是掌握在微信、支付宝和银行手中的,只有他们能看到所有的交易记录(账本),也只有他们能记录交易(记账)。我们只能看到自己的交易记录。

而在比特币网络中,账本是公开透明的,所有参与者都可以看到。只要收款方在之前的交易记录(账本)中没有查到同样的交易,那么就可以认为没有发生双花问题。所以对于比特币网络中的账本(交易记录)来说,它不仅需要是全部公开可查的,而且也必须是有明确的先后顺序的。这个公开、有明确先后顺序的账本就是区块链。

账本的先后顺序取决于记账的人如何记账。那么比特币网络中的账本是由谁记录的呢?就是所有的参与者。每个参与者其实都可以参与记账。每个参与者参与比特币网络,其实就是在自己的计算机上运行一个比特币软件,那么你的计算机就成了比特币网络上的一个节点。该节点会从网络上下载区块链数据(即账本)到本地。有了账本,你也就有了参与记账的可能。

我们容易想到,如果网络上每个人都能记账,那么100个人就可能会出现100个不同的账本。这就像是班上有100个同学,这100个同学都记录一堂课的课堂笔记,记录出来的结果肯定是各不相同的。如果我们只能有一个课堂笔记来作为拿到学校里展示的模范,那么我们就需要这100个同学对一件事情达成共识,即“谁的课堂笔记是最符合真实情况的”。

说回到比特币。虽然所有参与网络的人都可以进行记账,但最终整个比特币网络只能承认其中一个账本。所以所有参与者还需要抢夺记账权,而这个抢着记账的过程就被称为“挖矿”。(注,目前在大陆地区进行虚拟货币挖矿是违法的。)关于记账的具体过程我们后边再讲。

最终,比特币网络中被所有人承认的账本就是所有的参与者对之前所有交易收到顺序的单一历史达成的共识。有了这个共识(被认可的单一账本),不仅所有交易记录可查,而且先后顺序明确。这样,双花问题就被解决了。

可见,中本聪是为了解决比特币的双花问题,所以提出了区块链。但区块链的伟大之处不仅在于它能够解决虚拟货币的双花问题。实际上,区块链解决了计算机领域中曾经被认为是无解的“拜占庭将军问题”。即在一个去中心化的点对点系统中,众多节点之间彼此不信任的情况下,如何达成一致性(共识)的问题。

讲完了比特币是什么,接下来就要到我读白皮书时感到最惊叹的部分,即区块链,可以解决拜占庭将军问题的POW共识机制、激励机制等。我们下一篇文章见。

本文由作者按照 CC BY 4.0 进行授权

货币的三种基本职能

区块链:去中心化账本