虾说区块链-57-《精通比特币》笔记十二

一直在说区块链是一系列技术结合后的新的技术架构,那么这里分别介绍下这些相关技术,也涉及到一些扩展开去的相关内容。

区块链-《精通比特币》笔记十二:

2018年新年新气象,happy new year、元旦快乐~~~~~2017年自己折腾了《区块链解读》和《虾说区块链》两个专题区块链学习笔记分享,认识了不少区块链从业者,也学到了很多东西,2018年,继续折腾。。。

《精通比特币》第二版网络在线阅读地址:

http://book.8btc.com/books/6/masterbitcoin2cn/_book/ch08.html

区块链副本一致性原则:区块链是去中心化的数据结构,网络中众多节点,那么不可能要求所有的区块链副本都保持一致。节点选择并尝试延长代表累计了最大工作量证明的区块链,称为最大累计工作的链。节点计算链上累加的每个区块的工作量,得到建立这个链所要付出的工作量证明的总量。那么在区块链网络中,所有的节点选择最长累计工作的区块链,理论上区块链中节点就最终会达到一个一致的状态。分叉会出现,但是更多的区块链接到其中一个链上,保持其中一个为最长链。那么也就保持了上述的原则。

区块链中分叉:bitcon网络中节点分布错杂,当有两个候选区块同时想延长最大区块链的时候,分叉就会产生。理论上正常情况下,在一个较短时间内,同时有两名矿工都各自算得了工作量证明的解,即可加入自己的区块广播。那么广播过程中先传给了邻近的节点,然后在传播到整个网络。那么对这些接收的节点来说,他们接收了可能是其中一个矿工的,并非同一矿工的区块,在验证区块的时候,父区块验证通过,那么这样网络中就出现了两个不同版本的区块链副本。被两名矿工生成的两个区块都是有效的,可能包含着一样的交易(排序不同)。网络中节点收到A矿工区块,延长区块链,之后收到B矿工区块,由于是第二次收到当前的区块,故先认为是无效区块,当然这个区块不会丢弃,形成备用链。同样先接收B矿工区块的也会出现同样情况。这时候A.B矿工的区块无法定义那个是正确,那个是不正确。各自接收区块的节点由各自的立场,所有矿工接下来开始在各自立场上挖掘区块,竞争再一次开始,拥有A和B区块的各个矿工节点在下一轮竞争中那一部分率先发现工作量证明并将其传播,那么区块将再扩展一个块,另一部分竞争失败的节点就会发现对方的链更长,那么这些失败节点将选择长的链为主链,网络中节点再一次达成一个新的共识。之前的非最长链的最后一个区块就成为了一个孤立的状态。理论上来考虑,两个区块的分叉也有可能,因为第一次分叉对立的两拨矿工又同时再一次发现了不同的区块的解,相对来说这种几率较低,单个区块的分叉每周都会发生,双区块分叉则比较少见,bitcoin将区块间隔设计为10分钟,为了在更快速的交易确认和更低的分叉概率之间作了一个妥协。理解为,更短的区块产生间隔会让交易清算更快完成,但是也频繁导致分叉,相反更长时间的间隔会减少分叉的数量,但是影响到了清算的时间。

挖矿、算力:挖矿经过一个过程,2010到2011矿工使用cpu升级到gpu,进而到FGPA挖矿,2013年ASIC挖矿引入,把SHA-256算法直接固化在挖矿专用的硅芯片上。近几年来挖矿算力爆炸性增长,难度也相应增加。

随机值升位方案:在bitcoin初期,矿工可以通过遍历随机数(nonce)获得一个符合要求的hash值来生成一个区块,但是难度增长后,矿工在尝试了40亿次后还是没有生成区块,那么通过读取块的时间戳并计算经过的时间来解决。因为时间戳是区块头一部分,它的变化可以让矿工用不同的随机值再次遍历,但是矿工硬件的速度达到4GH每秒的时候,这种办法也变得困难,随机数的取值一秒内就被用尽了。随着ASIC矿机出现后,ASIC矿机达到TH每秒的hash速率后,挖矿软件为了找到有效的区块,需要更多的存储空间来存储nonce值,当然同时可以延后一点时间戳,问题是延后太多时间,又会导致区块无效。最终的解决方案:使用coinbase交易作为额外的随机值来源。之前也提到过coinbase可以存储2-100字节,矿工使用这个空间作为额外随机值的来源,允许去探索一个较大的区块头值范围来找到有效的块,这个coinbase交易包含在merkle树种,这样任何coinbase脚本的变化会导致merkle根的变化。8个字节额外随机数和4个字节的标准随机数,允许矿工每秒尝试2的96次方的可能性,且不需要修改时间戳。同时coinbase脚本中更多额外空间为将来随机数扩展作准备。

之前写了点东西,随着对区块链的理解,发现有些理解的并不透彻,重新整理。如有理解不正确的地方,请及时指正,同时有兴趣一块交流的可以加笔者微信:

本文来自企鹅号 - 投河自尽的虾媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

目前对区块链最通俗易懂的解释…

这应该是目前对区块链最通俗易懂的解释了... ? 区块链如何运作的? 下面这篇文翻译自”How Does the Blockchain Work?”全文。作者M...

2265
来自专栏申龙斌的程序人生

创世区块 | 区块链生存训练

比特币的底层是区块链(blockchain)技术,区块链是由一些区块(block)链接而成的,区块中记录着比特币交易信息。 2009年1月3日 18:15:05...

4109
来自专栏极客编程

比特币UTXO模型介绍 原

如果你曾上过BlockExplorer观察自己的比特币收入状况,你是否曾经被搞的一头雾水呢?这正是因为比特币所使用的交易模型并非我们直觉上以账户为基础的,而是一...

932
来自专栏PHP在线

区块链入门教程

区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。 可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。...

46510
来自专栏存储

区块链入门教程

区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。 可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。...

1926
来自专栏崔庆才的专栏

区块链入门教程

区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。 ...

3404
来自专栏ATYUN订阅号

【学术】区块链专家:为什么我对比特币黄金产生了怀疑?

几周前,比特币黄金被对外宣布。对于许多新手比特币用户和投资者来说,这更像是比特币现金发生了重复,本质上看来是给你“自由币(free coins)”。 在这篇文章...

2786
来自专栏申龙斌的程序人生

分叉Fork【区块链生存训练】

8月1日20:20,Bitcoin Cash(前身是Bitcoin ABC)要给比特币的区块链来个硬分叉,虽然支持它的矿工的算力并不大,但也会闹出个BCC新币来...

3156
来自专栏PPV课数据科学社区

干货|区块链入门教程:一文让你看懂区块链!

区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。...

2843
来自专栏程序员宝库

区块链入门教程

文章作者:阮一峰(http://www.ruanyifeng.com/) 原文链接:http://www.ruanyifeng.com/blog/2017/12...

3236

扫码关注云+社区

领取腾讯云代金券