【网络安全】——区块链安全和共识机制

2023-11-13

区块链安全和共识机制

摘要:区块链技术作为一种分布式去中心化的技术,在无需第三方的情况下,使得未建立信任的交易双方可以达成交易。因此,区块链技术近年来也在金融,医疗,能源等多个行业得到了快速发展。然而,区块链为无信任的网络提供保障的同时,也面临着一些安全隐患。本文就从区块链共识层面,分析了区块链存在的攻击问题。并且我们还分析总结了未来共识算法可能的发展方向。

关键字:区块链;共识算法;共识攻击;分布式安全

Abstract: Blockchain technology, as a distributed and decentralized technology, enables both parties to reach a transaction without establishing trust without a third party. Therefore, blockchain technology has also developed rapidly in finance, medical treatment, energy and other industries in recent years. However, while blockchain provides protection for untrusted networks, it also faces some security risks. This paper analyzes the attack problems of blockchain from the perspective of blockchain consensus. And we also analyze and summarize the possible development direction of consensus algorithm in the future.

Keywords: blockchain;consensus algorithm;consensus attack;distributed security

目录

一、区块链概述

1、区块链基本概念

2、区块链安全挑战

3、本文章节安排

二、区块链主流共识算法

1、PoW工作量证明

2、PoS权益证明

三、基于区块链共识的攻击

1、双花攻击

2、51%攻击

3、无利害关系问题

四、共识算法未来发展

1、PoW与PoS算法相结合

2、原生PoS算法的改进

3、原生PoW算法的改进

4、传统分布式一致性算法的改进及其他

五、总结与展望

六、参考文献


一、区块链概述

1、区块链基本概念

图1.区块链结构

区块链技术起源于比特币,是以比特币为代表的众多数字货币方案的底层核心技术,最初设计目的是解决电子支付中过度依赖可信第三方的问题[1]。比特币通过哈希函数将交易区块按时间顺序前后相连,形成链式结构,区块链结构如图1所示。每个区块包含交易信息和区块头部两部分。交易信息是区块的主体部分,将交易以 Merkle树结构存储。最终生成 Merkle树的根作为交易摘要被记录在区块头部中,便于交易的验证和查找. 区块头部还记录了版本号、区块高度、随机数nonce、时间戳等信息[2]。

区块链是一种典型的分布式账本技术,通过共识等多边自治技术手段支持数据验证、共享、计算、存储等功能。从区块链的组织结构和运行原理来看,可以狭义地将区块链视为一种以区块为单位的、按照时间顺序前后相连的单向链式数据结构,通过共识机制、密码学组件和系统容错等技术保证分布式网络中节点共享数据的一致性和安全性。从应用角度来看,区块链是一种集成了密码学算法、分布式网络、共识机制、博弈论等技术的复合分布式网络技术,利用链式区块结构存储数据,利用共识机制实现交易的更新和共享,利用密码学技术保证交易的安全性,利用自动化脚本代码实现可编程性和自治性,利用经济学激励机制激发节点自主维护系统稳定,构成了一种全新的、自治的分布式基础架构与计算范式。

图2.区块链安全目标

2、区块链安全挑战

根据网络系统的安全需求,结合区块链的特点,区块链系统构建的基本安全目标是通过密码学和网络安全等技术手段,保护区块链系统中的数据安全、共识安全、隐私保护、智能合约安全和内容安全[3]。各安全目标之间的关系如图2所示。

共识机制是区块链的核心,共识安全对区块链的数据安全起到重要的支撑作用。本文引用比特币骨干协议[4]中定义的一致性和活性两个安全属性来衡量和评估区块链的共识安全。

一致性:要求任何已经被记录在区块链上并达成共识的交易都无法更改,即一旦网络中节点在一条区块链上达成共识,那么任意攻击者都无法通过有效手段产生一条区块链分叉,使得网络中的节点抛弃原区块链,在新区块链分叉上达成共识。一致性是共识机制最重要的安全目标。根据共识机制在达成共识的过程中是否出现短暂分叉,一致性又分为弱一致性和强一致性。

