一个比特币是怎么来的?这一节我们会得到答案。
本系列历史文章列表
从零开始区块链:对等网络与电子现金是什么?——比特币经典论文研读 (1)
从零开始区块链:如何防止一笔钱花两次?——比特币经典论文研读 (2)
从零开始区块链:如何证明计算机的工作量?——比特币经典论文研读 (3)
7.工作量证明(2)
8.网络
这部分内容讲了比特币网络运行的基本规则:
(1)所有交易全网广播。
(2)每个节点把新交易纳入一个块中。
(3)每个节点计算对应块的工作量证明,就是找到那个哈希值。
(4)如果有节点算出了哈希值,即完成了工作量证明,就全网广播。
(5)如果有一个块所有的交易有效,并且没有出现双花的情况,节点接受这个块。注意前面说过每个节点会有所有的网络交易,而且每个交易有签名可以验证。
(6)节点认可一个块的方式,就是把这个块当成上一个块,继续寻找下一个块的工作证明。下一个块数据字段里面有一个“前一块哈希值”就把认可的哈希填进去。
除此之外还有其他几个要点:
(1)节点只认网络中最长的那个链条作为正确的结果,然后继续延长这条链。
(2)如果在同一时间,同时有两个节点发现了新的不同块,广播出去,那么有的节点先收到第一个,有的先收到第二个,怎么办?该干嘛干嘛。继续在先收到的块上挖矿,但是保存另外一个分支。等到下一个块出现的时候,总会有一个变得更长,那就到那个时候,换到更长的块上去。
(3)不要担心丢包的问题,缺的总是可以通过各种方式补上。
9.激励机制
激励机制一直是P2P网络研究的重点问题[14,15]。只要是去中心化,就会面对激励机制问题。为什么?因为你让很多人干原来一个中心就能干的事情,一个是我为什么要做这些事情,对我有什么好处?二是,如果参与的人多,搞小动作的人就会出现。激励机制的出现就是设计了一套体系,来激励大家好好干,别搞事。
P2P网络原先设计的是“我为人人,人人为我”的原则,但是,由于经常会出现部分节点“搭便车”的情况,网络运行并没有设计的那样好。比如在BT下载里面,就会有“吸血鬼”的节点,只从其他节点下载,却从来或者很少上传。这样最后就会出现社会科学里说的“公地悲剧”[16]。
公地悲剧指的是,在共享资源的系统中,每个人根据自己的利益最大化独立行事,但是却最后这些行为却导致和共同利益相反的结果。在P2P网络中,如果吸血节点越来越多,那最后这个网络就会出现拥塞以及崩坏。在社会环境下,每个工厂都对外排放污水,最后生态环境破坏,没有人逃得掉。
比特币里的激励机制如何设计?
(1)块内第一个交易,由块创始人产生一个新的币。这样可以激励节点参与到P2P网络的维护中,也可以把新发行的币流通到市场中。因为在比特币的场景下,没有中央权威机构发行货币。这样一来,网络中出现的币,以恒定的速度发行,就像黄金矿工挖出黄金一样;只不过比特币消耗的是电能与CPU的算率。
(2)激励机制还包括交易手续费。如果交易的输出值小于输入值,那么这个差价就是交易费,算在包含这笔交易的块下。而一旦币进入流通以后,激励就主手续费为主,而且可以不受通胀影响。
(3)激励机制让节点选择做一个诚实的节点,不干坏事。因为如果一个攻击者组织了超过诚实节点的算力,就面临这个选择:要么选择用于欺诈其他所有人,于是可以把花的钱盗回来;要么就是用来生成新的币。不过算下来,应该还是造新币划算,因为既然已经有一半以上的算力,其实自己可以赚到超过其他所有人更多的钱,按照规则行事,对自己有利;否则把整个网络搞坏,自己留一堆币,也没有用了。
所以比特币的激励机制就是用“币”这个方式,简单直接地对节点进行激励。这个激励效果有多好?因为知道挖矿可以赚得比特币,现在有专门的人从事矿机的生产与制造,已经形成了相当规模的产业。如此看来,激励效果相当之好……
总结下来,这一节就两个主要议题:
(1)比特币通过哈希碰撞的方式进行挖矿
(2)比特币作为一种激励手段鼓励节点参与到网络运行中
参考文献
[14]Ma R T B, Lee S C M, Lui J C S, et al. An incentive mechanism for P2P networks, 2004[C].
[15]Zhang K, Antonopoulos N, Mahmood Z. A Review of Incentive Mechanism in Peer-to-Peer Systems, 2009[C].Oct.
[16]Hardin G. The tragedy of the commons[J]. Journal of Natural Resources Policy Research, 2009,1(3):243-253.
,