830 large

区块链技术研究综述-入门

flfq · 于 发布 · 最后由 flfq回复 · 2708 次阅读

本人是一名在校学生,目前在做区块链方面的研究,下面是近期写的一篇对区块链技术的研究文章,比较浅显,是我对区块链技术的初步理解。包含区块链的底层知识,应用方向和安全风险分析。水平有限,希望给初学者一定的帮助。

邮箱:416528224@qq.com
以太坊公钥地址:03b0077BB86e2591E7287F52dbE3331F1CabD0cE
欢迎邮件联系,共同进步。
谢谢打赏,我会发布更多的研究信息。

区块链技术研究综述
摘要:区块链技术来源于中本聪设计的比特币系统,目前的影响力已经超过比特币。企业开始开发各种基于区块链技术的应用,科研机构研究各种基于区块链技术的改进算法。区块链技术在多个方面飞速发展。在密码货币领域,比特币仍然占据主流,但是以以太币、莱特币为代表的新型密码货币正在快速发展。在其他应用领域,区块链技术已经被用于数字版权保护、能源数字化等项目。区块链技术本身也在不断发展,除了以比特币为代表的公有链,目前还出现了联盟共享的共享链,企业内部的私有链。为了增加处理效率,研究人员提出了侧链技术、闪电网络技术。区块链领域正在飞速发展,然而针对区块链技术的安全问题,却没有深入的研究。比特币的安全机制在中本聪的论文中进行设计,经过7年的实际运行,经受了理论和时间的考验,安全性比较可靠。而现在众多的区块链应用为了提高效率,适应特定行业的需求,对底层的结构、算法进行了大量的改变。这些改变会不会带来安全风险?如何检测各种公有链、私有链的安全问题是一个值得研究的课题。本文从这个角度出发,广泛阅读区块链相关的技术细节、应用案例,深入分析其中的安全问题,提出进一步研究的思路。
关键词:区块链,安全