活性:要求诚实节点提交的合法数据终将由全网节点达成共识并被记录在区块链上。合法数据包括诚实节点提交的合法交易、正确执行的智能合约中间状态变量、结果等。活性保证了诚实节点能够抵抗拒绝服务攻击,维护区块链持续可靠运行。

3、本文章节安排

本文第一章节对比特币基本概念以及存在的安全问题做了一个系统介绍。第二章介绍了区块链的主流的共识算法,主要介绍了PoW工作量证明机制[5]和PoS权益证明机制。第三章介绍区块链传统共识机制下可能存在的安全隐患。第四章介绍了区块链共识算法未来的发展现状。并在第五章对本文作一个总结以及对未来区块链发展的作一个展望。

二、区块链主流共识算法

1、PoW工作量证明

图3.PoW共识机制流程图

PoW(Proof of Work),即工作量证明,闻名于比特币,俗称"挖矿”。PoW共识机制是通过竞争记账的方式来解决区块链网络中一致性的问题。当一笔交易产生后,每一个想要记账的节点需要依靠自己的计算能力与他人竞争,争夺记账的权力。PoW共识机制流程图如图3所示。从流程图中看出,PoW工作量证明的流程主要经历三步:

1.生成Merkle根哈希;

2.组装区块头;

3.计算出工作量证明的输出;

   i. 工作量证明的输出=SHA256(SHA256(区块头))。

   ii. if(工作量证明的输出<目标值),证明工作量完成。

   iii.if(工作量证明的输出>=目标值),变更随机数,递归,继续与目标值比对。

经过PoW共识后,最终获得记账权的人,他所打包的区块会连接到区块链的链上。同时它处理的数据也会被全网的其他节点记录在各自的小账本中。

PoW的优势在于,它将每个节点的算力都加入进网络的交易认证中,使得网络去中心化性更强,节点的作恶成本更高。理论上,除非有人掌握了全网51%以上的算力,否则网络的任何东西都是无法被篡改的。但PoW也存在一定的劣势,如浪费了大量资源,性能效率较低等。

2、PoS权益证明

PoS权益证明的原理类似于现实世界中的股份制,拥有股份越多,话语权就越强,获得记账机会的概率就越大。PoS算法要求节点验证者必须质押一定的资金才有挖矿打包资格,并且区域链系统在选定打包节点时使用随机的方式,当节点质押的资金越多时,其被选定打包区块的概率越大。

POS机制的优点就是不需要拼算力挖矿,不会浪费能源,同时缩短了共识达成的时间,记账效率提高了。POS机制的缺点也是非常明显,首先就是去中心化程度弱,容易出现强者恒强的情况,持币大户持币生息,从而出现垄断问题。另外一点就是安全程度,POS机制实现较为复杂,容易产生安全漏洞。

三、基于区块链共识的攻击

1、双花攻击

双花攻击又叫双重消费攻击,顾名思义,就是指同一个货币被花费了多次。在区块链网络中,每个用户的每一次交易都可以对应一个网络请求。而区块链整个系统会进行对此请求的验证。其中包括检查其资产的有效性,是否已经使用已花费的资产来进行交易。经过全网节点的检验后,广播这个成功验证的账本。

区块链网络能够通过以下两种方式应对双花攻击。一是每一笔交易都会有记录,他会提前确认这个比特币的状态,如果它已经被标记为划掉,那么交易会被拒绝。二是如果在此次交易被确认前先发起一笔交易,也就是这个时间段的交易还未被记账成区块block时,进行矛盾的第二笔交易,那么在记账时这些交易会被矿工拒绝。

2、51%攻击

比特币白皮书中,有过这样的表述:诚实节点控制算力的总和,大于有合作关系的攻击者算力的总和,该系统就是安全的。换句说,当系统中有合作关系的恶意节点所控制的算力,超过诚实节点所控制的算力,系统就是有被攻击的风险。

