什么是区块高度?
区块高度(Block Height)表示一个区块在区块链中的位置。 以比特币为例,第一个区块称为创世区块,高度为 0;后面的区块依次为 1、2、3,每增加一个区块,高度就加一。
区块是一批交易及相关数据。高度帮助我们找到这些记录在链上的位置,也常用于计算交易确认数和判断某项规则何时生效。
区块高度有什么用?
区块浏览器是查询链上区块和交易记录的工具。在其中查询交易时,通常能看到交易所在区块的高度。结合当前最新高度,可以了解这笔交易后面又增加了多少个区块。
高度也可以作为协议规则的触发条件。例如,比特币每经过 210,000 个区块,就降低后续区块的新币补贴,这就是比特币减半。规则按照区块位置执行,而不是等日历走到某一天。
部分升级或交易生效条件也会用到高度,但具体条件由协议规定,并不都只依赖高度。
怎样用高度计算确认数?
在比特币中,交易进入当前采用的链后,收录它的区块算第一次确认;之后每新增一个区块,再增加一次确认。
因此,只要交易所在区块仍在当前链上,就可以这样计算:
确认数=当前最新区块高度-交易所在区块高度+1
例如,交易被收录在高度 800,000 的区块中,当前最新高度为 800,005。后面又有五个区块,加上收录交易的区块本身,确认数为 800,005-800,000+1=6。数字仅用于说明。
确认数越多,表示这笔交易后面累积的区块越多。接收方会根据用途决定等待多少次确认,但这不是绝对不会变化的保证。
使用区块高度时要注意什么?
同一高度可能对应不同区块。 两个矿工可能在相近时间提出区块,形成竞争分支。高度相同,内容却可能不同。指认一个具体区块时,还应说明网络并使用区块哈希,即按规定计算出的区块标识。
确认数依赖当前采用的链。 运行网络验证软件的节点切换到另一条有效分支,称为链重组。原分支中的交易可能离开当前链,此时不能继续用原高度相减来计算确认数。
高度不能直接换算成日期。 比特币以平均约十分钟出块为目标,但每个区块的间隔有波动,未来某个高度何时到达只能估算。
不同网络的出块速度和编号约定也可能不同。因此,不能仅凭谁的高度更大,就判断谁运行更久、更安全或更活跃。