一 简介
介绍区块链技术之前,首先介绍区块链技术的来源,比特币。比特币(BitCoin)的概念最初由中本聪在2009年提出,是一种去中心化的数字货币。比特币不依靠特定货币机构发行,而是根据特定算法,依靠大量计算产生。产生的过程即是俗称的“挖矿”,实质上是用计算机解决一项复杂的数学问题,来保证比特币网络分布式记账系统的一致性。比特币网络会自动调整数学问题的难度,让整个网络约每10分钟得到一个合格答案。随后比特币网络会新生成一定量的比特币作为赏金,奖励获得答案的人。
2009年比特币诞生的时候,每笔赏金是50个比特币。诞生10分钟后,第一批50个比特币生成了,而此时的货币总量就是50。随后比特币就以约每10分钟50个的速度增长。当总量达到1050万时(2100万的50%),赏金减半为25个。之后赏金会随着总量增大不断减小为原来的一半,最终,直到2140年达到2100万个的总量上限。此后,奖励机制不再产生新的比特币,而是用每笔交易抽取1%比特币的手续费形式维持系统运转。截止到2016年6月6日,全世界已经产生15,627,275个比特币,按照当前市场汇率584.46美元,总市值超过91亿美元,每天估计交易量1.21亿美元。[1]
比特币发展速度很快,但是各国政府、企业界对比特币看法分歧很大。一方面,德国、法国等国家已经承认比特币属于货币,而且开始制定监管措施和税收政策。另一方面,欧盟和各国央行纷纷发表对比特币的风险担忧,呼吁银行业远离比特币交易。而且,由于比特币去中心化和匿名交易的特点,传统的大额支付业务不会采用比特币作为支付方式。
虽然,比特币本身还存在不同的看法,但是比特币背后的区块链技术却受到各界一致的看好,是政府、金融机构、研究机构关注的热点。
区块链是以比特币为代表的数字加密货币体系的核心支撑技术。区块链技术的核心优势是去中心化,能够通过运用数据加密、时间戳、分布式共识和经济激励等手段,在节点无需互相信任的分布式系统中实现基于去中心化信用的点对点交易、协调与协作,从而为解决中心化机构普遍存在的高成本、低效率和数据存储不安全等问题提供了解决方案。随着比特币近年来的快速发展与普及,区块链技术的研究与应用也呈现出爆发式增长态势,被认为是继大型机、个人电脑、互联网、移动/社交网络之后计算范式的第五次颠覆式创新,是人类信用进化史上继血亲信用、贵金属信用、央行纸币信用之后的第四个里程碑[2]。区块链技术是下一代云计算的雏形,有望像互联网一样彻底重塑人类社会活动形态,并实现从目前的信息互联网向价值互联网的转变。
区块链技术的快速发展引起了政府部门、金融机构、科技企业和资本市场的广泛关注。2016 年1月,英国政府发布区块链专题研究报告[3],积极推行区块链在金融和政府事务中的应用;中国人民银行召开数字货币研讨会探讨采用区块链技术发行虚拟货币的可行性,以提高金融活动的效率、便利性和透明度。
2015年成立于纽约的金融技术创业公司R3CEV,专注于研究基于区块链的金融技术解决方案。目前已经建立了一个由40多家国际银行机构组成的团体,目的是为了建立一种定制的基于以太坊的跨境区块链解决方案。中国平安金融集团已加入金融创新公司R3,成为该该公司的合作伙伴。
科技企业围绕区块链平台建设和业务应用开展了很多工作。2015年10月份,微软基于Azure云计算平台推出BaaS (Blockchain as a service, 区块链即服务) 服务,并且增加了一系列合作伙伴。BaaS类似一种“沙盘”,合作伙伴可以在一个低风险的环境中与不同技术互动,开展从智能合约到基于区块链的税务汇报服务。2016年5月亚马逊网页服务(Amazon Web Services即AWS)宣布他们将会与纽约的数字货币集团(DCG)进行合作(最大的区块链公司投资者之一)提供服务,DCG投资组合中的区块链提供商将可以在一个安全的环境中与他们的客户共同进行研究和工作,这些客户都是一些金融机构,保险公司和企业技术公司等。
区块链的应用范围在不断扩展。在密码货币领域,比特币仍然占据主流,但是以以太币、莱特币为代表的新型密码货币正在快速发展。
在数字版权保护领域,北航蔡维德教授利用自己搭建的北航链为基础,正在建设北京微视频版权保护系统。MIT多媒体实验室也发布了一篇报告,介绍利用区块链技术实施证书存储的项目。
区块链本身也在不断进行技术革新。除了以比特币为代表的公有链,目前还出现了联盟共享的共享链,企业内部的私有链。为了增加处理效率,研究人员提出了侧链技术、闪电网络技术。
然而,针对区块链技术的安全问题,却没有深入的研究。比特币的安全机制在中本聪的论文中进行设计,经过7年的实际运行,经受了理论和时间的考验,安全性比较可靠。而现在众多的区块链应用为了提高效率,适应特定行业的需求,对底层的结构、算法进行了大量的改变。这些改变会不会带来安全风险?如何检测各种公有链、私有链的安全问题是一个值得研究的课题。本文从这个角度出发,广泛阅读区块链相关的技术细节、应用案例,深入分析其中的安全问题,提出进一步研究的思路。
文章的第二个章节通过介绍比特币的安全机制介绍区块链机制的底层技术细节,第三个章节介绍区块链技术在应用方面的研究,第四个章节介绍区块链技术在安全方向的研究。

二 区块链的底层技术
区块链是比特币系统的核心技术,由中本聪2008年发表的比特币论文中首次提出[5]。区块链的目的是为了实现比特币系统需要的去中心化的支付系统。这样的系统需要解决交易双方信任问题、双重支付问题、拜占庭将军问题。为了达成这样的目标,中本聪在论文中从交易模式、工作量证明、网络体系、奖励机制、验证模式等方面进行了介绍。
中本聪的论文侧重是介绍比特币,对区块链的描述是为了实现比特币系统,因此对于区块链技术体系本身的描述并不是很清晰。后来的研究者对区块链技术体系进行了更深入的研究。袁勇,王飞跃在一篇区块链综述文章[6]中详细介绍了区块链的技术体系。区块链包含了从底层数据结构到共识机制到顶层应用协议的众多内容,各部分内容功能不同,因此采用层次化的结构介绍各部分内容。
区块链的基础架构模型如下图:

图:区块链基础架构模型
由上图可知,区块链基础架构分为6层,包括:数据层、网络层、共识层、激励层、合约层。每层分别完成一项核心功能,各层之间互相配合,实现一个去中心化的信任机制。
数据层主要描述区块链技术的物理形式。区块链的名称包含了两个特点:数据区块和链式结构。区块链技术的物理实现是一个由规格相同的区块通过链式结构组成的链条。系统设计人员建立链条的创世节点,之后根据规则,区块链网络中的节点产生新的区块,并在经过验证后,将新区块链接在主链条上。随着系统运行时间的延续,主链条会不断延长。例如比特币区块链的主链截止到2016年6月8日已经有415291个区块。这些区块中包含具体应用需要记载的信息。例如比特币区块链中存储交易信息。每一个区块为了确保安全,采用了很多技术,例如采用时间戳技术确保每一个区块按照时序链接,采用哈希函数确保交易信息不被篡改,采用merkle树记录具体的交易信息,采用非对称加密实现身份认证。上述的区块结构是一种基本格式,在不同的区块链应用中会针对性变化。针对区块节点内部具体结构会在区块链应用中描述。
网络层的主要目的是实现区块链网络中节点之间的信息交流。区块链网络本质上是一个P2P网络。每一个节点既接收信息,也产生信息。节点之间通过维护一个共同的区块链来保持通信。在区块链网络中,每一个节点都是公平的,都可以创造新的区块,节点创造新的区块后,通过广播的形式发送给其他节点,其他节点会对区块信息进行验证,只有当51%的用户验证通过,这个新区块才被认可。网络中的节点会将此区块链接在主链表上。验证的方法取决于共识机制。
共识层负责提供一种机制,能让高度分散的节点在去中心化的系统中高效的针对区块数据的有效性达成共识。常见的共识机制包括:POW,POS,DPOS。比特币区块链采用高度依赖节点算力的工作量证明(POW)机制来保证比特币网络分布式记账的一致性。核心思想是将一段时间内的交易打包成一个区块,针对区块信息的特性,设计一个求解复杂但验证容易的SHA256数学难题。节点利用算力求解这个难题,第一个的算出解的用户将信息广播给其他节点,其他节点进行验证,如果51%的用户验证通过,这个用户就成为这个区块的受益人,并将区块链接到主链。这种机制确保了每个区块的生成都包含了大量的计算过程,当有人对区块链进行攻击的时候,必须重新计算攻击区块以及后续区块所有的计算过程。POW机制正是依靠强大的计算量确保区块链的安全性。但是POW机制也有明显的缺陷,例如工作量证明导致大量的资源浪费(电能),同时这种共识机制需要的等待时间较长,例如比特币平均需要10分钟才能达成共识。后续,研究人员又设计许多新的共识机制,比如利用权益证明代替工作量证明的POS机制,类似于董事会决策的DPOS机制。不同的机制各有特点,需要根据应用环境进行选择。
激励层目的是提供一定的激励措施鼓励节点参与区块链的安全验证工作。区块链的安全性依赖于众多节点的参与。例如比特币区块链的安全性是基于众多节点参与工作量证明带来的巨大的计算量,使得攻击者无法提供更高的计算量。节点的验证过程通常需要耗费的计算资源和电能。为了鼓励节点参与,区块链通常会采用电子货币的形式奖励参与人员,比特币、莱特币、以太币都是这种机制的产物。以比特币为例,奖励机制包括了两种,第一种是新区快产生后系统生成的比特币,第二种是每笔交易会扣除万分之一比特币作为手续费。在前期,每一个区块的创建者都会获得一定数量的比特币,创世区块提供50个比特币,之后随着系统中比特币数量的持续增加,这种模式提供的比特币数量会持续减半。当比特币总量达到2100万时,新产生的区块将不再生成比特币。这时主要依靠第二种手续费作为奖励机制。
合约层封装区块链系统的各类脚本代码、算法以及由此生成的更为复杂的智能合约。比特币的交易依赖于脚本的内容,脚本规定了交易的方式和各项细节,这种特性使比特币成为一种可以编程的货币。传统的纸质货币交易,一旦货币交到收款方,交易即技术。而通过合约层的脚本技术,可以通过设置时间条件,实现延时支付,收款方收到钱却不能立即使用,必须等待时间结束。通过规定接受者和担保人必须共同私钥签名才能支配一笔比特币, 可以实现担保交易; 通过设计一种可根据外部信息源核查某概率事件是否发生的规则并作为解锁脚本附着在一定数量的比特币交易上, 即可实现博彩和预测市场等类型的应用[6]。

