Más contenido relacionado
La actualidad más candente (20)
Similar a IoT×Blockchain活用事例 ~トイレに学ぶHyperledger Fabricシステム開発の勘所~ (20)
Más de Hyperleger Tokyo Meetup (20)
IoT×Blockchain活用事例 ~トイレに学ぶHyperledger Fabricシステム開発の勘所~
- 1. © Hitachi, Ltd. 2019. All rights reserved.
Hyperledger Tokyo Meetup
株式会社 日立製作所 サービスプラットフォーム事業本部
Blockchain推進部
2019/06/27
梅田 多一
IoT×Blockchain活用事例
~トイレに学ぶHyperledger Fabricシステム開発の勘所~
- 2. © Hitachi, Ltd. 2019. All rights reserved.
1. Why Blockchain ?
2. システム構成と処理方式
3. システム開発の勘所
Contents
1
- 4. © Hitachi, Ltd. 2019. All rights reserved.
トイレにブロックチェーンを適用する3つの理由
(1)基本的な価値
取引の否認&なりすまし防止、取引記録の
本人/組織/他による改ざん&削除防止
分散した組織間で取引を同じ内容同じ順番
に実行できる。リコンサイル不要化
(2)期待される価値
契約をプログラムとして記述が可能
契約条件に基づく取引の自動化 (DAO/DAC:Decentralized Autonomous Organization / Company)
署名/取引記録技術による価値
2 取引の信頼性担保
3 取引の自動化
1 取引の透明性担保
P2P/分散合意技術による価値
スマートコントラクトによる価値
3
- 5. © Hitachi, Ltd. 2019. All rights reserved.
①透明性(取引の透明性担保)
オレが〇〇〇したいとき
いつも空いてないんだよ
(怒)
トイレの見える化
4
Hyperledger Governing Board
日立 金融 長稔也本部長
- 6. © Hitachi, Ltd. 2019. All rights reserved.
③ブロック
(Orderer)
の署名
①トイレ
(toilet1)
の署名
②各サーバ
(org1, org2)
の署名
ブロック情報
限界の人にとって改ざんは絶望
②改ざん耐性(取引の信頼性担保)
5
- 7. © Hitachi, Ltd. 2019. All rights reserved.
IoT→BC→AI→IoTの連携で業務はもっと効率化できる
①AIによるさぼり検知
②スマートロックでドアオープン
②’赤外線操作でウォシュレット発射
※実際には実行していません
40分
③スマートコントラクト(取引の自動化)
6
- 8. © Hitachi, Ltd. 2019. All rights reserved.
ブロック情報
トイレにブロックチェーンを適用するXXXの理由
7
- 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. © 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. © 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. © 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. © 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
- 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. © 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. © 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. © 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. © 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. © 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. © Hitachi, Ltd. 2019. All rights reserved.
さいごに
• 音速
カンオケ
この地球号に乗って
誰もが向かっている場所?
• 宇宙船地球号
340m/s×60s×60m≒1225km/h
4万77km÷24h≒1670km/h
21
- 23. © Hitachi, Ltd. 2019. All rights reserved.
IoT×Blockchainで一歩前へ
電光掲示板
超音波
距離センサ
22
- 24. © Hitachi, Ltd. 2019. All rights reserved.
他社商品名、商標等の引用に関する表示
23
HITACHIは、株式会社 日立製作所の商標または登録商標です。
Hyperledger 及びHyperledger Fabric はThe Linux Foundationの米国およびその他の国における登録商標です。
Raspberry PiはRaspberry Pi財団の登録商標です。
その他記載の会社名、製品名などは、それぞれの会社の商標もしくは登録商標です。
- 25. © Hitachi, Ltd. 2019. All rights reserved.
株式会社 日立製作所 サービスプラットフォーム事業本部
Blockchain推進部
~トイレに学ぶHyperledger Fabricシステム開発の勘所~
IoT×Blockchain活用事例
2019/06/27
梅田 多一
END
24