所谓51%的攻击,就是利用比特币网络采用PoW竞争记账权和“最长链共识”的特点,使用算力优势生成一条更长的链“回滚”已经发生的“交易行为”。51%是指算力占全网算力的51%,比特币网络需要通过哈希碰撞来匹配随机数从而获得记账权,算力衡量的是一台计算机每秒钟能进行哈希碰撞的次数。算力越高,意味着每秒钟能进行越多次的哈希碰撞,即获得记账权的几率越高。在理论上,如果掌握了50%以上的算力,就拥有了获得记账权的绝对优势,可以更快地生成区块,也拥有了篡改区块链数据的权利。当一个网络足够大时,如果恶意节点想发动51%攻击,那么他必须要掌握50%以上的算力,因此比特币自诞生以来从未遭受过51% 的攻击。

3、无利害关系问题

无利害关系(Nothing At Stake Attacks)问题指的是,权益证明机制中的矿工最佳的策略是在所有的叉上进行挖矿,因为签名的制造非常便宜。

解决方法可以将保证金加入剑手协议意味着无利害关系问题被正式解决。这里的剑手协议是指如果你在同一个层级的分叉上同时签署了两份协议,那么你就会失去你所能得到的区块奖励。只有当验证节点缴纳存款保证金的时候,它签署的承诺才有意义。当一个保证金节点在相同高度处创建或签署两个区块时,则其存款保证金就会被削减,并且这种行为会被认为是“明显不良的行为”。此类攻击仅针对PoS共识。

四、共识算法未来发展

自2014年起,随着比特币和区块链技术快速进入公众视野,许多学者开始关注并研究区块链技术,共识算法也因此进入快速发展的时期。我们从四条主线分别介绍未来区块链共识算法可能发展的方向。

1、PoW与PoS算法相结合

研究者基于PoW和PoS算法的有机结合,相继提出了权益-速度证明(PoSV)、燃烧证明(PoB),行动证明(PoA)等,致力于取长补短,解决PoW与PoS存在的能源消耗与安全风险问题。

图4.PoA共识过程

2014年4月,拉里雷恩提出了PoSV共识算法, 针对PoS中币龄是时间的线性函数这一问题进行改进, 致力于消除持币人的屯币现象。PoSV将PoS中币龄和时间的线性函数修改为指数式衰减函数,即币龄的增长率随时间减少最后趋于零。因此新币的币龄比老币增长地更快,直到达到上限阈值,这在一定程度上缓和了持币者的屯币现象。2014年5月发行的Slimcoin借鉴了比特币和点点币的设计,基于PoW和PoS首创提出了PoB共识算法。其中,PoW共识被用来产生初始的代币供应,随着时间增长,区块链网络累积了足够的代币时,系统将依赖PoB和PoS共识来共同维护。PoB共识的特色是矿工通过将其持有的Slimcoin发送至特定的无法找回的地址(燃烧)来竞争新区块的记账权,燃烧的币越多则挖到新区块的概率越高。PoA共识也是基于PoW和PoS,其共识过程如图4所示。其中采用PoW挖出的部分代币以抽奖的方式分发给所有活跃节点,而节点拥有的权益与抽奖券的数量即抽中概率成正比。

2、原生PoS算法的改进

原生PoS共识算法的改进目标主要是解决其固有的无利害关系问题。为解决无利害关系问题,形成了Tendermint等新共识算法。2014年提出的Tendermint的重大突破是使用区块、哈希链接、动态验证器集合和循环的领导者选举,实现了第一个基于PBFT的PoS共识算法。为解决无利害关系问题,Tendermint节点需要缴纳保证金,如果作恶则保证金就会被没收。Tendermint是一种拜占庭容错的共识算法,具有抵御双花攻击的鲁棒性,并且可以抵御网络中至多三分之一的破坏者的攻击。

3、原生PoW算法的改进

原生PoW共识算法的改进目标主要是实现比特币扩容或者降低其能耗。研究者相继提出了消逝时间证明(PoET)和运气证明(PoL)。

