SlideShare a Scribd company logo
1 of 27
Download to read offline
© Hitachi,Ltd. 2019.All rights reserved.
Post-quantum zk-SNARKs on Hyperledger Fabric
株式会社日立製作所
社会システム研究部
長沼健
© Hitachi,Ltd. 2019. All rights reserved. 2
目次
• ゼロ知識証明とは?
• ブロックチェーンでどうやってゼロ知識証明を使うのか?
• セキュアスマートコントラクト
• Hyperledger Fabricでの実装アーキテクチャ
• 評価実験
• まとめ
© Hitachi,Ltd. 2019. All rights reserved. 3
目次
• ゼロ知識証明とは?
• ブロックチェーンでどうやってゼロ知識証明を使うのか?
• セキュアスマートコントラクト
• Hyperledger Fabricでの実装アーキテクチャ
• 評価実験
• まとめ
© Hitachi,Ltd. 2019. All rights reserved. 4
ゼロ知識証明とは?
ゼロ知識証明(zero-knowledge proof)とは、証明者(Prover)が検証者(Verifier)に、
自分の持っている命題が真であることを伝えるのに、真であること以外、
何の知識も伝えることなく証明できるような対話(非対話)知識証明プロトコルである。
by Wikipedia
Alice (Prover)は命題Pが真(True)である事を誰かに証明したい
命題P:
私は二十歳以上だ
命題P:
私はある暗号の秘密鍵
を知っている
© Hitachi,Ltd. 2019. All rights reserved. 5
ゼロ知識証明とは?
Alice (Prover)は命題Pが真(True)である事をBob(Verifier)にゼロ知識証明したい
命題P:
私は二十歳以上だ
命題Pの証明(真である証拠)出せ
運転免許証提示
運転免許証提示でAlice (Prover)は命題Pが真(True)である事をBobに証明
できるがゼロ知識ではない。生年月日から年齢などが漏れている。
どんなものがゼロ知識証明と言えるのか?
Alice Bob
© Hitachi,Ltd. 2019. All rights reserved. 6
ゼロ知識証明とは?
Alice (Prover)は命題Pが真(True)である事をBob(Verifier)にゼロ知識証明したい
Enc(pk, r)
乱数[r]を生成
Bob(Verifier)は自分で生成した乱数[r]を貰うだけなので、
対話終了後に秘密鍵に関する知識をゲットしていない⇒ゼロ知識っぽい
命題P:
私は公開鍵[pk]に対する
秘密鍵を知っている
r
秘密鍵を知っているのでEnc(pk, r)
を復号して平文[r]を計算可能
※当然、AliceがBobに秘密鍵を渡せばPが真である事は
証明できるが、ゼロ知識でない(Bobは秘密鍵に関する情報を得ているので)。
© Hitachi,Ltd. 2019. All rights reserved. 7
目次
• ゼロ知識証明とは?
• ブロックチェーンでどうやってゼロ知識証明を使うのか?
• セキュアスマートコントラクト
• Hyperledger Fabricでの実装アーキテクチャ
• 評価実験
• まとめ
© Hitachi,Ltd. 2019. All rights reserved. 8
プラバシー vs 透明性
Blockchain data
Tx Data
ID:101のbitcoinは
Aliceが持っています
Tx Data
ID:100のbitcoinは
Tomが持っています
Tx Data
ID:101のbitcoinは
AliceからBobに送金
されました
Aliceの署名
Tx Data
ID:101のbitcoinは
BobからTomに送金さ
れました
Bobの署名
参照可能 参照可能 参照可能
透明性 プライバシ
Public Blockchainの台帳データはネットワーク上の誰でも参照可能
⇒透明性maxでプライバシーなし
トランザクションデータを暗号化(or hash化)したら、プライバシーは保たれるが、
マイナーがトランザクションの正当性を確認不能になる
© Hitachi,Ltd. 2019. All rights reserved. 9
もしトランザクションが暗号化されていると・・・
プライバシ保護のためUTXOで送金額が暗号化されたとすると・・・
[inputの金額の合計]=[outputの金額の合計] (手数料は0とする)
また、送金額は0以上の値
BCネットワーク
TX data
[input]
100coin
from: Tom
to: Alice
[output]
Enc(80coin)
from: Alice
to: Bob
[output]
Enc(50coin)
from: Alice
to: Alice
悪いAlice
Aliceは100coin分のunspent transactionのうち80をBobに送金、20をAliceに送金(おつ
り)するが、送金額が暗号化されている事をいいことに、おつりを50に不正に変更。
マイナーは復号化鍵をもっていないので金額不正に気付かない!
Miner or
Endorser
Miner or
Endorser
© Hitachi,Ltd. 2019. All rights reserved. 10
ブロックチェーンとゼロ知識証明の関係
一般的なゼロ知識証明の使い方
トランザクション内のプライバシ情報を秘匿化した際に正当性をゼロ知識で与える
秘匿化されたTx
+ゼロ知識証明
Tx Data
ID:101のbitcoinは
Aliceが持っています
Tx Data
ID:100のbitcoinは
Tomが持っています
Tx Data
From: ???
To: ???
Amount: ???
Aliceの署名
プライバシ情報は秘匿化されているが、
正当性を示すゼロ知識証明が付いている
Miner or
Endorser
不正は無さそうだ
な!!
© Hitachi,Ltd. 2019. All rights reserved. 11
目次
• ゼロ知識証明とは?
• ブロックチェーンでどうやってゼロ知識証明を使うのか?
• セキュアスマートコントラクト
• Hyperledger Fabricでの実装アーキテクチャ
• 評価実験
• まとめ
© Hitachi,Ltd. 2019. All rights reserved. 12
Secure Smart Contractのイメージ
Blockchain data
Smart Contract
SC logic
deploy
引数
arg1
引数
arg2
戻り値
result
この部分を秘匿化(正確にはアクセス制御)したい!
・Alice(contract owner)はSCをBC上にdeploy
・Tom, BobはそのSCに対してargument txを送信
・Alice(or 誰かが)SCをargに対して実行し、結果をBCに記録
この時、arg, resultを適切にアクセス制御したい
(i.e., argは本人とAlice(contract owner)のみ閲覧可能、resultも関係者のみ閲覧可)
SCのロジック自体は誰でも閲覧可能(open)
Alice Tom
Bob
© Hitachi,Ltd. 2019. All rights reserved. 13
実例:2nd price auction
auction seller
Bidder A
Bidder B
Bidder C
1000円!
2000円!
500円!
Bidder B
落札者
(Winner)
priceは1000円(2nd price)
・各入札者は1度だけ払っても良い最高額を入札する(bidding)
・最高額を入札した人が落札者winnerになる(下の図ではbidder A)
・落札者が支払う金額は入札額2位の人の金額(下の図ではbidder Cの9万円)
※1st priceオークションと違い、払いすぎる心配がない
© Hitachi,Ltd. 2019. All rights reserved. 14
BC上で2nd priceオークションは可能か?
Blockchain data
Smart Contract
hogehoge
deploy
引数
arg1 = 1000円
引数
arg2 = 2000円 引数
arg3 = 500円
戻り値
winner = bidder B
2nd price = 1000円
引数に対してSC実行Bidder A Bidder B Bidder C
【懸念点】引数、戻り値がopenだと・・・
・2nd priceオークションにならない、公開入札(English auction)になる
・Bidder A入札後、Sellerの利得最大化のために、1,999円で入札される(1st price)
・みんなの入札金額、落札者がopenになる(プライバシ問題)
⇒引数、戻り値の暗号化が必要
【懸念点】引数、戻り値を暗号化し、Sellerにのみ開示すると・・・
・Sellerが実行結果を改ざんできる(e.g. 2nd price=1,999円)
Seller
© Hitachi,Ltd. 2019. All rights reserved. 15
2nd priceオークションのロジック
1: winner = 0
2: max = 0
3: 2nd_price = 0
4:
5: // Nは入札者数
6: for i=0;i<N;i++
7:
8: // 勝者判定
9: if bidder[i].price > max
10: winner = i
11: 2nd_price = max
12: max = bidder[i].price
13:
14: return {winner, 2nd_price}
※疑似コード
後でSellerが実行する。
全員の入札金額はSellerしか知らないので、不正改ざんしてもばれない。
© Hitachi,Ltd. 2019. All rights reserved. 16
ゼロ知識証明を使って不正改ざんを防止
Blockchain dataChaincode
hogehoge
pk
Seller
Endorser
Phase 1, 2(initialization & deploy):
Sellerは2nd priceオークションのチェインコードをデプロイ
(Fabric)CAはこのチェインコードに対して以下のzk-SNARKのパラメータを生成する
・ゼロ知識証明生成用の鍵pk⇒Sellerに渡す
・ゼロ知識証明検証用の鍵vk⇒Peerに渡す
vk
© Hitachi,Ltd. 2019. All rights reserved. 17
ゼロ知識証明を使って不正改ざんを防止
Blockchain dataChaincode
hogehoge
pk
Seller
Phase 3(betting):
各Bidderはtemp key(KA,KB,KC)を生成し、入札金額のHmac値を台帳に書く
vk
引数
arg1 =
Hmac(KA, 1000)
引数
arg2 =
Hmac(KB, 2000) 引数
arg3 =
Hmac(KC, 500)
Bidder A Bidder B Bidder C
Endorser
© Hitachi,Ltd. 2019. All rights reserved. 18
ゼロ知識証明を使って不正改ざんを防止
Blockchain dataChaincode
hogehoge
pk
Seller
Phase 4(execution): オフライン処理に注意!!
各Bidderはtemp keyと入札金額をSellerに渡す(Logicの引数たち)
Sellerは2nd priceオークションのロジックを実行し、winnerと2nd priceを算出、
確かにロジックを実行した、という証拠にpkを使ってゼロ知識証明[π]を生成
vk
引数
arg1 =
Hmac(KA, 1000)
引数
arg2 =
Hmac(KB, 2000) 引数
arg3 =
Hmac(KC, 500)
Bidder A Bidder B Bidder C
(KB, 2000)(KA, 1000) (KC, 500)
Endorser
© Hitachi,Ltd. 2019. All rights reserved. 19
ゼロ知識証明を使って不正改ざんを防止
Blockchain dataChaincode
hogehoge
pk
Seller
Phase 5(result):
Sellerは(winner, 2nd price, π)を台帳に書き込む(現状版では戻り値はopen)
が、この際にPeerが[正しい引数(1000, 2000, 500)]で[2nd priceのロジック]が
実行されたかを検証する(invalidならtxは書き込まれない)
この検証は検証鍵[vk]と[π]と台帳上の[HMAC値]のみで可能
vk
引数
arg1 =
Hmac(KA, 1000)
引数
arg2 =
Hmac(KB, 2000) 引数
arg3 =
Hmac(KC, 500)
Bidder A Bidder B Bidder C
戻り値
winner = Bidder B
2nd
price = 1000円
ZKP: π
Check
Endorser
© Hitachi,Ltd. 2019. All rights reserved. 20
目次
• ゼロ知識証明とは?
• ブロックチェーンでどうやってゼロ知識証明を使うのか?
• セキュアスマートコントラクト
• Hyperledger Fabricでの実装アーキテクチャ
• 評価実験
• まとめ
© Hitachi,Ltd. 2019. All rights reserved. 21
Hyperledger Fabricでの実装アーキテクチャ
・ゼロ知識証明したいコントラクトをユーザが指定
・Fabric CAがコントラクトのロジックに対して、ゼロ知識証明生成鍵/検証鍵を生成
・ゼロ知識証明生成鍵をユーザ、検証鍵をEndorserに配布
・ユーザはendorsementの際に、ゼロ知識証明を生成、txに付与
・Endorserは検証鍵を使ってゼロ知識証明を検証
BCネットワーク
Endorserユーザ
Fabric CA
PK
(証明生成鍵) VK(証明検証鍵)
Chaincode
hogehoge
Chaincode
hogehoge
TX+ZKP: π
© Hitachi,Ltd. 2019. All rights reserved. 22
修正版:2nd priceオークションのロジック
1: winner = 0
2: max = 0
3: 2nd_price = 0
4:
5: // Nは入札者数
6: for i=0;i<N;i++
7:
8: // 入力値の不正チェック
9: if bidder[i].hashed_price != hmac(bidder[i].hash_key, bidder[i].price)
10: abort()
11:
12: // 勝者判定
13: if bidder[i].price > max
14: winner = i
15: 2nd_price = max
16: max = bidder[i].price
17:
18: return {winner, 2nd_price}
※疑似コード
ロジックに入力金額の不正が無いかチェックする機能を追加(8~10行目)
ZKP + verification keyと公開情報のみを用いて、上記のロジックが
確かに実行された事を確認可能(verifiable computation)
© Hitachi,Ltd. 2019. All rights reserved. 23
目次
• ゼロ知識証明とは?
• ブロックチェーンでどうやってゼロ知識証明を使うのか?
• セキュアスマートコントラクト
• Hyperledger Fabricでの実装アーキテクチャ
• 評価実験
• まとめ
© Hitachi,Ltd. 2019. All rights reserved. 24
性能評価実験
0.0
5.0
10.0
15.0
20.0
25.0
0 5000 10000 15000 20000 25000 30000 35000
0.0000
0.0002
0.0004
0.0006
0.0008
0.0010
0.0012
0 5000 10000 15000 20000 25000 30000 35000
回路サイズ回路サイズ
処
理
時
間
(
秒
)
処
理
時
間
(
秒
)
ユーザ処理
ゼロ知識証明生成
Endorser処理
ゼロ知識証明検証
評価方法
量子計算機への耐性を考慮し、LWE暗号方式をベースに方式設計
zk-SNARKの標準ライブラリlibsnarkの一部機能を利用し実装
様々な回路サイズ(スマートコントラクトのサイズ)に対して評価実験を実施
実験結果(評価PCはIntel(R) Core(TM) i7-9700K CPU @ 3.60GHz ×8)
・ユーザ側の処理時間(ゼロ知識証明生成)は回路サイズに比例して増加
⇒Hash関数の評価には210秒, 300GBのメモリが必要になる計算
・Endorserの処理時間(ゼロ知識証明検証)は回路サイズによらず1msec程度
© Hitachi,Ltd. 2019. All rights reserved. 25
目次
• ゼロ知識証明とは?
• ブロックチェーンでどうやってゼロ知識証明を使うのか?
• セキュアスマートコントラクト
• Hyperledger Fabricでの実装アーキテクチャ
• 評価実験
• まとめ
© Hitachi,Ltd. 2019. All rights reserved. 26
まとめ
やったことのまとめ
1. 量子計算機耐性を有するzk-SNARK方式を設計、libsnarkへ実装
2. Hyperledger Fabric向けの実装アーキテクチャを設計、Endorsement
Peerへゼロ知識証明の検証機能をプラグイン実装
3. ゼロ知識証明初心者向けに、いくつかのガジェット作成
今後の課題
1. ゼロ知識証明生成の処理軽量化
2. Universal Circuitへの対応(Fabric CAの処理軽量化&trustless)
3. 初心者向け&開発効率向上に向けたガジェットの拡充
4. ユーザ証明書の属性、資格情報をゼロ知識証明する機能等
Post-quantum zk-SNARKs on Hyperledger Fabric​

