区块链之比特币系统的安全性认识
- 来源:互联网经济 smarty:if $article.tag?>
- 关键字: smarty:/if?>
- 发布时间:2018-10-18 10:04
随着区块链技术的向前发展,其中特别是数字货币的快速兴起带来了一系列的争议和质疑,比如:比特币是否是一个精心设计好的骗局?是否可以被少数人所控制或操纵?是否容易被攻击?是否是一种安全可靠的、可信的和有价值的数字货币?其本质上都是比特币系统自身安全和风险方面的问题。
分布式块链为比特币系统核心
在en.bitcoin.it网站上总结了比特币系统的特点:比特币是一种去中心化的数字货币,可以向世界上任何地方的任何人提供即时支付。比特币使用点对点技术,在没有中央机构的情况下独立运作,管理交易和发行货币都由网络中节点共同进行。根据这个定义可知,比特币系统是在去中心化的架构模式下,基于点对点网络完成对交易的管理与货币的发行。比特币系统的去中心化,意味着没有一个中央机构负责跟踪交易、管理货币的发行,没有一个集中统一的中央数据库负责保存交易记录。
从中本聪白皮书可知,比特币系统之所以能够以自治、安全的方式运行离不开一个用来保存交易记录的分布式块链,因此可以说这个分布式块链是比特币系统的核心,其相关技术都是为它服务的,如:工作量证明就是要解决由那一个节点负责生成块的问题,类似某个时刻选举谁来负责记账的问题。由此可知,比特币系统的核心安全就是需要维护好这个分布式块链的安全,它的安全保障是整个比特币系统得以正常运转的基石,或者说维护好了这个分布式块链的安全就是保障了比特币系统的核心安全,否则如果因某种原因或者在某种场景下这个分布式块链被攻击成功,比特币系统的安全也就无从谈起。不但比特币系统的正常运行无法保证,而且其创造的去中心化下的可靠信任和独特价值,也就自然“皮之不存,毛将焉附”了,就像银行数据库被攻击破坏导致无法保证其中账户信息和转账记录的正确性一样,这必将导致整个银行系统的混乱和信任的丧失。
本文基于比特币系统分布式块链的安全(可简单理解为链或账本的安全),从概率和理性假设的角度出发,对比特币系统的安全性进行了研究并对其风险作出评估,首先对分布式块链面临的安全问题进行了深入分析,然后梳理了比特币系统为保障分布式块链的安全采取的安全保障,最后基于分布式块链的安全对比特币系统的风险进行了总结。
分布式块链被成功攻击的概率
要对分布式块链面临的安全进行分析,首先要弄清楚,攻击者是如何攻击比特币系统的分布式块链的?从中本聪白皮书可知,攻击者通过工作量证明生成攻击者链(竞争链),并在其中包含了攻击者想要改变的交易记录。攻击者通过竞争方式,让攻击者链变成最长的链,超过诚实链以实现替换诚实链,完成攻击的目的。至于为什么把攻击者链变成最长的链就可以完成攻击?是因为在比特币点对点网络中,只有最长的链才被认为是有效的,代表了网络中大多数节点的决定(共识),是比特币世界里的真理,所有节点都可以接受它。一旦网络中的节点都认可了攻击者链,也就自然认可了攻击者链中包含的交易记录,也就达到了攻击者欺骗或篡改的目的,如:攻击者通过改变他自己的交易记录,即把之前支付给接收方的钱又转回到自己的名下(双重支付问题)。比特币系统最主要的优势就是实现了去信任方情况下货币的点对点直接支付,还解决了货币被双重支付的问题,这是其根本,如果这个问题因为遭到攻击(双重支付攻击或双花攻击)而没有解决好,则比特币系统的根基也就不存在了。
攻击者和诚实节点之间,或者说攻击者链和诚实链之间如何竞争?从中本聪白皮书可知,两者之间的竞争关系可被描述为二项式随机游走。从比特币系统安全的角度看,成功事件是诚实节点将诚实链延长了一个块,增加了一个块的领先优势。失败事件是攻击者将攻击者链延长了一个块,缩短了一个块的差距。一个攻击者在落后诚实节点一定差距(块数)的情况下,还能追赶上诚实节点的概率相当于赌徒破产问题中盈亏平衡的概率。假设一个有无限信用的赌徒从一个赤字开始(初始处于亏损状态),为了达到盈亏平衡(收支平衡),他可能会进行无数次的尝试,我们可以计算出他达到盈亏平衡的概率。因为是等价关系,这个概率就是攻击者追赶上诚实节点的概率,也就是比特币系统中分布式块链被攻击成功的概率。关于如何计算这个概率,在中本聪白皮书中已经有比较详细的说明,此处为了便于简化理解,就不再对推导过程的细节进行进一步梳理了,只针对结论进行分析:
一个攻击者在落后诚实节点一定差距(块数)的情况下,还能追赶上诚实节点的概率(联合概率)为:
其中:
p为诚实节点生成下一个块的概率;
q为攻击者生成下一个块的概率;
z-k为攻击者落后诚实节点的块数;
为泊松分布的分布函数;
为条件概率,
为了便于通过编程实现计算,把公式进一步转换为:
结合假设p>q,对这个公式进行分析可知,随着攻击者落后差距(块数)的变大,他追赶上诚实节点的概率将呈指数下降,也就是他攻击成功的机会随着落后块数的增加变得越来越渺茫,特别是当他没有在早期就开始追赶并且在当前诚实链已经成足够长的这个事实下,攻击者要攻击成功绝对是小概率事件。
但这个结论得以成立的前提是这个假设p>q要成立,如果这个假设不成立,或者假设成立的概率很小,则攻击者要攻击成功绝对是小概率事件就无法成立,则比特币系统分布式块链的安全就得不到可靠的保障。
因此,进一步梳理比特币系统为此假设的成立采取了哪些安全保障,也就非常有必要。
用理念和机制保障系统安全
比特币系统本质上是一种数字货币(数字现金、电子货币)系统,所以自然可从一个经济系统的视角去认识为保障比特币系统的分布式块链安全而采取的安全保障,包含安全理念和安全机制。
要保证这个假设的成立,即诚实节点生成下一个块的概率大于攻击者生成下一个块的概率,从工作量证明原理可知,从概率的角度讲,要加大诚实节点生成新块成功的概率,诚实节点的算力必须要大于攻击者的算力。这点有些类似于购买彩票,对一次购买行为来讲,投入的钱多未必一定可以中奖,但就总体分布或者说多次购买行为来讲(可以想象为彩票中奖链),投入的钱(算力)越多,彩票中奖(生成新块)的概率也就越大。比特币系统为保证这个假设的成立,采用了以下几点来共同保障:
让网络中的大多数节点更加愿意保持诚实
比特币系统内置了激励机制,激励有助于鼓励节点保持诚实。如果一个贪婪的攻击者能够收集比所有诚实节点更多的算力,他必须在用算力偷回他之前的付款去骗人和用算力生成新货币之间做出选择。他应该会发现,按照既定规则办事有利于让他拥有的新币,比其他人累加起来的还要多。因此从合作博弈的角度看,攻击可看作是攻击者和诚实节点之间的博弈,如果攻击者不去搞破坏,相当于选择了与诚实节点一起按照规则办事,即选择了合作博弈,做一个以利已为目的的理性人(rational man),则攻击者的利益会增加且诚实节点的利益至少不会受到损害;如果攻击者去搞破坏,相当于选择了与诚实节点对抗竞争,即选择了非合作博弈,而且攻击者的利益不但没有增加而且还会受损害,甚至得到比非合作博弈更差的结果。因节点保持诚实会更加有利可图,所以网络中的大多数节点都会更加愿意保持诚实,在这一选择下,自然诚实节点就会更多。
另外,从分布式系统容错性的角度说,几乎所有的分布式容错系统都需要假设系统中的绝大多数或超多数(例如,超过一半或2/3)的节点都是诚实和可靠的(诚实节点),但在传统的分布式容错系统中,这个假设不容易实现,更多是依赖在一个的机构的管控范围内,通过类似内部认证节点的方式来实现,但比特币系统是去中心化的,没有一个单独的中央机构来管控,看似更加无法实现,但却通过其内置的激励机制很好地做到了这一点,即让网络中的大多数节点都保持诚实这个假设成为现实。
让网络中诚实节点的算力比攻击者更大
因为网络中的大多数节点更加愿意保持诚实,所以网络中诚实节点自然会更长,正如中本聪本人所说的那样——根据长尾理论,小、中、大诚实节点构成的集群加起来应比由坏人控制的、最大的攻击者节点构成的集群大得多,所以网络中诚实节点的算力必然比攻击者更大。
从“让网络中的大多数节点更加愿意保持诚实”到“让网络中诚实节点的算力比攻击者更大”,让比特币系统保障了假设p>q的成立,也就保证了攻击者攻击成功是小概率事件这一结果。同时也保证了网络中诚实节点可控制大部分的算力,避免了攻击者联合起来发动“比特币51%攻击”,否则攻击者将控制整个比特币网络,对系统的安全构成隐患,但一旦实现诚实节点控制了网络中的大部分算力,一个攻击者想要改变分布式块链就变成了在计算上的不现实。
理性认识比特币潜在风险
从以上分析逆向的角度看,本文从节点的理性人假设开始,到诚实节点会更多的假设,到诚实节点算力更大的假设,到p>q假设,到攻击者赶超上诚实节点的概率很小,到攻击者攻击成功是小概率事件,再到分布式块链的安全得到保障,进行了从定性到定量分析,完成了对比特币系统分布式块链的安全进行了较深入的梳理及认识。
基于以上认识,如何理性地认识比特币系统潜在的风险呢?实现对其风险进行一定的总结呢?
从概率和理性假设的角度来说,首先,比特币系统分布式块链被攻击成功是极小概率事件,通常情况下,安全程度还是很高的,但毕竟概率还不为0,只要概率不为0,那么至少不安全的可能性还是有的。其次,为了保证比特币系统中“让网络中的大多数节点更加愿意保持诚实”这一结论得以成立,利用了博弈论的思想,但博弈论的结论得以成立是有基本假设的,这个基本假设就是博弈参与人总体是共同理性的,即不仅假定了博弈参与人(player)是理性的(rational),而且假定了“所有参与人也是理性人”,即理性假设。因此,比特币系统要想该结论得以成立,同样也必须要求假定“比特币网络中所有参与节点总体是共同理性的”。脱离了这个假设,该结论就不一定成立。但就像博弈论会陷入到理性假设困境一样,同样比特币系统中的这个假设也会在某些场景下陷入到理性假设困境中,导致这个结论可能不再成立,例如:为了达到某种目的,对比特币的恶意爆炒之下,比特币投机属性被无限放大,或者说人性之恶被无限放大的情况下,这些非理性的场景会加大这种理性假设困境出现的概率,或者说导致这种理性假设不再成立,这就意味着比特币系统的安全性会因此遭到破坏,从而产生对比特币系统的安全危机和对比特币的信任与价值危机。
因此,当前有观点认为比特币系统是非常安全的,甚至是绝对安全的,从以上分析可知,这显然是不对的,比特币系统分布式块链的安全性或者说比特币系统的风险已经消除了灰犀牛危机(大概率危机),但并没有彻底消除黑天鹅危机(小概率危机),尽管风险很小,但毕竟还有存在的可能性。就像某天的天气预报一样,只要下雨的概率不为0,就还是有下雨的可能性。
那么比特币系统什么时候会发生黑天鹅危机呢?从逻辑上讲,只要本文中所讲的这些假设之一,因某种原因不再成立,那么比特币系统的黑天鹅事件就会发生,例如:BTG(比特币黄金)被攻击事件就是因为攻击者掌控了至少51%算力,直接导致了诚实节点算力更大的假设不再成立后发生的。
结语
无论是区块链1.0中的加密数字货币,区块链2.0中的智能合约,还是区块链3.0中的其他行业应用(金融领域之外),区块链去中心化的分布式块链的安全研究都是区块链技术安全研究的核心内容。
对区块链技术来讲,尽管安全涉及到方方面面的内容,但其安全研究的重要性毋庸置疑,正如德勤发布的“2018年全球区块链调查”报告指出,区块链领域正发生的六大转变之一——安全依然是区块链创新的主要动力。
因此区块链技术安全相关的研究与实践对推动区块链技术的创新发展至关重要,还需要相关人士共同努力通过持续的创新来提高安全性。
总之,区块链技术的安全问题,如果没有得到足够的重视,其应用就会留下很多潜在的风险。如果有了较大的安全风险发生,那么《经济学人》杂志中所提及的比特币是创造信任的机器,以及业界所说的区块链是价值互联网等观点,也就无从成立。
文/陈跃