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

以太坊黄皮书之数据结构

作者: 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