第一篇关于区块链的文章 -- 比特币和区块链的基础知识

三个星期之前出差西安的途中,花了4个小时阅读了一篇关于区块链基础知识的文章,后来又花了将近一个礼拜写下了这篇笔记,总算能够理解了一些区块链的皮毛。

提起区块链,不得不提到另一个更早进入视野的词汇:比特币。好比娱乐圈永不停歇的造星运动,比特币在今天已经不是电子货币唯一的明星,但其仍然是天王级的。比特币算得上是区块链1.0版本的商用案例,了解了比特币的前因后果,对理解区块链以及未来更多商用模式,是有帮助的。

先用一句话了解区块链是干什么的

其实用一句话来介绍还挺有难度的。区块链技术,本质上是为了低成本的解决人们之间的信任问题。额,好虚,用我司惯用语就是,没干货啊!那好吧,别局限一句话了,抄袭一段别人的概括(原文链接):

  • 从表现手法上看,它是一个分布式的账本
  • 从技术的角度看,它是一个分布式的链式数据库
  • 从用途的角度看,它是一个可靠的信用载体
  • 从用户的角度看,它是一个不需要第三方的信息共享平台
  • 从字面的意思看,它是一组区块,用链建立起连接关系的系统
  • 从社会的角度看,它是一个解决了信用问题的基础设施

恩,稍微具化了一点,先有个大致印象,接下来我希望用我记录下来的一些笔记,和大家一起搞明白区块链,或者说比特币的基础认知。

这篇文章的大致脉络

1. 比特币的诞生
2. 比特币的生产制造与交易过程(这里包含了大量的基础知识,是全文的重点)
1) 比特币的底层基础:加密
2) 概述公钥、私钥、钱包、比特币的对应关系
3) 比特币与挖矿(这里涉及一个关键名词 -- 共识机制,这很可能会另写一篇文章)
3. 比特币的难题
1) 双花问题
2) 矿藏枯竭
4. 区块链的未来展望(仅仅是展望,每个领域都有丰富的软文,跟房地产一样,看涨看跌争斗不息。以后随着不断学习再针对领域单独写文章吧)

必须说明,这篇文章有些文字或段落源自互联网,请原谅我在这个随意转发不尊重知识产权的网络里确实不知道每一处原文作者是谁。我可能会对部分文字进行重新编排,或修改为我喜欢的方式。因此特先声明,这些原创的知识点与思路都属于原文作者,请大家尊重知识产权。

好了,进入正题。


一、比特币的诞生

不知大家还记否,房价是从什么时候开始丧心病狂的暴涨的?大概就是2008年之后。2008年发生了什么?奥运会!没错,但还有一件大事就是全球性的经济危机。而中美两个超级大国最主要的应对方案是什么?就是大家耳熟能详的“印钞机模式”。我想导致我很久买不起房的重要原因(根本原因还是自己比较怂)是那4万亿大部分流向了以房地产为核心的基础设施的建设,于是1-2年之内,通货膨胀在生活方方面面体现出来,而房价则更是一江春水向东流,永远不能再回头了。

问题来了,印钞机谁能够开启呢?就是各国的央行。在金融领域,央行掌握了绝对的力量,掌握了经济体的生杀大权,只要他想,分分钟可以让你的财富灰飞烟灭。这让天生追求“Freedom”的互联网Hack很不满,他们希望希望用去中心化的互联网技术来颠覆这种中心货币权威。于是,一个(也可能是一群)叫做中本聪的家伙横空出世,发表了一篇牛逼哄哄的论文,Bitcoin:A Peer-to-Peer Electronic Cash System,宣告了比特币的诞生。

先说说现有的中心化的支付体系:

  • 第一,货币政策是由各个国家中央银行规定的,这就导致了可能的货币滥发,中本聪想要建立一个没有中心机构、并且规则明确的货币供应方式;
  • 第二,现有的支付体系是中心化的,比如支付宝所扮演的就是中心化的机构,因为买家与卖家彼此的不信任,必须要一个中心化的机构来扮演信用中心,大家都与信任中心发生联系。

