一个比特币是怎么来的?这一节我们会得到答案。
本系列历史文章列表
7.工作量证明(2)
展开全文
接第3篇的铺垫,这里就很好理解了。
(1) 比特币采用SHA256的标准做哈希运算,平均的工作量与0比特位的数量指数级增长。
(2) 为了时间戳的考虑,在计算每一个块的哈希值的时候,增加了一个随机数(nonce)。随机数每次加1,生成哈希值,检查是否满足前缀是若干个0的要求。CPU需要做大量计算才能得到满足要求的解。如果要块的内容修改,那就需要重新计算,找到满足条件的哈希值。这里面引用的就是哈希的细节敏感特性,当你修改了内容,哈希值就变化了
(3) 工作量证明还解决了一个“集体决策”的“大多数”问题。在网络中,到底用什么来代表“大多数”?如果用一个IP地址代表一票,那有很多IP地址的人可以操纵结果。于是作者采用了“一个CPU一票”的方式来代表大多数的意见。因为链的生成是需要工作量的,于是最长的那一条链,必然就拥有最多的工作量,也就是代表大多数人的意见。而工作量其实就是由CPU来计算的,于是这样就落实了一个CPU一票的精神。这里作者的逻辑就是,选择一个相对有难度的指标,计算工作量,然后把大多数人的工作量攒在一起,这就形成了一个共同的意见。不过作者没有料到的时,现在也有很多人拥有大量的CPU,而且不止是CPU,已经有专门的芯片了……
(4)如果大部分的CPU算力在好人手里,那大家齐心协力一起算,工作的积累就会很快,链的增长速度超过其他链。如果要修改一个过去的块,攻击者要把这个块之后的其他所有块都重新做一遍。作者在后面会证明,随着链的增长,成功概率不断减小。你可以理解为:历史的潮流浩浩荡荡,如果你要逆潮流而动,那你要比潮流还更有能量。
(5) 综合考虑,块增加的速度会不断调整,如果增加速度太快了,计算工作量的难度会增加。
工作证明这部分就结束了。我有两点感想:
(1) 你是否发现,在阅读论文的时候,如果你基础工作打得扎实,哪怕需要花费一些时间,但是效果是可以复利到的。比如昨天用了很大的篇幅探讨HashCash,弄清楚基本情况以后,再探讨工作量证明反而简单了。
(2) 中本聪在设计比特币的时候,就是想用CPU分散的方式,构造没有人能操纵的结果。但是比特币发展至今,越来越多的算力掌握在少数人的手里,这倒也是有意思的事情。现在所谓的挖矿其实就是算出哈希值的隐喻表达。
(3) 基于工作量证明的机制有些人认为过于浪费资源,于是有新的机制开发出来,不需要进行挖矿工作,这个以后再议。
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.
★★★★★
★★★★★
▼
本文原文:http://www.scalerstalk.com/1308-Incentive
比特币属于一种互联网虚拟资产与所有比特币算财产吗的货币不同比特币算财产吗,比特币不依靠特定货币机构发行比特币算财产吗,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为并使用密码学的设计比特币算财产吗;比特币,狗狗币,数字藏品不是企...
1、比特币客户端钱包比特币网络web钱包比特币手机和pad钱包比特币客户端钱包比特币客户端钱包是一个安装到pc上比特币pc钱包的软件比特币pc钱包,常见的客户端钱包有官方钱包bitcoinqtMutiBit等等这两个钱包都有windowslinuxmac版本我们。 2、通过生成用户参与交易所必需的公...
比特币史诗级暴跌比特币短时狂跌,是什么原因导致比特币短时狂跌的先来看下美股美联储会开加息会议比特币短时狂跌,相信大家已经提前预见,至少是加息50点起步大家都明白cpi数据远不及预期,从一直上涨的国际油价就能联想到大家要有心里准备,不管美股如何波动。 市场关注度越来越低随着国家经济社会的不断发展,越来...
比特币挖矿机就是用于赚取比特币的计算机这类计算机一般有专业的挖矿芯片比特币挖矿协议,多采用安装大量显卡的方式工作比特币挖矿协议,耗电量较大计算机下载挖矿软件然后运行特定算法比特币挖矿协议,与远方服务器通讯后可得到相应比特币,是获取比特币的方式之一应答;比特币挖矿就是通过挖矿节点,然后比特币挖矿机电脑...
比特币mac挖莱特币的出现,让一些虚拟的网络挖矿走俏,今天一起来看一下莱特币如何挖吧打开百度,然后在百度里搜索WeMineLTC,打开后,进入网页,进去后,大家会看到,全是英文的页面,这个关系没有关系mac挖莱特币我们可以一一仔细找一下进入。 2014年7月,苹果重新上架数字货币钱包应用,但上架的只...
这种病毒利用各种加密算法对文件进行加密,被感染者一般无法解密,必须拿到解密的私钥才有可能破解攻击对象勒索病毒一般不会攻击任何人,但一部分针对企业用户如xtbl,wallet,一部分针对所有用户该类型病毒的目标性强比特币利用病毒;三是,利用“勒索病毒免疫工具”进行修复用户通过其他电脑下载腾讯电脑管家“...