【《区块链技术原理演示系统研究》16000字(论文)】_第1页
【《区块链技术原理演示系统研究》16000字(论文)】_第2页
【《区块链技术原理演示系统研究》16000字(论文)】_第3页
【《区块链技术原理演示系统研究》16000字(论文)】_第4页
【《区块链技术原理演示系统研究》16000字(论文)】_第5页
已阅读5页,还剩36页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

[1]:步骤1:将新交易广播到整个网络中的所有节点;步骤2:每个节点将接收到的交易写入一个块;步骤3:每个节点对新块进行计算以找到证明解;步骤4:当一个节点找到证明解时,它向整个网络广播;步骤5:接收到广播块后,其他节点进行验证。只有在所有交易都被验证为有效且未使用之后,才能识别该块;步骤6:每个节点通过将该块的哈希值作为父哈希值来计算下一个块,这表示节点识别该块的有效性。链结构设计在了解区块链网络运行过程的基础上,通过数字签名验证后,将数据存储交易添加到当前区块中。只有在工作量证明通过之后,才能将当前块添加到区块链的末尾。以太坊使用工作证明机制来达成共识,这称为“挖矿”。此过程负责生成新的块,保证全网节点数据的共识程度的一致性。区块链的结构如下图3-2。当网络中的节点通过对交易信息的真实性验证之后,该条交易信息才会被写入到一个块中。一旦该交易信息被写入,就不能再被变更。工作量证明机制的底层意思为是一个节点一票,节点通过计算随机数来竞争记账权。工作量证明机制在网络中的使用让区块链的安全性得以实现。首先,得到记账权的节点可以得到奖励。另外,区块链中的所有节点都遵循工作量证明机制,长此以往,系统的维稳变得容易。区块头区块头区块体(交易记录)区块头区块体(交易记录)区块头block_numbertimestampnonceprevious_hash区块体transactions图3-SEQ图3-\*ARABIC2链结构设计系统总设计及运行流程图总体设计架构本系统以区块链为核心,设计基于区块链、共识协议、去中心化、加密签名的功能实现架构。总体设计架构涉及本地数据存储设备,搭建了完整的区块链,实现了公钥、私钥生成器、生成交易、挖矿和查看区块链中的交易等四个功能。总设计如下图3-3所示:应用公钥、私钥生成器挖矿查看区块链中的交易生成交易数据服务本地数据库区块链协议应用公钥、私钥生成器挖矿查看区块链中的交易生成交易数据服务本地数据库区块链协议加密签名分布式算法共识协议数据存储系统运行流程图本系统的四个功能分别在两个web页面上实现,其中普通用户使用的客户端可以实现两个功能分别为公钥、私钥生成器和生成交易的功能,矿工使用的客户端可以实现挖矿和查看区块链中的交易功能,运行流程如图3-4所示:开始开始进入系统矿工用户挖矿查看区块链中的交易普通用户公钥、私钥生成器生成交易退出系统结束图3-SEQ图3-\*ARABIC4系统运行流程图Python语言介绍本系统的逻辑结构采用Python语言完成。Python是面向对象的编程语言。Python代码具有良好的可读性和数据类型,以及解释型语言的特质。另外,Python版本更新较快,功能也在不断地优化。因此,更多人愿意用它去开发大型项目。Python这门计算机编程语言有很多的优点:易学、易读、易维护:风格清晰划一、强制缩进、运行速度非常快。最重要的是Python有丰富的库:Python标准库很强大。其中包含的库可以实现很多功能,包括Python爬虫时要用到的正则化。它还可以连接到很多通用数据库。还有本文用到的HTML、Flask轻型框架,可以很容易实现端点到Python函数的映射。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多三方库的使用。本文用到了很多可以帮助实现区块链演示系统功能的库,例如:Crypto、binascii、hashlib、json、requests等。