More Related Content

What's hot

【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法NGINX, Inc.
 
20分でわかるgVisor入門
20分でわかるgVisor入門20分でわかるgVisor入門
20分でわかるgVisor入門Shuji Yamada
 
Optimistic Rollupとは何か
Optimistic Rollupとは何かOptimistic Rollupとは何か
Optimistic Rollupとは何かSyuhei Hiya
 
Bitcoinを技術的に理解する
Bitcoinを技術的に理解するBitcoinを技術的に理解する
Bitcoinを技術的に理解するKenji Urushima
 
20140625 ステルスアドレスとその仕組み
20140625 ステルスアドレスとその仕組み20140625 ステルスアドレスとその仕組み
20140625 ステルスアドレスとその仕組みTetsuyuki Oishi
 
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料) ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料) NTT DATA Technology & Innovation
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門Hiroyuki Wada
 
Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金
Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金
Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金Hyperleger Tokyo Meetup
 
SSIとDIDで何を解決したいのか?(β版)
SSIとDIDで何を解決したいのか?(β版)SSIとDIDで何を解決したいのか?(β版)
SSIとDIDで何を解決したいのか?(β版)Naohiro Fujie
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説貴仁 大和屋
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門Yoichi Kawasaki
 
分散型IDと検証可能なアイデンティティ技術概要
分散型IDと検証可能なアイデンティティ技術概要分散型IDと検証可能なアイデンティティ技術概要
分散型IDと検証可能なアイデンティティ技術概要Naohiro Fujie
 
