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

区块链安全和共识机制

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/195615.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ElasticSearch学习篇6_ES实践与Lucene对比及原理分析技术分享小记

前言 QBM、MFS的试题检索、试题查重、公式转换映射等业务场景以及XOP题库广泛使用搜索中间件&#xff0c;业务场景有着数据量大、对内容搜索性能要求高等特点&#xff0c;其中XOP题库数据量更是接近1亿&#xff0c;对检索性能以及召回率要求高。目前QBM、MFS使用的搜索中间件是…

数据分析思维与模型:群组分析法

群组分析法&#xff0c;也称为群体分析法或集群分析法&#xff0c;是一种研究方法&#xff0c;用于分析和理解群体内的动态、行为模式、意见、决策过程等。这种方法在社会科学、心理学、市场研究、组织行为学等领域有广泛应用。它可以帮助研究人员或组织更好地理解特定群体的特…

【iOS】——知乎日报第五周总结

文章目录 一、评论区展开与收缩二、FMDB库实现本地持久化FMDB常用类&#xff1a;FMDB的简单使用&#xff1a; 三、点赞和收藏的持久化 一、评论区展开与收缩 有的评论没有被回复评论或者被回复评论过短&#xff0c;这时就不需要展开全文的按钮&#xff0c;所以首先计算被回复评…

汽车标定技术--A2L格式分析

目录 1.A2L由来 2.A2L格式 2.1 PROJECT 2.2 MODULE中包含的内容 3. INCA和CANape兼容吗&#xff1f; 最近有朋友用Vector ASAP2Editor编译的A2L文件在INCA7.4中无法识别&#xff0c;我记得以前做的时候是可以识别的&#xff0c;难不成最近有什么变动吗&#xff1f;出于好…

【Gradle-13】SNAPSHOT版本检查

1、什么是SNAPSHOT SNAPSHOT版本是指尚未发布的版本&#xff0c;是一个「动态版本」&#xff0c;它始终指向最新的发布工件&#xff08;gav&#xff09;&#xff0c;也就是说同一个SNAPSHOT版本可以反复用来发布。 这种情况在大型app多团队的开发中比较常见&#xff0c;比如us…

window上Clion配置C++版本的opencv

window上Clion配置opencv 注意版本一定要对的上&#xff0c;否则可能会出错&#xff0c;亲测 widnows 11mingw 8.1.0opencv 4.5.5 mingw8.1下载地址https://sourceforge.net/projects/mingw/ 配置环境变量 cmake下载 安装完添加环境变量 来到官网&#xff0c;下载 windows 对…

基于java web个人财务管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

概念解析 | 网络安全数字孪生(Digital Twin of Cyber Security, DTCS)技术

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:网络安全数字孪生。 概念解析 | 网络安全的“数字镜像” —— 网络安全数字孪生 1. 背景介绍 随着数字化转型进程的深入推进,网络空间安全问题日益凸显。当前的网络安全防护面…

影刀sqlite的插入方法

影刀sqlite的插入方法 变量外面不用加‘’

常见树种(贵州省):002杉类

摘要&#xff1a;本专栏树种介绍图片来源于PPBC中国植物图像库&#xff08;下附网址&#xff09;&#xff0c;本文整理仅做交流学习使用&#xff0c;同时便于查找&#xff0c;如有侵权请联系删除。 图片网址&#xff1a;PPBC中国植物图像库——最大的植物分类图片库 一、杉木 …

「项目阅读系列」go-gin-example star 6.5k!(1)

文章目录 准备工作适宜人群项目信息 项目结构代码阅读主要模块代码主函数模块router 路由模块auth 授权模块数据库 修改文章请求分析其他依赖 总结 准备工作 适宜人群 初学 go 语法&#xff0c;希望了解 go 项目的构建过程和方式。 项目信息 go-gin-example 项目是使用 gin…

integrin + Receptor ; platelet ; Ig-CAM

platelet HPA ; integrin ; Cell adhesion in cancer: Beyond the migration of single cells