> For the complete documentation index, see [llms.txt](https://neochain.gitbook.io/project/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://neochain.gitbook.io/project/ethereum/qu-kuai-que-ren.md).

# 区块确认

## 区块确认

![](https://2375552330-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LACIimCQkax7RsvvwR2%2F-LEHj2w3FeWNYFtPMV2p%2F-LEHpSsAhiP5n2KzeNNC%2FETH_Block.png?alt=media\&token=059c9eea-a67a-46a3-bb09-f367c6982fd4)

&#x20; 虽然有一些不同，但以太坊的区块链在很多方面类似于比特币区块链。它们的区 块链架构的不同在于，以太坊区块不仅包含交易记录和最近的状态，还包含区块 序号和难度值。以太坊中的区块确认算法如下：

1\. 检查区块引用的上一个区块是否存在和有效。

2\. 检查区块的时间戳是否比引用的上一个区块大，而且小于 15 分钟。

3\. 检查区块序号、难度值、 交易根，叔根和瓦斯限额（许多以太坊特有的底层概念）是否有效。

4\. 检查区块的工作量证明是否有效。

5\. 将 S\[0]赋值为上一个区块的 STATE\_ROOT。

6\. 将 TX 赋值为区块的交易列表，一共有 n 笔交易。对于属于 0……n-1 的 i，进行状态转换 S\[i+1] = APPLY(S\[i],TX\[i])。如果任何一个转换发生错误，或者程序执行到此处所花费的瓦斯（ gas）超过了 GASLIMIT，返回错误。

7\. 用 S\[n]给 S\_FINAL 赋值, 向矿工支付区块奖励。&#x20;

8 检查 S-FINAL 是否与 STATE\_ROOT 相同。如果相同，区块是有效的。否则，区块是无效的。
