+ -

什么是比特币空区块?为什么会有空区块?是威胁还是必然?

时间:2025-08-21

来源:互联网

在手机上看
手机扫描阅读

什么是比特币空区块?比特币空区块是怎么产生的?为什么会产生比特币空区块呢?比特币空区块有什么作用?比特币空区块是威胁吗?

比特币网路中的「空区块」是一种仅包含矿工奖励(coinbase)的特殊区块,该区块并未纳入任何用户交易。这种现象虽然看似浪费资源,但背后是矿工在挖矿效率与收入稳定性之间的机会成本之选择。

下面,本站小编将给大家带来关于空区块的形成机制、对比特币网路的影响,以及如何透过技术与协议的改进,减少空区块对网路效率与用户体验的影响。有需要的朋友一起看看吧!

引言

有时,你可能会注意到,一个新生成的比特币区块中只有一笔交易——那就是coinbase 交易(这里说的不是那家交易所),目前这笔交易会为矿工带来3.125 比特币的奖励。(矿工收益会随着「比特币减半」有所减少)

但为什么这样的区块会出现?这是不是某种对比特币网路的攻击?

事实上,一个完全空的区块出现在比特币网路已经不是第一次(像是在区块高度 776,339 和 857116 都曾发生过)!这个区块虽然被成功上传到比特币区块链,但它并未包含任何用户交易。

「空区块」到底是什么?它是比特币网路的故障,还是某种必然现象?在本文中,我们将深入探讨空区块的形成原因、其对网路的影响,以及潜在的应对策略。

