斯雪明:如何应对高发的区块链安全问题?
斯雪明|中国科学数据处理(SDP)联盟执行委员会主任
2016年6月17日,黑客攻击了众筹超过1.5亿美元的分布式自治组织 THE DAO,导致项目失败。2016年8月2日因为多重签名漏洞,香港比特币交易所bitfines大约价值7000万美元的比特币被盗。
交易所的安全性尚且不能保障,个人私钥的安全性也存在较高风险。从而引发了公众对于区块链安全问题的质疑,安全问题也成为区块链向前发展的基础问题。
1.区块链系统面临的安全挑战
2018年5 月 24 日,EduCoin(EDU) 智能合约爆出漏洞。通过这个漏洞,攻击者不需要私钥即可转走指定账户里所有的 EDU(一种数字货币),并且由于合约没有 Pause 设计,导致无法止损。2018年4月22日,代码溢出导致美链BEC从超过60亿人民币的市值归零。2018年4月25日,SMT(smartmesh)因为类似的问题 ,导致币价暴跌38%,并停止交易。我们可以看到,一行代码使得60亿的市值归零,这是非常严重的安全问题。
同时,最近一段时间来密码货币的交易所进行了严峻的安全挑战。比如,今年3月7日,黑客通过盗取币安交易所的API Key,在VIA/BTC交易市场,程序化下市价买单,和31个预先充值VIA币的账号高价卖VIA。通过利用盗取的币拉高VIA的价格的同时做空。这个黑客是相当的聪明。
2018年1月25日,日本最大的比特币交易所Coincheck遭到黑客攻击,丢失了市值多达5.3亿美元的数字货币。他们发生被盗的主要原因是他们将绝大部分资金保存在缺乏多重签名、低安全性的“热钱包”中,黑客入侵公司服务器,这些资金就会变得很脆弱。因为他们的密码会被盗取。
从区块链面临的安全挑战来看我们把它分为五个方面:算法漏洞;协议漏洞;实现漏洞;使用漏洞;系统漏洞。我这里列举一些安全问题,包括私钥的生成与保护,共识过程的中心化,智能合约代码漏洞等等。
信息系统安全有三要素,分别是保密性、完整性、可用性,区块链系统也必须有三种属性。
从保密性来说,以公钥的变型作为交易地址,为用户提供了保密性;零知识证明、环签名等为交易提供了保密性,比如Zcash和门罗币;同态加密对数据提供了保密性;属性基家解密,实现对系统的保密性、分权处理。总的来说,区块链系统大量应用了密码学前沿技术。
第二,从可用性来说,每个副本节点保存相同的数据,保证了数据的可用性,多方共识机制保证了交易信息的可用性。
第三,从完整性来说,签名验证算法保证了交易的完整性,链式结构保证了数据的完整性,高度同构冗余结构,保证了系统的完整性。
2.区块链系统的数学模型及安全性分析
2015年,Garay 等人利用形式化的方式对比特币的核心内容进行了分析;2018年,欧密会上Christian Badertscher等人改变了假设条件,对比特币进一步进行了形式化分析。我们在此基础上将区块链划分成交易模块、共识模块和链接模块,对三者的相互关系进行了研究,建立了数学模型,对区块链系统的性质进行了分析。并通过模型建立对系统的状态变化进行量化,为分析区块链系统的性能、安全性等提供理论基础。
我们将区块链划分成交易模块、共识模块和链接模块,且三者之间相互关联。
另外,针对上边提到的五个安全漏洞,下面,我们分别从五个维度:算法、协议、实现、使用、系统的角度,对区块链的安全性进行分析。
算法安全性。2017年11月12日,IBM宣布基于 20 量子比特的量子计算机,可在年底向客户开放,同时,基于50量子比特的量子计算机原理样机也将开放。2018年3月6日,google发布基于72量子比特的量子计算机“Bristlecone”,量子计算的出现将对现有密码体制带来颠覆性的影响。
协议安全性。PoW共识存在51%攻击的缺陷自私挖矿等攻击放大了此缺陷,PoS共识及其变型共识存在长链攻击以及共识垄断的缺陷,现有共识算法缺乏安全性证明,以DAG和Hashgraph为代表的自带共识的新型分布式账本系统容易受到内部攻击和外部黑客攻击,同时存在中心化风险。然而,一个好的区块链系统,我们希望它是去中心化的。
实现安全性。智能合约中存在浪子合约、自杀合约、贪婪合约、遗嘱合约等合约代码漏洞,Token生成代码漏洞容易摧毁系统的经济生态,同时,区块链实现代码漏洞、后门容易使系统受到黑客攻击。我们刚才看到,代码溢出导致BEC从超过60亿人民币的市值归零,这还是非常严重的。
使用安全性。智能合约等允许自主无条件提交的代码、消息等容易产生漏洞,被做坏者利用,交易所的存在,容易出现区块链资产、用户隐私信息监守自盗的问题,私钥的泄露,严重威胁用户的区块链资产安全。
系统安全性。第一,算法、协议、实现、使用漏洞与黑客攻击结合,容易使区块链受到致命的打击;第二,社会工程学与攻击手段的结合使区块链变得更加脆弱;第三,有组织的攻击行为将对区块链安全造成极大的危害。这么多年区块链受到的攻击较少,有一个原因是早期大家读比特币不够重视。最后一点,国家控制的技术很多是不公开的,尤其是攻击技术。美国现在就在研究量子计算,公开的研究成果还不能达到实用的需求。
3.安全防护的解决思路与关键技术
针对上述问题,我们从五个维度进行安全防护。
算法安全性。针对量子攻击,我们要进行后量子密码算法的研究,包括后量子密码算法、后量子密码算法效率提升、后量子密码算法敏捷性提前部署、后量子密码算法工程实现。同时,我们要对现有的密码算法采用经验证的密码算法,不使用未经时间验证的密码算法、不使用原创密码算法、不使用原创密码算法参数、不叠加使用密码算法。
协议安全性。我们要让协议能同时应对内外的攻击,就要采用能够阶段性离线的共识机制、避免目标确定的共识机制、设计防ASIC等共识运算优势明显的共识算法、加强关键节点的网络安全强度。同时,我们要改变传统区块链结构。包括采用有向无环图(DAG)、哈稀图(HashGraph)、以密码抽签等方式随机性得增加共识层数、多维多重共识。
在实现安全性方面,首先要对智能合约安全性验证,包括智能合约形式化、智能合约异构化、智能合约逻辑简化、智能合约模板丰富化等进行验证。另外要让区块链以及使用的模块做标准化处理,包括数据结构标准化、编程模式标准化、密码算法标准化、应用生态标准化。
使用安全性方面,包括冷钱包、多因素验证钱包、物理随机数生成、私钥单一性使用等措施,还要注意不使用未经验证的智能合约及其它代码、谨慎对待多重签名等新型签名机制、选择可靠交易所。
在系统安全性上,有两个维度,首先是利用传统网络防御增强网络安全性,包括关闭相关端口,用硬件防火墙对DDoS等进行防御,定期进行相关信息加密传输,避免节点漏洞、病毒。第二方面,采用新型区块链架构,包括采用异构冗余智能合约、新型共识机制以及动态防御终端。异构冗余智能合约主要是在智能生成的时候,采用不同的语言,对运算结果进行比较,采访大数法则进行输出......
我们刚才提到了五个措施,但是根本途径依然是要进行区块链体系结构的创新。
4.对区块链自主可控的思考
工信部信息中心发布《2018年中国区块链产业发展白皮书》,报告显示,我国以区块链业务为主营业务的区块链公司数量达456家,从上游的硬件制造、平台服务、安全服务,到下游的产业技术应用服务,到保障产业发展的行业投融资、媒体、人才服务,各领域的公司已经基本具备。
为什么要发展自主可控的区块链技术有以下个原因:
第一:我国网络安全面临严峻挑战,网络安全攻强守弱的局面没有得到根本改变
第二:区块链的安全问题十分突出。
第三:中兴事件再一次表明,在当前复杂多变的国际环境下,我们必须发展自主可控的技术,以免受制于人。
第四:我们以前说的安全可控主要是从安全的角度来讲,中兴事件给我们敲响了警钟,不仅是网络安全的问题。
区块链技术目前还处于发展的初期阶段,区块链核心技术存在很大的改进和完善空间。这对我们而言是一次非常好的机会。从2006年开始,我们提出自主可控,这时候已经比较晚了,区块链现在处在技术的初期阶段,所以我们应该抓住这个阶段提出要发展自主可控的区块链技术。
如何发展自主可控的区块链技术:
第一:学术界、产业界要对发展自主可控区块链形成高度共识,积极向政府建言。
第二:国家层面要对区块链技术和产业发展统筹布局,并出台扶持政策,对研发自主可控区块链技术和产品团队进行重点支持。
第三:学术界和产业界必须大力加强自主创新的区块链理论技术和应用的研究,为发展自主可控区块链技术和产品提供支撑。这是我们的责任。
第四:必须加强自主可控区块链产品的评测和认证,确保党政机关、关键行业区块链平台的安全。
第五:我们要高度重视区块链产业的生态体系建设,加强政产学研用合作,确保行业话语权,通过若干年的努力,真正建立自主可控的区块链生态体系。
本文内容源自斯雪明先生的分享,部分资料来自网络,由“未来大脑”采编,Mr.DAO主编,未经分享人最终审核。