区块链关键技术与应用特点

(整期优先)网络出版时间:2019-08-18
/ 2

区块链关键技术与应用特点

刘嵩鹤

解放军95072部队信息保障处广西南宁530022

摘要:区块链技术具有去中心化、去信任化、透明公开、不可否认等特点,被广泛应用于加密货币的设计与实现。同时,这些良好的特性也可以被用于解决其他领域的发展难题。文章首先阐述区块链的基本概念,并对现有的区块链关键技术进行概述。然后通过分析现有区块链应用中暴露出的问题和技术本身存在的缺陷,探讨其中存在的安全问题。最后总结区块链技术的应用范围、发展前景及有待解决的问题。

关键词:区块链;加密货币;共识机制;隐私保护;哈希函数

随着比特币市场的迅速发展,加密货币及其使用到的区块链技术逐步成为各领域研究和尝试应用的热点。作为未来金融、财政等领域的重要应用技术,区块链技术的安全问题日趋显著。随着计算能力的大幅提升,现有区块链技术所依赖的算力安全将会面临越来越大的风险。而隐藏在其应用领域背后的巨大经济利益,将会使区块链技术受到越来越多的安全挑战,因此,区块链技术的研究正成为国内外的研究热点。Linux基金会于2015年发起超级账本(Hyperledger)项目,旨在搭建区块链技术研究的开放平台,推进该领域的研究。我国也成立了中关村区块链产业联盟、中国分布式总账基础协议联盟、金融区块链联盟、中国区块链研究联盟、陆家嘴区块链金融发展联盟等多个区块链联盟组织,共同推进区块链技术在各领域的研究与发展。作为未来金融等领域构建的重要方法,研究区块链技术的安全性,具有十分重要的意义。

1区块链关键技术

区块链技术尚未有明确的定义。袁勇等人将区块链技术定义为去中心化基础架构与分布式计算范式,并指出其具有去中心化、时序数据、集体维护、可编程和安全可信等特点。而谢辉等人描述区块链技术为分布式、去中心化、去信任化的技术方案,是一种新的数据分布式存储技术。一般认为,区块链技术包含区块链结构和其他用于数据记录、处理、证明的分布式技术以及密码学技术。

1.1区块链(Blockchain)

区块链是一条由数据区块有序组成的数据链条,每一个数据区块包含一个时间戳和一个指向上一数据区块的标记。由数据区块组成数据链条的思想在1991年就被提出,但并未引起广泛关注。2009年,中本聪将区块链用于比特币的构建之中。随着比特币的普及,从比特币中提炼而出的区块链及其相关技术得到了工业界和学术界的广泛关注。

1.2BFT(ByzantineFaultTolerance)算法

Pease等人探讨了容错系统在故障存在数不同的情况下达成一致的可能性,定义了交互一致性(interactiveconsistency)概念,并证明当故障节点数大于等于节点总数的三分之一时,不可能达成一个期望的共识。随后Lamport等人以拜占庭将军问题(ByzantineGeneralsProblem)对上述进行了更加形象的描述,并讨论了若干种可以达成一致的情形。

1.3Merkle树(MerkleHashTree)

Merkle首次提出这种机制时,将这种树结构用作认证数字签名的一种解决方案,称为treesignature。并且,类似的哈希树结构被大量应用于公钥分配。由于其具有较低的存储开销,可以使用其进行便捷高效的校验,中本聪首次将这种树结构引入数字货币的构建之中,用于建立交易记录的哈希值索引和证明交易在区块中的位置。Merkle树是一棵由哈希值作为节点的二叉树,每一个叶节点的哈希值对应着原始数据的一个片段。父节点的哈希值由左右孩子节点的哈希值计算而来,并以这种方式一直计算到根节点。某小片段在原始数据中的校验过程,就相当于证明小片段对应的叶节点是否在已知根节点的哈希树中存在。

1.4工作量证明(ProofofWork,PoW)算法

中本聪在比特币中将工作量证明算法用作共识机制,节点对自行选定的交易集合进行竞争性计算,以率先计算出一个低于目标哈希值大小的哈希值。计算出满足要求的哈希值的节点,将计算出的哈希值和与之相关交易集合组成数据区块,并广播给其他节点。其他节点对这一数据区块进行校验,如交易是否合法、哈希值是否正确计算等。如果校验通过,则节点将该数据区块加入区块链,达成共识。区块链不产生分叉依赖于目标哈希值的计算难度,目前的计算难度设计为全网十分钟产生一个区块。

