Blockchain Security

Contents

攻击者通常从两个点出发:

  1. 区块链中的中心化对象:交易平台、在线钱包等。

  2. 区块链中的去中心化对象:智能合约、共识机制等。

名称 严重等级 攻击对象
恶意信息攻击 中危 区块数据
资源滥用攻击 高危 区块数据
穷举攻击 低危 加密方式
碰撞攻击 高危 加密方式
长度扩展攻击 高危 加密方式
后门攻击 高危 加密方式
量子攻击 严重 加密方式
渗透攻击 中危 P2P网络
拒绝服务攻击 高危 P2P网络
交易延展性攻击 低危 传播机制
日食攻击 中危 传播机制
验证绕过攻击 严重 验证机制
短距离攻击 中危 共识机制
长距离攻击 高危 共识机制
币龄累计攻击 中危 共识机制
预计算攻击 中危 共识机制
女巫攻击 中危 共识机制
逃逸漏洞 高危 合约虚拟机
逻辑漏洞 视具体情况而定 合约虚拟机
堆栈溢出漏洞 严重 合约虚拟机
资源滥用漏洞 高危 合约虚拟机
可重入攻击 高危 智能合约
调用深度攻击 中危 智能合约
交易顺序依赖攻击 中危 智能合约
时间戳依赖攻击 中危 智能合约
误操作异常攻击 视具体情况而定 智能合约
整数溢出攻击 视具体情况而定 智能合约
私钥窃取 高危 钱包
钱包软硬件漏洞攻击 高危 钱包
在线钱包账号窃取 高危 钱包
钓鱼攻击 高危 交易所账户
中间人劫持攻击 高危 交易所账户
木马劫持攻击 高危 交易所账户
关键key&token窃取 高危 交易所API
挖矿傀儡 中危 挖矿节点
奖励接收地址篡改攻击 高危 挖矿节点
0day攻击 严重 矿机系统
弱口令攻击 高危 矿机系统
扣块攻击 中危 矿池平台
中心化问题 中危 矿池问题
单点登陆漏洞 中危 交易平台
oAuth协议漏洞 中危 交易平台
支付漏洞 高危 交易平台

目前主流的签名方式有如下:

签名机制 原理 安全性 性能
聚合签名 基于 co-GDH 和 双线性映射 在约束条件下, 即仅在不同消息上的签名进行聚合行为才有效, 聚合签名具有抵御攻击者伪造签名的能力 聚合签名的认证时间和签名数成线性关系, 在特殊情 况下, 当所有 n 个签名由同一个公钥 k 发布时, 聚合验 证速度更快
群签名 基于不可否认签名 可靠性和完备性; 不可伪造性; 匿名性; 可追溯性; 无关联性; 无框架; 不可伪造的追踪验证; 抗联合攻击性 公钥长度、签名长度与群成员数成线性关系, 但是新增成员需要重启整个系统, 故性能相对较低
环签名 群签名的变形, 拥有基于RSA 和基于拉宾版本的两种环签名 攻击者即使拥有所有成员的私钥也无法找到谁是具体签名者, 因为确定真正签名者的概率为1/n(n 为整个环成员数), A 无法从各种不可忽略的概率中产生消息m 的环签名 签名过程需要一个模幂运算, 对于每个非签名者加上一个或两个模乘运算, 而验证过程需要每个环成员一个或两个模乘运算。由于其生成或验证环签名的开销,与常规签名加上为每个非签名者加上一或两次额外的乘法开销是相同的, 故即使当环包含数百个成员时, 该机制依然高效可行
盲签名 基于RSA 或DSA 算法 若签名者不是消息的发送方, 则盲签名可以通过盲化将消息m 隐藏起来, 签名者无法得知消息的内容, 从而保护消息的隐私 取决于密钥长度、签名长度和签名和验证时间, 尽管其基于的算法理论存在差异, 但总体上与RSA 签名或DSA 签名机制的开销量类似
代理签名 基于离散对数问题 由于离散对数问题存在的固有问题, 使得代理人可以伪造原始签名进行安全攻击, 以及发生替换公钥等安全问题 由于离散对数的运算问题, 所以该机制在计算复杂度和通信开销等方面, 均劣于基于椭圆曲线问题的签名机制
不可否认的交互式数字签名(IIS) 基于双线性映射群系统的椭圆曲线对 可以保障所有者的不可伪造性和交易者的不可否认性 利用线性群的指数次数和元素长度计算复杂度和通信/存储成本两方面说明方案性能
盲的可验证加密签名(BVES) 基于盲签名和可验证签名 通过设置安全定义的三个方面, 分别验证满足假设, 其具有抵御欺诈的能力, 以此证明方案的安全性 分别从区块产生时间和通过公平合同签署协议的通信花费来评估签名和协议的性能
类似ETSI 下长期签名的新签名方案 基于ETSI 长期签名方案 当签名方案发生妥协现象时, 此方案可以避免密钥对的改变和hard-fork 开销方面, 在改变哈希算法时, 区块大小的开销取决于新散列函数的输出长度和块中交易数(交易的哈希值之间的相互引用数量)
在区块链交易环境下基于聚合签名所提出的新签名方案 基于椭圆曲线离散对数问题和双线性映射 根据安全分析, 攻击者的潜在伪造能力无法实现, 安全性能和聚合签名基本相同 通过聚合签名时间、聚合验证时间和签名空间大小来进行评估

