本博客只做该综述论文的总结和部分概念的解释工作,适合新手入门学习。
所有引用到的网络文章在博客最后都有原链接,强烈建议认真阅读并支持原作者,侵删。
A Survey of State-of-the-Art on Blockchains: Theories, Modelings, and Tools
摘要:本文通过调查和分类与区块链系统和网络的理论发现和基本机制密切相关的最新高质量研究成果,进行了彻底的调查。最后总结了几个有前途的开放性问题,并展望了未来的研究方向。
1 介绍
中心化安全机制很容易出现单点故障,即中心节点出错时整个系统将停止运转。相比较之下,去中心化的区块链可以在没有可信第三方的情况下解决单点故障问题。区块链凭借其去中心化的特点,已经深入到与我们日常生活的方方面面密切相关的多个应用领域,如加密货币、商业应用、智慧城市、物联网应用等。
1.1 前沿区块链研究分类
为了完成分类工作,本文选取了67篇前言区块链相关研究论文。按照数量排序,前三的主题分别是物联网、共识协议和安全隐私。按照时间排序得到如下结论:1)论文数量逐年增加;2)主题多样性逐年增加。本文将这些论文分为了7类,这样的分类主要是基于文章所涵盖区块链的不同方面,分别是:
- Group-1:区块链协议和基本要素;
- Group-2:通过数据挖掘分析区块链客户端的行为;
- Group-3:区块链作为一个复杂但有益的环境,使用人工智能或博弈论执行艰难决策;进行区块链与决策整合的论文也被分为该类;
- Group-4:区块链与不同通信技术融合;
- Group-5&6:区块链技术的应用(物联网方向);
- Group-7:区块链整体概述;
1.1.1 Blockchain Essentials
- 该类的文献中大部分对区块链中的基本要素——例如共识协议、算法、机制——进行了回顾与总结,例如,由于缺乏关于区块链网络共识协议的全面文献综述,Wang等人通过强调分散式共识在区块链网络中的独特性,从分布式共识系统设计和激励机制设计两个角度对现有共识协议进行了深入综述。
- 该文章清晰地说明了拜占庭问题、拜占庭容错系统与实用拜占庭容错系统的概念与原理。
- 除此之外还有智能合约、分片技术、可扩展性、可交互性、安全性等方面的论文。
1.1.2 Data Mining and Analytics
- 区块链技术的普及在带来诸多技术革新的同时,也带来了许多新问题,如用户隐私泄露、非法金融活动等。然而,区块链数据的公开访问为研究人员通过区块链数据分析来理解和解决这些问题提供了前所未有的机会。因此,总结区块链数据分析中存在的研究问题、取得的成果、可能的研究趋势以及面临的挑战具有重要意义。Chen等人总结了区块链中数据分析的七个典型研究问题,分别是实体识别、隐私泄露风险分析、网络画像、网络可视化、市场效应分析、交易模式识别和非法行为检测与分析。
1.1.3 Decision-Making Techniques
- 区块链技术可以给很多其他方向提供安全优势,并且区块链网络也为一些决策技术(人工智能、机器学习、博弈论)提供思路。这是因为区块链网络参数的调优、用户行为模式的分析、恶意攻击的检测、市场风险的识别等,对区块链系统和区块链网络的性能、安全、健康状况起着至关重要的作用。
1.1.4 New Communications Networking
- 该类的文献内容包括区块链与云计算、移动物联网和边缘计算环境、5G或更先进的网络等通信技术之间的相互促进的关系。
1.1.5 Iot&IIoT
- 基于区块链的物联网、工程物联网应用收到了广泛关注。
1.1.6 Blockchain Applications
- 基于区块链的应用研究方向包括普通应用、农业、软件定义网络、商业应用、智能城市、智能电网、分布式文件系统、航天工业和COVID-19.
1.1.7 General Overview & Outlook
- 最后一组调查文章概述了区块链和加密货币的基本概念、基础研究挑战以及共识算法、可扩展性和安全性解决方案、隐私保护问题等一般问题。最后,作者展望了未来区块链技术研究的潜在技术挑战和开放问题。
1.1.8 总结
通过上述研究我们可以发现区块链技术已经巧妙地融入了越来越多的应用领域,区块链理论和技术将在各个领域带来大量的创新、激励和大量的应用场景。根据对这些调查文章的分析,我们相信在不久的将来会有更多的调查文章发表,很可能在分片技术、可扩展性、互操作性、智能合约、大数据、人工智能技术、5G及超越、边缘计算、云计算等许多领域。
1.2 研究动机
目前并没有一个能够提高区块链性能、帮助了解区块链的前沿理论、模型和有用工具的研究文章。以下几个方面尤其需要进一步的研究:
1.2.1 提升区块链性能的理论
区块链的性能包括很多方面的指标,例如吞吐量、延迟、存储效率、可靠性、可扩展性、可交互性等。很多理论可以更进一步提升区块链的性能指标,例如可扩展性的解决方案、新协议和底层架构都值得更多的关注。
1.2.2 更好地理解区块链的模型和技术
以下几个主题应该被更重视:
- 基于图的区块链理论
- 随机模型,排队理论和分析模型。
- 加密货币区块链的数据分析
- 加密货币区块链仍然面临安全问题,除了已经被提出和重视的庞氏骗局以外,人们还应该关注该领域的其他安全问题。
1.2.3 区块链的有效性能、数据集和开发工具
在整理的66篇文章中都并未提及区块链的性能指标、数据集和开发工具相关的问题,本文将回顾这几个方面的研究。
1.2.4 总结
通过本文,我们希望通过强调区块链的前沿理论研究、建模和有用工具来填补空白。我们尤其试图包括其他现有调查文章未包括的最新高质量研究成果。我们相信,这项调查可以为区块链的进一步发展提供新的思路。
2 区块链前置知识
区块链是P2P网络上内容分发和分布式共识的一个很有前途的范例。本节介绍了区块链的一些基本概念、定义和术语。
2.1 主流区块链平台
2.1.1 比特币平台
比特币被视作创造了第一个加密货币的区块链系统,其衍生出了两个主要技术——中本共识和UTXO Model:
-
中本共识(Nakamoto Consensus):为了达成区块协议,比特币采用了中本共识,在该共识中“矿工”通过解决一个难题来产生新的区块。在这样的难题解决情境下——也被称为挖矿场景——矿工们需要计算一个随机值,该随机值满足所需的难度等级。通过改变这个难度,比特币系统能保持一个平稳的区块生成速率——大约10分钟生成一个新区块。当一个矿工生成了一个新区块,他就将这个信息广播给网络中其他所有的矿工。其他矿工接收到这个新的区块后将该区块添加到旧链上。如果所有其他矿工都及时接收到了这个新区块,那么链的长度就加一。但是由于网络延迟,不是所有时候都能保证所有矿工及时接收到新的区块。在一个矿工接收到上一个区块之前产生了一个新区块时,一个分叉就出现了。比特币系统通过维持最长链来解决这个问题。
个人理解:如果两个人同时产生了一个区块并将这个区块广播出去,那么就一定会面临部分人接收到了新区块A而另一部分人接收到了新区块B的情况,在这种情况下第一波人将新区块A拼接到旧链上并继续计算新的区块,而另一波人则将新区块B拼接到旧链上并继续计算新的区块,接下来会出现三种情况:1)第一拨人中的某个人先计算出了下个区块:在这种情况下比特币系统维护第一个新链而舍弃第二个新链,第二拨人白算;2)第二拨人中的某个人先计算出了下个区块:在这种情况下比特币系统维护第二个新链而舍弃第一个新链,第一拨人白算;3)两拨人中的某两个人同时计算出了下个区块:在这种情况下就回到了一开始的情景,继续分拨直到出现第一种或第二种情况,不同点在于一旦分叉合并,那么白算的人就会更多,因为另一条链上有更多人在继续算下一个区块。这里分为两拨人是为了方便举例子,事实上完全可能出现多组人同时计算多个链的下一个区块的情况,只不过由于维护最长链的原则存在,最终只会有一个链被比特币系统选中并加以维护。
-
UTXO模型:未花费交易输出(the Unspent Transaction Output, UTXO)模型已经被加密货币例如比特币以及其他著名的区块链系统所采用。UTXO是一组数字货币,每一组都代表了基于加密技术的所有者和接收者之间的所有权链(a chain of ownership)。在区块链中,整个UTXO形成一个集合,其中每个元素表示交易的未花费输出,并且可以用作未来交易的输入。一个client可以拥有多个UTXO,并且该客户的总代币是通过将所有相关的UTXO相加来计算的。使用该模型,区块链可以有效地防止双重支付攻击。
双重支付攻击:在加密货币交易中,同一笔资金被发送到两个或多个不同的地址,以欺骗系统认为这些交易是有效的。双重支付是加密货币世界中的一个重要问题。
- 这篇文章很好地阐明了UTXO的概念、规则、技术原理以及比特币转账过程中对UTXO的操作
- 比特币解决双花问题的措施:
- 首先每笔交易都要先确认对应比特币之前的情况,要检查它是否存在于用户的UTXO中。如果不在,那么该交易会被系统拒绝,即余额不足无法完成交易。
- 如果用户用同一笔UTXO付给两个人,系统中的节点只确认先接收到的那一笔。
- 当两笔时间上很接近的交易被不同节点确认,区块链将发生分叉。剩余节点选择在他们认为的最长链上构建新的区块。
- 当其中一笔交易被6个节点确认后,它将成为系统最长链,可以认为这笔交易获得了最终的确认。
2.1.2 以太坊
以太坊是一个支持智能合约运作的开源区块链平台。作为以太坊中的代币,以太币(Ether)被用来奖励给那些进行计算以确保区块链的共识的矿工。以太坊运行在去中心化的以太坊虚拟机(Ethereum Virtual Machines, EVMs)上,在这里脚本运行在由公共以太坊节点组成的网络上。与比特币相比,EVM的指令集是图灵完备的。
图灵完备:图灵完备性(Turing Completeness)是针对一套数据操作规则而言的概念。数据操作规则可以是一门编程语言,也可以是计算机里具体实现了的指令集。当这套规则可以实现图灵机模型里的全部功能、解决全部计算问题时,就称它具有图灵完备性。
以太坊还引入了一种内部定价机制,称为gas。一个gas单位度量了在事务中执行操作所需的计算工作量。因此,gas机制对于抑制智能合约中的垃圾邮件非常有用。以太坊2.0是基于原始以太坊的升级版本。升级包括从PoW(Proof of Work,工作量证明)到PoS(Proof of Stake,权益证明)的过渡,以及基于分片技术的吞吐量改进。
Account/Balance(账户/余额)模型:与比特币使用UTXOs来组成状态,以太坊采用了一种银行使用的、更加常见和直观的模型——账户/余额模型。在每一个账户中都实现了一个交易增加计数器nonce,用来在这个简单的模型结构中防止双重支付攻击。在这个模型中基本分为两种账户,分别是外部拥有账户(External Owned Accounts, EOAs)和合同账户(Contract Accounts, CAs),前者受到用户私钥控制,后者通过合约代码控制。
- 以太坊官方说明文档详细说明了以太坊账户的相关信息,包括两种账户类型的异同点、账户包含字段、密钥对等。
2.1.3 Hyperledger Fabric
以下内容来自Fabric官方文档而非论文内容。
比特币和以太坊属于同一类区块链,我们将其归类为**公共非许可(Public Permissionless)**区块链技术。这些基本上都是公共网络,允许任何人在上面匿名互动。随着比特币、以太坊和其他一些衍生技术的普及,越来越多的人想要将区块链基础技术、分布式账本和分布式应用平台用到企业业务中去。但是,许多企业业务对性能要求较高,目前非许可区块链技术无法达到。此外,在许多业务中,对参与者身份要求比较严格,如在金融交易业务中,必须遵循“了解客户(Know-Your-Customer,KYC)”和“反洗钱(Anti-Money Laundering,AML)”的相关法规。对于企业应用,我们需要考虑以下要求:
- 参与者必须是已认证的或者可识别的;
- 网络需要获得许可;
- 高交易吞吐量性能;
- 交易确认低延迟;
- 与商业交易有关的交易和数据的隐私和机密性。
Hyperledger Fabric是一个企业级许可分布式账本技术平台,专为在企业环境中使用而设计,与其他流行的分布式账本或区块链平台相比,它有一些主要的区别。首先,Fabric 平台是许可的,这意味着它与公共非许可网络不同,参与者彼此了解而不是匿名的或完全不信任的。此外,该平台最重要的区别之一是它支持可插拔的共识协议,使得平台能够更有效地进行定制,以适应特定的业务场景和信任模型。
2.1.4 EOSIO
EOSIO是一个于2018年发布的区块链平台,它构建了一个区块链底层的技术架构,类似区块链中的操作系统,使得更多的开发者能够基于EOSIO平台快速方便的构建分布式应用软件。与比特币和以太坊不同,EOSIO的智能合约不需要支付交易费。EOSIO称其吞吐量可以达到每秒数百万个事务。此外,EOSIO还支持低块确认延迟,低开销的拜占庭容错等。这些出色的功能吸引了大量用户和开发人员在受治理的区块链中快速轻松地部署分散的应用程序。例如,自首次推出以来,在不到一年半的时间里,总共产生了8980万个EOSIO区块。
2.2 共识机制
区块链中的共识机制是为了容错,在区块链网络的相同状态上达成协议。常见的基于证明的共识协议包括PoW和PoS。在工作量证明PoW中,矿工们通过解决难题和其他人竞争,这些难题是难以解决但容易验证的。一旦矿工在尝试大量可能值后找到了需要的随机值,他就被奖励一定数量的加密货币用于创造新的区块。相较之下,权益证明PoS不存在矿工这个角色。相应的,新的区块是由委员会中随机选择的验证者伪造的。被选中成为验证者的概率线性相关与它的权益大小。
该文章对点点币中的PoW+PoS共识机制进行较为清晰的说明。
举例子:A是一名矿工,他在点点币中挖矿。与比特币的相同的地方在于,A也是通过解决难题的工作量证明方式来挖到矿。与比特币的不同的地方在于,A抵押的币龄越大,A解决难题的难度就越小。100前,A在点点币中以矿工身份抵押了30点点币,算下来今天A在点点币中抵押的币龄已经达到了100×30=3000。A要解决的难题公式非常简单:hash(block_header) ≤ target × coinage。在抵押点点币后的第一天,A需要计算出一个随机值nonce,该随机值与旧链拼接后再计算哈希值,最终得到的结果居然需要小于target × 30!这对于A来说简直是一个不可能完成的任务。但是等到一百天以后的今天,A需要做的工作相同,只不过A计算出的最终结果只需要小于target × 3000就够了。非常幸运,A今天算出来了这个值,也就意味着A挖到了点点币中的这个新矿。但是A还没有从新矿中赚到钱,这是因为A并不是真的获得了挖矿奖励,而是被选中成为了交易的领导者。此时在链上有很多人在排队完成自己的交易,看到A被选为了领导者后,很多人纷纷来找A,希望A能够主持自己的交易。在这之中,B和C的交易两人愿意支付0.5%的手续费给A,而D和E的交易两人出手阔绰,愿意支付1.5%的手续费给A。想都不用想,A立刻就同意让D和E上链进行交易记录,可怜的B和C只能等待下一个领导者了。说回这边,A需要在链上记录D和E的这笔交易,同时从这笔交易中扣除自己币龄的1.5%作为手续费收入囊中。这时A突发奇想,既然自己是交易的领导者,那我为何不直接把两人交易的资金转给自己呢?反正D和E只是交易的双方,无权干涉记录的内容。但是最终A的理智战胜了欲望,A还是正常履行了领导者的责任,完成了这笔交易,每个人都得到了自己想要得到的东西。交易结束后,A再次查看自己的账户,发现自己的点点币余额中增加了手续费那部分币。A很高兴,并且希望能够继续担任领导者来赚取手续费,不过很可惜,当A查看自己的币龄时,A发现自己的币龄已经被清空了,原来当A被选为领导者一次后,先前抵押的币龄都将被清空。想要重新成为领导者,A不得不重新投入点点币作为抵押重新解决难题。同时,A看到了新闻上偷偷篡改链上交易内容的领导者F,以太坊给F的惩罚很简单:没收抵押的那部分点点币币,并且加入失信名单。看到这A暗暗松了一口气,庆幸自己没有犯糊涂。
而以太坊在2022年完全舍弃了PoW的共识机制,采用了完全的PoS共识机制来生成新的区块,详情请阅读以太坊官方文档,自己总结的大致过程如下:
- 想要成为验证者的节点必须向存款合约中存入至少32个以太币作为抵押,之后节点会进入一个激活队列;
- 节点激活为验证者后将从以太坊网络上接受新区块,并对支持的区块进行投票,投票的过程是一个赌注的过程,当他们发现一个可以他们认为可以被加到链上的区块的时候,他们将以通过押下赌注来验证它;
- 经过每个时隙(以太坊中为12秒)以太坊随机选择一个节点作为区块提议者,负责创建新区块并打包发送给网络上的其他节点,此时其他验证者就可以为他们认为最有可能加到链上的区块进行下注;
- 对于普通用户来说,想要进行交易必须准备支付一定量的小费给提议者作为生成区块的补偿以及一部分基础费作为交易消耗;
- 普通用户将交易广播到网络中,并添加到由所有其他待处理的网络交易组成的交易池中,区块提议者就可以从交易池中选择下一个区块中包含的交易(事务);
- 如果某个区块被加到链上,然后给它下了赌注的验证者们将得到一个跟他们的赌注成比例的奖励;
2.3 区块链可扩展性
作为一个分布式公开交易数据库,区块链已经成为了去中心化应用的平台。尽管它的知名度与日俱增,区块链技术仍面临可扩展性的问题:吞吐量不随网络大小的增加而增加。因此,能够解决可扩展性问题的可扩展区块链协议仍是研究重点。很多不同的方向,例如链下(Off-chain),有向无环图DAG和切片技术已经用于解决该问题。
2.3.1 链下技术
链上交易的交易在区块链上完成且对于区块链网络中所有节点都是可见的,而链下交易则通过可信第三方认可事务的正确性在链下完成交易。由于确认一次链上交易需要经过很多步骤,链上交易面临较长的延迟。相较之下,链下交易可以立即完成因为这些交易不需要再链上网络的队列中等待。
- 这篇文章对Off-Chain有很好的举例说明。
2.3.2 有向无环图DAG
在数学中DAG是一个有限的、有向的无环图。在区块链领域中,DAG被视作可以将区块链升级到下一个版本的革命性技术。这是因为DAG中不需要区块,所有的交易都遵循DAG网络上的规定连接到多个其他交易上,因此数据可以在网络参与者之间直接传输。这为区块链提供了一个更快、更便宜、更易扩展的解决方案。实际上,区块链的瓶颈主要是区块这种结构带来的。因此,无区块DAG可能是一个有前途的解决方案,可以大幅提高区块链的可扩展性。
该文章详细的说明了DAG和区块链的关系。
2.3.3 切片技术
为了解决比特币所采用的共识协议——中本协议——所具有的严重的吞吐量低、可扩展性差的问题,切片技术可以通过将区块链网络切分为多个小区域的方式来缓解这两个问题,因为每个切片都可以并行处理一堆未经确认的交易,以生成中等规模的区块切片,然后将这些中间块合并到最后一个块中。基本上,分片技术包括网络分片,事务分片和状态分片。
2.3.4 跨切片交易
切片技术的一个弊端是当恶意网络节点属于同一个切片时彼此之间可能相互勾结。因此,基于分片的协议利用重组策略来解决此类安全威胁。然而,重组带来了跨分片的数据迁移。因此,如何高效地处理跨分片交易成为分片区块链背景下的新兴课题。
3 提高区块链性能的理论
3.1 最新的提高区块链性能的理论
3.1.1 吞吐量和延迟
-
ACCEL:比特币区块确认机制
- 目的:解决确认延迟高的问题;
- 主要研究成果包括如何识别奇异块,以及如何利用奇异块来减少确认延迟。实现更快确认的关键思想是快速识别可证明属于区块链的奇异块。当网络延迟无界时,无法确定一个区块是否属于区块链,而奇异块检测利用比特币矿工之间的端到端延迟大大低于块间间距这一事实,并可以假设其为上限。
-
- 目的:解决两个问题:
- 低吞吐量
- 要求每个节点复制整个区块链网络的通信、存储和状态表示
- 提出异步共识区(Asynchronous Consensus Zones),在不影响去中心化和安全性的前提下,通过划分工作负载提供了线性向外扩展的能力。
- 由于需要将区块链分为多个共识区,因此如何合理地划分就成为了一个问题。因此该文章提出了一种新颖的Chu-ko-nu挖掘机制,保证了每个区域的有效挖矿力在整个网络中处于同一水平,使得对单个区域的攻击和对整个网络的攻击一样困难。
- 目的:解决两个问题:
-
- 设计了一个新的低延迟和高吞吐量的PoW区块链Prism++。该设计使用大量的平行链并行运行,并发明了一种新的确认规则,通过合并平行链上的信息来推断块的持久性。
3.1.2 存储效率
以比特币为例,如果比特币全网的全节点有1万个,比特币每一个区块的大小是1M,那么每当一个区块被记录到比特币系统中时,这1万个节点每一个都要存储这个区块,所以全网一共要耗费10G(= 1M x 10000)的存储空间。而这10G的存储空间是把一份数据重复存储了1万份。
- Perard等人:低存储的区块链机制
- 提出了新的低存储节点,通过使用纠删码存储来减少从区块链产生的数据量。这项技术的特性确保了链上的任何区块都可以很容易地从少量这样的节点重建。该系统应鼓励低存储节点为区块链的存储作出贡献,并在区块链的全球规模不断增加的情况下保持分散。
- Jidar:比特币的数据缩减策略
- 每个节点只存储来自完整区块的兴趣交易和相关Merkle分支,就像从拼图中选择几块一样。节点可以在本地安全地维护和验证所有相关数据,而无需任何可信假设。
3.1.3 区块链的可靠性
区块链作为一种去中心化的数据保护机制,其可靠性在预防数据造假中起着重要作用。以下文章研究了实现数据伪造预防的基本支持机制:
- 区块链的可用性是影响区块链分布式应用(DApps)可用性的关键因素。然而,区块链系统的这种可用性保证是未知的。为此,Weber等人研究了两种流行的区块链,即比特币和以太坊的可用性限制。作者发现读写操作的可用性是相互冲突的。通过测量和分析以太坊的交易,他们发现在区块链系统中,当交易处于待决状态时,dapp可能会陷入不确定状态。这种观察表明,也许区块链应该支持dapp的一些内建交易中止选项。最后,作者介绍了可以缓解以太坊和比特币区块链可用性限制的技术。
- 在公有区块链中,系统客户端基本上是通过第三方节点加入区块链网络。因此,所选区块链节点的可靠性对客户端的资源效率和资金问题都至关重要。为了让客户评估和选择可靠的区块链节点,Zheng等人提出了一种区块链混合可靠性预测模型H-BRP,通过提取区块链节点的可靠性参数来预测其可靠性。
3.2 增强可扩展性的解决方案
现在区块链系统的关键瓶颈问题就是可扩展性问题。例如,当网络大小增加时区块链的吞吐量并没有增加。为了解决这个问题,提出了很多可扩展性增强措施。
3.2.1 区块链分片解决方案
-
Elastico:无权限区块链分布式协议
- 应对拜占庭攻击的第一个安全分片协议
- Elastico的关键思想是将网络划分为更小的委员会,每个委员会处理一组不相交的交易或一个分片,这些分片并行工作来最大化性能。该方法下区块链的交易吞吐量几乎与网络的计算能力呈线性增长。
-
RapidChain:基于拜占庭弹性分片的协议
- 上述方式仍然需要大量的通信来验证每笔交易,这些交易随着委员会内节点的数量线性增长。这样就没有充分发挥分片策略的优势。
- RapidChain利用区块管道的优势,通过使用完善的委员会内部共识来提高吞吐量。文章还提出了一种高效的跨分片验证方法,避免了整个网络中广播消息的泛洪。
-
SharPer:许可的区块链系统
- 该文章通过划分和重新分配不同的数据分片到不同的网络集群来增加区块链的可扩展性。在SharPer中将所有节点分为一个一个簇,区块链账本形成一个有向无环图,每个簇只维护账本的一个视图。SharPer整合了去中心化的扁平化协议来建立跨分片共识,该共识的去中心化特性使不重叠集群的交易可以并行处理。
-
D-GAS:一种针对以太坊分片的动态负载均衡机制
- 考虑到以太坊将每组交易按其账户地址放置在一个分片上,这种静态分片的方式导致分片上的交易工作量和复杂度明显不均衡。这种方式进一步破坏了网络的吞吐量。
- D-GAS根据gas消耗情况(gas是执行操作所需的工作量单位)动态迁移账户,平衡各分片的交易负载,最大化交易吞吐量。
-
NRSS:区块链分片策略
- 随机分片策略导致区块链网络中不同委员会之间的性能差异不均衡。这些差距产生了交易吞吐量的瓶颈。
- 该策略通过之前的交易验证速度和结果对网络中的节点进行评估,然后通过平衡得分将节点分配到不同的委员会,以缩小委员会之间的性能差距,提高交易处理速度。
-
OptChain:一种不同于随机分片的新分片范式
- OptChain通过两个自定义指标的评定来将相关或即将相关的节点分到一个片中,可以最小化跨分片交易的数量。
-
SSChain:非重组结构
- 在基于分片的协议中,为了保证每个分片的安全性,分片内的节点有时需要进行重组,即将该节点迁移到一个新的分片中。重组操作需要该节点同步新分片中的交易或账户的状态等信息,以便能够允许共识节点在新分片中可以进行交易的验证,这样的操作势必会会导致大量的数据迁移;
- SSChain采用了与之相反的策略,即节点可以自由地加入一个或多个分片,而无需周期性地对网络进行重组,以消除重组机制中的数据迁移开销。然而,没有重新洗牌会引入一个新的安全问题:恶意节点可能聚集到特定分片中进行51%攻击。为了在保证系统安全性的同时减少数据迁移开销,SSChain采用了一种具有市场激励机制的两层体系结构。第一层是根链网络。市场激励机制可以保证根链在整个网络中具有相当大的比例(例如超过50%)的计算能力。通过对每个分片生成的每个区块进行验证,即使恶意节点接管了特定的分片,根链网络也能防止双重花费攻击。第二层是分片网络,每个分片维护不相交的账本,并独立处理不相交的交易子集。其次,值得注意的是,随着分片数量的增加,跨分片交易的数量也会增加。为了消除跨分片通信开销,SSChain通过承诺更低的确认延迟和更小的交易费用来鼓励用户进行分片内交易。此外,通过解耦交易验证和状态更新,SSChain可以将跨分片交易拆分为多个分片内交易。
-
Eumonia:面向区块全局排序的无许可并行链协议
- 并行链可以帮助提高区块链的吞吐量。然而,在并行链系统下有一个问题必须解决,即应该保证生成的区块的逻辑顺序,因为正确的逻辑顺序对交易的确认至关重要。
- 利用细粒度的UTXO分片模型实现了Eunomia协议,能够很好地处理冲突交易,并证明该协议是简单支付验证(SPV)友好的。
- 虽然分片技术近年来受到了广泛关注,但值得注意的是,委员会组织很容易受到Sybil攻击,恶意节点可以在共识协议的投票阶段通过创建多个虚拟委员会成员来破坏共识。
-
CycLedger:为基于分片的分布式账本设计的协议
- 所有诚实节点之间的相互连接需要大量的通信资源。此外,目前也没有激励节点积极参与分片协议的机制。
- 能够为每个委员会选择一个leader和一个节点子集,这些节点处理分片内共识和与其他委员会的同步,以降低所有节点上通信、计算和存储的摊余复杂度。提出了半承诺策略和故障恢复处理方案,以防止即使委员会的领导者是恶意的,系统也不会崩溃。此外,还提出了一种基于信誉的激励策略,以鼓励节点诚实行为。
3.2.2 多链和跨链:多个区块链之间的互操作性
区块链的互操作性对跨链交易起着重要的作用,这种互操作性主要包括多个区块链之间的有效通信和数据交换。
-
-
提出了一种新的互操作架构,支持多个区块链(如比特币和以太坊)之间的跨链合作。
-
作者还将多链生态系统的互操作分为被动和主动两种模式
-
-
HyperService:第一个跨异构区块链提供互操作性和可编程性的平台
- 帮助实现多异构区块链之间的这种新型互操作
- 包括两个主要组件:
- 允许开发人员创建跨链应用程序的编程框架
- 面向区块链上去中心化应用(DApps)安全实现的通用互操作协议
3.3 新的协议和基础设施
3.3.1 区块链新的协议
- Tendermint协议:在区块链系统中,一个节点只与少量的邻居节点相连。相互通信是通过类似流言的P2P消息实现的。基于这种P2P八卦通信,Tendermint协议可以作为一种简化BFT共识协议的新的终止机制。
- Chu-ko-nu mining:一种新的工作量证明方案,鼓励矿工通过一次PoW求解在不同区域同时创建多个区块。该机制使得各区域的有效矿力几乎等于整个网络的总物理矿力水平。因此,Chu-ko-nu挖掘将每个区域的攻击阈值提高到50%。此外,Chu-ko-nu挖掘可以改善挖掘新块的能量消耗,因为每一轮正常的PoW挖掘可以产生更多的块。
- 信任证明(Proof-of-Trust, PoT)共识:面向众包和一般在线服务行业的新的共识协议,这种PoT共识协议利用RAFT leader选举和Shamir秘密共享算法,基于服务参与者的信任值选择交易验证器。PoT协议避免了比特币“工作量证明”(Proof-of-Work, PoW)挖矿带来的低吞吐量和资源密集型缺陷,同时解决了传统基于paxos和拜占庭容错(Byzantine Fault Tolerance, BFT)算法的可扩展性问题。
3.3.2 区块链的新基础设施和架构
通常来说,基于区块的数据结构被无需许可的区块链系统采用,因为区块可以有效地分摊加密成本。然而,在当今的许可区块链中,区块的优势已经饱和,因为区块处理引入了大量的批处理延迟。为了解决许可性区块链存在的性能差、隐私泄露、跨应用交易处理机制抵消等问题,Amiri等人提出了CAPER。这种许可型区块链可以很好地处理分布式应用程序的跨应用程序事务,在CAPER中,区块链帐本形成一个有向无环图,其中每个应用程序只访问和维护其自己的帐本视图,包括其内部和所有跨应用程序事务。
4 用于更好地理解区块链的各种建模和技术
4.1 基于图的理论
图被广泛用于区块链网络中。例如默克尔树被很多区块链协议所采用,使用DAG技术构建它们的区块。不同于这些常见的图结构,本文回顾了利用图论更好地理解区块链的最新研究。
- Chen等人利用图分析技术描述了以太坊上的三种主要活动,即转账、智能合约的创建和智能合约的调用。主要贡献在于首次对以太坊进行了系统的调查,并提出了基于跨图分析的新方法,可以解决以太坊中存在的两个安全问题:攻击取证和异常检测。
- ChainNet:一种计算轻量级的学习区块链图特征的方法
- 用于帮助理解区块链图(如交易图)背后的网络动态;
- 通过这种方法,作者发现影响比特币价格动态预测的是交易图的拓扑特征,而不是交易图的度分布。
4.2 随机模型
看不懂……
4.3 区块链系统的排队理论
- 在区块链网络中,挖掘过程和新区块生成的几个阶段可以表示为排队系统,如交易到达队列、交易确认队列和区块验证队列。因此,越来越多的研究利用排队论来揭示区块链的挖掘和共识机制。
4.4 区块链网络的分析模型
- 对于那些考虑业务是否需要区块链系统的人来说,一个值得注意的事实是区块链并不总是适用于所有现实生活中的用例。为了帮助分析区块链是否适用于特定的应用场景,Wust等人提供了一种结构化分析方法来确定解决特定应用问题的适当技术解决方案,并将其应用于分析三个代表性场景,即供应链管理、银行间支付和分散自治组织。
- 云计算会产生大量的中间数据集,通常需要将其存储以节省重新计算的成本,但是对所有中间数据集进行加密既不高效也不划算。因此Zhang等人提出了一种基于隐私泄露上限约束的中间数据集加密方法,在满足数据持有者隐私需求的同时,有效地降低了隐私保护成本。
- 尽管自2014年首次亮相以来,以太坊获得了很大的人气,但对以太坊交易的系统分析仍缺乏探索。因此,Lin等人通过融合交易的时间和金额特征,将以太坊交易记录建模为一个复杂的网络,然后设计了几种灵活的时间游走策略,用于对这个大规模网络的随机游走图表示。
4.5 加密货币区块链的数据分析
分为市场风险评估、庞氏骗局侦查、洗钱检测、加密经济系统的肖像等。
5 区块链测量指标、数据集和实验工具
5.1 区块链的测量指标和数据集
尽管这几年出现了不同种类的区块链,很少有人致力于衡量不同区块链系统的性能。
- 现有的比特币PoW安全性分析并不确定是否适用于以不同共识和/或网络参数实例化的其他实现。因此Gervais等人提出了一个量化框架,并使用该框架研究了几个PoW区块链的安全性和性能,例如过期块率、挖矿能力、挖矿成本、快确认数量、传播能力和Eclipse攻击的影响,还研究了区块间隔的影响、区块大小的影响和吞吐量的影响,这样的研究能够帮助研究人员制定对抗策略,并进一步完善PoW区块链的安全规定。
- 区块链算法目前的性能较差,这成为限制其应用的主要因素。此外,不同的区块链系统缺乏标准的性能监控方法,无法自动适应不同的系统并提供详细的实时性能信息。Zheng等人提出了整体性能指标和详细性能指标,让用户了解区块链在不同阶段的准确性能。针对这两种评价指标,该文章还提出了一个可扩展的框架来监控实时性能的区块链系统。该系统根据每秒交易、平均响应延迟、每CPU交易、每内存秒交易、每磁盘I/O交易、每网络数据交易等指标评价了四种常见的区块链系统。
5.2 区块链评估工具
- BlockSci:一个用于区块链分析的开源软件平台。在BlockSci架构下,对原始区块链数据进行解析,生成包括交易图、索引和脚本在内的核心区块链数据,提供给分析库。用户还可以查询p2p数据、价格数据和用户标签等辅助数据。
- 为了评估私有区块链的性能,Dinh等人提出了一个基准测试框架Blockbench,它为不同的平台提供了一种公平的比较手段,可以测量数据处理能力和区块链系统各层的性能,使我们能够更深入地理解不同的系统设计选择。
6 其他问题和未来方向
6.1 性能提升问题
6.1.1 可扩展性
可扩展性仍然是大多数区块链系统面临的重要挑战。例如,拜占庭容错共识协议面临O(n2)数量的消息,其中n为参与者的数量,这就使得可扩展性无法实现。因此,可扩展区块链急需新的物理分布式拜占庭协议和可扩展性解决方案的理论模型——例如边缘链、子链、链下、共享技术、DAG甚至无链。
6.1.2 分片技术的弹性机制
分片技术包括3种典型的类别,即事务分片、网络分片和状态分片。通过对现有分片技术研究的广泛回顾,发现区块链分片弹性机制仍然缺失。特别是对于状态分片,当区块链节点发生故障时,如何保证故障区块链节点中实时运行状态的正确恢复对区块链的弹性和鲁棒性至关重要。
6.1.3 跨分片性能
尽管已经提出了许多基于委员会的分片协议,但这些协议最多只能承受1/3的攻击,一旦超过1/3的攻击,2/3投票的机制就难以正常运行了,因此需要增强协议的健壮性。此外跨分片交易是不可避免的,因此如何保证跨分片交易的吞吐量、延迟等性能指标也是重要问题之一。
6.1.4 跨链交易加速机制
3.2.2小节中介绍过的该文章对跨链交易起到了很好的导向作用,但是目前仍然缺少安全的跨链交易加速机制。
6.1.5 多链协议的区块排序
尽管多链技术可以通过并行挖掘多个链实例来提高吞吐量,但如何以全局一致的顺序构建和管理所有链上的区块仍然是基于多链的可扩展协议和解决方案面临的挑战。
6.1.6 硬件辅助的区块链网络加速方案
为了提升区块链的性能,例如降低交易确认的延迟,可以利用RDMA (Remote Direct Memory Access)和高速网卡等先进的网络技术来加速区块链网络中矿工之间的数据访问。
6.1.7 不同区块链网络层的性能优化
区块链网络建立在P2P网络之上,P2P网络包括mac层、路由层、网络层和应用层等典型层。基于拜占庭容错的协议基本上是为网络层工作的。实际上,针对区块链网络的其他层,可以提出各种协议、算法和理论模型来提高性能。
6.1.8 区块链辅助的大数据网络
大数据和区块链在一些性能指标上存在明显差异。例如,大数据是中心化管理技术,强调异构计算机环境下的隐私保护与无冗余的非结构化框架;而区块链则是去中心化的,为了达到去中心化必须有数据冗余,并且数据类型简单、结构化且不可变。如何将这两种技术融合在一起,实现互利共赢是一个值得深入研究的问题。
6.2 进一步理解区块链
尽管最新的研究回顾了大量的建模和理论来更好地理解区块链,但仍然需要更复杂的方法和有洞察力的机制来帮助研究人员获得对高性能区块链系统的新认识。
6.3 区块链安全问题
6.3.1 区块链隐私保护
目前已有很多区块链方面的工作是讨论基于区块链的安全与隐私保护应用,安全性和隐私性也是区块链本身的关键问题。例如,交易的隐私可能会被攻击者攻击。然而,针对这些问题的专门研究仍然不足。
6.3.2 针对恶意矿工的反加密劫持机制
加密劫持矿工存在于web浏览器中。这类恶意代码正在侵占网络用户的计算能力、内存等硬件资源。因此,有必要开发反加密劫持机制和策略来保护普通的浏览器用户。
6.3.3 加密货币区块链的安全问题
双花攻击、智能合约欺诈等加密货币区块链的安全问题日益受到工业界和学术界的关注。然而,针对加密货币区块链安全问题的理论研究还很少。例如,在多链上探索矿工之间的惩罚和合作是加密货币区块链的一个有趣话题。
6.4 强大的区块链实验平台
对于区块链领域的大多数初学者来说,他们面临着缺乏强大的模拟/仿真工具来验证他们的新想法或协议的困境。因此,强大的仿真/仿真平台,易于部署可扩展的实验平台,将对研究社区大有帮助。
7 参考链接
- https://zhuanlan.zhihu.com/p/34873703
- https://www.cnblogs.com/hhzm/p/14987047.html
- https://ethereum.org/zh/developers/docs/accounts/
- https://blog.csdn.net/qq_38491875/article/details/109045776
- https://zhuanlan.zhihu.com/p/34075811
- https://zhuanlan.zhihu.com/p/426713500