矿业科普|矿工为何打包空块?

「知矿大学问答」是以问答的形式,邀请行业资深从业者,解答用户挖矿相关的提问。

来自@地摊小王子?的提问:

打包交易有手续费收入,为什么会有矿工打包空块呢?有人说打包空块的矿工是制造比特币网络拥堵的坏矿工,这种说法对吗?

知矿大学小编/img/20230515224523724381/0.jpg "/>

动态 | 矿业巨头Bitfury在新一轮融资中获得8000万美元:据cointelegraph消息,比特币矿业基础设施提供商BitFury在11月6日与Cointelegraph分享的新闻稿中披露,BitFury在一轮非公开融资中筹集了8000万美元。这一轮融资是由欧洲风险投资基金Korelya capital牵头。几周前,有传言称BitFury考虑进行IPO。其他参与者包括韩国互联网巨头Naver Group、亚洲金融机构麦格理资本(Macquarie Capital)和日本电通(Dentsu Japan),以及迈克尔?诺沃格拉茨(Michael Novogratz)的银河数码(Galaxy Digital)。[2018/11/6]

▲https://www.crypto51.app/?ref=block123

再来说“空块攻击”对比特币网络破坏效果。

空块攻击难以对比特币造成实质性的伤害,最终结果是损人利己、自讨没趣。

假设比特币网络已经很拥堵了,用10%算力进行“空块攻击”,相当于区块大小被恶意矿工人为“缩小“了10%,实际效果是平均每个区块能打包交易数量的上限”下降“了10%。比特币网络如果实在太拥堵,又会反过来降低人们链上交易的需求,网络就变得不再拥堵了,这样一来,“空块攻击”的效果就难以起到持续性效果。

综上,“空块攻击”需要付出高昂的成本代价,在攻击效果上也很难持续,打包空块是矿工发起“空块攻击”的这种言论是不明真相者的阴谋论。

矿工打包空块的真相是什么呢?

02真相

矿工挖矿是一场比拼速度的竞赛。不仅要看谁先找到了符合系统要求的解,还要把找到的解,尽快广播出去。快,对于矿工来说是一件贯穿始终的事情。

一个区块包含两部分,区块头和区块体。比特币客户端在对区块广播时,是将区块头和区块体分开传播的。区块头包含了版本号、父区块头哈希值、时间戳、默克尔树根哈希值、难度目标、随机数等6部分,它的大小只有80字节。交易信息被打包在区块体里。一个满载的区块大小为1M,它是区块头大小的12500倍。

越多的信息量,传播延时越长。区块头和区块体的大小差异,造成其他矿工会先接收到新区块头数据,一段时间之后,再收到区块体的数据。

收到区块头数据还没收到区块体数据的这段时间,对于矿工来说,也是有成本的,矿机依旧在运行。

矿工为了充分利用这段时间进行挖矿,就不能往区块里填充交易,也就说矿工只能尝试挖空块。这是因为矿工没有收到父区块打包的交易数据,不知道父区块打包了哪些交易,如果矿工往区块里填充交易,可能会把已经被父区块打包的交易再次打包,这会造成区块数据不合法,之前为此付出努力都变成了无用功。为了避免这种情况发生,在这段时间,矿工明智的做法是不打包交易挖空块。如果这段时间刚好挖到新区块,那么挖出的块就是空块。

粗略统计了一下,在待确认交易内存池持续不空的情况下,21万多个区块中,大约有0.75%的空块。另外这部分空块的出块时间,与其父区块的时间间隔都在几十秒之内,这样很好印证了我们前面给出的信息延迟的解释。

03总结

矿工打包空块是出于经济利益的考量,这样做是矿工最明智的选择。矿工为了充分利用这段时间进行挖矿,且避免与父区块中打包的交易发生冲突,就不能往区块里填充交易,也就是说矿工只能尝试挖空块。打包空块是恶意矿工为了对比特币发起“空块攻击”,这是典型的阴谋论。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

[0:15ms0-2:105ms