各种共识机制的对比列出如下列表进行说明:

名称 技术优势 技术不足
PoW 算法简单, 易于实现节点间无需交换额外的信息即可达成共识破坏系统需要投入极大的成本 算力的消耗与浪费区块确认时间难以缩短新的区块链须找到一种不同的散列算法, 否则会面临比特币的算力攻击容易产生分叉, 需要等待多个确认
PoS 对节点性能要求低达成共识时间短(可实现毫秒级) 同PoW 一样仍需要挖矿PoS 会使得“富者更富”没有最终一致性
DPoS 不需要挖矿产生区块大幅缩小参与验证和记账节点的数量, 属于弱中心化, 效率提高可达到秒级共识验证 整个共识机制依赖于代币, 而很多商业应用不需要代币牺牲了去中心化的概念, 不适合公有链
投注共识 引入惩罚机制有效抵御“51%”攻击理论上, 该共识模型中的出块时间甚至可比网络传播时间还要块 由于该共识过程是在某个高度上对区块状态的决策是独立于其他所有高度的, 这将会导致一定程度的低效
PoI 提供了一种分布更为均匀的挖矿方法解决比特币生态资源浪费与挖矿设备竞争看重交易量、活跃度, 以及和谁做交易 仅适用于NEM 用户对于NEM 用户的重要性: 取决于他拥有多少数量的货币和他的钱包交互数量
瑞波共识 保证任何时候都不会产生硬分叉交易能被实时的验证 新加入节点要取得与其他节点的共识所需时间较长
PBFT 系统运转可以脱离币的存在, 安全性与稳定性由业务相关方保证共识的时延大约在2~5 秒钟, 基本达到商用实时处理的要求共识效率高, 可满足高频交易量的需求 当系统仅剩33%节点运行时, 系统会停止运行当有1/3 或以上记账人联合作恶, 且其他所有的记账人被恰好分割为两个网络孤岛时, 恶意记账人可以使系统出现分叉, 但是会留下密码学证据
DBFT 专业化的记账人可容忍任何类型错误记账由多人协同完成每一个区块都有最终性, 不会分叉算法的可靠性有严格的数字证明 PBFT 机制的缺陷依然存在
Paxos 算法 性能高, 资源消耗低所有节点一般有线下准入机制 不允许有作恶节点不具备容错性
Pool 验证池 不需要代币也可工作。在成熟分布式一致性算法(Paxos、Raft)基础上, 实现秒级共识 去中心化程度不如比特币, 适合多方参与的多中心商业模式