《精通比特币》(9)

2017  9.24

8.10区块链的选择与组装

第一种是连接到主链上的,第二种是从主链上产生分支的(备用链),最后一种是在已知链中没有找到已知父区块的。在验证过程中,一旦发现有不符合标准的地方,验证就会失败,这样区块会被节点拒绝,所以也不会加到到任何一条链中。

区块链的分支的出现

A区块建立之后,一个节点便开始预建立一个新的区块B于此同时另一个节点也预建立了一个区块C,B和C都会链接到A上,此时这两条链都存在。如果后续的区块连接到B上,B就是主链,C就是备用链。(链越长,难度目标越大的链就是主链)

8.11.1随机值升位方案 

获得符合要求的hash来挖出一个块。难度增长后,矿工经常在尝试了40亿个值后仍然没有出块。然后,这很容易通过读取块的时间戳并计算经过的时间来解决。因为时间戳是区块头的一部分,它的变化可以让矿工用不同的随机值再次遍历。但随着计算能力的提升,在几秒之后就可以把所有的随机数过一遍。为了找到有效的块,需要更多的空间来储存nonce值。可以把时间戳延后一点,但如果时间戳过后,区块很可能无效。现在解决方案是使用coinbase交易作为额外的随机值来源,因为coinbase脚本可以储存2-100字节的数据,矿工们开始使用这个空间作为额外随机值的来源,允许他们去探索一个大得多的区块头值范围来找到有效的块。这个coinbase交易包含在merkle树中。所以他的随机数很大,即使以后计算能力加强,可以通过改变coinbase来扩大空间。

8.11.2矿池

由于现在的难度目标的增大,单独一个人几乎不可能算出一个新的区块,所以就会加入矿池,一个合作获得份额奖励。通过矿池合作挖矿,减少了不确定性。

矿池分为两种,一种是托管矿池,有专门的公司来管理矿池服务器,但他是一种中心化矿池,矿池负责人有可能窃取矿池收益。

还有一种是P2P,去中心化。在P2P中,单独的矿工创建新的候选区块,聚合交易,类似于solo矿⼯,但是他们在份额链上合作采矿。

8.12共识攻击

比特币的共识机制指的是,被矿工(或矿池)试图使用自己算力实行欺骗

共识攻击能够造成的唯一影响是影响最近的区块(最多10个)并且通过拒绝服务来影响未来区块的行成。

双重交易或拒绝某个地址的交易。

双重交易——把原本发给A的比特币,发给了B.

一个人的算力不需达到51%就可以发动共识攻击,有专家计算超过30%就可以了,但随着难度目标的增加,个人算力连1%都打不到。目前危险大的是委托矿池,因为里面有认为因素的存在,人是自私的,就有可能为了自己的私利而去做有些不道德的事。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 钱包、密钥 私钥衍生家族----适用于各种树形权限分配,比如企业钱包 交易 交易费按交易数据字节大小计算,交易费市...
    观星客阅读 998评论 0 2
  • 采矿难题是比特币的核心,因为他们的困难限制了任何一方控制共识程序的能力。因为比特币矿工为他们解决的谜题赚取了回报,...
    Nutbox_Lab阅读 1,144评论 0 4
  • 先来张预览图: 基本上除了主线程在处理event 另外还有三个线程在处理音视频和字幕 第一版先整理出了流程,后续将...
    码脑阅读 1,269评论 0 50
  • 解语解花醉人酒,三生三世聚仙桃
    蜗牛吃韭菜阅读 259评论 0 0
  • 《微服务设计》,Building Microservices,作者Sam Newman,译者崔力强、张骏,人民邮电...
    BrianZhang阅读 403评论 0 0