这样做会导致两个问题:一是信任中心权力越来越大,二是我们要为这种信用提供费用

而中本聪要建立的货币体系,本质上就是要解决上述的问题,因此比特币网络最重要的特征就是:去中心化、公开透明,从技术上解决点对点信任问题;并且将比特币的总量恒定在2100万枚,从而避免可能的通胀。

上述就是比特币的诞生缘由。没有压迫,就没有反抗的故事一遍又一遍的在Hack身上上演着。这个世界存在着千千万万个中本聪,技术就是他们的武器,是他们内心自由的源动力。所以,身为一个北京昌平回龙观社区的村民,我真心的呼吁每个(甚至是每对)IT父母,让孩子从小就学习IT技术,回龙观怎么就不能成为中国的帕洛奥图?!

二、比特币的生产制造与交易过程

去中心化,意味着你与陌生人之间的转账支付是直接进行的,没有任何第三方的担保,在已经习惯银行、支付宝、微信等第三方信任平台的今天,你能想象吗?让我们看看中本聪的设计思路。

中本聪设计的去中心化比特币网络中,每一个用户自己都有一个账本,这个账本记录了从第一枚比特币诞生以来的所有交易记录。Alice要向Bob转账5个btc,会在网络上喊一句“Alice要转账5btc给Bob”,Tom听到Alice的声音,掏出自己的小账本,检验了一下Alice的账户,发现Alice有5个btc,便写下Alice向Bob转账5个btc,同时也喊出“Alice要转账5btc给Bob”,这样一传十十传百,直到每个人都把这笔交易记录在自己的账本上,每一个账本都是一样的,这就是所谓的去中心化账本,它几乎不可能被摧毁。传统网路中,如果银行体系被破坏了,那么大家的账目就混乱了。但是在比特币网络中,每个节点都明确的记录了中本聪开比特币以来的所有账目,即使节点几乎都被炸毁了,只要还剩一个节点,就可以还原出所有记录,除非瞬间摧毁整个互联网。

上面描述的是一个最粗略的过程。在去中心化网络中,所有人都是不可信任的,因此在实际的转账过程中,第一件要干的事就是验证这条消息的有效性,否则人们在网上乱喊岂不天下大乱。形象点说,就是Alice在发布这条消息的时候,给消息签个名。其他人收到消息后,对照一下“笔迹”,发现确实是Alice的,就认可这条消息。而签名的验证过程,就涉及了比特币和区块链的技术基石 -- 加密算法。具体说,是椭圆曲线数字签名算法,这是一种非对称加密算法。

1. 非对称加密算法

在了解非对称加密算法之前,先看看什么是对称加密算法。对称加密的关键在于双方要实现约定加密方式。但如果事先无法约定或者这种加密方式被敌方所窃取或者所破解了怎么办?这就是我们在很多谍战片里的情景,一旦密码本丢失,整套密码系统就完蛋了。比如我要传递一个秘密数字给佐尔格,加密方式就是给这个数字加上33。当然佐尔格要知道这个加密方式,当他看到写着223这个数字的纸条的时候,他就会用223减去33,等于190。这个190就是我想传递给佐尔格的数字。佐尔格看后非常震惊,马上通过秘密渠道告知斯大林:德军要用动用190个师闪击苏联。《潜伏》中余则成天天晚上一边听电台的广播,一边拿本小人书找字的方式就是对称加密,一旦这个规则被李涯知道了,李涯也能蹲守在电台边上,窃听我党的秘密了。

因此对称加密算法的安全性比较低,这不适合用在遍布坏心眼的互联网世界中。有没有一种我明告诉你加密方式,你就是破解不了干着急的方式呢?

有的,这就是非对称加密。

先说点枯燥的算法描述:
非对称加密算法有一个解密方式A与加密方式B,要传递信息M,使用加密方式B进行运算,得到加密信息X=f(M,B),这个过程的关键在于即使知道加密方式B和加密后得到的信息X,依然无法算出原始信息M,而原始信息M=f(X,A),即原始信息必须使用解密方式A算出。这里的A称为私钥,B称为公钥。这就是非对称加密采用的“公钥加密,私钥破解”方式,而传统的对称加密就是加密和破解用的是同样的密钥。

