APP下载

基于区块链技术的共识算法研究

2020-02-21郭雨

电子技术与软件工程 2020年13期
关键词:加密技术区块链

摘要:本文对POW、POS、DPOS、PBFT共识算法的基本原理进行阐述和分析,并分析其中一些共识算法的缺陷。共识算法是区块链技术的关键技术,在区块链安全、效率等方面有着决定性的作用,它决定了区块链中区块的生成规则,常用的共识算法主要有POW、POS、DPOS、PBFT。

关键词:区块链;识算法;加密技术

2019年1月10日,国家互联网信息办公室发布《区块链信息服务管理规定》。2019年10月24日,在中央政治局第十八次集体学习时,习近平总书记强调:“区块链技术的集成应用在新的技术和产业变革中起着重要的作用,我们要把区块链作为核心技术自主创新的重要突破口,明确主攻方向,加大投入力度,着力攻克一批关键核心技术,加快推动区块链技术和产业创新发展。”

“区块链”技术已逐渐走入大众的生活,成为社会的关注焦点。区块链源于比特币,利用加密链式区块结构存储数据,其中共识算法是区块链技术的一个核心问题,利用共识算法来生成、验证数据,可以有效的解决互联网上信任与价值的可靠传递难题。

1 区块链的技术和发展

1.1 技术起源阶段

通过网络点对点技术U1区块链上对等节点的网络进行连接。同时,采用非对称的加密算法,在加密算法中,公钥和私钥是成对出现的,但是由于加密和解密的密钥不同,所以称为非对称算法,区块链使用这种算法保证节点间的保密通信。

1.2 区块链1.0阶段

在区块链1.0阶段中,主要特点是采用分布式账本技术,分布式账本技术可以看作是一个可以在多个节点不同地理位置或者多个组织机构组成的网络数据库。区块链1.0采用块链式的数据结构,保证交易数据的防篡改。

1.3 区块链2.0阶段

采用一套数字形式的定义承诺,由计算机自动执行。承诺中包含合约参与者约定的权力和义务,通过引入智能合约,使用者类似发起一笔转账交易,要求执行指定合约的相关规则,从而使得区块链系统演变成一个区中心的计算平台。

区块链技术目前已经广泛应用到各个领域,在科学技术方面,区块链可以协助很多学科解决科学技术的问题,如区块链+互联网,区块链+密码学,区块链+金融等等。从区块链的应用性来看,区块链采用分布式的计算方式,实现账本的共享和数据信息的共享。使用区块链技术,实现信息的不再是中心化,数据信息安全性提高、保证数据的公开和透明等特点。从而使区块链的安全性得到普遍的认同。区块链具有丰富的应用场景,对于信息不对称的问题,区块链技术采用两套加密技术,公共数据可以透明化进行实现。

在区块链系统中,共识算法具有重要作用。它不仅协助节点保持数据一致,同时还对代币发行,攻击防范具有一定功能。从2009年第一个区块链系统诞生至今,随着区块链技术的成熟,区块链共识算法也在不断发展与完善,到如今己演变出多种分支。

伴随着区块链产业的迅猛发展,区块链的安全性逐渐得到区块链应用和研发人员的重视,区块链技术的算法中,可以交易不再围绕中心的机构,同时还能保证全网数据的一致性,从而实现点对点的交易,这些交易的规则设计显得尤为重要。在区块链技术的研究中,共识算法作为其技术的核心内容,对区块链的使用起着决定性的作用,其中包括区块链的安全、效率等方面。

2 区块链的特征

区块链具有去中心化的特点,说明区块链不再以中心节点为主要依赖对象,对数据实现分布式的记录方式,同时对数据进行存储和更新。在传统的网络中,以中心化为技术特征,业务的执行要依赖于中心节点的可信性和稳健性。在区块链中,区块链的分布式结构使全网的节点进行均匀分布,系统中的数据由全网共同进行维护。

区块链中的所有公开节点具有开放性,任何节点可以通过公开的接口进行数据的查询或者开发应用,整个系统是开放的。

在区块链系统中,公开节点的信息所有的数据都可以被访问,但交期时的私有信息时通过哈希函数加密处理的,所以数据交换和交易时在匿名的情况下进行的。

区块链技术采用两套加密技术,用来防止区块链中的记录被篡改。一套是默克尔树的方式进行记录;另一套是在创建新的区块前放入一个哈希值。这两种加密机制使区块链中的数据具有极高的稳定性和可靠性。

从区块链的开放程度上看,区块链可以分为联盟链、私有链和公有链。如图1所示,每个链中包含不同的算法,本文主要对共识算法中的公链进行研究。伴随着区块链技术的不断发展,区块链中每种类型的链之间的界限也将变得模糊,随着节点上运行的智能合约越来越复杂,私有链上的节点有些必须开放才能执行相应的业务逻辑,而部分的共识节点仅会向许可节点保证其开放性,各链之间的业务界限会逐渐模糊。

3 共识算法的基本原理

3.1 工作量证明(POW,Proof of Work)

工作量證明是区块链技术中较早产生的一种算法,在2009年最早的应用到区块链技术中。在区块链技术中,工作量证明的主要的方法是节点间进行算力的竞争来分配记账权和奖励。