区块链技术原理演示系统的实现系统开发的环境配置系统开发和运行的软硬件环境实验的硬件环境是Intel(R)Core(TM)i5-7200UCPU(2.50GHz),RAM为4GB,软件环境是64位Windows10的操作系统。本系统是基于区块链技术原理搭建的演示系统,在系统内部实现了四个功能,分别是挖矿功能、公、私钥生成器、生成交易功能和查看区块链中的交易功能。编程语言的使用本系统选择后端使用Python编程语言,前端Web页面使用Html+CSS+JavaScript来完成系统的搭建。Python是使用广泛的主流编译语言,具有良好的跨平台性,其中的Flask框架,是一个轻型框架,可以很容易实现端点到Python函数的映射。在Flask框架的帮助下,使用者就可以使用HTTP请求通过网页访问我们的区块链啦。另外还支持hashlib、json、uuid、time、binascii、Crypto等库,给系统的搭建带来很大便利。JavaScript是一种轻量级、解释性的编程语言,具有函数优先级。它被称为开发网页的脚本语言。它主要用于向HTML(标准通用标记语言下的应用程序)添加交互行为。HTML是超文本标记语言,它是一种标记语言。它包含一系列标签,可以统一网络上的文档格式,让原本分散存在的网络资源整合到一个逻辑整体中。为了增强HTML页面的美观性和实用性,本系统采用了CSS来对其页面进行布局和修饰。CSS首先可以修饰静态的web页面,设置其边框颜色和间距等等,另一方面还能动态地对网页页面进行格式化处理。它可以非常精确地控制网页中的布局,最重要的是网页中的对象和模型样式都可以通过他来美化设计。标准库及三方库的使用本系统主要使用了Python语言的标准库和三方库,如下图4-1所示:fromcollectionsimportOrderedDictimportbinasciiimportCryptoimportCrypto.RandomfromCrypto.HashimportSHAfromCrypto.PublicKeyimportRSAfromCrypto.SignatureimportPKCS1_v1_5importhashlibimportjsonfromtimeimporttimefromurllib.parseimporturlparsefromuuidimportuuid4importrequestsfromflaskimportFlask,jsonify,request,rend图4-SEQ图4-\*ARABIC1标准库及三方库的使用系统的功能实现查看区块链中的交易功能的实现register_node(node_url):向节点列表添加新区块链节点。如图4-2所示:图4-SEQ图4-\*ARABIC2register_node(node_url)create_block函数:区块链添加交易区块。如图4-3所示:图4-SEQ图4-\*ARABIC3create_block(nonce,previous_hash)valid_chain函数:检查区块链是否合法。从区块链的头部取块,表明要对区块链上的相邻链接着的区块链之间的链接关系进行验证。while循环就是为了检查链上每一个区块与其连接的前一个区块是否合法相关,通过块的哈希和工作量证明来检查。如图4-4所示:图4-SEQ图4-\*ARABIC4valid_chain(chain)前端页面的核心代码如图4-5所示:图4-SEQ图4-\*ARABIC5查看区块链中的交易功能的前端页面核心代码实现的界面如图4-6所示:图4-SEQ图4-\*ARABIC6查看区块链中的交易功能界面挖矿功能的实现挖矿功能部分主要包含以下几个函数:verify_transaction_signature函数:检查所提供的签名是否与公钥(sender_address)生成的交易签名相符。实现思路为:①得到发送者的公钥②将发送者的公钥进行一定算法的计算③将发送者所广播信息中的签名部分与公钥进行验证,以证明数字签名的真实性。如图4-7所示:图4-SEQ图4-\*ARABIC7verify_transaction_signature(sender_address,signature,transaction)proof_of_work():工作量证明算法。寻找满足挖矿条件的随机值。通过while循环来从0开始,每次增加1,对随机值进行循环叠加,直至找到一个符合算法要求的随机值,如图4-8所示:图4-SEQ图4-\*ARABIC8proof_of_work()valid_proof函数:验证hash值是否满足挖矿条件。这个函数用于proof_of_work()函数的内部。第一步先将参数nonce随机值进行运算,将其转换为utf-8格式的字符串,再用SHA256算法对该字符串进行加密,转换为十六进制的字符串。验证该字符串是否符合难度目标,如果符合,返回True,反之返回False,如图4-9所示:图4-SEQ图4-\*ARABIC9proof_of_work()mine():实现挖矿。先取出位于区块链末端的区块,并对其求哈希值,然后获得了一个可以挖出下一个区块的工作量证明的nonce值,接着将新块添加到链中打造新的区块,再取出刚刚得到的末端区块的哈希值,用作要新加入区块的父区块哈希值用于链接,最后将新区快添加到区块链末端。如图4-10所示:图4-SEQ图4-\*ARABIC10mine()前端页面的核心代码如图4-11所示:图4-SEQ图4-\*ARABIC11挖矿功能的前端页面核心代码实现的界面如图4-12所示图4-SEQ图4-\*ARABIC12挖矿功能界面公钥、私钥生成器的实现先生成随机的字符串,然后对该字符串生成私钥,再用相对应的算法利用私钥生成对应的公钥,代码如图4-13所示:图4-SEQ图4-\*ARABIC13私钥、公钥的生成函数前端页面的核心代码如图4-14所示:图4-SEQ图4-\*ARABIC14公钥、私钥生成器的前端页面核心代码实现界面如图4-15所示:图4-SEQ图4-\*ARABIC15公钥、私钥生成器的界面生成交易功能的实现生成交易功能主要包括以下几个函数:generate_transaction(),生成交易的函数。sender_address为发送者用户公钥,sender_private_key为发送者用户私钥,recipient_address为接收者公钥,value为本次交易要发送的代币数量,接着生成一个交易类的实例对象,最后将广播本次交易的所有信息封装为字典。代码如图4-16所示:图4-SEQ图4-\*ARABIC16生成交易的函数verify_transaction_signature函数:检查所提供的签名是否与公钥(sender_address)生成的交易签名相符。实现的思路为:①首先得到发送者的公钥②对发送者的公钥进行算法处理③将广播信息中的签名与公钥进行验证,来证明签名的真实性。如图4-17所示:图4-SEQ图4-\*ARABIC17verify_transaction_signature(sender_address,signature,transaction)submit_transaction函数:数据真实性验证的函数。如图4-18所示:图4-SEQ图4-\*ARABIC18submit_transaction(sender_address,recipient_address,value,signature)前端页面的核心代码如图4-19所示:图4-SEQ图4-\*ARABIC19生成交易功能的前端页面核心代码实现的界面如图4-20所示:图4-SEQ图4-\*ARABIC20生成交易功能的界面

