天天看點

利用以太坊管理物聯網裝置 - 論文及源代碼

本文介紹一個利用以太坊區塊鍊管理物聯網IoT裝置的身份識别、驗證和聲譽的IoT裝置管理系統。該系統使用Web界面在以太坊智能合約中注冊物聯網裝置,并通過密碼學簽名消息驗證Iot裝置對平台的

使用權。

以太坊教程連結: Dapp入門 | 電商Dapp實戰 ERC721實戰 Php對接 Java對接 Python對接 C#對接 Dart對接

1、區塊鍊物聯網裝置管理系統的基本概念

__物聯網/IoT裝置的辨別__:通過默克爾樹(Merkle Tree)的利用,無需暴露裝置的私有屬性即可完成IoT裝置的注冊。使用公鑰(或其衍生表示)作為IoT裝置的辨別ID。

利用以太坊管理物聯網裝置 - 論文及源代碼

__物聯網/IoT裝置的消息簽名與驗證__:系統中的每個消息都需要由發送端的IoT裝置簽名,并在接收端的IoT裝置處進行驗證。

發送端IoT裝置的消息簽名生成:

利用以太坊管理物聯網裝置 - 論文及源代碼

接收端IoT裝置的消息簽名驗證:

利用以太坊管理物聯網裝置 - 論文及源代碼

__物聯網/IoT裝置的固件指紋__:通過儲存IoT裝置的固件哈希,可以驗證裝置所運作的固件是否被非法篡改。

__物聯網/IoT裝置的信譽機制__:基于Web的信任原理,裝置可以形成一個信任網絡。一個IoT裝置從其他

有信譽的裝置得到越多的簽名,該裝置就越可信。

2、區塊鍊物聯網裝置管理系統的整體說明

系統主要組成部分包括:實體、裝置和IoT平台:

利用以太坊管理物聯網裝置 - 論文及源代碼

系統開發基于以下技術棧:

  • Ethereum
  • Solidity
  • Truffle Framework
  • Web3.js
  • React

項目主要目錄内容說明如下:

  • contracts - Solidity智能合約
  • frontend - Web前端,基于React開發
  • simulations - IoT裝置和平台仿真

系統中IoT裝置的配置檔案示例如下:

{
    "identifier": "0xf34d4c8f79657f1086f55b817837439c303dff19",
    "metadataHash": "43af4ba721cd8c9ba432ed6aca9adb96d16f82c25ba76...",
    "firmwareHash": "b01d2af9ea9dd59dd9c8af3f1639da03c79b7ed28adaa...",
    "metadata": [
        "Olive grove",
        "45.0270,14.61685",
        "Espressif Systems",
        "00:0a:95:9d:68:16"
    ],
    "firmware": "333f14cdb0a8520199257479ba126a10bca96b229b7924085...",
    "address": "0xf34d4c8f79657f1086f55b817837439c303dff19",
    "publicKey": "d627bbb0a7c150f814a1960ebe69f0d8b4494e1033d9e72...",
    "privateKey": "48a2e48b2d178e7d1f1508f2964a89079f1f8a301ebb85a...",
    "curve": "secp256k1",
    "deviceId": 0
}           

3、區塊鍊物聯網裝置管理系統的主要使用者界面

網絡狀态界面:

利用以太坊管理物聯網裝置 - 論文及源代碼

實體曆史記錄界面:

利用以太坊管理物聯網裝置 - 論文及源代碼

IoT裝置ID管理界面:

利用以太坊管理物聯網裝置 - 論文及源代碼

中繼資料管理界面:

利用以太坊管理物聯網裝置 - 論文及源代碼

IoT裝置固件資訊維護界面:

利用以太坊管理物聯網裝置 - 論文及源代碼

IoT裝置維護确認界面:

利用以太坊管理物聯網裝置 - 論文及源代碼

配置下載下傳界面:

利用以太坊管理物聯網裝置 - 論文及源代碼

IoT裝置清單界面:

利用以太坊管理物聯網裝置 - 論文及源代碼

IoT裝置ID維護界面:

利用以太坊管理物聯網裝置 - 論文及源代碼

IoT裝置曆史資料檢視界面:

利用以太坊管理物聯網裝置 - 論文及源代碼

原文連結:

基于以太坊區塊鍊的物聯網/IoT裝置管理 — 彙智網