美文网首页
比特币结构

比特币结构

作者: salix_ | 来源:发表于2020-03-28 09:39 被阅读0次

    一:Hash Pointers
    二:Merkel Tree
    三:比特币整体

    一:Hash Pointers·

    区块链和其他链表有啥不同?区块链的每一个节点都是指向前一个节点的,每个节点都是由前一个节点的Hash值产生的。我们只需要保存最后一个节点的Hash值。就可以验证对某个节点的修改是否正确。(顺着链表取Hash值,看最后和我们保存的一样不一样)。

    二:Merkel Tree

    用Hash指针代替了普通指针

    最下面叶子节点是data blocks(每一个交易),上面是hash pointers。每个Hash Pointers(除了根)都有两个H()(就是Hash值)构成。和一中链表一样,我们只要保存根的hash值。那我们对节点中任何一个位置的修改都会通过计算,和根Hash值比较来判断修改合不合法。

    每一个区块都是一个Merkel Tree。

    image

    三:每一个区块的结构(区块头+区块体)

    1. 魔数,0xF9BEB4D9,是一个固定常数,用来分隔区块
    2. 区块大小:整个区块的大小
    3. 版本号:软件版本
    4. 父区块头哈希值:区块的这个位置总是指向前一区块的区块头哈希值,区块就是通过这种方式链接起来的
    5. Merkle根哈希:本区块的交易的merkle根
    6. 时间戳:Unix时间戳
    7. 难度目标值(即目标值)=最大难度值/难度值
      最大目标值是一个定值:0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      难度值:系统每隔两周(即经过2016 个区块)会根据上一周期的挖矿时间来调整挖矿难度(通过调整限制数的大小),来调节生成区块的时间稳定在10分钟左右。为了避免震荡,每次调整的最大幅度为4倍。
    8. 随机数Nounce:挖矿时矿工计算,满足SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x ))

    相关文章

      网友评论

          本文标题:比特币结构

          本文链接:https://www.haomeiwen.com/subject/skutrhtx.html