1.5零知识证明(Zero-knowledgeProof)

Goldwasser等人在上世纪八十年代首次提出了零知识证明的思想,并将其定义为一种不需要提供除论断的正确性以外的任何知识的证明方法。零知识证明中最经典的问题是洞穴模型,A需要在不向B透露开门方法的前提下让B相信A知道洞穴开门的方法。在区块链技术和一些与之相关的应用中,将非交互式零知识证明作为保证匿名性的方法之一。

2区块链技术的应用

早在上世纪九十年代,就曾经兴起过一阵电子货币(e-cash)的研究浪潮。但是,诸如Brands一类的电子货币依然停留在有中心的阶段,即账目由一个类似于银行的机构进行管理。而在比特币中,通过区块链、分布式技术、共识机制的应用,由全网节点代替银行的职能。因为网络中的节点之间不需要建立信任关系,这种技术很快就被借鉴到其他种类的加密货币中。迄今为止,类似比特币的加密货币已经达到二百余种。

区块链技术除了在加密货币领域得到了大规模的应用之外,在其他领域也得到了一些应用。

在金融领域,Ripple提出RPCA共识算法,并采用区块链技术搭建了一个为全球银行解决交易问题的平台,实现银行间的即时结算、资金实时追踪,降低了银行间的结算成本。

在密码学领域,Fromknecht等人使用区块链技术对公钥基础设施PKI进行改进,提出了Certcoin。

Certcoin将每个实体所拥有的公钥和身份标识发布在公开的区块链上,以达到追踪实体操作和公钥更改的目的。然而,在Certcoin中,实体在PKI上所进行的任何操作都是公开的。为实现隐私保护的目的,Louise等人提出一种隐私可知的基于区块链技术的PKI设计,用户可以根据自己的需求选择是否公开自己的身份信息和曾经使用过的公钥。

在数据处理领域,HealthcareDataGateways是一个使用区块链技术设计的医疗健康数据共享架构,患者可以轻松拥有、控制和分享自己的医疗健康数据。在保证患者隐私的同时,使医疗健康系统更智能。并且引入安全多方计算,使不可信第三方能够对医疗健康数据进行处理,又不破坏对患者隐私的保护。而MedRec将矿工的角色赋予给现实中的研究人员、公共健康管理者等,让矿工维护数据和网络的奖励等价于对医疗数据的整合和匿名化。但对于是否公开个人数据的权利,仍然掌握在患者或数据提供者手中。Zyskind等人则利用区块链技术的分布式特点,构建分布式个人数据保护系统,对用户个人数据进行保护。这个系统将区块链技术用作自动访问控制管理,来代替可信第三方。

3发展前景

随着区块链技术的不断发展,其应用领域也越来越广阔。Swan探讨了区块链的发展蓝图,提出了区块链1.0、区块链2.0和区块链3.0的概念。其中,区块链1.0是指加密货币或与其相关的数字支付系统,区块链2.0包括在链上实现的应用于金融、市场、财政等领域的智能合约。而区块链3.0的概念则是区块链在其他更为广阔的领域中的应用,例如管理、医疗健康、基础服务等。

现有的许多区块链技术及其应用,并未对区块链的访问控制进行很好的设计。然而,在区块链3.0时代,链上数据的公开将是可控的,例如医疗数据、政务信息等;因此,在区块链技术中加入访问控制策略就显得尤为重要。将区块链技术与现有的访问控制策略进行结合,也是需要被迫切关注的问题。

4结束语

区块链技术作为一种新兴的应用在加密货币领域的技术,正在得到学术界和工业界越来越多的关注。如何将区块链技术在其他领域进行拓展,如何在区块链中应用更加高效、更加安全的技术,是需要进一步研究的问题。本文简要介绍了区块链技术的相关概念和基本技术,分析并总结了现有区块链技术中可能存在的安全问题,以期为区块链技术的研究发展提供一些积极的启发。

参考文献

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

[2]谢辉,王健.区块链技术及其应用研究[J].信息网络安全,2016,(9):192-195