使用工作量证明的区块链通常被称为不可篡改账本:注册在此类区块链的所有内容将永久存在。修改或替换这些信息是不可能的。但真的不可能强制改变区块链,更改交易历史并重新分配代币吗?简单来说:并非不可能,只是非常非常困难。
区块链可能不是完美的不可篡改性,但要找到一个同样复杂的数字系统却具有此种特性,确实不易。事实上,加密货币区块链相较其他数字货币形式,实现了令人羡慕的不可篡改性水平。其开发者采取了许多措施以确保这些加密货币作为可靠和不可更改的账本运行,而无需信任中央权威机构来保证记录的准确性。
本文探讨了区块链内容可能发生变化的边缘案例,并展示了不可篡改性概念存在的不足之处。
修改区块链历史的最明显方法之一是通过 51% 攻击(也称为双重支付攻击,因为它允许行为人重新支付已经花费的币)。
在 51% 攻击场景中,攻击者通过控制大部分哈希率(生成新区块所需的计算能力)来控制区块链。这允许他们按照自己的意愿修改交易历史,为特定账户增资同时排空其他账户。
然而,对一个受欢迎的区块链进行 51% 攻击说起来容易做起来难,这需要大量资金(用于高档采矿设备)和电力(运行设备)才能成功。并且从经济角度来看这并不可行,因为这很可能导致目标加密货币价格崩溃。
分叉是交易历史可能发生变化的另一种情况。硬分叉有权改变区块链的几乎所有方面(参见比特币现金)并且也有可能重新分配币。
这就是 2016 年以太坊 DAO 分叉发生的情况。一个主要的以太坊智能合约,称为去中心化自治组织,被利用,从中盗取了 360 万 ETH(当时价值约 5000 万美元)。为了减轻损失,大多数以太坊用户决定采纳一个分叉,该分叉返还了被盗的 ETH。
当然,这种分叉只能在多数票决定下实施,并且实际上支持分叉的投票以绝对优势获胜。如果不是为了返还他们被盗的 ETH,DAO 投资者不太可能这样做。他们牺牲了不变性,以及随之而来的 DAO 的最高价值即“代码即法律”,以换取因 DAO 智能合约中的漏洞而丢失的资金的回收。
当在区块链上进行交易时,它需要被最终确定。我们通常认为这是指交易被挖掘出来,意味着它被包含在一个区块中。然而,大多数处理加密货币的商家和交易所并不认为这足够,他们要求在包含你交易的区块之后再添加一定数量的区块。
他们这样做是因为最新区块中的包含并不保证最终确定性。实际上,没有任何交易能达到绝对的最终状态。从恶意矿工到网络连接问题等一系列因素,可能意味着最后一个区块不合法,并且有可能(尽管几率小)还会发生变化——验证人可能会拒绝它,继续在另一个路径上延续区块链。
然而,随着每个新区块的加入,你的交易被篡改的可能性越来越小。达到一定程度后,当交易被足够深度地嵌入后,它就达到了实际的最终状态,之后其不被篡改性几乎可以确定。这并不需要极深的深度。你通常需要等待 3-6 个比特币区块(大约一个小时)和大约 12 个以太坊区块(通常不超过 4 分钟),你的交易才被视为已完成。
因此,虽然区块链并非 100% 不可篡改,并且在极端和罕见的案例中,甚至可能违背开发者和用户的意愿发生改变,但它们足够接近这一目标,可以称之为实际上的不可篡改性。对于工作量证明区块链如比特币,他们拥有的挖矿能力越多,变得越不可篡改。这意味着更大的区块链,拥有更多社区支持,比较小的区块链更难改变。
就货币系统而言,大型公共区块链提供了我们迄今为止能够实现的最高程度的透明度和不可篡改性。随着它们变得更大并获得更多支持,它们将只会变得更加不可篡改。