区块链的基本概念和工作原理 - 知乎切换模式写文章登录/注册区块链的基本概念和工作原理创客B1、基本概念区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。区块链(Blockchain)是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。2、工作原理区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。 其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。区块链主要解决的交易的信任和安全问题,因此它针对这个问题提出了四个技术创新:(1)分布式账本,就是交易记账由分布在不同地方的多个节点共同完成,而且每一个节点都记录的是完整的账目,因此它们都可以参与监督交易合法性,同时也可以共同为其作证。跟传统的分布式存储有所不同,区块链的分布式存储的独特性主要体现在两个方面:一是区块链每个节点都按照块链式结构存储完整的数据,传统分布式存储一般是将数据按照一定的规则分成多份进行存储。二是区块链每个节点存储都是独立的、地位等同的,依靠共识机制保证存储的一致性,而传统分布式存储一般是通过中心节点往其他备份节点同步数据。 [8]没有任何一个节点可以单独记录账本数据,从而避免了单一记账人被控制或者被贿赂而记假账的可能性。也由于记账节点足够多,理论上讲除非所有的节点被破坏,否则账目就不会丢失,从而保证了账目数据的安全性。(2)非对称加密和授权技术,存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问到,从而保证了数据的安全和个人的隐私。(3)共识机制,就是所有记账节点之间怎么达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。区块链提出了四种不同的共识机制,适用于不同的应用场景,在效率和安全性之间取得平衡。区块链的共识机制具备“少数服从多数”以及“人人平等”的特点,其中“少数服从多数”并不完全指节点个数,也可以是计算能力、股权数或者其他的计算机可以比较的特征量。“人人平等”是当节点满足条件时,所有节点都有权优先提出共识结果、直接被其他节点认同后并最后有可能成为最终共识结果。以比特币为例,采用的是工作量证明,只有在控制了全网超过51%的记账节点的情况下,才有可能伪造出一条不存在的记录。当加入区块链的节点足够多的时候,这基本上不可能,从而杜绝了造假的可能.(4)智能合约,智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则和条款。以保险为例,如果说每个人的信息(包括医疗信息和风险发生的信息)都是真实可信的,那就很容易的在一些标准化的保险产品中,去进行自动化的理赔.3、其它互联网交换的是信息,区块链交换的是价值。人类历史和互联网历史可以用八个字理解:分久必合合久必分,到了分久必合的时代,网络信息全部散在互联网上面,大家要挖掘信息非常不容易,这时会出现像谷歌和脸书等的平台,它做的唯一的事情就是把我们所有的信息重新组合了一下。互联网时代垄断巨头们重组的就是信息,并不是产生自己的信息,产生的信息完全是我们个人。一旦信息重组,就会出现一个新的垄断巨人,所以就到了分久必合的时代。现在由于区块链技术产生又到了合久必分时代,又是新的多中心化,新的多中心化之后赋能产生新的价值,这些数据会在我们自己的手上,个人数据产生价值是归自己所有,这是这个时代最最激动人心的时代。区块链的价值有哪些?低成本建立信任的机制,确立数权,解决数据的产权。目前区块链技术不断发展,包括现在的单链向多链发展,而且技术能够在进一步扩展,我想未来还是可能会出现,特别是在交易等方面出现颠覆性的,特别是对现有产业的很多颠覆性的场景。区块链的本质是在不可信的网络建立可信的信息交换。一带一路+一链。区块链更大的不是制造信任,而是让信任产生无损的传递,整个降低社会的摩擦成本,从而提高整个效益。现在区块链本身还是初始阶段,所以包括区块链的信息传递、加密,这个过程中出现量子加密和其他加密,实际上对区块链本身所采用的加密算法攻击现象也时有发生。包括区块链也是作为一种资产的认定,数字资产的一个认定,但是现在我们很多都是用密码算法,或者是作为我们来解密的钥匙,但是如果密码忘记了,很可能你现在的资产就丢掉了,你不能够在得到你原来的这些资产,所以在资产管理,包括信息传递和一些安全这些方面,应该说都还是存在着一些隐患。当然那么从技术角度,现在我们区块链本身处理的速度,或者说本身的扩展性,因为从工作机理的角度来看,是要把整个账本要复制给所有的参与人员,所以在区块链本身的运作效率和扩展性方面还是比较受限的。这些我们觉得都还是需要进一步在技术方面有进一步的发展。区块链平台这些底层技术,又形成包括区块链钱包、区块链浏览器、节点竞选、矿机、矿池、开发组件、开发模块、技术社区及项目社群等一系列的生态系统,这些生态系统的完善程度直接决定着区块链底层平台的使用效率和效果。4、蒙代尔的不可能三角去中心化、高效、安全,不可能实现三者全部同时达到极致。风险与杠杆无关,只与仓位有关,合理的运用好杠杆, 那是财富增值的利器!不合理的运用杠杆那是毁灭财富的利器, 那么如何合理利用呢?就是仓位管理 资金管理!币圈大帅专业带单团队,提供精准的技术点位,有规划交易+合理风控仓控+平稳心态=正确投资交易,如果您想学习交易改善目前交易现状,如果您想要了解更多币种行情,关注微信公众号“币圈趋势创客”。发布于 2020-08-11 10:54比特币 (Bitcoin)区块链(Blockchain)赞同 6添加评论分享喜欢收藏申请
区块链技术研究综述:原理、进展与应用
主管单位:中国科学技术协会
主办单位:中国通信学会
ISSN 1000-436X CN 11-2102/TN
首页
期刊简介
编委会
投稿指南
道德声明
期刊协议
期刊订阅
会议活动
下载中心
联系我们
English
期刊介绍
期刊信息
投稿须知
稿件格式要求
审稿流程
下载中心
联系方式
Toggle navigation
首页
期刊简介
期刊介绍
期刊信息
编委会
投稿指南
投稿须知
稿件格式要求
审稿流程
下载中心
道德声明
期刊协议
期刊订阅
会议活动
联系我们
English
通信学报, 2020, 41(1): 134-151 doi: 10.11959/j.issn.1000-436x.2020027
综述
区块链技术研究综述:原理、进展与应用
曾诗钦1, 霍如2,3, 黄韬1,3, 刘江1,3, 汪硕1,3, 冯伟4
1 北京邮电大学网络与交换国家重点实验室,北京 100876
2 北京工业大学北京未来网络科技高精尖创新中心,北京 100124
3 网络通信与安全紫金山实验室,江苏 南京 211111
4 工业和信息化部信息化和软件服务业司,北京 100846
Survey of blockchain:principle,progress and application
ZENG Shiqin1, HUO Ru2,3, HUANG Tao1,3, LIU Jiang1,3, WANG Shuo1,3, FENG Wei4
1 State Key Laboratory of Networking and Switching Technology,Beijing University of Posts and Telecommunications,Beijing 100876,China
2 Beijing Advanced Innovation Center for Future Internet Technology,Beijing University of Technology,Beijing 100124,China
3 Purple Mountain Laboratories,Nanjing 211111,China
4 Department of Information Technology Application and Software Services,Beijing 100846,China
通讯作者: 霍如,huoru@bjut.edu.cn
修回日期: 2019-12-12
网络出版日期: 2020-01-25
基金资助:
国家高技术研究发展计划(“863”计划)基金资助项目. 2015AA015702未来网络操作系统发展战略研究基金资助项目. 2019-XY-5
Revised: 2019-12-12
Online: 2020-01-25
Fund supported:
The National High Technology Research and Development Program of China (863 Program). 2015AA015702The Development Strategy Research of Future Network Operating System. 2019-XY-5
作者简介 About authors
曾诗钦(1995-),男,广西南宁人,北京邮电大学博士生,主要研究方向为区块链、标识解析技术、工业互联网
。
霍如(1988-),女,黑龙江哈尔滨人,博士,北京工业大学讲师,主要研究方向为计算机网络、信息中心网络、网络缓存策略与算法、工业互联网、标识解析技术等。
。
黄韬(1980-),男,重庆人,博士,北京邮电大学教授,主要研究方向为未来网络体系架构、软件定义网络、网络虚拟化等。
。
刘江(1983-),男,河南郑州人,博士,北京邮电大学教授,主要研究方向为未来网络体系架构、软件定义网络、网络虚拟化、信息中心网络等。
。
汪硕(1991-),男,河南灵宝人,博士,北京邮电大学在站博士后,主要研究方向为数据中心网络、软件定义网络、网络流量调度等。
。
冯伟(1980-),男,河北邯郸人,博士,工业和信息化部副研究员,主要研究方向为工业互联网平台、数字孪生、信息化和工业化融合发展关键技术等
。
摘要
区块链是一种分布式账本技术,依靠智能合约等逻辑控制功能演变为完整的存储系统。其分类方式、服务模式和应用需求的变化导致核心技术形态的多样性发展。为了完整地认知区块链生态系统,设计了一个层次化的区块链技术体系结构,进一步深入剖析区块链每层结构的基本原理、技术关联以及研究进展,系统归纳典型区块链项目的技术选型和特点,最后给出智慧城市、工业互联网等区块链前沿应用方向,提出区块链技术挑战与研究展望。
关键词:
区块链
;
加密货币
;
去中心化
;
层次化技术体系结构
;
技术多样性
;
工业区块链
Abstract
Blockchain is a kind of distributed ledger technology that upgrades to a complete storage system by adding logic control functions such as intelligent contracts.With the changes of its classification,service mode and application requirements,the core technology forms of Blockchain show diversified development.In order to understand the Blockchain ecosystem thoroughly,a hierarchical technology architecture of Blockchain was proposed.Furthermore,each layer of blockchain was analyzed from the perspectives of basic principle,related technologies and research progress in-depth.Moreover,the technology selections and characteristics of typical Blockchain projects were summarized systematically.Finally,some application directions of blockchain frontiers,technology challenges and research prospects including Smart Cities and Industrial Internet were given.
Keywords:
blockchain
;
cryptocurrency
;
decentralization
;
hierarchical technology architecture
;
technology diversity
;
PDF (1174KB)
元数据
多维度评价
相关文章
导出
EndNote|
Ris|
Bibtex
收藏本文
本文引用格式
曾诗钦, 霍如, 黄韬, 刘江, 汪硕, 冯伟. 区块链技术研究综述:原理、进展与应用. 通信学报[J], 2020, 41(1): 134-151 doi:10.11959/j.issn.1000-436x.2020027
ZENG Shiqin. Survey of blockchain:principle,progress and application. Journal on Communications[J], 2020, 41(1): 134-151 doi:10.11959/j.issn.1000-436x.2020027
1 引言
2008年,中本聪提出了去中心化加密货币——比特币(bitcoin)的设计构想。2009年,比特币系统开始运行,标志着比特币的正式诞生。2010—2015 年,比特币逐渐进入大众视野。2016—2018年,随着各国陆续对比特币进行公开表态以及世界主流经济的不确定性增强,比特币的受关注程度激增,需求量迅速扩大。事实上,比特币是区块链技术最成功的应用场景之一。伴随着以太坊(ethereum)等开源区块链平台的诞生以及大量去中心化应用(DApp,decentralized application)的落地,区块链技术在更多的行业中得到了应用。
由于具备过程可信和去中心化两大特点,区块链能够在多利益主体参与的场景下以低成本的方式构建信任基础,旨在重塑社会信用体系。近两年来区块链发展迅速,人们开始尝试将其应用于金融、教育、医疗、物流等领域。但是,资源浪费、运行低效等问题制约着区块链的发展,这些因素造成区块链分类方式、服务模式和应用需求发生快速变化,进一步导致核心技术朝多样化方向发展,因此有必要采取通用的结构分析区块链项目的技术路线和特点,以梳理和明确区块链的研究方向。
区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值。袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势。上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析。本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望。
2 相关概念
随着区块链技术的深入研究,不断衍生出了很多相关的术语,例如“中心化”“去中心化”“公链”“联盟链”等。为了全面地了解区块链技术,并对区块链技术涉及的关键术语有系统的认知,本节将给出区块链及其相关概念的定义,以及它们的联系,更好地区分易使人混淆的术语。
2.1 中心化与去中心化
中心化(centralization)与去中心化(decentralization)最早用来描述社会治理权力的分布特征。从区块链应用角度出发,中心化是指以单个组织为枢纽构建信任关系的场景特点。例如,电子支付场景下用户必须通过银行的信息系统完成身份验证、信用审查和交易追溯等;电子商务场景下对端身份的验证必须依靠权威机构下发的数字证书完成。相反,去中心化是指不依靠单一组织进行信任构建的场景特点,该场景下每个组织的重要性基本相同。
2.2 加密货币
加密货币(cryptocurrency)是一类数字货币(digital currency)技术,它利用多种密码学方法处理货币数据,保证用户的匿名性、价值的有效性;利用可信设施发放和核对货币数据,保证货币数量的可控性、资产记录的可审核性,从而使货币数据成为具备流通属性的价值交换媒介,同时保护使用者的隐私。
加密货币的概念起源于一种基于盲签名(blind signature)的匿名交易技术[6],最早的加密货币交易模型“electronic cash”[7]如图1所示。
图1
新窗口打开|
下载原图ZIP|
生成PPT
图1
“electronic cash”交易模型
交易开始前,付款者使用银行账户兑换加密货币,然后将货币数据发送给领款者,领款者向银行发起核对请求,若该数据为银行签发的合法货币数据,那么银行将向领款者账户记入等额数值。通过盲签名技术,银行完成对货币数据的认证,而无法获得发放货币与接收货币之间的关联,从而保证了价值的有效性、用户的匿名性;银行天然具有发放币种、账户记录的能力,因此保证了货币数量的可控性与资产记录的可审核性。
最早的加密货币构想将银行作为构建信任的基础,呈现中心化特点。此后,加密货币朝着去中心化方向发展,并试图用工作量证明(PoW,poof of work)[8]或其改进方法定义价值。比特币在此基础上,采用新型分布式账本技术保证被所有节点维护的数据不可篡改,从而成功构建信任基础,成为真正意义上的去中心化加密货币。区块链从去中心化加密货币发展而来,随着区块链的进一步发展,去中心化加密货币已经成为区块链的主要应用之一。
2.3 区块链及工作流程
一般认为,区块链是一种融合多种现有技术的新型分布式计算和存储范式。它利用分布式共识算法生成和更新数据,并利用对等网络进行节点间的数据传输,结合密码学原理和时间戳等技术的分布式账本保证存储数据的不可篡改,利用自动化脚本代码或智能合约实现上层应用逻辑。如果说传统数据库实现数据的单方维护,那么区块链则实现多方维护相同数据,保证数据的安全性和业务的公平性。区块链的工作流程主要包含生成区块、共识验证、账本维护3个步骤。
1) 生成区块。区块链节点收集广播在网络中的交易——需要记录的数据条目,然后将这些交易打包成区块——具有特定结构的数据集。
2) 共识验证。节点将区块广播至网络中,全网节点接收大量区块后进行顺序的共识和内容的验证,形成账本——具有特定结构的区块集。
3) 账本维护。节点长期存储验证通过的账本数据并提供回溯检验等功能,为上层应用提供账本访问接口。
2.4 区块链类型
根据不同场景下的信任构建方式,可将区块链分为2类:非许可链(permissionless blockchain)和许可链(permissioned blockchain)。
非许可链也称为公链(public blockchain),是一种完全开放的区块链,即任何人都可以加入网络并参与完整的共识记账过程,彼此之间不需要信任。公链以消耗算力等方式建立全网节点的信任关系,具备完全去中心化特点的同时也带来资源浪费、效率低下等问题。公链多应用于比特币等去监管、匿名化、自由的加密货币场景。
许可链是一种半开放式的区块链,只有指定的成员可以加入网络,且每个成员的参与权各有不同。许可链往往通过颁发身份证书的方式事先建立信任关系,具备部分去中心化特点,相比于非许可链拥有更高的效率。进一步,许可链分为联盟链(consortium blockchain)和私链(fully private blockchain)。联盟链由多个机构组成的联盟构建,账本的生成、共识、维护分别由联盟指定的成员参与完成。在结合区块链与其他技术进行场景创新时,公链的完全开放与去中心化特性并非必需,其低效率更无法满足需求,因此联盟链在某些场景中成为实适用性更强的区块链选型。私链相较联盟链而言中心化程度更高,其数据的产生、共识、维护过程完全由单个组织掌握,被该组织指定的成员仅具有账本的读取权限。
3 区块链体系结构
根据区块链发展现状,本节将归纳区块链的通用层次技术结构、基本原理和研究进展。
现有项目的技术选型多数由比特币演变而来,所以区块链主要基于对等网络通信,拥有新型的基础数据结构,通过全网节点共识实现公共账本数据的统一。但是区块链也存在效率低、功耗大和可扩展性差等问题,因此人们进一步以共识算法、处理模型、交易模式创新为切入点进行技术方案改进,并在此基础上丰富了逻辑控制功能和区块链应用功能,使其成为一种新型计算模式。本文给出如图2 所示的区块链通用层次化技术结构,自下而上分别为网络层、数据层、共识层、控制层和应用层。其中,网络层是区块链信息交互的基础,承载节点间的共识过程和数据传输,主要包括建立在基础网络之上的对等网络及其安全机制;数据层包括区块链基本数据结构及其原理;共识层保证节点数据的一致性,封装各类共识算法和驱动节点共识行为的奖惩机制;控制层包括沙盒环境、自动化脚本、智能合约和权限管理等,提供区块链可编程特性,实现对区块数据、业务数据、组织结构的控制;应用层包括区块链的相关应用场景和实践案例,通过调用控制合约提供的接口进行数据交互,由于该层次不涉及区块链原理,因此在第 5节中单独介绍。
3.1 网络层
网络层关注区块链网络的基础通信方式——对等(P2P,peer-to-peer)网络。对等网络是区别于“客户端/服务器”服务模式的计算机通信与存储架构,网络中每个节点既是数据的提供者也是数据的使用者,节点间通过直接交换实现计算机资源与信息的共享,因此每个节点地位均等。区块链网络层由组网结构、通信机制、安全机制组成。其中组网结构描述节点间的路由和拓扑关系,通信机制用于实现节点间的信息交互,安全机制涵盖对端安全和传输安全。
图2
新窗口打开|
下载原图ZIP|
生成PPT
图2
区块链层次化技术结构
1) 组网结构
对等网络的体系架构可分为无结构对等网络、结构化对等网络和混合式对等网络[9],根据节点的逻辑拓扑关系,区块链网络的组网结构也可以划分为上述3种,如图3所示。
图3
新窗口打开|
下载原图ZIP|
生成PPT
图3
区块链组网结构
无结构对等网络是指网络中不存在特殊中继节点、节点路由表的生成无确定规律、网络拓扑呈现随机图状的一类对等网络。该类网络结构松散,设计简洁,具有良好的容错性和匿名性,但由于采用洪泛机制作为信息传播方式,其可扩展性较差。典型的协议有Gnutella等。
结构化对等网络是指网络中不存在特殊中继节点、节点间根据特定算法生成路由表、网络拓扑具有严格规律的一类对等网络。该类网络实现复杂但可扩展性良好,通过结构化寻址可以精确定位节点从而实现多样化功能。常见的结构化网络以DHT (distributed hash table)网络为主,典型的算法有Chord、Kademlia等。
混合式对等网络是指节点通过分布式中继节点实现全网消息路由的一类对等网络。每个中继节点维护部分网络节点地址、文件索引等工作,共同实现数据中继的功能。典型的协议有Kazza等。
2) 通信机制
通信机制是指区块链网络中各节点间的对等通信协议,建立在 TCP/UDP 之上,位于计算机网络协议栈的应用层,如图4所示。该机制承载对等网络的具体交互逻辑,例如节点握手、心跳检测、交易和区块传播等。由于包含的协议功能不同(例如基础链接与扩展交互),本文将通信机制细分为3个层次:传播层、连接层和交互逻辑层。
传播层实现对等节点间数据的基本传输,包括2 种数据传播方式:单点传播和多点传播。单点传播是指数据在2个已知节点间直接进行传输而不经过其他节点转发的传播方式;多点传播是指接收数据的节点通过广播向邻近节点进行数据转发的传播方式,区块链网络普遍基于Gossip协议[10]实现洪泛传播。连接层用于获取节点信息,监测和改变节点间连通状态,确保节点间链路的可用性(availability)。具体而言,连接层协议帮助新加入节点获取路由表数据,通过定时心跳监测为节点保持稳定连接,在邻居节点失效等情况下为节点关闭连接等。交互逻辑层是区块链网络的核心,从主要流程上看,该层协议承载对等节点间账本数据的同步、交易和区块数据的传输、数据校验结果的反馈等信息交互逻辑,除此之外,还为节点选举、共识算法实施等复杂操作和扩展应用提供消息通路。
图4
新窗口打开|
下载原图ZIP|
生成PPT
图4
区块链网络通信机制
3) 安全机制
安全是每个系统必须具备的要素,以比特币为代表的非许可链利用其数据层和共识层的机制,依靠消耗算力的方式保证数据的一致性和有效性,没有考虑数据传输过程的安全性,反而将其建立在不可信的透明P2P网络上。随着隐私保护需求的提出,非许可链也采用了一些网络匿名通信方法,例如匿名网络Tor(the onion router)通过沿路径的层层数据加密机制来保护对端身份。许可链对成员的可信程度有更高的要求,在网络层面采取适当的安全机制,主要包括身份安全和传输安全两方面。身份安全是许可链的主要安全需求,保证端到端的可信,一般采用数字签名技术实现,对节点的全生命周期(例如节点交互、投票、同步等)进行签名,从而实现许可链的准入许可。传输安全防止数据在传输过程中遭到篡改或监听,常采用基于TLS的点对点传输和基于Hash算法的数据验证技术。
4) 研究现状
目前,区块链网络层研究主要集中在3个方向:测量优化、匿名分析与隐私保护、安全防护。
随着近年来区块链网络的爆炸式发展以及开源特点,学术界开始关注大型公有链项目的网络状况,监测并研究它们的特点,研究对象主要为比特币网络。Decker等[11]设计和实现测量工具,分析传播时延数据、协议数据和地址数据,建模分析影响比特币网络性能的网络层因素,基于此提出各自的优化方法。Fadhil等[12]提出基于事件仿真的比特币网络仿真模型,利用真实测量数据验证模型的有效性,最后提出优化机制 BCBSN,旨在设立超级节点降低网络波动。Kaneko 等[13]将区块链节点分为共识节点和验证节点,其中共识节点采用无结构组网方式,验证节点采用结构化组网方式,利用不同组网方式的优点实现网络负载的均衡。
匿名性是加密货币的重要特性之一,但从网络层视角看,区块链的匿名性并不能有效保证,因为攻击者可以利用监听并追踪 IP 地址的方式推测出交易之间、交易与公钥地址之间的关系,通过匿名隐私研究可以主动发掘安全隐患,规避潜在危害。Koshy 等[16,17]从网络拓扑、传播层协议和作恶模型3个方面对比特币网络进行建模,通过理论分析和仿真实验证明了比特币网络协议在树形组网结构下仅具备弱匿名性,在此基础上提出 Dandelion 网络策略以较低的网络开销优化匿名性,随后又提出 Dandelion++原理,以最优信息理论保证来抵抗大规模去匿名攻击。
区块链重点关注其数据层和共识层面机制,并基于普通网络构建开放的互联环境,该方式极易遭受攻击。为提高区块链网络的安全性,学术界展开研究并给出了相应的解决方案。Heilman 等[18]对比特币和以太坊网络实施日蚀攻击(eclipse attack)——通过屏蔽正确节点从而完全控制特定节点的信息来源,证实了该攻击的可行性。Apostolaki等[19]提出针对比特币网络的 BGP(border gateway protocal)劫持攻击,通过操纵自治域间路由或拦截域间流量来制造节点通信阻塞,表明针对关键数据的沿路攻击可以大大降低区块传播性能。
3.2 数据层
区块链中的“块”和“链”都是用来描述其数据结构特征的词汇,可见数据层是区块链技术体系的核心。区块链数据层定义了各节点中数据的联系和组织方式,利用多种算法和机制保证数据的强关联性和验证的高效性,从而使区块链具备实用的数据防篡改特性。除此之外,区块链网络中每个节点存储完整数据的行为增加了信息泄露的风险,隐私保护便成为迫切需求,而数据层通过非对称加密等密码学原理实现了承载应用信息的匿名保护,促进区块链应用普及和生态构建。因此,从不同应用信息的承载方式出发,考虑数据关联性、验证高效性和信息匿名性需求,可将数据层关键技术分为信息模型、关联验证结构和加密机制3类。
1) 信息模型
区块链承载了不同应用的数据(例如支付记录、审计数据、供应链信息等),而信息模型则是指节点记录应用信息的逻辑结构,主要包括UTXO (unspent transaction output)、基于账户和键值对模型3种。需要说明的是,在大部分区块链网络中,每个用户均被分配了交易地址,该地址由一对公私钥生成,使用地址标识用户并通过数字签名的方式检验交易的有效性。
UTXO是比特币交易中的核心概念,逐渐演变为区块链在金融领域应用的主要信息模型,如图5所示。每笔交易(Tx)由输入数据(Input)和输出数据(Output)组成,输出数据为交易金额(Num)和用户公钥地址(Adr),而输入数据为上一笔交易输出数据的指针(Pointer),直到该比特币的初始交易由区块链网络向节点发放。
图5
新窗口打开|
下载原图ZIP|
生成PPT
图5
UTXO信息模型
基于账户的信息模型以键值对的形式存储数据,维护着账户当前的有效余额,通过执行交易来不断更新账户数据。相比于UTXO,基于账户的信息模型与银行的储蓄账户类似,更直观和高效。
不管是UTXO还是基于账户的信息模型,都建立在更为通用的键值对模型上,因此为了适应更广泛的应用场景,键值对模型可直接用于存储业务数据,表现为表单或集合形式。该模型利于数据的存取并支持更复杂的业务逻辑,但是也存在复杂度高的问题。
2) 关联验证结构
区块链之所以具备防篡改特性,得益于链状数据结构的强关联性。该结构确定了数据之间的绑定关系,当某个数据被篡改时,该关系将会遭到破坏。由于伪造这种关系的代价是极高的,相反检验该关系的工作量很小,因此篡改成功率被降至极低。链状结构的基本数据单位是“区块(block)”,基本内容如图6所示。
图6
新窗口打开|
下载原图ZIP|
生成PPT
图6
基本区块结构
区块由区块头(Header)和区块体(Body)两部分组成,区块体包含一定数量的交易集合;区块头通过前继散列(PrevHash)维持与上一区块的关联从而形成链状结构,通过MKT(MerkleTree)生成的根散列(RootHash)快速验证区块体交易集合的完整性。因此散列算法和 MKT 是关联验证结构的关键,以下将对此展开介绍。
散列(Hash)算法也称为散列函数,它实现了明文到密文的不可逆映射;同时,散列算法可以将任意长度的输入经过变化得到固定长度的输出;最后,即使元数据有细微差距,变化后的输出也会产生显著不同。利用散列算法的单向、定长和差异放大的特征,节点通过比对当前区块头的前继散列即可确定上一区块内容的正确性,使区块的链状结构得以维系。区块链中常用的散列算法包括SHA256等。
MKT包括根散列、散列分支和交易数据。MKT首先对交易进行散列运算,再对这些散列值进行分组散列,最后逐级递归直至根散列。MKT 带来诸多好处:一方面,对根散列的完整性确定即间接地实现交易的完整性确认,提升高效性;另一方面,根据交易的散列路径(例如 Tx1:Hash2、Hash34)可降低验证某交易存在性的复杂度,若交易总数为N,那么MKT可将复杂度由N降为lbN。除此之外,还有其他数据结构与其配合使用,例如以太坊通过MPT(Merkle Patricia tree)——PatriciaTrie 和MerkleTree混合结构,高效验证其基于账户的信息模型数据。
此外,区块头中还可根据不同项目需求灵活添加其他信息,例如添加时间戳为区块链加入时间维度,形成时序记录;添加记账节点标识,以维护成块节点的权益;添加交易数量,进一步提高区块体数据的安全性。
3) 加密机制
由上述加密货币原理可知,经比特币演变的区块链技术具备与生俱来的匿名性,通过非对称加密等技术既保证了用户的隐私又检验了用户身份。非对称加密技术是指加密者和解密者利用2个不同秘钥完成加解密,且秘钥之间不能相互推导的加密机制。常用的非对称加密算法包括 RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。对应图5,Alice 向 Bob 发起交易 Tx2,Alice使用Bob的公钥对交易签名,仅当Bob使用私钥验证该数字签名时,才有权利创建另一笔交易,使自身拥有的币生效。该机制将公钥作为基础标识用户,使用户身份不可读,一定程度上保护了隐私。
4) 研究现状
数据层面的研究方向集中在高效验证、匿名分析、隐私保护3个方面。
高效验证的学术问题源于验证数据结构(ADS,authenticated data structure),即利用特定数据结构快速验证数据的完整性,实际上 MKT 也是其中的一种。为了适应区块链数据的动态性(dynamical)并保持良好性能,学术界展开了研究。Reyzin等[20]基于AVL树形结构提出AVL+,并通过平衡验证路径、缺省堆栈交易集等机制,简化轻量级节点的区块头验证过程。Zhang等[21]提出GEM2-tree结构,并对其进行优化提出 GEM2כ-tree 结构,通过分解单树结构、动态调整节点计算速度、扩展数据索引等机制降低以太坊节点计算开销。
区块数据直接承载业务信息,因此区块数据的匿名关联性分析更为直接。Reid等[22]将区块数据建模为事务网络和用户网络,利用多交易数据的用户指向性分析成功降低网络复杂度。Meiklejohn等[23]利用启发式聚类方法分析交易数据的流动特性并对用户进行分组,通过与这些服务的互动来识别主要机构的比特币地址。Awan 等[24]使用优势集(dominant set)方法对区块链交易进行自动分类,从而提高分析准确率。
隐私保护方面,Saxena等[25]提出复合签名技术削弱数据的关联性,基于双线性映射中的Diffie-Hellman假设保证计算困难性,从而保护用户隐私。Miers 等[26]和 Sasson 等[27]提出 Zerocoin 和Zerocash,在不添加可信方的情况下断开交易间的联系,最早利用零知识证明(zero-knowledge proof)技术隐藏交易的输入、输出和金额信息,提高比特币的匿名性。非对称加密是区块链数据安全的核心,但在量子计算面前却显得“捉襟见肘”,为此Yin等[28]利用盆景树模型(bonsai tree)改进晶格签名技术(lattice-based signature),以保证公私钥的随机性和安全性,使反量子加密技术适用于区块链用户地址的生成。
3.3 共识层
区块链网络中每个节点必须维护完全相同的账本数据,然而各节点产生数据的时间不同、获取数据的来源未知,存在节点故意广播错误数据的可能性,这将导致女巫攻击[29]、双花攻击[30]等安全风险;除此之外,节点故障、网络拥塞带来的数据异常也无法预测。因此,如何在不可信的环境下实现账本数据的全网统一是共识层解决的关键问题。实际上,上述错误是拜占庭将军问题(the Byzantine generals problem)[31]在区块链中的具体表现,即拜占庭错误——相互独立的组件可以做出任意或恶意的行为,并可能与其他错误组件产生协作,此类错误在可信分布式计算领域被广泛研究。
状态机复制(state-machine replication)是解决分布式系统容错问题的常用理论。其基本思想为:任何计算都表示为状态机,通过接收消息来更改其状态。假设一组副本以相同的初始状态开始,并且能够就一组公共消息的顺序达成一致,那么它们可以独立进行状态的演化计算,从而正确维护各自副本之间的一致性。同样,区块链也使用状态机复制理论解决拜占庭容错问题,如果把每个节点的数据视为账本数据的副本,那么节点接收到的交易、区块即为引起副本状态变化的消息。状态机复制理论实现和维持副本的一致性主要包含2个要素:正确执行计算逻辑的确定性状态机和传播相同序列消息的共识协议。其中,共识协议是影响容错效果、吞吐量和复杂度的关键,不同安全性、可扩展性要求的系统需要的共识协议各有不同。学术界普遍根据通信模型和容错类型对共识协议进行区分[32],因此严格地说,区块链使用的共识协议需要解决的是部分同步(partial synchrony)模型[33]下的拜占庭容错问题。
区块链网络中主要包含PoX(poof of X)[34]、BFT(byzantine-fault tolerant)和 CFT(crash-fault tolerant)类基础共识协议。PoX 类协议是以 PoW (proof of work)为代表的基于奖惩机制驱动的新型共识协议,为了适应数据吞吐量、资源利用率和安全性的需求,人们又提出PoS(proof of stake)、PoST (proof of space-time)等改进协议。它们的基本特点在于设计证明依据,使诚实节点可以证明其合法性,从而实现拜占庭容错。BFT类协议是指解决拜占庭容错问题的传统共识协议及其改良协议,包括PBFT、BFT-SMaRt、Tendermint等。CFT类协议用于实现崩溃容错,通过身份证明等手段规避节点作恶的情况,仅考虑节点或网络的崩溃(crash)故障,主要包括Raft、Paxos、Kafka等协议。
非许可链和许可链的开放程度和容错需求存在差异,共识层面技术在两者之间产生了较大区别。具体而言,非许可链完全开放,需要抵御严重的拜占庭风险,多采用PoX、BFT类协议并配合奖惩机制实现共识。许可链拥有准入机制,网络中节点身份可知,一定程度降低了拜占庭风险,因此可采用BFT类协议、CFT类协议构建相同的信任模型[35]。
限于篇幅原因,本节仅以 PoW、PBFT、Raft为切入进行3类协议的分析。
1) PoX类协议
PoW也称为Nakamoto协议,是比特币及其衍生项目使用的核心共识协议,如图7所示。
图7
新窗口打开|
下载原图ZIP|
生成PPT
图7
PoW协议示意
该协议在区块链头结构中加入随机数Nonce,并设计证明依据:为生成新区块,节点必须计算出合适的 Nonce 值,使新生成的区块头经过双重SHA256 运算后小于特定阈值。该协议的整体流程为:全网节点分别计算证明依据,成功求解的节点确定合法区块并广播,其余节点对合法区块头进行验证,若验证无误则与本地区块形成链状结构并转发,最终达到全网共识。PoW是随机性协议,任何节点都有可能求出依据,合法区块的不唯一将导致生成分支链,此时节点根据“最长链原则”选择一定时间内生成的最长链作为主链而抛弃其余分支链,从而使各节点数据最终收敛。
PoW协议采用随机性算力选举机制,实现拜占庭容错的关键在于记账权的争夺,目前寻找证明依据的方法只有暴力搜索,其速度完全取决于计算芯片的性能,因此当诚实节点数量过半,即“诚实算力”过半时,PoW便能使合法分支链保持最快的增长速度,也即保证主链一直是合法的。PoW是一种依靠饱和算力竞争纠正拜占庭错误的共识协议,关注区块产生、传播过程中的拜占庭容错,在保证防止双花攻击的同时也存在资源浪费、可扩展性差等问题。
2) BFT类协议
PBFT是 BFT经典共识协议,其主要流程如图8 所示。PBFT将节点分为主节点和副节点,其中主节点负责将交易打包成区块,副节点参与验证和转发,假设作恶节点数量为f。PBFT共识主要分为预准备、准备和接受3个阶段,主节点首先收集交易后排序并提出合法区块提案;其余节点先验证提案的合法性,然后根据区块内交易顺序依次执行并将结果摘要组播;各节点收到2f个与自身相同的摘要后便组播接受投票;当节点收到超过2f+1个投票时便存储区块及其产生的新状态[36]。
图8
新窗口打开|
下载原图ZIP|
生成PPT
图8
PBFT协议示意
PBFT 协议解决消息传播过程的拜占庭容错,由于算法复杂度为 O(n2)且存在确定性的主节点选举规则,PBFT 仅适用于节点数量少的小型许可链系统。
3) CFT类协议
Raft[37]是典型的崩溃容错共识协议,以可用性强著称。Raft将节点分为跟随节点、候选节点和领导节点,领导节点负责将交易打包成区块,追随节点响应领导节点的同步指令,候选节点完成领导节点的选举工作。当网络运行稳定时,只存在领导节点和追随节点,领导节点向追随节点推送区块数据从而实现同步。节点均设置生存时间决定角色变化周期,领导节点的心跳信息不断重置追随节点的生存时间,当领导节点发生崩溃时,追随节点自动转化为候选节点并进入选举流程,实现网络自恢复。
Raft协议实现崩溃容错的关键在于领导节点的自选举机制,部分许可链选择降低可信需求,将拜占庭容错转换为崩溃容错,从而提升共识速度。
4) 奖惩机制
奖惩机制包括激励机制与惩罚策略,其中激励机制是为了弥补节点算力消耗、平衡协议运行收益比的措施,当节点能够在共识过程中获得收益时才会进行记账权的争夺,因此激励机制利用经济效益驱动各共识协议可持续运行。激励机制一般基于价值均衡理论设计,具有代表性的机制包括PPLNS、PPS等。为了实现收益最大化,节点可能采用不诚实的运行策略(如扣块攻击、自私挖矿等),损害了诚实节点的利益,惩罚策略基于博弈论等理论对节点进行惩罚,从而纠正不端节点的行为,维护共识可持续性。
5) 研究现状
随着可扩展性和性能需求的多样化发展,除了传统的BFT、CFT协议和PoX协议衍生研究,还产生了混合型协议(Hybrid)——主要为 PoX类协议混合以及PoX-BFT协议混合。因此本节从PoX类、BFT类以及Hybrid类协议归纳共识层研究进展。
如前文所述,PoX类协议的基本特点在于设计证明依据,使诚实节点可以证明其合法性,从而实现拜占庭容错。uPoW[38]通过计算有意义的正交向量问题证明节点合法性,使算力不被浪费。PoI (proof-of-importance)[39]利用图论原理为每个节点赋予重要性权重,权重越高的节点将越有可能算出区块。PoS(poof-of-stake)为节点定义“币龄”,拥有更高币龄的节点将被分配更多的股份(stake),而股份被作为证明依据用于成块节点的选举。Ouroboros[40]通过引入多方掷币协议增大了选举随机性,引入近乎纳什均衡的激励机制进一步提高PoS 的安全性。PoRep(proof-of-replication)[41]应用于去中心化存储网络,利用证明依据作为贡献存储空间的奖励,促进存储资源再利用。
BFT协议有较长的发展史,在区块链研究中被赋予了新的活力。SCP[42]和Ripple[43]基于联邦拜占庭共识[44]——存在交集的多池(确定规模的联邦)共识,分别允许节点自主选择或与指定的节点构成共识联邦,通过联邦交集达成全网共识。Tendermint[45]使用Gossip通信协议基本实现异步拜占庭共识,不仅简化了流程而且提高了可用性。HotStuff[46]将BFT与链式结构数据相结合,使主节点能够以实际网络时延及 O(n)通信复杂度推动协议达成一致。LibraBFT[47]在HotStuff的基础上加入奖惩机制及节点替换机制,从而优化了性能。
Hybrid 类协议是研究趋势之一。PoA[48]利用PoW产生空区块头,利用PoS决定由哪些节点进行记账和背书,其奖励由背书节点和出块节点共享。PeerCensus[49]由节点团体进行拜占庭协议实现共识,而节点必须基于比特币网络,通过 PoW 产出区块后才能获得投票权力。ByzCoin[50]利用PoW的算力特性构建动态成员关系,并引入联合签名方案来减小PBFT的轮次通信开销,提高交易吞吐量,降低确认时延。Casper[51]则通过PoS的股份决定节点构成团体并进行BFT共识,且节点可投票数取决于股份。
3.4 控制层
区块链节点基于对等通信网络与基础数据结构进行区块交互,通过共识协议实现数据一致,从而形成了全网统一的账本。控制层是各类应用与账本产生交互的中枢,如果将账本比作数据库,那么控制层提供了数据库模型,以及相应封装、操作的方法。具体而言,控制层由处理模型、控制合约和执行环境组成。处理模型从区块链系统的角度分析和描述业务/交易处理方式的差异。控制合约将业务逻辑转化为交易、区块、账本的具体操作。执行环境为节点封装通用的运行资源,使区块链具备稳定的可移植性。
1) 处理模型
账本用于存储全部或部分业务数据,那么依据该数据的分布特征可将处理模型分为链上(on-chain)和链下(off-chain)2种。
链上模型是指业务数据完全存储在账本中,业务逻辑通过账本的直接存取实现数据交互。该模型的信任基础建立在强关联性的账本结构中,不仅实现防篡改而且简化了上层控制逻辑,但是过量的资源消耗与庞大的数据增长使系统的可扩展性达到瓶颈,因此该模型适用于数据量小、安全性强、去中心化和透明程度高的业务。
链下模型是指业务数据部分或完全存储在账本之外,只在账本中存储指针以及其他证明业务数据存在性、真实性和有效性的数据。该模型以“最小化信任成本”为准则,将信任基础建立在账本与链下数据的证明机制中,降低账本构建成本。由于与公开的账本解耦,该模型具有良好的隐私性和可拓展性,适用于去中心化程度低、隐私性强、吞吐量大的业务。
2) 控制合约
区块链中控制合约经历了2个发展阶段,首先是以比特币为代表的非图灵完备的自动化脚本,用于锁定和解锁基于UTXO信息模型的交易,与强关联账本共同克服了双花等问题,使交易数据具备流通价值。其次是以以太坊为代表的图灵完备的智能合约,智能合约是一种基于账本数据自动执行的数字化合同,由开发者根据需求预先定义,是上层应用将业务逻辑编译为节点和账本操作集合的关键。智能合约通过允许相互不信任的参与者在没有可信第三方的情况下就复杂合同的执行结果达成协议,使合约具备可编程性,实现业务逻辑的灵活定义并扩展区块链的使用。
3) 执行环境
执行环境是指执行控制合约所需要的条件,主要分为原生环境和沙盒环境。原生环境是指合约与节点系统紧耦合,经过源码编译后直接执行,该方式下合约能经历完善的静态分析,提高安全性。沙盒环境为节点运行提供必要的虚拟环境,包括网络通信、数据存储以及图灵完备的计算/控制环境等,在虚拟机中运行的合约更新方便、灵活性强,其产生的漏洞也可能造成损失。
4) 研究现状
控制层的研究方向主要集中在可扩展性优化与安全防护2个方面。
侧链(side-chain)在比特币主链外构建新的分类资产链,并使比特币和其他分类资产在多个区块链之间转移,从而分散了单一链的负荷。Tschorsch等[52]利用Two-way Peg机制实现交互式跨链资产转换,防止该过程中出现双花。Kiayias 等[53]利用NIPoPoW机制实现非交互式的跨链工作证明,并降低了跨链带来的区块冗余。分片(sharding)是指不同节点子集处理区块链的不同部分,从而减少每个节点的负载。ELASTICO[54]将交易集划分为不同分片,每个分片由不同的节点集合进行并行验证。OmniLedger[55]在前者的基础上优化节点随机选择及跨切片事务提交协议,从而提高了切片共识的安全性与正确性。区别于 OmniLedger,PolyShard[56]利用拉格朗日多项式编码分片为分片交互过程加入计算冗余,同时实现了可扩展性优化与安全保障。上述研究可视为链上处理模型在加密货币场景下的可扩展性优化方案。实际上,链下处理模型本身就是一种扩展性优化思路,闪电网络[57]通过状态通道对交易最终结果进行链上确认,从而在交易过程中实现高频次的链外支付。Plasma[58]在链下对区块链进行树形分支拓展,树形分支中的父节点完成子节点业务的确认,直到根节点与区块链进行最终确认。
一方面,沙盒环境承载了区块链节点运行条件,针对虚拟机展开的攻击更为直接;另一方面,智能合约直接对账本进行操作,其漏洞更易影响业务运行,因此控制层的安全防护研究成为热点。Luu等[59]分析了运行于EVM中的智能合约安全性,指出底层平台的分布式语义差异带来的安全问题。Brent 等[60]提出智能合约安全分析框架 Vandal,将EVM 字节码转换为语义逻辑关,为分析合约安全漏洞提供便利。Jiang 等[61]预先定义用于安全漏洞的特征,然后模拟执行大规模交易,通过分析日志中的合约行为实现漏洞检测。
4 技术选型分析
区别于其他技术,区块链发展过程中最显著的特点是与产业界紧密结合,伴随着加密货币和分布式应用的兴起,业界出现了许多区块链项目。这些项目是区块链技术的具体实现,既有相似之处又各具特点,本节将根据前文所述层次化结构对比特币、以太坊和超级账本Fabric项目进行分析,然后简要介绍其他代表性项目并归纳和对比各项目的技术选型及特点。
4.1 比特币
比特币是目前规模最大、影响范围最广的非许可链开源项目。图9为比特币项目以账本为核心的运行模式,也是所有非许可链项目的雏形。比特币网络为用户提供兑换和转账业务,该业务的价值流通媒介由账本确定的交易数据——比特币支撑。为了保持账本的稳定和数据的权威性,业务制定奖励机制,即账本为节点产生新的比特币或用户支付比特币,以此驱动节点共同维护账本。
图9
新窗口打开|
下载原图ZIP|
生成PPT
图9
比特币运行模式
比特币网络主要由2种节点构成:全节点和轻节点。全节点是功能完备的区块链节点,而轻节点不存储完整的账本数据,仅具备验证与转发功能。全节点也称为矿工节点,计算证明依据的过程被称为“挖矿”,目前全球拥有近 1 万个全节点;矿池则是依靠奖励分配策略将算力汇集起来的矿工群;除此之外,还有用于存储私钥和地址信息、发起交易的客户端(钱包)。
1) 网络层
比特币在网络层采用非结构化方式组网,路由表呈现随机性。节点间则采用多点传播方式传递数据,曾基于Gossip协议实现,为提高网络的抗匿名分析能力改为基于Diffusion协议实现[33]。节点利用一系列控制协议确保链路的可用性,包括版本获取(Vetsion/Verack)、地址获取(Addr/GetAddr)、心跳信息(PING/PONG)等。新节点入网时,首先向硬编码 DNS 节点(种子节点)请求初始节点列表;然后向初始节点随机请求它们路由表中的节点信息,以此生成自己的路由表;最后节点通过控制协议与这些节点建立连接,并根据信息交互的频率更新路由表中节点时间戳,从而保证路由表中的节点都是活动的。交互逻辑层为建立共识交互通道,提供了区块获取(GetBlock)、交易验证(MerkleBlock)、主链选择(CmpctBlock)等协议;轻节点只需要进行简单的区块头验证,因此通过头验证(GetHeader/Header)协议和连接层中的过滤设置协议指定需要验证的区块头即可建立简单验证通路。在安全机制方面,比特币网络可选择利用匿名通信网络Tor作为数据传输承载,通过沿路径的层层数据加密机制来保护对端身份。
2) 数据层
比特币数据层面的技术选型已经被广泛研究,使用UTXO信息模型记录交易数据,实现所有权的简单、有效证明,利用 MKT、散列函数和时间戳实现区块的高效验证并产生强关联性。在加密机制方面,比特币采用参数为Secp256k1的椭圆曲线数字签名算法(ECDSA,elliptic curve digital signature algorithm)生成用户的公私钥,钱包地址则由公钥经过双重散列、Base58Check 编码等步骤生成,提高了可读性。
3) 共识层
比特币采用 PoW 算法实现节点共识,该算法证明依据中的阈值设定可以改变计算难度。计算难度由每小时生成区块的平均块数决定,如果生成得太快,难度就会增加。该机制是为了应对硬件升级或关注提升引起的算力变化,保持证明依据始终有效。目前该阈值被设定为10 min产出一个区块。除此之外,比特币利用奖惩机制保证共识的可持续运行,主要包括转账手续费、挖矿奖励和矿池分配策略等。
4) 控制层
比特币最初采用链上处理模型,并将控制语句直接记录在交易中,使用自动化锁定/解锁脚本验证UTXO模型中的比特币所有权。由于可扩展性和确认时延的限制,比特币产生多个侧链项目如Liquid、RSK、Drivechain等,以及链下处理项目Lightning Network等,从而优化交易速度。
4.2 以太坊
以太坊是第一个以智能合约为基础的可编程非许可链开源平台项目,支持使用区块链网络构建分布式应用,包括金融、音乐、游戏等类型;当满足某些条件时,这些应用将触发智能合约与区块链网络产生交互,以此实现其网络和存储功能,更重要的是衍生出更多场景应用和价值产物,例如以太猫,利用唯一标识为虚拟猫赋予价值;GitCoin,众筹软件开发平台等。
1) 网络层
以太坊底层对等网络协议簇称为DEVP2P,除了满足区块链网络功能外,还满足与以太坊相关联的任何联网应用程序的需求。DEVP2P将节点公钥作为标识,采用 Kademlia 算法计算节点的异或距离,从而实现结构化组网。DEVP2P主要由3种协议组成:节点发现协议RLPx、基础通信协议Wire和扩展协议Wire-Sub。节点间基于Gossip实现多点传播;新节点加入时首先向硬编码引导节点(bootstrap node)发送入网请求;然后引导节点根据Kademlia 算法计算与新节点逻辑距离最近的节点列表并返回;最后新节点向列表中节点发出握手请求,包括网络版本号、节点ID、监听端口等,与这些节点建立连接后则使用Ping/Pong机制保持连接。Wire子协议构建了交易获取、区块同步、共识交互等逻辑通路,与比特币类似,以太坊也为轻量级钱包客户端设计了简易以太坊协议(LES,light ethereum subprotocol)及其变体PIP。安全方面,节点在RLPx协议建立连接的过程中采用椭圆曲线集成加密方案(ECIES)生成公私钥,用于传输共享对称密钥,之后节点通过共享密钥加密承载数据以实现数据传输保护。
2) 数据层
以太坊通过散列函数维持区块的关联性,采用MPT实现账户状态的高效验证。基于账户的信息模型记录了用户的余额及其他 ERC 标准信息,其账户类型主要分为2类:外部账户和合约账户;外部账户用于发起交易和创建合约,合约账户用于在合约执行过程中创建交易。用户公私钥的生成与比特币相同,但是公钥经过散列算法Keccak-256计算后取20 B作为外部账户地址。
3) 共识层
以太坊采用 PoW 共识,将阈值设定为 15 s产出一个区块,计划在未来采用PoS或Casper共识协议。较低的计算难度将导致频繁产生分支链,因此以太坊采用独有的奖惩机制——GHOST 协议,以提高矿工的共识积极性。具体而言,区块中的散列值被分为父块散列和叔块散列,父块散列指向前继区块,叔块散列则指向父块的前继。新区块产生时,GHOST 根据前 7 代区块的父/叔散列值计算矿工奖励,一定程度弥补了分支链被抛弃时浪费的算力。
4) 控制层
每个以太坊节点都拥有沙盒环境 EVM,用于执行Solidity语言编写的智能合约;Solidity语言是图灵完备的,允许用户方便地定义自己的业务逻辑,这也是众多分布式应用得以开发的前提。为优化可扩展性,以太坊拥有侧链项目 Loom、链下计算项目Plasma,而分片技术已于2018年加入以太坊源码。
4.3 超级账本Fabric
超级账本是Linux基金会旗下的开源区块链项目,旨在提供跨行业区块链解决方案。Fabric 是超级账本子项目之一,也是影响最广的企业级可编程许可链项目;在已知的解决方案中,Fabric 被应用于供应链、医疗和金融服务等多种场景。
1) 网络层
Fabric 网络以组织为单位构建节点集群,采用混合式对等网络组网;每个组织中包括普通节点和锚节点(anchor peer),普通节点完成组织内的消息路由,锚节点负责跨组织的节点发现与消息路由。Fabric网络传播层基于Gossip实现,需要使用配置文件初始化网络,网络生成后各节点将定期广播存活信息,其余节点根据该信息更新路由表以保持连接。交互逻辑层采用多通道机制,即相同通道内的节点才能进行状态信息交互和区块同步。Fabric 为许可链,因此在网络层采取严苛的安全机制:节点被颁发证书及密钥对,产生PKI-ID进行身份验证;可选用 TLS 双向加密通信;基于多通道的业务隔离;可定义策略指定通道内的某些节点对等传输私有数据。
2) 数据层
Fabric的区块中记录读写集(read-write set)描述交易执行时的读写过程。该读写集用于更新状态数据库,而状态数据库记录了键、版本和值组成的键值对,因此属于键值对信息模型。一方面,散列函数和 MerkleTree 被用作高效关联结构的实现技术;另一方面,节点还需根据键值验证状态数据库与读写集中的最新版本是否一致。许可链场景对匿名性的要求较低,但对业务数据的隐私性要求较高,因此Fabric 1.2版本开始提供私有数据集(PDC,private data collection)功能。
3) 共识层
Fabric在0.6版本前采用PBFT 共识协议,但是为了提高交易吞吐量,Fabric 1.0 选择降低安全性,将共识过程分解为排序和验证2种服务,排序服务采用CFT类协议Kafka、Raft(v1.4之后)完成,而验证服务进一步分解为读写集验证与多签名验证,最大程度提高了共识速度。由于Fabric针对许可链场景,参与方往往身份可知且具有相同的合作意图,因此规避了节点怠工与作恶的假设,不需要奖惩机制调节。
4) 控制层
Fabric 对于扩展性优化需求较少,主要得益于共识层的优化与许可链本身参与节点较少的前提,因此主要采用链上处理模型,方便业务数据的存取;而 PDC 中仅将私有数据散列值上链的方式则属于链下处理模型,智能合约可以在本地进行数据存取。Fabric 节点采用模块化设计,基于 Docker构建模块执行环境;智能合约在Fabric中被称为链码,使用GO、Javascript和Java语言编写,也是图灵完备的。
4.4 其他项目
除了上述3种区块链基础项目外,产业界还有许多具有代表性的项目,如表1所示。
5 区块链应用研究
区块链技术有助于降低金融机构间的审计成本,显著提高支付业务的处理速度及效率,可应用于跨境支付等金融场景。除此之外,区块链还应用于产权保护、信用体系建设、教育生态优化、食品安全监管、网络安全保障等非金融场景。
根据这些场景的应用方式以及区块链技术特点,可将区块链特性概括为如下几点。1) 去中心化。节点基于对等网络建立通信和信任背书,单一节点的破坏不会对全局产生影响。2) 不可篡改。账本由全体节点维护,群体协作的共识过程和强关联的数据结构保证节点数据一致且基本无法被篡改,进一步使数据可验证和追溯。3) 公开透明。除私有数据外,链上数据对每个节点公开,便于验证数据的存在性和真实性。4) 匿名性。多种隐私保护机制使用户身份得以隐匿,即便如此也能建立信任基础。5) 合约自治。预先定义的业务逻辑使节点可以基于高可信的账本数据实现自治,在人-人、人-机、机-机交互间自动化执行业务。
鉴于上述领域的应用在以往研究中均有详细描述,本文将主要介绍区块链在智慧城市、边缘计算和人工智能领域的前沿应用研究现状。
表1
表1
代表性区块链项目
技术选型CordaQuorumLibraBlockstackFilecoinZcash控制合约Kotlin,JavaGOMoveClarity非图灵完备非图灵完备非图灵完备执行环境JVMEVMMVM源码编译源码编译源码编译处理模型链上链上/链下(私有数据)链上链下(虚拟链)链下(IPFS)链上奖惩机制——Libra coinsStacks tokenFilecoinZcash/Turnstiles共识算法Notary 机制/RAFT,BFT-SMaRtQuorum-Chain,RAFTLibraBFTTunable Proofs,proof-of-burnPoRep,PoETPoW信息模型UTXO基于账户基于账户基于账户基于账户UTXO关联验证结构散列算法MKT散列算法MPT散列算法MKT散列算法Merklized Adaptive Radix Forest (MARF)散列算法MKT散列算法MKT加密机制Tear-offs机制、混合密钥基于EnclaveSHA3-256/EdDSA基于Gaia/Blockstack AuthSECP256K1/BLSzk-SNARK组网方式混合型结构化混合型无结构结构化/无结构无结构通信机制AMQP1.0/单点传播Wire/GossipNoise-ProtocolFramework/GossipAtlas/GossipLibp2p/GossipBitcoin-Core/Gossip安全机制Corda加密套件/TLS证书/HTTPSDiffie-HellmanSecure BackboneTLSTor区块链类型许可链许可链许可链非许可链非许可链非许可链特点只允许对实际参与给定交易的各方进行信息访问和验证功能基于以太坊网络提供公共交易和私有交易2种交互渠道稳定、快速的交易网络剔除中心服务商的、可扩展的分布式数据存储设施,旨在保护隐私数据激励机制驱动的存储资源共享生态基于比特币网络提供零知识证明的隐私保护应用场景金融业务平台分布式应用加密货币互联网基础设施文件存储与共享加密货币
新窗口打开|
下载CSV
5.1 智慧城市
智慧城市是指利用 ICT 优化公共资源利用效果、提高居民生活质量、丰富设施信息化能力的研究领域,该领域包括个人信息管理、智慧医疗、智慧交通、供应链管理等具体场景。智慧城市强调居民、设施等各类数据的采集、分析与使能,数据可靠性、管理透明化、共享可激励等需求为智慧城市带来了许多技术挑战。区块链去中心化的交互方式避免了单点故障、提升管理公平性,公开透明的账本保证数据可靠及可追溯性,多种匿名机制利于居民隐私的保护,因此区块链有利于问题的解决。Hashemi等[62]将区块链用于权限数据存储,构建去中心化的个人数据接入控制模型;Bao等[63]利用区块链高效认证和管理用户标识,保护车主的身份、位置、车辆信息等个人数据。
5.2 边缘计算
边缘计算是一种将计算、存储、网络资源从云平台迁移到网络边缘的分布式信息服务架构,试图将传统移动通信网、互联网和物联网等业务进行深度融合,减少业务交付的端到端时延,提升用户体验。安全问题是边缘计算面临的一大技术挑战,一方面,边缘计算的层次结构中利用大量异构终端设备提供用户服务,这些设备可能产生恶意行为;另一方面,服务迁移过程中的数据完整性和真实性需要得到保障。区块链在这种复杂的工作环境和开放的服务架构中能起到较大作用。首先,区块链能够在边缘计算底层松散的设备网络中构建不可篡改的账本,提供设备身份和服务数据验证的依据。其次,设备能在智能合约的帮助下实现高度自治,为边缘计算提供设备可信互操作基础。Samaniego等[64]提出了一种基于区块链的虚拟物联网资源迁移架构,通过区块链共享资源数据从而保障安全性。Stanciu[65]结合软件定义网络(SDN)、雾计算和区块链技术提出分布式安全云架构,解决雾节点中SDN控制器流表策略的安全分发问题。Ziegler等[66]基于 Plasma 框架提出雾计算场景下的区块链可扩展应用方案,提升雾计算网关的安全性。
5.3 人工智能
人工智能是一类智能代理的研究,使机器感知环境/信息,然后进行正确的行为决策,正确是指达成人类预定的某些目标。人工智能的关键在于算法,而大部分机器学习和深度学习算法建立于体积庞大的数据集和中心化的训练模型之上,该方式易受攻击或恶意操作使数据遭到篡改,其后果为模型的不可信与算力的浪费。此外,数据采集过程中无法确保下游设备的安全性,无法保证数据来源的真实性与完整性,其后果将在自动驾驶等场景中被放大。区块链不可篡改的特性可以实现感知和训练过程的可信。另外,去中心化和合约自治特性为人工智能训练工作的分解和下放奠定了基础,保障安全的基础上提高计算效率。Kim等[67]利用区块链验证联合学习框架下的分发模型的完整性,并根据计算成本提供相应的激励,优化整体学习效果。Bravo-Marquez 等[68]提出共识机制“学习证明”以减轻PoX类共识的计算浪费,构建公共可验证的学习模型和实验数据库。
6 技术挑战与研究展望
6.1 层次优化与深度融合
区块链存在“三元悖论”——安全性、扩展性和去中心化三者不可兼得,只能依靠牺牲一方的效果来满足另外两方的需求。以比特币为代表的公链具有较高的安全性和完全去中心化的特点,但是资源浪费等问题成为拓展性优化的瓶颈。尽管先后出现了PoS、BFT等共识协议优化方案,或侧链、分片等链上处理模型,或Plasma、闪电网络等链下扩展方案,皆是以部分安全性或去中心化为代价的。因此,如何将区块链更好地推向实际应用很大程度取决于三元悖论的解决,其中主要有2种思路。
1) 层次优化
区块链层次化结构中每层都不同程度地影响上述3种特性,例如网络时延、并行读写效率、共识速度和效果、链上/链下模型交互机制的安全性等,对区块链的优化应当从整体考虑,而不是单一层次。
网络层主要缺陷在于安全性,可拓展性则有待优化。如何防御以 BGP 劫持为代表的网络攻击将成为区块链底层网络的安全研究方向[19]。信息中心网络将重塑区块链基础传输网络,通过请求聚合和数据缓存减少网内冗余流量并加速通信传输[69]。相比于数据层和共识层,区块链网络的关注度较低,但却是影响安全性、可拓展性的基本因素。
数据层的优化空间在于高效性,主要为设计新的数据验证结构与算法。该方向可以借鉴计算机研究领域的多种数据结构理论与复杂度优化方法,寻找适合区块链计算方式的结构,甚至设计新的数据关联结构。实际上相当一部分项目借鉴链式结构的思想开辟新的道路,例如压缩区块空间的隔离见证、有向无环图(DAG)中并行关联的纠缠结构(Tangle),或者Libra项目采用的状态树。
共识机制是目前研究的热点,也是同时影响三元特性的最难均衡的层次。PoW牺牲可拓展性获得完全去中心化和安全性,PoS高效的出块方式具备可扩展性但产生了分叉问题,POA结合两者做到了3种特性的均衡。以此为切入的Hybrid类共识配合奖惩机制的机动调节取得了较好效果,成为共识研究的过渡手段,但是如何做到三元悖论的真正突破还有待研究。
控制层面是目前可扩展性研究的热点,其优势在于不需要改变底层的基础实现,能够在短期内应用,集中在产业界的区块链项目中。侧链具有较好的灵活性但操作复杂度高,分片改进了账本结构但跨分片交互的安全问题始终存在,而链下处理模型在安全方面缺少理论分析的支撑。因此,三元悖论的解决在控制层面具有广泛的研究前景。
2) 深度融合
如果将层次优化称为横向优化,那么深度融合即为根据场景需求而进行的纵向优化。一方面,不同场景的三元需求并不相同,例如接入控制不要求完全去中心化,可扩展性也未遇到瓶颈,因此可采用BFT类算法在小范围构建联盟链。另一方面,区块链应用研究从简单的数据上链转变为链下存储、链上验证,共识算法从 PoW 转变为场景结合的服务证明和学习证明,此外,结合 5G 和边缘计算可将网络和计算功能移至网络边缘,节约终端资源。这意味着在严格的场景建模下,区块链的层次技术选型将与场景特点交叉创新、深度融合,具有较为广阔的研究前景。
6.2 隐私保护
加密货币以匿名性著称,但是区块链以非对称加密为基础的匿名体系不断受到挑战。反匿名攻击从身份的解密转变为行为的聚类分析,不仅包括网络流量的IP聚类,还包括交易数据的地址聚类、交易行为的启发式模型学习,因此大数据分析技术的发展使区块链隐私保护思路发生转变。已有Tor网络、混币技术、零知识证明、同态加密以及各类复杂度更高的非对称加密算法被提出,但是各方法仍有局限,未来将需要更为高效的方法。此外,随着区块链系统的可编程化发展,内部复杂性将越来越高,特别是智能合约需要更严格、有效的代码检测方法,例如匿名性检测、隐私威胁预警等。
6.3 工业区块链
工业区块链是指利用区块链夯实工业互联网中数据的流通和管控基础、促进价值转换的应用场景,具有较大的研究前景。
工业互联网是面向制造业数字化、网络化、智能化需求,构建基于海量数据采集、汇聚、分析的服务体系,支撑制造资源泛在连接、弹性供给、高效配置的重要基础设施。“工业互联网平台”是工业互联网的核心,通过全面感知、实时分析、科学决策、精准执行的逻辑闭环,实现工业全要素、全产业链、全价值链的全面贯通,培育新的模式和业态。
可以看到,工业互联网与物联网、智慧城市、消费互联网等场景应用存在内在关联,例如泛在连接、数据共享和分析、电子商务等,那么其学术问题与技术实现必然存在关联性。区块链解决了物联网中心管控架构的单点故障问题,克服泛在感知设备数据的安全性和隐私性挑战,为智慧城市场景的数据共享、接入控制等问题提供解决方法,为激励资源共享构建了新型互联网价值生态。尽管工业互联网作为新型的产业生态系统,其技术体系更复杂、内涵更丰富,但是不难想象,区块链同样有利于工业互联网的发展。
“平台+区块链”能够通过分布式数据管理模式,降低数据存储、处理、使用的管理成本,为工业用户在工业 APP 选择和使用方面搭建起更加可信的环境,实现身份认证及操作行为追溯、数据安全存储与可靠传递。能够通过产品设计参数、质量检测结果、订单信息等数据“上链”,实现有效的供应链全要素追溯与协同服务。能够促进平台间数据交易与业务协同,实现跨平台交易结算,带动平台间的数据共享与知识复用,促进工业互联网平台间互联互通。
当然,工业是关乎国计民生的产业,将区块链去中心化、匿名化等特性直接用于工业互联网是不可取的,因此需要研究工业区块链管理框架,实现区块链的可管可控,在一定范围内发挥其安全优势,并对工业互联网的运转提供正向激励。
7 结束语
区块链基于多类技术研究的成果,以低成本解决了多组织参与的复杂生产环境中的信任构建和隐私保护等问题,在金融、教育、娱乐、版权保护等场景得到了较多应用,成为学术界的研究热点。比特币的出现重塑了人们对价值的定义,伴随着产业界的呼声,区块链技术得到了快速发展,而遵循区块链层次化分析方法,能够直观地区别各项目的技术路线和特点,为优化区块链技术提供不同观察视角,并为场景应用的深度融合创造条件,促进后续研究。未来的发展中,区块链将成为更为基础的信任支撑技术,在产业互联网等更广阔的领域健康、有序地发展。
The authors have declared that no competing interests exist.
作者已声明无竞争性利益关系。
参考文献
View Option
原文顺序
文献年度倒序
文中引用次数倒序
被引期刊影响因子
[1]
袁勇, 王飞跃 . 区块链技术发展现状与展望[J]. 自动化学报, 2016,42(4): 481-494.
[本文引用: 1]
YUAN Y , WANG F Y . Blockchain:the state of the art and future trends[J]. Acta Automatica Sinica, 2016,42(4): 481-494.
[本文引用: 1]
[2]
邵奇峰, 张召, 朱燕超 ,等. 企业级区块链技术综述[J]. 软件学报, 2019,30(9): 2571-2592.
[本文引用: 1]
SHAO Q F , ZHANG Z , ZHU Y C ,et al. Survey of enterprise blockchains[J]. 2019,30(9): 2571-2592.
[本文引用: 1]
[3]
YANG W , AGHASIAN E , GARG S ,et al. A survey on blockchain-based internet service architecture:requirements,challenges,trends,and future[J]. IEEE Access, 2019,7: 75845-75872.
[本文引用: 1]
[4]
韩璇, 袁勇, 王飞跃 . 区块链安全问题:研究现状与展望[J]. 自动化学报, 2019,45(1): 208-227.
[本文引用: 1]
HAN X , YUAN Y , WANG F Y . Security problems on blockchain:the state of the art and future trends[J]. Acta Automatica Sinica, 2016,45(1): 208-227.
[本文引用: 1]
[5]
ALI M , VECCHIO M , PINCHEIRA M ,et al. Applications of blockchains in the Internet of things:a comprehensive survey[J]. IEEE Communications Surveys & Tutorials, 2019,21: 1676-1717.
[本文引用: 1]
[6]
CHAUM D . Blind signature system[M]. Advances in Cryptology: Proceedings of Crypto 83.Springer USPress, 1984.
[本文引用: 1]
[7]
LAW L , SABEET S , SOLINAS J . How to make a mint:the cryptography of anonymous electronic cash[J]. The American University Law Review, 1997,46: 1131-1162.
[本文引用: 1]
[8]
JAKOBSSON M , JUELS A . Proofs of work and bread pudding protocols[C]// IFIP TC6/TC11 Joint Working Conference on Communications and Multimedia Security. IFIP, 1999: 258-272.
[本文引用: 1]
[9]
王学龙, 张璟 . P2P 关键技术研究综述[J]. 计算机应用研究, 2010,27(3): 801-805.
[本文引用: 1]
WANG X L , ZHANG J . Survey on peer-to-peer key technologies[J]. Application Research of Computers, 2010,27(3): 801-805.
[本文引用: 1]
[10]
DEMERS A , GREENE D , HOUSER C ,et al. Epidemic algorithms for replicated database maintenance[J]. ACM SIGOPS Operating Systems Review, 1988,22: 8-32.
[本文引用: 1]
[11]
DECKER C , WATTENHOFER R . Information propagation in the bitcoin network[C]// IEEE Thirteenth International Conference on Peer-to-peer Computing. IEEE, 2013: 1-10.
[本文引用: 1]
[12]
FADHIL M , OWENSON G , ADDA M . Locality based approach to improve propagation delay on the bitcoin peer-to-peer network[C]// 2017 IFIP/IEEE Symposium on Integrated Network and Service Management (IM). IEEE, 2017: 556-559.
[本文引用: 1]
[13]
KANEKO Y , ASAKA T . DHT clustering for load balancing considering blockchain data size[C]// 2018 Sixth International Symposium on Computing and Networking Workshops (CANDARW). IEEE Computer Society, 2018: 71-74.
[本文引用: 1]
[14]
KOSHY P , KOSHY D , MCDANIEL P . An analysis of anonymity in bitcoin using P2P network traffic[C]// Financial Cryptography and Data Security:18th International Conference. Springer, 2014: 469-485.
[15]
BIRYUKOV A , KHOVRATOVICH D , PUSTOGAROV I . Deanonymisation of clients in bitcoin P2P network[C]// ACM SIGSAC Conference on Computer and Communications Security. ACM, 2014: 15-29.
[16]
VENKATAKRISHNAN S B , FANTI G , VISWANATH P . Dandelion:redesigning the bitcoin network for anonymity[C]// The 2017 ACM SIGMETRICS. ACM, 2017:57.
[本文引用: 1]
[17]
FANTI G , VENKATAKRISHNAN S B , BAKSHI S ,et al. Dandelion++:lightweight cryptocurrency networking with formal anonymity guarantees[J]. ACM SIGMETRICS Performance Evaluation Review, 2018,46: 5-7.
[本文引用: 1]
[18]
HEILMAN E , KENDLER A , ZOHAR A ,et al. Eclipse attacks on Bitcoin’s peer-to-peer network[C]// USENIX Conference on Security Symposium. USENIX Association, 2015: 129-144.
[本文引用: 1]
[19]
APOSTOLAKI M , ZOHAR A , VANBEVER L . Hijacking bitcoin:routing attacks on cryptocurrencies[C]// 2017 IEEE Symposium on Security and Privacy (SP). IEEE, 2017: 375-392.
[本文引用: 2]
[20]
REYZIN L , IVANOV S . Improving authenticated dynamic dictionaries,with applications to cryptocurrencies[C]// International Conference on Financial Cryptography & Data Security. Springer, 2017: 376-392.
[本文引用: 1]
[21]
ZHANG C , XU C , XU J L ,et al. GEM^2-tree:a gas-efficient structure for authenticated range queries in blockchain[C]// IEEE 35th International Conference on Data Engineering (ICDE). IEEE, 2019: 842-853.
[本文引用: 1]
[22]
REID F , HARRIGAN M . An analysis of anonymity in the bitcoin system[C]// 2011 IEEE Third International Conference on Privacy,Security,Risk and Trust. IEEE, 2011: 1318-1326.
[本文引用: 1]
[23]
MEIKLEJOHN S , POMAROLE M , JORDAN G ,et al. A fistful of bitcoins:characterizing payments among men with no names[C]// The 2013 Conference on Internet Measurement Conference. ACM, 2013: 127-140.
[本文引用: 1]
[24]
AWAN M K , CORTESI A . Blockchain transaction analysis using dominant sets[C]// IFIP International Conference on Computer Information Systems and Industrial Management. IFIP, 2017: 229-239.
[本文引用: 1]
[25]
SAXENA A , MISRA J , DHAR A . Increasing anonymity in bitcoin[C]// International Conference on Financial Cryptography and Data Security. Springer, 2014: 122-139.
[本文引用: 1]
[26]
MIERS I , GARMAN C , GREEN M ,et al. Zerocoin:anonymous distributed e-cash from bitcoin[C]// 2013 IEEE Symposium on Security and Privacy. IEEE, 2013: 397-411.
[本文引用: 1]
[27]
SASSON E B , CHIESA A , GARMAN C ,et al. Zerocash:decentralized anonymous payments from bitcoin[C]// 2014 IEEE Symposium on Security and Privacy (SP). IEEE, 2014: 459-474.
[本文引用: 1]
[28]
YIN W , WEN Q , LI W ,et al. A anti-quantum transaction authentication approach in blockchain[J]. IEEE Access, 2018,6: 5393-5401.
[本文引用: 1]
[29]
DOUCEUR J R , . The sybil attack[C]// The First International Workshop on Peer-to-Peer Systems(IPTPS’ 01). Springer, 2002: 251-260.
[本文引用: 1]
[30]
KARAME G O , ANDROULAKI E , CAPKUN S . Double-spending fast payments in bitcoin[C]// The 2012 ACM conference on Computer and communications security. ACM, 2012: 906-917.
[本文引用: 1]
[31]
LAMPORT L , SHOSTAK R , PEASE M . The byzantine generals problem[J]. ACM Transactions on Programming Languages and Systems, 1982,4: 382-401.
[本文引用: 1]
[32]
BANO S , SONNINO A , AL-BASSAM M ,et al. Consensus in the age of blockchains[J]..03936,2017. arXiv Preprint,arXiv:1711.03936,2017.
[本文引用: 1]
[33]
DWORK C , LYNCH N , STOCKMEYER L . Consensus in the presence of partial synchrony[J]. Journal of the ACM, 1988,35: 288-323.
[本文引用: 2]
[34]
TSCHORSCH F , SCHEUERMANN B . Bitcoin and beyond:a technical survey on decentralized digital currencies[J]. IEEE Communications Surveys & Tutorials, 2016,18: 2084-2123.
[本文引用: 1]
[35]
CACHIN C VUKOLIĆ M . Blockchains consensus protocols in the wild[J]. arXiv Preprint,arXiv:1707.01873, 2017.
[本文引用: 1]
[36]
CASTRO M , LISKOV B . Practical byzantine fault tolerance and proactive recovery[J]. ACM Transactions on Computer Systems, 2002,20: 398-461.
[本文引用: 1]
[37]
ONGARO D , OUSTERHOUT J . In search of an understandable consensus algorithm[C]// The 2014 USENIX Conference on USENIX Annual Technical Conference. USENIX Association, 2015: 305-320.
[本文引用: 1]
[38]
BALL M , ROSEN A , SABIN M ,et al. Proofs of useful work[R]. Cryptology ePrint Archive:Report 2017/203.
[本文引用: 1]
[39]
MIHALJEVIC B , ZAGAR M . Comparative analysis of blockchain consensus algorithms[C]// International Convention on Information and Communication Technology,Electronics and Microelectronics (MIPRO). IEEE, 2018: 1545-1550.
[本文引用: 1]
[40]
KIAYIAS A , RUSSELL A , DAVID B ,et al. Ouroboros:a provably secure proof-of-stake blockchain protocol[C]// Advances in Cryptology - CRYPTO 2017. Springer, 2017: 357-388.
[本文引用: 1]
[41]
FISCH B . Tight proofs of space and replication[J].,ePrint-2018-702. IACR Cryptology ePrint Archive,ePrint-2018-702.
[本文引用: 1]
[42]
BELOTTI M , BOŽIĆ N , PUJOLLE G ,et al. A vademecum on blockchain technologies:when,which,and how[J]. IEEE Communications Surveys & Tutorials, 2019,21: 3796-3838.
[本文引用: 1]
[43]
WANG W B , HOANG D T , HU P Z ,et al. A survey on consensus mechanisms and mining strategy management in blockchain networks[J]. IEEE Access, 2019,7: 22328-22370.
[本文引用: 1]
[44]
YOO J H , JUNG Y L , SHIN D H ,et al. Formal modeling and verification of a federated byzantine agreement algorithm for blockchain platforms[C]// IEEE International Workshop on Blockchain Oriented Software Engineering. 2019: 11-21.
[本文引用: 1]
[45]
ZHENG Z B , XIE S , DAI H ,et al. An overview of blockchain technology:architecture,consensus,and future trends[C]// 6th IEEE International Congress on Big Data. IEEE, 2017: 557-564.
[本文引用: 1]
[46]
YIN M , MALKHI D , REITER M K ,et al. HotStuff:BFT consensus in the lens of blockchain[C]// ACM Symposium on Principles of Distributed Computing. ACM, 2019: 347-356.
[本文引用: 1]
[47]
ALI S , WANG G , WHITE B ,et al. Libra critique towards global decentralized financial system[C]// Communications in Computer and Information Science. Springer, 2019: 661-672.
[本文引用: 1]
[48]
BENTOV I , LEE C , MIZRAHI A ,et al. Proof of activity:extending bitcoin’s proof of work via proof of stake[J]. IACR Cryptology ePrint Archive,ePrint-2014-25478.
[本文引用: 1]
[49]
DECKER C , SEIDEL J , WATTENHOFER R . Bitcoin meets strong consistency[J].,2014. arXiv Preprint,arXiv:1412.7935,2014.
[本文引用: 1]
[50]
KOKORIS-KOGIAS E , JOVANOVIC P , GAILLY N ,et al. Enhancing bitcoin security and performance with strong consistency via collective signing[J]. Applied Mathematical Modelling, 2016,37: 5723-5742.
[本文引用: 1]
[51]
BUTERIN V , GRIFFITH V . Casper the friendly finality gadget[J]. arXiv Preprint,arXiv:1710.09437,2017.
[本文引用: 1]
[52]
TSCHORSCH F , SCHEUERMANN B . Bitcoin and beyond:a technical survey on decentralized digital currencies[J]. IEEE Communications Surveys & Tutorials, 2016,18: 2084-2023,2017.
[本文引用: 1]
[53]
KIAYIAS A , MILLER A , ZINDROS D . Non-interactive proofs of proof-of-work[J]. IACR Cryptology ePrint Archive,ePrint-2017-963.
[本文引用: 1]
[54]
LUU L , NARAYANAN V , ZHENG C ,et al. A secure sharding protocol for open blockchains[C]// The 2016 ACM SIGSAC Conference on Computer and Communications Security(CCS’16). ACM, 2016: 17-30.
[本文引用: 1]
[55]
KOKORIS-KOGIAS E , JOVANOVIC P , GASSER L ,et al. OmniLedger:a secure,scale-out,decentralized ledger via sharding[C]// IEEE Symposium on Security and Privacy (SP). IEEE Computer Society, 2018: 583-598.
[本文引用: 1]
[56]
LI S , YU M , AVESTIMEHR S ,et al. PolyShard:coded sharding achieves linearly scaling efficiency and security simultaneously[J]. arXiv Preprint,arXiv:1809.10361,2018.
[本文引用: 1]
[57]
XIE J F , YU F R , HUANG T ,et al. A survey on the scalability of blockchain systems[J]. IEEE Network, 2019,33: 166-173.
[本文引用: 1]
[58]
BURCHERT C , DECKER C , WATTENHOFER R . Scalable funding of bitcoin micropayment channel networks[C]// Stabilization,Safety,and Security of Distributed Systems. Springer, 2017: 361-377.
[本文引用: 1]
[59]
LUU L , CHU D , OLICKEL H ,et al. Making smart contracts smarter[C]// The 2016 ACM SIGSAC Conference on Computer and Communications Security. ACM, 2016: 254-269.
[本文引用: 1]
[60]
BRENT L , JURISEVIC A , KONG M ,et al. Vandal:a scalable security analysis framework for smart contracts[J]. arXiv Preprint,arXiv:1809.039812018.
[本文引用: 1]
[61]
JIANG B , LIU Y , CHAN W K . ContractFuzzer:fuzzing smart contracts for vulnerability detection[J]. arXiv Preprint,arXiv:1807.03932,2018.
[本文引用: 1]
[62]
HASHEMI S H , FAGHRI F , CAMPBELL R H . Decentralized user-centric access control using pubsub over blockchain[J]. arXiv Preprint,arXiv:1710.00110,2017.
[本文引用: 1]
[63]
BAO S.CAO Y , LEI A ,et al. Pseudonym management through blockchain:cost-efficient privacy preservation on intelligent transportation systems[J]. IEEE Access, 2019,7: 80390-80403.
[本文引用: 1]
[64]
SAMANIEGO M , DETERS R . Hosting virtual IoT resources on edge-hosts with blockchain[C]// IEEE International Conference on Computer & Information Technology. IEEE, 2016: 116-119.
[本文引用: 1]
[65]
STANCIU A , . Blockchain based distributed control system for edge computing[C]// International Conference on Control Systems &Computer Science. IEEE, 2017: 667-671.
[本文引用: 1]
[66]
ZIEGLER M H , GROMANN M , KRIEGER U R . Integration of fog computing and blockchain technology using the plasma framework[C]// 2019 IEEE International Conference on Blockchain and Cryptocurrency (ICBC). IEEE, 2019: 120-123.
[本文引用: 1]
[67]
KIM H , PARK J , BENNIS M ,et al. Blockchained on-device federated learning[J]. arXiv Preprint,arXiv:1808.03949, 2018.
[本文引用: 1]
[68]
BRAVO-MARQUEZ F , REEVES S , UGARTE M . Proof-of- learning:a blockchain consensus mechanism based on machine learning competitions[C]// 2019 IEEE International Conference on Decentralized Applications and Infrastructures. IEEE, 2019: 119-124.
[本文引用: 1]
[69]
刘江, 霍如, 李诚成 ,等. 基于命名数据网络的区块链信息传输机制[J]. 通信学报, 2018,39(1), 24-33.
[本文引用: 1]
LIU J , HUO R , LI C C ,et al. Information transmission mechanism of Blockchain technology based on named-data networking[J]. Journal on Communications, 2018,39(1): 24-33.
[本文引用: 1]
区块链技术发展现状与展望
1
2016
... 区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值.袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势.上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析.本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望. ...
区块链技术发展现状与展望
1
2016
... 区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值.袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势.上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析.本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望. ...
企业级区块链技术综述
1
2019
... 区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值.袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势.上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析.本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望. ...
企业级区块链技术综述
1
2019
... 区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值.袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势.上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析.本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望. ...
A survey on blockchain-based internet service architecture:requirements,challenges,trends,and future
1
2019
... 区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值.袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势.上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析.本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望. ...
区块链安全问题:研究现状与展望
1
2016
... 区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值.袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势.上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析.本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望. ...
区块链安全问题:研究现状与展望
1
2016
... 区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值.袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势.上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析.本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望. ...
Applications of blockchains in the Internet of things:a comprehensive survey
1
2019
... 区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值.袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势.上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析.本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望. ...
Blind signature system
1
1984
... 加密货币的概念起源于一种基于盲签名(blind signature)的匿名交易技术[6],最早的加密货币交易模型“electronic cash”[7]如图1所示. ...
How to make a mint:the cryptography of anonymous electronic cash
1
1997
... 加密货币的概念起源于一种基于盲签名(blind signature)的匿名交易技术[6],最早的加密货币交易模型“electronic cash”[7]如图1所示. ...
Proofs of work and bread pudding protocols
1
1999
... 最早的加密货币构想将银行作为构建信任的基础,呈现中心化特点.此后,加密货币朝着去中心化方向发展,并试图用工作量证明(PoW,poof of work)[8]或其改进方法定义价值.比特币在此基础上,采用新型分布式账本技术保证被所有节点维护的数据不可篡改,从而成功构建信任基础,成为真正意义上的去中心化加密货币.区块链从去中心化加密货币发展而来,随着区块链的进一步发展,去中心化加密货币已经成为区块链的主要应用之一. ...
P2P 关键技术研究综述
1
2010
... 对等网络的体系架构可分为无结构对等网络、结构化对等网络和混合式对等网络[9],根据节点的逻辑拓扑关系,区块链网络的组网结构也可以划分为上述3种,如图3所示. ...
P2P 关键技术研究综述
1
2010
... 对等网络的体系架构可分为无结构对等网络、结构化对等网络和混合式对等网络[9],根据节点的逻辑拓扑关系,区块链网络的组网结构也可以划分为上述3种,如图3所示. ...
Epidemic algorithms for replicated database maintenance
1
1988
... 传播层实现对等节点间数据的基本传输,包括2 种数据传播方式:单点传播和多点传播.单点传播是指数据在2个已知节点间直接进行传输而不经过其他节点转发的传播方式;多点传播是指接收数据的节点通过广播向邻近节点进行数据转发的传播方式,区块链网络普遍基于Gossip协议[10]实现洪泛传播.连接层用于获取节点信息,监测和改变节点间连通状态,确保节点间链路的可用性(availability).具体而言,连接层协议帮助新加入节点获取路由表数据,通过定时心跳监测为节点保持稳定连接,在邻居节点失效等情况下为节点关闭连接等.交互逻辑层是区块链网络的核心,从主要流程上看,该层协议承载对等节点间账本数据的同步、交易和区块数据的传输、数据校验结果的反馈等信息交互逻辑,除此之外,还为节点选举、共识算法实施等复杂操作和扩展应用提供消息通路. ...
Information propagation in the bitcoin network
1
2013
... 随着近年来区块链网络的爆炸式发展以及开源特点,学术界开始关注大型公有链项目的网络状况,监测并研究它们的特点,研究对象主要为比特币网络.Decker等[11]设计和实现测量工具,分析传播时延数据、协议数据和地址数据,建模分析影响比特币网络性能的网络层因素,基于此提出各自的优化方法.Fadhil等[12]提出基于事件仿真的比特币网络仿真模型,利用真实测量数据验证模型的有效性,最后提出优化机制 BCBSN,旨在设立超级节点降低网络波动.Kaneko 等[13]将区块链节点分为共识节点和验证节点,其中共识节点采用无结构组网方式,验证节点采用结构化组网方式,利用不同组网方式的优点实现网络负载的均衡. ...
Locality based approach to improve propagation delay on the bitcoin peer-to-peer network
1
2017
... 随着近年来区块链网络的爆炸式发展以及开源特点,学术界开始关注大型公有链项目的网络状况,监测并研究它们的特点,研究对象主要为比特币网络.Decker等[11]设计和实现测量工具,分析传播时延数据、协议数据和地址数据,建模分析影响比特币网络性能的网络层因素,基于此提出各自的优化方法.Fadhil等[12]提出基于事件仿真的比特币网络仿真模型,利用真实测量数据验证模型的有效性,最后提出优化机制 BCBSN,旨在设立超级节点降低网络波动.Kaneko 等[13]将区块链节点分为共识节点和验证节点,其中共识节点采用无结构组网方式,验证节点采用结构化组网方式,利用不同组网方式的优点实现网络负载的均衡. ...
DHT clustering for load balancing considering blockchain data size
1
2018
... 随着近年来区块链网络的爆炸式发展以及开源特点,学术界开始关注大型公有链项目的网络状况,监测并研究它们的特点,研究对象主要为比特币网络.Decker等[11]设计和实现测量工具,分析传播时延数据、协议数据和地址数据,建模分析影响比特币网络性能的网络层因素,基于此提出各自的优化方法.Fadhil等[12]提出基于事件仿真的比特币网络仿真模型,利用真实测量数据验证模型的有效性,最后提出优化机制 BCBSN,旨在设立超级节点降低网络波动.Kaneko 等[13]将区块链节点分为共识节点和验证节点,其中共识节点采用无结构组网方式,验证节点采用结构化组网方式,利用不同组网方式的优点实现网络负载的均衡. ...
An analysis of anonymity in bitcoin using P2P network traffic
2014
Deanonymisation of clients in bitcoin P2P network
2014
Dandelion:redesigning the bitcoin network for anonymity
1
2017
... 匿名性是加密货币的重要特性之一,但从网络层视角看,区块链的匿名性并不能有效保证,因为攻击者可以利用监听并追踪 IP 地址的方式推测出交易之间、交易与公钥地址之间的关系,通过匿名隐私研究可以主动发掘安全隐患,规避潜在危害.Koshy 等[16,17]从网络拓扑、传播层协议和作恶模型3个方面对比特币网络进行建模,通过理论分析和仿真实验证明了比特币网络协议在树形组网结构下仅具备弱匿名性,在此基础上提出 Dandelion 网络策略以较低的网络开销优化匿名性,随后又提出 Dandelion++原理,以最优信息理论保证来抵抗大规模去匿名攻击. ...
Dandelion++:lightweight cryptocurrency networking with formal anonymity guarantees
1
2018
... 匿名性是加密货币的重要特性之一,但从网络层视角看,区块链的匿名性并不能有效保证,因为攻击者可以利用监听并追踪 IP 地址的方式推测出交易之间、交易与公钥地址之间的关系,通过匿名隐私研究可以主动发掘安全隐患,规避潜在危害.Koshy 等[16,17]从网络拓扑、传播层协议和作恶模型3个方面对比特币网络进行建模,通过理论分析和仿真实验证明了比特币网络协议在树形组网结构下仅具备弱匿名性,在此基础上提出 Dandelion 网络策略以较低的网络开销优化匿名性,随后又提出 Dandelion++原理,以最优信息理论保证来抵抗大规模去匿名攻击. ...
Eclipse attacks on Bitcoin’s peer-to-peer network
1
2015
... 区块链重点关注其数据层和共识层面机制,并基于普通网络构建开放的互联环境,该方式极易遭受攻击.为提高区块链网络的安全性,学术界展开研究并给出了相应的解决方案.Heilman 等[18]对比特币和以太坊网络实施日蚀攻击(eclipse attack)——通过屏蔽正确节点从而完全控制特定节点的信息来源,证实了该攻击的可行性.Apostolaki等[19]提出针对比特币网络的 BGP(border gateway protocal)劫持攻击,通过操纵自治域间路由或拦截域间流量来制造节点通信阻塞,表明针对关键数据的沿路攻击可以大大降低区块传播性能. ...
Hijacking bitcoin:routing attacks on cryptocurrencies
2
2017
... 区块链重点关注其数据层和共识层面机制,并基于普通网络构建开放的互联环境,该方式极易遭受攻击.为提高区块链网络的安全性,学术界展开研究并给出了相应的解决方案.Heilman 等[18]对比特币和以太坊网络实施日蚀攻击(eclipse attack)——通过屏蔽正确节点从而完全控制特定节点的信息来源,证实了该攻击的可行性.Apostolaki等[19]提出针对比特币网络的 BGP(border gateway protocal)劫持攻击,通过操纵自治域间路由或拦截域间流量来制造节点通信阻塞,表明针对关键数据的沿路攻击可以大大降低区块传播性能. ...
... 网络层主要缺陷在于安全性,可拓展性则有待优化.如何防御以 BGP 劫持为代表的网络攻击将成为区块链底层网络的安全研究方向[19].信息中心网络将重塑区块链基础传输网络,通过请求聚合和数据缓存减少网内冗余流量并加速通信传输[69].相比于数据层和共识层,区块链网络的关注度较低,但却是影响安全性、可拓展性的基本因素. ...
Improving authenticated dynamic dictionaries,with applications to cryptocurrencies
1
2017
... 高效验证的学术问题源于验证数据结构(ADS,authenticated data structure),即利用特定数据结构快速验证数据的完整性,实际上 MKT 也是其中的一种.为了适应区块链数据的动态性(dynamical)并保持良好性能,学术界展开了研究.Reyzin等[20]基于AVL树形结构提出AVL+,并通过平衡验证路径、缺省堆栈交易集等机制,简化轻量级节点的区块头验证过程.Zhang等[21]提出GEM2-tree结构,并对其进行优化提出 GEM2כ-tree 结构,通过分解单树结构、动态调整节点计算速度、扩展数据索引等机制降低以太坊节点计算开销. ...
GEM^2-tree:a gas-efficient structure for authenticated range queries in blockchain
1
2019
... 高效验证的学术问题源于验证数据结构(ADS,authenticated data structure),即利用特定数据结构快速验证数据的完整性,实际上 MKT 也是其中的一种.为了适应区块链数据的动态性(dynamical)并保持良好性能,学术界展开了研究.Reyzin等[20]基于AVL树形结构提出AVL+,并通过平衡验证路径、缺省堆栈交易集等机制,简化轻量级节点的区块头验证过程.Zhang等[21]提出GEM2-tree结构,并对其进行优化提出 GEM2כ-tree 结构,通过分解单树结构、动态调整节点计算速度、扩展数据索引等机制降低以太坊节点计算开销. ...
An analysis of anonymity in the bitcoin system
1
2011
... 区块数据直接承载业务信息,因此区块数据的匿名关联性分析更为直接.Reid等[22]将区块数据建模为事务网络和用户网络,利用多交易数据的用户指向性分析成功降低网络复杂度.Meiklejohn等[23]利用启发式聚类方法分析交易数据的流动特性并对用户进行分组,通过与这些服务的互动来识别主要机构的比特币地址.Awan 等[24]使用优势集(dominant set)方法对区块链交易进行自动分类,从而提高分析准确率. ...
A fistful of bitcoins:characterizing payments among men with no names
1
2013
... 区块数据直接承载业务信息,因此区块数据的匿名关联性分析更为直接.Reid等[22]将区块数据建模为事务网络和用户网络,利用多交易数据的用户指向性分析成功降低网络复杂度.Meiklejohn等[23]利用启发式聚类方法分析交易数据的流动特性并对用户进行分组,通过与这些服务的互动来识别主要机构的比特币地址.Awan 等[24]使用优势集(dominant set)方法对区块链交易进行自动分类,从而提高分析准确率. ...
Blockchain transaction analysis using dominant sets
1
2017
... 区块数据直接承载业务信息,因此区块数据的匿名关联性分析更为直接.Reid等[22]将区块数据建模为事务网络和用户网络,利用多交易数据的用户指向性分析成功降低网络复杂度.Meiklejohn等[23]利用启发式聚类方法分析交易数据的流动特性并对用户进行分组,通过与这些服务的互动来识别主要机构的比特币地址.Awan 等[24]使用优势集(dominant set)方法对区块链交易进行自动分类,从而提高分析准确率. ...
Increasing anonymity in bitcoin
1
2014
... 隐私保护方面,Saxena等[25]提出复合签名技术削弱数据的关联性,基于双线性映射中的Diffie-Hellman假设保证计算困难性,从而保护用户隐私.Miers 等[26]和 Sasson 等[27]提出 Zerocoin 和Zerocash,在不添加可信方的情况下断开交易间的联系,最早利用零知识证明(zero-knowledge proof)技术隐藏交易的输入、输出和金额信息,提高比特币的匿名性.非对称加密是区块链数据安全的核心,但在量子计算面前却显得“捉襟见肘”,为此Yin等[28]利用盆景树模型(bonsai tree)改进晶格签名技术(lattice-based signature),以保证公私钥的随机性和安全性,使反量子加密技术适用于区块链用户地址的生成. ...
Zerocoin:anonymous distributed e-cash from bitcoin
1
2013
... 隐私保护方面,Saxena等[25]提出复合签名技术削弱数据的关联性,基于双线性映射中的Diffie-Hellman假设保证计算困难性,从而保护用户隐私.Miers 等[26]和 Sasson 等[27]提出 Zerocoin 和Zerocash,在不添加可信方的情况下断开交易间的联系,最早利用零知识证明(zero-knowledge proof)技术隐藏交易的输入、输出和金额信息,提高比特币的匿名性.非对称加密是区块链数据安全的核心,但在量子计算面前却显得“捉襟见肘”,为此Yin等[28]利用盆景树模型(bonsai tree)改进晶格签名技术(lattice-based signature),以保证公私钥的随机性和安全性,使反量子加密技术适用于区块链用户地址的生成. ...
Zerocash:decentralized anonymous payments from bitcoin
1
2014
... 隐私保护方面,Saxena等[25]提出复合签名技术削弱数据的关联性,基于双线性映射中的Diffie-Hellman假设保证计算困难性,从而保护用户隐私.Miers 等[26]和 Sasson 等[27]提出 Zerocoin 和Zerocash,在不添加可信方的情况下断开交易间的联系,最早利用零知识证明(zero-knowledge proof)技术隐藏交易的输入、输出和金额信息,提高比特币的匿名性.非对称加密是区块链数据安全的核心,但在量子计算面前却显得“捉襟见肘”,为此Yin等[28]利用盆景树模型(bonsai tree)改进晶格签名技术(lattice-based signature),以保证公私钥的随机性和安全性,使反量子加密技术适用于区块链用户地址的生成. ...
A anti-quantum transaction authentication approach in blockchain
1
2018
... 隐私保护方面,Saxena等[25]提出复合签名技术削弱数据的关联性,基于双线性映射中的Diffie-Hellman假设保证计算困难性,从而保护用户隐私.Miers 等[26]和 Sasson 等[27]提出 Zerocoin 和Zerocash,在不添加可信方的情况下断开交易间的联系,最早利用零知识证明(zero-knowledge proof)技术隐藏交易的输入、输出和金额信息,提高比特币的匿名性.非对称加密是区块链数据安全的核心,但在量子计算面前却显得“捉襟见肘”,为此Yin等[28]利用盆景树模型(bonsai tree)改进晶格签名技术(lattice-based signature),以保证公私钥的随机性和安全性,使反量子加密技术适用于区块链用户地址的生成. ...
The sybil attack
1
2002
... 区块链网络中每个节点必须维护完全相同的账本数据,然而各节点产生数据的时间不同、获取数据的来源未知,存在节点故意广播错误数据的可能性,这将导致女巫攻击[29]、双花攻击[30]等安全风险;除此之外,节点故障、网络拥塞带来的数据异常也无法预测.因此,如何在不可信的环境下实现账本数据的全网统一是共识层解决的关键问题.实际上,上述错误是拜占庭将军问题(the Byzantine generals problem)[31]在区块链中的具体表现,即拜占庭错误——相互独立的组件可以做出任意或恶意的行为,并可能与其他错误组件产生协作,此类错误在可信分布式计算领域被广泛研究. ...
Double-spending fast payments in bitcoin
1
2012
... 区块链网络中每个节点必须维护完全相同的账本数据,然而各节点产生数据的时间不同、获取数据的来源未知,存在节点故意广播错误数据的可能性,这将导致女巫攻击[29]、双花攻击[30]等安全风险;除此之外,节点故障、网络拥塞带来的数据异常也无法预测.因此,如何在不可信的环境下实现账本数据的全网统一是共识层解决的关键问题.实际上,上述错误是拜占庭将军问题(the Byzantine generals problem)[31]在区块链中的具体表现,即拜占庭错误——相互独立的组件可以做出任意或恶意的行为,并可能与其他错误组件产生协作,此类错误在可信分布式计算领域被广泛研究. ...
The byzantine generals problem
1
1982
... 区块链网络中每个节点必须维护完全相同的账本数据,然而各节点产生数据的时间不同、获取数据的来源未知,存在节点故意广播错误数据的可能性,这将导致女巫攻击[29]、双花攻击[30]等安全风险;除此之外,节点故障、网络拥塞带来的数据异常也无法预测.因此,如何在不可信的环境下实现账本数据的全网统一是共识层解决的关键问题.实际上,上述错误是拜占庭将军问题(the Byzantine generals problem)[31]在区块链中的具体表现,即拜占庭错误——相互独立的组件可以做出任意或恶意的行为,并可能与其他错误组件产生协作,此类错误在可信分布式计算领域被广泛研究. ...
Consensus in the age of blockchains
1
... 状态机复制(state-machine replication)是解决分布式系统容错问题的常用理论.其基本思想为:任何计算都表示为状态机,通过接收消息来更改其状态.假设一组副本以相同的初始状态开始,并且能够就一组公共消息的顺序达成一致,那么它们可以独立进行状态的演化计算,从而正确维护各自副本之间的一致性.同样,区块链也使用状态机复制理论解决拜占庭容错问题,如果把每个节点的数据视为账本数据的副本,那么节点接收到的交易、区块即为引起副本状态变化的消息.状态机复制理论实现和维持副本的一致性主要包含2个要素:正确执行计算逻辑的确定性状态机和传播相同序列消息的共识协议.其中,共识协议是影响容错效果、吞吐量和复杂度的关键,不同安全性、可扩展性要求的系统需要的共识协议各有不同.学术界普遍根据通信模型和容错类型对共识协议进行区分[32],因此严格地说,区块链使用的共识协议需要解决的是部分同步(partial synchrony)模型[33]下的拜占庭容错问题. ...
Consensus in the presence of partial synchrony
2
1988
... 状态机复制(state-machine replication)是解决分布式系统容错问题的常用理论.其基本思想为:任何计算都表示为状态机,通过接收消息来更改其状态.假设一组副本以相同的初始状态开始,并且能够就一组公共消息的顺序达成一致,那么它们可以独立进行状态的演化计算,从而正确维护各自副本之间的一致性.同样,区块链也使用状态机复制理论解决拜占庭容错问题,如果把每个节点的数据视为账本数据的副本,那么节点接收到的交易、区块即为引起副本状态变化的消息.状态机复制理论实现和维持副本的一致性主要包含2个要素:正确执行计算逻辑的确定性状态机和传播相同序列消息的共识协议.其中,共识协议是影响容错效果、吞吐量和复杂度的关键,不同安全性、可扩展性要求的系统需要的共识协议各有不同.学术界普遍根据通信模型和容错类型对共识协议进行区分[32],因此严格地说,区块链使用的共识协议需要解决的是部分同步(partial synchrony)模型[33]下的拜占庭容错问题. ...
... 比特币在网络层采用非结构化方式组网,路由表呈现随机性.节点间则采用多点传播方式传递数据,曾基于Gossip协议实现,为提高网络的抗匿名分析能力改为基于Diffusion协议实现[33].节点利用一系列控制协议确保链路的可用性,包括版本获取(Vetsion/Verack)、地址获取(Addr/GetAddr)、心跳信息(PING/PONG)等.新节点入网时,首先向硬编码 DNS 节点(种子节点)请求初始节点列表;然后向初始节点随机请求它们路由表中的节点信息,以此生成自己的路由表;最后节点通过控制协议与这些节点建立连接,并根据信息交互的频率更新路由表中节点时间戳,从而保证路由表中的节点都是活动的.交互逻辑层为建立共识交互通道,提供了区块获取(GetBlock)、交易验证(MerkleBlock)、主链选择(CmpctBlock)等协议;轻节点只需要进行简单的区块头验证,因此通过头验证(GetHeader/Header)协议和连接层中的过滤设置协议指定需要验证的区块头即可建立简单验证通路.在安全机制方面,比特币网络可选择利用匿名通信网络Tor作为数据传输承载,通过沿路径的层层数据加密机制来保护对端身份. ...
Bitcoin and beyond:a technical survey on decentralized digital currencies
1
2016
... 区块链网络中主要包含PoX(poof of X)[34]、BFT(byzantine-fault tolerant)和 CFT(crash-fault tolerant)类基础共识协议.PoX 类协议是以 PoW (proof of work)为代表的基于奖惩机制驱动的新型共识协议,为了适应数据吞吐量、资源利用率和安全性的需求,人们又提出PoS(proof of stake)、PoST (proof of space-time)等改进协议.它们的基本特点在于设计证明依据,使诚实节点可以证明其合法性,从而实现拜占庭容错.BFT类协议是指解决拜占庭容错问题的传统共识协议及其改良协议,包括PBFT、BFT-SMaRt、Tendermint等.CFT类协议用于实现崩溃容错,通过身份证明等手段规避节点作恶的情况,仅考虑节点或网络的崩溃(crash)故障,主要包括Raft、Paxos、Kafka等协议. ...
Blockchains consensus protocols in the wild
1
2017
... 非许可链和许可链的开放程度和容错需求存在差异,共识层面技术在两者之间产生了较大区别.具体而言,非许可链完全开放,需要抵御严重的拜占庭风险,多采用PoX、BFT类协议并配合奖惩机制实现共识.许可链拥有准入机制,网络中节点身份可知,一定程度降低了拜占庭风险,因此可采用BFT类协议、CFT类协议构建相同的信任模型[35]. ...
Practical byzantine fault tolerance and proactive recovery
1
2002
... PBFT是 BFT经典共识协议,其主要流程如图8 所示.PBFT将节点分为主节点和副节点,其中主节点负责将交易打包成区块,副节点参与验证和转发,假设作恶节点数量为f.PBFT共识主要分为预准备、准备和接受3个阶段,主节点首先收集交易后排序并提出合法区块提案;其余节点先验证提案的合法性,然后根据区块内交易顺序依次执行并将结果摘要组播;各节点收到2f个与自身相同的摘要后便组播接受投票;当节点收到超过2f+1个投票时便存储区块及其产生的新状态[36]. ...
In search of an understandable consensus algorithm
1
2015
... Raft[37]是典型的崩溃容错共识协议,以可用性强著称.Raft将节点分为跟随节点、候选节点和领导节点,领导节点负责将交易打包成区块,追随节点响应领导节点的同步指令,候选节点完成领导节点的选举工作.当网络运行稳定时,只存在领导节点和追随节点,领导节点向追随节点推送区块数据从而实现同步.节点均设置生存时间决定角色变化周期,领导节点的心跳信息不断重置追随节点的生存时间,当领导节点发生崩溃时,追随节点自动转化为候选节点并进入选举流程,实现网络自恢复. ...
Proofs of useful work
1
2017
... 如前文所述,PoX类协议的基本特点在于设计证明依据,使诚实节点可以证明其合法性,从而实现拜占庭容错.uPoW[38]通过计算有意义的正交向量问题证明节点合法性,使算力不被浪费.PoI (proof-of-importance)[39]利用图论原理为每个节点赋予重要性权重,权重越高的节点将越有可能算出区块.PoS(poof-of-stake)为节点定义“币龄”,拥有更高币龄的节点将被分配更多的股份(stake),而股份被作为证明依据用于成块节点的选举.Ouroboros[40]通过引入多方掷币协议增大了选举随机性,引入近乎纳什均衡的激励机制进一步提高PoS 的安全性.PoRep(proof-of-replication)[41]应用于去中心化存储网络,利用证明依据作为贡献存储空间的奖励,促进存储资源再利用. ...
Comparative analysis of blockchain consensus algorithms
1
2018
... 如前文所述,PoX类协议的基本特点在于设计证明依据,使诚实节点可以证明其合法性,从而实现拜占庭容错.uPoW[38]通过计算有意义的正交向量问题证明节点合法性,使算力不被浪费.PoI (proof-of-importance)[39]利用图论原理为每个节点赋予重要性权重,权重越高的节点将越有可能算出区块.PoS(poof-of-stake)为节点定义“币龄”,拥有更高币龄的节点将被分配更多的股份(stake),而股份被作为证明依据用于成块节点的选举.Ouroboros[40]通过引入多方掷币协议增大了选举随机性,引入近乎纳什均衡的激励机制进一步提高PoS 的安全性.PoRep(proof-of-replication)[41]应用于去中心化存储网络,利用证明依据作为贡献存储空间的奖励,促进存储资源再利用. ...
Ouroboros:a provably secure proof-of-stake blockchain protocol
1
2017
... 如前文所述,PoX类协议的基本特点在于设计证明依据,使诚实节点可以证明其合法性,从而实现拜占庭容错.uPoW[38]通过计算有意义的正交向量问题证明节点合法性,使算力不被浪费.PoI (proof-of-importance)[39]利用图论原理为每个节点赋予重要性权重,权重越高的节点将越有可能算出区块.PoS(poof-of-stake)为节点定义“币龄”,拥有更高币龄的节点将被分配更多的股份(stake),而股份被作为证明依据用于成块节点的选举.Ouroboros[40]通过引入多方掷币协议增大了选举随机性,引入近乎纳什均衡的激励机制进一步提高PoS 的安全性.PoRep(proof-of-replication)[41]应用于去中心化存储网络,利用证明依据作为贡献存储空间的奖励,促进存储资源再利用. ...
Tight proofs of space and replication
1
... 如前文所述,PoX类协议的基本特点在于设计证明依据,使诚实节点可以证明其合法性,从而实现拜占庭容错.uPoW[38]通过计算有意义的正交向量问题证明节点合法性,使算力不被浪费.PoI (proof-of-importance)[39]利用图论原理为每个节点赋予重要性权重,权重越高的节点将越有可能算出区块.PoS(poof-of-stake)为节点定义“币龄”,拥有更高币龄的节点将被分配更多的股份(stake),而股份被作为证明依据用于成块节点的选举.Ouroboros[40]通过引入多方掷币协议增大了选举随机性,引入近乎纳什均衡的激励机制进一步提高PoS 的安全性.PoRep(proof-of-replication)[41]应用于去中心化存储网络,利用证明依据作为贡献存储空间的奖励,促进存储资源再利用. ...
A vademecum on blockchain technologies:when,which,and how
1
2019
... BFT协议有较长的发展史,在区块链研究中被赋予了新的活力.SCP[42]和Ripple[43]基于联邦拜占庭共识[44]——存在交集的多池(确定规模的联邦)共识,分别允许节点自主选择或与指定的节点构成共识联邦,通过联邦交集达成全网共识.Tendermint[45]使用Gossip通信协议基本实现异步拜占庭共识,不仅简化了流程而且提高了可用性.HotStuff[46]将BFT与链式结构数据相结合,使主节点能够以实际网络时延及 O(n)通信复杂度推动协议达成一致.LibraBFT[47]在HotStuff的基础上加入奖惩机制及节点替换机制,从而优化了性能. ...
A survey on consensus mechanisms and mining strategy management in blockchain networks
1
2019
... BFT协议有较长的发展史,在区块链研究中被赋予了新的活力.SCP[42]和Ripple[43]基于联邦拜占庭共识[44]——存在交集的多池(确定规模的联邦)共识,分别允许节点自主选择或与指定的节点构成共识联邦,通过联邦交集达成全网共识.Tendermint[45]使用Gossip通信协议基本实现异步拜占庭共识,不仅简化了流程而且提高了可用性.HotStuff[46]将BFT与链式结构数据相结合,使主节点能够以实际网络时延及 O(n)通信复杂度推动协议达成一致.LibraBFT[47]在HotStuff的基础上加入奖惩机制及节点替换机制,从而优化了性能. ...
Formal modeling and verification of a federated byzantine agreement algorithm for blockchain platforms
1
2019
... BFT协议有较长的发展史,在区块链研究中被赋予了新的活力.SCP[42]和Ripple[43]基于联邦拜占庭共识[44]——存在交集的多池(确定规模的联邦)共识,分别允许节点自主选择或与指定的节点构成共识联邦,通过联邦交集达成全网共识.Tendermint[45]使用Gossip通信协议基本实现异步拜占庭共识,不仅简化了流程而且提高了可用性.HotStuff[46]将BFT与链式结构数据相结合,使主节点能够以实际网络时延及 O(n)通信复杂度推动协议达成一致.LibraBFT[47]在HotStuff的基础上加入奖惩机制及节点替换机制,从而优化了性能. ...
An overview of blockchain technology:architecture,consensus,and future trends
1
2017
... BFT协议有较长的发展史,在区块链研究中被赋予了新的活力.SCP[42]和Ripple[43]基于联邦拜占庭共识[44]——存在交集的多池(确定规模的联邦)共识,分别允许节点自主选择或与指定的节点构成共识联邦,通过联邦交集达成全网共识.Tendermint[45]使用Gossip通信协议基本实现异步拜占庭共识,不仅简化了流程而且提高了可用性.HotStuff[46]将BFT与链式结构数据相结合,使主节点能够以实际网络时延及 O(n)通信复杂度推动协议达成一致.LibraBFT[47]在HotStuff的基础上加入奖惩机制及节点替换机制,从而优化了性能. ...
HotStuff:BFT consensus in the lens of blockchain
1
2019
... BFT协议有较长的发展史,在区块链研究中被赋予了新的活力.SCP[42]和Ripple[43]基于联邦拜占庭共识[44]——存在交集的多池(确定规模的联邦)共识,分别允许节点自主选择或与指定的节点构成共识联邦,通过联邦交集达成全网共识.Tendermint[45]使用Gossip通信协议基本实现异步拜占庭共识,不仅简化了流程而且提高了可用性.HotStuff[46]将BFT与链式结构数据相结合,使主节点能够以实际网络时延及 O(n)通信复杂度推动协议达成一致.LibraBFT[47]在HotStuff的基础上加入奖惩机制及节点替换机制,从而优化了性能. ...
Libra critique towards global decentralized financial system
1
2019
... BFT协议有较长的发展史,在区块链研究中被赋予了新的活力.SCP[42]和Ripple[43]基于联邦拜占庭共识[44]——存在交集的多池(确定规模的联邦)共识,分别允许节点自主选择或与指定的节点构成共识联邦,通过联邦交集达成全网共识.Tendermint[45]使用Gossip通信协议基本实现异步拜占庭共识,不仅简化了流程而且提高了可用性.HotStuff[46]将BFT与链式结构数据相结合,使主节点能够以实际网络时延及 O(n)通信复杂度推动协议达成一致.LibraBFT[47]在HotStuff的基础上加入奖惩机制及节点替换机制,从而优化了性能. ...
Proof of activity:extending bitcoin’s proof of work via proof of stake
1
... Hybrid 类协议是研究趋势之一.PoA[48]利用PoW产生空区块头,利用PoS决定由哪些节点进行记账和背书,其奖励由背书节点和出块节点共享.PeerCensus[49]由节点团体进行拜占庭协议实现共识,而节点必须基于比特币网络,通过 PoW 产出区块后才能获得投票权力.ByzCoin[50]利用PoW的算力特性构建动态成员关系,并引入联合签名方案来减小PBFT的轮次通信开销,提高交易吞吐量,降低确认时延.Casper[51]则通过PoS的股份决定节点构成团体并进行BFT共识,且节点可投票数取决于股份. ...
Bitcoin meets strong consistency
1
... Hybrid 类协议是研究趋势之一.PoA[48]利用PoW产生空区块头,利用PoS决定由哪些节点进行记账和背书,其奖励由背书节点和出块节点共享.PeerCensus[49]由节点团体进行拜占庭协议实现共识,而节点必须基于比特币网络,通过 PoW 产出区块后才能获得投票权力.ByzCoin[50]利用PoW的算力特性构建动态成员关系,并引入联合签名方案来减小PBFT的轮次通信开销,提高交易吞吐量,降低确认时延.Casper[51]则通过PoS的股份决定节点构成团体并进行BFT共识,且节点可投票数取决于股份. ...
Enhancing bitcoin security and performance with strong consistency via collective signing
1
2016
... Hybrid 类协议是研究趋势之一.PoA[48]利用PoW产生空区块头,利用PoS决定由哪些节点进行记账和背书,其奖励由背书节点和出块节点共享.PeerCensus[49]由节点团体进行拜占庭协议实现共识,而节点必须基于比特币网络,通过 PoW 产出区块后才能获得投票权力.ByzCoin[50]利用PoW的算力特性构建动态成员关系,并引入联合签名方案来减小PBFT的轮次通信开销,提高交易吞吐量,降低确认时延.Casper[51]则通过PoS的股份决定节点构成团体并进行BFT共识,且节点可投票数取决于股份. ...
Casper the friendly finality gadget
1
... Hybrid 类协议是研究趋势之一.PoA[48]利用PoW产生空区块头,利用PoS决定由哪些节点进行记账和背书,其奖励由背书节点和出块节点共享.PeerCensus[49]由节点团体进行拜占庭协议实现共识,而节点必须基于比特币网络,通过 PoW 产出区块后才能获得投票权力.ByzCoin[50]利用PoW的算力特性构建动态成员关系,并引入联合签名方案来减小PBFT的轮次通信开销,提高交易吞吐量,降低确认时延.Casper[51]则通过PoS的股份决定节点构成团体并进行BFT共识,且节点可投票数取决于股份. ...
Bitcoin and beyond:a technical survey on decentralized digital currencies
1
2016
... 侧链(side-chain)在比特币主链外构建新的分类资产链,并使比特币和其他分类资产在多个区块链之间转移,从而分散了单一链的负荷.Tschorsch等[52]利用Two-way Peg机制实现交互式跨链资产转换,防止该过程中出现双花.Kiayias 等[53]利用NIPoPoW机制实现非交互式的跨链工作证明,并降低了跨链带来的区块冗余.分片(sharding)是指不同节点子集处理区块链的不同部分,从而减少每个节点的负载.ELASTICO[54]将交易集划分为不同分片,每个分片由不同的节点集合进行并行验证.OmniLedger[55]在前者的基础上优化节点随机选择及跨切片事务提交协议,从而提高了切片共识的安全性与正确性.区别于 OmniLedger,PolyShard[56]利用拉格朗日多项式编码分片为分片交互过程加入计算冗余,同时实现了可扩展性优化与安全保障.上述研究可视为链上处理模型在加密货币场景下的可扩展性优化方案.实际上,链下处理模型本身就是一种扩展性优化思路,闪电网络[57]通过状态通道对交易最终结果进行链上确认,从而在交易过程中实现高频次的链外支付.Plasma[58]在链下对区块链进行树形分支拓展,树形分支中的父节点完成子节点业务的确认,直到根节点与区块链进行最终确认. ...
Non-interactive proofs of proof-of-work
1
... 侧链(side-chain)在比特币主链外构建新的分类资产链,并使比特币和其他分类资产在多个区块链之间转移,从而分散了单一链的负荷.Tschorsch等[52]利用Two-way Peg机制实现交互式跨链资产转换,防止该过程中出现双花.Kiayias 等[53]利用NIPoPoW机制实现非交互式的跨链工作证明,并降低了跨链带来的区块冗余.分片(sharding)是指不同节点子集处理区块链的不同部分,从而减少每个节点的负载.ELASTICO[54]将交易集划分为不同分片,每个分片由不同的节点集合进行并行验证.OmniLedger[55]在前者的基础上优化节点随机选择及跨切片事务提交协议,从而提高了切片共识的安全性与正确性.区别于 OmniLedger,PolyShard[56]利用拉格朗日多项式编码分片为分片交互过程加入计算冗余,同时实现了可扩展性优化与安全保障.上述研究可视为链上处理模型在加密货币场景下的可扩展性优化方案.实际上,链下处理模型本身就是一种扩展性优化思路,闪电网络[57]通过状态通道对交易最终结果进行链上确认,从而在交易过程中实现高频次的链外支付.Plasma[58]在链下对区块链进行树形分支拓展,树形分支中的父节点完成子节点业务的确认,直到根节点与区块链进行最终确认. ...
A secure sharding protocol for open blockchains
1
2016
... 侧链(side-chain)在比特币主链外构建新的分类资产链,并使比特币和其他分类资产在多个区块链之间转移,从而分散了单一链的负荷.Tschorsch等[52]利用Two-way Peg机制实现交互式跨链资产转换,防止该过程中出现双花.Kiayias 等[53]利用NIPoPoW机制实现非交互式的跨链工作证明,并降低了跨链带来的区块冗余.分片(sharding)是指不同节点子集处理区块链的不同部分,从而减少每个节点的负载.ELASTICO[54]将交易集划分为不同分片,每个分片由不同的节点集合进行并行验证.OmniLedger[55]在前者的基础上优化节点随机选择及跨切片事务提交协议,从而提高了切片共识的安全性与正确性.区别于 OmniLedger,PolyShard[56]利用拉格朗日多项式编码分片为分片交互过程加入计算冗余,同时实现了可扩展性优化与安全保障.上述研究可视为链上处理模型在加密货币场景下的可扩展性优化方案.实际上,链下处理模型本身就是一种扩展性优化思路,闪电网络[57]通过状态通道对交易最终结果进行链上确认,从而在交易过程中实现高频次的链外支付.Plasma[58]在链下对区块链进行树形分支拓展,树形分支中的父节点完成子节点业务的确认,直到根节点与区块链进行最终确认. ...
OmniLedger:a secure,scale-out,decentralized ledger via sharding
1
2018
... 侧链(side-chain)在比特币主链外构建新的分类资产链,并使比特币和其他分类资产在多个区块链之间转移,从而分散了单一链的负荷.Tschorsch等[52]利用Two-way Peg机制实现交互式跨链资产转换,防止该过程中出现双花.Kiayias 等[53]利用NIPoPoW机制实现非交互式的跨链工作证明,并降低了跨链带来的区块冗余.分片(sharding)是指不同节点子集处理区块链的不同部分,从而减少每个节点的负载.ELASTICO[54]将交易集划分为不同分片,每个分片由不同的节点集合进行并行验证.OmniLedger[55]在前者的基础上优化节点随机选择及跨切片事务提交协议,从而提高了切片共识的安全性与正确性.区别于 OmniLedger,PolyShard[56]利用拉格朗日多项式编码分片为分片交互过程加入计算冗余,同时实现了可扩展性优化与安全保障.上述研究可视为链上处理模型在加密货币场景下的可扩展性优化方案.实际上,链下处理模型本身就是一种扩展性优化思路,闪电网络[57]通过状态通道对交易最终结果进行链上确认,从而在交易过程中实现高频次的链外支付.Plasma[58]在链下对区块链进行树形分支拓展,树形分支中的父节点完成子节点业务的确认,直到根节点与区块链进行最终确认. ...
PolyShard:coded sharding achieves linearly scaling efficiency and security simultaneously
1
... 侧链(side-chain)在比特币主链外构建新的分类资产链,并使比特币和其他分类资产在多个区块链之间转移,从而分散了单一链的负荷.Tschorsch等[52]利用Two-way Peg机制实现交互式跨链资产转换,防止该过程中出现双花.Kiayias 等[53]利用NIPoPoW机制实现非交互式的跨链工作证明,并降低了跨链带来的区块冗余.分片(sharding)是指不同节点子集处理区块链的不同部分,从而减少每个节点的负载.ELASTICO[54]将交易集划分为不同分片,每个分片由不同的节点集合进行并行验证.OmniLedger[55]在前者的基础上优化节点随机选择及跨切片事务提交协议,从而提高了切片共识的安全性与正确性.区别于 OmniLedger,PolyShard[56]利用拉格朗日多项式编码分片为分片交互过程加入计算冗余,同时实现了可扩展性优化与安全保障.上述研究可视为链上处理模型在加密货币场景下的可扩展性优化方案.实际上,链下处理模型本身就是一种扩展性优化思路,闪电网络[57]通过状态通道对交易最终结果进行链上确认,从而在交易过程中实现高频次的链外支付.Plasma[58]在链下对区块链进行树形分支拓展,树形分支中的父节点完成子节点业务的确认,直到根节点与区块链进行最终确认. ...
A survey on the scalability of blockchain systems
1
2019
... 侧链(side-chain)在比特币主链外构建新的分类资产链,并使比特币和其他分类资产在多个区块链之间转移,从而分散了单一链的负荷.Tschorsch等[52]利用Two-way Peg机制实现交互式跨链资产转换,防止该过程中出现双花.Kiayias 等[53]利用NIPoPoW机制实现非交互式的跨链工作证明,并降低了跨链带来的区块冗余.分片(sharding)是指不同节点子集处理区块链的不同部分,从而减少每个节点的负载.ELASTICO[54]将交易集划分为不同分片,每个分片由不同的节点集合进行并行验证.OmniLedger[55]在前者的基础上优化节点随机选择及跨切片事务提交协议,从而提高了切片共识的安全性与正确性.区别于 OmniLedger,PolyShard[56]利用拉格朗日多项式编码分片为分片交互过程加入计算冗余,同时实现了可扩展性优化与安全保障.上述研究可视为链上处理模型在加密货币场景下的可扩展性优化方案.实际上,链下处理模型本身就是一种扩展性优化思路,闪电网络[57]通过状态通道对交易最终结果进行链上确认,从而在交易过程中实现高频次的链外支付.Plasma[58]在链下对区块链进行树形分支拓展,树形分支中的父节点完成子节点业务的确认,直到根节点与区块链进行最终确认. ...
Scalable funding of bitcoin micropayment channel networks
1
2017
... 侧链(side-chain)在比特币主链外构建新的分类资产链,并使比特币和其他分类资产在多个区块链之间转移,从而分散了单一链的负荷.Tschorsch等[52]利用Two-way Peg机制实现交互式跨链资产转换,防止该过程中出现双花.Kiayias 等[53]利用NIPoPoW机制实现非交互式的跨链工作证明,并降低了跨链带来的区块冗余.分片(sharding)是指不同节点子集处理区块链的不同部分,从而减少每个节点的负载.ELASTICO[54]将交易集划分为不同分片,每个分片由不同的节点集合进行并行验证.OmniLedger[55]在前者的基础上优化节点随机选择及跨切片事务提交协议,从而提高了切片共识的安全性与正确性.区别于 OmniLedger,PolyShard[56]利用拉格朗日多项式编码分片为分片交互过程加入计算冗余,同时实现了可扩展性优化与安全保障.上述研究可视为链上处理模型在加密货币场景下的可扩展性优化方案.实际上,链下处理模型本身就是一种扩展性优化思路,闪电网络[57]通过状态通道对交易最终结果进行链上确认,从而在交易过程中实现高频次的链外支付.Plasma[58]在链下对区块链进行树形分支拓展,树形分支中的父节点完成子节点业务的确认,直到根节点与区块链进行最终确认. ...
Making smart contracts smarter
1
2016
... 一方面,沙盒环境承载了区块链节点运行条件,针对虚拟机展开的攻击更为直接;另一方面,智能合约直接对账本进行操作,其漏洞更易影响业务运行,因此控制层的安全防护研究成为热点.Luu等[59]分析了运行于EVM中的智能合约安全性,指出底层平台的分布式语义差异带来的安全问题.Brent 等[60]提出智能合约安全分析框架 Vandal,将EVM 字节码转换为语义逻辑关,为分析合约安全漏洞提供便利.Jiang 等[61]预先定义用于安全漏洞的特征,然后模拟执行大规模交易,通过分析日志中的合约行为实现漏洞检测. ...
Vandal:a scalable security analysis framework for smart contracts
1
2018
... 一方面,沙盒环境承载了区块链节点运行条件,针对虚拟机展开的攻击更为直接;另一方面,智能合约直接对账本进行操作,其漏洞更易影响业务运行,因此控制层的安全防护研究成为热点.Luu等[59]分析了运行于EVM中的智能合约安全性,指出底层平台的分布式语义差异带来的安全问题.Brent 等[60]提出智能合约安全分析框架 Vandal,将EVM 字节码转换为语义逻辑关,为分析合约安全漏洞提供便利.Jiang 等[61]预先定义用于安全漏洞的特征,然后模拟执行大规模交易,通过分析日志中的合约行为实现漏洞检测. ...
ContractFuzzer:fuzzing smart contracts for vulnerability detection
1
2018
... 一方面,沙盒环境承载了区块链节点运行条件,针对虚拟机展开的攻击更为直接;另一方面,智能合约直接对账本进行操作,其漏洞更易影响业务运行,因此控制层的安全防护研究成为热点.Luu等[59]分析了运行于EVM中的智能合约安全性,指出底层平台的分布式语义差异带来的安全问题.Brent 等[60]提出智能合约安全分析框架 Vandal,将EVM 字节码转换为语义逻辑关,为分析合约安全漏洞提供便利.Jiang 等[61]预先定义用于安全漏洞的特征,然后模拟执行大规模交易,通过分析日志中的合约行为实现漏洞检测. ...
Decentralized user-centric access control using pubsub over blockchain
1
2017
... 智慧城市是指利用 ICT 优化公共资源利用效果、提高居民生活质量、丰富设施信息化能力的研究领域,该领域包括个人信息管理、智慧医疗、智慧交通、供应链管理等具体场景.智慧城市强调居民、设施等各类数据的采集、分析与使能,数据可靠性、管理透明化、共享可激励等需求为智慧城市带来了许多技术挑战.区块链去中心化的交互方式避免了单点故障、提升管理公平性,公开透明的账本保证数据可靠及可追溯性,多种匿名机制利于居民隐私的保护,因此区块链有利于问题的解决.Hashemi等[62]将区块链用于权限数据存储,构建去中心化的个人数据接入控制模型;Bao等[63]利用区块链高效认证和管理用户标识,保护车主的身份、位置、车辆信息等个人数据. ...
Pseudonym management through blockchain:cost-efficient privacy preservation on intelligent transportation systems
1
2019
... 智慧城市是指利用 ICT 优化公共资源利用效果、提高居民生活质量、丰富设施信息化能力的研究领域,该领域包括个人信息管理、智慧医疗、智慧交通、供应链管理等具体场景.智慧城市强调居民、设施等各类数据的采集、分析与使能,数据可靠性、管理透明化、共享可激励等需求为智慧城市带来了许多技术挑战.区块链去中心化的交互方式避免了单点故障、提升管理公平性,公开透明的账本保证数据可靠及可追溯性,多种匿名机制利于居民隐私的保护,因此区块链有利于问题的解决.Hashemi等[62]将区块链用于权限数据存储,构建去中心化的个人数据接入控制模型;Bao等[63]利用区块链高效认证和管理用户标识,保护车主的身份、位置、车辆信息等个人数据. ...
Hosting virtual IoT resources on edge-hosts with blockchain
1
2016
... 边缘计算是一种将计算、存储、网络资源从云平台迁移到网络边缘的分布式信息服务架构,试图将传统移动通信网、互联网和物联网等业务进行深度融合,减少业务交付的端到端时延,提升用户体验.安全问题是边缘计算面临的一大技术挑战,一方面,边缘计算的层次结构中利用大量异构终端设备提供用户服务,这些设备可能产生恶意行为;另一方面,服务迁移过程中的数据完整性和真实性需要得到保障.区块链在这种复杂的工作环境和开放的服务架构中能起到较大作用.首先,区块链能够在边缘计算底层松散的设备网络中构建不可篡改的账本,提供设备身份和服务数据验证的依据.其次,设备能在智能合约的帮助下实现高度自治,为边缘计算提供设备可信互操作基础.Samaniego等[64]提出了一种基于区块链的虚拟物联网资源迁移架构,通过区块链共享资源数据从而保障安全性.Stanciu[65]结合软件定义网络(SDN)、雾计算和区块链技术提出分布式安全云架构,解决雾节点中SDN控制器流表策略的安全分发问题.Ziegler等[66]基于 Plasma 框架提出雾计算场景下的区块链可扩展应用方案,提升雾计算网关的安全性. ...
Blockchain based distributed control system for edge computing
1
2017
... 边缘计算是一种将计算、存储、网络资源从云平台迁移到网络边缘的分布式信息服务架构,试图将传统移动通信网、互联网和物联网等业务进行深度融合,减少业务交付的端到端时延,提升用户体验.安全问题是边缘计算面临的一大技术挑战,一方面,边缘计算的层次结构中利用大量异构终端设备提供用户服务,这些设备可能产生恶意行为;另一方面,服务迁移过程中的数据完整性和真实性需要得到保障.区块链在这种复杂的工作环境和开放的服务架构中能起到较大作用.首先,区块链能够在边缘计算底层松散的设备网络中构建不可篡改的账本,提供设备身份和服务数据验证的依据.其次,设备能在智能合约的帮助下实现高度自治,为边缘计算提供设备可信互操作基础.Samaniego等[64]提出了一种基于区块链的虚拟物联网资源迁移架构,通过区块链共享资源数据从而保障安全性.Stanciu[65]结合软件定义网络(SDN)、雾计算和区块链技术提出分布式安全云架构,解决雾节点中SDN控制器流表策略的安全分发问题.Ziegler等[66]基于 Plasma 框架提出雾计算场景下的区块链可扩展应用方案,提升雾计算网关的安全性. ...
Integration of fog computing and blockchain technology using the plasma framework
1
2019
... 边缘计算是一种将计算、存储、网络资源从云平台迁移到网络边缘的分布式信息服务架构,试图将传统移动通信网、互联网和物联网等业务进行深度融合,减少业务交付的端到端时延,提升用户体验.安全问题是边缘计算面临的一大技术挑战,一方面,边缘计算的层次结构中利用大量异构终端设备提供用户服务,这些设备可能产生恶意行为;另一方面,服务迁移过程中的数据完整性和真实性需要得到保障.区块链在这种复杂的工作环境和开放的服务架构中能起到较大作用.首先,区块链能够在边缘计算底层松散的设备网络中构建不可篡改的账本,提供设备身份和服务数据验证的依据.其次,设备能在智能合约的帮助下实现高度自治,为边缘计算提供设备可信互操作基础.Samaniego等[64]提出了一种基于区块链的虚拟物联网资源迁移架构,通过区块链共享资源数据从而保障安全性.Stanciu[65]结合软件定义网络(SDN)、雾计算和区块链技术提出分布式安全云架构,解决雾节点中SDN控制器流表策略的安全分发问题.Ziegler等[66]基于 Plasma 框架提出雾计算场景下的区块链可扩展应用方案,提升雾计算网关的安全性. ...
Blockchained on-device federated learning
1
2018
... 人工智能是一类智能代理的研究,使机器感知环境/信息,然后进行正确的行为决策,正确是指达成人类预定的某些目标.人工智能的关键在于算法,而大部分机器学习和深度学习算法建立于体积庞大的数据集和中心化的训练模型之上,该方式易受攻击或恶意操作使数据遭到篡改,其后果为模型的不可信与算力的浪费.此外,数据采集过程中无法确保下游设备的安全性,无法保证数据来源的真实性与完整性,其后果将在自动驾驶等场景中被放大.区块链不可篡改的特性可以实现感知和训练过程的可信.另外,去中心化和合约自治特性为人工智能训练工作的分解和下放奠定了基础,保障安全的基础上提高计算效率.Kim等[67]利用区块链验证联合学习框架下的分发模型的完整性,并根据计算成本提供相应的激励,优化整体学习效果.Bravo-Marquez 等[68]提出共识机制“学习证明”以减轻PoX类共识的计算浪费,构建公共可验证的学习模型和实验数据库. ...
Proof-of- learning:a blockchain consensus mechanism based on machine learning competitions
1
2019
... 人工智能是一类智能代理的研究,使机器感知环境/信息,然后进行正确的行为决策,正确是指达成人类预定的某些目标.人工智能的关键在于算法,而大部分机器学习和深度学习算法建立于体积庞大的数据集和中心化的训练模型之上,该方式易受攻击或恶意操作使数据遭到篡改,其后果为模型的不可信与算力的浪费.此外,数据采集过程中无法确保下游设备的安全性,无法保证数据来源的真实性与完整性,其后果将在自动驾驶等场景中被放大.区块链不可篡改的特性可以实现感知和训练过程的可信.另外,去中心化和合约自治特性为人工智能训练工作的分解和下放奠定了基础,保障安全的基础上提高计算效率.Kim等[67]利用区块链验证联合学习框架下的分发模型的完整性,并根据计算成本提供相应的激励,优化整体学习效果.Bravo-Marquez 等[68]提出共识机制“学习证明”以减轻PoX类共识的计算浪费,构建公共可验证的学习模型和实验数据库. ...
基于命名数据网络的区块链信息传输机制
1
2018
... 网络层主要缺陷在于安全性,可拓展性则有待优化.如何防御以 BGP 劫持为代表的网络攻击将成为区块链底层网络的安全研究方向[19].信息中心网络将重塑区块链基础传输网络,通过请求聚合和数据缓存减少网内冗余流量并加速通信传输[69].相比于数据层和共识层,区块链网络的关注度较低,但却是影响安全性、可拓展性的基本因素. ...
基于命名数据网络的区块链信息传输机制
1
2018
... 网络层主要缺陷在于安全性,可拓展性则有待优化.如何防御以 BGP 劫持为代表的网络攻击将成为区块链底层网络的安全研究方向[19].信息中心网络将重塑区块链基础传输网络,通过请求聚合和数据缓存减少网内冗余流量并加速通信传输[69].相比于数据层和共识层,区块链网络的关注度较低,但却是影响安全性、可拓展性的基本因素. ...
/
〈
〉
期刊网站版权所有 © 2021 《通信学报》编辑部
地址:北京市丰台区东铁匠营街道顺八条1号院B座“北阳晨光大厦”2层 邮编:100079
电话:010-53878169、53859522、53878236 电子邮件:xuebao@ptpress.com.cn; txxb@bjxintong.com.cn
期刊网站版权所有 © 2021 《通信学报》编辑部
地址:北京市丰台区东铁匠营街道顺八条1号院B座“北阳晨光大厦”2层
邮编:100079 电话:010-53878169、53859522、53878236
电子邮件:txxb@bjxintong.com.cn
一文弄懂区块链技术原理 - 知乎首发于kay的世界切换模式写文章登录/注册一文弄懂区块链技术原理kkay前言近期由于工作需要,于是对区块链相关技术展开了大量的研究和学习.本文将以开发者的角度,对整个区块链行业技术的发展做一次全面的总结和归纳.文章宗旨是为了帮助大家理解区块链技术出现的目的、能够解决什么问题还有数字货币的意义与价值.另外文章后半部分会探讨一下区块链快速发展的今天,开发者群体能做哪些事情.如今市面上新型的数字货币如雨后春笋层出不穷,其中以诈骗圈钱为目的空气币也不少.只有深入了解了数字货币的底层逻辑,才能看清楚它想要达到的目的,谨防上当受骗.区块链技术有一次听外行的朋友提问:"如果区块链技术成熟了,那是不是就可以帮我们国家快速研发出芯片了".这样的发问让人觉得天真可爱,很多朋友由于对区块链的本质缺乏基本的认知,误以为它是一颗灵丹妙药,似乎任何问题在它面前都不值一提.区块链技术不是什么事情都能做,它出现的目的是为了解决人或机构间的信任问题,让互联网的通信数据和网络交流变得真实.为了更好的理解区块链的本质,我们拿同样火热的技术人工智能举例.人工智能解决的是单一客体生产力的问题,通过使用人工智能相关技术,客体便拥有了更强大的能力,以前很多不能做的事情通过人工智能现在就能做到了.比如自动驾驶小汽车、天气预测.无论是能够自动驾驶的小汽车还是预测天气的系统,它们都需要与其他系统进行数据通信.区块链要解决的问题就是让客体与客体之间的信息交流变得真实而又可信.有的朋友会提出疑问,真实的信息交流有那么重要吗?它并没有解决什么重大难题啊,需要花费巨大的人力与财力研究吗?从现实层面来讲,尤其在某些领域,数据的真实性非常重要.假设某跨国集团以全民投票的方式推选公司新一任CEO,由于公司规模庞大,旗下员工多达几十万,那如果保证投票数据一定真实可靠不会被被暗箱操作呢?目前而言,没有万无一失的方式.但如果将投票流程颁布到区块链上进行,那么就能确保数据是真实而又可靠的.因为区块链方案从技术层面直接隔离了数据的可篡改性.每个人的投票记录都是公开而又可追溯的,并且一旦存进了区块链就无法修改.投票只是区块链技术应用方向之一,像国家历史、居民征信记录、药品溯源这类数据都是出现过一次就不能被篡改,另外在尤其关键的金融领域,所有人的转账记录都应该是可以追溯且不能修改的,如果金融体系都无法确保金融数据的绝对可信任,那发展互联网金融毫无意义.区块链原理从上面例子看出,区块链通俗而言就是存储数据的,但它和平常数据库相比有以下三大特点.数据是公开透明的数据的历史记录是可以追溯的数据是不能篡改的区块链到底采用了什么样的架构才具备上述三大特点呢?点击放大上图.图片包含一条按顺序排列的方块,每个方块内存储了数据记录的集合,方块与方块之间首尾相连形成一条长链,方块称之为区块,整条由区块连接而成的链条便称之为区块链.第一个区块通常由区块链的开发者创造,称之为创世区块.假设区块链目前只有一个创世区块,后面的区块依次命名为区块1、区块2、区块3等.此时张三给李四投了一票,这条数据记录就会在节点网络中广播,区块1接收到这条消息把这条记录存到区块1内,过一会儿王五也给李四投了一票,这条记录也会被区块1存起来.随着投票记录越来越多,区块1也不断往内存,直到到快存满的时候,区块1被打包封装成一个完整的区块,这时候区块链上就有了两个完整的区块,创世区块和区块1.在区块1打包完成后,又会在区块1后面创建一个的空的区块2,区块2的头部指向区块1的哈希索引.其中这个安排谁打包封装的过程在数字货币领域被称之为挖矿.上面提到了两个专业术语节点网络和哈希索引,它们代表什么意思呢?在解答上面问题之前,我们先弄清楚区块链的存储机制.区块链既然是用来存数据的,那么它到底存在了哪个地方呢?众所周知,当下所有的互联网应用数据都存在了数据库服务器里,比如微信的聊天记录存在了微信的服务器,微博的实时新闻存在了微博的服务器.这些数据都属于企业的私有财产,被企业完全掌控,它想删就能删,它想查就能查,它想改就能改(当然实际并不会那么去做),数据完全被互联网公司集中掌控,这就是所谓的中心化.中心化有什么弊端呢?数据并非公开透明,操作权限完全由互联网公司掌控.某某明星闹了绯闻,微博的服务器就会因为访问量过大出现宕机,导致微博应用程序打不开.如果服务器仅仅出现宕机还算轻微,倘若出现自然灾害比如地震、火灾导致服务器全部损害,那么积累多年的数据将毁于一旦.区块链技术的普及将会彻底打破中心化的格局,预示着未来一个全新的时代—web3.0的降临.web3.0的目标是达成数据的去中心化,打破由互联网巨头企业垄断的困局,实现人人参与数据的生产和使用,以及管理和监督.区块链是怎么样实现去中心化的目标呢?我们还是以上面投票的案例举例.跨国集团为了实现投票工作的公平、公正与公开,于是采纳了技术员张三的建议,决定将整个投票工作搬到区块链上执行.张三技术团队替公司开发了一款客户端程序,用于提供给全体员工投票.王五是公司一名普通员工,他积极响应公司号召,在电脑上下载安装完客户端程序,找到了心仪的目标李四,按下确定键为他投了一票.此时王五选择李四这一条记录就会发送到区块链上存储起来,成千上万的员工也会像王五一样在客户端上发起投票.无数的投票记录就会不断往区块里面添加,一个区块装满了就立马打包封装继续往下一个区块添加,最后一根长长的区块链便由此形成了.现在回到上面的问题,这根长长的区块链到底存储在了哪里?答案可能让你吃惊,假设公司有10万人,那么这10万名员工每个人的电脑都会存一份这根长长的区块链数据.有的朋友可能会发问,同一份数据在10万人的电脑上都存一遍,这不是浪费资源吗?事实的确如此,可正是由于每个人都存了一份备份,那么每个人都直接成为了数据的维护和管理者,那么这些数据的命运将由所有人共同决定,这便是区块链实现去中心化的核心逻辑.我们再次回到上面提出的疑问,节点网络是什么?哈希索引是什么?成千上万的员工像王五一样安装了客户端程序,那么每一位员工的电脑就是区块链上的节点,所有节点形成的网络的就是节点网络.每个节点都存储了一份完备的区块链数据,而客户端程序在后台悄悄的将所有节点进行了联通,使节点与节点之间能够广播消息、同步数据.哈希索引又是什么呢?回忆一遍上面介绍区块链架构的图片,每个区块都存储了一系列消息记录的集合.实际上每一条消息记录添加到区块中时,都会通过加密算法为这条记录生成一串唯一的哈希值(也可以称之为哈希索引).哈希值是什么呢?它就类似于身份证号,是这条数据的唯一标识,在计算机中就是一条长长的由字母数字以及符号随机组合的长串.倘若有人把王五选择李四这条记录改成王五选择牛二,那么这条数据的哈希值就会立马发生改变.不光每条记录会生成一个哈希值,每一个区块都会依据区块内所包含的内容生成一条唯一的哈希值与之对应.李四的竞选对手牛二一看选票形势对自己非常的不利,心里就泛起了阵阵涟漪.牛二突然想起了他远方表舅家的寡妇娘嫁给了村头卖烧饼的李二狗他爹.李二狗毕业的时候,托牛二在张三技术团队找了份工作,只可惜二狗工作多年才疏学浅,年纪轻轻就秃了头.牛二赶紧联系上二狗,希望他利用技术手段篡改一下区块链上的数据,扭转目前竞选不利的局势,并在电话的结尾承诺将自己多年嫁不出去的女儿介绍给他,二狗欣然答应.二狗亢奋不已,买了两箱可乐熬了三个通宵终于把自己电脑上存放的区块链数据篡改完了,可等到与其他节点进行数据同步的时候,神奇的一幕出现,其他节点通过算法验证,发现二狗这台电脑的数据做过篡改,不予承认.其他节点是怎么做到的呢?二狗把区块链上存放的某条记录王五选择李四改成王五选择牛二,那么这条数据的哈希值就会发生改变,并且这个区块的哈希值也会随之改变.还记得之前提到的吗?每一个区块的头部都会链接上一个区块的哈希值,现在上一个区块因为数据篡改导致哈希值发生改变,导致后面的区块无法通过算法的验证.上面案例可以看出,区块链通过密码学的手段杜绝了数据被篡改的可能性,让所有的数据记录变得真实可信.即便如此,很多朋友的脑海里依旧存在误解,区块链就是数字货币,区块链就是为了圈钱融资割韭菜.区块链和数字货币狭义上理解,区块链是一种去中心化存储数据的技术,它的目标是实现web3.0,跟数字货币没有任何关系.数字货币是使用区块链技术开发出来的具体实现.比如跨国集团使用区块链技术开发了一款投票系统,日本人中本聪他就想使用区块链技术开发一款数字货币.那为什么只要提及区块链就和数字货币分不开呢?这是因为区块链的三大特征公开透明、记录可追溯以及不可篡改性太适合做货币了,如果区块链技术能应用于金融领域,那数字货币的信用体系就能获得大众的认可.很多朋友可能不太清楚,现实社会中很多领域已经应用了区块链技术,但是并没有发行数字货币.比如我们接下来讲解的私有链和联盟链.区块链按照类型划分为三种:公有链、私有链以及联盟链.目前市场十分火爆的比特币、以太坊构建的区块链都属于公有链.凡是公有链,那就意味着所有人都可以参与其中获取信息、发起交易等.私有链并不是对所有人开放,加入私有链首先要得到相关组织或者个人的授权才行.比如上面介绍的投票系统,它就需要构建一条私有链,只有本公司的员工才能参与投票.联盟链也属于私有链的类型,一般大型平台机构之间通常会构建联盟链来存储一些关键数据,比如国家银行、事业机关单位会在联盟链上投资资金研发.私有链和联盟链的相关应用开发,就不需要数字货币的参与.比如投票系统,核心目的就是为了完成公正公平的竞选,刻意创造数字货币没有任何意义.数字货币底层原理数字货币是区块链技术的具体应用,但同时它们又推动了区块链技术的发展.本节将选择比特币、以太坊以及Filecoin作为素材讲解数字货币的使命和意义,以及它们的运行机制和对区块链行业形成的影响.比特币不知何时,谈起区块链就不得不提比特币,足以可见比特币在数字货币中所处的地位.比特币的使命就是为了构建一个所有人都参与维护的超级账本.那什么是超级账本呢?张三、李四、王五、牛二四人流落孤岛.张三身强力壮擅长捕鱼,李四温润孱弱干些缝缝补补,王五名牌大学建筑系高材生会盖棚子.牛二啥体力活都不会干,但有颗经商的头脑.为了物尽其用人尽其才,牛二把大伙召集起来想了个法子.首先给所有商品定价,一条鱼10元,盖一个棚子100元,缝一件野人套装50元.一天张三请王五盖个棚子,牛二记下一笔张三转给王五100元.张三又从李四买件野人套装,牛二记下一笔张三转给李四50元.王五和李四也要吃食物,分别都从张三那里买了条鱼.牛二记下两笔王五转给张三10元和李四转给张三10元.通过牛二手中的账本我们就可以得出张三余额为-130元,张三欠王五90元,张三欠李四40元.理论上来将,只要这个账本一直记录下去,每个人的余额和交易情况都可以计算出来,即使大家之间并没有使用现金交易,但账本上记录的余额依旧可以让人与人之间的经济交易一直进行下去,这个账本和银行的作用很像.荒岛四人组所有的交易记录都被牛二一人掌控,这就是中心化的账本,如果牛二想做假账,其他人也很难察觉.比特币构建出来的区块链就相当于牛二手中的账本,不过这个电子账本由所有人共同维护,不被任何个体单独掌控,交易记录一旦记上了区块链,那就再也不能被篡改了.除此之外比特币不能赊账,如果发起一笔交易张三转给李四100元,那说明张三的余额至少是大于100元的,这笔交易才算合法.日常贸易让每个人的账户余额处于动态变化中,余额的多少需要根据账本的交易记录计算得出,随着交易数量不断增加,牛二天天算这个得累死.人计算起来不仅慢而且容易出错,但计算机算帐可是强项,要不然也不会称之为计算机.随着孤岛的互联网技术不断发展,荒岛四人组赶时髦废弃了原来的中心化账本,决定以后用比特币交易.张三想请王五建个城堡逗闺女,王五拉足马力加班加点用了一个月建成了,张三打开手机app给王五的钱包转了100比特币,那么这笔记录就被记在了区块链上,交易完成.同理王五想从张三那里买头海龟送媳妇上班,等到快递上门后,王五打开手机app给张三转了50比特币确认收货,这笔交易也算完成了.而牛二最惨,自从账本上了区块链,他再也不能偷偷捞两把赚点外快了.以上介绍的都是比特币的作用与意义,那到底什么是挖矿呢?比特币和挖矿之间是什么关系呢?挖矿的机制和原理比特币官方有一个客户端程序,电脑一旦下载安装客户端运行起来,这台电脑就成为了一个节点.应用程序初次启动,它就会与节点网络进行信息同步,把某个节点的上的区块链信息下载保存在本地电脑,这样本机就备份了一份区块链数据.比特币的目标是建立一个超级账本,它里面包含一个钱包的功能,主要用于执行交易转账.钱包其实是私钥、地址和区块链数据的管理工具.地址相当于银行账号,有的数字货币会叫作公钥,别人要转账给你,就把比特币转给你的地址,它长什么样子呢?类似这种2NLscuT3dBeUAdo39JgmnsEDh3Syt3TUq8.私钥相当于银行密码,如果你想转钱给别人,就需要通过私钥来转账.另外私钥是万万不能泄露的,否则别人会把你的比特币全部转走.区块链数据就是区块链上存储的交易记录,张三的客户端程序扫描了电脑上的区块链数据,找到所有与自己相关的交易记录并计算出了账户余额.张三发现余额还有2个比特币,它想全部转给李四.张三付出2个币,李四收到2个币这条交易记录使用张三的私钥经过加密算法生成一个哈希值,即该条交易记录的电子签名.交易记录和电子签名会一同被应用程序广播到节点网络中去,某个节点监听到了这条广播,它们取出交易记录和电子签名,并通过张三的公钥解密计算,以此来确定该条交易记录是不是张三发起的,其次判断整个过程中有没有被篡改.经过验证这条交易记录是合法的,节点又会将该条交易记录广播到其他所有的节点都收到,然后节点自己在本地搜一遍区块链,看张三的帐号里有没有足够的钱,有的话这条交易就成立了,准备放进区块存起来.其他收到广播的节点也会照此操作,最终所有节点电脑上的区块都新增了这一条交易记录.还记得上一节提到过,当区块到了快存不下去的时候,这个区块就会被打包封装成一个完整的区块.那谁负责这个打包封装呢?比特币官方就规定如果哪个节点愿意做这个苦活累活,我就奖它比特币节点网络有这么多的节点,它们都争着抢着想来干这个差事.比特币官方就犯难了,这到底选谁来做呢?比特币官方最后设计了一个POW算法,用来决定哪个节点封装打包区块.这类以抽选节点做打包员的算法统称为共识算法,POW属于共识算法的一种,另外比较有代表性的算法有POS算法和PoST 算法.POW算法(Proof of Work,工作量证明).计算量越大,就越有大概率被抽中POS算法(Proof of Stake,权益证明).根据资产的多少分配获取抽中的概率节点参与了共识算法的竞猜,它就被称之为矿工,它努力赢得打包员的资格所付出的努力称之为挖矿.如果某个矿工被共识算法抽中了,它就拥有了打包封装的资格,我们就可以称之为出块或者爆块了.矿工一旦出块了,它就可以得到官网赠与的比特币奖励.比特币使用的POW算法对显卡的依赖非常强,因此比特币火热时期,市面上的高端显卡一卡难求,硬件厂商乘坐着数字货币的东风大赚一笔.现在我们来看一下,矿工张三出块这段过程的底层逻辑是如何实现的.矿工张三的区块装满了5000条交易信息后,再加上一条福利信息张三得到2个币和前一个区块的验证码以及一个随机数.关键的步骤来了,此时其他矿工也和张三一样做了相似的操作,他们接下来要一决雌雄争夺出块权.张三的电脑首先计算这个新区块的验证码,用哈希算法不停的算,本来瞬间就能算好,但是要求这个验证码必须小于区块内的随机值(难度值),值如果不够小,就把随机数改一改,再算一次.还不行再改随机数,再算继续算.经过这样上亿亿次的计算,终于找到了附合条件的验证码加到这个新区快上,至此这个包就算打包好了.张三把新区块广播到网络上,其它矿工会验证一下这个区块的所有交易信息,并着重验证一下这个区块算出的验证码,都没问题就承认这个块了,从此区块链就长长了一块,然后处理一下自己本地的交易信息池,把那些已记录的清除掉,更新上张三广播的区块,在区块链的末尾再增加一个新的空快,准备下一轮出块权争夺.我们从上面这个过程可以看出,谁能赢得出块权,起决于谁能把类似一道很难的数学题先算出来.有的人可能会问,要是两个人同时算出来怎么办,比特币官方解释已经从采用某种机制隔离了这种可能性的发生.但我们不禁提出质疑,比特币吸纳了全网最高的算力,结果这些算力仅仅只是作用于区块链自身的数据计算和全链条的稳定,并没有对社会做出什么实际贡献,实在是浪费电.以太坊以太坊本身不是数字货币,它是一个数字平台.以太坊使用的数字货币称之为以太币.很多朋友可能提出疑问,以太坊是不是和比特币一样又搞出一种数字货币?以太坊的出现对区块链的发展具有革命性的意义,它不仅拥有数字货币的能力,而且还有了更进一步的突破.狭义上理解, 以太坊 = 比特币 + 智能合约.智能合约是什么呢?智能合约是运行在以太坊虚拟机(EVM)上的,本质上是一段脚本代码,部署在以太坊的区块链里.我们可以简单理解,以太坊是一个庞大的数字平台,平台对所有开发者开放了自定义智能合约的能力.智能合约此时就相当于运行在以太坊上的后端代码,这部分可以由开发者来编写,这样作为开发者的我们就能基于以太坊开发一些日常生活当中的应用.智能合约的编写使用Solidity语言,它和JavaScript很像,它拥有操作区块链上的数据的能力.这和我们当下主流的BS(浏览器-服务器)架构很类似,浏览器访问智能合约对开放的接口,智能合约接受到请求就去操作区块链上的数据.BS架构模式下数据都是存放在数据库里,后端代码接受到前端请求操作数据库里的数据.而现在变成了智能合约接受前端请求操作区块链上的数据.由于数据存放的容器从数据库变成了区块链,因此基于以太坊开发的应用就是去中心化的应用程序了.当然智能合约目前还没有传统后端编程语言这么强大,很多功能比如上传下载、对外发起http请求它本身并不支持,需要调用其他程序实现.我们目前就可以利用以太坊开发一些应用程序,比如投票系统、众筹软件等.因此依靠以太坊生态开发的应用程序如雨后春笋般涌现.网络上充斥着很多三分钟发布一款数字货币、十分钟发布属于你自己的虚拟货币这类消息.实际上这类文章传授的便是在以太坊智能合约上用代码开发一个电子钱包功能,它发行的货币属于代币(ICO),代币与比特币以及以太币有着本质的区别.代币不一定就是不好的,比如说腾讯公司会对外发行qq币,qq币就属于一种代币.用户通过qq币可以购买腾讯旗下的游戏皮肤或装备,但是qq币是不能用于其他公司交易.腾讯公司旗下业务众多,代币的发行可以更好的支持自身产品与服务的销售.但有的人什么实体产业都没有,就利用智能合约开发一款电子钱包,货币数量随它的代码编写任意分发,随后大肆鼓吹欺骗群众购买他们的货币,让很多无辜百姓上当受骗.比特币、以太币它们都有官方客户端程序,而这些客户端程序包含了节点同步、挖矿、区块链操作、消息广播以及各种算法校验等功能模块,这些代码实现了一条底链具备的所有能力,因此开发这类客户端需要很强的技术实力和专业背景.当然也不乏无法分子做一个假的客户端程序,外观界面有模有样的运行,内部其实是一个空壳,用以哄骗普通群众.其次社会上也会存在一些不良资本家,他们会出资组建一支实力完备的技术团队,但目的却是开发一款不会带来任何实际价值的数字货币,商家鼓动媒体公关渲染造势,吸引广大民众投入资本,最后风头一过损失最大的还是普通民众,这些恶劣的行径给社会带来了不良影响.回到主题,以太坊的智能合约能让程序员开发各种各样的应用程序,但如果应用程序的数据非常庞大,比如像抖音、微博,它们包含了大量的图片、视频资源,这些体积庞大的数据存在哪里呢?IPFS我们在讲比特币转账过程已经提到,区块链上每新增一条记录,所有区块链上的节点最后都会同步新增,这就意味着每一条消息记录都应该尽可能保持轻量.试想一下,节点网络之间时时刻刻都在进行着成百上千条交易,如果每一条交易记录的数据量都十分庞大,最后所有节点并发同步将会造成整条区块链的崩溃.依托以太坊开发的应用程序想在区块链上存一个视频,这样的需求该如何实现呢?IPFS相关技术可以有效解决区块链存储大数据的难题.IPFS(星际文件系统)是一种网络传输协议.它的出现时为了替换现有的HTTP协议,使得Web更快、更安全、更开放.IPFS本身而言与区块链没有必然的联系,但它可以设计成与区块链相互协同工作.IPFS社区基于IPFS协议开发了一款客户端应用程序,此时这个IPFS客户端可以看做成一个去中心化的百度网盘.用户往IPFS网络上存储一个文件,应用程序返回一串哈希值,这串哈希值就是该文件的唯一凭证.下一次凭借这串哈希值又可以从IPFS网络上把文件下载到本地.以太坊上的应用程序就可以借助IPFS的能力,将所有数据量大的资源文件都存在IPFS网络上,文件返回的哈希值数据量很小,这些哈希值就可以代替文件存储在以太坊的区块链上.IPFS底层是如何存储数据内容的呢?用户往IPFS网络上传一段视频,视频将自动分割成若干片段,每个片段大小可能为几百k,这个视频可能被分割成20个片段,也可能是30个片段.分割完之后,这些视频碎片会随机分发到网络上的各个节点存储起来.节点就是安装了客户端接入IPFS网络上的计算机.视频被分割成那么多片段,那视频打开和下载岂不是会很麻烦吗?这一点完全不用担心,上传到IPFS网络的文件首先被分割成若干片段,文件整体通过算法加密生成一串唯一的哈希值--文件索引.每个小片段也都通过加密算法生成了唯一的哈希值,然后将小片段的哈希值按照文件原有的次序排成哈希列表,这份文件中除了视频的片段、哈希值列表和文件索引,还包含一个内容摘要,当用户想要下载视频的时候,只需要搜索这份文件的索引,就可以顺利打开或者下载视频.IPFS的行为模式和电驴资源分享很像.但是它存在致命的弱点,比如视频上传到IPFS网络,视频碎片分发到不同节点存储,可一旦那些节点关机了,那岂不是视频资源就无法下载了.Filecoin的出现能解决上述问题,Filecoin是使用IPFS传输协议构建的数字货币,俗称文件币.狭义上理解,Filecoin = 比特币 + IPFS.Filecoin能解决IPFS的两大难题.Filecoin通过挖矿的奖励机制促使更多的节点一直保持在线状态.Filecoin会将上传的文件碎片在不同节点上多做备份,保证40%的节点出现问题时还能保持文件的完整性,真正做到数据永不丢失.Filecoin的目的就是为了构建一块用于存储大型文件数据的区块链网络,它的出现对于区块链行业的发展有着革命性的意义.区块链应用的开发上面对几款主流的数字货币都做了详细的介绍,读者看到这里想必已经对整个区块链行业的状况有了基本的认知.接下来我想谈一谈面对迅猛发展的区块链技术,作为IT领域的从业者,我们能做些什么?基于以太坊的智能合约,软件团队开发一些DApp(去中心化应用)服务于公司业务.DApp的开发门槛并不高,很多web开发者通过短期的学习便可上手. 模仿以太坊,软件团队从头研发一条公有链对外提供收费服务.与以太坊相比,企业应该突出自家区块链的的优势.比如降低开发的门槛,增强智能合约的能力,提供部署运维监控方面的支持. 模仿以太坊,软件团队从头研发一条联盟链对国家银行、政府机关或大型商户提供服务.联盟链的发展对社会生活能产生很多积极的影响,也是国家投资重点研究的对象之一. 超级矿机的研发和销售. 普通服务器安装强化后的硬件和客户端软件就变成了超级矿机. 那如何强化呢? 硬件团队通过实际测试获取最佳硬件配置,达到算力的最优值. 软件团队通过优化客户端应用程序的底层算法,架构和业务以及系统驱动,达到提升算力和封装速度的目标.另外优化后的客户端应用程序也可以单独销售. 企业对外提供超级矿机的托管服务.开发者需要基于矿机群开发部署运维脚本和监控程序. 企业通过数字货币官方开放的rpc接口开发周边应用.比如网页或者小程序方便客户查看自己的收益情况. 结尾很多开发工程师原来在公司主要做页面、开发App等,后来转型成为了区块链技术人员.原来那些项目的程序、应用都是中心化的,那么如何把那些中心化的思想理念转变成去中心化的,这需要很多技术人员去了解和思考.另外很多区块链项目都在githup上开源了,代码也是公开的,比如比特币和以太坊.通过源代码理解它们的运营机制,学习怎么去写去中心化的应用和设计原理,然后参与到去中心化项目当中.发布于 2021-07-20 22:46区块链技术数字货币区块链价值赞同 15010 条评论分享喜欢收藏申请转载文章被以下专栏收录kay的世界更自
什么是区块链技术? - IBM Blockchain
什么是区块链技术?
区块链是一种不可篡改的共享账本,用于记录交易、跟踪资产和建立信任
区块链的优点
区块链成功从这里开始
IBM《区块链傻瓜书》现已发行第 3 版,已向超过 6.8 万名读者介绍了区块链。
内容:
区块链基础
区块链如何运作
区块链的实践应用:用例
由 Linux 基金会主导的 Hyperledger 项目
第一次区块链应用的十个步骤
区块链技术概述
区块链定义:区块链是一个共享的、不可篡改的账本,旨在促进业务网络中的交易记录和资产跟踪流程。 资产可以是有形的(如房屋、汽车、现金、土地),也可以是无形的(如知识产权、专利、版权、品牌)。几乎任何有价值的东西都可以在区块链网络上跟踪和交易,从而降低各方面的风险和成本。
为什么区块链很重要:业务运营依靠信息。信息接收速度越快,内容越准确,越有利于业务运营。区块链是用于传递这些信息的理想之选,因为它可提供即时、共享和完全透明的信息,这些信息存储在不可篡改的账本上,只能由获得许可的网络成员访问。区块链网络可跟踪订单、付款、帐户、生产等信息。由于成员之间共享单一可信视图,因此,您可采取端到端方式查看交易的所有细节,从而增强信心,提高效率并获得更多的新机会。
区块链的关键元素
分布式账本技术
所有网络参与者都有权访问分布式账本及其不可篡改的交易记录。 借助这个共享账本,交易只需记录一次,从而消除了传统业务网络中典型的重复工作。
不可篡改的记录
当交易被记录到共享账本之后,任何参与者都不能更改或篡改相关信息。 如果交易记录中有错误,则必须添加新交易才能撤消错误,这两个交易随后都是可视的。
智能合约
为了加快交易速度,区块链上存储了一系列自动执行的规则,称为 "智能合约" 。 智能合约可以定义企业债券转让的条件,包括有关要支付的旅行保险的条款等等。
区块链如何运作
每个交易发生时,都会被记录为一个数据“区块”
这些交易表明资产的流动情况,资产可以是有形的(如产品),也可以是无形的(如知识产权)。 数据区块可以记录您选择的信息:人、事、时、地、数甚至条件(例如食品运输温度)。
每个区块都与其前后的区块连接
随着资产从一地移至另一地或所有权的变更,这些数据区块形成了数据链。 数据区块可以确认交易的确切时间和顺序,通过将数据区块安全地链接在一起,可以防止任何数据区块被篡改或在两个现有数据区块之间插入其他数据区块。
交易以区块形式组合成不可逆的链:区块链
每添加一个数据区块都会增强对前一个区块的验证,从而也增强对整条区块链的验证。 因此,篡改区块链很容易就会被发现,这也是不可篡改性的关键优势所在。 这不但消除了恶意人员进行篡改的可能性,还建立了您和其他网络成员可以信任的交易账本。
区块链技术的优点
需要改变的方面:运营人员常常在保留重复记录和执行第三方验证等方面浪费精力。 记录保存系统容易受到欺诈和网络攻击的威胁。 有限的透明度会延缓数据验证速度。 随着物联网的到来,交易量呈爆炸式激增。 所有这些因素都会影响开展业务的速度并侵蚀利润,因此我们需要更好的方法。 于是区块链闪亮登场。
更高的信任度
通过使用区块链技术,作为会员制网络中的一员,您可以确信自己收到准确、及时的数据,并且您的机密区块链记录只能与您特别授予访问权限的网络成员共享。
更高的安全性
所有的网络成员都需要就数据准确性达成共识,并且所有经过验证的交易都将永久记录在案,不可篡改。 没有人可以删除交易,即便是系统管理员也不例外。
更高的效率
通过在网络成员之间共享分布式账本,可避免在记录对账方面浪费时间。 为了加快交易速度,区块链上存储了一系列自动执行的规则,称为“智能合约”。
区块链基础知识五分钟简介
1
深入了解区块链技术的基础知识:数据块中如何包含代表任何有价值事物的数据,它们如何在不可篡改的数据链中按时间顺序连接在一起,以及区块链与比特币等加密货币之间有何差异。
2
了解区块链的分散性质如何使其有别于传统的记录保存,探索许可区块链在商业交易中的价值,以及区块链如何使信任和透明度达到新的水平。
3
食品行业只是通过区块链技术实现转型的行业之一。 了解如何在保护网络参与者数据的前提下,追溯食品的种植、收获、运输和加工的时间、地点和方式。
4
区块链之所以能建立信任,是因为它代表了真实的共享记录。每个人都能相信的数据将有助于推动其他新技术的发展,从而能大幅提高效率、透明度和置信度。
区块链网络的类型
可采用多种方式建立区块链网络。 它们可以是公有、私有、许可式区块链网络,或由联盟建立。
公有区块链网络
公有区块链是任何人都可以加入和参与的区块链,如比特币。 缺点可能包括需要大量计算能力,交易的私密性极低或根本没有私密性可言,以及安全性较弱。 而这些都是区块链的企业用例的重要考虑因素。
私有区块链网络
私有区块链网络与公有区块链网络相似,也是分散的点对点网络。 但是,在私有区块链网络中,由一个组织负责管理网络,控制谁获准参与网络,并执行共识协议,维护共享账本。 这有助于显著提高参与者之间的信任和信心,具体取决于用例。 私有区块链可在企业防火墙后运行,甚至可在企业内部托管。
许可式区块链网络
建立私有区块链的企业通常也会建立许可式区块链网络。 需要注意的是,公有区块链网络也可以成为许可式网络。 这种模式对获准参与网络和执行特定交易的人员施加限制。 参与者需要获得邀请或许可才能加入。
联盟区块链
多个组织可以分担维护区块链的责任。 这些预先挑选的组织决定谁可以提交交易或访问数据。 如果所有参与者都必须获得许可才能参与,并且对区块链共担责任,那么对于企业而言,联盟区块链是理想之选。
区块链安全性
区块链网络的风险管理系统
在构建企业区块链应用时,必须制定全面的安全战略,通过使用网络安全框架、保证服务以及最佳实践,缓解攻击和欺诈带来的风险。
了解有关区块链安全性的更多信息
区块链用例和应用
IBM Food Trust 通过从海洋一直到超市和餐馆全程跟踪捕捞的每一批海鲜,帮助 Raw Seafoods 增强整个食品供应链的信任度。
INBLOCK 发行了基于 Hyperledger Fabric 的 Metacoin 加密货币,旨在更迅速、更方便、更安全地开展数字资产交易。
利用区块链技术,实现变革性的医疗成果
IBM Blockchain Platform 帮助生态系统改变确保信任、数据来源和效率的方式,从而改善患者治疗和组织盈利能力。
阅读:实现变革性的医疗成果 (PDF, 188 KB)
了解 Golden State Foods 如何利用区块链的不可篡改性,跟踪供应链中的货物,帮助保障食品质量。
Vertrax 和 Chateau Software 推出了第一个基于 IBM Blockchain Platform 的多云区块链解决方案,旨在帮助防止大宗石油和天然气分销的供应链中断。
Home Depot 采用 IBM Blockchain 技术,获取有关发货和收货的共享可信信息,从而减少供应商争议并加速解决争议。
行业区块链
行业领军企业使用 IBM Blockchain 消除摩擦,建立信任,实现新的价值。 选择细分行业以了解详细信息。
供应链
医疗保健
政府
零售
媒体和广告
石油和天然气
电信
制造
保险
金融服务
旅游和交通运输 (PDF, 340 KB)
区块链常见问题解答
区块链和比特币有何区别?
比特币是一种不受监管的数字货币。 比特币使用区块链技术作为其交易账本。
这段视频说明了两者之间的差异。
IBM Blockchain Platform 与 Hyperledger 有何关系?
IBM Blockchain Platform 由 Hyperledger 技术提供支持。
这种区块链解决方案可以帮助任何开发人员顺利转变为区块链开发人员。
请访问 Hyperledger 网站以了解详细信息。
了解有关 Hyperledger 的更多信息
我可以在自己期望的任何云上进行部署吗?
IBM Blockchain Platform 软件经过优化处理,可以部署在 Red Hat 最先进的企业级 Kubernetes 平台 Red Hat® OpenShift® 之上。
这意味着您可以更灵活地选择在何处部署区块链网络组件,无论是本地、公有云还是混合云架构。
信息图:在自己选择的云环境中进行部署
我需要更多详细信息。 可从哪里获得?
如需更详细地了解区块链网络的运作方式以及使用方法,请阅读《分布式账本简介》(Introduction to Distributed Ledgers)。
学习 IBM Developer 上的区块链教程,了解更多信息
探索 IBM Blockchain Platform 的功能,这是唯一完全集成的企业级区块链平台,旨在帮助您加速多机构业务网络的开发、治理和运营。
立即注册,下载 IBM Blockchain Platform 白皮书 (PDF, 616 KB)
获取有关 Hyperledger Fabric 的详细信息,了解其独到之处、为何对业务网络至关重要以及如何开始使用。
访问 IBM Developer 上的 Hyperledger 页面
这份开发人员快速入门指南解释了如何使用 IBM Blockchain Platform Starter Plan 构建入门级区块链网络并开始编写代码。
查看开发人员快速入门指南
区块链解决方案
IBM Blockchain 解决方案
IBM Blockchain Platform 属于领先的 Hyperledger Fabric 平台。区块链创新者可充分利用这一平台,通过 Red Hat® OpenShift® 在任何计算环境中构建、运营、管理和发展区块链解决方案。
了解有关 IBM Blockchain Platform 的信息
区块链咨询
作为顶级区块链服务提供商,IBM Blockchain Services 拥有丰富的专业知识,可帮助您基于最佳技术构建强大的解决方案。超过 1,600 名区块链专家使用来自 100 多个实时网络的洞察,帮助您构建和发展。
了解有关区块链咨询的信息
所有 IBM Blockchain 解决方案
采用 IBM Blockchain 解决方案是区块链取得成功的最佳捷径。 IBM 融合了各种网络,使您能够轻松让其他成员加入,共同推动食品供应、供应链、贸易融资、金融服务、保险以及媒体和广告等领域的转型。
查看我们快速发展的区块链解决方案
区块链技术资源
通过艺术诠释区块链技术
我们请来五位对区块链技术知之甚少的艺术家,创作有关区块链主要优点的艺术作品。查看他们的作品,然后在我们最新网络研讨会系列 Blockparty 中,从 IBM 客户和业务合作伙伴那里了解更多信息。
区块链技术博客
网络上有关区块链技术的内容并不缺乏。但对于 100 多万的读者来说,IBM Blockchain Pulse 博客是区块链思想领导力和洞察分析最值得信赖的来源之一。
区块链技术播客
戴上耳机,通过聆听区块链创新者的知识来充实自我。了解区块链技术如何帮助个人重新获得对身份的控制权限、消除全球贫困和减少污染等难题。
区块链技术用例
通过了解创新者如何使用区块链技术 IBM Blockchain Platform 变革业务来获得启发。您可以加入现有的区块链网络,也可以与我们合作创建您自己的区块链网络。
客户成功案例
了解我们的客户如何运用 IBM Blockchain 区块链技术,对组织进行革新,从而获得切实可行的业务成果。
区块链技术后续步骤
浏览我们的参考指南,更深入地了解区块链的各个方面,包括运作方式、使用方法以及实施注意事项。
区块链技术主题
区块链技术的优点
智能合约
面向企业的区块链
区块链安全性
社会公益区块链
区块链和物联网
Hyperledger
一文读懂区块链技术逻辑和原理 - 知乎首发于程序员面试刷题宝库切换模式写文章登录/注册一文读懂区块链技术逻辑和原理不朽的传奇区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。原文转载于:一文读懂区块链技术逻辑和原理 - 区块链 - 电子发烧友网区块链(Blockchain)是比特币的一个重要概念,货币联合清华大学五道口金融学院互联网金融实验室、新浪科技发布的《2014—2016全球比特币发展研究报告》提到区块链是比特币的底层技术和基础架构。本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链技术逻辑区块链可以简单的分为三个层次,协议层、扩展层和应用层。其中,协议层又可以分为存储层和网络层,它们相互独立但又不可分割。如图:协议层所谓的协议层,就是指代最底层的技术。这个层次通常是一个完整的区块链产品,类似于我们电脑的操作系统,它维护着网络节点,仅提供Api供调用。通常官方会提供简单的客户端(通称为钱包),这个客户端钱包功能也很简单,只能建立地址、验证签名、转账支付、查看余额等。这个层次是一切的基础,构建了网络环境、搭建了交易通道、制定了节点奖励规则,至于你要交易什么,想干什么,它一概不过问,也过问不了。典型的例子,自然是比特币,还有各种二代币,比如莱特币等,本书介绍的亿书币也是。这个层次,是现阶段开发者聚集的地方,这说明加密货币仍在起步当中。从用到的技术来说,协议层主要包括网络编程、分布式算法、加密签名、数据存储技术等4个方面,其中网络编程能力是大家选择编程语言的主要考虑因素,因为分布式算法基本上属于业务逻辑上的实现,什么语言都可以做到,加密签名技术是直接简单的使用(请看书中相关的加密解密文章,不建议自由发挥,没有过多的编码逻辑),数据库技术也主要在使用层面,只有点对点网络的实现和并发处理才是开发的难点,所以对于那些网络编程能力强,对并发处理简单的语言,人们就特别偏爱。也因此,Nodejs开发区块链应用,逐渐变得更加流行,Go语言也在逐渐兴起。我把这个层面进一步分成了存储层和网络层。数据存储可以相对独立,选择自由度大一些,可以单独来讨论。选择的原则无非是性能和易用性。我们知道,系统的整体性能,主要取决于网络或数据存储的I/O性能,网络I/O优化空间不大,但是本地数据存储的I/O是可以优化的。比如,比特币选择的是谷歌的LevelDB,据说这个数据库读写性能很好,但是很多功能需要开发者自己实现。目前,困扰业界的一个重大问题是,加密货币交易处理量远不如现在中心化的支付系统(银行等),除了I/O,需要全方位的突破。分布式算法、加密签名等都要在实现点对点网络的过程中加以使用,所以自然是网络层的事情,也是编码的重点和难点,《Nodejs开发加密货币》全书分享的基本上就是这部分的内容。当然,也有把点对点网络的实现单独分开的,把节点查找、数据传输和验证等逻辑独立出来,而把共识算法、加密签名、数据存储等操作放在一起组成核心层。无论怎么组合,这两个部分都是最核心、最底层的部分,都是协议层的内容。扩展层这个层面类似于电脑的驱动程序,是为了让区块链产品更加实用。目前有两类,一是各类交易市场,是法币兑换加密货币的重要渠道,实现简单,来钱快,成本低,但风险也大。二是针对某个方向的扩展实现,比如基于亿书侧链,可为第三方出版机构、论坛网站等内容生产商提供定制服务等。特别值得一提的就是大家听得最多的“智能合约”的概念,这是典型的扩展层面的应用开发。所谓“智能合约”就是“可编程合约”,或者叫做“合约智能化”,其中的“智能”是执行上的智能,也就是说达到某个条件,合约自动执行,比如自动转移证券、自动付款等,目前还没有比较成型的产品,但不可否认,这将是区块链技术重要的发展方向。扩展层使用的技术就没有什么限制了,可以包括很多,上面提到的分布式存储、机器学习、VR、物联网、大数据等等,都可以使用。编程语言的选择上,可以更加自由,因为可以与协议层完全分离,编程语言也可以与协议层使用的开发语言不相同。在开发上,除了在交易时与协议层进行交互之外,其他时候尽量不要与协议层的开发混在一起。这个层面与应用层更加接近,也可以理解为B/S架构的产品中的服务端(Server)。这样不仅在架构设计上更加科学,让区块链数据更小,网络更独立,同时也可以保证扩展层开发不受约束。从这个层面来看,区块链可以架构开发任何类型的产品,不仅仅是用在金融行业。在未来,随着底层协议的更加完善,任何需要第三方支付的产品都可以方便的使用区块链技术;任何需要确权、征信和追溯的信息,都可以借助区块链来实现。我个人觉得,这个目标应该很快就能实现。应用层这个层面类似于电脑中的各种软件程序,是普通人可以真正直接使用的产品,也可以理解为B/S架构的产品中的浏览器端(Browser)。这个层面的应用,目前几乎是空白。市场亟待出现这样的应用,引爆市场,形成真正的扩张之势,让区块链技术快速走进寻常百姓,服务于大众。大家使用的各类轻钱包(客户端),应该算作应用层最简单、最典型的应用。很快,亿书将基于亿书网络推出文档协作工具,这个就是典型的应用层的产品。限于当前区块链技术的发展,亿书只能从协议层出发,把目标指向应用层,同时为第三方开发者提供扩展层的强大支持。这样做既可以避免贪多,又可以避免无法落地,是真正理性的开发路线。因为纯粹的开发协议层或扩展层,无法真正理解和验证应用层,会脱离实际,让第三方开发者很难使用。如果仅仅考虑应用层,市面上又找不到真正牢固、易用的协议层或扩展层的产品。所以,我们只好全面发力,采取完全开源开放的态度,通过社区的力量,共同去做一件有意义的事情,也算为中国区块链技术发展做点技术积累和微薄贡献。区块链技术原理如今的区块链技术概括起来是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术。其实,区块链技术并不是一种单一的、全新的技术,而是多种现有技术(如加密算法、P2P文件传输等)整合的结果,这些技术与数据库巧妙地组合在一起,形成了一种新的数据记录、传递、存储与呈现的方式。简单的说,区块链技术就是一种大家共同参与记录信息、存储信息的技术。过去,人们将数据记录、存储的工作交给中心化的机构来完成,而区块链技术则让系统中的每一个人都可以参与数据的记录、存储。区块链技术在没有中央控制点的分布式对等网络下,使用分布式集体运作的方法,构建了一个P2P的自组织网络。通过复杂的校验机制,区块链数据库能够保持完整性、连续性和一致性,即使部分参与人作假也无法改变区块链的完整性,更无法篡改区块链中的数据。区块链技术涉及的关键点包括:、去中心化、集体维护、时间戳、可靠数据库、去信任、非对称加密等。区块链技术重新定义了网络中信用的生成方式:在系统中,参与者无需了解其他人的背景资料,也不需要借助第三方机构的担保或保证,区块链技术保障了系统对价值转移的活动进行记录、传输、存储,其最后的结果一定是可信的。区块链技术原理的来源可归纳为一个数学问题:拜占庭将军问题。拜占庭将军问题延伸到互联网生活中来,其内涵可概括为:在互联网大背景下,当需要与不熟悉的对手方进行价值交换活动时,人们如何才能防止不会被其中的恶意破坏者欺骗、迷惑从而做出错误的决策。进一步将拜占庭将军问题延伸到技术领域中来,其内涵可概括为:在缺少可信任的中央节点和可信任的通道的情况下,分布在网络中的各个节点应如何达成共识。区块链技术解决了闻名已久的拜占庭将军问题——它提供了一种无需信任单个节点、还能创建共识网络的方法。编辑于 2020-05-15 16:54区块链开发指南(书籍)区块链价值区块链革命(书籍)赞同 1添加评论分享喜欢收藏申请转载文章被以下专栏收录程序员面试刷
区块链原理 - 廖雪峰的官方网站
Index
廖雪峰的官方网站
Blog
Java教程
手写Spring
手写Tomcat
Makefile教程
Python教程
JavaScript教程
区块链教程
SQL教程
Git教程
文章
问答
More
Java教程
手写Spring
手写Tomcat
Makefile教程
Python教程
JavaScript教程
区块链教程
SQL教程
Git教程
文章
问答
Java教程
手写Spring
手写Tomcat
Makefile教程
Python教程
JavaScript教程
区块链教程
SQL教程
Git教程
文章
问答
Profile
Passkey
Sign Out
Sign In
English
简体中文
Index
区块链教程
比特币
区块链原理
P2P交易原理
私钥
公钥和地址
签名
挖矿原理
可编程支付原理
多重签名
UTXO模型
Segwit地址
HD钱包
钱包层级
助记词
地址监控
以太坊
账户
区块结构
交易
智能合约
编写合约
部署合约
调用合约
编写Dapp
常用合约
ERC20
Wrapped Ether
关注公众号不定期领红包:
加入知识星球社群:
关注微博获取实时动态:
区块链原理
Last updated: ...
/
Reads: 8969909
Edit
区块链就是一个不断增长的全网总账本,每个完全节点都拥有完整的区块链,并且,节点总是信任最长的区块链,伪造区块链需要拥有超过51%的全网算力。
区块链的一个重要特性就是不可篡改。为什么区块链不可篡改?我们先来看区块链的结构。
区块链是由一个一个区块构成的有序链表,每一个区块都记录了一系列交易,并且,每个区块都指向前一个区块,从而形成一个链条:
如果我们观察某一个区块,就可以看到,每个区块都有一个唯一的哈希标识,被称为区块哈希,同时,区块通过记录上一个区块的哈希来指向上一个区块:
每一个区块还有一个Merkle哈希用来确保该区块的所有交易记录无法被篡改。
区块链中的主要数据就是一系列交易,第一条交易通常是Coinbase交易,也就是矿工的挖矿奖励,后续交易都是用户的交易。
区块链的不可篡改特性是由哈希算法保证的。
哈希算法
我们来简单介绍一下什么是哈希算法。
哈希算法,又称散列算法,它是一个单向函数,可以把任意长度的输入数据转化为固定长度的输出:
h=H(x)
例如,对morning和bitcoin两个输入进行某种哈希运算,得到的结果是固定长度的数字:
H("morning") = c7c3169c21f1d92e9577871831d067c8
H("bitcoin") = cd5b1e4947e304476c788cd474fb579a
我们通常用十六进制表示哈希输出。
因为哈希算法是一个单向函数,要设计一个安全的哈希算法,就必须满足:通过输入可以很容易地计算输出,但是,反过来,通过输出无法反推输入,只能暴力穷举。
H("???????") = c7c3169c21f1d92e9577871831d067c8
H("???????") = cd5b1e4947e304476c788cd474fb579a
想要根据上述结果反推输入,只能由计算机暴力穷举。
哈希碰撞
一个安全的哈希算法还需要满足另一个条件:碰撞率低。
碰撞是指,如果两个输入数据不同,却恰好计算出了相同的哈希值,那么我们说发生了碰撞:
H("data-123456") = a76b1fb579a02a476c789d9115d4b201
H("data-ABCDEF") = a76b1fb579a02a476c789d9115d4b201
因为输入数据长度是不固定的,所以输入数据是一个无限大的集合,而输出数据长度是固定的,所以,输出数据是一个有限的集合。把一个无限的集合中的每个元素映射到一个有限的集合,就必然存在某些不同的输入得到了相同的输出。
哈希碰撞的本质是把无限的集合映射到有限的集合时必然会产生碰撞。我们需要计算的是碰撞的概率。很显然,碰撞的概率和输出的集合大小相关。输出位数越多,输出集合就越大,碰撞率就越低。
安全哈希算法还需要满足一个条件,就是输出无规律。输入数据任意一个bit(某个字节的某一个二进制位)的改动,会导致输出完全不同,从而让攻击者无法逐步猜测输入,只能依赖暴力穷举来破解:
H("hello-1") = 970db54ab8a93b7173cb48f55e67fd2c
H("hello-2") = 8284353b768977f05ac600baad8d3d17
哈希算法有什么作用?假设我们相信一个安全的哈希算法,那么我们认为,如果两个输入的哈希相同,我们认为两个输入是相同的。
如果输入的内容就是文件内容,而两个文件的哈希相同,说明文件没有被修改过。当我们从网站上下载一个非常大的文件时,我们如何确定下载到本地的文件和官方网站发布的原始文件是完全相同,没有经过修改的呢?哈希算法就体现出了作用:我们只需要计算下载到本地的文件哈希,再和官方网站给出的哈希对比,如果一致,说明下载文件是正确的,没有经过篡改,如果不一致,则说明下载的文件肯定被篡改过。
大多数软件的官方下载页面会同时给出该文件的哈希值,以便让用户下载后验证文件是否被篡改:
和文件类似,如果两份数据的哈希相同,则可以100%肯定,两份数据是相同的。比特币使用哈希算法来保证所有交易不可修改,就是计算并记录交易的哈希,如果交易被篡改,那么哈希验证将无法通过,说明这个区块是无效的。
常用哈希算法
常用的哈希算法以及它们的输出长度如下:
哈希算法输出长度(bit)输出长度(字节)
MD5128 bit16 bytes
RipeMD160160 bits20 bytes
SHA-1160 bits20 bytes
SHA-256256 bits32 bytes
SHA-512512 bits64 bytes
比特币使用的哈希算法有两种:SHA-256和RipeMD160
SHA-256的理论碰撞概率是:尝试2的130次方的随机输入,有99.8%的概率碰撞。注意2130是一个非常大的数字,大约是1361万亿亿亿亿。以现有的计算机的计算能力,是不可能在短期内破解的。
比特币使用两种哈希算法,一种是对数据进行两次SHA-256计算,这种算法在比特币协议中通常被称为hash256或者dhash。
另一种算法是先计算SHA-256,再计算RipeMD160,这种算法在比特币协议中通常被称为hash160。
const
bitcoin = require('bitcoinjs-lib'),
createHash = require('create-hash');
----
function standardHash(name, data) {
let h = createHash(name);
return h.update(data).digest();
}
function hash160(data) {
let h1 = standardHash('sha256', data);
let h2 = standardHash('ripemd160', h1);
return h2;
}
function hash256(data) {
let h1 = standardHash('sha256', data);
let h2 = standardHash('sha256', h1);
return h2;
}
let s = 'bitcoin is awesome';
console.log('ripemd160 = ' + standardHash('ripemd160', s).toString('hex'));
console.log(' hash160 = ' + hash160(s).toString('hex'));
console.log(' sha256 = ' + standardHash('sha256', s).toString('hex'));
console.log(' hash256 = ' + hash256(s).toString('hex'));
运行上述代码,观察对一个字符串进行SHA-256、RipeMD160、hash256和hash160的结果。
区块链不可篡改特性
有了哈希算法的预备知识,我们来看比特币的区块链如何使用哈希算法来防止交易记录被篡改。
区块本身记录的主要数据就是一系列交易,所以,区块链首先要保证任何交易数据都不可修改。
Merkle Hash
在区块的头部,有一个Merkle Hash字段,它记录了本区块所有交易的Merkle Hash:
Merkle Hash是把一系列数据的哈希根据一个简单算法变成一个汇总的哈希。
假设一个区块有4个交易,我们对每个交易数据做dhash,得到4个哈希值a1,a2,a3和a4:
a1 = dhash(tx1)
a2 = dhash(tx2)
a3 = dhash(tx3)
a4 = dhash(tx4)
注意到哈希值也可以看做数据,所以可以把a1和a2拼起来,a3和a4拼起来,再计算出两个哈希值b1和b2:
┌───────────────┐ ┌───────────────┐
│b1=dhash(a1+a2)│ │b2=dhash(a3+a4)│
└───────────────┘ └───────────────┘
▲ ▲
┌───────┴───────┐ ┌───────┴───────┐
│ │ │ │
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│a1=dhash(tx1)│ │a2=dhash(tx2)│ │a3=dhash(tx3)│ │a4=dhash(tx4)│
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
最后,把b1和b2这两个哈希值拼起来,计算出最终的哈希值,这个哈希就是Merkle Hash:
┌───────────────────┐
│merkle=dhash(b1+b2)│
└───────────────────┘
▲
┌───────────────┴───────────────┐
│ │
┌───────────────┐ ┌───────────────┐
│b1=dhash(a1+a2)│ │b2=dhash(a3+a4)│
└───────────────┘ └───────────────┘
▲ ▲
┌───────┴───────┐ ┌───────┴───────┐
│ │ │ │
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│a1=dhash(tx1)│ │a2=dhash(tx2)│ │a3=dhash(tx3)│ │a4=dhash(tx4)│
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
如果交易的数量不恰好是4个怎么办?例如,只有3个交易时,第一个和第二个交易的哈希a1和a2可以拼起来算出b1,第三个交易只能算出一个哈希a3,这个时候,就把a3直接复制一份,算出b2,这样,我们也能最终计算出Merkle Hash:
┌───────────────────┐
│merkle=dhash(b1+b2)│
└───────────────────┘
▲
┌───────────────┴───────────────┐
│ │
┌───────────────┐ ┌───────────────┐
│b1=dhash(a1+a2)│ │b2=dhash(a3+a3)│
└───────────────┘ └───────────────┘
▲ ▲
┌───────┴───────┐ ┌───────┴───────┐
│ │ │ │
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌ ─ ─ ─ ─ ─ ─ ┐
│a1=dhash(tx1)│ │a2=dhash(tx2)│ │a3=dhash(tx3)│
└─────────────┘ └─────────────┘ └─────────────┘ └ ─ ─ ─ ─ ─ ─ ┘
如果有5个交易,我们可以看到,a5被复制了一份,以便计算出b3,随后b3也被复制了一份,以便计算出c2。总之,在每一层计算中,如果有单数,就把最后一份数据复制,最后一定能计算出Merkle Hash:
┌─────────┐
│ merkle │
└─────────┘
▲
┌───────────┴───────────┐
│ │
┌───┐ ┌───┐
│c1 │ │c2 │
└───┘ └───┘
▲ ▲
┌─────┴─────┐ ┌─────┴─────┐
│ │ │ │
┌───┐ ┌───┐ ┌───┐ ┌ ─ ┐
│b1 │ │b2 │ │b3 │ b3
└───┘ └───┘ └───┘ └ ─ ┘
▲ ▲ ▲
┌──┴──┐ ┌──┴──┐ ┌──┴──┐
│ │ │ │ │ │
┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌ ─ ┐
│a1 │ │a2 │ │a3 │ │a4 │ │a5 │ a5
└───┘ └───┘ └───┘ └───┘ └───┘ └ ─ ┘
从Merkle Hash的计算方法可以得出结论:修改任意一个交易哪怕一个字节,或者交换两个交易的顺序,都会导致Merkle Hash验证失败,也就会导致这个区块本身是无效的,所以,Merkle Hash记录在区块头部,它的作用就是保证交易记录永远无法修改。
Block Hash
区块本身用Block Hash——也就是区块哈希来标识。但是,一个区块自己的区块哈希并没有记录在区块头部,而是通过计算区块头部的哈希得到的:
区块头部的Prev Hash记录了上一个区块的Block Hash,这样,可以通过Prev Hash追踪到上一个区块。
由于下一个区块的Prev Hash又会指向当前区块,这样,每个区块的Prev Hash都指向自己的上一个区块,这些区块串起来就形成了区块链。
区块链的第一个区块(又称创世区块)并没有上一个区块,因此,它的Prev Hash被设置为00000000...000。
如果一个恶意的攻击者修改了一个区块中的某个交易,那么Merkle Hash验证就不会通过。所以,他只能重新计算Merkle Hash,然后把区块头的Merkle Hash也修改了。这时,我们就会发现,这个区块本身的Block Hash就变了,所以,下一个区块指向它的链接就断掉了。
由于比特币区块的哈希必须满足一个难度值,因此,攻击者必须先重新计算这个区块的Block Hash,然后,再把后续所有区块全部重新计算并且伪造出来,才能够修改整个区块链。
在后面的挖矿中,我们会看到,修改一个区块的成本就已经非常非常高了,要修改后续所有区块,这个攻击者必须掌握全网51%以上的算力才行,所以,修改区块链的难度是非常非常大的,并且,由于正常的区块链在不断增长,同样一个区块,修改它的难度会随着时间的推移而不断增加。
小结
区块链依靠安全的哈希算法保证所有区块数据不可更改;
交易数据依靠Merkle Hash确保无法修改,整个区块依靠Block Hash确保区块无法修改;
工作量证明机制(挖矿)保证修改区块链的难度非常巨大从而无法实现。
Comments
Make a comment
Sign in to
make a comment
Index
区块链教程
比特币
区块链原理
P2P交易原理
私钥
公钥和地址
签名
挖矿原理
可编程支付原理
多重签名
UTXO模型
Segwit地址
HD钱包
钱包层级
助记词
地址监控
以太坊
账户
区块结构
交易
智能合约
编写合约
部署合约
调用合约
编写Dapp
常用合约
ERC20
Wrapped Ether
廖雪峰的官方网站
©Copyright 2019-2021
Powered by iTranswarp
Feedback
License
269 0 obj <> endobj
308 0 obj <>/Encrypt 270 0 R/Filter/FlateDecode/ID[<59E24B4F84B0AC44B1D059DB2063FE48>]/Index[269 87]/Info 268 0 R/Length 161/Prev 2899722/Root 271 0 R/Size 356/Type/XRef/W[1 3 1]>>stream
h�bbd```b``7�����&�d�"Y'�H�L��I�8'X��T���e�v�"��$���J0�B%GXDL���@����L �� $s
�$��X$�8�������H�8��b3ȃe�,��ˁ���&Fƹ ��( %�30f\0 }r+
endstream endobj startxref
0
%%EOF
355 0 obj <>stream
{�+N�*�a[�wT���@u�7�m�6s���v.��G*ʯ\��p��ݫ���Z�UB��;ǵ���;_rg��7�K٣p�V,e���o���{������9cd��3Zz���0������m����w?�oH��Q�_ه��T�>�]�b(�-�`��sКSB�!$m���M+(G+�ZWꅥ��
��Ҷ(� n�^7*�m,���cSg'k��5|��@����+��Q�U �>�Ns��*�cE�P��O�J�%|�2)�C�y��s��}��������o 6���cۤ*w�C�ҁ�Dg�*�+� (���0�%CĒc ��1[6U�����6���N�i
��~ I�2��^��j2zu�̆�r��~�q>l�����]�=���փ�l�~��D}e��?L� U3�t��0fh�����N���N�_/���X �E�P�� iI��/�2x��PK����!^�STs��}`cA�<�Bzoz��V��ۇ��KP�K�6{Ř���h�^ca 7��'1�0��8<�b߅y��� �o���B����(h����Jeq�ƽ�Sد�l��h��[ ��?p��>����7�D�kP�o);c�/�b����BY2�Xf��8]�$��ܷ8Q����4=N�Q<�{;,ŝh��4����R!��`l\��:�s�� T���w �e�Uk�e��5!TlYAҔ�42W�&�N�P�� �^��q���P7= l���W���t5=$A���1�2��&���*�����]c� ՙP�+�U�~�%��T��!}�$����Pjͅȿ��Z"�o���E5�w��(5��5��/��K�_��`
endstream endobj 270 0 obj <>>>/EncryptMetadata false/Filter/Standard/Length 128/O(�ʖ�\r��sD�L �v��R~��\rs��1c;�)/P -3900/R 4/StmF/StdCF/StrF/StdCF/U(A5%:.�/�,9�� )/V 4>> endobj 271 0 obj <><><>]/ON[310 0 R]/Order[]/RBGroups[]>>/OCGs[310 0 R]>>/Pages 261 0 R/Type/Catalog>> endobj 272 0 obj <>/Font<>/ProcSet[/PDF/Text]/XObject<>>>/Rotate 360/Type/Page>> endobj 273 0 obj <>stream
In�Z 鈐1^c�B�NZH��p��f}��w"px��_.N�'�i�{*[{���i���?p���_D�M�ڴ�2 g�q{~�l��g�?Ct��uD+<�r�ױn!������&q'QÜ�v%��L�i�<{�!5~To�|�;�T�{xO���\ƒ̻�s��r���g�cv�\'S"�E�ksÅޘ�`B�JN�������Q)�n�?7��MzMhʔ� ��m}L�Y�1�=2moP�]T�u����4%�-8o�q�?�z�0�)=mS�O�f� WL�ihN !S�1@pR�Z�Wģ^"Ż��K /L/1z�0�v�&8���,�lI����>stream
+#�2)�F*=L��5�YlG�5��B)FV{!?ed�A��v�{�����#����Z��'��k@�U>������ܢA� �P�d��s��+ݓP�0����-G��� @�c)�Qr�4/J�o'���D<<�Fկ�J#0�iu�VS_k�"~vFq��x�h��ӐI����X-���o�xF��p���M�)}���j���[I�����QlG:T��6���m��l���:�� şY�6�p�]�u�1s!���h��3�F�KM�LuQX]K%/n�D�A'������JQ�J�������dz���/E:X�Ĥ���/F�]M��a���'��F���e^�'�8��e��% y�u���IFY�*��c�q�`w�ê5Th.T���gA�䂤%�.e�=`#���.M���:?.��G�pwӋ|[^=p�o_���5�qo*�F]@��-F`&2%
��xɪ�������+�v���)���2�UM��X�
endstream endobj 275 0 obj <>stream
�F垬�'�vj�Ï$F��4D�h&dظ&c9�&���O��p�Q>^Oɸ�0pF�0O9�N�|5�������!���t�i���� �lT7W0ef�n
c���g/�� A�D���,���lgA>�z��
�ɡ �����T�?x�=Mԋ� �3�'�2\F��uٟm[�}�������#9�4��L��6sZ�jh�T2�KK�TS�`��Z�Yλ����Y�U�&��k��� ؊�Ix棙r��V���v��r��К�����˱7�`)~��}C�t.�i��Bh��=C�> k���LH���X����ٺ*c1�r��l�|M
�n���yM� ^N Nmc}*�X�_����~��S�v+������M���>��J
endstream endobj 276 0 obj <>stream
��#Zb��ڥ&0��)��:m�u��V�N�i#U(�x�:z�(�u/b�QQ������ "|�n��@�9��Ok6�Rj.�t ������Hu�u%F3�˘��,�%ؽ�6 3+�h5Q�z��1���Tk7#>5+�7�?L�'O�"�Nl��r4��T�� >�þR��1�"j����慲"� 7J>S��XJ�Y�g�x�����8�V�(�4�C��.+�@c^�B�����|ЙY�(v.��泇C o��f��H�6�J���� �;mGV����5�1���V����)��7��ki��h�@�� Nɉ̾�V�Ti�k��KY�N8��T���ǹ�_��1x����ّ�ݮ3Z$�6:�hF�B[J4G�7��|ø�ඍ'��$QI�={� 3X���1�� bM:H�Q�e s��i��e,#�v��ٰbq����L�
endstream endobj 277 0 obj <>stream
E�i��e��x���Q6�<:�� �g���~�ҨRC�a��x"�L*��j��C�p�3�4��;ůSXU4w ����,�o�
���Y&�����b9���`�T�;�P����X�\ɒ�_|���;�k"�
#�=�����0s��{�W�ax�z�Œ�*jR�}��G�`�`7F%�R�rҠ�oA�:���g��ڄw@�]���a�%�D��\d�*����μ�qN��pxP�:-�>����T�<ӟ��Ho�ԉ��vQ��l�v7?|֘S�;5��N �I�nQ�sz��o2���X�8����c����ϼ\�R��[����M�\��K H0rD�I��A�e�S�k� S���4��m����j�|"P�eL�*z��*�� o�*/l/�}A�mT�X�;�ͅVik"��� ���~���j�nOA�I�����MKrg���NV��ߗܕ���k�����T_B/r�N�=�������t�)����]@9�&g��W�0cvPA/2ުl��ɴ�o3o7�̫`'l;��S��Je��?�
<���)/�K�WM����U��
�b{�a� Ց 9�� y��D���L����b��Ο6|ã3���I�O.�J~8��Tx��B�)/�/p��B��g" �f�%j��I*����v��9�'�|�ï��7*3�όmSt(s�4���Ŕ�vS*��yȾS�ލ��'_�;�rR��_ Z����T��H+r��,8U�Z4�5_�����t�}�n9 �Q<��u!.��z��A���g1�s֡�I�K�~��v�Y�X]b���̖�~�]1�Տ����M�]��e?�E���tIe�孙��D9�̩��e�=7u��IQ6%TI�7����bK��Wo��'�m:�Q�Yǁ�����1_a�л�c��
endstream endobj 278 0 obj <>stream
W���\ �$;8cr��@`!�-��1�y�I6�r!3[��c'�js'O����uf��!��廱��w;�'����4juO��������R�e�?/[�e�����A��n�!gM��~���q��t��{q����d����V���� ������e�k?4>�-QI5LVyZ�A� :�'H���A Y�\�/-��Ց�Ă4Pt��Pq��)�w`��,��� �{��#X��J�?v���n/��-ս({C�a�D,X8�l��x�vI���'������x���m�ww7/��/�~ڢ��X6B7aD&Ī�EF5�k���{�e_���p�$���Z&M�F��D��(�ɂ�n��L
"�#�����M�h��[}|弾��Rwm�e@�Ddl� �ni���I.�9$�����9 Y[�]�X�h����d*�9Qf5|aӮz�(D�kS� a$�E�(e�1cz)��VZM"�&٣����©T�
��863ZZ`�}���y�D���
�i���b����
|7���h�)�)rt��`+E��m_��ex��}V1�˳����W�&y�� ��5A�#���� "@.����X����*�>j�jo��s%�FuRQ�׀�ʔ����dj�|�.��W5����c����Jn�>�Vm��R��~�֞��-�A�6�h�6��F��W� v��pLj��ܻC�y t_����i��ח�mN1b��l��F�a��h�/
�[5�����l�g?i�-�S�y]�i�6�z�5�
��x�L%�qӇ����,��ٛ��?������m�dOs�[��T�P��s�t��ݭsBC�G#�9���-[!4�v�J�}}'�ˋT����8%�%�Jؔ��n��]e��Vk��{���b+/����e��3����I���,A�`��x��%��-U;�'��-� WC��Qn���t{��T���(fj9������W�w(�{�I٧��P���8�T���P�z���ֲgC��1���礶�uj����W^;��$ﲧ����Q�ʅ66��yZh����+�s�:(Io>` �Y��x@�Ql���taϣo ����V���詄Gs�u�t���j:��i�t3#p��e��K�0 \�}� u�h~k�B��+�إ�||�V�i���Э�܀#q�/�]Snu�wW��Vu�!=T�� sa��J�_�|n��
tA~�y��P�a˹��fHB�z �p R)��*#��?=�����U�҂)?~����"�
��6ˑ�N�1D'�{
p�t*�ή$�=X�Ѿ�m{M��#?�h 5A*(sj ���(Р](�Vp�#U�}UkJ���WX�(2�7�ʗGO�MYEgڋGR���G�U�e���ô`֖�[�+Q?!B��S,�߱Y�.~��G���,,K{��)Dg���aH�@�9�I�b\�K ��u� ��ѤS����|�d{�){����k*؛a�r) s��zr�D�&i���)�2O�:S��=�A[
��' D� ұ��D��e�=����ٞL�����&j�R�+<�^Z�������Qٳ���']k���(�V+�ho�]��2�LY~7����[�E�%�}a�c�F��s$#��?F�|&�� G�+�;�#�H�+��,e�e���#48�a�Ce0��>�����ԯ߾ZxmcBF��1Xp ���. 2Y�w<2��,&?�k��o� �b�)�Ʒ{\��rUl�ܓ1q�Q��T{����Cg-���*��a6E2��z5EE��t��X��
��p�O���z���N�Ջ�%��5�rK�����"~���i*��M�����lHC� `p lHD)�/�j��㝵��S.7�ۋy�]�-�� H��8�fQy���,cVu�ʉމ�֘[~ټ ��dc��[2�m��ح�j����}u����Jup�S�4��2�3��K��}�B
���t#��qI���H{��uZ����J�}�_/�;��B5�7~�ץ}�>Th�9�̽���j~K�W)�j���V��iCDگ-��?#_eR�;�n(�8�JʎD������EYS�'}����*�]��|x�YՃ���U%��:�Do�xv4���ڣ�/��U�x�nP�K�ܓ�9��W"* DR����[���[���E�xw�o {�7Ui ���c8!�����Palu����`�}��&E���hh���ћt�8��ׁ>�AdA�S���[�w��U����?��|��x{������Y��Ao�b�oa�K�ߡ)5 \�I��ڽt/��W��A���s�� qA�^/%���_�]u�xCU嶝����������jo l^���_몍w �4�jO�Վ]��|��D�A>�:�l݁���c���)H�<��C� Ćͪ�����b/��RO��g����"����goi�e!R�=d���H}2�'U�:��Br�n�&���DMmr��C�d�
M��"���\܍���_ �T�� �H�\�X+�1�ǒ��v-f�<}c��V����j�������o�>���A��Ӗ��%�oI[7�&�Lq'�+�7��1>8oUZ��`)Zo�"��T�+��@IH��L�ӠR���Q��/���+�����X��"�6���B2���Q\��L��v����8d���D0d�Wq�b ~G��澝`m�6���CL�>S;���3�szh�DGO�=gϧAT�#�*�ghڈv��,a�.l#!����]\i\�����b����r�'4]�t%Ji��ĵҍ�DO1{*�G&���<��x8�e��3�d@ϼ(�1��cZw�\�g:H�O�E�t�
�m/,�)y}�P�&��yфl'��ie9���/�������p�?X�3�q��s. ��2�E��$Iuߏ���h����4)��P �6����U��+����9�|�nj�oNN<�x楋�v1ua��k�/���5z5���*�WHe�OG����FA�:����ҜGEzi���Z��K�vX̳c9y�fP�9H2��4�"�6�
���-V�U�C��[���0g\�fp�HH� ��z���B��( Inj��X��[Q��E��ď�A�n��#{)��b�A��@�M7h{�����n`�)w�; 7��)٣WoV;��n��`�_ X�Y�{J+��3f�]�]bscɣ�"=A�sǕFl����:sQ���Ҙ�(~Z��>�E�y�ʛ��E�i�Xy �e)!���>���+&�� tK�ei��*Qrv!b�"��C����نބ�{b�p�B���� 9-e Jv v)k��G��R�#�7�pP ]I�`�9X9�`�,J��������+*Tk[���-3'����A��䜁'�dl�$��͘���t�[Q~!�|��)�匱1��뵁⊶���nC�G��c����.@N��3����rN�����^A:hq�l�'Z#�ˍv��qo��i��! �!����Y|���Z�E�翃��.�(���W~��YI�؇��:*���m"ː�6�{@�zuP�+�T�^r]�y���Th���Lc_Tq~z�h�W� =^��x���1�,��=`��iCI��^���,� iE�E� N$�C���t�B!AJ�[���)��utH�ó�������=��y*¥�'��>ݤt�*��Sn��e�{�@�
UH+�nY27ӺR�2��Ȏ���oaPH�"�&� �-���U���(�|e"YQق|z"�p�+�� BS�*�/qk�Yp<�Qf�f�p����T"��m=k�rF����^�í�Zܱ0ڛl������eр��0���><��y+�@�L%�b��f����IJ���"i��B�C����r/��[��'W�F���IO=j�ʊ���J���}o-�缺6��s�b�S5�9��3N���~���\��� �#�GP�~�0�0v�`r���)i*|��B�T�}>��"c:��'�X�Z�P�*`0S[7E��>.V�co��t^6�j���aʀ��@�'Fd�,u�_,z�T�R���y@��w�p-���EL���=/�'o��K�&W��l�FXgc9��F� �3w�(�t\$O�,��>տ���S�W�@��H�t��A��P|\��0��s��g��.�@õ����꾇�S]�����` 1kz��Uއf;�"��J�"_�r�ʎ�m�Ph�����������Fߞ�olc.��A��*\�_Jh'��#P�Qu�Ux%lu��t/'����Y����R E{�m��x����3�D�hд�4m%�6�#�����!CG���g��z�U�5�;��Q��a�(@�`Z\$��W�5Z��cw�!�[�.s�u��������E��z�m��}|��آ?'Q�G$�aH9L(�u���s<~B��쩅��b�$~�& �b��1�~�t�Ư��� r0��U�"@
�JTwq�����i�vh g���3�y�����n�G4u�� �~x��fWt�N���ª��W%I��Q�ϳP�f����������&Aa$-)Df��wb<�qp�eN�7�������"���\�k 0���mש�^��.��*�0�\ ��B��U{�?�4�牳�0�c�����<8RD�"�.�:l� ֚7�C�t,��%XVhq�:%�~e՟����w�W��j��̚ ?T&R���:>�� pqw� �����c�J��(2��ofh������v���.�P��-�m�$���� �t�� �Gޮ�2�:�>����f���� ��Qwʐ~��.�͓��˜��'Ͻ�� �X����U�l���Fs��1��yk-���`uE,bkd.��H���۩���w( �C"tU���, S�Xv�4��9�%{o�hs�my U�
����ĵ�@�f0�ʹ���PB=�MiD�����u�T����9�(� ?����h!���L�T�Q���qO�,����)��9���,�`��
��p;?���x�f�5���l��&`�~��m����u�@*�J���G�?!�j(���O>�����z�����BUM�����%�:ɣ"���K�Ld���+�%+