跳转到正文
buybitcoinsmart

术语表 /挖矿与共识

区块

区块是什么?
区块是一批比特币交易,加上将其封存的80字节区块头,由最先解出难题的矿工约每十分钟添加到区块链上。

区块将一连串支付变成有序、永久的记录。每个区块包含一个区块头、一个交易数量,以及交易本身,整个区块的大小上限为400万权重单位,实际上相当于几千笔支付。人们说一笔支付已确认,是指矿工已将其打包进某个区块。

运作方式

区块由三部分组成,只有第一部分的大小是固定的。

区块头为80字节,从不变化。其后是交易数量,采用比特币的可变长度 compactSize 格式书写。再往后是按顺序排列的交易本身,并有一项硬性要求:第一笔必须是 coinbase 交易,即向矿工支付报酬的那一笔。coinbase 交易排在第二位的区块,会和包含伪造签名的区块一样被断然拒绝。

区块大小不再按普通字节计算。自 SegWit 于2017年8月激活以来,上限为4,000,000权重单位,其中见证数据之外的每个字节占4个单位,每个见证字节占1个单位。这使得见证数据较多的区块上限接近4 MB,而充满旧式交易的区块约为1 MB,实际的典型区块介于1.5 MB 和2 MB 之间。最初的1,000,000字节规则仍在底层生效,作为非见证部分的上限,因此对“区块最大能有多大”这个问题,如实的回答是一个范围,而不是一个数字。

其余一切都由每个节点独立检查。区块头哈希必须不高于目标值,默克尔根必须与实际包含的交易相符,任何输入都不得被重复花费,coinbase 输出所索取的金额不得超过区块补贴加上所含交易的手续费之和。协议还对矿工设置了等待期:区块中新创建的币,必须在其上又构建了100个区块之后才能花费,因此,如果矿工的区块后来在链重组中被舍弃,他也不可能已经花掉这些收益。

购买比特币时为何重要

区块空间是一场拍卖,您的提币手续费就是其中的一次出价。

区块容量有限,而需求没有上限,因此当内存池繁忙时,每虚拟字节支付最多的交易会被优先打包,其余的则要等待。这正是每一张“我的提币为什么卡住了”工单背后的机制。转移币之前先查看手续费估算工具,并在可能时选择较为清闲的时段转移,不需要花费任何成本,而且通常节省的金额比您花一下午比较交易所手续费所得出的差额还要多。

十分钟这个数字是平均值,而不是时间表。区块的产生类似于无记忆的随机过程,因此间隔分布很分散:超过三分之一的区块耗时超过十分钟,约二十分之一的区块耗时超过半小时。因此,交易所在若干次确认后才为充币入账,向您给出的是一个分布,而不是到账时间,二十分钟内尚未到账的充币通常属于正常情况,并非丢失。

另外还有一种完全绕开区块空间的方式。闪电网络支付在链下结算,只在通道开启或关闭时才会涉及区块,这就是为什么像 Strike 这样的应用可以在数秒内转移价值,而链上提币则要等待下一个区块。在假定每一笔比特币转账都必须向矿工支付手续费之前,值得先了解这一取舍。

区块774,628内部:有史以来挖出的最大区块

区块774,628由 Luxor 矿池于2023年2月1日挖出,是比特币迄今产生的最大区块:3.96 MB。

它包含63笔交易,其中一笔占了总量中的3.94 MB,那是一幅 Taproot Wizard 图像的铭文,被塞进了 Taproot 见证数据中。该矿池直接协调了这笔交易,而不是从内存池中挑选,并且该交易给区块带来的收益微乎其微:手续费约为0.009 BTC,而当时的区块补贴仍为6.25 BTC。此前的纪录为2.77 MB。

这个区块值得查看,因为它展示了权重规则的实际作用。旧的1 MB 上限会使这笔交易无法实现,而4,000,000权重单位的额度之所以能容纳它,只是因为见证数据享有折扣。它还表明,单个参与者就可以占满整个区块,而这正是区块大小之争所争论的焦点。

区块 vs 区块头

区块是完整的对象;区块头是位于其最前面的80字节摘要。这一区分是出于实际需要,并非吹毛求疵。矿工只对区块头做哈希运算,轻钱包只下载区块头,首次同步的节点在请求任何一笔交易之前,会先获取区块头链。如果某份文件提到“区块哈希”,指的是这80字节的哈希,而不是其中所含支付的哈希。

区块 vs 过期区块

区块位于网络所认可的链上;过期区块是一个完全有效的区块,只是在成为那条链的竞争中落败了。偶尔会有两名矿工几乎同时求解成功,网络便会短暂地存在两个候选区块,而停止延伸的那条分支会被放弃。被丢弃的区块本身并无问题,其中的交易几乎总会在下一个区块中重新出现。这也是为什么一次确认比六次确认更弱:区块所处位置越深,竞争分支超过它的可能性就越小。

请勿混淆

常见问题

一个比特币区块可以容纳多少笔交易?

通常为几千笔,因为限制是4,000,000个权重单位,而不是交易笔数。装满小额现代交易的区块,容纳的交易数量多于承载多重签名或铭文数据的区块。

为什么我的交易没有进入下一个区块?

因为矿工按手续费率排序,而您的出价低于该区块的入选门槛。该交易会留在内存池中,待需求下降时被打包,或在您通过 replace-by-fee 提高手续费后被打包。

区块有时会在不到十分钟内产生吗?

经常如此。十分钟是难度调整所针对的长期平均值,单个出块间隔从几秒到远超一小时不等。大约每二十个间隔中就有一个超过三十分钟。

接着阅读

相关术语

挖矿与共识中的更多术语

阅读本页英文版