Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

IoT×Blockchain活用事例 ~トイレに学ぶHyperledger Fabricシステム開発の勘所~

411 views

Published on

「IoT×Blockchain活用事例 ~トイレに学ぶHyperledger Fabricシステム開発の勘所~」
講演者:株式会社日立製作所 梅田 多一 氏
6月27日開催 Hyperledger Tokyo Meetup にて講演

Published in: Technology
  • Be the first to comment

  • Be the first to like this

IoT×Blockchain活用事例 ~トイレに学ぶHyperledger Fabricシステム開発の勘所~

  1. 1. © Hitachi, Ltd. 2019. All rights reserved. Hyperledger Tokyo Meetup 株式会社 日立製作所 サービスプラットフォーム事業本部 Blockchain推進部 2019/06/27 梅田 多一 IoT×Blockchain活用事例 ~トイレに学ぶHyperledger Fabricシステム開発の勘所~
  2. 2. © Hitachi, Ltd. 2019. All rights reserved. 1. Why Blockchain ? 2. システム構成と処理方式 3. システム開発の勘所 Contents 1
  3. 3. © Hitachi, Ltd. 2019. All rights reserved. 1. Why Blockchain ? 2
  4. 4. © Hitachi, Ltd. 2019. All rights reserved. トイレにブロックチェーンを適用する3つの理由 (1)基本的な価値 取引の否認&なりすまし防止、取引記録の 本人/組織/他による改ざん&削除防止 分散した組織間で取引を同じ内容同じ順番 に実行できる。リコンサイル不要化 (2)期待される価値 契約をプログラムとして記述が可能 契約条件に基づく取引の自動化 (DAO/DAC:Decentralized Autonomous Organization / Company) 署名/取引記録技術による価値 2 取引の信頼性担保 3 取引の自動化 1 取引の透明性担保 P2P/分散合意技術による価値 スマートコントラクトによる価値 3
  5. 5. © Hitachi, Ltd. 2019. All rights reserved. ①透明性(取引の透明性担保) オレが〇〇〇したいとき いつも空いてないんだよ (怒) トイレの見える化 4 Hyperledger Governing Board 日立 金融 長稔也本部長
  6. 6. © Hitachi, Ltd. 2019. All rights reserved. ③ブロック (Orderer) の署名 ①トイレ (toilet1) の署名 ②各サーバ (org1, org2) の署名 ブロック情報 限界の人にとって改ざんは絶望 ②改ざん耐性(取引の信頼性担保) 5
  7. 7. © Hitachi, Ltd. 2019. All rights reserved. IoT→BC→AI→IoTの連携で業務はもっと効率化できる ①AIによるさぼり検知 ②スマートロックでドアオープン ②’赤外線操作でウォシュレット発射 ※実際には実行していません 40分 ③スマートコントラクト(取引の自動化) 6
  8. 8. © Hitachi, Ltd. 2019. All rights reserved. ブロック情報 トイレにブロックチェーンを適用するXXXの理由 7
  9. 9. © Hitachi, Ltd. 2019. All rights reserved. 2. システム構成と処理方式 8
  10. 10. © Hitachi, Ltd. 2019. All rights reserved. システム構成 Orderer ブロックチェーンネットワーク Peer0 Node SDK Chaincode ブラウザ Hyperledger Fabricのサンプルとして提供されている balance-transferを使ってブロックチェーンネットワークを構成 5F北東(5EN)トイレ センサ情報 Peer1 Chaincode Node SDK 5F南東(5ES)トイレ Node SDK Node SDK Peer1 Chaincode Peer0 Chaincode Org1 Org2 Node SDK REST Server 5F北西(5WN)トイレ 5F南西(5WS)トイレ センサ情報センサ情報 センサ情報 Endorsement Policy: 両方の組織(Org1&Org2)の署名が必要 9
  11. 11. © Hitachi, Ltd. 2019. All rights reserved. トイレ側の処理方式 Raspberry Pi Node.js Fabric Node SDK updateAll({ “5WS1”:0, “5WS2”:1, “5WS3”:1, “5WS4”:0 }) センサ情報を毎秒送信 5WS?: 5F南西トイレのベンザID 0/1: 空室/使用中 clearCount(“5WS”) トイレ掃除後に送信 10 出典:RSコンポーネンツ販売サイト
  12. 12. © Hitachi, Ltd. 2019. All rights reserved. 回路/制御プログラム メス 510Ω 1kΩ 510Ω EchoTriger ・Trigerを10μ秒HIGHにすると距離測定開始 ・距離測定中はEchoがHIGH ・距離=(EchoがHIGHの時間×340m/s)÷2 11 出典:www.pi4j.com 出典:RSコンポーネンツ販売サイト 出典:www.amazon.co.jp 出典:www.amazon.co.jp
  13. 13. © Hitachi, Ltd. 2019. All rights reserved. サーバ側の処理方式(センサ情報) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":0,"count":10} 5WS4 {"status":1,"count":10} updateAll({ “5WS1”:0, “5WS2”:1, “5WS3”:1, “5WS4”:0 }) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":1,"count":11} 5WS4 {"status":0,"count":10} 5WS?: 5F南西トイレのベンザID status 0/1: 空室/使用中 read set write set センサ情報を毎秒送信 12
  14. 14. © Hitachi, Ltd. 2019. All rights reserved. サーバ側の処理方式(トイレ掃除) clearCount(“5WS”) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":0,"count":10} 5WS4 {"status":1,"count":10} Key Value 5WS1 {"status":0,"count":0} 5WS2 {"status":1,"count":0} 5WS3 {"status":0,"count":0} 5WS4 {"status":1,"count":0} 5WS?: 5F南西トイレのベンザID status 0/1: 空室/使用中 read set write set トイレ掃除後に送信 13
  15. 15. © Hitachi, Ltd. 2019. All rights reserved. 3. システム開発の勘所 14
  16. 16. © Hitachi, Ltd. 2019. All rights reserved. IoTによる大量更新 Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":0,"count":10} 5WS4 {"status":1,"count":10} updateAll({ “5WS1”:0, “5WS2”:1, “5WS3”:1, “5WS4”:0 }) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":1,"count":11} 5WS4 {"status":0,"count":10} read set write set センサ情報を毎秒送信 updateAll({ “5WS1”:0, “5WS2”:1, “5WS3”:1, “5WS4”:0 }) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":1,”count”:11} 5WS4 {"status":0,"count":10} read set トイレ側 サーバ側 Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":1,”count”:11} 5WS4 {"status":0,"count":10} write set なし updateAll({ “5WS1”:0, “5WS2”:1, “5WS3”:1, “5WS4”:0 }) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":1,”count”:11} 5WS4 {"status":0,"count":10} read set Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":1,”count”:11} 5WS4 {"status":0,"count":10} write set なし 15
  17. 17. © Hitachi, Ltd. 2019. All rights reserved. IoTによる大量更新 Peer1 Chaincode Orderer Node SDK Peer1 Chaincode 5F南西(5WS)トイレ センサ情報 Org1 Org2 センサ情報 read write set + Endorsement read write set + Endorsement ①シミュレーション ②read write set生成 ③Endorse トランザクション(read write set + Endorsement) ブロック (トランザクション群) 生成ブロック ①トランザクションのEndorsement検証 ②MVCC(Multi version Concurrency Control) ③commit ①シミュレーション ②read write set生成 ③Endorse ブロック 16
  18. 18. © Hitachi, Ltd. 2019. All rights reserved. IoTによる大量更新 Peer1 Chaincode Orderer Node SDK Peer1 Chaincode 5F南西(5WS)トイレ センサ情報 Org1 Org2 センサ情報 read write set + Endorsement read write set + Endorsement ①シミュレーション ②read write set生成 ③Endorse トランザクション(read write set + Endorsement) ブロック (トランザクション群) 生成ブロック ①トランザクションのEndorsement検証 ②MVCC(Multi version Concurrency Control) ③commit ①シミュレーション ②read write set生成 ③Endorse ブロック 更新がなければ(write setがなければ) トランザクションを発行しないことで 余計なブロックの生成を抑える 17
  19. 19. © Hitachi, Ltd. 2019. All rights reserved. 同一Keyの同時更新 Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":0,"count":10} 5WS4 {"status":1,"count":10} updateAll({ “5WS1”:0, “5WS2”:1, “5WS3”:1, “5WS4”:0 }) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":1,"count":11} 5WS4 {"status":0,"count":10} read set write set センサ情報を毎秒送信 トイレ側 サーバ側 clearCount(“5WS”) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":0,"count":10} 5WS4 {"status":1,"count":10} Key Value 5WS1 {"status":0,"count":0} 5WS2 {"status":1,"count":0} 5WS3 {"status":0,"count":0} 5WS4 {"status":1,"count":0} トイレ掃除後に送信 read set write set version 100 version 101 version 100 version 101 MVCCで失敗してもセンサ情報はすぐ届く MVCCで失敗したらリトライが必要 18
  20. 20. © Hitachi, Ltd. 2019. All rights reserved. 同一Keyの同時更新 clearCount(“5WS”) Key Value 5WS1 {"status":0,"count":10} 5WS2 {"status":1,"count":10} 5WS3 {"status":0,"count":10} 5WS4 {"status":1,"count":10} トイレ掃除後に送信 Key Value 5WS1Count {"count":10} 5WS2Count {"count":10} 5WS3Count {"count":10} 5WS4Count {"count":10} Key Value 5WS1 {"status":0} 5WS2 {"status":1} 5WS3 {"status":0} 5WS4 {"status":1} Key Value 5WS1Count {"count":0} 5WS2Count {"count":0} 5WS3Count {"count":0} 5WS4Count {"count":0} Key Value 5WS1 {"status":0} 5WS2 {"status":1} 5WS3 {"status":0} 5WS4 {"status":1} write set read set なし MVCCで失敗しない countを独立したキーとして分離 19
  21. 21. © Hitachi, Ltd. 2019. All rights reserved. 秘密鍵はどこへ消えた? Orderer ブロックチェーンネットワーク Peer0 Chaincode Peer1 Chaincode Peer1 Chaincode Peer0 Chaincode Org1 Org2 Node SDK REST Server balance-transferはNode SDK REST Serverを提供していて便利 /tmpのクリーンアップによって 秘密鍵が削除されるのでご注意ください。 20
  22. 22. © Hitachi, Ltd. 2019. All rights reserved. さいごに • 音速 カンオケ この地球号に乗って 誰もが向かっている場所? • 宇宙船地球号 340m/s×60s×60m≒1225km/h 4万77km÷24h≒1670km/h 21
  23. 23. © Hitachi, Ltd. 2019. All rights reserved. IoT×Blockchainで一歩前へ 電光掲示板 超音波 距離センサ 22
  24. 24. © Hitachi, Ltd. 2019. All rights reserved. 他社商品名、商標等の引用に関する表示 23 HITACHIは、株式会社 日立製作所の商標または登録商標です。 Hyperledger 及びHyperledger Fabric はThe Linux Foundationの米国およびその他の国における登録商標です。 Raspberry PiはRaspberry Pi財団の登録商標です。 その他記載の会社名、製品名などは、それぞれの会社の商標もしくは登録商標です。
  25. 25. © Hitachi, Ltd. 2019. All rights reserved. 株式会社 日立製作所 サービスプラットフォーム事業本部 Blockchain推進部 ~トイレに学ぶHyperledger Fabricシステム開発の勘所~ IoT×Blockchain活用事例 2019/06/27 梅田 多一 END 24

×