三 区块链技术在应用方面的研究
3.1比特币
比特币区块链的第一个区块(称为创世区块) 诞生于2009 年1 月4 日, 由创始人中本聪持有。目前根据比特币交易平台okcoin网站展示信息,截止到2015年6月12日,已经有415,944个区块,产生15,627,275个比特币,总市值超过91亿美元。
目前比特币依然是区块链技术最重要的应用,在各种密码货币中,比特币依然价值最高。这一方面是由于比特币的先发优势,另一方面是由于比特币设计的机制经过了时间的检验,从2009年到现在,比特币区块链经历了各种各样的攻击和超过1.3亿次的交易,仍然维持比较稳定的状态,是目前可靠度最高的区块链应用。因此,有很多的新业务是建立在比特币的基础上,通过智能合约的形式实现,很多的研究是为了解决比特币系统的实际问题,例如闪电网络技术。
因此,比特币仍然是学习区块链技术的重要内容。
比特币的技术核心是区块链技术,在第二章已经做了简要介绍,这里重点介绍与其他应用不同的地方。
首先介绍比特币底层的数据结构,见下图:

上图介绍比特币系统中区块的实际结构,从图中可以看出,区块分为两个部分:区块头和区块体。区块头包含了区块的总体特征,而区块体中存储所有的交易信息。这样区分的目的是实现轻量化的运行。比特币区块的大小根据存储交易的数量和内容各部一样,但是规定每个区块小于1M。其中区块头的大小一般在200B左右。当前比特币系统中有41万个区块,大概是70G。如果要求每个节点存储全部信息,这将导致大量的移动设备不能交易。随着区块的不断增多,能够维护整个区块链的节点会越来越少。因此,比特币设计这样的机制,允许节点只存储区块头信息,就可以实现正常交易,需要详细交易数据时再针对性下载即可。
区块头中存储了前一区块的哈希,通过这个哈希将不同区块链链接起来。这个值也确保了每一个新区块是建立在前一个可靠区块之上。
时间戳记录了区块链接到主链上的时间, 这是由区块创建者输入的。所有区块是按照时间顺序依次排列的。
随机数是通过共识算法设计的数学问题的解。挖矿过程就是在寻找这个随机数,第一个找到随机数的节点成为这个区块的创建者。
目标哈希是对当前区块的哈希值,确保区块内容不被篡改。
Merkle根是比特币的重要数据结构,其作用是快速归纳和校验区块数据的存在性和完整性。根据上图可以看出merkle根的计算方法。Merkle根实际是对有所有交易信息进行的一次hash。通过在区块头中存储这个值,可以允许节点在不读取区块体信息的前提下执行交易。这将极大地降低区块链运行所需的带宽和验证时间, 并使得仅保存部分相关区块链数据的轻量级客户端成为可能。
区块体中存储了每一笔交易记录的具体信息。记录中包括了生成时间、引用交易的哈希值、交易记录索引编号、比特币支出地址、支出地址数量等细节。每一比收支交易记录都有一个Merkle节点值,这个hash节点值是整个Merkle树的一部分,决定了每一个地址都不能重复交易和被伪造。
接着介绍比特币系统的共识机制。比特币系统的所有交易信息都存储在区块链中,而区块链的副本存储在每个节点中。每个节点都有权利生成新的节点。这种情况下存在如何维护账本一致性的问题。为了解决这个问题,系统设计了这样的机制,每个节点都有权利生成新的节点,但并不是随便生成,而是必须解决最新节点相关的数学问题,这个问题求解困难,验证容易。具体的求解过程,就是俗称的挖矿,实质上是对解空间的穷举搜索。第一个得到解的用户获得该区块的收益权,获得生成的比特币,并负责将区块链接到主链,并广播给其他用户。其他用户收到新节点信息后,验证并确认,拥有51%以上节点确认的新节点被认为是可信节点,其他节点下载并链接。这种共识机制是依靠算力来保证区块链不被篡改和伪造。因为,每一个新节点都需要大量的算力来求解。当攻击者想针对某个节点篡改信息时,必须重新计算当前节点和后续节点的所有计算工作。这在经济上不划算的,因为攻击所需的计算力用在挖矿上能获得更大的收益。当篡改的节点是最新的节点时,似乎只需要进行一次算力求解即可达到目的,这在实际情况中被最长链机制否决了。比特币系统允许出现区块链出现分叉的现象,即在同一时间,网络中的节点保存不同的主链,这种情况有可能是双重支付导致的。最长链机制可以解决这个问题,即每隔一段时间,系统中的节点会选择网络中主链最长的区块链作为合法链表,其他较短的区块链都放弃。这种机制实际上也是以算力作为判断机制,攻击者只有提供超过其他节点之和的计算力才能达到目的。而这是很难实现的。
合约层封装区块链系统的各类脚本代码、算法以及由此生成的更为复杂的智能合约。合约层使比特币交易变成可编程的交易。例如,可以设计时间限制,形成延时支付。设计多方签名,形成需要多方同意的复杂支付应用。这种可编程性使比特币系统不仅仅可以作为一种支付手段,而且具备了实现复杂智能合约的潜力。当前市场对区块链技术的关注点就在于智能合约等非货币领域的应用。
比特币系统虽然在近期由于比特币的升值吸引了一些注意,但是政府、企业界并不是特别重视。除了货币本身的敏感属性外,比特币系统存在安全问题、效率问题、资源浪费问题以及比特币脚本语言非图灵完备特性等隐患。
从安全的角度看,比特币系统虽然经历了时间的检验,但是未来的安全性无法保证。首先,比特币系统始终存在51%攻击的风险。比特币在设计初期,考虑到用户通过CPU挖矿,挖矿能力相差不大,所以很难出现某个用户拥有超过整个系统51%的算力的情况。但是随着技术的发展,挖矿的设备已经从CPU转到GPU,又转到专用芯片。目前,个人CPU挖矿已经微不足道,算力聚集在专门的挖矿工厂中,据统计中国大型矿池的算力已占全网总算力的60% 以上, 理论上这些矿池可以通过合作实施51% 攻击, 从而实现比特币的双重支付。未来随着技术的发展,比特币的安全基础将逐渐动摇。
从效率问题看,比特币系统为了保证交易的可靠性,规定每笔交易必须被确认6次才能通过,系统每秒钟只能处理7笔交易,每次交易必须等待平均10分钟才能确认,这些都限制了比特币的应用范围。
虽然比特币系统存在很多问题,但是由于先发优势,以及经过时间考验的可靠性,目前仍然有许多新业务、新研究是基于比特币区块链的。因此,研究人员针对比特币系统研究了许多改进方案。
侧链是其中一种扩展比特币应用的技术。核心思想以比特币区块链为主链,通过绑定某个区块,产生另外一种区块链,这种区块链可能是另一种密码货币,也可能是其他应用。这种技术能解决效率问题,甚至能运行图灵完备的脚本实现更加复杂的智能合约,同时,还能获得比特币系统的可靠性。
闪电网络是一种为了解决比特币系统效率的技术,它可以实现线下的但是可靠的比特币交易。通过创建“微支付渠道”,除了发起通道的初始交易之外,后续比特币交易无需与区块链进行互动,还能安全地进行。它也不存在交易对手的风险:如果任何一方终止合作,或者说在约定的时间内没有响应,该通道可以被关闭。这些在通道中的支付交易会瞬间完成,这与当前的比特币支付不同(往往需要1个小时的时间来完成交易验证)。从理论上来讲,这种分布式小额支付网络(闪电网络)可以将比特币的日交易量扩充到数十亿笔每天,并且极少地使用到区块链,以及仅需少量的交易费。

