本文是《Blockchain for Internet of Energy management: Review, solutions, and challenges》的中文翻译,只针对文字部分做翻译,图表部分请查看原文。
继智能电网之后,通过整合不同形式的能源,能源互联网(IoE)已成为能源领域的一项流行技术。IoE利用互联网收集、组织、优化和管理来自不同边缘设备的网络能源信息,以开发分布式智能能源基础设施。传感器和通信技术用于收集数据,并分别预测消费者和供应商的需求和供应。然而,随着可再生能源、电动汽车(EV)、智能电网和车辆到电网(V2G)技术的发展,现有能源部门开始转向分布式和分散解决方案。此外,集中化带来的安全和隐私问题是IoE技术的另一个主要关注点。在这种背景下,区块链技术具有自动化、不变性、公共账本设施、不可逆性、去中心化、共识和安全性等特点,已在文献中被用于解决集中式IoE架构的普遍问题。通过利用智能合约,区块链技术实现了自动化数据交换、复杂能源交易、需求响应管理和对等(P2P)能源交易等。随着分布式可再生资源和智能电网网络的部署和使用,区块链将在IoE市场的发展中发挥重要作用。我们讨论了区块链在IoE领域的潜力和应用。本文基于文献研究,为终端用户提供了关于区块链技术背景下未来IoE场景的见解。最后,本文讨论了IoE技术的不同共识算法。
为了为基于物联网的智能家庭、智能建筑和智能城市开发完整的智能基础设施,需要一种智能配电方法。优化的电网结构、增强的安全和隐私、快速的本地能源交易、节点间的高连通性、廉价的电力、更多的分布式能源资源是实现先进能源生态系统的一些设计标准。在过去十年中,能源互联网(IoE)在许多方面彻底改变了能源市场。IoE旨在为能源公用事业开发自我管理的智能电力基础设施,以最大限度地减少能源浪费。通过集成传感器、互联网、智能电网、可再生能源、AMI和自动化技术,IoE在发电、配电和输电方面带来了一场革命。显然,智能电网、电动汽车、智能电器以及分布式能源正在改变能源生产的整体形态。此外,风能和太阳能形式的分布式能源的出现为能源生产商提供了机会,他们可以在终端用户一级自行生产和销售能源,而不是依赖传统的自上而下的能源流动,在这种流动中,集中的公用事业服务于所有电力需求。然而,分布式能源的开发可能会面临一些电网不确定性和不稳定性,如电动汽车的高使用率可能会导致高功耗负载导致电网拥堵。此外,分布式能源的增长为配电运营商带来了挑战,如电压变化、供需失衡等。
此外,IoE的普及还面临一些问题,包括可扩展性、能源存储、P2P能源交易和需求侧管理。此外,节点之间的双向能源交易和需求响应管理涉及到诸如负荷预测、价格预测和最佳能源分配等活动的消息通信。IoE边缘设备无法为这些实时能源交易提供速度、可扩展性、安全性和控制。此外,随着分布式能源的发展,供需趋势并不十分明确。在现有文献中,IoE设施由一个中央可信方管理,该方管理客户的电力负荷及其交易支付。中央运营商获得与发电、消耗相关的数据,并相应地安排电力传输。能源交易的集中管理非常耗时,存在许多安全问题,而且是单点故障。此外,由于分布式能源和电动汽车的数量不断增加,智能电网的管理很难采用集中式方法。因此,微电网、可再生能源和电动汽车使分散能源系统的出现成为可能,这需要一个可靠、可扩展和有效的交易模型。此外,我们需要更好的通信、传输和分配基础设施,以及对网络内所有运营和活动的独立管理。
由于IoE的集中化,对安全和隐私问题的需求越来越大,这加速了新兴技术的使用,如区块链,可以利用加密和智能合约提供完全分散和自主的场景。区块链的应用包括农业、医疗保健、物联网(IoT)和金融应用等各个领域。将区块链集成到IoE框架中,可以产生更安全、快速、透明、节能和低成本的运营解决方案。区块链使不同的电力公司能够在不涉及第三方的情况下交换能源并执行能源交易。交易由所有网络参与者公开存储和验证,从而实现安全的能源交易。在将记录添加到链中之前,挖矿节点将借助共识机制对其进行验证。为了在没有第三方的情况下实现信任,与能源交易相关的记录存储在网络的每个节点上,以便可以在网络上透明地验证任何交易。在区块链中,每个区块包含前一个区块的哈希,提供记录的不变性。此外,智能合约支持操作的自动处理。因此,区块链具有所有固有的特性,使其适合解决IoE技术的安全问题。
通过调查当前文献,我们研究了区块链在IoE状态下的适用性和可用性,并在此基础上提取了IoE在不采用区块链的情况下面临的常见问题。然后我们回顾了集成IoE和区块链的相关文章。之后,我们对区块链与IoE整合的现有文献进行了比较分析。我们还讨论了各种共识算法及其优缺点,以便可以针对IoE市场进一步优化可用的共识算法。最后,我们讨论了区块链与IoE集成的一些突出挑战。
已经对智能电网、车辆到电网(V2G)技术和可再生能源的应用和挑战进行了多项调查。智能电网系统的安全和隐私问题在[13–17]中讨论,而[18,19]的作者讨论了V2G的相同问题。然而,在过去两年中,没有对IoE的研究现状进行调查。例如,[20–23]的作者讨论了构建IoE技术的好处、假设和要求,但所有这些都在2017年之前发布。分散区块链技术的概念、机遇、挑战和应用在[24,25]中进行了讨论。上述综述对区块链和智能电网进行了更广泛的描述。
除了金融应用之外,区块链还广泛用于物联网应用。例如,[26–28]的作者对区块链和物联网的集成进行了系统的回顾。更具体地说,[29,30]的作者讨论了区块链在智能电网系统中的应用。尽管除了智能电网,还有许多其他形式的能源属于IoE。没有一篇评论文章讨论了区块链在V2G和可再生能源系统中的应用。然而,有一些评论文章提供了区块链与能源部门整合的见解,我们将在下面讨论。
这方面的第一篇评论文章由Wang等人完成,他指出,能源互联网和区块链技术的概念类似,因为这两种技术都基于移除中心、合作自治的理念,并且都是面向市场的。他们还简要讨论了区块链在能源互联网中的潜在应用。类似地,[32]的作者讨论了区块链在能源领域的应用,以及两种技术的集成问题,包括标准化、可靠性和瓶颈。Burger等人调查了区块链对德国能源行业的影响,而[34]和[35]等文章分别探讨了区块链对于俄罗斯和南非经济的影响。[36]的作者讨论了区块链在智能合约部署的P2P能源交易过程中的作用。这里,基于区块链的能源交易分为三个领域,即能源交易、共识机制和系统优化。这些作者还确定了基于区块链的能源交易的挑战。这些挑战包括低效率、安全和隐私问题。然而,Sun等人详细讨论了区块链概念,并涵盖了透明性、分散性、不可操作性和匿名性等主题。他们简要讨论了区块链在电力行业的适用性,没有讨论具体的挑战。Brilliantova等人指出,区块链在能源市场的潜力远远超出P2P能源交易。作者还讨论了区块链与电动汽车的集成。他们的研究基于文献工作和专家访谈。此外,[39]的作者对区块链在能源互联网运营中的应用进行了简短调查。他们还讨论了在智能电网技术中使用区块链的缺点。Wu等人利用分散、开放、智能和互联自治等特征,对区块链与能源系统的兼容性进行了比较。此外,Wu等人还讨论了将区块链技术应用于能源互联网的挑战和应用。同样,在[40]中,作者讨论了能源互联网的运行机制和存在的问题。特别是,作者讨论了区块链在能源互联网市场交易系统、分布式能源行业、电动汽车行业和电力能源众筹中的典型应用。在[40]中,作者讨论了区块链和能源互联网结合产生的潜在约束。最近,Aggarwal等人提出了一项调查,讨论了区块链在智能交通系统、智能电网、医疗保健网络、数据中心网络和金融部门等智能社区中的广泛应用。具体而言,在能源领域,作者讨论了在能源交易、需求响应和动态定价中应用区块链的优势。表1显示了上述关于将区块链整合到能源部门的评论文章的比较。特别是,除[39]和[31]外,上述所有其他文章都在整个能源行业的背景下讨论了区块链,但IoE是能源行业市场的一部分。
与上文讨论的文献综述相比,本文主要比较了现有的文献建议,这些建议侧重于使用八种不同属性整合IoE和区块链,以深入了解当前的研究现状。本文详细描述了区块链在IoE系统中的应用,以及相关的突出挑战。此外,本文还讨论了不同共识算法在IoE中的适用性。
在第2节中,我们介绍了IoE技术的概述和特点,并讨论了IoE中的主要问题。第3节讨论了区块链在IoE各种操作中的潜在应用。第4节讨论了最流行的共识算法,以及可用共识算法对IoE的适用性。第5节总结了设计基于区块链的IoE时面临的开放研究挑战。最后,我们在第6节中做了一些总结。
如[42]所述,到2040年,用户的电力需求预计将上升至30%(比2017年高)。这一需求的增加是由于城市化、人口和电器的增长使现有的电力基础设施负荷过重。满足这一需求可能会对环境造成污染和全球变暖。特别是,能源危机和二氧化碳燃烧造成的环境污染问题被列为能源市场的关键问题。由于实时监测、故障识别、自动化、透明度和灵活性不足,当前的超应力网格结构也面临可靠性问题。可再生能源、智能电网、电动汽车和V2G是解决这些问题的一些有前景的选择。
有了分布式能源,能源系统将变得更加分散和灵活。然而,在现有电力基础设施的情况下,来自可再生资源的能源无法实现充分效率。例如,中国生产了大部分绿色能源,但仍面临能源危机,因为它无法向其高人口提供能源。逐渐转向分布式可再生资源也意味着发电越来越依赖于天气季节,发电的这种不可预测性要求公共事业部门采用新的供需管理技术。例如,可能会出现产生过多能源的情况(晴天),或者在某一天(多云天)能源不足。在这种情况下,关键要求是平衡电力生产和消耗。随着分布式能源资源的发展,也引入了本地能源市场的概念,以有效奖励和调度分布式资源。本地能源市场是指能源市场的一个子集,其规模较小,涉及网络不同公用事业之间的本地能源交易。然而,当地能源市场的部署需要新的通信结构和新的支付机制。此外,P2P能源交易的一个关键问题是如何协作和连接现有电力基础设施与分布式可再生能源?因此,需要一个智能控制和管理系统,以实现协调、可持续和智能的能源市场,该市场还涉及分布式发电、灵活性、客户透明度,同时使用可再生能源。
此外,智能电网技术已被证明在处理上述问题方面是有效的。智能电网提供了一个生成、分配、存储和传输能源以及更新电价信息的平台。这一新兴技术提供了可靠、透明、灵活和自动化的电力系统。智能电网系统通过平衡电力公司之间的发电和消耗来保持稳定性。为了将智能电网与分布式能源资源相结合,微电网生态系统被广泛利用。微电网是智能电网的一个子集,能够从各种小规模能源分布式发电。凭借分布式特性,微电网允许能源贸易商和客户在智能电网中直接进行本地能源交易,从而最大限度地减少输电功率损失。
此外,作为智能电网网络物理系统组成部分的电动汽车,由于其提供绿色环保环境的能力(电动汽车的二氧化碳排放较少),在过去几年中受到了欢迎。此外,电动汽车在与风力和太阳能发电厂集成时提供更好的存储和功率平衡服务,这种集成可以解决化石燃料的不利条件。射频识别(RFID)卡通常用于在充电站对电动车辆进行认证和支付。然而,缺乏充电站限制电动汽车在能源市场的使用。例如,在南非,由于充电站分布不均,电动汽车制造商面临困难。值得注意的是,分布式可再生资源的渗透、不协调电动汽车的动态特性、突然的位置变化和充电时间都会导致智能电网中的电力波动和配电不平衡。由于电动车辆的增加,传统电网的结构无法处理不断增加的动态负载。这些问题的一种解决方案是使用产生高操作成本的发电机或能源存储系统。一个更好的选择是部署双向能源交易电动汽车,即V2G用于放电,电网到车辆(G2V)用于充电模式。V2G有助于在用电高峰期稳定电网负荷。在智能社区中,配备双向充电器的充电站可以以P2P方式买卖电力。据报道,一辆典型的车辆每天道路仅使用5%的电量。因此,它们可以容易地用于提供上述问题的解决方案。V2G技术使电动汽车能够充当能源存储介质,在高峰时段将能源交易回电网以实现负载平衡。作为回报,电动汽车车主可以在停车时向电网排放能源。因此,关于V2G能源交易的现有建议受到了业界和学术界的极大关注。
智能电网、可再生能源、V2G和电动汽车使用量的增加将影响当前的智能电网基础设施,因为它正在将电力市场的范式从集中转移到分散和分布式网络。分布式能源可再生资源和智能电表的广泛使用也推动了双向能源交易,这需要一种高效的能源调度和奖励机制。此外,分布式能源系统价格变动将增加。现有的能源市场运作也依赖于一个中央机构,该机构面临安全、隐私和单点故障问题。因此,能源系统需要一个分散的体系结构,其中公用事业可以相互交换电力,从而使配电有效、自主且无需第三方机构参与。
此外,电力市场继续朝着一个不同的未来发展,电网结构将与智能边缘设备和高速高效通信集成,以实时处理和快速决策数据。各种智能能源基础设施组件之间的动态互联网络,如电站、自动化配电设备、智能仪表、智能电网、电动汽车和互联网上的人,称为IoE。IoE术语最早由Jeremy Rifkin于2011年引入,他借助互联网协调各种电力公司,通过在网络参与者之间分配和管理收集的电力信息来提高可靠性和能源效率。IoE是在分布式和分布式能源管理系统中实现物联网、大数据、人工智能技术和计算能力,旨在优化现有能源基础设施的效率。IoE中智能电表的部署评估了智能建筑、家庭的能源生产,这些信息在网络中传输以管理电力。IoE简化了可再生能源、智能电网、微电网、电动汽车、计费中心和控制中心的协作,所有这些都提高了能效、灵活性和可支持性。因此,IoE技术有助于从集中式、生产商集中的单向电力框架转变为分布式、按需、双向能源供应管理系统。然而,在电力生产领域,IoE是智能电网的延伸,由不同形式的能源和更多的参与者组成。所有形式的能源都可以接入互联网,这使得能源用户也可以成为能源生产者。电力监控、需求侧能源管理、可再生能源整合增长、减少电力浪费、减少停电、自组织和资源管理是IoE的重要优势。此外,通过IoE技术,数据的实时监控和分析减少了停机时间、维护和运营成本。图1描述了IoE所实现的目标。IoE使用传感器和智能实时监控技术从边缘组件收集能源信息,并将其发送给其他电网参与者。收集的信息在电网组件内共享,以获取关于当前电力使用、需求和预测未来需求的知识。图2示出了IoE的架构。然而,IoE由多种形式的能源组成,这在网络中打开了安全和隐私问题,因此需要新的能源系统。
此外,通信基础设施是IoE技术的一个重要方面。供应商和利益相关者面临着关于控制和维护IoE设备的通信协议和标准的问题。在早期,由于当时没有标准,供应商设计了他们的专有协议。然而,专有协议总是面临互操作性问题。为了降低安装成本,提高分布式能源的维护、可靠性和效率,IEC制定了IEC 61850-7-420国际通信标准。此外,为了支持IoE中的车辆到基础设施(V2I)通信,专用短程通信(DSRC)协议被广泛使用。DSRC(包括IEEE 802.11p和IEEE 1609标准)是一种双向中短程无线通信协议,允许车辆到车辆(V2V)或车辆到基础设施(V2I)通信的高数据传输速率。DSRC支持低延迟、高速通信、身份验证和可靠性。然而,这些标准基于传统的公钥基础设施(PKI),其中涉及用于认证、可靠性和互操作性等的集中式证书颁发机构(CA)。另一个名为国际标准化组织(ISO)115118-2:2014的协议描述了电动车辆供电设备和电动车辆的通信。该通信协议使用传输层安全(TLS)、传输控制协议(TCP)和互联网协议标准第6版(IPV6)。该协议基于单边身份验证,可能导致重定向和模拟攻击。随着安全威胁的增加,IoE通信需要不同电力公司和服务器之间的相互认证。尽管无线局域网(WLAN)和Zigbee技术足以管理家庭局域网(HAN)和家庭自动化,但广泛的电力线控制必须用于电动汽车充电、电网运行和自动抄表。类似地,对于可再生能源混合技术的电网集成,例如铜线、光纤、电力线通信属于流行的有线通信技术,而Zigbee、Wi-Fi和Wi-Max是首选的无线通信技术。IEEE P2030也是为解决能源技术与信息技术操作的互操作性问题而制定的标准。
IoE技术可以在异构电力公司之间提供高级连接,以便建立单个系统。随着IoE市场的增长,其连接、通信、基础设施和恶意攻击也将继续增加。因此,在整合不同形式的能源方面存在许多问题。由于本文的重点是区块链和IoE的集成,因此为了保持简洁,我们重点关注了IoE中由于使用集中式架构而出现的问题。接下来,我们将讨论IoE中存在的一些问题。
随着基础设施的发展,电力市场的交易数量也增加。如今,随着微电网、分布式可再生能源和电动汽车的增加,能源基础设施变得复杂和分散。低P2P交易成本、隐私威胁、缺乏透明度、不可靠性和集中管理等问题未能满足能源市场利益相关者的期望。[79]的作者指出了IoE技术的集中式方法所面临的安全和隐私问题。对分散和分布式能源系统的需求不断增加,促使需要一种新的安全范式来实施未来的IoE。由于区块链继承的分散属性,它可以轻松应用于分布式和分散的IoE基础设施。这项技术还实现了一切服务化的理念。接下来,我们讨论区块链技术的基础。
区块链技术于2008年首次引入,旨在处理比特币账户,并处理这些金融账户之间的安全和隐私问题。通过区块链,加密货币及其相关数据被安全地存储在参与者的分布式P2P网络中,这些参与者共同组成一个透明和可审计的网络。然而,区块链技术的应用不仅限于金融账户。区块链技术提供了一种分布式和去中心化机制,使任何记录在被存储在网络上之前都能被网络参与者验证。随着时间的推移,经过验证的记录被锁定在加密链接的数据块中。在区块链中,每个交易使用一个区块和一个区块头,几个区块在一条链中链接在一起。区块链技术基于公钥密码的基础,如椭圆曲线密码(ECC)和椭圆曲线数字签名算法(ECDSA)。区块链支持任何实时应用程序的身份验证、授权、完整性、不可否认性和匿名性等安全服务。在大多数区块链应用中,网络节点通过其公钥进行引用,以保持匿名性。此外,merkle哈希树的使用使得很难修改块中的任何数据,这使得事务是不可变的。
区块链网络中有两种类型的节点,即矿工节点和普通节点。此外,普通节点有两种类型,即全区块链节点和轻量区块链节点。每个完整区块链节点维护其分布式账本,该账本具有交易的完整历史记录。与全节点相比,轻区块链节点仅为每个区块维护一个头部。在全区块链节点中,一些节点根据所选共识协议的条款和策略被选为矿工节点。特别是,矿工节点在将块添加到网络之前对其进行验证和认证。此外,区块链技术在网络上部署智能合约。在没有第三方授权的情况下,智能合约可以实现自动化的工作流程和无错误的交付。它基本上是一段代码,自动实现满足预定义规则的任务。然而,具有安全漏洞的智能合约可能会导致系统中的损失。
由于区块链遵循分散管理,为了确保数据的可靠性和一致性,区块链采用了分散共识机制的概念。工作证明(PoW)、权益证明(PoS)、实用拜占庭容错(PBFT)、委托权益证明(DPoS)、授权证明(PoA)是研究人员在其应用中信任的一些流行共识算法。我们将在另一节中描述这些算法。
许可、无许可和联盟是区块链技术的三种类型。然而,IoE是许可区块链的潜在应用。在IoE环境中,传感器不断地从周围环境进行测量,以进一步平衡峰值负载并维持电力。因此,应授予这些传感器设备有限的权限。因此,许多提案选择了许可和联盟型区块链来评估区块链在IoE中的性能。然而,为了实现能源市场的无争议框架,应明确界定法律规则和条例。在文献中,有一些建议证明了区块链重塑能源供应部门的潜力。[82]的作者讨论了影响区块链在能源领域应用的因素。此外,[83]的作者讨论了能源系统的集中平台控制问题,并开发了基于区块链的住宅社会能源交易用例。与基于区块链的系统一样,所有IoE节点独立工作,无需集中式授权,因此它提供了安全性和抵御攻击的鲁棒性。这里,事务以分散的方式存储在每个节点上,以确保独立于任何第三方。消除第三方也降低了交易成本。然而,与非顺序数据排列相比,区块链技术实现了顺序数据排列,即数据块以链形式和时间顺序存储。此外,区块链网络参与者之间的互联保证了每个能源公司可以实现P2P信息共享,这也简化了自动调度。区块链技术的设计原则确保了公用事业之间各种类型能源交易的法律验证。将区块链集成到能源行业可以激活向客户交付电费和其他信息的自动化。区块链促进自我参与,确保电力的透明发电和分配,同时以高效的方式提供灵活的需求侧资源管理和实时定价信息。区块链技术提供的透明度属性为产消者带来了机会,即它使智能家居不仅能够从可再生能源中发电,而且能够自主销售。这种部署还允许消费者变得灵活,并创建以客户为中心的体验。区块链网络还提供匿名性,因为网络的参与者使用其加密密钥(根据用户ID生成)而不是使用其真实身份。匿名性也可以通过使用零知识证明在区块链中提供。除了用于能源交易之外,区块链在智能电网的电表清算过程中也有其使用案例。
区块链还支持智能合约。智能合约激活网络中的信号,以根据为保证自动能源流而制定的预定义规则启动交易。借助智能电表的智能合约能够自动测量产生或消耗的能源,以便自动调整需求和供应。智能合约可以帮助实现自动化活动,例如定义一段时间的电费、支付政策、购电和售电时间。此外,通过利用智能合约的功能,我们可以提高能源市场的速度、可靠性、可扩展性和安全性。图4说明了IoE行业中区块链支持的一些潜在应用。
文献中介绍了许多使用区块链解决IoE行业挑战的建议。接下来,我们将讨论一些与IoE实用程序相关的区块链应用。
作为一个分布式和去中心化系统,区块链面临拜占庭将军问题。因此,区块链网络必须能够高效工作,即使存在不诚实的节点。为了正常工作,区块链需要一个共同的协议,以确保有效性并防止区块链被操纵。此外,在没有集中授权的情况下,必须有人在分布式网络中验证块。在此背景下,共识机制确保不同区块链节点和共享公共账本之间的同步。它使网络节点能够在没有任何第三方的情况下达成有争议的自由协议。然而,在分布式环境中很难达成共识。共识必须容忍节点故障、消息延迟和消息的无序传递。图8示出了共识算法的一些要求。尽管许可区块链的共识算法具有较低的可伸缩性,但它确保了高吞吐量和低延迟。相比之下,无许可区块链的共识算法实现了高可扩展性,并且是稳健的共识。此外,大多数现有的区块链共识设计速度慢、耗时且需要大量能源。接下来,我们讨论流行共识算法的流行原理。
这是第一个也是最流行的区块链共识算法,实现了拜占庭式容错。最初,PoW是为无许可区块链设计的,但许多研究人员将PoW用于许可和联盟网络。在PoW中,人们相信,如果节点能够执行大量密码计算,那么它攻击网络的可能性较小。为了将块附加到区块链,每个矿工必须找到一个合适的随机数值,该随机数值可以产生所需的块头SHA哈希。为了实现这一点,随机数的值在每一轮中递增,以使块的计算哈希值低于或等于为块定义的目标。采矿者在再次采矿之前还必须等待有限数量的区块,该等待时间取决于称为“采矿多样性”的网络变量。然而,在这个方案中,由于不同的采矿者在同一时间竞相开采一个区块,浪费了大量的能源。成功验证后,挖矿节点将此块广播到网络的其余部分。如果网络上超过50%的节点同意交易的真实性,则该区块将附加到区块链。特别是,Sybil攻击很难在基于PoW的区块链网络上执行。如果一个矿工或一组矿工可以成功地控制51%的哈希能力,那么它会导致在PoW中被称为“51%攻击”的攻击。如果使用自私挖掘技术,PoW矿工可以获得25%的散列能力来控制网络。
PoS比PoW消耗更少的能源,因为它在挖掘过程中需要更少的CPU计算。与PoW类似,它也是为无许可区块链设计的。与PoW不同,矿工被称为验证器。此外,PoS比PoW更分散。在PoS中,具有更多参与和加密货币的节点不太可能攻击网络。要成为验证器,节点必须存入一定数量的加密货币作为赌注。利益相关者添加新区块的机会与其持有的股份数量成比例。PoS增强了系统的安全性,因为成员的利益处于风险之中。然而,在该方案中,富人变得更富有,因为所选节点收到用于验证交易的交易费用,这增加了同一节点更频繁地被选为验证器的机会。此外,与节点必须投资电力、硬件、时间等的PoW相比,具有足够股权的节点可以通过只投资股权来破坏系统。最近提出了一些原始PoS的变体来解决这个问题。实现PoS的第一个应用程序是PPCoin(基于硬币年龄的选择概念),其中具有最古老和最大硬币集的节点可能会开采区块。这里,赌注定义为硬币数量乘以持有期。黑链使用随机化块选择过程来选择验证器。它使用一个公式来检查哈希函数的最低值以及所涉硬币的数量。为了对区块链实施51%的攻击,验证器必须控制至少51%的现有数字货币。
为了解决PoS面临的问题,提出了DPoS。DPoS旨在更有效地达成共识。DPoS是一种快速、灵活和分散的共识模型,其中矿工被称为证人。在DPoS中,利益相关者根据当前利害关系选择一定数量的证人。投票数最高的前k名证人有机会参与区块链决策。选择k的方式应确保至少50%的选民认为有足够的权力下放。每次证人验证一个区块时,他们的账户都会被记入一些收益。选定的见证人逐个验证新块。如果任何见证人未能在某个固定时间内验证某个块,则将同一块分配给下一个见证人,利益相关者将选择一个新的见证人来替换它。由于参与区块的节点数量较少,因此DPoS中的交易验证比PoW或PoS更快。要发动51%的攻击,攻击者必须控制51%的当选证人。如果更多的利益相关者参与选举证人,攻击者就更难发动攻击。
拜占庭容错被描述为分布式系统即使在网络中存在发送误导信息的攻击者节点的情况下也能达成协议的能力。PBFT旨在优化BFT,以便在区块链网络中实现。实用拜占庭容错(PBFT)旨在解决异步环境中的拜占庭将军问题。它基于这样一个假设,即网络中只有不到30%的节点是恶意的。换句话说,至少 3 f + 1 3f+1 3f+1个节点需要工作,其中 f f f是错误副本的数量。基于PBFT的区块链可以容忍至多33%的恶意节点。PBFT过程包括三个阶段,包括。
然而,有了参与者的先验列表,可以在PBFT中以低事务延迟和低网络通信开销达成共识。此外,有限的可扩展性不适合物联网应用。
PoA是PoS模型的一个优化变体,其中网络上的当局为网络的公平运行而对其身份进行赌注。Parity和Geth已经实现了PoA。PoA假设当局诚实可信。通过锁定身份,验证者不希望与负面声誉关联。不是指定一个机构,而是使用一组机构就网络状态达成协议,最终决定必须由机构确认。当创建区块时,当局依赖采矿旋转方法。这是基于以下假设:有N个机构至少有 N 2 + 1 \frac{N}{2}+1 2N+1应该是可信节点。PoA算法设计用于许可和无许可网络。然而,[173]的作者证明,PoA不适用于许可区块链,因为它面临一致性问题。与PBFT不同,PoA在网络中很少涉及消息交换,从而提高了性能。然而,集中式授权的使用限制了PoA在某些应用中的使用。
与PoW不同,为了在PoC中添加新块,必须专用存储,而不是使用CPU和GPU进行计算。有了这一共识,可以节省大量能源。PoC也被称为压缩工作证明,因为所有计算都是在挖掘开始之前由验证者提前执行一次,并且该工作的结果(绘图文件)缓存在硬盘上。绘图过程通过使用shabal哈希机制创建一个随机值。挖掘过程只需要读取绘图文件。如果存储介质包含最近生成的块谜题的快速解决方案,则激励验证者的帐户。但是,硬盘的大小决定了创建唯一打印文件所需的时间。与PoS不同,网络上的每个人都有公平的挖掘机会,因为存储介质很容易以更便宜的价格获得。
PoB旨在解决PoW中的高能耗问题,并减少对硬件资源的依赖。在PoB中,矿工将硬币投资到不可支付地址的eater地址(在该地址,硬币变得无用且无法访问)。eater地址没有分配任何私钥,这意味着只有硬币可以发送到该地址,但发送到eater的硬币不能再次使用或花费。通过燃烧或投资硬币,矿工表示他/她准备承受短期损失。烧钱时,对eater地址执行交易,并使用该交易计算烧钱散列。燃烧散列是通过将乘数与内部散列相乘来计算的。如果燃烧散列的值小于某个预定义值,则生成来自PoB的块。矿工燃烧加密货币越多,挖掘的概率就越高。成功开采区块后,矿工将获得奖励。然而,从单个矿工的角度来看,该方案成本高昂。
PoL使用可信执行环境(TEE)正确处理关键操作。PoL背后的思想是网络上的每个节点都向TEE请求一个随机数(幸运值)。运气值越高,被选为矿工节点的机会就越高。与PoW类似,网络上的节点接收事务,矿工节点竞争提交具有TEE生成的运气值的块中的未决事务。接下来,节点将生成的块广播到网络,幸运块被添加到网络。这里,假设只有不到一半的节点有故障。PoL还需要安装专用硬件,如-SGX。
随着IoE技术的快速发展,IoE实用程序以分散和分布式的方式相互通信时,需要确保机密性、完整性和可用性。在没有中央权威的情况下,我们需要一种共识方法。交易速度和交易成本是决定共识协议选择的另外两个重要参数。然而,PoW是加密货币最流行的方法,但正如[94]所指出的,由于能源浪费,它不适用于许可能源区块链。例如,[123]的作者使用了PoW算法。然而,在未来,作者建议使用PoI共识机制(而不是PoW),以尽量减少计算资源的使用。此外,PoW在一定程度上缓解了双重支出攻击。Horta等人还讨论了在IoE中实施PoW的一些挑战,他们建议将PoS算法与基于信誉的硬币一起使用。此外,Wang等人建议在微电网市场使用PoS,以减少电力消耗。然而,PoS共识算法需要具有存储约束的IoE设备的大存储空间。通常,当在区块链网络中创建分支时,参与者选择一条链跟随,多数链获胜。尽管使用PoS,但为了防止失去孤立区块交易费用的风险,一些参与者选择了最佳策略,并选择激励两条链。因此,使用PoS,通过产生与叉数相等的块数,很容易促进发散链,这使得很难纠正叉。在这种情况下,[115]的作者得出结论,PoS和PoW都不适合能源市场的实时要求。相反,他们建议使用活动链,这是PoS实现的一种变体。相反,[81]的作者使用PBFT来解决容错问题,并维护安全性和活动性,而[94]的作者则使用DBFT来达成共同协议。此外,我们从表2-4中注意到,与PBFT相比,PoW和PoS共识协议是文献中最常用的协议。然而,诸如-PoA、PoB、PoC等协议尚未在IoE的任何文献中使用。以上讨论的共识算法具有选择挖矿节点的确定方式。一些提案定义了自己选择矿工节点的方法。例如,在[154]中,矿工节点被选择为其数据最接近每个时隙中潜在矿工组内收集的数据的平均值的节点。与上述建议相反,[97]的作者使用PoA协议和PoW协议评估了能源区块链。此外,[110]的作者通过使用PoW共识算法基于智能家庭的剩余能源选择了矿工节点。表5和表6显示了近期文献中一些流行共识算法的优缺点比较,这将有助于促进IoE市场在该领域的进一步研究。
能源市场的区块链用例尚未完全开发,因为区块链与IoE的集成带来了以下几个挑战。
大数据、人工智能和互联网技术的最新发展正在对当前的电力基础设施产生重大影响。IoE利用传感器、先进通信技术、互联网连接和智能基础设施,实现能源部门各公用事业(利益相关者、电网、电动汽车、智能电表和微电网)之间的协调。在本文中,我们总结了IoE技术中的许多相关问题,因为集中数据控制主要包括安全、隐私、能源交易和需求响应管理。在IoE中采用区块链技术可以通过创建分散和分布式的可信机制来提高抵御网络攻击的弹性。本文还讨论了IoE背景下区块链的各种共识算法。然而,很难说本工作中讨论的一种共识算法是否比另一种更好,因为这取决于问题的具体要求以及网络的可用资源。虽然区块链技术带来了一些好处,但与IoE市场整合时也有一些缺点。最后,我们讨论了区块链与IoE集成的挑战。
我一直在使用动态规划的这种变体来解决背包问题:KnapsackItem=Struct.new(:name,:cost,:value)KnapsackProblem=Struct.new(:items,:max_cost)defdynamic_programming_knapsack(problem)num_items=problem.items.sizeitems=problem.itemsmax_cost=problem.max_costcost_matrix=zeros(num_items,max_cost+1)num_items.timesdo|i|(max_cost+1).ti
我已经使用jQuery在Raphael元素上实现了pointer-events:none,如下所示:varraphaelElement=Raphael.ellipse(x,y,w,h);$(raphaelElement.node).css({'pointer-events':'none'});这工作正常,但当然在IE8中,Raphael使用VML而不是SVG,并且此解决方案失败。有没有人有其他解决方案来使Raphael元素忽略事件。 最佳答案 在IE8(及更早版本)上实现此功能的唯一方法是实际捕获事件,并在事件处理程序中:隐藏元素(
我正在尝试在Asp.NetMVC上实现客户端ajax登录。我以前在WebForms上设置得很好,但现在我已经转移到MVC上,这给我带来了一些麻烦。如果您想要有关Asp.NetWebforms的客户端Ajax登录的教程,可以找到here--简单,A++现在...出于某种原因,它不适用于Asp.NetMVC。除了执行ssa.login()时,我使用了与Webforms完全相同的教程(等效于:Sys.Services.AuthenticationService.login())它什么也没做。我在onLoginComplete()函数和onError()函数中都有警报。在ssa.login被调
我看了thistutorial用于创建与同一解决方案中的多个项目一起使用的javascript。基本上,我创建了一个类库,其中有一个脚本文件夹,我在其中创建了一个脚本文件,我想在同一解决方案的多个项目中使用该文件。在使用commonscript文件的项目的脚本文件夹中,我添加了一个existng项目,如上面的链接所述。我将文件添加为链接而不是文件的副本。但是,我的View无法读取此javascript文件。我什至将此命令添加到使用javascript的项目的预构建事件中,这样我就可以在构建之前将文件从类库复制到我的项目中,但也没有用。copy$(SolutionDir)ClassLib
我正在构建一个扩展,以在Magento的单页结帐中的“下订单”按钮之前添加一个特定的block。我很难找到正确的咒语来简单地将一个block附加到这个部分,更不用说在另一个句柄之前/之后得到它了。目的是在不更改任何模板的情况下使用此覆盖。在我的扩展的XML中,我有:myextension/block.phtml目前只是一个简单的文本block。我知道一般语法是正确的,因为我可以将我的添加到checkout_cart_index并看到它就好了。我缺少一些基本的东西吗?谢谢! 最佳答案 背景并不是所有的block都会自动输出它们的子bl
在visualstudio2017(或可能是任何版本)中,我想在IDE中打开一个解决方案并从命令行开始构建它。如果解决方案已经打开,那么我只想开始构建(在IDE中)。所以我可以这样打开解决方案:devenvsolution.sln或者我可以这样构建它:devenv/buildsolution.sln还有这个:devenvsolution.sln/command...但是很难找到有关“命令”的文档...该示例是一些用户制作的宏,但我假设还有其他内置命令?-这可能有帮助...?但我不确定如何:在IDE中打开一个解决方案并立即构建它如果它已经打开,就让它开始构建。有什么办法可以做到这一点吗?
这个问题在这里已经有了答案:HowdoIgetanerrorreportfroma"PleasetellMicrosoftaboutthis"dialog?(3个答案)关闭8年前。每个人以前都见过这个窗口。它出现在未处理的异常或其他情况下,例如应用程序挂起:首先,它是做什么的?(它对我从来没有用过)其次,作为开发人员,我可以以任何方式使用它吗?我想知道,如果我可以在Microsoft注册,然后查看通过此对话框发送的所有错误报告。因为这个窗口promise找到解决方案:我真的可以为我的用户提供解决方案吗?比如将他们引荐到网页或提供更新?我从Android应用商店了解到,如果用户发送错误报
因此,当程序相当不正常地终止时,现代版本的Windows会显示一个对话框,内容如下:Windowsissearchingforasolutiontotheproblem它计时了一会儿,然后没有找到任何东西。好吧,它从来没有告诉我它找到了解决方案。问题是,显示此对话框时究竟发生了什么?它可以显示为“解决方案”的可能是什么?我的应用程序有没有办法利用它?显然,如果我对可能出现的问题有足够的了解,我应该在应用程序中处理它,所以我想知道这到底做了什么。有人知道吗? 最佳答案 WindowsErrorReporting正在捕获失败程序的堆栈跟
我需要一些帮助。我有一台WindowsServer2003计算机,我正在使用Git和Review-Board进行设置。我的Git存储库由Gitolite管理。设置成功,一切正常(通过多个工作站测试)。Review-Board站点已成功安装并托管在Apache2.2下。这本身也工作正常(该网站可访问并响应工作站),除了我试图将Git存储库链接到Review-Board的部分。大多数教程(例如:http://ericholscher.com/blog/2011/jan/24/using-reviewboard-git/)都提供了关于如何在Review-Board下设置Git存储库的详细信息
我知道EntityFramework不允许您使用非主唯一键作为外键关联从数据库生成模型。我可以手动修改EDMX吗?如果是这样,有人可以给我一个例子或引用吗?如果不是,还有其他可能吗?最简单的例子:这是表的DDL。您会注意到我有一个从PersonType.TypeCode到Person.TypeCode的外键CREATETABLE[dbo].[PersonType]([PersonTypeId][int]NOTNULL,[TypeCode][varchar](10)NOTNULL,[TypeDesc][varchar](max)NULL,CONSTRAINT[PK_PersonType]