PoET是超级账本HyperLedger采用的共识算法,其基本思路是每个区块链节点都根据预定义的概率分布生成一个随机数,来决定其距离下一次获得记账权的等待时间。PoET共识的意义在于使得区块链系统不必消耗昂贵算力来挖矿,从而提高了效率,同时也真正实现了“一CPU一票”的公平性。类似地,PoL共识采用TEE平台的随机数生成器来选择每一轮共识的领导者(记账人),从而可降低交易验证延迟时间和交易确认时间,实现可忽略的能源消耗和真正公平的分布式挖矿。

4、传统分布式一致性算法的改进及其他

传统分布式一致性算法大多是非拜占庭容错的,因而难以应用于区块链场景(特别是公有链)。为此,研究者结合Raft和PBFT算法的优势,于2014年提出拜占庭容错的Tangaroa算法.Tangaroa继承了Raft简洁和容易理解的优势,同时在拜占庭错误环境下也能够维持安全性、容错性和活性。

五、总结与展望

区块链解决了分布式网络中的一致性问题, 颠覆了依赖可信第三方实现大规模组织管理控制的传统技术架构, 应用逐渐延伸至金融、物联网、智能制造等众多领域, 成为全球学术界的研究热点。区块链行业风风火火发展的同时, 技术本身存在的共识安全薄弱、隐私泄露、系统漏洞、等问题,阻碍区块链的发展。

而良好的共识机制有助于提高区块链系统的性能效率, 提供强有力的安全性保障, 支持功能复杂的应用场景, 促进区块链技术的拓展与延伸。但现如今存在的共识算法在不同层面有着大大小小的问题隐患。因此,通过不断改进共识算法,使其朝着更加安全可靠高效节能的方向发展,这也为区块链技术能够应用于各领域打了一个重要基础。

六、参考文献

  1. Yuan Yong, Wang Fei-Yue. Blockchain: the state of the artand future trends. Acta Automatica Sinica, 2016, 42(4):481-494
  2. Yuan Yong, Zhou Tao, Zhou Ao-Ying, Duan Yong-Chao, Wang Fei-Yue. Blockchain technology: from data intelligence to knowledge automation. Acta Automatica Sinica, 2017, 43(9): 1485-1490
  3. Qin Bo, Chen Li Chang-Hao, Wu Qian-Hong, Zhang YiFeng, Zhong Lin, Zheng Hai-Bin. Bitcoin and digital flat currency. Journal of Cryptologic Research, 2017, 4(2): 176-186
  4. Garay J, Kiayias A, Leonardos N. The bitcoin backbone protocol: analysis and applications. In: Proceedings of the 34th Annual International Conference on the Theory and Applications of Cryptographic Techniques. Sofla, Bulgaria:EUROCRYPT, 2015. 281-310
  5. Dwork C, Naor M. Pricing via processing or combatting junk mail. In: Proceedings of the 12th Annual International Cryptology Conference. California, USA: CRYPTO, 1992. 139-147

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【网络安全】——区块链安全和共识机制 的相关文章

  • unity实现场景跳转

    话不多说直接开始操作步骤 1 打开我们的unity创建一个工程 打开后我们先搭一个场景 建立一个Button 添加一个c 脚本 并保存场景为命名为01 结果如下 2 在菜单栏中找到File按钮New Scene新建另一个场景创建一个Butt
  • Face Swapping: Automatically Replacing Faces in Photographs论文阅读

    论文原文 Face Swapping Automatically Replacing Faces in Photographs 题目 人脸交换 自动替换照片中的人脸 图1 我们已经开发了一个系统 它自动地将输入图像中的人脸替换为从大量人脸图
  • Ctfshow web-web6 WP

    Ctfshow web we6 WP 进去看见一个login界面 看上去有点眼熟 好像做过 但是尝试之前做过的方法 回显始终是sql infect error 这样的回显表示输入的值中有非法字符 最后尝试下来是空格被顾虑了 用 代替 原来
  • MapReduce框架原理之ReduceTask工作机制

    一 Reduce Task 并行度决定机制 reduce task的并行度 也就是同时开启了几个reduce task 分为两种情况 1 如果我们自己定义了分区器 我们能够确定自己的分区器能够形成几个物理分区 加入我们要生成5个分区 那么我
  • 谈谈对CAP定理的理解

    谈谈对CAP定理的理解 CAP定理的常规解释是任何分布式系统只能在一致性 Consitency 可用性 Availability 和分区容忍性 Partition Tolerance 中三选二 这个解释很让人费解 笔者在看了一些文章后谈谈我
  • 目标检测原理群100问

    qq群号 703346870 简述yolo的多尺度变换 怎样理解残差网络可以自行选择冗余层 https baijiahao baidu com s id 1609100487339160987 梯度下降的数学原理 怎样理解包围框回归 使用g
  • 后台dom拼接xml,动态显示统计图

    1 这个东西让我好生头疼 贴代码吧 2 3 两秒后模拟点击 4 setTimeout function 5 IE 6 if document all 7 document getElementById userQuery click 8 其
  • MATLAB 更改或隐藏热图(heatmap)的坐标轴刻度

    在热图中 坐标轴标签用 data表示 更改坐标轴标签 figure my matrix rand 3 heatmap my matrix Colormap parula 3 ColorbarVisible on XLabel Time YL
  • FreeRTOS-创建删除任务

    1 FreeRTOSConfig h文件 FreeRTOSConfig h配置文件作用 对FreeRTOS进行功能配置和裁剪 以及API函数的使能 相关的宏可以分为三大类 INCLUDE 配置FreeRTOS中可选的API函数 config
  • 比较器的设计

    一 1位比较器 1位比较器原理 1位比较 Xi Yi XY的第i位 大于Great Li1 Xi Yi 小于Less Li2 Xi Yi 等于Equal Li3 Xi Yi 同或 异或非 Lij 第1个下标表示位数 第2个下标表示大小关系1
  • sql语句中case when和as用法

    在sql语句里case when then else end可以当做c语言中switch case一样是分支语句 起到不同条件处理作用 而as相当于一个别名 可以给某个列或者某个表起新的名字 比如这里有个employee表 select f
  • R语言重命名数据框列名:使用plyr包的rename函数

    R语言重命名数据框列名 使用plyr包的rename函数 在R语言中 我们经常需要对数据框 data frame 的列名进行修改 修改列名可以使得数据更易读和理解 同时也有助于数据分析和可视化过程中的操作 在本文中 我们将介绍如何使用ply