3.2区块链存储
利用区块链技术实现非中心的存储系统是一个研究方向。目前,云存储已经商业化,存在许多的云存储服务商,国外有dropbox,国内有百度云盘,360云盘。但是这些都属于集中式的数据存储系统。服务商部署大量的存储设备,用户通过网络将设备存储在存储中心,再通过网络取回。集中化的存储结构使得服务提供商需要投入大量资金购买服务器,招聘技术人员进行服务器运维,购买大量的带宽服务。
通过使用区块链技术,可以实现一种去中心化的,不需中间服务商的云存储业务。metadisk是一家区块链初创公司推出的服务,能够提供去中心化的云存储技术[4]。相比以往的云存储系统,metadisk系统中用于存储数字信息所需的硬件设备是由网络中的参与节点提供。正如同P2P下载中,各个节点贡献自己的带宽,从而提高整体下载速度一样,metadisk设计了一种机制,网络中的所有节点会贡献自己的存储空间,存储网络中其他节点的数字信息。这种机制实现了一种真正意义的云存储,数据存储在未知节点,用户可以随时访问数据,参与节点没有额外负担。
Metadisk存储模型如下图:

图:METADISK存储模型
Metadisk的架构中,每个节点即是存储需求方,也是存储空间的提供方。当节点需要存储数据时,节点查询区块链,找到合适存储区域,然后将待存储数据加密后,通过网络存储到对应地址。存储信息记录在区块链的节点中。当节点需要提取数据时,通过查询数据,找到存储地址,然后通过网络下载数据。这种结构中,通过让每个节点维护区块链的副本,替代了传统云存储中中心服务器的功能,所以是一种去中心化的存储架构。
区块链的创建、运行过程与比特币相同,只在在存储结构、共识机制上有所改动,改动的目的是为了解决以下问题:
 数据被窃取
 数据被节点篡改
 节点掉线
