开发基于区块链的智能家居的设计挑战
摘要
本文讨论了在开发基于区块链的智能家居功能过程中所识别出的设计挑战。这些挑战被进行了分析和分类,并通过文献综述系统地汇总了学者和企业提出的可能的解决方案及最佳实践。
关键词 ——区块链,系统设计,软件工程,智能电网,智能家居,物联网
I. 引言
能源领域正在经历一场根本性变革,这是由许多不同因素和现象共同作用的结果。气候变化、可再生能源的大量使用、能源产销者日益重要的角色以及新技术的发展,都在塑造能源的未来。与此同时,我们可以将更小规模、更分散的生产单元以及本地化能源管理视为实现更加民主化和稳定能源系统愿景的共同推动力。近年来,智能家居、能源社区和能源互联网[1]等概念得到了广泛研究。在所有这些概念中,信息通信技术都发挥着至关重要的作用,而区块链尤其成为所构想的系统性解决方案中的关键技术组成部分。
通常,区块链技术(BC)能够提供一些固有的系统特性,例如去中心化、持久性、匿名性和可审计性[2],以及安全和自动合约执行,这些特性在许多方面与能源互联网[3]的目标相兼容。在能源领域应用时,BC的潜在用例包括点对点能源交易、去中心化市场、电网管理、电动汽车充电系统、绿色证书以及各种流程优化[4][5],等。
区块链技术已应用于多个与能源相关的概念验证(PoC)场景[5]‐[9]。尽管在试验中获得了许多令人鼓舞的结果和经验,但仍存在一些共性痛点,阻碍了基于区块链的概念验证开发,特别是从测试向生产阶段及更广泛应用的过渡。文献[5]总结了以下挑战:“由于系统设计不当或恶意攻击引发的安全风险”、“缺乏大规模应用的经验”、“高开发成本”以及“需要昂贵的新基础设施,如定制的信息通信设备和软件”。此外,[10]还指出,“无规范或仓促的软件开发,既不能保证软件质量,也未考虑软件工程的基本理念”。
受这些问题的驱动,我们的研究目标是探讨在实际应用中如何促进基于区块链(BC)系统的开发。本研究聚焦于架构考虑、系统集成和软件开发等方面的设计问题。特别是,该研究旨在推动智能家居环境的发展,以满足基于区块链的用例所需的能力,例如可再生能源的溯源证明或灵活性交易。选择小型住宅建筑的视角,是因为预计这类基层环境未来将成为能源系统技术骨干的一部分,因为整合“电网边缘”将有助于实现能源供应的分布式管理和多样化的负荷曲线。
论文的其余部分组织如下。首先,描述了研究过程并提出了一个实验性案例研究。第三章回顾了评估结果以及文献发现。第四章对结果进行了讨论,并给出了结论和对未来工作的展望。
II. 方法与案例描述
作为我们工作的起点,我们选择了一种双轨研究方法,首先在真实建筑环境中实施了一个有限的演示设置。这一阶段的目的是观察并识别在实际实施中基于区块链的系统设计与开发所涉及的相关问题。之后,我们对设计挑战进行了分析和分类,并通过文献综述补充了研究,以调查学者和企业提出的可能的解决方案和最佳实践。文献综述还使我们能够更好地考虑试验中未涵盖的设计细节。最后,我们评估了研究结果的影响,概述了与其他影响因素(如企业与法规)相关的问题,并将这些考虑纳入未来工作的方向中。
我们研究的主要研究问题可以表述如下:“在开发支持区块链的智能家居能力时,主要的设计挑战是什么,以及如何应对这些挑战?”为了系统地探讨这一主题,我们在案例研究中应用了设计科学(DS)研究方法(DSRM)[11]。设计科学研究过程(DS process)包括六个主要步骤:问题识别与动机、解决方案目标的定义、设计与开发、演示、评估和交流[11]。为了提高研究的科学影响力,评估阶段补充了如前所述的文献研究。
接下来,我们将总结该用例的DSRM活动:
1) 问题识别与动机 :将非区块链设施和资产与基于区块链的市场相结合可能是一个复杂的设计问题。促进这一集成过程对于形成高效且流动性强的区块链使能市场至关重要,如图1所示。
2) 定义解决方案目标 :目标是设计一个能够与基于区块链的市场或其他智能合约进行交互的智能家居环境。
3) 设计与开发 :实验系统的设计基于智能家居作为区块链客户端的场景。该家居配备一个能源管理系统(HEMS),由网关设备集中控制,该网关设备负责收集来自设备的数据。在读取测量数据后,这些数据将被更新至区块链中的相应表中。区块链中的数据也可被查询,例如用于匹配能源竞价。根据具体案例,客户端可进行买卖能源,或对所生产的能源申请和交易证书。未来,网关设备可能具备人工智能辅助功能,例如在灵活性交易用例中帮助预测下一时间段的能源使用情况。此外,在未来的场景中,单个设备有望能够在区块链中验证数据,甚至在机器生态系统中自主运行[12][13]。
4) 演示 :我们的测试环境位于芬兰技术研究中心(VTT)的场所内。该VTT智能电网环境包含多个可控设备,例如热泵、通风机、照明和地暖。公寓内的设备通过REST API进行控制,使用4G WiFi路由器将控制指令通过MQTT协议转发至设备控制器。在演示设置中,网关设备软件集成了能源Web基金会的软件开发工具包中的功能。这些工具包提供了广泛的开源软件模块,用于连接区块链以及创建和交互实现各种企业业务的智能合约。例如能源属性证书(EAC)的发行与管理。在演示中,通过奇偶校验客户端使用了能源Web伏打测试网络。在简单市场场景中测试了支持资产创建、保存新电表读数以及创建和交易证书与能源的智能合约。
5) 评估 :通过评估架构设计和演示开发过程中识别的设计挑战来进行评估。这项工作总结在第三章。
6) 交流 :与区块链赋能的智能能源相关的研究工作已在Smart Otaniemi能源生态系统项目的不同场合进行了更广泛的介绍,而本文则重点阐述了该研究中专注于设计挑战的部分。
III. 评估
在演示开发和文献研究过程中发现的设计挑战如表I所示。由于许多主题相互重叠,彼此之间存在强烈的影响或依赖性,因此挑战分类并非易事。然而,经过多次迭代后,可以区分出五个主要类别,充分涵盖了相关问题。这些类别也将作为评估讨论的框架。由于本研究的主要目的之一是概述有助于应对这些挑战的解决方案建议或研究方向,我们主要基于科学资源进行了文献综述。然而,区块链是一项快速发展技术,大量开发工作发生在开源社区和区块链公司中。鉴于此,我们也从最新发展或产品中选取了一些实例,以帮助应对设计挑战。通过整合来自科学文献及其他倡议的广泛知识,我们旨在促进区块链系统在智能电网环境中的实际开发,并有助于明确未来研究需求。
文献综述的结果如表II和表III所示,接下来将结合设计挑战类别的介绍进行讨论。
A. 总体架构,DC#1‐DC#5:不同类型的多样性和差异性
在区块链平台上,规模巨大使得架构考虑变得复杂。此外,尤其是在许可区块链中,通常可以配置功能并调整系统参数。例如,Hyperledger Fabric[14]具有高度模块化的架构,可针对不同网络设计和设置的广泛用例进行配置和优化。因此,对延迟、吞吐量、可扩展性和资源消耗等系统性能的估计可能会变得不明确。在应用层面,关于多少计算和存储应放在链上或链外的决策,不仅对性能,而且对安全和系统成本都有重大影响,这直接关系到商业模式的可行性。此外,还存在一些治理方面的问题,例如谁(如果有的话)可以修改区块链或智能合约(SCs)中的设置、共识规则或数据,以及如何解决可能出现的争议。
最后,还应考虑区块链系统和去中心化应用(dApps)的可用性,尤其是在面向用户的应用中。文献中针对整体架构相关的一些设计挑战提出了解决方案建议,如表II所示。目前已有可用于支持架构设计的设计框架、方法和分类法,例如通过将任务分解为更明确且易于理解的部分,提供区块链特定表示法、模式和度量指标,或阐明可集成到区块链中的附加功能。此外,还可找到许多实用的设计原则,以减少资源消耗以及对性能或系统可演化性的阻碍。
B. 安全性和可靠性,DC#6‐设计约束#9
不可篡改性是区块链相较于传统集中式系统的关键区别之一,这意味着在区块链中对数据和软件的修改要复杂得多,甚至不可能实现。因此,确保区块链和智能合约软件正确性的重要性尤为突出,必须高度重视测试与调试。我们的研究(表II)表明,这一点在区块链社区中已得到充分认可,并且已有相应的测试工具和方法可用。然而,区块链系统的复杂性和广泛性也要求进行全面的集成测试,因为即使单个软件模块经过充分测试,也不一定能在更广泛的上下文中正常运行。
另一组设计挑战源于隐私保护,尤其是在长期使用和公有区块链中的隐私保护。在许多情况下,解决方案就是不在区块链中存储任何私有数据。但还可以使用一些更复杂的技术,例如零知识证明和交易混币。此外,在应用层面,可以通过数据聚合来模糊数据来源和细节。在能源领域,智能家居设备和电表是未来能源系统性解决方案的基本组成部分。然而,这些设备通常严重缺乏内存和CPU计算能力,从而严重阻碍了高级安全功能的实现。此外,地址的硬编码以及混乱的密钥管理可能会损害可更新性和整体系统安全。通常,区块链系统的安全高度依赖于去中心化的程度。但在安全评估中应注意,尽管实现了技术上的去中心化,仍可能通过集中式密钥管理、权限控制服务,或在单一Web服务器上运行的去中心化应用而形成单点故障。
C. 平台经济学,DC#10‐DC#11
区块链系统的成本模型与传统系统不同,尤其是在公有区块链中,系统成本主要由计算资源的使用成本,即计算与存储成本主导。因此,在设计阶段评估系统成本是区块链系统的一个重要组成部分,同时也是一项设计挑战。我们发现了一些关于如何评估和降低区块链系统及智能合约成本的考虑因素、框架和实用设计指南,其中一些示例见表III。然而需要注意的是,资源成本只是更广泛的平台经济学概念的一部分。对于区块链而言,平台经济学受到多个新因素的影响,例如系统分发以及创建用于各种目的的代币的可能性,例如代表物理对象或数字化资产的份额。应仔细审查和分析这些系统级差异的影响,以创建可行的区块链赋能的商业模式。
D. 系统集成, 设计挑战#12‐#14
在大多数情况下,区块链作为更大系统的一部分工作,因此与遗留系统或来自区块链之外(例如来自物联网设备)的数据集成会产生特定的设计挑战。主要问题在于如何信任外部数据源,以及如何在系统之间建立链接,以避免产生漏洞或单点故障。如表III所示,有多种方法可以分发由预言机(即数据馈送服务)完成的工作,从而使提供给区块链的数据更加可信。此外,为了缓解实际的系统集成挑战,应重视制定全面的迁移策略,并逐步进行迁移。另一方面,遵循并参与标准化工作可能会部分缓解集成任务和系统设计的难度。在演示开发过程中,发现平衡资源受限的物联网设备的负载是一个重要问题,因为许多与区块链相关的操作对资源消耗较大。已有研究和技术方法将简单的物联网设备集成到基于区块链的应用中,并针对不同行业提出了支持区块链的物联网架构。我们的研究还发现,需要深入考虑区块链与人工智能(AI)如何实现互利的设计。
E. 软件开发, DC#15
最后一个设计挑战类别与区块链软件开发相关,即软件建模、管理以及代码模块化等主题。区块链的特定特性对建模语言、图表和符号表示,以及开发环境提出了新的要求。然而,如表III所示,在许多情况下,如果现有工具和框架能够补充一些额外的区块链/智能合约特性和功能,则仍被视为令人满意。开发可行的区块链用例面临的挑战以及在我们的试点研究以及相关文献参考中均发现,制定和明确相关的软件需求存在挑战。这还涉及到设计区块链系统时更为普遍的能力难题。由于区块链系统融合了复杂的技术性因素(如加密和系统分布)、由平台激励和代币引发的金融因素,以及可变的监管框架(例如影响链上数据收集、资产和合约),我们观察到,即使忽略企业背景,成功设计一个区块链系统也需要具备广泛的能力。由于能源领域是一个受到严格监管的环境,在物理层面和市场层面都具有复杂的安排,因此开发基于区块链的解决方案的设计任务将需要超越传统组织和业务边界的合作。通过本研究,我们试图从文献中寻找切实可行的方法来缓解这一总体设计挑战。总结研究发现,提出了“创建具备明确涵盖金融、法律和技术专长的技能组合的专业人才”以及“增强系统与社区之间协同效应的具体实践”[18]。此外,[29]与此观点一致,指出区块链软件的需求制定和规范需要技术智慧,不应仅由社区讨论或项目所有者来决定。
IV. 讨论
本文在实验设置中研究了为智能家居开发区块链能力的设计挑战。根据文献,这些挑战被识别、分类,并最终回顾了应对这些挑战的可能解决方案。研究结果表明,区块链系统的成熟度、设计实践和开发方法仍然较低,普遍存在缺乏标准、治理模型以及定量性能分析手段的问题。另一方面,学术界和企业正 increasingly 深入地阐述相关解决方案,区块链及其生态系统的发展也十分迅速。所有这些因素,加上区块链的系统性和颠覆性本质,使得制定可普遍应用的全面设计原则变得具有挑战性。用例和平台特定的设计原则可能会首先出现,但要释放最大的跨领域价值创造潜力,应强调通用性和可集成性。尽管本研究中技术挑战尤为突出,但我们认识到,在区块链系统及应用设计中还应考虑监管的影响,尤其是在受到严格监管的能源领域。在企业层面,由于代币化和去中心化金融带来的根本性变革是一个重要的研究课题。作为一个更普遍的研究问题,基于区块链的去中心化商业生态系统的高效且无偏见的治理模型仍有待制定。
| 类别 | 试用期间和文献综述中发现的问题 | 更广泛的设计挑战 |
|---|---|---|
| 整体架构 |
‐ 区块链平台/共识方法的多样性使得架构设计复杂化 考虑因素变得复杂(例如可扩展性、吞吐量、延迟、功耗) 消耗、开发/基础设施成本、数据删除可能性[2]‐[6]
如何在链上和链下划分系统数据和计算 区块链解决方案。 ‐ 基于区块链的系统中有哪些新的角色职责 设置?平台治理?[3][5] 如何提高系统的可用性(例如用户界面、密钥) 管理) |
DC#1 区块链平台的适当选择
DC#2 估算系统性能 DC#3 链上/链下存储与计算的划分 DC#4 评估架构设计对商业模式、治理、权力结构和责任的影响 DC#5 改进系统可用性 |
| 安全性和可靠性 |
‐ 如何高效地评估客户端软件/智能的正确性 智能合约(SC)软件。
‐ 数字身份、权限和密钥的安全解决方案是什么 管理?哪些区块链具有抗量子性[6]? ‐ 如何保证所有利益相关者的隐私。[2][5][6] ‐ 评估影响区块链系统安全性的因素。[2][3][5] |
DC#6 确保智能合约的正确性
DC#7 密钥、身份和权限管理 DC#8 在系统中保持所需的隐私水平 长期且面向所有利益相关者 DC#9 区块链系统安全评估 |
| 平台经济学 (交易成本,代币化) |
‐ 如何评估与智能合约操作相关的成本及其对系统的长期成本模型产生影响。
‐ 代币可以在系统中以哪些创新方式使用 生态系统功能? |
DC#10 评估与降低系统成本
DC#11 实现代币的机遇 |
| 系统集成(物联网,人工智能,..) |
‐ 如何将区块链与遗留系统集成?[5][6]
‐ 如何使用来自区块链外部的数据,需要何种类型的预言机。 ‐ 如何将智能电表或其他基于物联网的设备以安全高效的方式与区块链集成? ‐ 人工智能可以良好利用哪些区块链数据结构?[6] ‐ 人工智能预测能否作为有价值资产使用? |
DC#12 将遗留系统和链下数据与区块链集成
DC#13 物联网设备与区块链的集成 DC#14 人工智能与区块链的集成 |
| 软件开发 |
‐ 区块链软件通常以开源形式提供,但文档有限 文档。
‐ 区块链软件的建模语言不完整。 ‐ 缺乏区块链标准。[3][5] | DC#15 缺乏文档、建模语言和标准阻碍了区块链软件开发 |
表I. 演示开发的设计挑战。
| 类别和相关的设计挑战 | 文献中的解决方案建议/研究方向 |
|---|---|
|
整体架构
DC#1 选择合适的区块链平台 DC#2 估算系统性能 DC#3 链上/链下存储与计算的划分 DC#4 评估架构设计对商业模式的影响,治理,权力结构和责任 DC#5 改进系统可用性 |
• 用于伦理区块链设计的综合框架[15] 和共识机制评估[16]。
• 权益证明或权威证明共识方法可显著降低能源消耗[5],[9],[17]。 • 区块链特定设计符号、宏观架构模式和元模型[18] • 一个决策框架(基于识别信任领域)用于评估应用架构中的哪些元素可能受益来自区块链技术[19]。 • 区块链的与架构相关的特性的分类法,及其对所形成的区块链系统的各种质量属性的影响。 • 可用于在去中心化、配置以及存储等方面的架构决策制定计算[20] • 除了三种基本的区块链类别(公有链、联盟链、私有链)之外,还有大量的协议、分叉和平台(例如 Tendermint、Polkadot、Plasma)可被整合以增加功能,如无缝代币交换或中继通道区块链之间的网络[21] • 使用侧链作为数据存储,区块链仅作为控制层。分片可以提高区块链的性能和可扩展性[5]。 • 在创建区块链系统的度量指标时采用GQM(目标/问题/度量)方法[18]。 • 更严格的结构设计可能会影响性能,因为它可能需要更多的交易[22]。 • 智能合约中的数据比交易中的数据更容易查询[22]。 • 实现应用可演化性需要对区块链的设计进行关键性考虑,因为区块链数据不易于版本控制修改了[23][24]。此外,智能合约的结构设计影响其可更新性以及整个系统的适应性[22]。 • 在加密货币实现主流用户采用之前,需要解决波动性和大规模平台中断的问题。可能发生[25]。 |
|
安全性和可靠性
DC#6 确保智能合约的正确性 DC#7 密钥的安全管理 密钥,身份, and 权限 DC#8 保持所需的隐私水平在长期和所有利益相关者 DC#9 安全评估 区块链系统 |
• 智能合约和交易的测试套件[18][26]
• 人工智能可用于检测智能合约软件错误[27]。 • 在 Azure[28] 中为智能合约提出的形式化规范与验证方法。 • 智能合约应在每次合约函数调用时检查权限[22]。 • 减轻对智能合约攻击影响的最佳实践[26]。 • 应为设备生命周期内的密钥和协议管理创建流程[17]。 • 中心化的链下权限控制模块可能成为单点故障[22]。 • 零知识证明和交易混币作为保护匿名性的潜在技术[20], ,还包括几种量子可获得具有弹性的方法[6]。 • 可以使用“代理”设计模式在允许区块链中信息交换的同时,最大限度地保护隐私[23]。 • 通过聚合[24] 实现能源数据的匿名化。 • 为了测试安全,常见的做法包括代码审查、压力测试和单元测试,以及使用测试网络和交易。测试中的生成器或报告漏洞的漏洞赏金[29] • 智能电表基础设施的安全可通过安全加密代码、网络分段和网络监控来实现[17]以及在CPU级别直接进行加密[27]。 • 应特别注意进行广泛的集成测试[29]。 • 在去中心化应用的设计中,针对智能合约的数据和交互采用形式化方法有助于满足安全要求[10]。 • 去中心化应用通常不像区块链架构[21] 那样具有分布式特性,因此 special应关注其安全问题。 • 各种设计选择(关于权限、验证、链上/链下存储与计算、共识协议)部署等因素对系统安全有直接影响,用于评估这些因素的方法在[20]中给出。 |
表II. 研究与整体架构、安全性和可靠性相关的文献中发现的研究方向
| 类别和相关设计挑战 | 文献中找到的解决方案建议/研究方向 |
|---|---|
|
平台经济学 (交易成本,代币化)
DC#10 评估与降低系统成本 DC#11 实现代币的机遇 |
• 设计选择对区块链系统成本效益的影响[20],[22]。
• 用于最小化链上数据存储及后续成本的软件模式[23]。 • 理解平台经济学的重要性:定价策略、网络效应、边界资源补充开发工作、不同加密货币的归巢成本等[25]。 • 将现有的智能计量和电网基础设施与区块链集成可能成本高昂,因为智能电表缺乏计算能力[5] • 优化智能合约资源和成本的实用指南[30]。 • 通过将多个数据点压缩成一个,可以优化区块链中的数据量(以及相应的交易成本)区块链中的单个数字[24]。 • 交易成本不断变化,因此需要选择_gas价格策略[24]。 • 非同质化代币有助于实现物联网设备的唯一性[17]。 • 资产与代币之间的防篡改链接是进一步用例的前提条件[27]。 • 代币设计的决策辅助[31]。 |
|
系统集成(物联网、人工智能、..)
DC#12 两者的集成 遗留系统和链下数据与区块链的集成 DC#13 物联网设备与区块链的集成设备与区块链的集成 DC#14 人工智能与BC |
• 应逐步进行与遗留系统的集成,首先将区块链作为备份[32]。
• 切实可行的迁移策略应防止网络流量崩溃[21]。 • 参与标准化工作将有助于最小化转换成本[21]。 • 一个核心集成挑战是如何将先前交易导入区块链系统[32]。 • 通过使用多个分布式、基于共识的预言机,或为它们建立激励机制,可以提高预言机的可靠性[27]。 • 为降低由外部事件引发的智能合约死锁风险,协议可借助押金或托管方[27]。 • 物联网与区块链相结合,能够实现信任、存储耐久性和信息不可否认性[33]。 • 简单的物联网设备应将部分信息和操作委托给更强大的设备以利用区块链技术[33]。 • 基于区块链的混合式(划分为集式和分布式网络)示例面向物联网赋能的智慧城市[34]以及工业物联网的架构在[33]。 • 基于区块链的需求响应架构提案[9],[35] • 人工智能技术可用于构建一种智能预言机服务,该服务不受任何一方控制,而是通过学习来运行外部并自我训练[2]。 • 准确的(人工智能)预测是经济型消费者参与基于区块链的本地能源市场的先决条件[36]。 |
|
软件开发
DC#15 缺乏文档,建模语言和标准阻碍BC软件开发 |
• 用于概念化分布式账本技术系统的详细且分析性的框架[37]。
• 用于表示的区块链专用图形模型/改进的UML图[10],[18],[38]。 • 业务流程模型和符号表示法(BPMN)在对区块链企业业务流程建模方面表现相对良好[38]。 • 智能合约开发环境(SCDEs)和模拟对象能够模拟区块链[18]。 • 已有研究展示并证实了熟悉的软件模式(抽象工厂、享元、代理和发布者‐订阅者)[39]在区块链应用设计中的有效性,发现这些模式在实现去中心化应用与智能合约之间的弱耦合以及最小化链上数据方面具有实用价值在合约数据之间进行存储和冗余,同时以可扩展的方式保护隐私和过滤信息[23]。 • 针对区块链软件的功能、可扩展性和安全测试特性提供支持的质量工具[29] • 敏捷方法在很多方面都非常适合去中心化应用开发[10]。 • 所提出的敏捷区块链软件开发过程[10]为智能合约和外部系统分别设置了独立的活动开发 |
表III. 文献中关于平台经济学、系统集成和软件开发的研究方向
13

被折叠的 条评论
为什么被折叠?



