Algorand区块链在数字货币中的应用研究论文

Algorand区块链在数字货币中的应用研究

郭继红,武 亚

(济源职业技术学院 电气工程系,河南 济源459000)

摘 要: Algorand区块链在去中心化、可扩展性、安全性三者中取得了较好的平衡,故其在数字货币中的应用更具有优势。使用C++作为编程语言,定义了底层各类数据结构,给出了Algorand拜占庭共识协议算法,实现了Algorand区块链在数字货币中应用。结果表明Algorand区块链是可行的。

关键词: Algorand;区块链;C++

区块链是一种将数据区块串联而成的链式数据结构。著名的比特币就是一个区块链项目,但它有一些缺点,如:采用proof-of-work方式产生新的区块,需要消耗巨大的算力,而目前世界上只有少数几个集团能够拥有如此巨大的算力,这就造成了权利的集中,不能实现其去中心化(decentralization)的目标;区块链比较容易分叉,导致刚加入区块链的区块需要等待一段时间来确定自己是否在“主链”上,这导致在一定时间内区块出现不确定性,也不适合线下交易等应用场景。而Algorand区块链,在去中心化(decentralization)、可扩展性(scability)和安全性(security)三者中取得了较好的平衡。

式中:y1为更换元件的质量,kg;y2为固定所更换元件的紧固件数;y3为连接所更换元件的连接件数;x2为更换元件前需拆卸的紧固件数;x3为更换元件前需拆卸的连接件数.

多媒体辅助教学已经成为师生欢迎的教学形式,给教学带来了新的生机和活力。但对我们音乐教师也提出了新的要求,所以作为新时代的音乐教师,要不断提高自身素质,熟练掌握运用多媒体技术,与时代接轨。

在Algorand区块链中,一个用户对应一对公私钥。公钥分发给所有人,相当于账户的账号,对应一定数量的货币;私钥则是账户的密码,由用户个人保管。在进行交易时,用户使用私钥加密交易信息并传播,其他人通过公钥正确解密,验证交易消息的来源。所有消息都是通过“点对点八卦(peer-to-peergossip)”的方式传递到用户的。每过一段时间,Algorand区块链就需要对这段时间内的交易消息进行汇总并“打包”成一个区块,串接到区块链上,并通过密码学的技术加密,保证区块无法被篡改,从而将交易信息“固定”下来,保证了交易的安全性。而在打包这个区块时,为了实现区块链的去中心化,即不能由固定的几个人来完成这个工作,避免少数人掌握对交易消息选择性打包的权利,Algorand在所有用户中任意选出一些“领导者”,由这些“领导者”负责汇集一段时间内发生的所有交易,打包成一个区块并传播。Algorand每次都会先选出多个领导者的“候选人”,再在所有用户中任意选出一些“验证者”,由这些“验证者”选举出自己认可的“领导者”,也就是投票决定哪个领导者打包的区块串接到区块链上,并传播自己的投票消息。这些验证者可能和领导者有重叠,但是在完全随机挑选的情况下,重叠的可能性很小。在一轮投票不能决定哪个区块得到大家的共同认可时,Algorand会在所有用户中再任意选出一批验证者,继续投票,如此循环下去,直至对某个区块达成共同认可,或者无法达成共识时,对空区块达成共同认可(即本轮区块作废)[1]。通过这些方式,Algorand实现了安全性和去中心化的平衡,而且用户人数增多时,上述方式仍然行之有效,实现了可扩展性。

Algorand通过拜占庭协议对区块达成共识。这种称作BA*的拜占庭协议由两部分组成,首先是分级共识协议(GC),然后是二元拜占庭协议(BBA),二元拜占庭协议(BBA)又分为coin-fixed-to-0步、coin-fixedto-1步和coin-genuinely-flipped步3步循环执行,每一步的操作和结束条件有所不同。具体参见文献[2]。BA*要求2/3以上的用户为诚实用户[3],满足该条件时,系统最终一定能够达成共识,并且执行速度快,区块链分叉率低(约为10-18),确保了区块链的可靠性。

(2)在BBA的coin-fixed-to-1步达成共识。这时系统无法对某一个被提议的区块达成共识,转向对空区块达成共识。具体表现为:

1 系统架构