BLS Based Discreet Log Contracts
BLS Based Discreet Log ContractsBLS Based Discreet Log Contracts
BLS Based Discreet Log ContractsIchiro Kuwahara
 
これからの KYC と Identity on Blockchain の動向
これからの KYC と Identity on Blockchain の動向これからの KYC と Identity on Blockchain の動向
これからの KYC と Identity on Blockchain の動向Naohiro Fujie
 
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)NTT DATA Technology & Innovation
 

What's hot (20)

【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
20分でわかるgVisor入門
20分でわかるgVisor入門20分でわかるgVisor入門
20分でわかるgVisor入門
 
Optimistic Rollupとは何か
Optimistic Rollupとは何かOptimistic Rollupとは何か
Optimistic Rollupとは何か
 
Bitcoinを技術的に理解する
Bitcoinを技術的に理解するBitcoinを技術的に理解する
Bitcoinを技術的に理解する
 
20140625 ステルスアドレスとその仕組み
20140625 ステルスアドレスとその仕組み20140625 ステルスアドレスとその仕組み
20140625 ステルスアドレスとその仕組み
 
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料) ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
ここがつらいよ、Hyperledger Fabricの商用適用(Blockchain GIG #4発表資料)
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
 
暗認本読書会9
暗認本読書会9暗認本読書会9
暗認本読書会9
 
Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金
Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金
Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金
 
SSIとDIDで何を解決したいのか?(β版)
SSIとDIDで何を解決したいのか?(β版)SSIとDIDで何を解決したいのか?(β版)
SSIとDIDで何を解決したいのか?(β版)
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門
 
分散型IDと検証可能なアイデンティティ技術概要
分散型IDと検証可能なアイデンティティ技術概要分散型IDと検証可能なアイデンティティ技術概要
分散型IDと検証可能なアイデンティティ技術概要
 
「DID ・デジタル通貨の社会実装」 Digital Platformer 株式会社
「DID ・デジタル通貨の社会実装」 Digital Platformer 株式会社 「DID ・デジタル通貨の社会実装」 Digital Platformer 株式会社
「DID ・デジタル通貨の社会実装」 Digital Platformer 株式会社
 
BLS Based Discreet Log Contracts
BLS Based Discreet Log ContractsBLS Based Discreet Log Contracts
BLS Based Discreet Log Contracts
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
これからの KYC と Identity on Blockchain の動向
これからの KYC と Identity on Blockchain の動向これからの KYC と Identity on Blockchain の動向
これからの KYC と Identity on Blockchain の動向
 
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
 

Similar to Post-quantum zk-SNARKs on Hyperledger Fabric​

Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...blockchainexe
 
異種ブロックチェーン統合ツールHyperledger Cactiご紹介
異種ブロックチェーン統合ツールHyperledger Cactiご紹介異種ブロックチェーン統合ツールHyperledger Cactiご紹介
異種ブロックチェーン統合ツールHyperledger Cactiご紹介Hyperleger Tokyo Meetup
 
ビットコインとブロックチェーンを初めからていねいに(超基礎編)
ビットコインとブロックチェーンを初めからていねいに(超基礎編)ビットコインとブロックチェーンを初めからていねいに(超基礎編)
ビットコインとブロックチェーンを初めからていねいに(超基礎編)dcubeio
 
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現UnityTechnologiesJapan002
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Yoshifumi Kawai
 
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法SmartNews, Inc.
 
ブロックチェーンを学ぶ 公開版
ブロックチェーンを学ぶ 公開版ブロックチェーンを学ぶ 公開版
ブロックチェーンを学ぶ 公開版YamashitaKatsushi
 
JNSA Bitcoin 勉強会 佐藤 20140602
JNSA Bitcoin 勉強会 佐藤 20140602JNSA Bitcoin 勉強会 佐藤 20140602
JNSA Bitcoin 勉強会 佐藤 20140602Masashi Sato
 
図解で理解するvetKD
図解で理解するvetKD図解で理解するvetKD
図解で理解するvetKDryoo toku
 
CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ…
CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ…CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ…
CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ…Drecom Co., Ltd.
 
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6Hironobu Isoda
 
シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議Shinra_Technologies
 
Blockchain EXE #12:AI学習履歴に関するブロックチェーン活用(石黒 一明 | クーガー)
Blockchain EXE #12:AI学習履歴に関するブロックチェーン活用(石黒 一明 | クーガー)Blockchain EXE #12:AI学習履歴に関するブロックチェーン活用(石黒 一明 | クーガー)
Blockchain EXE #12:AI学習履歴に関するブロックチェーン活用(石黒 一明 | クーガー)blockchainexe
 
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオンHyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン健一 茂木
 
AWS IoT EduKit ワークショップのご紹介
AWS IoT EduKit ワークショップのご紹介AWS IoT EduKit ワークショップのご紹介
AWS IoT EduKit ワークショップのご紹介Yukinobu Mine
 
OAuthのHolder of Key Token
OAuthのHolder of Key TokenOAuthのHolder of Key Token
OAuthのHolder of Key TokenYuichi Nakamura
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)シスコシステムズ合同会社
 
