美文网首页
以太坊黄皮书之数据结构

以太坊黄皮书之数据结构

作者: 92b0f2b9b6f8 | 来源:发表于2018-07-07 17:08 被阅读266次

    以太坊被认为是区块链2.0的代表项目,于2014年被V神提出,目前是仅次于比特币的第二大加密货币。

    以太坊黄皮书是以太坊协议级的技术说明,作者是Gavin Wood博士,于2014年3月发布黄皮书,发布之后因为其包含300+公式被认为是最难懂的黄皮书。

    在黄皮书中,以太坊自称为一个世界计算机,本质上也就是一个状态机,每个区块都有一个最终状态,即world state,世界状态。

    在数据结构上,以太坊和比特币很相似但也有很大的一部分改进。

    • 以太坊区块中除了区块头、交易list还有一个ommerHeader list
      ommerHeader list为该区块的叔块的区块头list,在比特币中,只有挖到矿且成为主链上的块才会有挖矿奖励,以太坊中为了鼓励挖矿针对叔块也给予一部分奖励,这个参数就是记录叔块的列表


    区块头中参数由比特币的六个增加到15个,以下分别介绍

    • parentHash:父区块哈希

    • ommershash:ommerHeader list的哈希,放在区块头用来做验证

    • beneficiary:挖矿奖励获益人的地址

    • stateRoot:状态树,即账户状态



      包含四个参数:
      codehash:标明账户类型,若该账户为合约账户,则该值为合约代码哈希,若账户为外部账户,则该值为空字符串的哈希,此时为固定值
      nonce:若账户为合约账户,则该值为创建合约数量,若为外部账户,则该值为从这个账户发出交易的计数
      balance:余额
      storageRoot:Merkle Patricia树根节点的哈希

    • transactionsRoot,记录区块中交易,主要包括以下几个参数


    nonce:发出这个交易的账户的nonce
    gasPrice:gas价格
    gasLimit:gas限制
    to:接受者地址
    data:附加数据
    v,r,s:交易签名,共65字节,v为最后一个字节,r为前32个字节,s为33-64字节

    • receiptsRoot,收据将交易执行的结果,输出成log,存在receipt中
      包含以下参数


    medState:从区块执行到这个交易和当前这个交易变成的中间状态
    gasUsed:执行完这个交易之后用了多少gas
    logBloom:日志topic的Bloom过滤器,标志为index的参数会放在logBloom中
    logs:日志

    • difficulty:难度值
    • number:区块号
    • gasLimit:区块gas限制
    • gasUsed:区块内所有交易使用的gas
    • timestamp: 时间戳
    • extraData:32字节数组,矿工用来表示矿是谁挖出来的
    • mixHash:挖矿算法输出
    • nonce:挖矿算法输出

    这些参数中,最主要的是四个tree,也是以太坊区别于比特币最主要的部分。

    相关文章

      网友评论

          本文标题:以太坊黄皮书之数据结构

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