AE有两种区块:关键区块(Key Blocks)、微区块(Micro Blocks)。关键区块也叫主区块,下面简称主块、微块。
主块 Key Blocks
主区块用于选择Leader[领袖?首领?]。AE主块包含了上个块的哈希、时间、微区块、矿工奖励、目标值以及一个随机数。
老刘,你等下,你好像说漏了?为什么没有交易记录[tx hash]?
没错!AE的关键块并没有交易信息!
与其它pow不同的是,AE的主块包含了一个在随后的微块中要用到的公钥。
AE巧妙的设计了微块,微块采用私钥签名,该私钥与最后关键区块的公钥相匹配。
等等,说到这是不是觉得很眼熟?
没错,这就是大名鼎鼎的Bitcoin-NG,AE是目前唯一实现POW共识算法的BitCoin-NG的项目。
你也没猜错,AE的Bitcoin-NG一样是在核心层。
微区块 Micro Blocks
当某一节点生成了一个主块,它将变为首领。作为首领,将以小于预先确定的最大值的固定速率来生成微区块。
白话:当某个矿工计算出块,接下去3分钟内的交易他说了算。
注:这个速率为小余等于3秒,这也是为什么你使用AE钱包转账感觉像是秒到一样!
加粗重点:主块为3分钟,微块3秒
既然出了主块就是选择了首领,那么首领能不能利用微块来作恶呢?
如果微块的时间戳是在未来,或者如果它与之前区块的时间差小于最小值,那么该微区块是无效的。该限制可以阻止首领(恶意、贪婪或破坏性地)使用微区块攻击系统。
区块链记录里 mh_ 开头的那串看不懂啥玩意的玩意就是微块哈希(Hash),不一定是但几乎都是,里面包含了交易哈希。
AE的 交易信息 就是由微块打包的!
微块包含账本记录和数据头。数据头包含上一个区块的哈希、同高度上一个微块的哈希、时间戳、账本记录的哈希以及数据头的签名。
签名使用的私钥与区块链中的最新关键区块的公钥相匹配。为使微块有效,所有的记录都必须有效符合状态规范,而且签名也要有效。
微块不影响区块链的重量,因为它们不包含工作量证明。
这也是为什么POW里AE的链上tps能够达到121的原因之一,为什么是之一?咱们下章继续分解。
注:pow里AE的tps目前是第一,欢迎挑战。
既然Bitcoin-NG这么牛逼,又BTC社区提出的,为什么btc不用?其它链不用呢?
这里挺尴尬的,别的链想用也用不了,因为Bitcoin-NG协议中主块不同,注定了需要拿主块动刀子,别的链想用,要么只能重新开启一条链,从头再来。要么就得像AE一样,发布主网初期就已经完成这项工作。
另外,Bitcoin-NG的实现对技术要求非常高。并且繁琐得很,光理清概念就得不少时间,以去年很多主链着着急急想着上线来说,这个太费事了。
对了,AE出块成熟期为180个区块,大约9小时。[非矿工一般不关注这个]
关于难度调整:
比特币是每2016个区块 – 约2周
莱特币是每2016个区块 – 约3.5天
以太坊是每一个区块 – 约12秒
AE通常为3分钟,既一个区块,和以太坊不同的是,它没有具体难度调整时间,而是实时难度调整。不论算力是否突然翻倍的暴涨,或50%的暴跌,它总会很快的平均到3分钟,以每天480区块速度运行着。