毕业论文——区块链技术在互联网公益产品中的研究与应用_第1页
毕业论文——区块链技术在互联网公益产品中的研究与应用_第2页
毕业论文——区块链技术在互联网公益产品中的研究与应用_第3页
毕业论文——区块链技术在互联网公益产品中的研究与应用_第4页
毕业论文——区块链技术在互联网公益产品中的研究与应用_第5页
免费预览已结束,剩余68页可下载查看

下载本文档

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

文档简介

区块链技术在互联网公益产品中的研究与应用 区块链技术在互联网公益产品中的研究与应用区块链技术在互联网公益产品中的研究与应用 学校代码: 作者姓名: 学 号: 第一导师: 第二导师: 学科专业: 答辩日期: 上海交通大学软件学院 年 月 区块链技术在互联网公益产品中的研究与应用 I 区块链技术在互联网公益产品中的研究与应用区块链技术在互联网公益产品中的研究与应用 摘 要 当前技术发展日新月异,行业间创新也层出不穷。继大数据、云计算等技术之后, 在 2015 年区块链概念迅速崛起,全球金融机构和区块链相关的新闻层出不穷。不断看 到有更多的机构和企业开始拥抱区块链技术。区块链的出现实现了从传递信息的信息 互联网向传递价值的价值互联网的转变,提供了一种新的信用创造机制。区块链技术 作为数字货币(比特币)的底层技术,已经引起了金融世界的广泛重视,其中包括摩 根大通、汇丰银行、高盛、花旗银行、纽约梅隆银行、巴克莱银行、瑞银(UBS)、摩 根士丹利、苏格兰皇家银行在内的众多金融机构,都在和区块链公司进行合作,研究 区块链技术在金融市场的应用与发展。世界经济论坛预测,到 2027 年世界 GDP 的 10% 将被存储在区块链的网络上。 本文根据区块链技术的功能特点,针对如今公益援助项目的软肋,以区块链为底 层数据账本,完成数据推演生成,既从技术上保障了公益数据的真实性,又能帮助公 益项目节省信息披露成本。又能解决透明度低下触发的信任危机正在消解公众对中国 公益慈善的热情和信心。本文主要开展了以下几项工作: 1、研究区块链的运行原理,包括其工作流程,以及区块链解决的双花问题,拜占 庭将军等问题。介绍了如今区块链比较主流的三种共识机制:工作量证明机制(PoW); 权益证明机制(PoS);股份授权证明机制(DPoS)。分析了在不同场景下,各种共识 算法的利弊以及取舍。 2、介绍了国内外使用量较大的两个区块链平台:以太坊、布盟区块链。以及智能 合约在区块链平台中的应用。搭建了本地的区块链试验环境,编写代币智能合约,部 署智能合约以及去中心化应用。 3、研究公益项目在现今社会中的现状,以及本文选择该课题的原因。介绍本系统 的概要设计。包括底层布比区块链架构,Web 系统架构,安全性设计,可扩展性设计以 及数据库设计。针对互联网项目的特点,设计满足需求的架构,不做过度设计。 本课题充分运用了区块链的底层服务向应用层面提供的服务,通过 Web 框架,构 建了高可用的公益援助系统。通过实验,检验完成了用户对于区块链账户的储值、价 值转让的基本服务。并且完成了一个公益互助平台面向用户提供的多样化服务:包括 充值、提现等。在完成功能用例的同时,经过压力测试、安全测试,满足请求量在 500TPS 以内的快速响应,性能达到了设计系统的目的。系统架构满足横向扩展,即使 用户量呈几何倍数增值也可以快速部署节点,以满足服务的可用性。 区块链技术在互联网公益产品中的研究与应用 II 本文对于区块链技术的研究,是人类社会信用创造的一次创新与革命,从理论上 说,在技术能力足够的前提下,它能够使交易的双方不再需要借助第三方平台来展开 经济活动,从而实现全球低成本的价值转移。 关键词 区块链,去中心化,共识机制化,智能合约 区块链技术在互联网公益产品中的研究与应用 III RESEARCH AND APPLICATION OF BLOCK CHAIN TECHNOLOGY ON INTERNET COMMONWEAL GOODS ABSTRACT With the rapid development of the current technology, there are many innovations in the industry.Following the big data, cloud computing and other technologies,the concept of the block chain rises quickly in 2015, the related news of block chain and the global financial institutions are appearing constantly. More institutions and businesses began to use the technology of block chain.The emergence of block chain achieves the transfer of information from the Internet to the value of the Internet, it provides a new credit creation mechanism.As the underlying technology of digital currency (bitcoin), the block chain technology has attracted extensive attention in the financial world, including HSBC, JP Morgan, Goldman Sachs, Citibank, Bank of New York Mellon, Barclays Bank, UBS, Morgan Stanley (UBS), Royal Bank of Scotland and a number of financial institutions.They are corporating with block chain companies to study the application and development of block chain technology in financial markets.The world economic forum is a bold prediction that by 2027, 10% of the worlds GDP will be stored in the block chain network. According to the features of block chain technology, for the weakness of now public assistance projects, block chain is taken as the underlying data books, finishing the generation of data inference.It can both technically protect the authenticity of public data, but also help public projects to save the cost of information disclosure.In addition, it can solve the problem of low transparency triggered by the crisis of confidence,and it is dispeling the publics enthusiasm and confidence in Chinas charity.In this paper, the following work has been carried out: 1. We study the basic concept of the underlying block chain, the structure of the block, the link between blocks, the public key encryption mechanism. 2. The operation principle of the blockchain, including its working process, and solving the double problem of chain block, Byzantine Generals issues.This paper introduces three 区块链技术在互联网公益产品中的研究与应用 IV kinds of common mechanism of block chain, which are Proof of Work (PoW),Proof of Stock(PoS) and the Delegate Proof of Stake (DPoS).It is analyzed of the advantages and disadvantages of various consensus algorithms in different scenarios. 3. It introduces a large number of domestic and foreign use of the chain of the two blocks of the platform: Ethernet square and the block chain.And the application of intelligent contract in block chain platform.It built a block chain test in the local environment, wrote tokens intelligent contract, deploy of smart contracts and de centralized applications. 4. This paper introduces the design of public welfare projects,including the bottom of the block chain architecture, web system architecture, security design, scalability design and database design.According to the characteristics of the Internet project, we design the architecture to meet the needs, and do not make exceeding design. 5. This paper introduces the modular design and implementation of the system, through the test to verify the various needs of the use cases to meet the original intention of the design. In this paper, the research of block chain technology and the preparation of intelligent contract is an innovation and revolution of human social credit creation.In theory, under the premise of sufficient technical capacity, it can make both sides of the transaction no longer need to use the third party platform to expand economic activities, so as to realize the global low-cost transfer of value. Keywords block chain, de-centralization, consensus mechanism, inntelligent contract 区块链技术在互联网公益产品中的研究与应用 V 目目 录录 1 绪 论 -1 1.1 课题背景与意义-1 1.2 国内外相关研究的现状分析-2 1.3 论文主要研究内容-3 1.4 论文结构-3 2 区块链基本概念 -6 2.1 比特币的区块链-6 2.2 区块-6 2.2.1 区块结构-6 2.2.2 区块头-7 2.2.3 区块标识符-7 2.2.4 创世区块-8 2.3 区块的链接-8 2.4 Merkle Tree 和 Merkle Patricia Tree -9 2.4.1 Merkle Tree-9 2.4.2 Merkle Patricia Tree -10 2.4.3 Merkle 树和简单支付验证(SPV) -12 3 区块链平台及运行原理 -13 3.1 以太坊简介 -13 3.2 布比区块链简介 -13 3.3 区块链的工作流程 -14 3.4 区块链的共识算法与共识机制 -14 3.4.1 共识算法解决的问题 -15 3.4.2 工作量证明机制(PoW) -15 3.4.3 权益证明机制(PoS) -16 3.4.4 股份授权证明机制(DPoS) -17 3.5 分布式账本 -19 3.5.1 三重记账法 -19 3.5.2 分布式记账法-19 3.6 智能合约 -20 4 系统概要设计 -21 区块链技术在互联网公益产品中的研究与应用 VI 4.1 系统架构 -21 4.2 Bubi 系统架构-23 4.2.1 账户中心: -23 4.2.2 分布式账本服务 -24 4.2.3 策略与管理: -25 4.3 功能性用例设计 -25 4.3.1 用户用例: -25 4.3.2 管理员用例: -26 4.4 非功能性设计 -27 4.4.1 性能方面 -27 4.4.2 扩展性方面 -30 4.4.3 安全方面 -32 4.5 数据库设计 -37 4.5.1 数据库表结构 -39 5 系统模块化实现及测试 -43 5.1 以太坊环境搭建及挖矿 -43 5.1.1 实验环境搭建-43 5.1.2 测试账户与挖矿操作-44 5.2 用户模块设计与实现 -45 5.2.1 注册 -45 5.2.2 登录 -45 5.3 充值、消费模块设计与实现 -46 5.4 援助项目模块设计与实现 -50 5.5 发起筹款模块设计与实现 -54 5.6 异步任务模块设计与实现 -57 6 总结与展望 -59 6.1 论文工作总结 -59 6.2 问题与展望 -59 参考文献 -61 致 谢 -63 攻读学位期间发表的学术论文目录 -64 区块链技术在互联网公益产品中的研究与应用 1 1 1 绪绪 论论 1.1 课题背景与意义 比特币的发展最早可以追溯到 2008 年 11 月,中本聪发表了一篇名为比特币: 一种点对点的电子现金系统的论文,文中首次提出了比特币的概念。2009 年 11 月 3 日, 该系统正式运行,区块链中的第一个区块就此诞生,名为:“创世区块”。区块链 则是比 特币的核心与基础架构,是一个去中心化的账本系统。 近两年,区块链逐渐成为了热门话题,无论是学术机构、实体企业或是监管机构 都对区块链给予了高度的重视,对其底层的研究以及日常应用都进行着相当有深度的 研究。 随着社会各界意识到区块链技术对于公共服务提供、社会机制优化完善、经济体 制改革等方面上存在着巨大的应用价值,一些国家政府都对区块链的发展予以支持与 推动。 区块链的出现对现有的经济、社会、生活领域都有巨大的影响和意义,具体表现 如下: 区块链能够显著降低人与人的信任风险。区块链技术有许多特性,包括:开源、 透明、不可篡改等,并且每个参与区块链的节点都保留着账本的所有交易记录,所有 内容都是真实、完整、可靠的。降低了系统间的信任风险性。区块链技术通过去中心 化的信用机构实现信用创造,让交易的双方不再需要借助第三方平台来完成交易活动, 从而实现了低成本的价值转移。 区块链能够简化交易流程,提高交易创建以及完成的效率。从信用创造的角度来 看,区块链对于优化传统机构的业务流程、提升有效竞争力具有相当深远的影响和意 义。 在现今社会的公益援助体系下,透明度低下触发的信任危机正在消解公众对中国 公益慈善的热情和信心。公益透明度影响中国公益的发展速度。除主观意愿外,信息 披露所需的人工成本过高,也成为掣肘公益机构透明度的重要因素。基于区块链技术 特点,区块链公益账户与普通公益账户最大的区别在于,将原本由特定一方掌握的 “账本”分享到公益捐赠环节的每个参与者手中。大家共同记账、信息同步,账目一 旦记录将无法篡改,便于监管和审计。 将区块链技术与公益体系相结合,可以有效地监管每一笔善款的去向,从募集到 捐助形成一个闭环。由于区块链技术的特性,账本一旦记录便难以修改,可以大大提 高公众对于公益组织的信任,使得公益组织可以自证其公平、公正性,提升透明度、 打造公信力。当区块链技术的持续推广后,我国的公益项目将迎来一个全新的时代。 区块链技术在互联网公益产品中的研究与应用 2 1.2 国内外相关研究的现状分析 从 2015 年开始,区块链逐渐成为了一个非常热门的创新话题,频频在 G20 等各种 国际、国内会议上出现。相关政府组织、企业实体与学术机构也对区块链技术展开了 积极的探讨。区块链进入了一个快速发展的时期。 随着区块链潜在的价值被不断挖掘,重量级跨国行业巨头纷纷成立研究小组、创 业公司,研究未来的潜在应用前景,其示范以及引领作用已经开始带动新一轮的区块 链创业创新浪潮。 安永会计师事务所统计显示,截止 2016 年初,全球已有 917 家区块链领域创业公 司,在区块链领域的累积投资已经超过 15 亿美元。 从区块链的发展上看,无论是底层技术的研究、应用的前景探索,或是在产业政 策与学术交流上都出现了许多联盟与组织,这些联盟与组织通过资源共享和同理合作, 共同构建起了区块链的生态体系。 目前国外针对区块链底层技术平台研发和应用前景的探索上比较有示范作用的联 盟组织是 R3CEV,截止到 2016 年 3 月,已经有 43 家金融机构参与到这个组织中。 R3CEV 在 2016 年初宣布,其首个分布式账本试验将会使用以太坊平台和微软云服务 Azure 上的 BaaS。 从国内情况来看,2015 年底至今,我国已经成立了多个区块链应用研究中心分别 坐落于北京、杭州。以及中国区块链产业联盟、中关村区块链产业联盟。诸多联盟的 成立,有利于以下问题的解决:1.国家产业政策的支持;2.区块链创新孵化的问题; 3.行业底层关键技术的突破与创新;4.人才培养问题;5.国际交流合作问题; 区块链技术已经运用在多方面,有许多项目以及公司涉及到了区块链的研究中, 各方面项目举例如下所示: 公证防伪:Monegraph、Uproov、Blockai、公证通(factom) 物联网:Filament、Slock.it、ADEPT、Tilepay 预测市场:Augur、Futarchy、Truthcoin 电子商务:Eris、Purse、Bitmarkets、BitXbay、Skuchain、OpenBazaar 智能合约:闪电网络(lightning-network)、彩色币(coloredcoin)The Dao、WAVES、Tendermint、SuperNet、Tezos、Cypti 身份验证:Shocard、BitNation、BlockScore、LaunchKey 文件存储:Enigma、公证通(factom)、Storj、BitCloud、IPFS 资产交易:Medici、SETL、小蚁(antshares)、LightHouse、Safe Cash 社交通讯:比特信(bitmessage)、Clucker、Diaspora、Gems 数据 API:Gem、Blocktrail、TradeBlock、Coinalytics 其他:bitwage、Crypti、IPFS 区块链技术在互联网公益产品中的研究与应用 3 1.3 论文主要研究内容 本文主要基于区块链去中心化、开放性、自治性和你明显的技术特点,结合在现 今公益组织及公益项目最为普遍和明显的痛点:组织财务透明化管理,用户资金难以 持续追溯等,旨在搭建一套线上的互联网公益援助系统,整合善款募集、募集资金流 转、在线支付 3 个核心环节。为用户提供可信任的公益平台,帮助更多需要帮助的人, 使善款公开、透明地输送到被援助人的手中。能够把每一笔公益捐款从募集到捐出的 整个流程记录下区块链中,形成闭环。 本文主要研究的工作内容包括: 1、区块链基本技术分析 研究区块链的基本概念,特性研究。包括其点对点网络、分布式账本实现、数据 的不可篡改性、公私钥加密机制以及区块数据的存储结构等。 旨在透彻理解区块链 的工作流程与原理。 2、公益援助系统设计 本课题根据区块链技术的特点、业务需求,设计系统的基本架构。针对安全性、 高可用性、安全性等要求做出适当的系统设计。 3、公益援助系统数据设计 通过对公益项目的业务分析,设计和建立本系统数据层和应用层的数据模型。 4、公益援助系统后台实现及测试 完成后台善款募集、募集资金流转、在线支付 3 大业务模块的编码实现。针对业 务逻辑、压力测试等方面做出实验以及测试报告。 1.4 论文结构 本文通过对区块链系统的深入地分析研究,根据现有的许多公益援助机构面临的 问题,进行分析,发现现在多数的机构都无法完成募资、援助信息的公开透明。即使 机构公布了历年账目,广大群众也无法辨识出其真伪性。所以本文基于区块链系统, 研发一套可自证的公益援助系统,任意交易记录都在区块链上可查,并且无法修改。 论文章节结构如图 1-1: 区块链技术在互联网公益产品中的研究与应用 4 图 1-1 论文组织结构图 Fig.1-1 Organization diagram 第一章绪论部分,介绍了本论文课题研究的背景,区块链技术在国内外发展现状 及存在的问题,针对问题引出了本课题研究的主要目标及研究内容。 第二章相关概念部分,介绍了区块链基本概念,包括区块链的基本组成以及数据 结构。为读者阅读本论文提供相关技术参考。 第三章区块链运行原理,介绍了区块链分布式账本的运行机制。对比了区块链技 术中的几种共识机制,给出各个共识机制的优缺点对比。以及区块链共识机制解决的 虚拟货币中的双花问题,拜占庭将军问题 区块链技术在互联网公益产品中的研究与应用 5 第四章介绍了以太坊平台以及布盟区块链平台的基本构成以及功能。通过 Geth 以 及在线 Solidity 编译器搭建以太坊测试环境。编写、编译智能合约发行援助机构代币, 实现区块链账户之间的价值转移。 第五章公益互助系统基本设计理念,设计分析了现有援助机构的需求,痛点。针 对无法自证的特点,开发一套底层数据落地基于区块链的互联网公益互助系统。内容 包括区块链底层特点、功能性设计、非功能性设计、数据库设计、系统安全性设计等。 第六章伪代码以及系统测试过程与结果分析。测试各项功能性需求,说明实现结 果符合设计初衷。 区块链技术在互联网公益产品中的研究与应用 6 2 2 区块链区块链基本概念基本概念 区块链(Blockchain)是由多个节点参与的分布式数据库系统,它的特点是不可 更改、不可伪造,也可以将其理解为账簿系统(ledger),本章主要对区块链的相关 技术进行简要介绍。 2.1 比特币的区块链 区块链是由许多区块右后向前有序链接的起来一种数据结构,被存储为 flat file(非相对关系记录的文件),或是存储在简单的数据库中。区块链可以被比作一 个垂直的栈,第一个区块就是创世区块作为栈底,后续区块相继入栈。在区块链中, 每一个区块的头都会进行 SHA256 加密哈希,生成一个哈希值。通过这个哈希值,可以 找出区块链中对应的区块,通过父区块的哈希值,与前一个区块相连。虽然每个区块 都只拥有一个父区块,但是一个区块却会出现多个子区块的情况,这种情况我们称之 为区块链分叉,分叉情况只是暂时的,最终会按照区块链中大部分区块的主路线进行 合并,关于分叉,后续章节会详细研究。 2.2 区块 数据通过称之为区块(block)的文件,永久的记录在数字货币的网络上。他们就 像一个股票的交易账本。新的区块生成以后会被添加到区块的最末端,一旦生成就很 难修过或者移除。区块按照时间顺序,一个个先后生成,每一个区块都会被记录下它 在被创建期间发生的所有有价值交换的活动,所有区块汇总起来,就形成了一个记录 集合 2.2.1 区块结构 区块结构(BlockStructure):区块中会记录下当前区块生成时间段内所有的交 易数据,区块的主体实际上就是交易信息的合集。每个区块的结构可能不会完全相同, 但大体上都分为块头(header)和块身(body)两个部分。块头用于链接到前面的区 块,并且为整体的区块链数据库提供完整性的保证,块身则包含了经过验证的、区块 创建过程中发生的交易记录。 表 2-1 Table2-1 字段作用说明大小 神奇数神奇数总是等于 0xD9B4BEF9,作为区块之 间的分隔符 4 字节 区块链技术在互联网公益产品中的研究与应用 7 区块大小记录了当前区块的大小4 字节 续表 2-1 字段作用说明大小 区块头组成区块头的字段80 字节 交易计数当前区块所记录的交易1-9 字节 交易详情记录了当前区块保存的所有交易细节可变的 2.2.2 区块头 区块头是由三组元数据组成的。第一组:引用父区块哈希值的数据,用于将区块 与他的父区块相连接。第二组:难度、时间戳、Nonce,这些数据都和挖矿竞争有关。 第三组:Merkle 树,用于记录和总结区块中的所有交易,将在 2.4 章节中详述。 表 2-2 Table2-2 字段作用说明大小 版本版本号,用于跟踪软件与协议的更新4 字节 父区块哈希值记录了当前区块的大小4 字节 区块头组成区块头的字段80 字节 交易计数当前区块所记录的交易1-9 字节 交易详情记录了当前区块保存的所有交易细节可变的 2.2.3 区块标识符 区块标识符是该区块的加密哈希值,如 2.1 章中所说,标识符是通过 SHA256 算法 对区块头 1 进行的二次哈希计算后得到的数字指纹。区块的哈希值可以很明确的标识 一个区块,并且区块链上的任一节点都能简单的对区块头进行哈希计算从而独立的获 取该区块的哈希值。 区块的哈希值并不会保存在区块的数据结构中,每个区块的哈希值是当该区块从 网络中被接收时,由每个节点自己计算得出的。区块的哈希值可能会作为区块元数据 的一部分被存储起来,以便于索引和更加快捷地从磁盘检索区块。区块可以有两种方 式被识别:区块哈希值或者区块的高度。因为区块链可以看做是一个垂直的栈,随着 一个个区块的堆叠,高度与哈希值一样是唯一的(区块链分叉情况除外)。 一个区块的哈希值能识别出一个特定的区块。一个区块也只有唯一的高度,但是 唯一的高度却不一定总是能识别出一个特定的区块。更准确的说,两个或者更多数量 的区块也许为了区块的一个高度互相竞争。 区块链技术在互联网公益产品中的研究与应用 8 2.2.4 创世区块 区块链中的第一个区块创建于 2009 年,人们称之为创世区块。他是区块链中所有 区块的祖先,意味着任一区块都可以循链向后回溯,最终都会找到不同的路径到达创 始区块。 创世区块包含一个隐藏的信息。在 CoinBase 交易的输入中包含了这样一句话: “The Times 03/Jan/2009 Chancellor on brink of second bailout for banks.”这句 话是泰晤士报当天的头版文章标题,引用这句话,即是对区块产生时间的说明, 同时告诉人们,一场前所未有的世界性货币革命将要发生1。 以下为创世区块的数据结构: “hash“: “000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f“, “confirmations“: 308321, “size“: 285, “height“: 0, “version“: 1, “merkleroot“: “4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b“, “tx“: “4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b“ , “time“: 1231006505, “nonce“: 2083236893, “bits“: “1d00ffff“, “difficulty“: 1, “nextblockhash“: “00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048“ 2.3 区块的链接 比特币的完整节点保存了区块链从创世区块起到最新区块的一个本地副本。随着 新的区块被不断发现,本地副本也会不断的更新。当一个节点接收到新的区块时,它 区块链技术在互联网公益产品中的研究与应用 9 会验证这些区块的真实性,为建立一个连接,节点会检查区块头并寻找该区块的“父区 块哈希值”。 /TODO 以下需要一个区块连接的图标。 2.4 Merkle Tree 和 Merkle Patricia Tree Merkle 树是区块链中非常重要部分,它是一种哈希二叉树,用作快速归纳和校验 大规模数据完整性的数据结构。 在比特币网络中,Merkle 树被用来归纳一个区块中的所有交易,同时生成整个交 易集合的数字指纹,并且提供了一种能够校验区块是否存在的高效途径。在下面的章 节,会通过以太坊平台来完成本篇论文的实践部分,以太坊的底层数据结构是 Merkle Patricia Tree,接下来会同时介绍一下两种树的实现。 2.4.1 Merkle Tree Merkle Tree,通常也被成为 Hash Tree,顾名思义,就是存储哈希值的一棵树。 Merkle 树的叶子节点是数据块的 hash code。非叶子结点是其对应子节点串联字符串 的 hash。 1.Hash Hash 是一个把任一长度数据映射成固定长度数据的函数。对于数据完整性校验, 最简单的方法是对整个数据做 Hash 运算得到固定长度的 Hash 值,然后把得到的 Hash 值公布在网上,这样用户下载到数据之后,对数据再次进行 Hash 运算,比较运算结果 和之前的 Hash 值进行比较,如果两个 Hash 值相等,说明下载的数据没有损坏。可以 这样做是因为输入数据的稍微改变就会引起 Hash 运算结果的面目全非,而且根据 Hash 值反推原始输入数据是非常困难的。 2.HashList 和 Merkle Tree Merkle 树可以看做是 Hash List 的泛化,Hash List 可以看做是一种特殊的 Merkle Tree,即树高为 2 的多叉 Merkle Tree。两者之间最主要的区别是,可以直接 下载并且立即验证 Merkle Tree 的一个分支。因为可以将文件切分成小的数据块,这 样如果有一块数据损坏,仅仅重新下载这个数据块就行了。如果文件非常大,那么 Merkle tree 和 Hash list 都很到,但是 Merkle tree 可以一次下载一个分支,然后立 即验证这个分支,如果分支验证通过,就可以下载数据了。而 Hash list 只有下载整 个 hash list 才能验证。 3.Merkle Tree 生成一颗完整的 Merkle 树需要对各个哈希节点进行递归运算,并且将新生成的哈 希节点插入 Merkle 树种,直到剩下一个节点,该节点就是 Merkle 树的根,我们称之 为 Merkle Root。 区块链技术在互联网公益产品中的研究与应用 10 Merkle 树是自底向上构建的,从 A、B、C、D 四个节点构成 Merkle 树的树叶开始, 如下图所示: 图 2-1 Merkle 树基本结构 Fig 2-1 由四个交易构造 Merkle 树的方法同样适用于从任意交易数量构造新的 Merkle 树, 在比特币的交易中,在单个的区块中有成千上万笔交易是很常见的。所有的交易都会 采用相同的方式归纳起来,仅仅产生一个 32 字节的 Merkle Root。无论 Merkle 树中存 在多少笔交易,树的叶子节点有多少,Merkle Root 都只会将所有交易归纳为 32 字节。 2.4.2 Merkle Patricia Tree 上一章中我们提到的 Merkle Tree 大多数情况下都是一颗二叉树。而以太坊所使 用的 Merkle Tree 更为复杂,我们称之为“梅克尔.帕特里夏树”(Merkle Patricia tree)。因为论文的后续实践阶段,我们会采用以太坊平台来完成我们的研究工作, 所以对以太坊的 Merkle Patricia tree 也要有深刻的理解。 Merkle Patricia Tree(简称 MPT 树,实际是一种 trie 前缀树)2,是以太坊中 使用的一种加密认证的数据结构,可以用用来存储所有的 k、v 对。Trie 树叶成为 Radix 树,为了提高效率

温馨提示

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

评论

0/150

提交评论