比特币自2008年11月1日诞生,至今已运行13年,市值超过7000亿美元。多年的喜人涨势已经让比特币封神。可按照正常的机构运行,体量越大、数据越多,越容易遭受黑客攻击,维护成本越高。比特币无中心控制,代码开源,它到底是如何维护运行安全的呢?又是谁在维护呢?比特币本身有出现过安全漏洞吗?比特币网络运行这么久,有被黑客攻击过吗?
比特币代码开源
先来说比特币代码开源。
2008年11月1日,比特币白皮书发布之后,中本聪着手开发执行比特币白皮书规则的软件,并在2009年1月打包第一个区块,获得50个比特币奖励。比特币正式诞生,同时比特币网络也正式诞生。在这个网络中,比特币代码可以修改,50个初始发行奖励参数也可以修改。听到这,估计有人会大吃一惊。比特币赖以生存的基础,不就是总量恒定吗?可以改,岂不是随时通货膨胀?
但实际为什么没有人改呢?是因为改了也没用啊!
比特币与比特币网络运行的基础,都是共识。比特币基于共识,越来越多人认可,它的价格才能高涨。比特币网络,基于2100万恒定的发行总量共识,才有矿工愿意去挖矿。如果规则改了,大家就需要达成新的共识。如果没人接受新规则,没有人在新规则下挖矿,就形成不了价值。
在比特币发展的历史中,有没有提出修改规则,且有矿工支持修改的?
是有的。比特币越来越为人接受后,其区块大小的限制及每秒只能处理7笔交易的缺点就越发暴露。2017年7月,为解决比特币网络拥堵的问题,出现了两个派系。其一派主张保留1M区块大小,采取隔离见证,间接扩容;并用闪电网络分流压力;另一派则主张:直接扩大区块,进行扩容。双方争执不下,难以达成统一。那么最后的结果就是:后者从比特币分离出去,最后成为了比特币现金。
所以理论上,谁都可以修改代码、规则。实际上是,若没有人认,那修改是无用的;如果部分认同修改,那么认同修改的部分则从比特币网络分离出去,成为新的链条及币种。因此,理论上比特币发行参数可修改,实际谁都改不了。
02比特币无中心控制,又是谁在维护比特币网络安全呢?
比特币自身出现过安全漏洞吗?比特币无中心控制,又是谁在维护比特币网络安全呢?
比特币无中心控制,但实际比特币的网络安全、代码漏洞修复、升级更新,有Core开发团队维护。必须要说明的是:core开发团队,并不是传统意义上的中心化公司,而是由一些核心开发者以及一个包含有许多短期贡献者的比特币开发社区组成,是一个非盈利组织。比特币网络实际是出现过安全漏洞的,早期还特别多,但都由这个组织完成漏洞修复。
比如2010年8月15日发生的价值溢出事件,这被称为比特币最大的一次漏洞。一位core开发者发现:比特币一区块记录了两笔共计1844亿个比特币的交易,并躲过了比特币原有检查体系的检查。这个令人震惊的漏洞差点结束比特币的生命,因为比特币总发行量才2100万个。而凭空产生的1844亿比特币,直接冲破了比特币信任基础。如果该漏洞不修复,比特币价值就会立即归0.
漏洞曝光后,Core开发者立即采取行动,将1844亿交易记录清除,在事件发生后的5个小时之内,发布了0.3.1版本的比特币,用软分叉方式修复漏洞。修补后的规则,任何价值溢出交易都不会再出现。之后比特币网络也出现过一些小漏洞,但都一一得到修复。
为什么漏洞能得到快速修复呢?
除了比特币core开发团队发现及时,并进行修复。还因为比特币确认数据规则是:最长链规则,让比特币网络有修复的空间。也就是一个节点的工作量,只有其他节点认同的情况下,才能获得收益。获得认同越多,生成的链条越长,这条链上挖矿获得的奖励越多。反之越没有人认同,链条越短,越不会有收益。
比特币对错误的修复,就是好链在认同下生成长链,坏链成为短链被舍弃的过程。
所以比特币网络代码虽然是开源的,但并不用担心运行安全。因为谁修改规则、代码不重要,获得认同才重要。
51%算力攻击
既然是最长链原则,那么又有一个问题了。只要掌握51%的算力,岂不是就可对比特币网络发起攻击,并将其摧毁?
那什么叫51%算力攻击?也就是,原本大家都在一条链上挖矿,如果某个人掌握51%以上的算力,他就可以另起一条新链挖矿,速度可以完全赶超原来的链条。按照最长链优先原则,新链就可以代替旧链成为主链。在旧链上所有交易记录,都会无效。
这为什么会成为攻击呢?
是因为如果这件事真能发生,那么掌握51%算力的个人就可以把自己账户币全花出去,并把这笔账记录在旧链上,然后重新开始新链挖矿(新链不记录已经花出去币的交易),让新链长度超过旧链。那么旧链就会失效,记录在旧链里的花销也就会无效。那笔花出去的币,相当于还在自己账户。这就是著名的“双花攻击”。
想象一下:别人账户里的钱,一直可以重复不段的花。自己的账户却收到钱,又一遍一遍消失。自己还会用这个数字货币吗?肯定不会啊。
所以一旦产生双花攻击,且成功,该币种可信度就会大减。而如果产生了攻击,还不能阻止这类攻击,那这个币种会直接毁灭.因为已经毫无安全性可言。听起来这么可怕,那比特币有遭受过51%的算力攻击吗?
并没有。为什么?
是因为比特币现在已经变成庞然大物,要获得51%的算力代价非常大,并且付出这种巨大的代价攻击比特币网络,获得收益还特别少。假定有人掌握51%的算力发起攻击,那他能获得什么?只能获得:1)修改自己的交易记录,如双重支付;2)阻止确认部分或全部交易。而完全不能凭空生成比特币,也不能修改每个区块产生的比特币数量。怎么算这都是一笔巨亏的生意。所以基本不会有人做。
除此之外,比特币还有第二层防护网——全节点防御。
也就是:即便出现恶霸算力,要摧毁比特币网络也难以做到。一旦比特币网络有叛变算力,试图改变比特币共识,全节点组成的比特币网络也可以拒绝这些交易。所以比特币几乎不可能发生51%算力攻击。比特币网络发展得越庞大,越不会出现。
除此之外,比特币还有节点作恶在闪电网络中窃取资金、Dos攻击等漏洞问题,2019年份闪电网络版本更新,用RSMC协议形成了欺诈惩罚机制,修复了漏洞。一旦有“小偷”试图在闪电网络上窃取资金,如果被发现,其不仅会失去了窃取的资金,而且会失去所有相关通道中的资金。
总结
所以总结起来,比特币网络之所以能安全运行这么久。既不是因为比特币网络本身完美无缺、也不是因为它没有遭受攻击,而是基于它本身的共识机制、最长链优先原则、全节点存在以及支持比特币网络实现的Bitcoin Core开源,让很多开发者自发自愿修补漏洞,让比特币网络能修复自愈及防护攻击。