以太坊的整个实现机制比比特币复杂得多,所以它的区块结构也比比特币的复杂,而且它的存储不止区块这一种方式,咱们花几天的时间来好好学习一下以太坊的区块和存储。
先从区块开始。跟比特币一样,以太坊的区块结构也分为区块头和区块体,这一篇我们先讲区块头。以太坊的区块头包含15个字段:
ParentHash
这是上一个区块的哈希值,跟比特币一样,我们可以把它看成一个指针,指向上一个区块,正是有这个指针,区块和区块才串联起来,才有区块链。
Coinbase
在比特币里也有一个coinbase,但那个coinbase是指一笔特殊的交易,就是系统奖励比特币给区块创建者的那笔交易。但在以太坊这里,是区块创建者留下的以太坊地址,用于接收系统奖励和交易手续费。
Ripple总法律顾问:美国SEC的“执法监管”损害了加密行业:3月20日消息,Ripple的总法律顾问Stuart Alderoty表示,如果美国国会和监管机构不“共同努力,为加密行业提供监管透明度”,2023年可能是“美国以外的国家领导数字资产革命”的第一年。
在周五(3月18日)发表于RealClearMarkets.com的一篇专栏文章中,Alderoty首先指出:“区块链技术正在改变我们交换价值和信息的方式。”接下来,他谈到了SEC于2020年12月对Ripple发起的“误导性诉讼”,并继续表示,这种“执法监管”的方法并没有提供消费者和加密公司迫切需要的监管透明度。(CryptoGlobe)[2022/3/20 14:07:53]
UncleHash
在美SEC注册的加密机器人顾问Makara正式推出:金色财经报道,在美国证券交易委员会(SEC)注册的加密机器人顾问Makara已正式推出。Makara表示,通过新加入的Beta版客户,其管理资产总规模达到“数百万美元”。据悉,传统的机器人顾问主要会将客户的钱投资于交易所交易基金(ETF),但显然美国目前没有任何加密ETF。因此,该应用程序将提供六个“主题篮子”资产,这些资产围绕客户可能具有的不同投资意愿而构建。这些篮子包括专门针对比特币、以太坊和去中心化金融(DeFi)进行加权的篮子。Makara正在与Gemini合作来处理基础资产的购买、出售和存储。[2021/6/1 23:02:42]
以太坊有一个独特的东西,叫叔区块,咱们下一篇会仔细讲讲。现在只要知道这个字段就是所有叔区块用RLP编码后再哈希出来的值即可。
bitFlyer CEO:SEC特别关注的是XRP的销售方法:加密货币交易所bitFlyer联合创始人兼首席执行官加纳裕三在推特发文表示,SEC特别关注的是XRP的销售方法,Ripple公司向包括日本在内的世界虚拟货币交易商提出了XRP的激励计划。业内从业者可以比在流通市场购买便宜1至3成。另一方面对于Ripple公司来说发行成本少,可以获得资金。[2020/12/23 16:13:43]
Root
这是一棵MPT树的根哈希,这棵树存储了所有以太坊账户。
TxHash
这也是一棵MPT树的根哈希,这棵树存储了所有的交易信息。
F2Pool联创王纯回应其操纵以太坊PoW系统的指控:8月9日消息,F2Pool联合创始人王纯在推特上回应了 F2Pool 一直在操纵以太坊区块时间戳以“获得更高的挖矿奖励”的指控。他表示一个强大的系统必须经受住各种测试。
该指控由加密研究员 Aviv Yaish 提出,他认为 F2Pool 在过去两年中一直在对以太坊进行“共识级”攻击,操纵区块时间戳,以持续获得比挖矿更高的挖矿奖励。
据悉,以太坊当前的工作量证明(POW)共识机制在设置时间戳时给予矿工“一定的自由度”,这意味着矿工可以创建错误的时间戳,然后利用时间戳以增加区块的挖矿难度,来替换具有相同区块高度的其他矿工的区块。(Cointelegraph)[2022/8/9 12:11:46]
ReceiptHash
这还是一棵MPT树的根哈希。对于以太坊账户和交易我们都已讲过,MPT我们也讲过,用MPT树来存储它们好理解。那这棵树又是存什么的呢?其实,这棵树存储的是收据信息。什么是收据?就是交易完成后会提供一个清单给你,告诉你一些信息:比如这笔交易被哪个区块打包了,这笔交易最终花费了多少gas、执行交易时创建的一些日志等等。
Bloom
我们可以在合约中通过定义“事件”来生成日志。上面说了,在收据树里会存储一些日志,这个bloom其实是一个过滤器,通过这个过滤器可以快速搜索和判断某个日志是不是存在于收据中。
Difficulty、Nonce、mixHash
这三个字段都和以太坊的挖矿有关,以太坊和比特币一样,也是POW模式,所以它也有一个挖矿难度系数,这个系数会根据出块速度来进行调整。以太坊第一个区块的难度是131,072,后面区块的难度会根据前面区块出块的速度调整,出得快难度就调高一点,出得慢就调低一点。
Difficulty就是区块的难度系数,Nonce是目标值,Nonce值小于等于2^256/Difficulty。所以,难度值越高,目标值的范围越窄,要找到符合的就越难。以太坊具体的挖矿计算比比特币复杂得多,但大概的流程就是不断尝试不同的mixHash来获得符合条件的Nonce。所以,mixHash可以简单理解为比特币区块头里的随机值。
Number
区块的序号,每个区块的序号就是在父区块的序号上加1。
Time
区块生成的时间。这个时间不是那么精确地就是区块真正生成的时间,有可能就是父区块的生成时间加上10秒,有可能就是区块产生时的“大概”时间。
GasLimit
区块内所有Gas消耗的理论上限。这个理论值与父区块有关,它允许打包区块的矿工根据父区块的情况对这些值做些微调。每个区块在产生时就必须设定这么一个gas消耗的理论上限,这个上限值限定了一个区块打包交易的总量,比如一个区块的上限值设定为10000,现在有3笔交易的gas设定分别都是5000,那么这个区块就最多打包其中的两笔交易,如果硬要打包3笔,其他节点就不会认这个区块的。
可以这么说,这个字段限定了一个区块的存储规模,但仍保有一定弹性。这一点与比特币不同,比特币的一个区块是多大,直接写死在比特币软件里,要更改的话只能通过硬分叉。
GasUsed
区块内所有交易执行完后所实际消耗的gas总量。
extraData
这个字段是留给区块的创建者,让他可以记录一些与该区块有关的信息,长度小于等于32字节即可。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。