区块链存在的问题

源自于:区块链关键技术及存在问题研究综述_刘双印 综述

数据存储与交互

  • 多形式数据存储
  • 数据更新
  • 跨链时延

隐私保护

  • 用户隐私保护
  • 企业资源保护

资源分配

  • 事务排序依赖
  • 数据高冗余
  • 不可持续发展
  • 算力浪费 

漏洞攻击

分叉攻击

  • 系统自身产生分叉导致的分叉

首先,区块链在弱共识的前提下,因系统时间顺序产生区块的特性,会同时产生多个区块(state fork),因而极易成为攻击者的攻击目标;其次,由于区块链系统内部协议的更新,例如软件升级,弱共识无法要求整个系统中所有节点同时更新,就有可能产生硬分叉或软分叉。硬分叉中旧节点不承认新节点,只要旧节点不更新系统分叉就不会消失。软分叉则相反,只要一直沿着新节点增加区块即可消除分叉威胁。

  • 攻击者主动制造分叉进行攻击

    • 女巫攻击 :由攻击服务器生成超过系统51%的傀儡账户
    • 双花攻击:它利用了比特币数字加密货币的传输特性,使一笔钱“花费两次”
    • 重播攻击:以太坊系统中重复使用同一请求,一笔钱“收两次”,与“双花攻击”恰好相反
    • 私自挖矿攻击:主要指的是恶意矿池挖出区块隐瞒不发,而是继续在隐藏链上挖矿,当恶意矿池挖出的隐藏链比诚实节点所维护的合法链更长时,恶意矿池发布分叉链,由于诚实矿工都会选择最长链为合法链,因此分叉攻击实施成功。

基于密码学攻击 

区块链中对于数据的安全保护基于密码学纯数学计算方式。所使用的密码学算法有MAC 函数HASH函数以及RSA公钥加密体制和ECC椭圆曲线加密体制等。这些算法在目前理论上是安全的,且密钥的产生需要特殊的随机元,一个好的随机元生成的密钥对的安全系数相比于较差的随机元的安全系数更高,能直接避免和其他账户生成重复的密钥对。

针对密钥对的破解,最通用的密码爆破方式为字典攻击:通过构造常用的密码组合模式的脚本来自动执行匹配账户密码的步骤。
被动攻击是基于攻击者对截取到的数据PDU(协议数据单元)进行的流量分析,数据包累计回应,攻击者可得到数据的长度、频度、特性甚至破解信息内容。

侧信道攻击普遍存在于任何区块链系统,服务器硬件存储密钥信息,若私钥被盗,即可锁定私钥对应的账户,系统中私钥被盗将无法找回,重新生成同一私钥在计算上不能成立,若有报道称某加密货币被偷则意味着私钥被盗,由于区块链数据无法更改,一旦罪犯偷了一把私钥并将相关资金公开
转移到另一个账户,这笔交易通常无法撤销。

基于共识算法攻击

 基于共识算法的攻击有51%算力攻击长程攻击DDOS 攻击区块截留攻击以及渗透博弈攻击

51%算力攻击指的是PoW通过算力比拼以竞争区块记账权,若恶意节点拥有51%的哈希算力,便可以发动攻击。

长程攻击是指从创世区块就开始创造另一条与主链完全不同的链,试图替换原主链,其中的交易和用户也不完全一致,由于节点的弱主观性,长程攻击成了PoS 最大的威胁。

DDOS 攻击是指攻击者旨在利用庞大的IP 群体对目标主机发送大量无效请求,导致目标主机接收不到真实请求,有时甚至造成系统瘫痪,致使共识效率极低,如在Hyperledger Fabric 中极少数的背书节点就容易成为攻击目标。

区块截留攻击则指的是恶意矿工通过丢弃所有成功答案,而只向矿池管理员提交部分答案,造成矿池亏损。虽然区块截留不会对区块链造成很大的伤害,但是会降低矿池和诚实节点的收益,且以极低的代价让矿池不再受诚实节点的信任。
渗透博弈的原理源自博弈树,即攻击者选择对区块节点进行渗透,一般出现在矿池间的恶性竞争,于是在受攻击的节点上形成博弈状态,各方都为了自己的利益最大化。

