区块链里的区块高度是什么?
区块链简单讲就是一个个账单系统,比特币每十分钟会把所有的账单打包成一个记录交易的区块,每一个区块连接到上一个区块,形成了区块链,而区块高度就是指生成了多少个区块,区块高度用来丈量某一个区块到第一个区块之间的距离,通过区块高度可以准确的了解到某一区块在链上的位置,相当于给区块定位了一个坐标。
在美国,高速公路都用固定的数字规律来命名,南北走向为单号,东西走向为双号,编号数字越往东,往北越小。司机可以根据数字来判断公路的走向和方位。同理,当我们了解到区块高度的数值时,我们也可以了解到区块的位置。如果区块高度下发现多个区块,则说明多个人在同一时间创建了一个区块。
相信大家了解区块高度都是为了搜集到一些信息,那么了解区块高度最有价值的应用体现在哪呢?由于区块产生的时间是固定的,比如比特币大约10分钟生成一个新区块,所以根据比特币高度可以大致推算出分叉时间,所以区块高度经常被用来标志某区块链在未来某个时间点将要发生的事件。
比如某团队宣布要在比特币高度700000分叉,意思就是在比特币生成第700000个区块时执行分叉操作,一般比特币大约10分钟生成一个新区块,所以根据比特币高度就能大致推算的出分叉时间。
值得注意的是区块高度的计算规则不是从1开始,而是从0。所以第一个区块的高度不是1而是公认为0,第50个区块的高度为49。这就有点类似英国人把第二楼当成第一楼来看的观念。
区块有两个标识符,一是区块头的哈希值,二是区块高度。区块头的哈希值是通过SHA256算法对区块头进行二次哈希计算而得到的数字。区块哈希值可以唯一且明确的标识一个区块。并且任何节点通过简单的对区块头进行哈希计算都可以独立的获取该区块哈希值。但由于区块高度只是区块链中的位置,所以区块高度不是唯一的标识符,因为同一时间创造的多个区块可能是同一个区块高度。