不知不觉咱们在【区块链之技术进阶】部分已经分享了七篇文章了,通过之前的七篇文章大家对于区块链技术的理解是不是上升了一个高度呢?这七篇文章,告诉我们区块链是互联网时代的通往第二纪元——信任纪元的革命,这场技术海啸必将彻底地颠覆未来金融的发展方向,大家也了解了区块链未来可以在那些方面创新,当然区块链可以用来记账,但是其作用却不局限于记账,读完前面的文章大家想必会有这样的认识吧。咱们也更加深入地从金融和技术层面理解区块链技术原理并且了解了区块链技术的共识算法。是吧,这样一回顾,咱们学到的东西可是真的不少呢!前几篇文章大多谈及了区块链对于技术和金额的变革和未来的发展,但是所有技术的最终都是哲学,区块链也是一样,任何的科技都是一把双刃剑,有光明的一面,必将有黑暗的一面,有机遇,但是更会充满挑战。新技术的发展都必将面对风险,区块链也是一样。
本文是【区块链之技术进阶】的第八篇文章,也是本部分的收官之作。本文不同于之前文章,将从技术双刃剑的另一个角度谈起,聊一聊区块链的安全隐患、技术风险以及发展的瓶颈与陷入的困境。只要拥有“51%”的算力就可以进行协议攻击?性能问题将会极大限制区块链的应用场景?智能合约是潘多拉魔盒,它的出现只是噩梦的开始?本文好似一盆冷水,但是却也是让我们更加冷静而理性地思考区块链技术。
本文技术要点:
本文转载自 搜狐财经 作者: 程显峰 原文链接
一、安全隐患
包含三点:
- 私钥丢失;
- 错误的实现;
- 协议被攻击。
秘钥安全:区块链技术一大特点就是不可逆,不可伪造,但前提是私钥是安全的。秘钥安全问题看似老生常谈,其实在区块链世界里还有特别的意义。
与以往任何体系不同的是,私钥是每个用户自己生成并且自己负责保管的,理论上没有第三方的参与,所以私钥一旦丢失,便无法对账户的资产做任何操作。多重签名某种程度上能解决一部分问题,但实施起来非常复杂,而且要设计与之相配套的非常复杂的秘钥管理和使用体系。
对于普通大众用户,或者没有太多技术经验的企业用户,天然会觉得补私钥可能和补身份证或者营业执照差不多,但事实上这根本就不可能,所以私钥的安全非常重要。但遗憾的是国际通用的多因素认证体系实施得并不好。
多因素体系最常见的维度包括:
- 知识,知识指的是密码这类能被记忆的知识。
- 资产,资产包括门禁卡,令牌,手机,密码键盘,智能卡等。
- 本征,本征包括指纹,虹膜,DNA,声纹等。
使用一种维度因素的认证方式叫单因素认证,使用两种的叫做双因素认证。
目前单因素认证早已经被业界认为是不安全的,所以国内基本和支付相关的应用除了密码以外,至少也得发一个验证码给手机,这就是对手机这一资产的因素验证。但进行大部分资产的因素验证并不具有理论上要求的可信环境,或者称之为终端安全,这就大大提高了私钥暴露的风险。比如,严格的说大部分手机都不算可信的计算环境,但是因为太方便了,所以大家做了很多妥协。这在保护低价资产的时候还可以忍受,但往往大家用区块链都是些重要价值的业务。
那么本征因素怎么样呢?是不是三因素认证就会解决这个问题呢?
很遗憾,安全业界对使用本征因素存在非常多的争议,主要的反对理由就是,本征类别的特征,大部分是生物特征,一旦泄露将很难更改。试想一旦我们的指纹落入不法分子手里,我们将一生都会受到其困扰,从以往的经验上来看,这种事情的大规模发生只是早晚的问题。
小结两点:
- 私钥的补发与管理和区块链的分布式是冲突的;
- 私钥的认证需要可信的计算环境在很大程度上是缺失的。
错误的实现:即便是理论上很完备的算法,也会有各种实现上的错误。由于区块链大量应用了各种密码学技术,属于算法高度密集工程,出现错误也是在所难免。
历史上这类事情有很多,比如NSA对RSA算法实现埋入缺陷,使其能够轻松破解别人的加密信息。一旦爆发这种级别的漏洞,可以说区块链整个大厦的基础将轰然倒塌,不会有一个幸存者。即便我们乐观一点,假设没有人或者机构存心搞鬼,也存在工程实现上的非主观缺陷。比如OpenSSL的心脏滴血漏洞,相信有金融网站的人都经历过这个事情的这是世界上最优秀的算法工程师做的被最广泛应用的加密算法库。
我们如何能相信未来区块链使用这么多加密算法后还能独善其身呢?
假设基础类库和服务都没有问题,能将其正确地整合到应用的中技术人员也是凤毛麟角。比如blockchain.info被爆没有正确生成随机数,导致严重的安全问题;以太坊DAO合约漏洞致使业务还没有开展的时候,准备的钱已经不见了。更加可怕的事实是,技术风险已经超过业务风险成为区块链的主要风险。以往金融机构也是涉及业务风险和技术风险,虽然也重视技术风险,但是整个体系的建设还是围绕着防范业务风险展开。但是从区块链现在最成熟的应用比特币来说,目前比特币交易所遭遇的最大的危机都来自于技术风险而不是业务风险。
曾经世界上最大的交易所Mt.Gox倒闭就是因为黑客攻击导致巨额资产损失。就在最近,世界知名交易所Bitfinex也因为多重签名缺陷导致12万个比特币(6800万美元)的损失。所以我们有理由相信,未来在区块链上这种技术风险的防范一定是流程中的重中之重。
协议被攻击:比特币成功与它强大的算力基础分不开。
目前其它的区块链应用的算力都还与比特币无法相比(目前1,600,000,000 Hash/s),其他区块链应用难以有足够的算力来保证系统的稳定性,理论上也越容易收到比如51%算力攻击这样的在基础协议层面的攻击。Krypton平台最近就遭到这种攻击,而且这种攻击方法被认为是一个有效的攻击以太坊的手段。这种事情并不是偶发,而是接连发生,如果“51%算力攻击”蔓延下去,那么区块链所标榜的“不可篡改”将不复存在,任何基于区块链的信任应用都将土崩瓦解。除了这种已知的攻击方法,我们预测攻击协议的其他手段也会层出不穷。由于区块链本身的分布式特性导致其进行整体升级非常困难,所以一旦发现有效的攻击手段,可能在很长的一段时间内,对区块链系统都会造成持续不断负面影响,那是一种难以彻底清除的梦魇。
二、生态圈不成熟
区块链技术不能独立于其他关联技术而独立发展,这和云计算类似。亚马逊的云计算大规模商用的时候已经有了数十个服务,区块链目前还没有完整的生态社区。虽然目前有很多非常强大的公司联盟、开原组织的支持,但是生态体系的建设不是一朝一夕的事情。
电动汽车再好也得有充电桩,区块链再好也得有一系列为其服务的基础设施,比如适用于区块链的数据库和存储方案,为区块链加速的网络服务,提高安全性的硬件密钥的广泛应用等等。互联网70年代产生,90年代Email作为其第一个成功的应用被广泛使用,期间经历的时间比大部分人预想的都要长。构筑完善的生态系统,不但要求技术上的各种突破,也需要人们改变一些思维定式,并不是那么容易的。
目前的区块链应用,基本上一张A4纸就能写下所有的名字,当然会有很多大家还在酝酿当中搜索不到的项目,但是也不妨碍说明这个生态还很小。尝试是当然可行,但是想要形成具有规模的生产力还不太现实。妄图单点突破不切合工业社会后的社会分工协作的基本发展趋势。当然我们也看到有少数进展比较快的项目,比如IPFS,BigChainDB等等。这些项目还处于非常早期的阶段,能够达到商用至少需要两年以上的时间。
三、性能瓶颈
原来大家讲区块链是可以低成本快速转账,但从比特币的实际应用来看性能是困扰其发展的最大瓶颈。现在的比特币交易只能达到每秒7笔交易,相对于VISA公布的每秒44万笔交易相差实在太多。虽然也有些新的区块链技术号称能够做到每秒几万笔交易,但是基本上都是基于实验室环境或者不能进行大规模应用。
性能会极大地制约区块链的应用场景
纽交所核心系统要求在每秒百万级别,上证深证在每秒几十万笔级别,物联网要求在每秒几千上万级别,这也就是为什么现在国外的区块链创新都围绕在一些鉴定、存证等要求处理速度不高的场景。目前市面充斥着各种性能评测报告,但多数都没有具体测试方法和实验参数导致很难验证,不得不说这是一个非常遗憾的事实。目前比特币的交易网络有大量交易需要等待5-6小时才能被确认,对于提升其性能的方法也存在很大的争议。其根本原因就是在分布式、一致性保证的前提下,性能被牺牲掉。“多快好”的方案是不存在的,我们选择了“多”(分布式)和“好”(一致性),就必须放弃“快”(性能)。由于性能瓶颈,导致了比特币转账费用持续攀升,不知道其他区块链应用如何来应对这种问题。
四、智能合约困境
智能合约就是潘多拉魔盒,它的出现只是噩梦的开始。
现在的智能合约是图灵完备的,也就是理论上它的计算能力和我们用的计算机是完全等价的,所以它会带来非常大的好处,是区块链质的飞跃,但同时也会带来与之相对应的灾难。比如计算机出现后出现了计算机病毒,智能合约理论上一样存在智能合约病毒。这种病毒通过感染修改其他合约的方式来实现合约作者意图之外的功用。(这不是科幻小说,相信这一天不久就会到来,其影响一定会远远超过计算机病毒。)
另外智能合约很难与人的真实意图完美对应,理论上也不存在这样的系统。智能合约的编写需要专门的技术,相信短时间内这方面的人才会非常短缺。由于智能合约在编写上的困难性,会导致一批衍生机会,比如智能合约律师,负责验证智能合约与法律的衔接问题,智能合约保险,一旦智能合约不能表达产权人的真实目的可以获得一定的赔偿。
正确性验证与证明(validation and verfication),某种程度上能解决问题,但其缺点是不成熟,实施成本巨大,所以也有待新的技术突破。
现阶段的智能合约有非常大的限制,就是升级非常困难。一旦发现合约漏洞,将很难通过升级的方式来解决问题。以太坊因为DAO事件,无奈采取硬分叉策略是大家都不愿意看到的。
现实的合同基本上都有一条“未尽事宜协商解决”,那么智能合约的协商解决如何定义,如何同步就是问题了,目前开来智能合约在这方面还有很多值得研究和探讨的问题。随着这些问题的深入解决,预计智能合约也会变得非常复杂,甚至一般的程序员都很难理解。
下期预告
区块链少侠,当你读到这里时,你对于区块链的理解程度已经上升了一个层次啦!此时的你已经可以拔出“区块链”之剑行走江湖了!但是,有一点还要提醒你,你现在学习的都还是“剑法”理论知识,江湖很深,变化莫测,还是要到实践中去学习呀!好的,下次的文章分享,将开启全新的部分章节,你是不是已经非常期待了呢?Come on!
【区块链之技术进阶】系列文章:
区块链:通往互联网第二纪元的革命
金融的未来,区块链将用于何方?
让这篇技术贴告诉你区块链是怎么运行的
扒一扒某乎上面对于区块链的理解(一)
扒一扒某乎上面对于区块链的理解(二)
从技术现实理解区块链:基于SQL模型创建BQL
掰一掰区块链共识机制与分布式一致性算法
Attention please!区块链技术的风险!
其他部分首篇文章:
【区块链之菜鸟入门】亲,你淘的区块链到了!
【区块链之技术实战】群雄激辩区块链
【区块链与未来】区块链只与互联网+金融有关?让法律人和你聊聊