Metadisk系统中,存储节点是不可信的节点,为了保证数据不被存储节点泄露,所有存储的数据通过加密后再存储。这样能够保证数据在传输过程中和存储期间不被泄露。
通过在区块链节点中记录存储数据的哈希值,能够确保系统及时发现数据被篡改。之后,系统会恢复数据或者调用其它节点存储。
为了保证数据不丢失,系统采用冗余存储的机制。每个数据会存储在N个地点,N个地址信息会存储在区块链对应节点中,供提取数据时使用。
通过采用区块链技术,Metadisk系统解决了数据存储在不可信节点的安全问题。通过加密存储,确保节点不可读数据;通过区块上存储的数据哈希值,确保节点不可更改数据;通过区块链上记载的存储位置信息,确保用户能够找到对应数据;通过冗余存储,确保数据不因单个节点的离线导致的损失。在这种架构下,不需要额外的服务器,不需要额外的人工干预,所有节点通过区块链技术实现自治。对于单个节点,不需要额外操作,可以随时离线,没有额外的负担。这些特点最终将巨幅降低云存储的费用。
但是这种系统也存在一些问题。例如,如何保证存储节点的稳定性。虽然系统可以通过检查机制发现掉线节点,通过冗余机制恢复存储。但是,当数据容量较大,节点稳定性较差时,会导致数据频繁的迁移,导致大量带宽被浪费,甚至丢失存储数据。

