区块链是近十年出现的技术之一,受到了业界和学术界的极大关注。区块链是使用密码学链接的不断增长的记录列表(称为块)。每个块都包含前一个块的加密哈希、时间戳和表示为 Merkle 树的交易数据。区块链以数据不变性的特性而闻名。它实际上是一个运行在点对点 (P2P) 网络上的开放式分布式账本,可以在没有中间人的情况下以可验证和可追溯的方式有效地管理多个实体的交易。区块链的防篡改特性来自这样一个事实,即一旦达成共识并提交一个区块,在不改变所有后续区块的情况下,无法追溯更改区块中的数据,这需要大多数人的共识。区块链最早是由匿名者中本聪在 2008 年比特币的里程碑论文中发明的[1]。比特币是第一个可以在不受信任的权威机构干预的情况下检测双花问题的数字货币。此后,许多其他区块链平台(以太坊、Hyperledger Fabric、Ripple 和 Litecoin 等)和不仅限于金融的应用都受到比特币的启发,区块链成为近年来最热门、最有前途的技术之一。
尽管区块链在未来显示出巨大的前景,但必须考虑和解决一些性能和安全问题。例如,分布式自治组织 DAO 于 2016 年 6 月 18 日遭到黑客攻击,总共有 360 万以太币被引流到一个与 DAO 具有相同结构的子 DAO 中,这损害了以太坊的声誉,并引发了公众对以太坊的怀疑。区块链 [2]。另一个担忧是比特币交易非常缓慢。比特币在线流通的理论最大速度为 7 tps(每秒事务数),而实际可实现的吞吐量仅为 3-4 tps。同时,Paypal 平均达到 193 tps,Visa 平均达到 1667 tps。很难直接将中心化系统(如 Visa)与去中心化系统(如比特币)进行比较,但可扩展性的根本问题使区块链在商业和行业中以 beta 和 alpha 模式运行。所有这些安全和性能问题都归因于所谓的“可扩展性三难困境”,即区块链系统试图提供可扩展性、去中心化和安全性,而不会损害其中任何一个。去中心化是实现抗审查和无许可功能的核心属性。可扩展性是在规模增加的网络上处理事务的能力。安全性是保证账本的不变性及其对一般网络攻击的抵抗力的重要组成部分。不幸的是,人们认为,从根本上讲,区块链一次只能同时保证这些特征中的三分之二。一般来说,公共区块链平台的设计重点是去中心化和安全性,这无疑导致了可扩展性和极低的交易率的妥协。由于区块链技术还很年轻,有许多解决方案仍在开发中,或者目前在市场上,试图解决可扩展性问题。在本次调查中,我们探索了各种替代区块链架构选项,它们在去中心化、可扩展性和安全性之间进行了不同的三向权衡。
有几篇关于区块链的很好的调查论文,我们在本文中的范围和目标是不同的,因为我们从区块链的性能和安全性角度调查了挑战和研究趋势。一些调查论文侧重于区块链的特定方面,例如安全性 [3]、隐私 [4]、架构 [5]、共识协议 [6,7]、智能合约 [8]、应用程序和物联网 (IoT)安全相关的应用程序 [9-11]。一些论文侧重于调查特定区块链平台的安全和隐私问题,例如比特币 [12] 和以太坊 [13]。还对 41 篇精选的区块链相关论文进行了系统调查[14],目的是分析当前区块链领域的研究趋势。我们专注于区块链的安全和性能方面,讨论主要的性能瓶颈和潜在的安全漏洞,确定性能和安全之间的权衡,并研究未来发展和研究的开放挑战。我们还简要介绍了区块链的主要概念,并介绍了区块链相关行业领域的最新进展。
本文的其余部分安排如下。 我们在第 2 节中介绍了区块链的一般结构和关键技术组件,包括分布式账本、密码学、共识协议、智能合约和基准。 接下来,我们将在第 3 节讨论性能和安全方面的最新进展和挑战。第 4 节讨论不同领域的区块链工业应用。 第 5 节总结了有关性能和安全性的经验教训,并提供了该领域的研究趋势和未解决的问题。 第 6 节总结了论文。
2.关键技术区块链最初是链接块,分布在多个对等节点上,并部署在不受信任的环境中。 每个区块都包含交易数据、前一个区块的哈希值以及它自己的哈希值,如图 1 所示。
[11] 中的调查工作描述了区块链系统中的不同组件,如图 2 所示。分布式账本是存储数据的区块链数据库,旨在防篡改。对等网络在其每个对等点上都携带相同的分类帐副本,运行协议并在没有授权的情况下启用区块链交易。会员服务提供用户认证和管理的功能。智能合约是允许在区块链平台上运行并执行特定功能的程序。密码学用于确保数据的完整性。事件是网络上发生的更新通知,包括新交易、新区块的创建、新对等点的到来等。系统管理提供了创建、监控和修改系统中组件的功能。最后,系统集成组件用于将区块链系统与外部系统集成。接下来,我们介绍区块链架构中这些组件的关键技术和机制。
2.1 分布式账本分布式账本是通过点对点网络分布在多个节点上的数据存储,其中每个节点都拥有完整且相同的数据副本。 由于分布式账本中没有中央管理员,数据一致性是通过共识算法来维护的,以保证每个独立节点上数据副本的完整性。 更具体地说,分布式账本是一种仅附加的数据存储,交易更新 *** 作以非协调的方式记录在每个单独的节点上。 多个节点必须运行共识算法才能在事务的提交顺序上达成一致,从而达到各方同意的一致状态。
2.2 密码学 在区块链系统中,数据完整性是必不可少的要求,因为区块链最初是在不受信任的环境中提出和开发的,必须检测任何数据篡改。 密码学是区块链努力确保分布式账本完整性的关键。 各种密码学技术,如散列、公钥密码学和知识的零知识证明,在区块链中被广泛使用。
数据完整性由哈希 (Merkle) 树和哈希指针共同保护。在区块链系统中,只维护当前全局状态,过去状态的历史只能通过遍历区块交易历史来实现。当前状态受默克尔树保护。在 Merkle 树中,每个叶子都包含系统状态;每个非叶节点都包含其子节点的哈希值。因此,根包含整个分类帐的根哈希,任何状态更改都将导致新的根哈希。因此,默克尔树允许对分布式账本进行有效和安全的验证。另一方面,区块交易历史受到哈希指针的保护。由于分布式账本是一种仅附加的数据存储,因此一旦将块提交到区块链,它就是不可变的。为确保一个区块在添加到账本后不能被更改,索引为 n + 1 的区块包含前一个区块(即区块 n)的哈希值。因此,块 n 中的任何更改都将导致所有后续块无效。通过将默克尔树和哈希指针结合在一起,保证了数据的完整性。
共识区块链完全分散在多个节点上,没有中央协调者。 因此,为了保持分布式账本的一致性,区块链需要就区块交易历史达成共识。 共识是在一个群体中达成一致的一种动态方式。 由于区块链可能暴露在恶意环境中,共识算法因遭受拜占庭将军问题而闻名。 在区块链系统中已经提出并采用了几种共识算法,可以解决拜占庭将军问题。 我们描述了主要的共识算法,并在表 1 中列出了比较。
比特币通过发明工作z明协议(PoW)绕过了这个问题。 在 PoW 协议中,必须解决密码难题才能将块添加到区块链中,这需要大量的能量和计算量,从而确保避免拜占庭攻击。 但是,PoW 存在一些众所周知的问题。 首先,PoW 是一个效率极低的过程,因为消耗的电量非常大。 其次,PoW 并不像它希望的那样去中心化,因为具有更强大计算设施的节点通常更有机会解决难题。
以太坊正在考虑将其分布式共识系统更改为更高效的协议,即权益证明 (PoS)。 在 PoS 协议中,如果一个节点想要将一个块添加到链中,它将通过在该块上下注来验证该块。 附加块后,节点将获得与其赌注成比例的奖励。 显然,PoS 协议比 PoW 更加资源友好。 然而,PoS 协议存在“Nothing at Stake”问题。 假设主链有一条短链分支。 在 PoW 协议中,所有节点将继续在较长的链上工作,因为在较短的链上工作只是浪费计算能量。 在 PoS 协议中,恶意矿工可以在较短的链上挖矿,因为没有失去任何权益的风险。 因此,PoS 协议无法避免链分裂。
没有全局协议的顺序。 因此,与 PoS 相比,DPoS 共识更快、更高效、更灵活。 交易确认平均只需 1 秒。 然而,由于 DPoS 以去中心化的特性换取效率,因此有人担心少数证人会导致非常高度的中心化,并且会面临政府或 ISP 关闭等真正的攻击。
Paxos 是一系列共识协议,它在给定系统中的处理器、参与者和消息的假设之间进行各种权衡。 该协议保证安全,只考虑崩溃容错(CFT),并且经常用于需要大型数据集的持久性的地方。 Raft 是 Paxos 的一个可以理解的替代方案,在容错性和性能上与 Paxos 相当。 Paxos 和 Raft 都不考虑恶意环境,只适合私有或联合区块链,例如 Quorum。
Hyperledger Fabric 采用实用的拜占庭容错(practical BFT,即 pBFT)协议作为其共识机制 [19]。 pBFT 协议可以在不超过 1/3 的节点不诚实的恶意环境中工作。 所有节点都相互通信,目标是所有诚实节点通过大多数人帮助就系统状态达成共识。 与 PoW 相比,pBFT 协议的重要优势在于其显着降低了能耗。 然而,繁重的通信开销使得经典的 pBFT 仅适用于较小的共识组规模,并且可扩展性较差。
[7] 中的工作回顾了私有/联合区块链平台的共识协议,包括 Hyperledger Fabric、Tendermint [20]、Symbiont [21]、R3 Corda [22]、Iroha [23]、Kadena [24]、Quorum、Sawtooth Lake [25]、Ripple [26]、Stellar [27] 和 IOTA [28]。 文中讨论并比较了各平台的故障模型和抵御攻击的能力。 [6] 中的工作调查和比较了 P2P 系统和区块链的共识机制。 P2P 和区块链都是去中心化的系统,没有权限,但是 P2P 系统可以在人口众多的恶意和匿名环境下处理安全问题。 作者得出结论,P2P 系统可以为区块链改进共识和激励机制提供指导。
2.4.智能合约智能合约是在区块链系统中存储和复制的计算机代码,可以导致账本 *** 作,例如汇款和产品或服务交付。 智能合约帮助交易以透明、无冲突、不可否认、更快、更安全的方式自动执行,无需第三方的帮助。
一些区块链平台仅提供一组有限的模板,可用于编写比特币等合约脚本。 其他一些平台可以支持更全面的代码集。 以太坊提供了用于指定任意计算的图灵完备代码。 一些平台允许智能合约代码在其本机运行时运行,而其他平台创建虚拟机来执行合约代码。 例如,Hyperledger Fabric 依赖 Docker 来运行代码。
然而,当智能合约暴露在不受信任的系统中并且缺乏政府的监管时,它们仍然存在安全性和合法性问题。
在智能合约 [8] 的调查工作中,Wang 等人。 介绍了区块链智能合约的运行机制和典型平台。 他们还提出了一个智能合约的研究框架,包括一个组织智能合约相关研究方面的六层架构。 最后,他们总结了智能合约的技术和法律挑战、最新进展以及可能的应用场景。 鲁哈尼等人。 在[29]中回顾了智能合约的关键概念和近期研究进展。 调查主要包括智能合约的安全方法、性能改进方法和潜在应用。
性能基准是区块链平台非常重要的特性。 没有通用的工具和标准可以为不同的区块链解决方案提供性能评估。 Hyperledger 小组在定义区块链的性能基准方面付出了很多努力。 Hyperledger 性能和规模工作组发布了一份白皮书,其中定义了与平台无关的术语和性能评估中的关键指标 [30]。 Hyperledger 还开发了 Hyperledger Caliper,这是一种区块链框架的基准工具,能够集成多个区块链解决方案并提供评估环境 [31]。 Hyperledger Caliper 可以报告主要的性能指标,包括 tps、事务延迟、资源利用率等。
丁等人。 介绍了 Blockbench,一个用于分析私有数据的通用评估框架区块链 [32] Blockbench 提供的 API 可以使任何私有区块链集成到评估框架和实际工作负载中,以评估吞吐量、延迟、可扩展性和容错性方面的性能。 丁等人。 进一步对以太坊、Parity [33] 和 Hyperledger Fabric 三大私有区块链进行了评估。
3.挑战和最先进的进步区块链是一个去中心化的系统,通常部署在不可控的环境中,因此面临着不断试图欺诈交易的黑客和小偷的巨大挑战。 另一方面,与传统交易系统相比,区块链的极端安全性和去中心化要求使其性能下降。 最近探索了许多新技术,试图在安全性和性能之间取得平衡。 在本节中,我们从各个方面讨论区块链的最新进展和面临的挑战。
3.1 性能关注区块链区块链专为在没有受信任方和中央管理的情况下使用而设计,但数据的不变性和安全性很重要。由于区块链固有的分布式和点对点性质,基于区块链的交易只有在各方更新各自的账本时才能完成,这可能是一个漫长的过程。因此,区块链的实施成本高昂,其很多功能也由传统的集中式数据管理方案,即rational database。然而,区块链在吞吐量方面的性能与rational database相比明显下降。例如,比特币和以太坊的吞吐量分别仅为 4 tps 和 20 tps,而 Visa 和 PayPal 的平均吞吐量分别为 1667 tps 和 193 tps [34]。性能损失换来了区块链的优势,即它提供了一种可靠、强大和安全的方式来存储数据,而无需任何第三方干预。我们从表 2 的各个架构方面总结了公共区块链和数据库管理系统(DBMS)之间的区别。
尽管区块链具有强大的安全特性,但它仍然需要付出很大的努力来提高性能,以使区块链在实践中得到应用。 [35] 中的工作调查了 pBFT 共识协议在大量对等点下的性能。它提出了一个随机奖励网络 (SRN) 模型来评估 pBFT 中共识过程的平均完成时间。它还运行一个真正的区块链网络,运行一个生产级物联网应用程序,并与少数同行验证模型。因此,所提出的 SRN 模型可用于估计具有大量对等点的 pBFT 的瓶颈。基于单链的架构一直被认为是区块链的瓶颈,因为交易不能并行处理,必须在单链方案下一一提交。 [36] 中的工作提出了一种基于多链的区块链架构,它允许一组区块链并行运行,并使系统更具可扩展性和可扩展性。在所提出的架构中,有一条主链和一组半独立的子链。有一个价值交换层连接子链和主链,辅助子链之间的交互。该架构还提供见证服务以实现子链交易和跨链交易。 Sanka 和 Cheung 提出将区块链数据缓存在网络接口控制器 (NIC) 中的 FPGA 键值存储中,以提高区块链应用程序的可扩展性和吞吐量 [37]。在所提出的解决方案中,为了提高性能,所有hash值都存储在定制的 SHA-256 散列核心中,并且只有在请求的不是散列值时才执行实际的散列 *** 作。基于 FGPA 的解决方案已在真实的比特币核心中实现,评估表明,它在缓存命中时将吞吐量性能提高了 103 倍。齐等人。提出了一种区块链级联结构,解决了区块链现有的性能问题。在该结构中,在任意两个key块之间插入多个存储交易的微块,key块只存储微块的摘要。此外,微块是无序的,并且可以容忍事务重复,这可以加快块生成并提高整体性能[38]。埃亚尔等人。提出了 Bitcoin-NG(下一代),这是一种拜占庭容错区块链协议,与比特币 [39] 共享相同的信任模型。 Bitcoin-NG将区块链 *** 作分为领导选举和交易序列化两个阶段,确保系统在领导选举期间能够持续处理交易,从而将系统性能提高到网络传播延迟和单个节点的处理能力。菅直人等。试图用图数据结构代替原来的链式结构,以提高比特币和 Bitcoin-NG 系统的吞吐量 [40]。图数据结构允许并行挖掘并有利于交易确认时间。李等人。提出了一种基于投票证明(POV)的共识协议,该协议是由联盟中投票的机构达成的,而不依赖于第三方中介或无法控制的公众意识。与完全去中心化的 POW 协议相比,POV 具有可控的安全性、收敛可靠性和低交易确认时间[41]。
区块链具有一些理想的功能,有助于保护交易数据。 这些功能包括防篡改、分布式账本、加密保护记录以及对单点故障的d性。 但是,这项技术包括基础协议及其应用的安全性在内的成熟度还不够,区块链在业务中的应用还需要考虑更多的条件和要求。
首先,我们讨论和总结区块链安全与标准网络安全的区别[11]。
•目标不同。 标准网络安全的目标是消除外部攻击者篡改数据。 区块链安全的目标是通过在尽可能多的位置存储数据副本来使数据篡改变得不可行。
• 基础设施不同。 标准的网络系统通常是中心化的,通过严格的准入控制和权限授予来实现安全性。 区块链系统专注于去中心化,而可用性和完整性由账本的分布式特性提供。
• 环境不同。 标准网络系统由安全人员控制,并假设为半可信(如果不完全可信)环境。 区块链应该在没有中央权威的不受信任的分布式设备上运行
•
无论如何,尽管区块链与标准网络安全存在根本差异,但区块链仍然面临着困扰标准网络系统的安全挑战。 [11] 中的工作详细讨论了这些挑战。首先,区块链可能会因 DDoS(分布式拒绝服务)攻击而过载。其次,由于区块链中的所有对等点都是等价的,因此端点中的任何缺陷都可能是整个系统的缺陷。第三,应用程序代码(即区块链中的智能合约)可能是安全威胁。与传统系统不同,智能合约可以由恶意用户提交,因此智能合约中的任何恶意代码都可能导致严重后果。即使由于密码学性质和共识协议,区块链系统理论上是防篡改的,但仍然存在创造性的作弊方式。例如,一个自私的矿工可以欺骗其他节点在已经解决的加密难题上浪费时间,因此即使它只有不到一半的权力也会破坏区块链。恶意用户可以控制诚实节点的通信并欺骗它接受错误的块。区块链系统的另一个可疑保证是它没有像预期的那样去中心化。节点通常由具有更多挖矿能力的同行主导,这使得比特币或以太坊实际上成为一个中心化系统。在许可系统中,为了解决安全问题,可能会授予所有者更多的权限,这可以被认为违反了区块链的基本性质。最后,与现有系统集成、加密密钥材料管理以及提供具有所需 QoS 保证的网络连接被认为是 Hyperledger [42] 的主要安全问题。网络质量引起的担忧是由于大多数共识算法对延迟敏感,并且通过中断通信可能会发生一种潜在的 DoS 攻击。
Matsuo 研究了通过形式分析和形式验证来增强区块链安全性的方法 [43]。 提出了一个框架,通过使用现有的标准和结果,将形式分析应用于区块链的实现、协议和语言层。 亨利等人。 研究了工作中的区块链访问隐私[4]。 为了确保访问隐私,匿名通信网络,例如 Tor (https://www.torproject.org),已被提议作为候选解决方案。 [4] 中的工作通过表明隐私可以在匿名通信网络上被破坏并且必须寻求新方法来挑战这种方法。 [12] 中的调查工作回顾了比特币中已知的漏洞和隐私问题,并调查了最先进的安全解决方案。
3.3.性能和安全问题背后的架构选择区块链实施有许多架构选项,它们在各种性能方面进行权衡,包括安全性、复杂性、可扩展性、透明度、隐私、吞吐量和延迟。 我们将详细讨论这些选项。
3.3.1公共与私人/联合公共区块链,也称为无许可区块链,允许任何人在未经许可的情况下参与。 公共区块链的共识协议通常基于 PoW、PoS 或混合。 使用公共区块链,任何人都可以在自己的设备上运行公共节点,加入网络并参与交易。 公共区块链中的交易是透明但匿名/假名的,并且可以被链中的任何参与者读取。
私有区块链,也称为许可区块链,用于单个组织内部处理交易。 在私有区块链中,读取权限可以是公开的,也可以授予受限制的一组参与者,但写入权限仅授予组织。 私有区块链在可信环境中运行,并且比公共区块链更快、更便宜,因为只有所有者保留写权限,无需达成共识。 因此,与公共区块链相比,它的安全性和封闭性要低得多,并且像中心化系统一样遭受安全漏洞。
联合区块链或区块链联盟 federated blockcain or blockchain consortium 与公有区块链相对,与私有区块链非常相似,但有显着差异。联合区块链在一个团体而不是一个组织的领导下运作,多个实体建立一个去中心化的系统,就像公共区块链中的那样。与私有区块链类似,写入权限仅授予受信任的实体,其他人不得参与验证交易的过程。读取权限可以是公开的,也可以仅限于参与者。因此,不是只有一个组织负责私有区块链,而是有多个实体一起工作以使系统更加分散。因此,与公有区块链相比,联盟链速度更快、可扩展性更强,并提供更多的交易隐私;与私有区块链相比,它更加去中心化和安全。联合区块链主要用于银行业。
我们在表 3 中总结了公共区块链与私有/联合区块链的比较。
拜占庭故障是分布式计算系统的一种情况,其中节点可能发生故障,恶意节点可能存在; 并且不知道节点是失败还是恶意节点。 如果一个共识协议可以在存在恶意节点和一般节点故障的环境下工作,那么它是拜占庭容错的,而如果协议只适用于一般节点故障,则它是非拜占庭容错的。 区块链的一些共识算法是拜占庭容错的,诚实节点仍然可以与恶意节点的存在达成一致。 一些共识算法不是为在恶意环境下工作而设计的,它们假设所有节点都是诚实的,只能容忍一般的系统故障。
实用拜占庭容错是拜占庭容错共识协议之一。 它改进了原有的BFT共识机制,可以容忍1/3(n-1)的恶意节点,其中n是对等节点的数量,并且具有多项式时间复杂度。 它已在一些流行的区块链平台(例如 Hyperledger Fabric)中得到实施和增强。
Raft(分布式系统中常用到的) 是 Paxos 的一个改进的实用版本。 它具有相同的性能和容错性 Paxos 协议。 它更易于理解,并解决了实际系统所需的所有主要部分。 它不应该在恶意拜占庭环境下工作,只考虑一般系统故障,并且可以容忍1/2(n-1)的节点故障。 因此,它是非拜占庭容错的,并且适用于私有区块链。
瑞波协议使用正确性证明并要求识别所有节点。 它比 PoW 和 PoS 协议更有效,可以容忍 1/5 (n − 1) 的恶意节点,并且仅适用于许可的区块链(私有链privated blockchain permissioned blockchain)。
PoW 协议是一种概率拜占庭协议,假设网络同步性高 [44],当恶意节点的哈希算力严格小于 1/2 时,它可以容忍恶意环境。 当恶意节点的权益严格小于 1/2 时,PoS 协议也可以在恶意环境中工作。 因此,PoW 和 PoS 协议都适用于公共和联合区块链。
雷等人。 声称 pBFT 中每个成员的平等权利是不合理的,因为故障节点应该拥有较少的权利 [45]。 他们提出了一种基于声誉的拜占庭容错 (RBFT) 算法,该算法评估每个节点的贡献及其在投票过程中的声誉。 如果检测到任何恶意行为,故障节点将获得较低的声誉,因此在共识过程中的正确性较低。 在验证新块时,RBFT 算法还会为信誉较高的节点分配更多优先级。 RBFT算法可以容忍pBFT的1/3(n-1)个恶意节点,但在故障节点率高时与pBFT相比具有更高的tps和更低的延迟。
直观地说,存储在链上的数据更加安全、可信、防篡改和单点故障容错。 但是,链上的数据可供链中的每个人使用,并且几乎没有隐私保证。 存储在链上的数据量是有限的,要么是因为协议的限制,要么是因为在链上存储数据的巨大成本。 存储成本非常高,因为区块链中的每个节点都必须保留数据的完整副本。 这就是为什么即使存储千字节也会花费一大笔钱的原因。 此外,在区块链中查询数据很困难,因为区块链不是 SQL 服务器,查询链上数据非常昂贵。
相反,链下数据提供了隐私,存储成本可以忽略不计,但它们没有利用区块链的安全性、可靠性和可信任性特性。
在区块链上存储数据有很多选择。 我们可以选择仅在链上存储哈希或数据子集,而不是将完整的原始数据存储在链上。 通过仅存储hash或数据子集,存储成本神奇地降低了。 原始数据可以存储在关系数据库中,也可以存储在文件系统中,并以相应的哈希值作为索引。
区块链经常使用交易模型来做记录。 交易是一种状态转换,它将区块链中的数据从一个值更改为另一个值。 这些数据可以是区块链中跟踪的任何类型的数据,包括加密货币金额、物联网传感器读数等。交易包括发送方的地址、接收方的地址以及双方之间的交换。 要将自定义数据存储在区块链上,我们需要将数据打包成交易以便能够存储它。 一些区块链允许将自定义数据附加到其协议中的事务中,这称为事务存储。
一些区块链没有该功能。 因此,必须对自定义数据进行编码(如有必要)并用作接收者的地址。 交易被发送到这个特定地址,数据存储在区块链中。 通过非事务性存储,数据被编码到接收地址中,而不是存储在事务的有效负载字段中。 非事务性存储有两个缺点。 首先,由于地址大小有限,可以存储的数据数量非常少。 其次,交易被发送到一个不属于发件人的地址; 因此,交易费用丢失。
链上存储容量有限,需要借助链下机制来存储大量数据。 数据库主要有两种选择,即 SQL 和 NoSQL,或者关系数据库和非关系数据库。
关系数据库是一种更严格、更结构化的数据存储方式。 存储在关系数据库中的数据必须以非常有组织的方式进行结构化。 关系数据库确保了 ACID(原子性、一致性、隔离性和持久性)合规性,从而保护了数据的完整性并减少了异常。 尽管与非关系数据库相比,关系数据库的可扩展性较差并且不支持高流量,但它适合不会快速增长的更一致的数据集。 流行的关系数据库包括 MySQL、Oracle、IMB DB2、Sybase、MS SQL Server、Microsoft Azure 和 PostgreSQL。
非关系型数据库是面向文档和分布式的,更适合来自网络的非结构化数据,可以包括传感器数据、社交共享、个人设置、照片、基于位置的信息、在线活动、使用指标等。 非关系型数据库因其速度和可扩展性而广受欢迎,并且适用于具有大量且几乎没有结构的数据集。 非关系型数据库有四种类型:键值模型、列存储、文档数据库和图数据库。 MongoDB、Apache 的 CouchDB、HBase、Oracle NoSQL 和 Apache 的 Cassandra DB 是流行的非关系型数据库。
3.4 性能指标由于区块链是在没有中央权威的情况下实施的,因此通过在多个节点之间保留冗余数据而以牺牲性能为代价来增强系统完整性和可用性。因此,随着区块链中节点数量和工作量的增加,评估性能指标非常重要。 Hyperledger 性能和规模工作组发布了一份白皮书,其中定义了与平台无关的术语和评估区块链性能的关键指标 [30]。丁等人。提出了一个评估私有区块链性能的基准框架,并对以太坊、Parity 和 Hyperledger Fabric 等三大区块链平台进行了综合评估[46]。在本节中,我们总结了重要的性能指标,并在表 4 中展示了研究工作 [46] 得出的性能比较结论。我们仅在表 4 中列出了 Ethereum、Hyperledger 和 Parity 来比较性能。原因是吞吐量和延迟等关键性能指标仅在与具有相同约束集的类似性质的事务进行比较时才相关。各种区块链技术在定义交易的方式上有所不同。对于以太坊、Hyperledger 和 Parity,交易被衡量为从向网络提交交易到确认交易到区块之间的持续时间。对于其他区块链平台,交易的定义可能会有很大不同。例如,与传统区块链不同,IOTA 是一种基于 Tangle 的技术。 IOTA 使用整个网络,即缠结,而不是链来映射交易。从理论上讲,IOTA 将享有良好的吞吐量、延迟和可扩展性,因为它以严格的数据一致性换取性能提升。因此,即使不是不可能,也很难在相同的环境中直接将 IOTA 与其他基于链的区块链平台进行比较。我们还在性能比较表中列出了IOTA,其中性能是通过不同的方法评估或与其他三个平台进行理论分析的比较。
吞吐量是指区块链平台每秒可以处理的成功交易数量。延迟是区块链平台每笔交易的响应时间。可扩展性评估当区块链经历节点和并发工作负载增加的时候观察吞吐量和延迟的变化。容错评估节点故障期间吞吐量和延迟的变化,包括系统崩溃、网络延迟和随机消息损坏。安全指标定义为主分支的区块总数与已确认区块的总数之比。 当比率较高时,区块链系统很容易受到双重支出或自私挖矿导致的安全攻击。塔卡等人。进行了全面的实证研究来表征 Hyperledger Fabric [47] 的性能。该研究是在一个有 8 个对等节点和一个带有 kafka-zookeeper 的排序节点的环境中进行的。所有对等点和 kafka-zookeeper 在具有 32 个 vCPU 和 32 GB 内存的 x86_64 虚拟机上运行,并连接到 3 Gbps 数据中心网络。实验增加了交易到达率直到达到饱和,并以不同的块大小重复测试。该工作得出的结论是,随着事务到达率的增加,吞吐量按预期线性增加,直到达到 140 tps 左右的最大吞吐量。当事务到达率达到最大吞吐量时,延迟会急剧增加,更具体地说,从几十或几百毫秒到几百秒。此外,对于小于最大吞吐量的到达率,延迟会随着块大小的增加而显着增加;当到达率达到最大吞吐量时,延迟会随着块大小的增加而略有下降。
我们还测试了以太坊随着存储数据的增加在时间和能耗方面的可扩展性。我们在以下环境中进行了评估。以太坊客户端 Geth(1.8.3-stable)在计算机(MacBook Pro 2017 版)和以太坊钱包 0.10.0 上运行。硬件配置为 macOS 10.14.6 *** 作系统、2.3 GHz CPU、i5 版本 Intel Core 和 8 GB 2133 MHz LPDDR3 内存。我们通过测试存储在区块链上的文档的 gas 成本和时间消耗来解释性能。如图 3 所示,我们发现随着文档的增加,gas 成本稳步上升。当文档数量为 10 时,gas 成本为 151,408。对于额外存储的 10 个文档,可能需要多花费 100,000 天然气。如图 4 所示,我们发现随着文档的增加,呈现出增加的趋势。当文档数量为 10 时,时间成本为 952.001 秒。当文档数量为 100 时,时间成本为 5636 s。时间成本的增长幅度几乎是线性的,这证明了以太坊的存储性能是高性能的。
3.5 DBMS 增强通过使用区块链技术增强数据库,可以使数据库去中心化、更安全、100% 可信、透明和更高效。 IBM 已申请专利,以构建可靠的数据库篡改检测系统,该系统可以通过区块链技术检测中央数据库中的任何数据不一致。 BigchainDB旨在提供具有区块链特性的数据库,支持高吞吐量、低延迟、强大的查询功能、去中心化控制、不可变数据存储和内置资产支持。 BigchainDB 2.0 版本比以前的版本有了显着的改进,现在是拜占庭容错,可以容忍多达三分之一的节点故障。调查工作 [48] 回顾了 BigchainDB 2.0 的设计目标、技术方法、用例和未来计划。 Corda 是分布式账本上的分布式全局数据库,节点之间的信任最小。它旨在服务于金融、贸易、供应链跟踪等领域的各种应用,并且专门用于受监管的金融机构 [22,49]。朱等人。提出了一个语义授权的区块链数据库,即 SEBDB,它同时考虑了可用性和可扩展性。在 SEBDB 中,链下数据存储在一个合理的 DBMS 中,链上数据被建模为许多预定义的关系。每个事务都是一个元组,具有属于某个关系的多个属性,并带有关系数据语义。通用接口使用类 SQL 语言而不是代码级 API 实现,提供了更多便利。因此,SEBDB 通过利用已优化了数十年的现有数据库功能来增强区块链平台 [50]。
3.6 chaincode数据分析由于其安全性和冗余功能,区块链为数据分析提供了更多好处。 使用区块链,数据不能被伪造,实时交易中可以防止欺诈行为。 结合大数据分析,可以实时识别行为模式并识别风险交易。 区块链还极大地提高了数据分析的透明度,因此行为模式识别可能更准确。 此外,借助区块链的冗余架构,数据更有价值和更可靠。
另一方面,交易是全球发布的,并且在大多数区块链应用程序中都没有加密。 因此,人们担心缺乏隐私。 一种解决方案是仅将加密数据存储在区块链中,如果解密的密钥丢失,这会导致安全问题。
此外,对于链上数据,只有当前状态记录在默克尔树中,其他交易历史存储在不支持快速查询的区块中。 因此,查询历史数据非常耗时且昂贵。 在 [51] 中,Gupta 等人。 提出了两种模型,用于有效处理 Hyperledger Fabric 上的时间查询。 第一个模型创建每个事务事件的副本,并将临时关闭的事务一起存储在 Fabric 上。 第二个模型为每个事务标记元数据,并使临时关闭的事件共享相同的元数据。 在后续工作 [52] 中,Gupta 等人。 展示了两个模型的变体,它们可以处理 Fabric 数据中的偏差。
3.7 跨channal交易跨区块链交易很困难,因为需要可信的第三方来执行跨区块链交易,因此失去了区块链的好处。闪电网络(Lightning Network)一直在积极致力于区块链间交易的去中心化选项,该选项不需要第三方。该技术被称为原子跨链交换,它允许两个不同区块链上的两方直接和即时交易。原子交换使用一种称为散列时间锁合约 (HTLC) 的方案,它结合了两种技术,即散列锁和时间锁。哈希锁使用加密谜题来确保一方无法在另一方不做同样事情的情况下释放他们的资金。如果什么都没发生,时间锁充当安全网,在一定时间后将资金路由回发送者。目前,原子交换技术仍处于早期阶段。在开始交易之前,用户需要下载交易涉及的两个区块链。预计新的发展将使原子交换更加用户友好并进一步分散市场[53,54]。英语等。通过在分层元区块链层中封装有关点对点交易促进者保真度的信息,提出了一种解决区块链间交易问题的方法[55]。
3.8. 混合区块链混合区块链介于公共和私有两个极端之间,并试图利用私有和公共区块链解决方案的最佳部分。 混合区块链将限制访问,但仍提供完整性、透明度和安全性。 混合区块链的成员可以决定谁可以参与区块链或公开哪些交易。 混合区块链继承了公共区块链的去中心化、安全、透明和不可变的特性,但将查看、修改和附加/批准交易的权利仅限于选择性成员。
4 应用区块链技术有望推动新的创新,改善现有流程或解锁新技术。 在本节中,我们将简要回顾已提出应用区块链技术的不同行业。 我们试图确定支持不同工业应用实施区块链的安全性和性能要求,并揭示为了更好地利用该技术而必须解决的挑战。
有很多公司致力于开发基于区块链技术的新应用程序。 2019 年初,在国家互联网信息办公室注册的区块链服务提供商有 197 家 [56]。 所提供的服务可分为九类,如图 5 所示。在这些提供商中,约有一半提供通用区块链平台或未被认可的区块链服务。 第二大类是金融服务,包括 43 家提供商,显然是区块链最常见的应用。 以下类别是供应链服务、版权保护和法律服务。 还有一些供应商专注于治理、医疗保健、教育和智能交通。 [10] 中的调查工作回顾了采用区块链技术的不同工业应用领域,并探讨了将区块链纳入这些应用的机会、好处、要求和挑战。
4.1 金融服务•资产管理:交易处理与结算
在传统的贸易过程中,每一方都有自己的记录,成本高,风险大。 切换到区块链后,可以通过分布式账本简化流程,并通过加密记录来减少错误。 此外,不需要中介。 据报道,丹麦航运公司马士基通过使用与 IBM 开发的基于区块链的方法来帮助将鲜花从肯尼亚蒙巴萨港运送到鹿特丹的过程,所有文件都存储在链中并由所有参与者共享 [57]。
区块链可以为保险理赔提供无风险、透明的流程,这些理赔通常面临碎片化和不可靠的数据,需要人工处理。美国互助汽车保险公司 State Farm 宣布,它正在运行基于区块链的测试,以简化 2019 年上半年汽车索赔的代位求偿流程。希望区块链解决方案可以帮助减少时间和与常规过程相比,完成代位求偿过程所需的资源 [58]。 [59] 中的工作提出了基于区块链的细粒度运输保险的原型。在原型中,驾驶员和车辆使用信息从移动传感器收集并存储在不同方拥有的不可变、可追溯、透明的分布式账本中。保费是根据收集到的车辆使用情况和驾驶员行为信息进行评估,促进公平,鼓励更安全的驾驶方式,并可供保险公司用于营销。支付:跨境支付
跨境支付至少需要几天的时间才能让资金穿越世界,而且成本非常高,很容易成为洗钱的目标。 区块链辅助汇款服务有助于提供安全、廉价、即时和透明的国际支付。 2016 年 8 月,SBI Ripple Asia 宣布 Ripple 的区块链技术将为由 15 家银行组成的日本银行财团提供支付和结算支持 [60]。 借助瑞波提供的区块链技术,国内和跨境支付可以实时结算,跨境费用最高可节省90%。 4.2 IoT 应用
在物联网应用中,越来越多的智能设备接入互联网并产生大量数据。 区块链提供了一种从智能设备收集数据的可靠方法。 [61] 中的工作设计了一个高性能的区块链平台来实现智能设备的去中心化自治。 王等人。 使用区块链技术来增强物联网系统的安全性[62]。 罗伊等人。 研究将区块链集成到传感器网络中以实现安全和隐私[9]。
智能家电
智能家电是一种连接到互联网的设备,可以帮助您在离家时监控和控制设备。在区块链上加密这些设备可以保护所有权并实现可转移性。沃尔玛已经提交了一项关于使用区块链管理智能家电的专利申请。该专利申请建议使用区块链管理智能设备系统,例如计算机、信息亭、桌面设备、游戏设备、笔记本电脑和便携式媒体播放器。它还描述了广泛应用中的智能环境,例如家庭、媒体、制造、能源和医疗保健 [63]。建筑节能测量是以预测基准模型与实际消耗量的差异来衡量的,实际应用中涉及大量数据,往往需要第三方进行审计。 [64] 中的工作为公平和可信赖的能源绩效合同开发了一个原型,它将预测模型和数据存储在基于以太坊的不可变分布式账本中。
供应链传感器
智能传感器在供应品运输过程中为公司提供及时且有价值的数据,这些数据可以提供有洞察力的分析,从而促进成本、性能或客户体验的改善。 借助区块链,智能传感器可以更加安全,并且可以立即跟踪和定位任何数据篡改。 沃尔玛使用区块链跟踪中国猪肉的销售情况。 它的系统记录了每块肉的来源、每个加工和储存步骤以及链中的销售日期[65]。 [66] 中的工作试图通过评估不同的区块链替代方案来找到能够确保供应链完整性的区块链候选者。
智能电网是管理各种能源的电网,包括可再生能源和能源措施。 可再生能源和存储系统的发展允许传统能源消费者将多余的能源卖回给电网或附近的其他能源消费者,从而使电网更加分布式和点对点的方式。
跟踪电力的生产和分配是智能电网的一个重要方面。区块链技术可以提供一种安全可靠的方式来进行点对点能源交换,而无需基于智能合约的中央协调器。这将导致分散式微电网和支持微电网的技术的发展增加。盖等人。通过结合区块链和边缘计算技术[67],为智能电网网络提出了一种许可的区块链边缘模型,以解决智能电网中的隐私保护和能源安全问题。他们使用组签名和隐蔽通道授权技术来保证用户的有效性。智能电网还存在一个重要的隐私问题,即可以挖掘能源交易量来检测其私人信息,例如物理位置和能源使用情况。在[68]中,提出了一种面向联盟区块链的方法来解决智能电网中的隐私泄露问题,并筛选卖家的能源销售分布。区块链医疗保健
区块链可用于存储编码的个人健康记录,并且只允许授权方访问。 分布式账本还可以在医疗保健接受者、医疗保健提供者、保险公司和监管机构的参与下提供安全和保密的医疗保健管理。 电子商务医疗保健提供商 PokitDok 在 2016 年推出了一个名为 DokChain 的基于区块链的医疗保健系统。DokChain 将医疗保健生态系统中的所有端点集成到基于 Sawtooth 的区块链网络中,并且可以提供健康数据以安全地跟踪和共享 [69]。区块链音乐
在网络音乐行业,集中管理从艺人和粉丝那里获取利润,粉丝被收取高额的音乐访问费用,而艺人将大部分利润交给了集中管理。 区块链和智能合约技术可以帮助创建一个分布式音乐流媒体平台,所有交易都是透明的,资金直接流向艺术家,粉丝可以以更简单、更便宜的方式获得更多音乐。 世界各地涌现出许多基于区块链的音乐公司 [70],从欧洲西海岸到中国东海岸,再到美洲。 马等人。 提出了一个适用于数字版权管理的主从区块链平台[71]。 4.4. 区块链在工业应用领域所面临的性能和安全挑战
现在,我们重点介绍部署区块链面临的性能和安全挑战工业部门。首先,目前行业应用规模通常很大,需要区块链平台以非常高的吞吐率处理交易。大多数最先进的区块链平台无法处理这些高交易率,性能将严重下降。尤其是金融服务领域,区块链较差的可扩展性和高交易处理延迟成为主要的性能瓶颈。对于物联网应用,瓶颈是不同的。 [72] 中的工作评估了云和边缘托管区块链的性能,其中区块链被提议作为物联网的服务。工作表明,在物联网系统中采用区块链时,网络延迟是主要的性能因素。随着应用程序规模和交易量的快速增长,可扩展性已成为一个紧迫的问题。其次,工业应用程序部署在互联网上,因此容易受到各种网络攻击。端点安全是金融服务中的主要安全问题。将加密身份与现实世界身份联系起来面临更多挑战,这有助于识别洗钱嫌疑人。许多工业应用(例如医疗保健应用)都涉及敏感或私人信息。因此,区块链技术必须提供不同且可接受的安全和隐私措施,以满足不同行业的不同需求。
5.未来主题我们对区块链的安全性和性能方面进行了全面调查,并相关技术,并在前面的章节中讨论了一些挑战和未解决的问题。 我们现在总结经验教训,并简要介绍剩余的挑战和可能的未来研究趋势。
性能限制和可能的方向总结如上所述,与区块链相比,区块链的性能严重下降。传统的数据库系统由于其固有的分布式、点对点的性质。我们总结了使区块链不适用于许多数字交互的主要性能限制,如下所示。
• 吞吐量
目前商业区块链平台的吞吐量比传统数据库系统低几个数量级。期望应用区块链处理真实生产环境中的业务交易,需要提高区块链网络的吞吐量。
• 延迟
目前,在区块链平台上完成一笔交易需要几十分钟,而在 VISA 上一笔交易只需几秒钟。因此,将处理延迟提高到几分钟,同时仍然保持安全性是一项重大挑战。
• 网络瓶颈
由于区块链网络中的每个节点都需要保存一份数据,网络中交换的数据使得网络带宽成为瓶颈。随着区块链系统规模的增加,必须解决网络带宽瓶颈。
我们接下来澄清一些与性能相关的未来研究方向,这可能有助于
区块链对实际应用更实用。
可扩展性和互连性较差,使得区块链难以带来大规模的商业应用。原因之一是传统区块链的数据结构是顺序的。区块链永远无法扩展到高 tps,因为必须以顺序方式将块一个一个地附加到链上。提高区块链的并行性可能是一种可行的方法。通过并行数据结构,存在多条链,并且可以同时将多个块附加到链上,从而使系统能够以更高的吞吐量处理交易。但是,对于多条链,必须增强共识协议以确保数据的完整性和一致性。 Ælf 是一个多链并行计算的区块链框架,它引入了主链和多层侧链的概念来处理各种商业场景,并解决了单链的性能瓶颈[73]。菅直人等。提出将块存储在图数据结构中而不是原始链中,并通过并行挖掘提高性能[40]。托安等人。通过提出并行区块链的半中心化网络和授权证明的共识机制提出了另一种方法,旨在解决当前区块链的性能低效问题[74]。菲茨等人。 [75] 提出了一个正式的执行模型,它同时解决了区块链吞吐量和安全性问题。 [75] 中的工作提出了并行链,这是一种区块链协议的组合技术,它在自适应故障停止损坏下实现最佳吞吐量,并且具有拜占庭容错能力。
5.1.2.验证的性能基准和评估尽管提出了许多新的解决方案来解决区块链的技术挑战,但很少有区块链基准套件可用于测试这些解决方案的性能。为了提供一个比较这些解决方案的环境,迫切需要一个更全面、更通用的性能基准测试套件。在开发这样一个通用基准套件时,需要满足几个要求 [31]。首先,基准套件应该是开源的。目前,部分评测作品不提供源代码,无法在不同平台上进行相同评测重复验证。其次,应明确绩效指标的标准;否则,评估结果很难对齐。第三,应该讨论和定义常见的基准用例。通过适当的用例,性能评估结果可以在包括传统数据库在内的各种其他数据存储和处理平台中进行比较。
5.2.安全限制和可能的方向总结首先,如上所述,区块链可以被 DDoS 攻击超载,虽然区块链有被视为对抗 DDoS 的潜在技术。 DDoS 会耗尽网络的巨大资源,使得区块链中的合法用户无法及时响应服务请求。目标区块链系统,尤其是实际上不是很分布式的区块链系统,可能无法提供预期的服务,包括达成共识、创建新区块等。因此,该系统实际上被打倒了。未来的研究应该调查可以增强针对 DDoS 攻击的安全性的方法。
其次,在区块链中使用密码学来确保身份安全。如今,崛起量子计算机将带来新的挑战,最流行的公钥算法可能很容易被足够强大的假设量子计算机破解。因此,应探索反量子算法以提高密码算法的安全性,包括盲签名、环签名和聚合签名。
第三,区块链和智能合约是基于代码的黑客容易破解。区块链代码和智能合约需要更严格、更全面的测试程序,以提高代码安全性。
第四,拜占庭容错技术只有在恶意节点控制的算力严格低于50%。因此,如果任何恶意节点至少拥有总计算能力的 51%,则 51% 攻击是可能的。恶意节点可能能够垄断共识机制,并迫使网络的其余部分删除他们的交易。这意味着攻击者可以恶意利用他们的多数权力多次花费硬币或代币,这被称为双花。
最后,区块链的隐私问题需要更多的调查。数据提供者通常希望对敏感数据保密,但公链上的交易是公开透明的。如何使用安全算法保护私人数据仍然是开放的。
期望模型区块链可以为不同工业领域的许多应用程序增加重要价值,并且可以启用以前无法实现的新业务模型。 根据我们的调查,目前大多数基于区块链的商业模式都与加密货币相关。 数字身份、分布式安全、共识型协议、无中间商运营等区块链特性能够增强许多行业的竞争能力和灵活性。 因此,重要的是要考虑如何开发、部署和衡量新的商业模式。
6.总结区块链的去中心化、增强的安全性、防篡改、改进的可追溯性、透明度以及提高效率和速度以及降低成本的潜力的原生特性可以支持和支持许多领域的工业应用。它的各种能力使多方能够有效地合作,包括使多方之间的数据共享更容易,以数字方式转移价值以及消除对成本高昂的第三方的需求。因此,广泛的行业部门正在采用或考虑利用这项技术,以期简化流程、增强安全性和数据共享、提高效率并最终降低成本。
在本文中,我们从性能和安全性的角度调查了区块链的最新进展。通过研究,我们能够确定区块链面临的主要性能和安全挑战。我们还介绍了用于应对这些挑战的最先进技术。已经进行了许多研究并探索了许多特性以提高性能和安全性,并平衡区块链两个方面之间的权衡。尽管如此,还有许多其他问题需要更多努力,可能的研究方向包括并行性、性能基准、DDoS防护、反量子密码学、代码安全、共识协议和隐私。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)