LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 新闻观点 > 区块链防御是否“固若金汤”?

区块链防御是否“固若金汤”?

2021-01-08 链乔教育在线 来源:区块链网络

尽管区块链的防篡改、分布式存储、用户匿名等技术优势为其发展应用提供了大量的创新空间,但目前区块链技术在各领域的应用模式仍处于大量探索阶段,其深入应用仍需漫长的整合和发展过程。

“区块链技术本身仍存在一些内在安全风险,去中心化、自组织的颠覆性本质也可能在技术应用过程中引发一些不容忽视的安全问题。其主要分为系统安全和应用安全两大类。”【1】

1.系统安全

系统安全主要指的是底层代码安全、密码算法的安全以及共识机制的安全。

底层代码安全是其应用和再开发的保障,其底层代码的漏洞对于其区块链项目的打击是致命,需要及时地进行修补。

密码算法的安全是区块链不可篡改性和匿名性的一个保证,密码协议永远是跟随着当前科技的发展不断变化的,在量子时代,需要研究更加安全的抗量子密码协议确保密码算法的安全。

在共识算法的设计中存在着著名的Trilemma(三难问题),即Secure(安全性)、Scalability(可扩展性)和Decentralization(去中心化)三者不可兼得,而目前几乎所有的区块链项目都遇到这种挑战。

1.1底层代码的安全性

区块链底层相当于操作系统,由于开发者在开发过程中的疏忽造成的系统漏洞极大程度上影响系统的安全性,并且区块链的更新十分繁琐和困难,出现漏洞后的更新很可能造成硬分叉,因此底层代码的安全性十分重要。

2018年8月的Bitcoin ABC(Bitcoincash全节点执行的开源代码)代码漏洞事件向我们展现了底层代码漏洞的危害性。根据Bitcoin ABC的官方报告,黑客可以通过这个漏洞构建一个恶意交易,该交易将被某一特定版本的 Bitcoin ABC 接收,但会被其他所有版本的比特币现金拒绝。这样一个漏洞的结果可能是形成比特币现金的分叉,即使使用敏感版本的矿工接受了恶意交易,其他矿工也不会接受的。Bitcoin ABC 表示他们已经直接向相关的矿业池运营商提供了补丁。这一事件说明漏洞总是会发生,但在重构这样一个关键代码时,应该花更多的时间和精力进行代码审查。

1.2密码算法的安全性

随着量子计算机的发展将会给现在使用的密码体系带来重大的安全威胁。区块链主要依赖椭圆曲线公钥加密算法生成数字签名来安全地交易,目前最常用的ECDSA、RSA、DSA 等在理论上都不能承受量子攻击,将会存在较大的风险,越来越多的研究人员开始关注能够抵抗量子攻击的密码算法。

1.3共识机制的安全性

对于一个共识协议,要满足以下三个特性:

· Common Prefix:对于任何两个诚实节点,他们的本地视图除却最后有限个块之后,所有诚实节点看到的链的视图是一致的。

· Chain Growth:保证区块链能够正常的增长,并且增长速度稳定。

· Chain Quality:对于一条链,任意截取其中一段,总有一部分是诚实节点产生的块。

以下列出目前一些针对共识的攻击手段。

1.3.1 51%攻击

在比特币中,若恶意用户控制节点中大多数的计算资源(超过51%),就有能力新改写整个公有账本,这被称为51%攻击。由于区块链网络的开放性和当前整个网络的算力不均衡性,尤其是专业挖矿芯片公司的产生与大矿池的形成,使其发生51%攻击的可能性显著提高。51%攻击会引发对于区块链的破坏以及对整个密码货币的破坏,不管攻击成功与否都会让其置于自私挖矿,双花攻击,分叉攻击等危险之下。

最近Horizen团队,对于51%攻击提出了其创新的解决方案:通过“延时函数”升级他们的工作量验证共识算法,来处罚蓄谋这种攻击的矿工。

1.3.2自私挖矿

