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.
Quorumサンプル実装から理解する
エンタープライズ Ethereum のポイント
Copyright(C)2017 trident-arts All Rights Reserved.
with advanced technology
tri...
Enterprise Ethereum の サンプル実装 : Quorumとは
2Copyright(C)2017 trident-arts All Rights Reserved.
Transaction
②
Processing
パブリック...
Quorum Transaction Processing の特徴① Security
3Copyright(C)2017 trident-arts All Rights Reserved.
 ネットワークを許可型にすることと、暗号化によって...
Quorum Transaction Processing の特徴② Processing
4Copyright(C)2017 trident-arts All Rights Reserved.
DApp
TransactionX
Quorum...
Ethereum Network
Quorum Chain Consensus の特徴 1/2
5Copyright(C)2017 trident-arts All Rights Reserved.
Maker
(Quorum Node)
Vo...
Quorum Chain Consensus の特徴 2/2
6Copyright(C)2017 trident-arts All Rights Reserved.
Quorum Node
Smart Contract
BlockVoting
...
Quorum の 課題(ロードマップ提示済みのもの)
7Copyright(C)2017 trident-arts All Rights Reserved.
 Network Management
• Network Permissionin...
8
デモンストレーション
8Copyright(C)2017 trident-arts All Rights Reserved.
9Copyright(C)2017 trident-arts All Rights Reserved.
with advanced technology
trident-arts
ご清聴ありがとうございました
Upcoming SlideShare
Loading in …5
×

EXE #2: Quorumサンプル実装から理解するエンタープライズ Ethereum のポイント

2,458 views

Published on

Quorumサンプル実装から理解するエンタープライズ Ethereum のポイント

Published in: Internet
  • Hey guys! Who wants to chat with me? More photos with me here 👉 http://www.bit.ly/katekoxx
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