总结和展望总结信息共享、交流和开放,是大数据时代的一个重要标志。在此基础上,区块链实现了分布式数据存储的技术,受到了来自学术领域、金融领域、商业领域等多领域人士的关注。本文探讨了区块链的应用和发展趋势,就区块链技术进行了详细的介绍,包括区块链的核心技术和运行原理,核心技术包括分布式数据存储、密码技术、网络技术、共识机制、时间戳服务等,并在此基础上,设计了区块链的块结构和链结构,实现了一款针对于理解区块链技术原理的演示系统,在Web页面上实现了区块链技术的核心功能包括查看区块链中的交易功能、挖矿功能、公钥私钥生成器功能和生成交易功能。该系统设计的目的旨在提高学生学习区块链技术的积极性和创造性,增强动手能力,真正感受和理解区块链的网络运行过程及原理,也能提高大众对区块链知识的学习兴趣和热情,更有效的理解区块链技术的相关原理,更好地实现区块链技术普及的广泛性,实现社会信息资源共享和更新。不足与展望科技不断进步,许多新兴技术正在不断展现不可替代的一面。现如今,大数据相关技术为社会发展起了很大的推动作用。本文研究的内容主要围绕区块链技术原理,搭建了一个针对于演示区块链技术原理的演示系统。尽管本文中设计的各个功能模块都已实现,但仍然存在一些问题需要进行改进,对于所搭建的演示系统进一步展望如下:首先,本演示系统的功能实现还比较单一,区块链还有许多核心技术有待挖掘和深入学习,例如分布式的区块链、代币等功能。在未来的工作,希望可以搭建更多的功能模块和利用区块链的特有特点来衍生出更强大功能来应用于实际生活中,例如基于区块链的共享数据系统等。其次,实验规模较小。本文的系统模拟了小规模的节点和交易,区块链中的区块数量也是有限制的。希望在未来的工作中,可以构建设计一个可以存储更多数据和交易,实现大规模节点之间工作的系统。被更多人熟知和学习使用,拥有良好的性能和扩展性。

