加密货币:矿业科普|矿工为何打包空块?

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

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

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

知矿大学小编@OWEN的回答:

比特币的空块是指,区块中仅打包了创币交易的区块。在《如果区块链会说话》一文介绍过,截止到目前,大约有9万空块,约占目前区块数量的14%。这其中很多空块是在比特币早期产生的,那时候用比特币的用户极少,链上几乎没有交易产生,所以矿工也只能打包空块了。

后来比特币链上交易多了起来,内存池一直有等待矿工打包的交易,这种情况下,为什么矿工还会打包空块??@地摊小王子提问是针对这种情况的,以下的回答也是针对这种情况的。

美国监管机构:多家油气公司转向加密挖矿业务:金色财经报道,根据周三发布的一份美国政府监管机构报告,一些在美国公共土地上运营的石油和天然气钻井公司正在将天然气转移到加密货币挖矿业务中,而无需支付联邦特许权使用费。内政部监察长办公室(Office of Inspector General)建议国土安全部发布指导意见,以应对这些公司的行为。

内政部在对监察长办公室的回应中表示,将采取行动,将报告中概述的威胁告知工作人员,并与机构官员合作,讨论如何为该部门制定指导方针。[2023/3/3 12:40:43]

?01阴谋论

首先,打包空块的矿工是制造比特币网络拥堵的坏矿工,这是彻彻底底的阴谋论。

美联国际教育于美国宾州开始加密货币挖矿业务初步试运营:金色财经报道,美联国际教育(METX.US)宣布已开始在美国宾夕法尼亚州进行加密货币挖矿业务的初步试运营。目前,该公司已获得147台加密货币挖矿机,总计算能力约为14P,已在美国宾夕法尼亚州进行商业试行。作为此前宣布与安高盟(AGMH.US)的战略合作伙伴关系的一部分,美联国际教育从安高盟购买了加密货币挖矿机。近日,安高盟已向该公司交付1335台比特币挖矿机。与交付的设备一起,该公司将扩大其采矿机的计算能力,以达到到135P。该公司预计所有矿机将于2022年1月全面运营,这标志着其加密货币挖矿业务正式运营。(智通财经)[2022/1/12 8:43:05]

假设真的有攻击者通过打包空块的方式来造成比特币网络拥堵,这种攻击非常低效,而且需要投入大量的成本。

俄罗斯矿业巨头Nornickel加入区块链倡议以助力负责任矿物采购:俄罗斯采矿和冶炼巨头Nornickel已经加入了一项区块链倡议,以支持负责任矿物采购和从矿山到市场的生产实践。作为负责任采购区块链网络(RSBN)的一部分,Nornickel此举将使其与整个矿产供应链上的其他行业利益相关者建立联系。

此前消息,Nornickel将很快在基于Hyperledger的区块链平台Atomyze发行由金属支持的代币。该平台现已与包括商品贸易公司Trafigura、金属精炼公司Umicore和供应链咨询公司Traxys在内的合作伙伴一起进行测试。首批代币将由Nornickel开采的钯、钴和铜作为支撑。该公司表示,在第一年,Nornickel期望将其总销售额的10%代币化,将来这个数字可能会上升到20%。Atomyze也将在美国和瑞士推出,但仅限于公司,而非个人。一旦俄罗斯有关数字金融资产的法律生效,并在国外得到进一步批准,预计年底前将开始实施。(NS Energy Business)[2021/1/15 16:16:28]

目前比特币全网算力超过100E,全网矿工每天大约挖出144个块,每个块打包交易的上限在4000笔左右。假设恶意矿工想控制10%的算力来进行“空块攻击”,他们需要控制超过10E的算力,这么大的算力规模,不管是通过租用算力,还是买矿机来实现,都是一笔非常巨大的成本支出。

获比特币矿业巨头Bitfury支持 加拿大矿厂Hut 8月底登陆多伦多证券交易所:据彭博社报道,总部位于加拿大多伦多的Hut 8 Mining Corp公司将在本月底登陆多伦多证券交易所。据悉,Hut 8 Mining将通过反向收购形式上市——即通过收购一家已经上市的企业达成自己的上市目的。据了解,去年十二月,该公司宣布与比特币矿业巨头Bitfury合作,以收购、部署、维护和运营北美地区最大的比特币挖矿数据中心。根据提交的上市文件显示,Bitfury将会提供硬件、软件工具和后勤支持,全力满足Hut 8在北美市场的业务扩张需要。[2018/2/14]

参考crypto51的即时数据来计算发起攻击的成本,crypto51给出了对比特币进行51%算力攻击每小时需要的成本,我们假设的是10%的算力,也就是这个攻击成本的五分之一,每小时大约需要花费¥53万,攻击成本非常高。当然这种攻击,还是可以得到区块奖励回报的。

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

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

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

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

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

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

02真相

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

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

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

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

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

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

03总结

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

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

金星链

[0:31ms0-1:674ms