图、空区块示例(高度 857116)(资料来源:https://mempool.space/zh/block/000000000000000000020a41a1d234191d5f86a051cfc105000a5163f6a58b82)注:常用的比特币浏览器:mempool.com、blockchain.com、blockchair.com、blockcypher.com

矿工挖矿流程

新区块的传播与验证:当有矿工成功发现新区块时,该区块会被广播到整个网络,并分发到所有矿池其他矿工需对新区块进行验证,像是检查工作量证明(Proof of Work)是否正确以及区块中的交易是否有效更新记忆池(mempool):矿工会从记忆池中剔除已被确认的交易,留下未被确认的交易建立候选区块:矿工根据记忆池中的未确认交易,建立一个候选区块,并引用前一区块的哈希值,添加剩余的交易候选区块中必须包含一笔 coinbase 交易,作为矿工挖掘成功后的奖励来源构建区块头:矿工为候选区块构建区块头(header),内容包含前一区块的哈希值、时间戳、目标难度和随机数(nonce)计算哈希值:矿工消耗大量运算资源,以不断更新区块头中的随机数(nonce),计算区块头的哈希值,目的是找到一个小于当前网络目标值的哈希广播新区块:一旦找到符合要求的哈希值,矿工立即将新区块广播至网络,供其他节点进行验证获得奖励:如果新区块被网络接受,矿工将获得区块补贴(coinbase 奖励)和该区块中交易的手续费收入。

在某些情况下,为了降低网络延迟的影响,矿工可能会快速生成仅包含 coinbase 交易的空白候选区块,这种空区块能有效锁定奖励,但无法处理其他交易。 (下段会详细说明何为空区块)

矿池是如何与矿工协作的

比特币(Bitcoin)网络的挖矿是一种通过暴力计算符合条件的哈希值来实现工作量证明(Proof of Work,PoW)的过程,其难度如今已经变得很高。就拿上述的 825999 区块举例,该区块产出当时的全网难度约为 73.20 T。这是什么概念呢?如果一个矿工拥有一个 1Ghash/s 效率的计算设备(这比常规的家用显卡效率快得多),那么他需要约 3638791736 天(99693 个世纪!)才能成功挖掘到一个区块。这几乎是不可能独立完成的。

因此我们有了矿池。矿池按照特定的分配方式(如,按工作量以及最近收益的移动平均值)为参与计算的矿工按照所贡献的算力分配挖矿所获得的收益(与此同时,矿池自己也会获得分成)。为了计算一个区块的目标哈希值,矿工必须首先从矿池获得区块中包含的交易信息等内容后,再通过调整区块中的随机数(nonce)等值,尝试计算出符合目标要求的哈希值。区块中包含的交易数量可能很多(从区块链浏览器来看的话,一个区块中可以容纳 4,000 笔交易,有时候还要更多),因此典型上来讲,矿池可能需要几秒中的时间才能将这些编排的交易内容(矿工待解的“谜题”)整理并发送给矿工(其中还有网络传输时间以及网络延迟)。

什么是空区块

加密货币挖矿其实是一个计算打包的过程,矿工们首先需要进行算力竞争,谁先解出区块难题谁就先获得了记账权,获得记账权的矿工需要把用户广播出来的交易信息打包到这个区块中,随后放到区块链上传递下去。

而如果矿工获得记账权后,并不在区块中打包交易信息,我们就将其称作为空块。空块上不包含交易信息,只是矿工利用它来获得区块奖励。这种情况下,由于不包含交易,所以也无法获得相应的交易矿工费/Gas费奖励,因此矿工只能获得最基础的爆块奖励。

孤块是什么

在区块链网络中,由于区块在网络中传输和广播是需要一定的时间,如果两个矿工几乎同时发现了同样高度的块,那么就会出现竞争关系。最终稍微晚一点诞生的区块虽然也是正常运算产生的,但由于“最长链”原则,这个稍晚一些的区块将无法成为主链的一部分,在比特币网络中,我们把这些挖得稍晚的区块叫“孤块”,是需要完全抛弃掉的,挖到孤块的矿工也无法得到相应的区块奖励。

孤块率越高将意味着挖到的无效区块越多,收入也会随之降低。因此如何降低孤块率成为矿池和矿工们会去思考的问题,例如ViaBTC微比特矿池通过自行研发的比特币客户端,对比特币网络广播和传输过程进行了技术优化,使得矿工能够更快地发现和广播比特币新的区块,降低了矿工挖矿的孤块率,保障矿工收益。

叔块是什么

在以太坊中,也有“孤块”这一现象的出现。但是由于以太坊的出块时间比较短,为了防止矿池算力过大控制挖矿过程,同时避免算力的浪费,如果主链中的区块愿意接受这些稍晚产生的“孤块”,那么它就可以成为叔块,被包容进接受它的主链区块中,而这部分挖出叔块的矿工也能获得相应的叔块奖励。

叔块机制的目的是为了更好地保护以太坊网络的安全。相较于比特币,以太坊的出块时间要短很多,这样很有可能会出现临时分叉,在这种情况下,孤块的大量存在会容易导致以太坊的主链可能不是“最重”的那条链,最终影响到主链的安全性,因此加入将“孤块”变成“叔块”的机制其实是一种更安全的行为。

这些挖出了包容叔块的区块的矿工能够获得相应的叔块引用奖励,大约为1/32的基础挖矿奖励。当然叔块的产生也会有一些限制,叔块必须是区块的前2层-7层的区块的直接子块,并且随着间隔越大,叔块奖励会越少,比如是前2层区块的子块也就是间隔1层可以获得7/8的挖矿基础奖励,间隔两层可以获得6/8,以此类推。

总体来看,对于矿工而言,空块的诞生会导致矿工费/Gas费的减少,孤块率过高也就是无效计算过多将直接导致收入减少,叔块引用将获得一定的额外的叔块引用奖励。所以矿工在接入算力时,最好应该考虑一些孤块率更低的矿池,从而更好地保障自己的挖矿收入。

空区块的形成

空区块的概念

在比特币区块链中,每个区块通常包含多笔交易,这些交易不仅为网路增加价值,还支持比特币作为支付处理系统的功能。然而,空区块(也被称为「单交易区块」)只包含矿工的 coinbase 奖励,并未纳入其他交易,因此也放弃了额外的交易手续费收入。

为了鼓励矿工尽快开采区块,矿池会在新区块被定位后立即向矿工提供一个空白的区块模板(以减少挖掘下一个区块所需的时间,从而最大限度地提高硬体的哈希效率。),让他们可以迅速开始下一轮挖矿(即使此时尚未收到新的交易数据)。在矿池给完区块模板和写入交易的过渡期间(通常只有一到两秒),矿工可能会「运气极好」,利用这个空模板成功挖出一个新区块,从而形成空区块。

值得注意的是,空区块并不会对比特币网路造成威胁。即使区块中没有用户交易,coinbase 奖励仍会被生成,这不仅激励矿工参与挖矿,还确保比特币的供应逐步接近其 2,100 万枚的上限。

空区块内的资讯

空区块虽然没有包含用户交易,但仍然记录了一些资讯:

区块头:区块的基本资讯,例如版本号、前一区块的哈希值、时间戳Coinbase 交易:唯一包含的交易,即矿工的奖励交易该交易为矿工分配挖掘区块的奖励默克尔树根(Merkle Root):即使区块中没有其他交易,coinbase 交易仍会生成一个默克尔树根,用于证明交易数据的完整性区块大小与重量:虽然空区块的数据量较小,但仍有大小记录矿工地址(若有标记):某些矿工会在 coinbase 交易中嵌入自己的识别信息,例如矿池名称或地址区块高度:区块链中该区块的位置(例如第 871732 区块)Nonce 值:矿工找到的随机数,用于解开工作量证明的数学难题(Proof of Work 的解答)

图、空区块示例(高度 871732)(资料来源:https://btc.tokenview.io/cn/block/871732?_gl=1%2aww3zil%2a_ga%2aMzc0NDE4MTQxLjE3MzQwNzIyMTQ.%2a_ga_0RCPHZPZ TE%2aMTczNDA3MjIxMy4xLjEuMTczNDA3MjI2My4wLjAuMA..&_ga=2.29097727.291129773.1734072214-374418141.1734072214)

为什么矿工创建空区块?

当矿工在上一个区块生成后没多久,矿池会在新区块被定位后立即向矿工提供一个空白的区块模板(通常时间落在几秒内)时。此时,矿工面临两种选择:要么立即生成一个空区块以获得有保证的区块补贴(例如3.125 比特币),要么花时间排序交易以增加手续费收入,但冒着在完成之前被其他矿工抢先挖出该区块的风险。

这是矿工对「机会成本」的考量,若矿工花过多时间处理交易,而其他矿工率先完成该区块,则不仅无法获得交易手续费,连基本的区块补贴也会损失。相较之下,若生成空区块,虽然放弃了额外的手续费收入,但可以稳定地锁定补贴。

上述段落中,我们有说明空区块并不会对比特币网路造成威胁。网路上有人认为空区块就像「垃圾邮件」一般会对网路造成干扰,但这种看法并不完全正确。空区块确实不会处理任何待处理交易,但它们也不会造成混乱。相反的,这些区块也要通过 Proof of Work 机制,并为下个区块增加工作量证明的强度,为之前的所有区块提供了更高的安全性,同时维持了网路的完整性。

注:虽然空区块并不会对网路造成威胁,但倘若有高频率的空块可能表示网路没有充分发挥其潜力

空区块的影响

正面碰撞

提高网路安全性:

空区块虽然不含用户交易,但仍完成了工作量证明(Proof of Work),使下个区块的计算难度增加且每个空区块的生成都会进一步巩固了之前所有区块的安全性,提升了抵御双重支付攻击的能力

稳定矿工收入:

纵使没有交易数据,矿工仍能获得稳定的区块补贴,这提升了矿工持续为此网路输出的动机

加速挖矿效率:

矿池在新区块被定位后立即向矿工提供一个空白的区块模板,可以减少挖掘下一个区块所需的时间

维持区块链的连续性:

即使没有交易数据,空区块也能确保区块链的「连续性」,防止网路中断

负面影响

降低交易处理效率:

空区块内没有交易数据,无法处理待确认的交易,导致记忆池(mempool)中的交易累积倘若遇到交易量高峰时,空区块会进一步加剧网路拥堵,影响整体交易体验。

降低区块链吞吐量:

每秒交易数量(TPS)因空区块而下降,降低了比特币作为支付系统的可能性

用户体验与信任问题:

承上所述,空区块可能导致交易等待时间增加,给用户带来不便用户对比特币网路的期望与矿工优化利润的行为之间可能产生矛盾情结,进一步损害用户对网路的信任(矿工可以「选择」采取这种方式来增加收入,但这种行为可能忽视了网路整体效能的需求,进一步强化了对利润驱动的批评)

能源消耗与资源效率问题:

空区块使用的能源几乎与包含完整交易的区块相同,这会引发对能源利用效率的质疑

空区块的经济学博弈

绝大多数比特币矿工遵循最长链(Longest chain)原则工作:当矿工得知网络上有一个新的有效区块被发现时,矿工会希望基于这个最新产生的区块继续计算下一个区块的哈希。但前面我们提到,完整的下一个区块的信息可能需要几秒钟时间才能传输到矿工本地以供计算。在此期间,为了不浪费矿工宝贵的时间(以及算力),矿池通常会(预先)发送给矿工一个区块的模版信息,该信息是只包含一个区块奖励交易(coinbase transaction)的最小区块数据,以供矿工立刻开始计算。而完整的待计算区块的数据将在之后很快的时间发送给矿工。有的时候,幸运的矿工会在这(短暂的)几秒钟时间内,就基于这个最小的区块模版,计算出下一个有效的区块的结果。这个时候会发生什么?大多数矿工会选择将这个“空区块”广播到区块链网络,以获得该区块中的区块奖励。

在上面的场景中,当矿工计算出一个有效的“空区块”后,矿工虽然无法获得由于包含其他交易所带来的手续费奖励,但是矿工广播交易至少会获得确定性的由新区块带来的奖励。同样地,矿工还面临着其他矿工也计算出有效区块的压力,对手矿工可能会先于自己将另外一个有效的区块广播到网络中。因此,面对一个确定性的(但是可能较少)的奖励,以及另一个有极大不确定性的较多的奖励时,我想绝大多数矿工都会选择广播自己计算出的第一个区块的。

值得注意的是,这样的区块由于不会包含其他任何的交易信息,并且还在区块链中占用了一个区块的位置,会被一些社区成员认为是一种垃圾信息以及对比特币网络的攻击。针对这一点,有一篇发布于 LinkedIn 上的文章很好地讨论了这一点。文章中认为,尽管“空区块”不处理任何内存池中的等待交易,但它们并没有为区块链网络天价更多混乱,反而增强了所有先前区块的安全性,并重申了矿工们维护网络完整性的承诺。“空区块”实际上是对比特币巧妙激励结构的证明。在这个系统中,每个决定,即使是区块中没有交易,也都有助于网络的整体强度和韧性。空区块并不常见,通常不是攻击,也不是垃圾邮件,它们是矿工的战略决策,凸显了比特币架构中内嵌的韧性和远见。

减少空区块的策略

减少空区块的策略可从「技术面」、「协议面」谈起:

技术层面的解决方案

采用 Compact Block协议,以减少区块传播时的数据量,使矿工能更快接收到完整的交易数据(详情可参阅:A. Kim、J. Kim、M. Essaid、S. Park 和 H. Ju,“比特币网络中紧凑块传播延迟的分析”, 2021年第22届亚太网络运营与管理研讨会(APNOMS),台湾台南,2021 年,第 17 页。 313-318,doi:10.23919/APNOMS52696.2021.9562656。)采用Erlay协议,以提升交易的传播效率,缩短交易从记忆池广播到矿工接收的时间开发更高效的默克尔树计算算法,缩短处理交易的时间,或让矿工在挖掘新区块时能快速生成含交易的默克尔树,而不是仅使用空模板。

协议层面的改进

规定每个区块至少需要包含一定数量或手续费总额的交易,否则矿工无法获得完整区块补贴提高手续费在总奖励中的占比,激励矿工处理更多交易而非挖掘空区块

这是坏事吗?

比特币网络的整个重点在于处理交易。因此,空块经常被批判为‘不良行为’,因为为网络创造的价值非常小,并且加速通货紧缩和从‘诚实’矿工那里窃取劳动果实。

然而,这也可以被当作是为了平衡比特币网络的中心化趋势:赢得一个区块的矿池可以立即开始下一个区块的挖掘工作,因为他们已经知道哪些交易被包含在区块中。而其他矿工首先要下载的交易,然后生成一个不包含这些交易的新区块。只挖掘块头(block header)可以被认为限制了中心化的好处。

从技术上讲,这很容易阻止,例如通过包含一种连接在块头中的所有以前的交易的coinbase哈希。近期空块数量下降表明这一问题可以通过改进协议来解决,因为这些改进降低了空块吸引力。另外,区块奖励的逐渐减少和对交易费的依赖增加都可能会让挖掘空块的利润越来越小。

空块数量下降

在过去几个月里,空块的份额已经下降了,虽然所有矿池的计时并不全相同。其背后的理论原因是:挖矿软件获得提升,尤其是Bitcoin Core 0.12, 减少了由一个矿池开采的区块的验证与新非空块挖矿之间的时间。

这些改善包括:

1.允许预先计算矿工验证区块中所有交易所需要做的一些工作,而不是在创建区块的时候再做。

2.Relay Network配置改善:一种交易的技术简化优先,帮助矿工决定区块包含哪些交易。

3.Bitcoin Core GetBlockTemplate改善——个体矿工可以通过这种改善请求区块的组成来优化挖矿。

结论

空区块的产生主要由矿工为了追求效率和稳定收益而产生。在区块定位后,矿池会立即向矿工提供空白的区块模板,即使交易数据尚未完全传播至矿工手中。空区块的生成并非网路故障或恶意行为,而是矿工在考量机会成本后做出的选择。

然而,空区块对比特币网路也带来了一定的挑战,包括降低交易处理效率、减少每秒交易数量(TPS)和增加能源消耗等问题。这可能导致用户等待时间加长。为了减少空区块的负面影响,技术层面可以采用如 Compact Block 和 Erlay 协议来提升交易传播效率,而协议层面则可通过设定最低交易要求或调整手续费比例来激励矿工优先处理交易。空区块的存在并非网路设计的缺陷,而动态平衡的一部分,通过持续优化,比特币网路的效率和稳定性仍有进一步提升的空间。

以上就是本站小编给大家分享的是什么是比特币空区块?为什么会有空区块?是威胁还是必然的详细解读了,希望此篇文章能够帮助大家了解比特币空区块吧!

今日更新

热门下载

更多