区块链技术在IoT领域的应用综述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Imkiimki/article/details/83514908

IoT发展

据预测,到2020年物联网设备数量将达到26 billions, M2M的连接将会增长到3.3 billions, 涉及广泛的应用领域。目前,大多数IoT的解决方案依赖于中性化的C-S结构,接入云端。过去数年,IoT从封闭的中心化大型机架构演进到开放式的云中心化结构,而下一步趋势,是将云功能分布到多重节点中。下图展示了IoT架构的进化方向。

 

Blockchain对于IoT的意义

Blockchain技术最初是用于在没有可信第三方的参与下,防止double-spend的金融问题。经过发展,现在的区块链技术具有图灵完备性,可运行智能合约,与物联网系统某些方面天然地契合,例如在多实体的IoT系统中,可以使用加密货币回避设备实体之间互相信任的必要。基于区块链技术,可以在大规模IoT系统中解决以下挑战:

  1. 成本。很多解决方案由于需要部署和维护中心云、服务器机房,因此花费昂贵,供应商不提供服务器,则成本转嫁到中间商。
  2. 升级维护问题。对成百上千万的智能设备升级软件将是一个挑战。
  3. 安全问题。斯诺登事件之后,IoT集成商难以信任其他的科技合伙公司,用户数据可能被用于收集和分析。因此在未来,隐私和安全将是物联网解决方案的核心考虑。
  4. 闭源的代码造成信任缺失。透明性有助于增加可信度和安全性。因为代码受大众的审视,很容易最早发现漏洞并修补。

区块链技术的分类

按照Public (permissionless) / Private (permissioned), Tocken-Based /  Tocken-Agnostic, 可以将区块链分为4个象限。除了第三象限(公开、无代币)的类型,每一类又可以分为基于逻辑(智能合约)和基于交易Transaction的区块链。最有名的Bitcoin和Ethereum位于第二象限,而Fabric位于第四象限。

 

是否在IoT中使用BC的评估:

区块链技术并不是普适的,也并不是每个物联网应用必需的。很多情况下,使用传统的数据库,或者有向无环图账本(DAG)就可以满足需求(IOTA,https://www.iota.org/)。仅当一个IoT应用同时具有以下属性时,区块链技术才适用:

  1. Decentralized. 物联网应用需要去中心化,没有可信的中心化系统。当系统中的用户仍旧愿意将信任寄托于某个公司,银行,或者政府机构时,区块链就不是必需的。
  2. P2P exchanges. IoT设备之间存在对等的通信,而不是使用服务器-客户端模型进行通信。否则BC也不适用。
  3. Payment system. 物联网系统中存在金融交易。并且如果实体信任银行或者中间人,金融交易依旧可以使用传统的第三方支付完成。
  4. Public sequential transaction logging. 很多IoT网络收集数据,打上时间戳之后要求序列存储数据。如果具有安全保证,或者鲜有攻击,依旧可以使用传统数据库实现。
  5. Robust distributed system. 分布式系统不应当作为采用区块链技术的一个充分理由,因为分布式系统同样可以在云计算之上构建,除非这个分布式系统的管理实体缺乏可信性。
  6. Micro–transaction collection. 某些物联网应用中,出于审计需要或者日后的大数据分析,需要将每条交易信息都记录下来,这时候可以使用侧链。当某些情况下,通信代价较高时,可以将一段时间内的交易存储在本地,再一次性上传。

以下流程图描述了是否使用区块链技术的评估过程。

 

物联网应用举例

溯源。利用RFID标签做有机食品的追踪,生物制药过程的监控。

支付。机器间资源使用的小额支付(以电缆传输数据为例)。

IoT安全。Trust Computer Base可信性的远程验证。

 

架构形式

  1. 云计算、fog、edge.

  1. IBM ADEPT 是一个强调机器自动验证、自我维护的平台。【S. Panikkar, S. Nair, P. Brody, and V. Pureswaran, ‘‘ADEPT: An IoT practitioner perspective,’’ IBM Inst. Bus. Value, New York, NY, USA, White Paper, 2015, pp. 1–18.】
  2. 该论文中描述了Fog computing和Cloud与Blockchain相结合的架构,并在Intel Edison 单板电脑上用golang进行了验证。【M. Samaniego and R. Deters, ‘‘Blockchain as a service for IoT,’’ in Proc. IEEE Int. Conf. Internet Things (iThings), IEEE Green Comput. Commun. (GreenCom), IEEE Cyber, Phys. Social Comput. (CPSCom), IEEE Smart Data (SmartData), Chengdu, China, Dec. 2016, pp. 433–436.】
  3. 利用K8S/docker构建的边缘计算架构。由两层组成,基于Hyperledger Fabric. 【A. Stanciu, ‘‘Blockchain based distributed control system for edge computing,’’ in Proc. 21st Int. Conf. Control Syst. Comput. Sci., Bucharest, Romania, May 2017, pp. 667–671.】
  4. SDN + Fog + Blockchain. 该文章中提出了利用SDN控制雾节点的系统。云用于处理计算密集的任务,而fog node与Blockchain协作,处理延时敏感的任务,并可以实时监测网络攻击。P. K. Sharma, M.-Y. Chen, and J.-H. Park, ‘‘A software defined fog node based distributed blockchain cloud architecture for IoT,’’ IEEE Access, vol. 6, pp. 115–124, Sep. 2017.

 

共识机制

比特币采用的是PoW共识机制,粗暴地通过算力证明解决了女巫攻击(Sybil attacks).

其他的一些共识算法包括:

  1. PoS (Proof-of-Stake). 基本想象是认为参与度最高的实体具有更小的攻击可能。而“参与度”的一种评价方法就是持有货币的数量。该算法可以降低为了达成共识而白白消耗的计算力,但缺陷在于,最富有的节点似乎可以掌控整个网络。因此对简单PoS有一些改进,例如把持有货币的年龄考虑到参与度的衡量中。
  2. DPoS(Delegated Proof of Stake). 是对PoS的改进,选举出部分节点最为授权节点,参与区块的生成和验证。这使得同时参与共识的节点数量更少,提高了性能。
  3. TaPos (Transactions as  Proof-of-Stake). 也是一种PoS的变种,所有发生了交易的节点会参与到区块的生成过程。【D. Larimer. Transactions as Proof-of-Stake. Accessed ,https://bravenewcoin.com/assets/Uploads/ TransactionsAsProofOfStake10.pdf】
  4. PoA (Proof-of-Activity ). PoS只考虑持有货币的年龄,即使节点离线,年龄依旧会增长。在PoA中,同时考虑节点的活动Activity和货币持有Ownership.
  5. PBFT. 在异步环境中解决拜占庭将军问题(通信可信,节点不可信). 前提是小于1/3的敌对节点。
  6. Ripple consensus algorithm. 共识判定时在几个可信的节点中使用同步的通信方式,因而可以减少延迟。【D. Schwartz, N. Youngs, and A. Britto, ``The ripple protocol consensus      algorithm,'' Ripple Labs, San Francisco, CA, USA, White Paper, 2014】
  7. SCP(Stellar Consensus Protocol). 类似于PBFT的思想,但使用了联邦拜占庭协议(Federated Byzantine Agreement),不用等待所有将军的同意。【D. Mazieres. The Stellar Consensus Protocol: A Federated Model forInternet-Level Consensus. Accessed: Apr. 10, 2018. [Online]. Available:https://www.stellar.org/papers/stellar-consensus-protocol.pdf】
  8. Sieve. IBM提出, Hyperledger-Fabric中 采用的共识机制。
  9. PoB (Proof-of-Burn). 矿工需要燃烧一些加密货币以表挖矿的决心,背后的思想是,用燃烧货币代替POW中的燃烧计算力,因为货币和算力一样都需要代价。
  10. PoP (Proof-of-Personhood). 使用环签名和集体签名(ring signatures and collective signing),绑定虚拟身份和物理身份。【M. Borge, E. Kokoris-Kogias, P. Jovanovic, L. Gasser, N. Gailly, andB. Ford, ``Proof-of-personhood: Redemocratizing permissionless cryptocurrencies,'' 】

Ref:

[T. M. Fernández-Caramés and P. Fraga-Lamas, “A Review on the Use of Blockchain for the Internet of Things,” IEEE Access, vol. 6, pp. 32979–33001, 2018.]

猜你喜欢

转载自blog.csdn.net/Imkiimki/article/details/83514908