EXE #2: Quorumサンプル実装から理解するエンタープライズ Ethereum のポイント

  1. 1. Quorumサンプル実装から理解する エンタープライズ Ethereum のポイント Copyright(C)2017 trident-arts All Rights Reserved. with advanced technology trident-arts
  2. 2. Enterprise Ethereum の サンプル実装 : Quorumとは 2Copyright(C)2017 trident-arts All Rights Reserved. Transaction ② Processing パブリック(=共通) & プライベート Consensus Chain Consensus 投票 & ランダムタイムアウト コンセンサス所要時間の短縮化 パブリック/プライベートの二刀流  JPモルガンが Go Ethereum ベースのOSSを開発  トランザクションの方式やコンセンサスアルゴリズムをエンタープライズ用途に耐えられるように改良 Quorumの機能的な主な特徴 ① Security 許可型ネットワーク & 暗号化 安全性の確立
  3. 3. Quorum Transaction Processing の特徴① Security 3Copyright(C)2017 trident-arts All Rights Reserved.  ネットワークを許可型にすることと、暗号化によってQuorumネットワーク内の安全性が確保されている Quorum Node Transaction Manager Enclave Quorum Node Transaction Manager Enclave Quorum Node Transaction Manager Enclave Public Public Public Private Private Private A B C Ethereum Network Constellation Network Hash Payload Hash Payload Hash Payload • permissioned-nodes.json に接続を許可するノードを記載 "enode://remoteky1@ip1:port1“ (static-nodes.jsonと似ている) 許可制ネットワーク • ファイルやメールの暗号化に使用され るPGPをベースにしている • ペイロードは、セッション鍵と呼ばれる 乱数の値を鍵として,対称暗号 ※により暗号化される。 • そのセッション鍵は,公開鍵で暗号 化される(復号には秘密鍵) • トランザクションマネージャ間の通信は HTTPSにより暗号化 暗号化方式 ※暗号化と復号の鍵が同一 HTTPS Constellation ・・・星座、集まり Enclave ・・・包領、少数集団
  4. 4. Quorum Transaction Processing の特徴② Processing 4Copyright(C)2017 trident-arts All Rights Reserved. DApp TransactionX Quorum Node Transaction Manager Enclave Quorum Node Transaction Manager Enclave Quorum Node Transaction Manager Enclave 1 2 3 4 5 6 7 Block N 8 9 10 11 12 11 12 9 7 10 Block N Block N 8 8 # プロセス ① A及びBの公開鍵を設定して、 Node AにトランザクションXを送信 ② トランザクションマネージャにトランザクションXを送付 ③ エンクレーブをコール ④ 1. セッション鍵とナンスを生成 2. ペイロード/ナンスをセッション鍵で暗号化 3. ペイロードのハッシュを計算 4. A/Bの公開鍵でA/Bのセッション鍵を暗号化 5. トランザクションマネージャに2,3,4のデータを送信 ⑤ • 暗号化されたペイロード/ハッシュ/セッション鍵(A)を保 存し、HTTPSでBのトランザクションマネージャにペイ ロード/ハッシュ/セッション鍵(B)を送信 • Bは受信結果(ACK/NACK)を返す ⑥ Bの受信成功後に、Aのトランザクションマネージャがノー ドにハッシュを送信、元のペイロードと置換 ⑦ Ethereumの標準P2Pプロトコルを使用して他の ノードにトランザクションXを伝播 ⑧ トランザクションXを含むブロックNが生成され、全ノード に配布される ⑨ 各ノードは、ローカルのトランザクションマネージャをコールし、ト ランザクションを保持しているか確認する(ハッシュをイン デックスとして使用) ⑩ C:トランザクションスキップ AB:エンクレーブをコール ⑪ 秘密鍵でセッション鍵を復号し、セッション鍵でペイロード を復号。トランザクションマネージャにペイロードを返す ⑫ • コントラクト実行のために解読されたペイロードをノー ドのEVMに送信 • プライベートステートDBが更新される Public Public Public Private Private Private A B C 9 10  パブリック・トランザクションフローは標準的なEthereumのトランザクションと同じ  下記は、Node A と Node B向けのプライベート・トランザクションフロー Ethereum Network Constellation Network Private For A/B Hash Payload Hash Payload Hash Payload
  5. 5. Ethereum Network Quorum Chain Consensus の特徴 1/2 5Copyright(C)2017 trident-arts All Rights Reserved. Maker (Quorum Node) Voter (Quorum Node) Non-Voter (Quorum Node) Block Voting Block Voting Block N Tx List Vote List Tx 10 Vote1 Tx 11 Vote2 Tx 12 Vote3 1 22 # プロセス ① 最初にMakerノードがブロックを生成し、それに署名す る。ブロックには、前の期間にキャストされた親ブロックの投 票が含まれる ② ブロックは、標準のEthereum P2Pプロトコルを使用して ネットワークに配布される。ロールに関係なく、すべてのノードが ブロックを受信する。 ③ 投票者ノードはブロックを検証する • BlockVotingコントラクトをコールし、Makerがブロックを作 成できるかどうかを確認する • BlockVotingコントラクトを呼び出して、ブロックの親ブ ロックが十分な票を受け取ったかどうかをチェックする • (トランザクションマネージャからペイロードを取得した後 に)ブロック内の処理可能な全てのパブリックトランザク ションとプライベートトランザクションを実行する • パブリックステートのルートハッシュをブロック内のステートルートと比 較することによって、パブリックステートを検証する • ブロック内の全てのトランザクションをハッシュ化し(パブリック とプライベートの両方)、そのハッシュをブロック上のトランザ クションハッシュと比較する これはステートチェックではないが、全ての投票者ノードが ブロック内のトランザクションリストで一致することを保証する ④ 首尾よく検証されると、投票者ノードは、すべてのノード に配布される標準のEthereumTransactionを使用 して、BlockVotingコントラクトに投票を送信する ⑤ Makerノードはタイムアウトに達し、前のブロックの最小投票 数が受信されたかどうかを判定し、ブロック作成 以降、検証 → 投票処理が繰り返される  PoW ではない新たなコンセンサスアルゴリズムで スピードの向上を目指す 3 Block N Tx List Vote List Tx 10 Vote1 Tx 11 Vote2 Tx 12 Vote3 5 ブロック 配布 ブロック 生成 検証 投票 CallCall Transaction 4 <ブロック生成開始のトリガー> • 同時に2つ以上のMakerがブロックを作成する可能性を減らすために、Makerはランダムな期 間(タイムアウト)を生成してからブロックの作成を開始する • Makerが他のMakerより前にタイムアウトに達すると、ブロックの作成を開始することができる • Makerがブロック作成プロセスを開始すると、他のMakerノードは現在のタイムアウトをリセット し、新しいランダムタイムアウトを生成し、ブロックが作成されるまで待つ <Block Data> • A Global Transaction Hash • The Public State root hash • Block Maker's signature
  6. 6. Quorum Chain Consensus の特徴 2/2 6Copyright(C)2017 trident-arts All Rights Reserved. Quorum Node Smart Contract BlockVoting nodeInfo blockMakerAccount min/max blocktime canCreateBlocks canVote voteAccount ブ ロ ッ ク 生 成 投 票 Quorum Nodeの設定値 コントラクト機能 ブロック生成できるノードを追加する 最低投票数を設定する ブロック生成できるノードのアドレス ブロック生成待ち時間(最大/最小) ブロック生成可否 投票できるノードのアドレス 投票可否 setVoteThreshold vote addBlockMaker addVoter 投票の実行 投票できるノードを追加する genesis.json (Initial)Maker Node Quorum Nodeの初期値 ネットワーク起動時にブロック生成 ができるノードのアドレス • Quorumの投票型コンセン サスは、スマートコントラクト の機能で実行 • コンセンサスに参加するノー ドの追加/削除もスマート コントラクトの機能で実行 • コンセンサスに参加するノー ドに関する情報は Quorum Nodeのデータ ベースに書き込まれる • 最初にブロックを生成する ノードのアドレスは genesis.jsonに書き込む 主なポイント  コンセンサスアルゴリズムに関連するシステム構造
  7. 7. Quorum の 課題(ロードマップ提示済みのもの) 7Copyright(C)2017 trident-arts All Rights Reserved.  Network Management • Network Permissioning to be managed via Smart Contracts as opposed to node- specific config • Dynamic Node removal • Network Admin Dapp  Privacy • Support for private key rotation • Ability to extend the list of participants that can access private transactions post transaction creation  Consensus • Safer 'deadlock management' when Vote Threshold is not met (currently Maker Node can break deadlock by re-voting) • Limitations on the number of votes a Voter or Organisation can make • Dynamic Voting Threshold adjustment  Performance • Parallel Transaction processing  Short Term  Medium Term  Consensus • Pluggable consensus
  8. 8. 8 デモンストレーション 8Copyright(C)2017 trident-arts All Rights Reserved.
  9. 9. 9Copyright(C)2017 trident-arts All Rights Reserved. with advanced technology trident-arts ご清聴ありがとうございました

×