有一个小例子,或者说一个小魔术,你可以拿来骗骗自己的女朋友、老婆或小情人。你随便想一个三位数,但你别直接告诉我,而是拿计算器把这个三位数乘以91,然后告诉我结果的最后三位就行了。然后我就知道你想的那个三位数是多少了。

比如,你想的是521,然后用521*91=47411,你把411告诉我。而我心中默念咒语,不一会便猜出你想的数字就是521!

其实,我的咒语就是拿你告诉我的411乘上11得出4521,这个结果的后三位就是答案!

这个神奇咒语的背后,其实是一个简单的数学知识,也可以用于理解什么是非对称加密。“91+后三位”就是公钥,我无论是对女朋友,还是对老婆,还是对情人,都会告诉她这个加密方式。你用公钥91进行了加密传送给我,而“11+后三位数字”就是我的私钥。咱们脑补一个场景,如果这个私钥被你的老婆知道了,当她检查你的微信时,发现一个陌生女子给你发了一个411,后果你懂得。因此私钥务必是要好好保存滴。

这就是“公钥加密,私钥解密”的用法了。

小彩蛋:
再说一说上面提到的这个简单的数学知识。为啥“91”和“11+后三位”组成的公钥私钥这么神奇呢?因为91乘以11等于1001,任何三位数乘以1001的后三位就是三位数本身。有没有感叹神奇的数学?

同样,聪明的你有没有发现任何四位数乘以10001的后四位就是四位数本身?那是因为同样的道理: 73*137=10001。

因此聪明的你和小情人约定了新的公钥和私钥,继续你们的维多利亚秘密……

当然,上述仅仅是非对称加密的极简示例,比特币签名与认证过程中用到的椭圆曲线算法则是一种高科技。这种算法中,不但有公钥加密、私钥解密,还有私钥加密、公钥解密,私钥可以推出公钥,但公钥推不出私钥的能力。咱们记着上面加粗的这小段文字,在下面理解比特币转账过程中用得着。

2. 概述公钥、私钥、钱包、比特币的关系

在现实生活中,我们都有自己的钱包和银行卡,而一个比特币的用户自然也会有一个钱包,这个钱包下面可以生成一大堆地址和对应的密码,由用户自主选择一个公钥来进行收款(甚至每一笔交易都使用一个新的公钥)。在比特币的世界钱包里的地址叫公钥,把对应的密码叫私钥。我们可以简单理解公钥就是我们银行卡账号,私钥就是银行卡密码。任何人只要有这个私钥,也就是密码,就可以操纵对应银行卡,也就是公钥里的比特币。另外,在比特币世界中,每一个人都可以有茫茫多的银行卡,每张银行卡都不与任何身份信息绑定,这就是比特币的匿名性。

下面这段话很重要,再把上一小节的椭圆曲线加密算法的特征重复一下:公钥加密、私钥解密;私钥加密、公钥解密;私钥可以推出公钥,但公钥推不出私钥。

回到Alice给Bob转账的例子中:Alice要向Bob转账5btc,Alice先使用Bob的公钥(也就是Bob的收款地址,全网公开,但只有Bob自己用私钥才能够打开)加密一层信息,把这条加密后的信息再使用Alice自己的私钥(注意不是推导或破解私钥,只是用Alice的公钥验证该私钥的有效性,也就是用除Alice以外任何其他人的公钥都无法验证匹配该私钥)加密一层,这时信息已经被加密了两层,一层是Bob公钥,一层是Alice私钥。大家收到这条信息以后,会用Alice的公钥来验证加密信息是不是Alice发送的,其实就是用公钥解密了Alice这层信息(私钥加密,公钥解密),从而验证了这条信息确实来自于Alice,但是这条信息还使用了Bob的公钥加密,Bob再用自己的私钥对这条信息进行解密(假设只有Bob知道私钥),完成了比特币的提取。

