论文总字数:18891字
摘 要
自从比特币的出现,区块链技术也被越来越多的重视和发展。区块链作为分布式数据存储、点对点传输、共识机制、加密算法等信息技术应用的新模式,已经成为当前研究的热点。区块链作为一种按照时间顺序来存储数据的数据结构,可以支持不同的共识算法。
共识算法作为区块链的核心要素,它不仅可以协助节点保持数据的一致性,还能够具有防范算力攻击的安全保障。然而每一种共识算法都不是完美的,各有其优缺点。我们需要考虑应用需求来选择适合的共识算法。本篇文章系统的梳理了区块链的体系架构,数据结构,数据模型以及区块链当前的优劣势。进行了当前主流区块链共识算法与传统算法的比较,分析出区块链能够适用于比特币模型的原因。本篇文章也将通过搭建区块链共识算法的仿真平台,完成工作量证明共识算法的仿真,验证算法的安全性。
关键词:区块链;共识算法;工作量证明;安全
Research and Simulation of block chain consensus algorithm
Abstract
Since the emergence of Bitcoin, block chain technology has also been paid more and more attention and development. Block chain is a new application mode of information technology, such as distributed data storage, point-to-point transmission, consensus mechanism, encryption algorithm and so on. This technology has become a hot spot in the current financial industry.Block chains, as a data structure that stores data in chronological order, can support different consensus algorithms.
Consensus algorithm, as the core element of block chain, can not only help nodes maintain data consistency, but also have certain functions to prevent arithmetic attacks. However, each consensus algorithm is not perfect and has its own advantages and disadvantages. We need to consider the application requirements to select the appropriate consensus algorithm. This article systematically combs the block chain architecture, data structure, data model and the current strengths and weaknesses of the block chain. By comparing the current consensus algorithms of block chains with the traditional ones, the reason why block chains can be applied to Bitcoin model is analyzed. This paper will also build a simulation platform of block chain consensus algorithm, complete the simulation of workload proof consensus algorithm, and verify the security of the algorithm.
Key words: block chain consensus algorithm workload proof securit
目 录
摘 要 I
Abstract II
第一章绪论 1
1.1研究背景与意义 1
1.2研究现状 1
1.3研究目的和研究内容 1
第二章 区块链 2
2.1区块链的体系架构 2
2.1.1网络层 2
2.1.2共识层 2
2.1.3数据层 2
2.1.4智能合约层 2
2.1.5应用层 3
2.2区块链数据 3
2.2.1区块链数据结构 3
2.2.2区块链数据模型 3
2.2.3区块链数据存储 4
2.3智能合约 4
2.3.1运作机制 4
2.3.2编程语言 4
2.4安全性 4
2.4.1签名与验证 5
2.4.2隐私性 5
2.5区块链的优劣势 5
2.5.1区块链的优势 5
2.5.2区块链的劣势 5
2.6本章小结 6
第三章 各类共识算法 7
3.1共识的目的以及拜占庭问题 7
3.2主流区块链共识算法和对比 7
3.2.1工作量证明机制 7
3.2.2权益证明机制 8
3.3综合对比 9
3.4其他的共识算法 9
3.4.1PBFT 9
3.4.2dBFT 10
3.4.3瑞波共识 10
3.4.4权威证明 10
3.5本章小结 11
第四章 实验 12
4.1实验软件 12
4.2实验过程 12
4.3实验的验证 16
第五章 结束语 20
致 谢 21
参考文献 22
第一章绪论
1.1研究背景与意义
区块链,从本质上来说,就是一种不具有中心化的数据库,是来自比特币的一个重要的概念。它是通过密码学相关联产出的一种数据块,它的每个数据块中都包含了比特币的交易信息,用于验证信息的正确性和产生下一个区块。
共识算法,其主要作用是通过特殊节点的投票,能够在一定的时间内迅速的完成一笔交易的验证和确认。在一笔交易中,如果互不认识的若干个节点能够达成一致,我们就可以认为整个网络都可以对此达成一致。它是区块链技术的一个重要组成部分,要使区块链中所有的诚实节点保持一致。
1.2研究现状
2008年10月31日,一位自称“中本聪”的学者发表了比特币的白皮书,基于区块链的共识研究在此拉开了序幕。从分布式计算和共识的角度来看,比特币第一次实现了一种基于工作量证明的共识算法,从此打开了区块链发展新时代的大门。随着比特币的普及,以及相关的区块链技术的飞速发展,越来越多的共识算法随之出现。如今,研究者们把PoW和PoS算法结合,提出了新的共识算法,希望能够取长补短的解决PoW和PoS存在的问题。2014年首次提出基于PBFT的PoS共识算法,能够有效的抵御双花,17年8月提出的Ouroboros共识是首个基于PoS的区块链协议,改进了PoS算法。同年,基于PoW共识算法的拜占庭容错协议ByzCoinX被提出,有效的改进了PoW算法。而传统的分布式一致性算法因为大多数是非拜占庭容错的,所以很难适应区块链场景。在2014年,克里斯托弗· 科普兰(Christopher Copeland) 结合了传统算法和PBFT算法的优势,提出了拜占庭容错的Tangaroa算法。直到2017年,康奈尔大学提出的一种叫做休眠共识的新算法,这种算法主要是保证在互联网的环境下,大规模的共识节点处于离线状态,只保留少数节点在线参与共识过程的情况。只要在线的诚实节点数量大于恶意节点的数量就能保证安全性。
1.3研究目的和研究内容
在区块链中,共识算法占有着重要地位。它不但可以帮助链中节点保持数据的一致性,还可以对代币的发行,恶意攻击的防范具有一定的功能。本篇文章将致力解释各类共识算法,将各类共识算法进行分析和比较,针对PoW进行了仿真实验。通过一个简化的挖取比特币的过程,验证了PoW算法的安全性。
第二章 区块链
2.1区块链的体系架构
大多数的区块链都有着相似的结构,因此区块链整体上可以分为五个层次,分别为网络层、共识层、数据层、智能合约层以及应用层。
2.1.1网络层
早期的P2P数据库并不适应市场的需求,是因为它没有适用性的全局模式,因此不能够适应网络变化从而检索到完整的结果集,基于P2P的区块链网络中不存在中心节点,任意两个节点之间可以直接的进行交易,在任一时刻每个节点也能够完全自主的加入或者退出网络。在此,区块链平台不得不用完全分布式和能够容忍单个节点故障的P2P协议作为网络的传输协议,区块链中不存在任何中心节点,它的网络节点拥有平等自治的特性,每个节点的功能有广播交易、广播区块和发现新节点。
2.1.2共识层
去中心化的区块链受到多方共同管理维护,所以任何一方都能够提供它的网络节点。因此不可信的节点无法避免,所以我们需要支持更为复杂的拜占庭容错。为了解决节点的自由进出可能带来的女巫攻击[1]问题,比特币随之应用了工作量证明机制来保障自己的安全。比特币如果要生成新的区块就要节点完成一定的计算工作量并能够提供证明,每个节点需要自己去争取区块的记账权,只要所有的可信节点掌握的计算能力高于51%,那么整个网络就可以被证明是安全的。
2.1.3数据层
现有的区块链平台汲取了Haber和Stornetta[2-4]的研究工作,他们提出了需要进行对各类电子文档的创建时间进行签名,之后的文档又需要对之前文档进行签名的基于时间证明的证书链,这种链反应了文件创建的先后顺序,并且链中的时间无法更改。
比特币采用的则是基于交易的数据模型,每一笔交易都需要证明输入的来源和输出的去向。所有的交易通过输入输出衔接在一起,就使得每一笔交易都可以被查证。
2.1.4智能合约层
智能合约是一种用算法以及程序来编制合同条款,能够在区块链上自动执行的数字化协议。这种概念最早由Szabo[5]提出,起初只是被定义为采用数字形式的一种协议,因为早期计算能力有限和缺少适合的应用场景,智能合约并不受广大研究者的关注。直到区块链技术的出现,智能合约才被广大研究者发掘。区块链是一种去中心化的存贮,智能合约在它的基础上实现了去中心化的计算。
2.1.5应用层
比特币平台上的应用集中在比特币的交易上,以太坊除了数字货币交易外,还支持去中心化应用。Hyperledger Fabric主要面向企业级的区块链应用,没有提供数字货币相关服务。
2.2区块链数据
2.2.1区块链数据结构
区块链的结构是以区块为单位,主要是为了保障数据的唯一性。每个区块链平台可能会在细节上存在些许的差异,但在总体上并没有区别。我们用比特币作为例子介绍区块链的结构。在区块链的系统中,每位用户都有自己的公钥地址和私钥。区块链是一个个区块构成的链式数据结构,大体如图1所示。每一个区块都保留了上一个区块哈希值,从而形成了链式结构。
剩余内容已隐藏,请支付后下载全文,论文总字数:18891字
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。