整个系统都以类Player(即区块链系统的用户)为中心。类Player包含以下内容:一个NeighborSet用于存储用户的邻居;一个MessageSet用于存储接收到的消息;一个BlockSet用于存储整条区块链;一个State表示用户目前的状态。NeighborSet运用了观察者设计模式,只需要一个用户注册成为另一个用户的观察者,就可以从他那里接收消息,取消注册即可不再接收消息,减少不同用户之间的耦合程度,使区块链系统增加用户和剔除用户十分方便。State运用了状态设计模式,包括打包区块的状态、执行GC的状态、执行BBA的状态等多个状态,使得执行Algorand算法的过程转变成在不同状态之间的转化。另外,在State的实现中还运用了模板方法设计模式,使得不同的状态之间能够大量共用代码,提高了代码的复用性。

2 数据结构

在系统的数据中,首先是位于系统中心位置的类Player。除了上面所提到的NeighborSet、MessageSet、BlockSet、State等数据,类Player还记录着用户的公私钥、当前轮数和步数等内容。事实上,根据文献[1]所称,为了避免恶意破解私钥,伪造他人传播消息之类入侵的发生,进一步加强区块链的安全性,每位用户的公私钥都不只有一对,而是每一轮、每一步都有不同的公私钥,并且所有公钥都提前公之于众。为简单起见,本文采用同一对公私钥。

首先,用户检查自己是否在当前轮当前步被系统选中。用户需要计算出自己在该轮该步的Sigma(每位用户、每一轮、每一步的值都不相同),然后委托给类BlockSet进行检查。若用户的Sigma的哈希值转化为小数后小于某个给定的概率,则该用户被系统选中。如果该步为挑选领导者的步骤,则该用户成为领导者;如果该步为挑选验证者的步骤,则该用户成为验证者。代码如下:

随着社会逐渐趋向于现代化发展,国民生活水平得到了快速提高,在此背景下,新闻摄影对新闻质量的直接影响也逐渐被大众所认知。[2]通过高质高效的新闻摄影,不仅可体现出我国社会发展历程,更可对各领域做出的成果进行记录及传播。故新闻摄影自身也具有极高的社会性,对推动社会主义建设具有积极的作用。

其中BigSigQ即为与随机种子有关的电子签名,其代码如下:

在各个国家和地区的塑料微珠政策推动下,欧洲境内掀起了塑料微珠禁令的风潮,近两年对业界的影响尤为明显,全球各地对塑料微珠的认知也慢慢加深。比之更早的是,北美洲地区,美国及加拿大早在2014年~2015年就已经响应联合国的呼吁,率先在全球范围内设立法律针对塑料微珠在个人护理产品及化妆品的使用,提出了相应的禁令。

接下来是类Message和类MessageSet。每类消息都有一个类Message的子类与其对应,同时对应一个类MessageSet的子类作为消息的集合。比如说协议执行的BBA阶段,各用户发送的消息为“MessageOfBBA”,对应的消息集合为“MessageOfBBASet”。

最后是类State。每个状态均按照以下步骤执行:验证自己是否为领导者或验证者(checkBelong函数),等待一段时间(wait函数),执行以下步骤,如选出领导者或对区块达成共识(executeProtocol函数),则销毁临时钥匙,传播信息。除了executeProtoco步外,其余步骤均类似,故采用模板方法设计模式可减少代码重复。

类Sigma是用户对自己是领导者或验证者的证明。代码如下:

3 拜占庭协议BA*算法的实现

然后是类Block,即区块。每个区块都由以下几部分构成:区块序号;该区块中所汇集的交易;证明提议区块者的确为该轮领导者的哈希值;上个区块的哈希(用于将区块连接成链)等,即

2)用户接收到了赞成同一个区块的超过阈值的投票;

3)用户接收到了该达成共识的区块。

(1)在BBA的coin-fixed-to-0步达成共识。这时系统对某一个被提议的区块达成共识,具体表现为:

1)达成共识的这一步为BBA的coin-fixed-to-0步;

若用户检查发现自己没有成为该轮该步的领导者或验证者,则直接进入下一步,同时接收其他人传递的消息;若用户发现自己在该轮该步被选中成为领导者或验证者,则该用户会等待一段时间,用来接收其他人传递的消息。若用户在等待过程中发现系统已经对某个区块达成了共识,则结束该轮,记载达成共识的区块,然后进入下一轮,开始对下一个区块进行提议和投票;若等待超时,则继续下一步,即执行自己作为该轮该步领导者或验证者的投票责任。执行等待过程如下:

checkStop函数负责检查系统是否已经对某个区块达成了共识,并在达成共识时将达成共识的区块写入自己的区块链。这里分为两种可能:

本文采用C++作为编程语言,以Algorand在数字货币中的应用为例,给出了Algorand区块链的一种实现。