注:由于对Alice身份以及对她发送内容的有效性验证非常重要,在本章的第4小节咱们专门再说一说有效性验证的问题,这里先按下不表。

理论上如果找到了一个私钥,那么就可以操纵其余额,因为私钥是可以推出对应的公钥。这个比现实世界神奇,也就是有了银行卡密码,还能够推导出银行卡卡号……然后再对这个地址的记录进行数字签名,相当于掌握了这个地址。反过来说,如果你的私钥丢了,那这个地址上的整个钱也就消失了。整个比特币世界是去中心化的,没有中心机构可以申诉。

所以,就好比现实生活中一定要把银行卡(公钥)和身份证(私钥:虽然不是直接的密码,但往往能够通过身份证去重置银行卡密码,骗子都可以)分开存放,私钥一定不要存放在电脑中,最可靠的是记在脑子里。好吧,这很反人类,但你可以通过别的物理方式,和私藏私房钱一样,比如写下来放在客厅花盆里,放在鞋垫底下,夹在某本书中……嘘,不能再透露了。

以上概述了公钥、私钥、钱包和比特币的关系。由于这个概念很重要,再啰嗦一遍:比特币世界里的公钥是地址,私钥就是密码;公钥是银行卡账号,私钥就是银行卡密码。所谓钱包就是一种电脑软件,它可以帮你生成一系列配套的私钥公钥,你可以随意选择一个公钥作为收款地址,并且使用配套的私钥继续使用它。比特币只有交易记录,所以你的每一个公钥上所谓的余额就是账本上显示的谁向这个地址转账了,私钥作为密码的作用就是可以援引这个公钥的交易记录并对其签名。比特币的公钥是公开的,任何人都可以查看关于这个公钥的所有交易记录,也就可以知道这个公钥有多少“余额”,但没有私钥的人不能对该公钥援引记录签名,也就不能进行发送和交易。

另外一个重要的问题是如何验证广播信息的真实性(注意不是广播信息身份有效性,那是通过数字签名解决的)。Alice广播说她要给Bob转5个币,但有可能她在骗人,因为她只有3个币,怎么能给Bob转5个?如果要是有中心机构银行,就只要统计Alice的余额就好了;而比特币只储存交易记录,只验证这笔交易中涉及比特币的来源与去向,并不会对余额进行检验。事实上,Alice传达的信息中:我要给Bob转账5个btc,这5个btc都是有编号的,每个人都可以查询这5个btc上一次是从哪里转到Alice这里的,这5个币有没有从Alice这里转走。如果都满足,那就表明Alice可以转走这5个币。作为一种去中心化的账本,比特币世界算你的余额,是算从这个账户诞生开始每一笔收支,加减到现在的正值。由于每一笔交易都是全网验证过的,每一笔交易的比特币都是有来龙去脉的,所以说这是安全和靠谱的。当在电脑上下载比特币客户端的时候,系统会一次性的下载所有交易记录,而且会验证一遍,一般需要一天一夜的时间。不过只要验证一次,后面的交易验证就是增量验证,就不再需要这么久的时间。

比特币的公钥是公开的,任何人都可以查看关于这个公钥的所有交易记录。也就可以知道这个公钥有多少“余额”。每一枚比特币原则上是可以跟随其交易记录一直向上追索的。不过这比较麻烦的,因为比特币的最小单位是10的-8次方,这个最小单位还有个名字 -- 聪,中本聪的聪,比特币世界中,你富不富有,就看你有几根“聪”。比特币的单位如此小,一枚极为值钱的比特币可能是很多更小数字组成的,比如是0.005 聪、0.78聪、0.215聪之和,所以其来源可能会非常细小。但所有交易记录都摆在这里,谁想去追踪这些所有的细分的来源都没有问题。

3. 比特币与挖矿

好了,从上面文字的描述中,咱们应该对比特币的性质,以及转账的大致流程有了一个概念上的了解。知道了在比特币世界里是没有实体存在,没有类似于钞票这种实体的存在。比特币本质上就是一个账本,全网系统里每个节点都有的一个账本。这个账本仅仅记录从创世到现在的转账记录而已,所谓财富其实就是每个条目一条一条的累计。我不能伪造,我比特币必须是别人写记录给我的。比特币就是一个账本系统,公开透明的账本系统,可以被任何人随时查看,但没有任何实体的支撑。