参考文献Nakamoto,Satoshi.Bitcoin:Apeer-to-peerelectroniccashsystem.2008:28.关静.区块链技术应用领域及存在问题研究综述[J].科技创新与应用,2021,11(12):134-136+139.袁勇,王飞跃.区块链技术发展现状与展望[J].自动化学报,2016,42(04):481-494.SwanM.Blockchain:BlueprintforaNewEconomy.USA:O'ReilyMediaINc,2015.ButerinV.ANext-GenerationSmartContractandDecentralizedApplicationPlatform(2016)[EB/OL].[2020-02-16]./ethereum/wiki/wiki/White-Paper.FeldS,Sch?NfeldM,WernerM.AnalyzingtheDeploymentofBitcoin'sP2PNetworkunderanAS-levelPerspective[J].ProcediaComputerScience,2014,32:1121-1126.S.Fujimura,H.Watanabe,A.Nakadaira,etal.BRIGHT:Aconceptforadecentralizedrightsmanagementsystembasedonblockchain[J].2015IEEE5thInternationalConferenceonConsumerElectronics-Berlin(ICCE-Berlin),Berlin,2015:345-346.doi:10.1109/ICCE-Berlin.2015.7391275.D.Bradbury.Blockchain's[J],Engineering&Technology,2016,11(10):44-47.doi:10.1049/et.2016.1003ChristidisK,DevetsikiotisM.BlockchainsandSmartContractsfortheInternetofThings[J].IEEEAccess,2016,4:2292-2303.A.Azaria,A.Ekblaw,T.Vieira,etal.MedRec:UsingBlockchainforMedicalDataAccessandPermissionManagement[C].20162ndInternationalConferenceonOpenandBigData(OBD),Vienna,2016:25-30.doi:10.1109/OBD.2016.11.MettlerM.Blockchaintechnologyinhealthcare:Therevolutionstartshere[C]//2016IEEE18thInternationalConferenceone-HealthNetworking,ApplicationsandServices(Healthcom).IEEE,2016.AsteT,TascaP,DiMatteoT.BlockchainTechnologies:TheForeseeableImpactonSocietyandIndustry[J].Computer,2017,50(9):18-28.A.Dorri,S.S.Kanhere,R.Jurdak,etal.BlockchainforIoTsecurityandprivacy:Thecasestudyofasmarthome[C].2017IEEEInternationalConferenceonPervasiveComputingandCommunicationsWorkshops(PerComWorkshops),Kona,HI,2017,pp.618-623.doi:10.1109/PERCOMW.2017.7917634.K.Toyoda,P.T.Mathiopoulos,I.Sasase,etal.ANovelBlockchain-BasedProductOwnershipManagementSystem(POMS)forAnti-CounterfeitsinthePostSupplyChain[J].IEEEAccess,2017,5:17465-17477.doi:10.1109/ACCESS.2017.2720760.郑戈.区块链与未来法治[J].东方法学,2018,No.63(03):77-88.B.K.Mohanta,S.S.Panda,D.Jena.AnOverviewofSmartContractandUseCasesinBlockchainTechnology[J].Novo,Oscar.BlockchainMeetsIoT:anArchitectureforScalableAccessManagementinIoT[J].IEEEInternetofThingsJournal,2018:1-1.AliMS,VecchioM,PincheiraM,etal.ApplicationsofBlockchainsintheInternetofThings:AComprehensiveSurvey[J].IEEECommunicationsSurveys&Tutorials,2019,21(2):1676-1717.SalahK,RehmanMH,NizamuddinN,etal.BlockchainforAI:ReviewandOpenResearchChallenges[J].IEEEAccess,2019:1-1.GaiK,WuY,ZhuL,etal.Privacy-preservingEnergyTradingUsingConsortiumBlockchaininSmartGrid[J].IEEETransactionsonIndustrialInformatics,2019:1-1.曾丽春,托马斯·奥尔森,欧文瀚,法兰克·福特.推动区块链在金融市场中的应用并抢占先机[J].科技中国,2017(08):12-17.赵赫,李晓风,占礼葵,吴仲城.基于区块链技术的采样机器人数据保护方法[J].华中科技大学学报(自然科学版),2015,43(S1):216-219.丁未.基于区块链技术的仪器数据管理创新系统[J].中国仪器仪表,2015(10):15-17.林小驰,胡叶倩雯.关于区块链技术的研究综述[J].金融市场研究,2016(2):97-109.沈鑫,裴庆祺,刘雪峰.区块链技术综述[J].网络与信息安全学报,2016,2(11):11-20.何蒲,于戈,张岩峰等.区块链技术与应用前瞻综述[J].计算机科学,2017,44(04):1-7.贺海武,延安,陈泽华.基于区块

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论