Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Corda Enterprise Network Manager 入門

Corda Enterprise Network Manager 入門

Corda Blockchain NetworkについてBlockchain.Tokyoで登壇した際の資料

Etaro Ito

May 14, 2020
Tweet

More Decks by Etaro Ito

Other Decks in Technology

Transcript

  1. CONFIDENTIAL : copyright © 2020 LayerX Inc. all rights reserved.

    Etaro Ito Corda Enterprise Network Manager 入門
  2. 2 Speaker Etaro Ito / 伊藤 工太郎 Software Engineer, LayerX

    Inc. • Joined LayerX in 2018 October • Corda Certified Developer • Core maintainer of Cordage (Corda Interoperability Solution OSS) • From Keio University Jun Murai Lab. Bcali Group (https://bcali.org/) • Developed multiple software that uses blockchain technology such as Quorum/Corda/Ethereum ◦ e.g. MUFG, MITSUI & CO., LTD. etc @etaroid
  3. 3 Agenda • Cordappの基本(復習) • Corda Network の構成要素 • Corda

    Network の種類 • CENM(Corda Enterprise Network Manager)の機能
  4. 5 Cordappの基本 (復習) TransferJPYFlow JPY State amount : 100 owner

    : Alice issuer : BOJ JPY State amount : 100 owner : Bob issuer : BOJ Tx Transfer JPY State amount : owner : issuer : JPY State amount : 100 owner : Alice issuer : BOJ JPY State amount : 100 owner : Bob issuer : BOJ Tx Transfer Contract Validation State Flow Contract : Txを作成する : Txの状態遷移 validation code
  5. 6 Cordappの基本 (復習) TransferJPYFlow JPY State amount : 100 owner

    : Alice issuer : BOJ JPY State amount : 100 owner : Bob issuer : BOJ Tx Transfer Alice Sig Contract Validation JPY State amount : 100 owner : Alice issuer : BOJ JPY State amount : 100 owner : Bob issuer : BOJ Received Tx Transfer Alice Sig Contract Validation TransferJPYResponderFlow Bob Sig Notary Check Content
  6. 7 Cordappの基本 (復習) TransferJPYFlow JPY State amount : 100 owner

    : Alice issuer : BOJ JPY State amount : 100 owner : Bob issuer : BOJ Tx Transfer Alice Sig Notary Bob Sig ---------- -------------- ------- : ------- …. ------- : ------- Tx ----------- ------- -------- ------- : ------- …. ------- : ------- Check double-spent Notary Sig
  7. 8 Cordappの基本 (復習) TransferJPYFlow JPY State amount : 100 owner

    : Alice issuer : BOJ JPY State amount : 100 owner : Bob issuer : BOJ Tx Transfer Alice Sig Bob Sig Notary Sig Notary JPY State amount : 100 owner : Alice issuer : BOJ JPY State amount : 100 owner : Bob issuer : BOJ Tx Transfer Alice Sig Bob Sig Notary Sig Share Save to Vault Save to Vault
  8. 11 Corda Networkの構成要素 • コンソーシアム参加者が運営するNode • Cordappを保持し、Flow実行によるTxの作成からContractによる検証などを行う • Vault と呼ばれる

    DBを持ち、State を保持 • 使用済みTXOの管理 • TXの最後に二重支払いcheckを行う (Finalityの付与) • Notary Poolで複数台構成も可能 / Pool内でのConsensusはRaft・IBFT等(experimental) • NetworkのRoot CA • Root証明書から階層的に管理者ノードの証明書が発行される • 旧称 Doorman • Network参加申請の承認、Nodeへの証明書の付与 • CRLの管理 • ネットワーク内のDNSの役割 • 参加者NodeのNodeInfoと宛先IPのリストを保持 Notary Node Identity Manager Network Map Service Trust Root ・Corda Networkにおいてはネットワークの管理者 (Business Network Owner : BNO)が存在することが前提 ・Corda Network に必要なComponentは全部で5種類 (Node以外を管理者ノードと呼んでます )
  9. 12 Notary • 使用済みTXOの管理 • TXの最後に二重支払いcheckを行う (Finalityの付与) • Notary Poolで複数台構成も可能

    / Pool内でのConsensusはRaft・IBFT等(experimental) Notary Non-validating Notary Validating Notary JPY State Tx Transfer Alice Sig Bob Sig amount : 100 owner : Alice issuer : BOJ Check double-spent Notary Sig ---------- Tx ----------- ------- -------- ------- : ------- …. ------- : ------- Check double-spent Notary Sig JPY State amount : 100 owner : Bob issuer : BOJ -------------- ------- : ------- …. ------- : ------- Contract Validation Non-validatingの機能に加えて • Tx Content が見える => Privacy Leakが存在 • Cordappを保持し、Nodeと同様のvalidationを行う • Tx Contentsは見えない => Denial of State攻撃が存在 • Input State の Hashを消費済みUTXOに追加 • RequestしてきたNodeのpubkey&X500 Nameをrecord
  10. 15 Network Map Service • ネットワーク内のDNSの役割 • 参加者NodeのNodeInfoと宛先IPのリストを保持 • Network

    Parametersを各Nodeに配る Identity Manager Flanky - IP address & port - legal Identity & cert - platform version - serial Sign NodeInfo Network Map Table Network Map Service Append 192.168.0.1:10005 Alice’s NodeInfo …………... Flanky’s NodeInfo …………... 192.168.0.6:10005
  11. 16 Network Map Service • ネットワーク内のDNSの役割 • 参加者NodeのNodeInfoと宛先IPのリストを保持 • Network

    MapとNetwork Parametersを各Nodeに配る Identity Manager Flanky - Hash(NodeInfo) - ….. - ….. - ….. Network Map Network Map Service Network Map + Network Parameters Sign ※各Nodeは定期的に Network Mapをポーリングしてキャッシュを更新しに行く Network Parameters
  12. 18 Corda Network Foundation が運営するNotary / Identity Manager / Trust

    Root / Networkmapを使用するパターン Corda Networkの種類: ① The Corda Network Network Map Service Identity Manager Non-validating Notary Trust Root The Corda Network Private Network
  13. 19 Corda Networkの種類: ① The Corda Network ・Corda Network Foundation

    はオランダに拠点を置く非営利財団 ・テストネットやUAT環境が整備され、各種 Cloudサービスに立てたNodeから接続可能
  14. 21 Corda Networkの種類: ③ Segregated Network ・Notaryは自前で運用、Network MapのPrivacy担保 ・Trust Root

    / Identity ManagerはThe Corda Networkのものを使用 Identity Manager The Corda Network Network Map Service Notary Private Network Trust Root
  15. 25 機能2. Sub Zone ・1つのPrivate Networkの中で複数のNetwork Map Serviceを立てることで複数の Sub Networkに分割できる機能

    ・Notaryを含むどのNodeも複数のSub Zoneには所属できない ・NodeはSub Zoneについての知識を持たない
  16. 26 機能3. Cordapp Constraints ・BNOがcordapp.jar (State, Contract, Flow) を作成して配布し、これがネットワークのプロトコルとなる ・Contractが状態遷移ルールとなるため、各

    Nodeが同じContractを動かしていることを保証する必要がある TransferJPYFlow JPY State amount : 50 owner : Alice issuer : BOJ JPY State amount : 100 owner : Bob issuer : BOJ Tx Transfer Alice Sig 改造Contract Validation JPY State JPY State ----------- : ---- Received Tx Transfer TransferJPYResponderFlow ----------- : ---- Signature Constraint Error Signature Constraints (推奨) ・同じ署名が付いている jarファイルを使用していればプロト コルに従っているとみなす ・各NodeはTXのやり取りをする際に相手 Nodeが使用して いるcordapp.jarの署名をcheck ex.) BNOが作成したcordapp.jarに自身のkeyで署名をし、 それを各Nodeに配布 Hash Constraints Compatibility Zone Whitelisted Constraint ・Hashが同じjarしか許可しない。つまり、 Updateの許容無し。最も 厳しい制約。 ・network parametersで指定されたjarしか許可しない
  17. 27 機能3. Cordapp Constraints Responder Nodeは TXの内容が「プロトコルに従っているか」だけではなく「状態遷移内容に合意できるか」も verifyする必要がある TransferJPYFlow JPY

    State amount : 100 owner : Alice issuer : BOJ JPY State amount : 100 owner : Bob issuer : BOJ Tx Transfer Alice Sig Contract Validation JPY State JPY State ----------- : ---- Received Tx Transfer TransferJPYResponderFlow ----------- : ---- Contract Constraints & Flow Customization ・cordapp.jarをcontract.jarとworkflow.jarに分け、 contract.jarにのみSignature Constraintsを付与 ・workflow.jarにはconstraintsは付けない ResponderFlowの中で独自のビジネスロジックを記 述してカスタマイズすることを想定 Contract Validation Check Content Error
  18. 29 機能4. Cordapp Update ・Cordapp Constraintsは「Signature Constraints」を想定 ・新jarファイルの署名が旧jarファイルと同じであれば、implicit に update可能

    / Stateの引継ぎも可能 Implicit Update Explicit Update BlackList config ・各Nodeでcordapp.jarを置き換えるだけで Updateが可能 & Stateの引継ぎも可能 ・update後に追加された columnなどは旧Stateではnull ・cordapp.jar開発者への依存度が高い ・各Nodeでcordapp.jarを置き換えるだけでは不十分 ・各ノードでContractUpgradeFlow.Authorise Flowや ContractUpgradeFlow.Initiate Flowを実行して旧Stateの 引き継ぎを行う必要がある (このStateのvalidationするの はこのContractを使用する設定を修正 ) ・各Nodeが自身のnode.confの中でsignature blacklistを設 定することもできる node.conf
  19. 30 まとめ • Corda Network の構成要素 ◦ Trust Root (PKI)

    ◦ Identity Manager ◦ Network Map Service • Corda Network の種類 ◦ The Corda Network ◦ Private Network ◦ Segregated Network • CENMの機能 ◦ Signing Service ◦ Sub Zone ◦ Cordapp Signing Constraints ◦ Cordapp Update