基于智能合约攻击

 DAO(Decentralized Autonomous Organizationd)区块链史上众所周知的黑客攻击事件,因为系统代码漏洞,攻击者可间接递归调用漏洞函数,旨在系统中强行创建分支,并在每个分支上都获取以太币,the DAO攻击造成了6 000 万美元的金额损失。

时间戳依赖攻击:在以太坊中设定节点之间需保持时间“大致相同”而并非完全保持一致,前驱区块的哈希值和区块数是已知的其他的合约变量,如导致产生随机数的原因也是已知的。因此,矿工就可以预先计算和选择时间戳,矿工可以随机产生一个有利于他的结果,而攻击者利用这偏差来左右时间戳的设置并发动攻击。

调用堆栈深度攻击:智能合约中规定,当外部用户调用合约用户时,合约堆栈自动增加一位,当栈满时会溢出异常。在以太坊中,智能合约规定栈最大为1024 位,攻击者在发动攻击之前,事先生成一个将满的堆栈,当再次调用目标合约时堆栈溢出就会抛出异常,导致系统崩溃轻。
交易顺序依赖攻击:一个区块中包含的两个交易同时调用了一个合约,导致用户不知道他们单独调用时合同处于哪种状态,因此用户打算调用的合约状态与执行时发生的实际状态存在差异,所以只有负责开采的矿工能决定合约的最终状态即交易的执行顺序。恶意用户可以利用合约的交易排序依赖来获得更多的利润,甚至可以窃取用户的钱。
代码漏洞:在运算过程中当计算结果无法放置在整型数据类型中时,会产生整数溢出(integer overflow)。例如以太坊使用的solidity 语言就具有该严重漏洞,会导致攻击者获得未经授权的数字资产,且solidity 语言无法支持小数点,这可能使得一个区块链项目因数据格式不一致或精度不匹配而半途夭折。

路由更改攻击:即攻击者利用BGP (自治系统间的路由协议)动态变化的路由更改自己的网络前缀伪装成其他节点,并对目标节点进行定向流量拦截,引导数据流向原本错误的路线。

其他攻击

病毒攻击:现阶段区块链平台的广泛应用,没有统一的标准进行规范化约束,攻击者想要植入病毒或木马很容易,这会严重威胁到用户的财务状况。

供应链攻击:大多数的企业会把自家的大型业务外包给其他的技术公司或者是多家企业联合业务,但很多时候这种潜在的危险就是合作方,他可能是流氓企业,也可能有流氓雇员,在系统的产生过程中就已经存在漏洞。
中间人攻击:攻击者对网络中传输的信息进行截取、偷听甚至篡改,但不会惊动通信双方的攻击方式。
重放攻击:即将上一次传输的信息与当前传输的信息进行合并再发送,以达到欺骗系统和阻碍认证的目的。
社会工程学分析:对某些账户的交易数据进行流量分析,联系他在现实中的生活轨迹得到用户的真实身份。
恶意软件攻击:攻击者通过向用户发送恶意软件骗取用户登陆信息,以盗取账户信息和节点私钥等。
侧信道攻击:攻击者对链下支持区块链运行的物理设备进行的攻击甚至破坏,导致服务器硬盘损坏数据丢失等。虽然攻击者达到了破坏区块链分布式账本的完整性,但对于攻击者本身并没有多大益处。

综上所述,导致全球区块链安全事件的原因包括两个方面:一方面是其共识机制、私钥管理、智能合约等存在的技术局限性所面临的安全问题;另一方面是区块链去中心、自治化的特点给现有数据存储、隐私保护、资源分配等技术手段带来了新的挑战。

    原文作者:Chandler.Blockchain
    原文地址: https://blog.csdn.net/m0_61970067/article/details/123870753
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