大家自然会关心一个问题,那我怎样才能拥有比特币?货币是各国央行发行的,而比特币是去中心化的,那谁来发行比特币,比特币是怎么创造出来的?

这就是这几年一直很火的一个词汇 -- “挖矿”。而要理解“挖矿”就必须要引入区块链的概念了。

在比特币的世界里,每时每刻都会发生很多笔类似Alice转账Bob的交易,把每十分钟内的交易记录打包在一起,就叫区块(Block)。把比特币一诞生就开始的所有交易记录都链接起来,也就是把这些区块连接起来,就构成了区块链(Block Chain)

每十分钟的交易信息被打包成一个区块,而整个网络上的电脑都在抢夺这个区块的记账权利,谁抢到这个记账的权利,谁就可以获得这个区块创造(奖励)的比特币。

这里有一个问题要解释,比特币网络是分布式的,谁在负责交易记录的打包呢?答案是每个节点都可以进行打包,但能打包并不代表你有资格获得比特币奖励。我们来看看这个过程:

  1. 当Alice发起一笔比特币转账后,她需要将交易广播至全网,网络上的每个挖矿节点(也就是矿工)接到这笔交易后,会先将其放入本地内存池进行一些基本验证,比如该笔交易的比特币是否是未被花费的比特币。如果验证成功,则将其放入“未确认交易池”(Unconfirm Transaction),等待被打包;如果验证失败,则该交易会被标记为“无效交易”(Invalid Transaction),不会被打包。矿工需要及时验证每笔交易,更新自己的“未确认交易池”。
  2. 每个挖矿节点都可以将若干个交易信息打包成区块发送到网络上,并建议其为链上的最新候选区块。正因为任何挖矿节点都可以发送候选区块,系统如何决定谁才是可以放在链上的最新区块?区块链系统使用加密哈希函数设计了一道复杂的数学题(后面会单独说说这道逆天数学题),谁能最先解出答案,就代表谁抢到了记账权,然后其将从“未确认交易池”中抽取约近千笔“未确认交易”进行打包,发布到网络上。
  3. 这道数学题的答案是由挖矿节点计算后一起被打包进区块。答案是一个数字,得到答案的唯一方法就是暴力猜解,猜到对为止。一台普通配置的电脑可能需要花一年的时间才能猜对答案,但区块链网络里有很多台电脑一起猜,这样只需要平均10分钟就可找到答案。因此也呼应了上面段落提到的,比特币世界的新区块大概10分钟生成一个

也就是说,矿工们既要一边疯狂计算,还要一边及时校验新的交易记录,两手都要抓,两手都要硬,想想都TM糟心。

Block Chain.JPEG

既然交易在不停的发生,矿也就可以不停的挖,那比特币就是“取之不尽用之不竭”了?No,No,No,比特币的数量是有最高限额的——2100万枚比特币,越挖越少。中本聪设计的特别妙,就是每个区块的奖励每四年减半。我们刚说了,中本聪造出第一个区块的时候、获得50枚的奖励,到了2013年奖励就减半了,2017年再次减半。所以当下每个区块的奖励是12.5枚比特币,等到了2140年比特币产量就将趋于0,从而将比特币的总量恒定在2100万枚。

好了,先做一个简短的总结:
1. 比特币交易记录向全网发布
2. 矿工严阵以待,收到交易信息并验证有效后,就放入“未确认交易池”
3. 矿工同时解数学题,解题不分贵贱,一律靠猜,很黄很暴力
4. 最先解出答案的矿工,从“未确认交易池”中取出一部分进行打包,并发布到网络中,并获得相应奖励

下面咱们该说说这道逆天的数学题了,其实真的挺逆天,下面仅仅写一下最基础的原理,等我自己更深入的学习后,再专门写一篇学习笔记来谈谈数学题的问题