1)达成共识的这一步为BBA的coin-fixed-to-1步;

2)用户接收到了超过阈值的投票数赞成空区块。代码如下:

下面是作为领导者或验证者的执行函数的具体实现。区块产生的过程是:先由领导者汇集交易信息并提议一个区块,然后验证者执行分级共识协议(GC),最后验证者执行BBA。

再伟大的顶层设计,如果落实不了,就只能是一堆文字。落实就是实实在在的拿理论与实际相结合,办公室的督查督办就是督这个“结合”是否到位,这就需要办公室正确分析顶层设计的要求,确保落实部门准确理解顶层设计,然后及时将底层落实过程中碰到的各种问题困难等情况反馈给领导,而这些过程中只有用好了同理心,才能捏住七寸、清通障碍,确保重要决策落得快、准、实,确保各项工作按时顺利完成。

分级共识协议(GC)共有3步。第1步是在所有的领导者候选人中找到一个真正的领导者,这里选取收到的所有领导者的随机数中最小的为真正的领导者。之后,对该领导者提议的区块进行表决,如果没有收到领导者的消息,则投票给空区块。第2步是对真正的领导者达成共识。验证者需要统计第1步中对领导者的投票,若有2/3以上的人投票给同一位领导者,则自己也投票给这位领导者,否则投票给空区块。第3步是分级共识,验证者需要统计第2步中对领导者的投票,若有2/3以上的人投票给同一位领导者,则自己投票“0”给这位领导者;若有1/3以上、2/3以下的人投票给同一位领导者,则自己投票“1”给这位领导者;否则,自己投票“1”给空区块。该投票将作为接下来的BBA的输入。

文中基于核稀疏表示的多模人脸人耳融合识别算法是在基于稀疏表示的识别算法(MSRC)的基础上引入核方法得到。

在BBA的执行过程中,验证者需要在收集到的上一步所有的投票信息中,找到大家投票最多的区块作为自己将要投票的区块。在收集到的上一步所有的投票信息中,计算投0和投1的票数,若投0的票数超过总票数的2/3,则自己投0;若投1的票数超过总票数的2/3,则自己投1;若二者均不成立,则根据自己所在步是coin-fixed-to-0步还是coin-fixed-to-1步或者是coin-genuinely-flipped步来决定自己投0还是投1。这3步循环执行,直至得出投票结果,或超过步数上限对空区块达成共识。代码如下:

2.3.2利用平时学习中遇到的问题引申 如学生经常写错字,习惯用透明胶、刀片等涂擦修改,借此问题引入以下案例:病人,女,35岁。诊断:子宫癌,行子宫全切手术。出院后因医疗保险报销,病人家属在复印病历时发现护士在护理病历书写过程中采用了刀刮的修改方法,导致原来记录无法辨认,保险公司对记录的真实性不予认可,因此不给其赔付。病人家属将医院和该护士告上法庭。

4 结束语

Algorand 区块链兼具高效和安全的特点,是区块链未来可能的发展方向之一。本文为实现Algorand区块链在数字货币中的应用,给出了其数据结构和函数实现,使在理论上可行的Algorand区块链可以应用到实际当中。

参考文献:

[1]MICALI S,ZHU Z A.Reconstructing Markov processes from independent and anonymous experiments[J].Discrete applied mathematics,2016(6):108-122.

[2]祝烈煌,高峰,沈蒙,等.区块链隐私保护研究综述[J].计算机研究与发展,2017,54(10):2170-2186.

[3]袁勇,王飞跃.区块链技术发展现状与展望[J].自动化学报,2016,42(4):481-494.

Research on Application of Algorand Block Chain in Digital Currency

GUO Jihong,WU Ya
(Department of Electrical Engineering,Jiyuan Vocation and Technical College,Jiyuan 49000,China)

Abstract: Algorand blockchain strikes a balance between decentralization,scalability and security,and performs excellent in digital currency.This paper proposes an algorithm of Algorand Byzantine agreement for application of digital currency by C++programming language.The algorithm detailed definition of the underlying data structures.Results show that Algorand block chain is feasible in the application of digital currency.

Keywords: Algorand;block chain;C++

中图分类号: TP399

文献标识码: A

文章编号: 2095-7726(2019)12-0037-04

收稿日期: 2019-04-17

作者简介: 郭继红(1971—),女,河南济源人,副教授,硕士,研究方向:自动化技术。

【责任编辑 梅欣丽】

标签:;  ;  ;  ;  

Algorand区块链在数字货币中的应用研究论文
下载Doc文档

猜你喜欢