共识机制

 

 

    共识的一些认识

   举个例子,现在有四个人要均匀分一块蛋糕,如果做到每个人都满意呢,在中心化的系统中,有第五个人是妈妈,四个孩子。那妈妈肯定不会偏心,分配肯定比较均匀。

    如果是四个毫不相干的人怎么办?有几种方案,第一种,随机挑选一个分蛋糕的人,分完蛋糕之后,让其他三个人先选择蛋糕,分蛋糕的人最后拿,那他肯定会分配的均匀。第二种,这四个人打麻将,赢得人不但可以分配蛋糕,还可以从其他三人那得到一块,如果分配的其他三个人不满意,其他三个人可以否绝分配方案,也不给他蛋糕,更严重的可以剔除他获取蛋糕的权利。这样也保证了分配均匀。

    共识很容易理解,就是多方达成一致。在例子里就是达成一致的分配蛋糕方案,共识机制就是一套完整的分配蛋糕方案。

    同理在区块链中,共识机制就是对交易达成的一致。在透彻一点就是对资金的流向达成一致。

    详细的讲解一下,在一段时间内(BTC是10mins)BTC网络上产生的所有交易,需要记录到区块链上。第一,需要保证这些交易的有效性,如避免双花问题等;第二,一致性,即整个BTC网络都认同这些交易;这个时候需要一个节点来完成这些操作,打包这些交易,并进行验证。然后将打包好的交易交给整个网络去验证,验证通过之后,放到区块链上。

    这里有几个问题需要考虑一下

    为什么不能随便选一个人,打包交易放到链上?

    如果选中的人,自己也有交易在里边,万一他偷偷改了数据,原来交易10BTC,他自己改成100BTC;就算他不改自己的交易,收钱帮别人改怎么办,肿么办?

    怎么能让我们无条件的去相信一个陌生人?

 

 

    肯定不是爱,答案是钱。这个很好理解,假如你想找一个保镖,最保险的方案就是花钱雇个武林高手,只要你给的钱多,即使你不认识他,他也会保证你的安全,所以我们在选人的时候,可以利用这一点,谁不作弊,就可以奖励BTC,弄虚作假就会受到惩罚。

     比特币中的共识——工作量证明(POW)

     用最简单的术语来说,就是重复计算区块头的哈希值,不断修改该参数,直到与哈希值匹配的一个过程。哈希函数的结果无法提前得知,也没有能得到一个特定哈希值的模式。哈希函数的这个特性意味着:得到哈希值的唯一方法是不断的尝试,每次随机修改输入,直到出现适当的哈希值。

      先计算出符合要求的人,就可以获得coinbase的比特币和交易费用;还有记账的权利,是不是和打麻将比较类似呢。

      hash = SHA256(区块头)

          现在解析一些难度目标,例如它的值为 0x1903a30c这个标记的值被存为系数/指数格式,前两位十六进制数字为幂,接下来得六位为系数。在这个区块里,0x19为幂,而0x03a30c为系数。

     计算难度目标的公式为:

     target = coefficient * 2^(8 * (exponent – 3))

     由此公式及难度位的值 0x1903a30c,可得:

     target = 0x03a30c * 2^(0x08 * (0x19 - 0x03)) = 238,348 * 2^176
     转化为十六进制后为:

     target =0x0000000000000003A30C00000000000000000000000000000000000000000000
     也就是说有效区块的头信息哈希值要小于这个目标值的。这个数字的二进制表示中前60位都是0。在这个难度上,一个每秒可以处理1万亿个哈希计算的矿工(1 tera-hash per second 或 1 TH/sec)平均每8,496个区块才能找到一个正确结果,换句话说,平均每59天,才能为某一个区块找到正确的哈希值。

     难度调整

 

 

     比特币的区块平均每10分钟生成一个。这就是比特币的心跳,是货币发行速率和交易达成速度的基础。不仅是在短期内,而是在几十年内它都必须要保持恒定。在此期间,计算机性能将飞速提升。此外,参与挖矿的人和计算机也会不断变化。为了能让新区块的保持10分钟一个的产生速率,挖矿的难度必须根据这些变化进行调整。事实上,难度是一个动态的参数,会定期调整以达到每10分钟一个新区块的目标。简单地说,难度被设定在,无论挖矿能力如何,新区块产生速率都保持在10分钟一个。

   难度的调整是在每个完整节点中独立自动发生的。每2,016个区块中的所有节点都会调整难度。难度的调整公式是由最新2,016个区块的花费时长与20,160分钟(两周,即这些区块以10分钟一个速率所期望花费的时长)比较得出的。难度是根据实际时长与期望时长的比值进行相应调整的(或变难或变易)。简单来说,如果网络发现区块产生速率比10分钟要快时会增加难度。如果发现比10分钟慢时则降低难度。

       这个公式可以总结为如下形式:

       New Difficulty = Old Difficulty * (Actual Time of Last 2016 Blocks / 20160 minutes)

      为了防止难度的变化过快,每个周期的调整幅度必须小于一个因子(值为4)。如果要调整的幅度大于4倍,则按4倍调整。由于在下一个2,016区块的周期不平衡的情况会继续存在,所以进一步的难度调整会在下一周期进行。因此平衡哈希计算能力和难度的巨大差异有可能需要花费几个2,016区块周期才会完成。

       目标难度和挖矿电力消耗与将比特币兑换成现金以支付这些电力之间的关系密切相关。高性能挖矿系统就是要用当前硅芯片以最高效的方式将电力转化为哈希算力。挖矿市场的关键因素就是每度电转换为比特币后的价格。因为这决定着挖矿活动的营利性,也因此刺激着人们选择进入或退出挖矿市场。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0xweb3q

有钱的捧个钱场,没钱的捧个人场

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值