每个区块都有自己的区块头,区块头通常包含前一个区块的哈希散列值、Merkle根、时间戳、难度目标、以及一个填充的随机值。试图争夺记账权的节点称为挖矿节点,挖矿过程就是求出一个能够填充本区块头的随机值,让区块头的哈希散列值符合某一个标准。

区块头示例

在比特币世界里,有一个新的概念叫做共识机制。比特币是通过工作量证明的共识机制来决定记账权的,通俗来讲,谁证明了自己的工作量最大,谁就负责记账。而这个工作量大小就是通过计算上述哈希散列值来体现的。

网络上的每一个矿机接收并验证了一批交易,然后就开始进行挖矿。矿机需要反复的试验随机填充值来进行求解。一般采用产生随机数,尝试把产生的随机数填充到区块头,然后计算哈希。如果哈希值符合难度规则,则计算成功,挖矿成功,向全网广播挖矿所得。全网节点验证后,把这个区块连接到区块的最上端,并且在全网达成一致。其他矿工也只能心中默念无数个“草泥马”,然后赶紧基于这个最新的区块继续永无止境的挖矿人生……

从这个过程我们能够看出这个随机数的作用,除了让人崩溃的一遍遍计算,还有一个作用就是平衡算力,以保证全网平均每10分钟左右产生一个区块。如果矿工们设备变得先进了,比如NVidia老黄推出了更牛逼更便宜的GPU(老黄当然不是这样的人),分分钟就算出来,那该怎么办?很简单,就增加难度规则,增加猜测随机数的难度呗,比如原来要求计算的哈希值前面有15个0,现在要求前面有20个0……总之就是不让你造次,好好按规矩挖矿。

上面就这道数学题最简单的描述。

而回顾挖矿历史,挖矿总共经历了以下五个时代:CPU挖矿→GPU挖矿→FPGA挖矿→ASIC挖矿→大规模集群挖矿

为了钱,真是绞尽了脑汁。

三、比特币的难题

1. 双花问题(Double Spending)

比特币系统似乎有着完美的交易方案,既有人在抢着记账,记好的账本又不能篡改,全网还可以验证每条消息的真伪,难道这还不是完美吗?咱们举个例子。

比如我有5个btc,我向星巴克转账了5个btc买了一杯咖啡,同时又向自己另一个账户转账了5个btc,这是两笔独立的交易,如果都在全网得到了验证,我岂不是白白喝了一杯咖啡?这就是双花问题,比特币网络如何解决?

正常情况下,我先转给星巴克的5个btc,全网打包并验证了此消息,然后我向自己转账的那笔交易由于和上条交易冲突而验证失败,但,如果我是同时向全网广播这两条消息呢?这样,就会有两个矿工分别打包了这两笔记录,这就叫做分叉,即同时有两个区块生成了,比特币网络如何识别哪个区块是有效的呢?

先简单说明下比特币的规则:规则是只有最长的区块链得到确认,最长的区块链才会有挖矿奖励。所以正常大家都会切换到长链上挖矿而将短链废弃掉,这样就会有一笔交易作废了。在同一条链上,是不会出现冲突的问题的。

知道了这个原理,我们来看看怎样才能做到双花,其要付出什么代价,这样再来衡量比特币网络的这个规则是不是能有效的解决双花问题。

还是上面的例子,我要是想白喝这杯咖啡,就必须先给星巴克转账5个btc,这笔交易打包在一个区块中;然后我给自己账户再转账5个btc,打包在另一个区块中。当然,做到这一点已经很不容易,我得能很好的掌控交易时机。星巴克看到第一个区块得到了全网确认,会向我发送咖啡;这时,我为了让这笔转账失效,必须让包含我给自己转账的那条链成为全网主链,也就是说,在我希望的这个区块后面不断的生成新区块使这条链越来越长。再重复一遍,我想要实现双花,其实很不容易,我必须要在我拿到这杯咖啡之前,让着两条链都不被废弃掉,在此之前,任何一条链废掉,双花都不再成立。如果我给自己转账的那条链废掉,意味着我真的给星巴克转账了;而如果我给星巴克转账的那条链废掉,意味着星巴克不会给我提供咖啡服务。所以,我的策略必须是,先让星巴克那条链成为主链,这样星巴克就发货了;我一看到星巴克发货,于是开始努力加长给自己转账的那条链,一旦链条长度超过了星巴克那条链,给自己转账的就成了主链,从而废掉星巴克那条链,这意味着星巴克的交易记录作废,也就是星巴克最终没有拿到比特币……