20210824 Pico session at CEDEC2021(旧)
20210824 Pico session at CEDEC2021(旧)20210824 Pico session at CEDEC2021(旧)
20210824 Pico session at CEDEC2021(旧)Miyu Nishikawa
 

Similar to Post-quantum zk-SNARKs on Hyperledger Fabric​ (20)

Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
Blockchain EXE #16:Hyperledger fabricの技術動向とファイナンシャルエンジニアリング視点でのトークンエコノミー|平山 毅...
 
異種ブロックチェーン統合ツールHyperledger Cactiご紹介
異種ブロックチェーン統合ツールHyperledger Cactiご紹介異種ブロックチェーン統合ツールHyperledger Cactiご紹介
異種ブロックチェーン統合ツールHyperledger Cactiご紹介
 
ビットコインとブロックチェーンを初めからていねいに(超基礎編)
ビットコインとブロックチェーンを初めからていねいに(超基礎編)ビットコインとブロックチェーンを初めからていねいに(超基礎編)
ビットコインとブロックチェーンを初めからていねいに(超基礎編)
 
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
 
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
 
ブロックチェーンを学ぶ 公開版
ブロックチェーンを学ぶ 公開版ブロックチェーンを学ぶ 公開版
ブロックチェーンを学ぶ 公開版
 
Bluetooth meshの基礎
Bluetooth meshの基礎Bluetooth meshの基礎
Bluetooth meshの基礎
 
JNSA Bitcoin 勉強会 佐藤 20140602
JNSA Bitcoin 勉強会 佐藤 20140602JNSA Bitcoin 勉強会 佐藤 20140602
JNSA Bitcoin 勉強会 佐藤 20140602
 
図解で理解するvetKD
図解で理解するvetKD図解で理解するvetKD
図解で理解するvetKD
 
5jCup WebRTC賞
5jCup WebRTC賞5jCup WebRTC賞
5jCup WebRTC賞
 
CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ…
CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ…CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ…
CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ…
 
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
 
シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議
 
Blockchain EXE #12:AI学習履歴に関するブロックチェーン活用(石黒 一明 | クーガー)
Blockchain EXE #12:AI学習履歴に関するブロックチェーン活用(石黒 一明 | クーガー)Blockchain EXE #12:AI学習履歴に関するブロックチェーン活用(石黒 一明 | クーガー)
Blockchain EXE #12:AI学習履歴に関するブロックチェーン活用(石黒 一明 | クーガー)
 
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオンHyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
 
AWS IoT EduKit ワークショップのご紹介
AWS IoT EduKit ワークショップのご紹介AWS IoT EduKit ワークショップのご紹介
AWS IoT EduKit ワークショップのご紹介
 
OAuthのHolder of Key Token
OAuthのHolder of Key TokenOAuthのHolder of Key Token
OAuthのHolder of Key Token
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
 
