区块链的不变性是什么?
通常,不变性的具体含义是指某物不会随时间而改变。
以比特币为例,交易数据是不断膨胀的,所以在区块链的范畴里,不变性是指交易一旦被写入账本,任何人都无法更改。通过区块链,数据提供者可以证明其提供的数据没有被更改,而数据接收者可以确信其接收的数据没有被篡改。
值得注意的是,这种不变性是针对所有人的,区块链维护的账本和银行的账本不一样。对于银行账户,作为普通用户,只能看自己的账本,不能更改历史数据。而其他权限更高的人,比如银行内部的系统管理员,则有完全修改数据的能力。区块链技术保证了包括系统管理员在内的任何人都不能修改历史记录。
然而,区块链技术的不变性不是绝对的。
举个简单的例子,你写了一个要发送的消息,在发送之前,你可以随意修改,这个没人知道。如果你把它发给了朋友,这条信息对你来说是不变的。如果要修改,可以让好友删除原消息,然后再重新发送,这样别人就不会知道你修改了这条消息。那么,如果发给很多人呢?对你来说,这种不变性是很强的,因为你要说服每一个短信接收者删除原来的短信。理论上这是可以实现的,但现实是残酷的。群消息数量越多,更改数据就越困难。
区块链也是基于同样的原理。数据篡改者篡改数据并不难。难点在于如何防止别人发现这种篡改。只要别人能很快验证数据被篡改,就说明这种篡改行为是失败的。这使得变相修改某个东西变得更加困难。