技术分析 | 比特币如何实现转账

很多刚刚接触区块链不久的小伙伴,可能看到“比特币交易需要6个区块确认”会很疑惑。为什么需要 6 个区块链确认呢?是指全网上的 6 个比特币矿工确认吗?今天,大白就给大家解释一下其中的原理。

在《什么是 51%算力攻击》一文中,大白给大家介绍了成功发动 51%算力攻击后,可以实现双花。我们再简单回顾一下双花的过程:

假设小黑给大白发了 666BTC,并被打包到了第 N 个区块。没过几分钟,小黑反悔了,通过自己控制的超过 50% 的算力,发起了 51% 算力攻击,通过剔除发给大白的 666BTC 那笔交易,重组第 N 个区块,并在重组的第 N 个区块后面继续延展区块,使之成为最长合法链。


这就是双花的过程,小黑发给大白的那 666BTC 被作废。

从上面的例子中,我们可以看到,即便大白当时收到了小黑转账过来的 666BTC,交易被打包上链,这笔交易也是有可能被作废的。

为了避免双花造成的损失,一般认为,等 6 个区块确认后的比特币交易基本上就不可篡改了。也就是说,如果小黑发给大白的 666BTC 这笔交易被打包在了第 N 个区块(第 1 个区块确认),大白等到第 N+5 个区块出现的时候(第 6 个区块确认),这笔交易基本上就不可篡改了。

请注意,这里用的是“基本上”,并不是绝对。

不久前,币安发生了黑客盗币事件,一共被盗 7000 多枚比特币,这笔比特币被黑客转走,交易记录打包在区块高度 575013 上。事故发生不久后,有人就提议进行区块重组,当时已经有很多个区块确认了。

区块重组的意思是,从黑客转走比特币的那个区块开始,剔除黑客的交易记录,重新创造那个区块以及所有之后的区块。如下图:


据说盗币事件发生后,币安的 CZ 给比特大陆的吴忌寒打了电话,沟通过比特币区块链重组的事情。当时,他们能联合比较大的比特币算力,从技术的角度看是有能力重组并让重组链成为比特币最长合法链的。如何计算重组后需要花费多长时间成为最长合法链,可以参考白话区块链学堂的推文《币安 7074 枚比特币被盗,如果区块重组有多大概率成功拿回》。

重组消息一出,业内一片哗然,各种争议声不断。当然,最后没有重组,币安愿意自己承担黑客盗币的所有损失。

一般来说,确认的区块数越多,越安全,被 51% 攻击后篡改、重组的可能性越低。至于我们经常看到的比特币交易 6 个区块确认后就安全了,这个数字 6 并不是硬性规定的,只是说有了 6 个区块确认,被篡改的可能性非常低,因为黑客或者攻击者目前很难掌握大量的比特币算力来做恶。

比特币平均每 10 分钟打包一个区块,6 个区块确认平均下来需要 60 分钟。那我们是不是每一笔比特币交易,都要等上 60 多分钟呢?

其实不是。对于小额交易,不需要等待 6 个区块确认,因为比特币发生 51% 算力攻击的可能性很小。一般来说,小于 1000 美元的比特币交易,1 个区块确认即可;介于 1000~10000 美元的比特币交易,一般的交易平台充值、提现会要求至少 3 个区块确认;介于 10000~100000 美元的比特币交易,基本需要 6 个区块确认;大于 100000 美元的交易,确认的区块数量越多越好。