比特币的经济激励机制和自身的去中心化的特性是比特币系统依然能够良好运行的关键。但是,由于矿工的逐利性和当前比特币系统算力的不均衡,使得当前比特币系统受到了严峻的挑战,以色列学者Ittay Eyal在2014年提出了自私挖矿(selfish mining)的攻击方式。攻击者只要能控制全网超过1/3的算力, 就可以发起自私挖矿攻击, 获取更大的收益, 并对网络安全造成威胁。

最近,康奈尔大学两位研究员Cyril Grunspan 和Ricardo Perez-Marco的论文中通过探讨攻击向量与时间的关系,给出其相应的解决方案。

1.3.3分区攻击

在P2P网络里, 只要控制一定数量的节点, 就可以进行Eclipse Attack[,从而发起51%攻击, 控制整个网络。这是一种分区攻击。分区攻击通过区块链部分网络的完全隔离实现即使当前控制的算力小于51%,但仍能发起51%攻击。由于分区攻击发起的前提为控制被隔离网络的所有节点,所以攻击成本较大,分区攻击并不是单独发起的往往伴随着双花,自私挖矿等攻击,使其攻击者获得较大利益。

1.3.4 NAS攻击(Nothing at stake)

针对PoW共识算法的出现的算力集中问题,PoS的提出在一定程度上解决了上述问题,然而伴随而来的是区块分叉的NAS攻击。由于在类似于PoS的共识算法中,区块分叉的成本支付是极小,矿工为实现自身利益的最大化和风险的最小化,会同时在多个分叉上进行挖矿,使其区块链网络得不到及时的收敛,从而破坏共识。

当前对于NAS攻击的解决方案主要是保证金机制,即为了有资格获得块投票的奖励,用户必须付保证金,如果用户被发现在多个叉投票,那个交易证明将被放在原来的链上,取消用户的奖励。

2.应用安全

应用安全主要指的是智能合约安全、数字钱包安全以及隐私保护。

智能合约安全是当前区块链安全问题中一个重要的问题,当前许多区块链的安全事件都与智能合约的安全有一定的联系,这也是区块链应用发展的一个不可避免的问题。

区块链钱包是储存和使用数字虚拟货币的工具,区块链钱包对虚拟币的持有者们是非常重要的其重要性等同于现实生活中的银行卡,所以区块链钱包安全是至关重要的。

隐私保护一直是隐私性和安全性两难的问题,对于用户我们希望不要泄露其自身信息的同时享有其安全性,通过环签名、承诺协议和零知识证明可以有效地在保护隐私的同时保障其安全性。

2.1智能合约的安全性

智能合约具有不可更改的性质,并且和密码货币强相关,因此智能合约出现安全问题会造成严重后果和经济损失。

2010年8月15日,比特币区块链的第74638块上被 发现了一条包含有92233720368.54277039 BTC的交易记录,而且这些比特币仅被发送到两个比特币地址。而导致这次攻击的原因,是由于比特币代码中的大整数溢出漏洞。为使这笔交易失效,比特币核心开发人员开发了比特币补丁版本,并启动了硬分叉。在33个区块的竞争之后,带补丁版本的区块链才成为主链,消除了原有漏洞的影响。

2016 年6 月,以太坊最大众筹项目The DAO 被攻击,黑客获得超过350 万个以太币,后来导致以太坊分叉为ETH 和ETC。

新加坡国立大学的Loi Luu提出了现在的智能合约存在的几种安全漏洞。

2.1.1交易顺序依赖合约

交易顺序依赖就是智能合约的执行随着当前交易处理的顺序不同而产生差异。智能合约在执行交易时,会将合约状态进行更新,在传统公有链上其未处理的交易顺序并没有完全确定,不同的交易顺序的执行会产生不同的合约状态,这样就会导致用户期待的调用合约时的状态与实际的合约状态产生差异;当前合约的状态取决于矿工在执行智能合约时对交易的调用顺序,而这种合约状态的不一致往往是其安全漏洞的来源。

2.1.2时间戳依赖合约

按照以太坊的对于时间戳的要求,矿工在处理一个新的区块时,如果新的区块的时间戳大于上一个区块,并且时间戳之差小于900秒,那么这个新区块的时间戳就是合法的。攻击者可以更改时间戳值或者可以选择不同的块的时间戳来操纵依赖于时间戳的智能合约的结果。

2.1.3误操作异常

在以太坊中,一个合约调用另一个合约可以通过send指令或直接调用另一个合约的函数。然而在调用过程中出现异常时,被调用的合约会中止执行,回退到调用前的状态并返回false给调用合约。但是取决于合约调用方式的不同,被调用合约的异常可能无法立即被调用者获知。这种不一致的异常传播策略导致多种异常处理不当的情况发生。

2.1.4可重入攻击

在以太坊中,当一个合约调用另一个合约的时候,当前的操作就要等到调用结束之后才会继续。这时,如果被调用者需要使用调用者当前所处的状态,不考虑被调用方可能的恶意行为就可能产生了问题,而且该问题可能再合约编写时不能立即被发现。著名的DAO攻击事件就是因为这个漏洞而发生的,导致了3,600,000个以太币被盗取,总价值达60,000,000美元。

2.1.5智能合约检测

智能合约本质是一段运行在区块链网络中的代码,它完成用户所赋予的业务逻辑。通俗的来说,相当于是一个“不可改变”且“公正”的“中间人”。但是由于代码是程序员编写的,不免会产生各种各样的bug,但是由于智能合约一旦部署就不能修改的特点,一旦智能合约存在安全性隐患就会造成不可挽回的恶劣后果。

因此,在智能合约部署之前对其进行安全性检测尤为重要。目前,智能合约的检测的发展方向有以下三个方向:

· 交由专业的检测机构进行检测

· 智能合约检测工具进行检测

· 形式化证明的检测方式进行检测

2.2数字钱包的安全性

数字钱包保存着用户的密码货币,主要存在的安全风险有以下三点。

第一,设计缺陷。2014 年底,某签报因一个严重的随机数问题(R 值重复)造成用户丢失数百枚数字资产。

第二,数字钱包中包含恶意代码。

第三,电脑、手机丢失或损坏导致的丢失资产。

应对措施主要有四个方面:

· 确保私钥的随机性;

· 在软件安装前进行散列值校验,确保数字钱包软件没有被篡改过;

· 使用冷钱包;

· 对私钥进行备份。

3隐私保护

在公有链中, 需要对交易数据、地址、身份等敏感信息进行保护, 同时又能让记账节点验证交易的合法性;对于联盟链, 在构建隐私保护方案的同时, 需考虑可监管性/授权追踪。可以通过采用高效的零知识证明、承诺、证据不可区分等密码学原语与方案来实现交易身份及内容隐私保护;基于环签名、群签名等密码学方案的隐私保护机制、基于分级证书机制的隐私保护机制也是可选方案;“也可通过采用高效的同态加密方案或安全多方计算方案来实现交易内容的隐私保护;还可采用混币机制实现简单的隐私保护。”【2】

混币技术

对于单个用户的交易图进行大数据分析可以进行交易追踪,有鉴于此研究人员提出了混币技术旨在将多笔不相关的输入进行混合后输出, 使得外界无法关联交易的输入与输出, 从而分辨不出数字货币的流向。Gregory Maxwell于2013年提出了CoinJoin匿名混币技术, CoinJoin的使用者需要委托可信的第三方, 来构造一笔混合多笔输入的交易,其提供服务的第三方可以知道混币交易的流向。Tumble Bit协议提出了不同于CoinJoin的混币协议方案, 虽然仍然需要第三方参与, 但第三方无法知道交易细节, 仅仅是提供服务,即第三方可以是任意第三方而不仅仅是可信的第三方。

【1】链乔教育资源库“区块链安全问题研究”

【2】链乔教育资源库“区块链隐私保护”

—-

编译者/作者:链乔教育在线

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...