工作量证明流程如图2所示。

在工作量证明中,首先收集在一个区块上产生的待确认的交易,当交易验证通过时,将其计入节点内存池,更新计算出交易的默克尔根值,写入到这个区块的头部信息,标注区块的版本号以及前一个区块计算的哈希值、该区块产生的近似时间、当前的哈希值、随机数等信息。根据随机数的取值范围,计算区块头部的哈希值,当区块头部的哈希值小于或等于目标值的时候,对这个区块进行打包并广播,待其他节点验证后完成记账。共识算法的区块头部信息如表1所示。

3.2 权益证明( POS,Proof of Stake)

在权益证明中,数字货币有了币龄的概念:

币龄一持有数量×持有时间

权益证明鼓励比特币的持有人增加比特币的持有时间,并通过币龄的概念,使区块链的证明不再依靠工作量的计算。同时,区块链的价值越大,安全性越高,当攻击者想要对区块链进行攻击时,需要积攒大量的币龄,从而增加了攻击的难度,增加了区块链的安全性。说明在权益证明机制中,区块链的价值与区块链的安全性成正比。

3.3 股份授权证明机制( DPOS,Delegated Proof of Stake)

在上一个共识算法中,每个节点都可以根据自己拥有股份权益投票选取代表,整个网络中,参与投票且获得票数最多的节点,将获得记账权。这些节点按照预先决定的顺序,通过决定的顺序产生区块,同时获得相应的奖励。在获得记账权中,其节点需要缴纳一定数量的保证金,且必须保证一定的在线时间,如果某个时刻需要此节点产生区块,而该节点并未履行职责,那么这个节点将会被取消记账权,系统继续投票,选出新的节点代表来取代他。

3.4 拜占庭容错算法( BPFT,Delegated Proof of Stake)

拜占庭容错技术在分布式系统中,主要用于解决对应结点的故障和传输错误的问题,在拜占庭容错算法中,应用到视图的概念,在每个视图中,只需要定义一个主节点,其他结点都定义为备份结点,所有的结点都在相同的配置环境下运行。其中,主节点负责将客户端的请求进行排序,并按照排序结果发送给备份结点。接收到排序结果后,此时备份结点需要检查主节点发送的请求排序是否正常,如果发现异常,就会触发试图替换机制,更换下一个编号的结点作为主节点,从而进入到视图。在拜占庭容错算法中,当客户端发出请求收到答复的流程图如图3所示。

4 共识算法的缺陷

在共识算法中,根据其算法的分析,存在着一些安全性或者扩展性的不足,本文对几种具有代表性的算法进行讨论。

4.1 拜占庭容錯算法

拜占庭容错算法,通过异步通信机制达成共识,同时由N个节点组成的异步网络系统中,能容忍F个拜占庭故障节点,其中F

4.2 工作量证明

工作量证明产生在区块链的第一个阶段中,在算法上,块间隔时间较长,并且区块间隔时间较长,导致交易确认速度较慢。

哈希运算是一种最常见的工作量证明机制。工作量证明机制主要利用哈希运算,运用其复杂度,给定初始的哈希值,进行简单的值递增运算,利用哈希算法求解,直到找到满足条件的碰撞值。不同的哈希算法求得的碰撞值长度不同,所需工作量和安全性能也不同。碰撞值的长度越长,则所需的工作量越大。对于同一个哈希算法,可以设定哈希值前N位为0的个数来调节运算难度,比特币就是根据这一原理调节挖矿难度的。工作量证明需要先确认后共识,这种方法要耗费大量的算力,从而造成能源浪费,确认时间长,交易吞吐量有限。

5 结论

本文主要对当前区块链技术的发展和特点进行了阐述,并且对区块链的关键技术:共识算法进行研究分析,阐述了四种主要的共识算法(POW、POS、DOPS和PBFT)的基本原理及各自的特点,并对一些算法进行了算法缺陷分析:

(1)拜占庭容错算法不适用于大型公有链网络及网络速度较低的网络环境。

(2)工作量证明虽然算法简单,但是造成能源浪费。

参考文献

[1]马小峰.区块链技术原理与实现[M].机械工业出版社,2020 (01).

[2]黄宇翔,梁志宏,黄芯,孙永科.基于区块链的供应链可信数据管理[J].计算机系统应用,2018 (12).

[3]邵奇峰,金澈清,张召,钱卫宁,周傲英.区块链技术:架构及进展[J].计算机学报,2018 (05).

作者简介

郭雨(1988-),女,吉林省人。硕士学位,吉林建筑科技学院助教。研究方向为算法研究与分析。

猜你喜欢

加密技术区块链
海洋水文信息加密技术方案设计与测试
运用数据加密技术维护网络安全的可靠性研究
数据加密技术在计算机网络安全中应用研究
数据加密技术在计算机网络通信安全中的应用
区块链技术的应用价值分析
“区块链”的苟且、诗和远方
在计算机网络安全中数据加密技术的应用
用“区块链”助推中企走出去
基于四叉树网格加密技术的混凝土细观模型