细思极恐,细思极恐。

星巴克也不是吃素的,不会傻到一看到区块形成就发货,而是会等到自己这条链足够长,一般来说,再等上6个区块形成就很保险了,为什么呢?

因为矿工都会在长链上挖矿,只有最长的区块链才能得到确认,才会有挖矿奖励。我要想让给自己转账的这条链成为主链,就要在转账给自己的这个区块之后不断形成新区块,超过转账给星巴克那条链。不是不可能,用我中学一直牢记在心的英文语句:Nothing is difficult but put all your heart into it,有志者事竟成,有算力者赢天下。区块由谁生成,取决于谁先计算出那道逆天的数学题,而且要连续跑赢其他矿工

比如我拥有全网51%的算力,我就有51%的概率抢到记账权,这就是“51%攻击”。星巴克等到了6个区块都形成后,相信这条链就是全网主链,全网的其他矿工也相信这条连就是全网主链,于是大家都基于这条主链进行计算。而我为了让有利于自己的那条链成为主链,就必须要连续与全网争夺记账权6次,我拥有51%以上的算力,确实能够实现,只不过连续6次都成功的概率是0.51^6=0.017596。我必须考虑一个问题,我这么做值得吗?我到底要为了多大额度的转账双花而进行51%攻击?因为我们都懂,区块链越靠后,安全性越高。全网都知道我牛逼,大家形成了共识,6次改成了10次,我就要为此付出更高的代价了,这难度可是几何级的增长。因此,目前比特币网络一般认为,6次已经很安全,也就是转账后,等1个小时再进行交易。

由此我们看出,比特币网络约定俗称的规则,即保持在最长链上挖矿,结合等待6次记账后再交易的规则,可以认为是非常安全的

2. 矿藏枯竭

双花这个漏洞可以通过交易的等待来阻止。但比特币系统似乎还有一个漏洞,就是到了2140年,比特币的总量已经到达了事先规定的上线——2100万枚,那么抢夺到记账权也没有比特币可以奖励了,那谁还会去记账呢?聪明的中本聪想到了。到那时,比特币世界的每一笔交易就需要交一定的手续费,交给谁呢?交给了抢夺区块记账权的人。也就是说,挖矿从过去的获得比特币的奖励,变成了获取交易的手续费,所以照样有矿工去挖矿。而之前的比特币,很可能成为像房子一样的固定资产,是可以用来炒的,因为这就是经济学上的“稀缺性”原理啊。

所谓比特币挖矿,实质就是中本聪巧妙地设计了一个激励机制,给维护这个去中心网络的人的奖励,同时也解决了货币如何分配的问题,因为每个人都有挖矿的权力,至少从理论上这是相对平等的说法,人人都有机会去挖矿,去获得比特币。


好了,第一篇介绍比特币和区块链基础的“大作”完成了,耗费我很多的脑细胞和精力。比特币和区块链在未来究竟能够带来怎样的革新,还要拭目以待。就在总结这篇文章的过程中,我又读到了一篇认为比特币根本解决不了实际问题的文章,读起来也很过瘾。回头也会再做一篇反方的笔记来说明这事。

再次感谢网络中的那些原创作者,也再次抱歉不能列举全原创作者和原文链接。

笔记参考:

  1. 《区块链是i什么,如何简单易懂的介绍区块链》(可以在今日头条上搜索,我觉得非常好的一篇文章,也是我写这篇笔记的基础)
  2. 《挖矿是如何产生比特币的》 -- Leaf的答复
  3. 《比特币:如何实现“交易”和“记录”》
  4. 《从发出交易到矿工打包需要几步?》

学无止境,我是80后IT老飞侠

2018年3月30日 深圳天安云谷

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容