20210824 Pico session at CEDEC2021(旧)
20210824 Pico session at CEDEC2021(旧)20210824 Pico session at CEDEC2021(旧)
20210824 Pico session at CEDEC2021(旧)
 

More from Hyperleger Tokyo Meetup

Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金
Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金
Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金Hyperleger Tokyo Meetup
 
Hyperledger FireFly - HYPERLEDGER Workshop, WebX
Hyperledger FireFly - HYPERLEDGER Workshop, WebXHyperledger FireFly - HYPERLEDGER Workshop, WebX
Hyperledger FireFly - HYPERLEDGER Workshop, WebXHyperleger Tokyo Meetup
 
ファイアフライ「蛍」FireFly to Public and Private Chains
ファイアフライ「蛍」FireFly to Public and Private Chainsファイアフライ「蛍」FireFly to Public and Private Chains
ファイアフライ「蛍」FireFly to Public and Private ChainsHyperleger Tokyo Meetup
 
Trusted Data Ecosystems(信頼できるデータエコシステム):アイデンティティに価値を見出す
Trusted Data Ecosystems(信頼できるデータエコシステム):アイデンティティに価値を見出すTrusted Data Ecosystems(信頼できるデータエコシステム):アイデンティティに価値を見出す
Trusted Data Ecosystems(信頼できるデータエコシステム):アイデンティティに価値を見出すHyperleger Tokyo Meetup
 
ブロックチェーン間のインターオペラビリティ概論
ブロックチェーン間のインターオペラビリティ概論ブロックチェーン間のインターオペラビリティ概論
ブロックチェーン間のインターオペラビリティ概論Hyperleger Tokyo Meetup
 
ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待
ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待
ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待Hyperleger Tokyo Meetup
 
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜Hyperleger Tokyo Meetup
 
Hyperledger Fabric Private Chaincodeについて
Hyperledger Fabric Private ChaincodeについてHyperledger Fabric Private Chaincodeについて
Hyperledger Fabric Private ChaincodeについてHyperleger Tokyo Meetup
 
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltzHyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltzHyperleger Tokyo Meetup
 
パネルディスカッション : エンタープライズブロックチェーンの活用例 オラクル資料
パネルディスカッション : エンタープライズブロックチェーンの活用例 オラクル資料パネルディスカッション : エンタープライズブロックチェーンの活用例 オラクル資料
パネルディスカッション : エンタープライズブロックチェーンの活用例 オラクル資料Hyperleger Tokyo Meetup
 
ソラミツのご紹介 〜Hyperledger Irohaを活用した導入事例〜
ソラミツのご紹介 〜Hyperledger Irohaを活用した導入事例〜ソラミツのご紹介 〜Hyperledger Irohaを活用した導入事例〜
ソラミツのご紹介 〜Hyperledger Irohaを活用した導入事例〜Hyperleger Tokyo Meetup
 
いろはを活用したデジタル地域通貨の運用開始
いろはを活用したデジタル地域通貨の運用開始いろはを活用したデジタル地域通貨の運用開始
いろはを活用したデジタル地域通貨の運用開始Hyperleger Tokyo Meetup
 
パネルディスカッション : エンタープライズブロックチェーンの活用例
パネルディスカッション : エンタープライズブロックチェーンの活用例パネルディスカッション : エンタープライズブロックチェーンの活用例
パネルディスカッション : エンタープライズブロックチェーンの活用例Hyperleger Tokyo Meetup
 
Hyperledger Cactus V0.4 リリースの概要と今後の開発方針
Hyperledger Cactus V0.4 リリースの概要と今後の開発方針Hyperledger Cactus V0.4 リリースの概要と今後の開発方針
Hyperledger Cactus V0.4 リリースの概要と今後の開発方針Hyperleger Tokyo Meetup
 
ブロックチェーンの実用化に向けたネットワーク・スケーリング
ブロックチェーンの実用化に向けたネットワーク・スケーリングブロックチェーンの実用化に向けたネットワーク・スケーリング
ブロックチェーンの実用化に向けたネットワーク・スケーリングHyperleger Tokyo Meetup
 
Challenges of applying Blockchain to enterprise systems in NTTDATA
Challenges of applying Blockchain to enterprise systems in NTTDATAChallenges of applying Blockchain to enterprise systems in NTTDATA
Challenges of applying Blockchain to enterprise systems in NTTDATAHyperleger Tokyo Meetup
 
世界経済フォーラム第四次産業革命センターによるブロックチェーンの相互運用フレームワークのご紹介
世界経済フォーラム第四次産業革命センターによるブロックチェーンの相互運用フレームワークのご紹介世界経済フォーラム第四次産業革命センターによるブロックチェーンの相互運用フレームワークのご紹介
世界経済フォーラム第四次産業革命センターによるブロックチェーンの相互運用フレームワークのご紹介Hyperleger Tokyo Meetup
 

More from Hyperleger Tokyo Meetup (20)

Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金
Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金
Hyperledger Irohaを活用した海外におけるCBDCとクロスボーダー送金
 
Hyperledger FireFly - HYPERLEDGER Workshop, WebX
Hyperledger FireFly - HYPERLEDGER Workshop, WebXHyperledger FireFly - HYPERLEDGER Workshop, WebX
Hyperledger FireFly - HYPERLEDGER Workshop, WebX
 
ファイアフライ「蛍」FireFly to Public and Private Chains
ファイアフライ「蛍」FireFly to Public and Private Chainsファイアフライ「蛍」FireFly to Public and Private Chains
ファイアフライ「蛍」FireFly to Public and Private Chains
 
Hyperledger Iroha
Hyperledger IrohaHyperledger Iroha
Hyperledger Iroha
 
Hyperledger Aries 101
Hyperledger Aries 101Hyperledger Aries 101
Hyperledger Aries 101
 
Introduction; Blockchain 101
Introduction; Blockchain 101Introduction; Blockchain 101
Introduction; Blockchain 101
 
Trusted Data Ecosystems(信頼できるデータエコシステム):アイデンティティに価値を見出す
Trusted Data Ecosystems(信頼できるデータエコシステム):アイデンティティに価値を見出すTrusted Data Ecosystems(信頼できるデータエコシステム):アイデンティティに価値を見出す
Trusted Data Ecosystems(信頼できるデータエコシステム):アイデンティティに価値を見出す
 
