首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >虾说区块链-57-《精通比特币》笔记十二

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

作者头像
企鹅号小编
发布2018-01-12 11:40:40
6030
发布2018-01-12 11:40:40
举报

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

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

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脚本中更多额外空间为将来随机数扩展作准备。

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

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

如有侵权,请联系 cloudcommunity@tencent.com 删除。

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

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档