学习
实践
活动
专区
工具
TVP
写文章

区块链的安全性究竟在哪儿?不可篡改性+51%攻击

昨天又有刚刚打开区块链大门的小伙伴很疑惑的问大佬:你说区块链的优势是数据不能篡改,那为什么不能篡改?

小伙子提的问题很好,为什么不能篡改呢,因为区块链的设定就是这样啊,人设不能崩啊!

咳咳说正事,其实是这样的。

区块链的基本定义大家都应该了解了,说白了就是大家一起记账,一个区块链系统由许多节点组成,这些节点一般就是一台计算机。在该系统中,每个参与的节点都有机会去竞争记账,即更新数据库信息。系统会在一段时间内(可能是十分钟,也可能是一秒钟),选出其中记账最快最好的一个节点,让他在这一段时间内记账,它会把这段时间内数据变化记录在一个数据区块中。

我们把这个数据区块想象成一页纸。在记完帐以后,该节点就会把这一页的账本发给其它节点。其它节点会核实这一页账本是否无误,如果没有问题就会放入自己的账本中。在系统里面,这一页账本的数据表现形式,称为区块。该区块中就记录了整个账本数据在这段时间里的变化。然后把这个更新结果发给系统里的每一个节点。于是,整个系统的每个节点都有着完全一样的账本。

我们把这种记账方式称为方式区块链技术或者分布式总账技术。

那么问题就来了,这个账本内容安全吗?

首先,每个节点的权利是一样的,任意节点被摧毁都不会影响整个系统的安全,也不会造成数据丢失。而且,每个节点的账本数据都是一模一样的,也就意味着单个节点的数据篡改是没有任何意义的。因为如果系统发现俩个账本对不上,它就认为拥有相同账本数量相对较多的节点的版本才是真实的数据版本。

我们再来说的简单一点,我们都有微信群,微信群的聊天记录就是不可篡改的。

一个微信群,有500人,每个人手机上都有聊天记录的一个完整备份。任何群友都不可能去修改别人手机上的聊天记录,只能修改自己的,哪怕是马化腾也做不到修改别人手机的聊天记录的。任何人即使修改了自己的记录,但别的群友可以指正,只要更多的群友拿出证据,就可以证明这个心怀不轨的人修改了记录。

区块链也是存着一些特定的“聊天记录”,这些记录在区块链世界里有独特的名字——交易。

其原理是和微信群是一样的,所有玩这个区块链的人(被称为节点钱包)都完整地保留一份交易的历史记录。这样任何单个人想修改这些历史记录,别的人都可以拿出自己的那一份备份,来证明这些心怀不轨的人试图作弊,系统会自动舍弃这部分认为被篡改过的账本。

机智的小伙伴就要问了,万一大部分的人都要作弊呢,岂不是多数打败少数骗过了系统?

没错,这就是通常所说的区块链51%攻击。字面意思,51%的人选择作弊,打败了49%说真话的人。

不过,这一操作相当困难。当整个系统中的节点数量高达成千上万个,甚至数十万个时,那么篡改数据的可能性就会大大降低。因为,这些节点很可能分布在世界上每一个角落,理论上说,除非你能控制世界上大多数电脑,否则你没有机会去篡改区块链上的数据。

还有另一个51%攻击的方法,就是构建出和原来一样的系统一样多的节点(算力)的方式来攻击这个区块链系统(尽管重要的是要构建出足够大的算力,而不仅仅是节点的数量,但考虑到算力概念理解更加复杂,这里就以节点数量做比喻)。

显然,原来系统节点越多,攻击者付出的成本也越大。由于比特币是目前最庞大的区块链网络,据统计要构建出一个和现有比特币同样大型的网络系统,所付出的成本高达270亿美元。

攻击者还面临着另一个困境,一旦它成功发动攻击后,就会造成该系统的价值瞬间归零。也就是说,一旦攻击者成功篡改账本,由于全网能够立刻识别出账本数据不一致,导致所有人都意识到该系统账本已经是不可靠的账本,那么意味着该账本所记录的数据变得没有价值,该系统中代币也会变得毫无价值。也就是说,攻击者将无利可图。

这下明白区块链的安全性在哪儿了吧。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180307A0H33G00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券