ブロックチェーン間のインターオペラビリティ概論
ブロックチェーン間のインターオペラビリティ概論ブロックチェーン間のインターオペラビリティ概論
ブロックチェーン間のインターオペラビリティ概論
 
ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待
ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待
ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待
 
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜
 
Hyperledger Fabric Private Chaincodeについて
Hyperledger Fabric Private ChaincodeについてHyperledger Fabric Private Chaincodeについて
Hyperledger Fabric Private Chaincodeについて
 
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltzHyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
Hyperledger Fabric活用事例:貿易プラットフォームTradeWaltz
 
パネルディスカッション : エンタープライズブロックチェーンの活用例 オラクル資料
パネルディスカッション : エンタープライズブロックチェーンの活用例 オラクル資料パネルディスカッション : エンタープライズブロックチェーンの活用例 オラクル資料
パネルディスカッション : エンタープライズブロックチェーンの活用例 オラクル資料
 
ソラミツのご紹介 〜Hyperledger Irohaを活用した導入事例〜
ソラミツのご紹介 〜Hyperledger Irohaを活用した導入事例〜ソラミツのご紹介 〜Hyperledger Irohaを活用した導入事例〜
ソラミツのご紹介 〜Hyperledger Irohaを活用した導入事例〜
 
いろはを活用したデジタル地域通貨の運用開始
いろはを活用したデジタル地域通貨の運用開始いろはを活用したデジタル地域通貨の運用開始
いろはを活用したデジタル地域通貨の運用開始
 
パネルディスカッション : エンタープライズブロックチェーンの活用例
パネルディスカッション : エンタープライズブロックチェーンの活用例パネルディスカッション : エンタープライズブロックチェーンの活用例
パネルディスカッション : エンタープライズブロックチェーンの活用例
 
Hyperledger Cactus V0.4 リリースの概要と今後の開発方針
Hyperledger Cactus V0.4 リリースの概要と今後の開発方針Hyperledger Cactus V0.4 リリースの概要と今後の開発方針
Hyperledger Cactus V0.4 リリースの概要と今後の開発方針
 
ブロックチェーンの実用化に向けたネットワーク・スケーリング
ブロックチェーンの実用化に向けたネットワーク・スケーリングブロックチェーンの実用化に向けたネットワーク・スケーリング
ブロックチェーンの実用化に向けたネットワーク・スケーリング
 
Challenges of applying Blockchain to enterprise systems in NTTDATA
Challenges of applying Blockchain to enterprise systems in NTTDATAChallenges of applying Blockchain to enterprise systems in NTTDATA
Challenges of applying Blockchain to enterprise systems in NTTDATA
 
世界経済フォーラム第四次産業革命センターによるブロックチェーンの相互運用フレームワークのご紹介
世界経済フォーラム第四次産業革命センターによるブロックチェーンの相互運用フレームワークのご紹介世界経済フォーラム第四次産業革命センターによるブロックチェーンの相互運用フレームワークのご紹介
世界経済フォーラム第四次産業革命センターによるブロックチェーンの相互運用フレームワークのご紹介
 

Recently uploaded

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Recently uploaded (9)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

