【一个有点特别的分布式系统而已】基础技术准备-防篡改

64 阅读2分钟

防篡改

在单点数据库系统中,几乎不用考虑数据被篡改的问题。因为,无论是数据库开放的用户或者是接入的上层系统,都是经过严格审核的,“都是自己人”。

但是,对于这种完全开放式的分布式数据库系统,理论上任何人都可以开启节点参与,成为区块链数据库的一个节点。如何避免数据不被恶意篡改?

简单地说,是通过算力和共识保证不被篡改的。

从算法的角度来说:验证一个结果比产生一个结果简单很多。某个节点,计算得出一个结果,其它节点验证该结果,超过50%的节点认同这个答案,产生结果的节点获得奖励。

这样,把交易信息(数据库信息)与期待的答案关联,只要节点产生出了正确的答案,就能获得奖励。

在利益的驱动下,节点为了获得奖励(金钱),就会尽力确认交易信息,而不是去伪造或篡改。

除非——

它的算力超过50%。那样的话,篡改将成为可能。可以参考下面的文章了解更多。 zhuanlan.zhihu.com/p/151293651

那么,51%算力攻击真的有人做吗?

理论上来说,要执行51%算力攻击,首先需要拥有比网络其他矿工更强的算力。

这意味着要有非常多的挖矿设备,大量挖矿设备本身就会消耗大量的资金。

而且除了设备,还需要大量的电力能源消耗。

由于电价上涨以及能源需求的增加,在过去几年里获得足够的电力来运营矿场变得愈发地困难。

当比特币网络还很小的时候,或许有可能获得足够的电力来运行提供51%算力的设备,但随着时间的推移,比特币网络消耗的电力持续增长,攻击者需要获得大量电力才能成功执行攻击,这种可能性也就越来越小。

发动算力攻击也是为了有利可图,但从经济角度来看,51%算力攻击的成本太高,利润太少,无法产生大量资金,并且会有受到重大损失的风险。

由于所涉及的成本和风险,进行51%攻击确实没有任何意义,而诚实挖矿则有利可图的多。