zoukankan      html  css  js  c++  java
  • 比特币中的共识机制

    我们知道对于比特币系统,所有的比特币用户都维护着一条相同的区块链。让这么多人不断地更新区块链的数据,如何才能维持共识与统一呢?

    一、 区块的创建

    区块中包含区块头和区块体,我们的矿工在开始挖矿时,就将需要写入区块体的交易打包在区块内,随后用不同的nonce去尝试,以获取满足记账权的hash值。

    明确了这一点,我们可以想象当各种客户把交易发布到区块链网络中时,矿工开始打包交易,不同的矿工打包的交易很可能是不同的。没有打包的交易只能等到下一个区块进行打包。

    那一个区块如果被矿工挖出,人们怎么承认其合法性呢?

    对于一个比特币用户,首先会验证区块头中的一些数据是否合法,如target(即记账权的阈值),以及nonce计算和一些版本信息。确定了这些之后区块链系统就会承认其合法性。

    二、 同时获得记账权

    如果两个矿工同一时间挖出区块,在短时间内,这两个区块都是合法的,剩余的矿工可以选择任意一个区块进行挖矿,当下一个区块挖出时,该区块在哪个区块之后,哪个区块就会变的合法。这里说的是最长合法链机制。

    三、 重新挖矿

    大家可能发现,当别人开始挖到新的矿时,对于其他矿工不得不重新打包交易,重新计算hash值,这一步开始时半途而废,但是由于哈希算法的memoryless性质,无论你什么时候开始挖矿,下一秒挖到矿的概率都是相同的。这也保证了挖矿的公平性。

  • 相关阅读:
    [root@py ~]# watch -n 1 ifconfig 求解释
    25 个常用的 Linux iptables 规则
    linux shell 字符串操作(长度,查找,替换)详解
    linux高级网络配置 ip别名,接口绑定
    初始版本控制工具-Git
    详解 TCP 连接的“ 三次握手 ”与“ 四次挥手 ”
    wireshark_users
    wireshark抓包基础步骤及PPPOE拨号抓包过程分析
    ARP原理与ARP攻击
    PPPOE 详解
  • 原文地址:https://www.cnblogs.com/siyuan-Jin/p/12435100.html
Copyright © 2011-2022 走看看