3.3数字证书存储
采用区块链技术存储数字证书是一种非常直观的应用。因为区块链技术具有不可篡改、不能伪造的特性,而且数据是由全体节点共同维护,这对于实现证书的作用非常有效。传统的证书技术,通常需要一个权威节点制作发布证书,然后持有人通过实体的证书证明自己的身份。这里面存在几个问题:证书伪造,证书验证困难。而这些,都可以通过区块链技术实现。
区块链的底层结构中可以存储一些较短的信息。例如比特币的创世区块中就存储了一句话。
coinbase 04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73
这句话的原文是泰晤士报当天的头版文章标题:The Times 03/Jan/2009 Chancellor on brink of second bailout for banks。
证书存储、版权信息存储都可以用类似的方法存储信息。既可以利用比特币等公有链的可靠性来存储,也可以单独建立区块链。
麻省理工(MIT)媒体实验室近期发布了一篇新的文章,名为“开发学院证书区块链系统心得”,研究了使用分布式账本技术存储数字证书。这项应用是基于比特币区块链。具体方法是创建一个包含一些基本信息的数字文件,例如收件人的姓名,发行方的名字(麻省理工学院媒体实验室),发行日期等等。然后使用一个仅有麻省理工媒体实验室能够访问的私钥,对证书内容进行签名,并为证书本身追加该签名。接下来,创建一个哈希,用来验证没有人篡改证书内容。最后,使用私钥,在比特币区块链上创建一个记录,表明在某个日期为某人颁发了某一证书。这样,系统就可以通过查阅比特币区块链中的信息来验证谁颁发了证书给谁,还可以验证证书本身的内容。

四 区块链的安全问题
区块链的安全问题是一个重要课题,目前研究内容还比较少。但是随着区块链应用越来越广泛,暴露的问题越来越多,安全问题一定会越来越重要。
目前存在的安全问题包括:
1、现存安全机制的问题。区块链目前最典型的应用是比特币。比特币系统通过最高算力来维护区块链的安全性。但是随着挖矿技术的进步,目前算力越来越集中在大型矿池。个人电脑的挖矿能力趋近与零。这将导致51%攻击发生的概率越来越高。
2、新技术带来的问题。比特币系统特殊的机制导致效率低下,研究人员提出了很多新的安全机制。例如为了解决POW机制浪费算力的问题,提出了POS的共识机制,但是POS机制又会带来区块分叉时的N@S (Nothing at stake) 攻击问题。
3、新应用带来的问题。中本聪在设计比特币系统安全机制时,是从密码货币的角度来考虑问题。例如,为了防止攻击者篡改区块链信息,设计的机制可以确保攻击者必须重新计算区块和区块之后所有区块的计算工作。这一方面要求攻击者的计算能力要超过整体计算力的51%,另外一个潜在含义是,经济上的不划算,执行这样的攻击得到收益远不如直接挖矿的收益。这在密码货币领域是成立的。但是如果区块链技术用于证书存储或者数字版权保护,这样的保护就不一定成立。
4、联盟链、私链带来的问题。比特币是一种公有链,安全性由全体网络节点共同维护,交易信息由全体节点共同维护。这种结构导致任何一笔交易都能被所有用户检测。这种特性是银行等许多企业不可接受的,联盟链以及私有链是更优的选择。银行等企业通过使用联盟链或者私有链可以在企业内部不同分部之间搭建一个共享的、高效的交易系统或者数据分享系统。这种模式下, 如何保证联盟链和私有链的安全性是一个问题,目前还没有较好的安全检测办法。

六引用文献
[1] https://blockchain.info/
[2] Swan M. Blockchain: Blueprint for a New Economy. USA:O0Reilly Media Inc., 2015.
[3] Technical report by the UK government chief scienti¯c ad-viser [Online], available:
https://www.gov.uk/government/uploads/system/uploads/attachmentdata/le/492972/gs-16-1-distributed-ledger-technology.pdf¯, February 21, 2016
[4]Shawn Wilkinson,Jim Lowry.MetaDisk A Blockchain-Based Decentralized File Storage Application,2014
[5] Nakamoto S. Bitcoin: a peer-to-peer electronic cash system[Online], available:
https://bitcoin.org/bitcoin.pdf, 2009
[6] 袁勇,王飞跃.区块链技术发展现状与展望.自动化学报.2016