Post-quantum zk-SNARKs on Hyperledger Fabric​

  • 1. © Hitachi,Ltd. 2019.All rights reserved. Post-quantum zk-SNARKs on Hyperledger Fabric 株式会社日立製作所 社会システム研究部 長沼健
  • 2. © Hitachi,Ltd. 2019. All rights reserved. 2 目次 • ゼロ知識証明とは? • ブロックチェーンでどうやってゼロ知識証明を使うのか? • セキュアスマートコントラクト • Hyperledger Fabricでの実装アーキテクチャ • 評価実験 • まとめ
  • 3. © Hitachi,Ltd. 2019. All rights reserved. 3 目次 • ゼロ知識証明とは? • ブロックチェーンでどうやってゼロ知識証明を使うのか? • セキュアスマートコントラクト • Hyperledger Fabricでの実装アーキテクチャ • 評価実験 • まとめ
  • 4. © Hitachi,Ltd. 2019. All rights reserved. 4 ゼロ知識証明とは? ゼロ知識証明(zero-knowledge proof)とは、証明者(Prover)が検証者(Verifier)に、 自分の持っている命題が真であることを伝えるのに、真であること以外、 何の知識も伝えることなく証明できるような対話(非対話)知識証明プロトコルである。 by Wikipedia Alice (Prover)は命題Pが真(True)である事を誰かに証明したい 命題P: 私は二十歳以上だ 命題P: 私はある暗号の秘密鍵 を知っている
  • 5. © Hitachi,Ltd. 2019. All rights reserved. 5 ゼロ知識証明とは? Alice (Prover)は命題Pが真(True)である事をBob(Verifier)にゼロ知識証明したい 命題P: 私は二十歳以上だ 命題Pの証明(真である証拠)出せ 運転免許証提示 運転免許証提示でAlice (Prover)は命題Pが真(True)である事をBobに証明 できるがゼロ知識ではない。生年月日から年齢などが漏れている。 どんなものがゼロ知識証明と言えるのか? Alice Bob
  • 6. © Hitachi,Ltd. 2019. All rights reserved. 6 ゼロ知識証明とは? Alice (Prover)は命題Pが真(True)である事をBob(Verifier)にゼロ知識証明したい Enc(pk, r) 乱数[r]を生成 Bob(Verifier)は自分で生成した乱数[r]を貰うだけなので、 対話終了後に秘密鍵に関する知識をゲットしていない⇒ゼロ知識っぽい 命題P: 私は公開鍵[pk]に対する 秘密鍵を知っている r 秘密鍵を知っているのでEnc(pk, r) を復号して平文[r]を計算可能 ※当然、AliceがBobに秘密鍵を渡せばPが真である事は 証明できるが、ゼロ知識でない(Bobは秘密鍵に関する情報を得ているので)。
  • 7. © Hitachi,Ltd. 2019. All rights reserved. 7 目次 • ゼロ知識証明とは? • ブロックチェーンでどうやってゼロ知識証明を使うのか? • セキュアスマートコントラクト • Hyperledger Fabricでの実装アーキテクチャ • 評価実験 • まとめ
  • 8. © Hitachi,Ltd. 2019. All rights reserved. 8 プラバシー vs 透明性 Blockchain data Tx Data ID:101のbitcoinは Aliceが持っています Tx Data ID:100のbitcoinは Tomが持っています Tx Data ID:101のbitcoinは AliceからBobに送金 されました Aliceの署名 Tx Data ID:101のbitcoinは BobからTomに送金さ れました Bobの署名 参照可能 参照可能 参照可能 透明性 プライバシ Public Blockchainの台帳データはネットワーク上の誰でも参照可能 ⇒透明性maxでプライバシーなし トランザクションデータを暗号化(or hash化)したら、プライバシーは保たれるが、 マイナーがトランザクションの正当性を確認不能になる
  • 9. © Hitachi,Ltd. 2019. All rights reserved. 9 もしトランザクションが暗号化されていると・・・ プライバシ保護のためUTXOで送金額が暗号化されたとすると・・・ [inputの金額の合計]=[outputの金額の合計] (手数料は0とする) また、送金額は0以上の値 BCネットワーク TX data [input] 100coin from: Tom to: Alice [output] Enc(80coin) from: Alice to: Bob [output] Enc(50coin) from: Alice to: Alice 悪いAlice Aliceは100coin分のunspent transactionのうち80をBobに送金、20をAliceに送金(おつ り)するが、送金額が暗号化されている事をいいことに、おつりを50に不正に変更。 マイナーは復号化鍵をもっていないので金額不正に気付かない! Miner or Endorser Miner or Endorser
  • 10. © Hitachi,Ltd. 2019. All rights reserved. 10 ブロックチェーンとゼロ知識証明の関係 一般的なゼロ知識証明の使い方 トランザクション内のプライバシ情報を秘匿化した際に正当性をゼロ知識で与える 秘匿化されたTx +ゼロ知識証明 Tx Data ID:101のbitcoinは Aliceが持っています Tx Data ID:100のbitcoinは Tomが持っています Tx Data From: ??? To: ??? Amount: ??? Aliceの署名 プライバシ情報は秘匿化されているが、 正当性を示すゼロ知識証明が付いている Miner or Endorser 不正は無さそうだ な!!
  • 11. © Hitachi,Ltd. 2019. All rights reserved. 11 目次 • ゼロ知識証明とは? • ブロックチェーンでどうやってゼロ知識証明を使うのか? • セキュアスマートコントラクト • Hyperledger Fabricでの実装アーキテクチャ • 評価実験 • まとめ
  • 12. © Hitachi,Ltd. 2019. All rights reserved. 12 Secure Smart Contractのイメージ Blockchain data Smart Contract SC logic deploy 引数 arg1 引数 arg2 戻り値 result この部分を秘匿化(正確にはアクセス制御)したい! ・Alice(contract owner)はSCをBC上にdeploy ・Tom, BobはそのSCに対してargument txを送信 ・Alice(or 誰かが)SCをargに対して実行し、結果をBCに記録 この時、arg, resultを適切にアクセス制御したい (i.e., argは本人とAlice(contract owner)のみ閲覧可能、resultも関係者のみ閲覧可) SCのロジック自体は誰でも閲覧可能(open) Alice Tom Bob
  • 13. © Hitachi,Ltd. 2019. All rights reserved. 13 実例:2nd price auction auction seller Bidder A Bidder B Bidder C 1000円! 2000円! 500円! Bidder B 落札者 (Winner) priceは1000円(2nd price) ・各入札者は1度だけ払っても良い最高額を入札する(bidding) ・最高額を入札した人が落札者winnerになる(下の図ではbidder A) ・落札者が支払う金額は入札額2位の人の金額(下の図ではbidder Cの9万円) ※1st priceオークションと違い、払いすぎる心配がない
  • 14. © Hitachi,Ltd. 2019. All rights reserved. 14 BC上で2nd priceオークションは可能か? Blockchain data Smart Contract hogehoge deploy 引数 arg1 = 1000円 引数 arg2 = 2000円 引数 arg3 = 500円 戻り値 winner = bidder B 2nd price = 1000円 引数に対してSC実行Bidder A Bidder B Bidder C 【懸念点】引数、戻り値がopenだと・・・ ・2nd priceオークションにならない、公開入札(English auction)になる ・Bidder A入札後、Sellerの利得最大化のために、1,999円で入札される(1st price) ・みんなの入札金額、落札者がopenになる(プライバシ問題) ⇒引数、戻り値の暗号化が必要 【懸念点】引数、戻り値を暗号化し、Sellerにのみ開示すると・・・ ・Sellerが実行結果を改ざんできる(e.g. 2nd price=1,999円) Seller
  • 15. © Hitachi,Ltd. 2019. All rights reserved. 15 2nd priceオークションのロジック 1: winner = 0 2: max = 0 3: 2nd_price = 0 4: 5: // Nは入札者数 6: for i=0;i<N;i++ 7: 8: // 勝者判定 9: if bidder[i].price > max 10: winner = i 11: 2nd_price = max 12: max = bidder[i].price 13: 14: return {winner, 2nd_price} ※疑似コード 後でSellerが実行する。 全員の入札金額はSellerしか知らないので、不正改ざんしてもばれない。
  • 16. © Hitachi,Ltd. 2019. All rights reserved. 16 ゼロ知識証明を使って不正改ざんを防止 Blockchain dataChaincode hogehoge pk Seller Endorser Phase 1, 2(initialization & deploy): Sellerは2nd priceオークションのチェインコードをデプロイ (Fabric)CAはこのチェインコードに対して以下のzk-SNARKのパラメータを生成する ・ゼロ知識証明生成用の鍵pk⇒Sellerに渡す ・ゼロ知識証明検証用の鍵vk⇒Peerに渡す vk
  • 17. © Hitachi,Ltd. 2019. All rights reserved. 17 ゼロ知識証明を使って不正改ざんを防止 Blockchain dataChaincode hogehoge pk Seller Phase 3(betting): 各Bidderはtemp key(KA,KB,KC)を生成し、入札金額のHmac値を台帳に書く vk 引数 arg1 = Hmac(KA, 1000) 引数 arg2 = Hmac(KB, 2000) 引数 arg3 = Hmac(KC, 500) Bidder A Bidder B Bidder C Endorser
  • 18. © Hitachi,Ltd. 2019. All rights reserved. 18 ゼロ知識証明を使って不正改ざんを防止 Blockchain dataChaincode hogehoge pk Seller Phase 4(execution): オフライン処理に注意!! 各Bidderはtemp keyと入札金額をSellerに渡す(Logicの引数たち) Sellerは2nd priceオークションのロジックを実行し、winnerと2nd priceを算出、 確かにロジックを実行した、という証拠にpkを使ってゼロ知識証明[π]を生成 vk 引数 arg1 = Hmac(KA, 1000) 引数 arg2 = Hmac(KB, 2000) 引数 arg3 = Hmac(KC, 500) Bidder A Bidder B Bidder C (KB, 2000)(KA, 1000) (KC, 500) Endorser
  • 19. © Hitachi,Ltd. 2019. All rights reserved. 19 ゼロ知識証明を使って不正改ざんを防止 Blockchain dataChaincode hogehoge pk Seller Phase 5(result): Sellerは(winner, 2nd price, π)を台帳に書き込む(現状版では戻り値はopen) が、この際にPeerが[正しい引数(1000, 2000, 500)]で[2nd priceのロジック]が 実行されたかを検証する(invalidならtxは書き込まれない) この検証は検証鍵[vk]と[π]と台帳上の[HMAC値]のみで可能 vk 引数 arg1 = Hmac(KA, 1000) 引数 arg2 = Hmac(KB, 2000) 引数 arg3 = Hmac(KC, 500) Bidder A Bidder B Bidder C 戻り値 winner = Bidder B 2nd price = 1000円 ZKP: π Check Endorser
  • 20. © Hitachi,Ltd. 2019. All rights reserved. 20 目次 • ゼロ知識証明とは? • ブロックチェーンでどうやってゼロ知識証明を使うのか? • セキュアスマートコントラクト • Hyperledger Fabricでの実装アーキテクチャ • 評価実験 • まとめ
  • 21. © Hitachi,Ltd. 2019. All rights reserved. 21 Hyperledger Fabricでの実装アーキテクチャ ・ゼロ知識証明したいコントラクトをユーザが指定 ・Fabric CAがコントラクトのロジックに対して、ゼロ知識証明生成鍵/検証鍵を生成 ・ゼロ知識証明生成鍵をユーザ、検証鍵をEndorserに配布 ・ユーザはendorsementの際に、ゼロ知識証明を生成、txに付与 ・Endorserは検証鍵を使ってゼロ知識証明を検証 BCネットワーク Endorserユーザ Fabric CA PK (証明生成鍵) VK(証明検証鍵) Chaincode hogehoge Chaincode hogehoge TX+ZKP: π
  • 22. © Hitachi,Ltd. 2019. All rights reserved. 22 修正版:2nd priceオークションのロジック 1: winner = 0 2: max = 0 3: 2nd_price = 0 4: 5: // Nは入札者数 6: for i=0;i<N;i++ 7: 8: // 入力値の不正チェック 9: if bidder[i].hashed_price != hmac(bidder[i].hash_key, bidder[i].price) 10: abort() 11: 12: // 勝者判定 13: if bidder[i].price > max 14: winner = i 15: 2nd_price = max 16: max = bidder[i].price 17: 18: return {winner, 2nd_price} ※疑似コード ロジックに入力金額の不正が無いかチェックする機能を追加(8~10行目) ZKP + verification keyと公開情報のみを用いて、上記のロジックが 確かに実行された事を確認可能(verifiable computation)
  • 23. © Hitachi,Ltd. 2019. All rights reserved. 23 目次 • ゼロ知識証明とは? • ブロックチェーンでどうやってゼロ知識証明を使うのか? • セキュアスマートコントラクト • Hyperledger Fabricでの実装アーキテクチャ • 評価実験 • まとめ
  • 24. © Hitachi,Ltd. 2019. All rights reserved. 24 性能評価実験 0.0 5.0 10.0 15.0 20.0 25.0 0 5000 10000 15000 20000 25000 30000 35000 0.0000 0.0002 0.0004 0.0006 0.0008 0.0010 0.0012 0 5000 10000 15000 20000 25000 30000 35000 回路サイズ回路サイズ 処 理 時 間 ( 秒 ) 処 理 時 間 ( 秒 ) ユーザ処理 ゼロ知識証明生成 Endorser処理 ゼロ知識証明検証 評価方法 量子計算機への耐性を考慮し、LWE暗号方式をベースに方式設計 zk-SNARKの標準ライブラリlibsnarkの一部機能を利用し実装 様々な回路サイズ(スマートコントラクトのサイズ)に対して評価実験を実施 実験結果(評価PCはIntel(R) Core(TM) i7-9700K CPU @ 3.60GHz ×8) ・ユーザ側の処理時間(ゼロ知識証明生成)は回路サイズに比例して増加 ⇒Hash関数の評価には210秒, 300GBのメモリが必要になる計算 ・Endorserの処理時間(ゼロ知識証明検証)は回路サイズによらず1msec程度
  • 25. © Hitachi,Ltd. 2019. All rights reserved. 25 目次 • ゼロ知識証明とは? • ブロックチェーンでどうやってゼロ知識証明を使うのか? • セキュアスマートコントラクト • Hyperledger Fabricでの実装アーキテクチャ • 評価実験 • まとめ
  • 26. © Hitachi,Ltd. 2019. All rights reserved. 26 まとめ やったことのまとめ 1. 量子計算機耐性を有するzk-SNARK方式を設計、libsnarkへ実装 2. Hyperledger Fabric向けの実装アーキテクチャを設計、Endorsement Peerへゼロ知識証明の検証機能をプラグイン実装 3. ゼロ知識証明初心者向けに、いくつかのガジェット作成 今後の課題 1. ゼロ知識証明生成の処理軽量化 2. Universal Circuitへの対応(Fabric CAの処理軽量化&trustless) 3. 初心者向け&開発効率向上に向けたガジェットの拡充 4. ユーザ証明書の属性、資格情報をゼロ知識証明する機能等