交易确认数是如何计算的

假定交易所在的区块号是 startBlockNumber, 当前最新区块的区块号是 currentBlockNumber.
于是就看到两种计算确认数的计算方式:
方式1:
确认数 = currentBlockNumber - startBlockNumber

方式2:
确认数 = currentBlockNumber - startBlockNumber + 1

究竟该用哪种方式呢?从安全方面来讲,方式1 无疑会比方式2 更安全些,因为方式1 比 方式2 多了一个区块的确认。但一个区块确认带来的安全性其实并没那么明显,要不然也就不需要 6 个或更多确认了。在实际工程中,方式1 还存在一个问题,就是交易在被添加到区块之前和添加到区块之后,确认数都是 0,这显然是不能反应实际情况的。

于是,有人将方式1 定义为区块确认数,将方式2 定义为交易确认数。

在实际项目中,大多数都是按方式2 进行交易确认数计算的,包括 etherscan 和很多交易所。

这里面有一个小坑,就是这个 startBlockNumber 该是如何取的,碰到分叉怎么办?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容