随机推荐

  • C++基础知识 - map和multimap容器

    map multimap的简介 map是标准的关联式容器 一个map里存储的元素是一个键值对序列 叫做 key value 键值对 它提供基于key快速检索数据的能力 map中key值是唯一的 集合中的元素按一定的顺序排列 元素插入过程是按
  • python爬虫五:beautifulsoup4的安装使用

    1 bs4简介 概念 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的网页信息提取库 安装 先安装它的依赖模块 lxml 再安装 bs4 pip install lxml gt pip install bs4 最基
  • 32万记录导入MSSQL,只需12.52秒,足足快了200多倍,省了一个小时干啥不好吗?

    现在云时代 大家都用上云了 现在云的带宽5M都觉得很大了 但是有大量的数据需要处理的话 按照传统的方式 上传一个32万记录的DBF 起码也得一个小时 而现在有款工具 来自ZHZ 可以节省你200多倍的时间 香不香 测试环境 win7 32位
  • Android Rxjava:最简单易懂的诠释 看这篇

    1 前言 Rxjava 具有链式调用 使用简单 事件与结果松耦合的特点 Rxjava 之所以深受欢迎它包含 非常多操作符 能通过 链式形 优雅整洁的代码几乎能实现所有的功能需求 本文特点 图多字少 逻辑简单 之前面试中被问了很多Rxjava
  • 激活函数(sigmoid、tanh、ReLU、softmax)

    文章目录 1 1 sigmoid函数 1 2 tanh函数 1 3 ReLU函数 1 4 softmax函数 激活函数在神经网络中的作用有很多 主要作用是给神经网络提供非线性建模能力 如果没有激活函数 那么再多层的神经网络也只能处理线性可分
  • 在阿里工作的日子里,我都学到了哪些东西?

    来阿里也有段时间了 这段时间学了很多东西 简单说起来 就是一个走出舒适区的过程 从一开始的新手入门 到逐渐熟悉业务和技术 再到慢慢的适应环境 胜任工作 总体来说 这几个月还是学到了很多东西 感觉成长的很快 但同时工作的压力也非常的大 总体来
  • 【翻译 + 整理】Qt样式表详解(2):属性——背景相关属性

    1 alternate background color 交替背景色 用于QAbstractItemView的子类 QColumnView QHeaderView QListView QTableView QTreeView 使用的前提是开
  • Zabbix监控部署项目

    为什么选择Zabbix Zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 zabbix 能监视各种网络参数 保证服务器系统的安全运营 并提供灵活的通知机制以让系统管理员快速定位 解决存在的各种
  • Springboot配置端口号

    springboot项目端口配置可以通过application yml或application properties指定 server port 80 或者 server port 8089 代码指定 springboot2 x以上版本Em
  • 关于AI自动写作的资料

    AI 自动写作 产品调研 第一种是AI新闻时事类写作 核心场景是在内容平台通过人 机混编的方式 机器帮助编辑 内容创作者 减少重复劳动 提高生产效率 主要调研了今日头条的xiaomingbot 腾讯的Dreamwriter 百度的writi
  • iOS架构师_消息转发机制

    1 动态方法解析 对象在收到无法处理的消息时 会调用下面的方法 前者是调用类方法时会调用 后者是调用对象方法时会调用 未实现类方法调用 BOOL resolveClassMethod SEL sel 未实现实例方法调用 BOOL resol
  • osg学习(七十)如何根据视口对象自动调整视点位置、距离

    osgGA CameraManipulator cpp void CameraManipulator computeHomePosition const osg Camera camera bool useBoundingBox doubl
  • Unity的2D图集处理,并切割出一张张小图片

    转载请注明出处 http blog csdn net hongyouwei article details 45011315 在我们找资源的时候 有时候会遇到那种把一堆图片放进一张png图片里面的情况 在做2D游戏的时候 我们往往需要将里面
  • jackson自定义全局序列化、反序列化

    需要自定义Jackson序列化和反序列化有两种方式 一种是全局定义 一种是非全局定义 先来看看全局定义 全局定义的步骤如下 以定义一个localDateTime的序列化和反序列化为例 一 创建序列化类 创建一个序列化类然后继承JsonSer
  • 基于JavaWeb(JSP+Servlet+MySQL)编程实现员工信息的添加、修改、删除、列表显示。

    1 项目结构 2 页面主要代码 2 1员工添加页面代码以及效果图 add jsp 员工添加
  • linux 修改用户密码的几种方法

    1 passwd 命令 手动修改 root localhost testuser passwd testuser Changing password for user testuser New password Retype new pas
  • Spring Factories

    该文章转载自 https blog csdn net lvoyee article details 82017057 Spring Boot中有一种非常解耦的扩展机制 Spring Factories 这种扩展机制实际上是仿照Java中的S
  • 简说数据库事务的ACID

    事务是应用程序中一系列严密的操作 所有操作必须成功完成 否则在每个操作中所作的所有更改都会被撤消 也就是事务具有原子性 一个事务中的一系列的操作要么全部成功 要么一个都不做 原子性 Atomicity 一致性 Consistency 隔离性
  • postman 模拟请求中添加 header,post请求中传json参数

    1 GET 请求 2 Post 请求 请求参数为Json header中带有参数 问题延伸 GET请求不能够 添加 Body 吗 答案 转载于 https www cnblogs com zacky31 p 8808110 html
  • 【网络安全】——区块链安全和共识机制

    区块链安全和共识机制 摘要 区块链技术作为一种分布式去中心化的技术 在无需第三方的情况下 使得未建立信任的交易双方可以达成交易 因此 区块链技术近年来也在金融 医疗 能源等多个行业得到了快速发展 然而 区块链为无信任的网络提供保障的同时 也