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.

20200514 blockchain.tokyo v5

274 views

Published on

blockchain.tokyo Online#3でのCorda開発入門の資料です

Published in: Engineering
  • Be the first to comment

20200514 blockchain.tokyo v5

  1. 1. SBI R3 Japan株式会社 生永 雄輔 2020年5月14日 0 blockchain.Tokyo ~Corda開発入門~
  2. 2. Corda開発入門 • はじめに • Corda事始め • 技術概要of 概要 1
  3. 3. Cordaの成り立ち 2 •価値移転 •公開取引 第一世代 Bitcoin Ethereum 第二世代 第三世代
  4. 4. Cordaの成り立ち 3 •価値移転 •公開取引 第一世代 第二世代 Bitcoin Ethereum Fabric Enterprise. Ethereum. •サイロ化 •限定プライバシー 第三世代
  5. 5. Cordaの成り立ち 4 •価値移転 •公開取引 第一世代 第二世代 第三世代 Bitcoin Ethereum Fabric Ent. Ether. •サイロ化 •限定プライバシー Corda •フルプライバシー •枯れた技術
  6. 6. Cordaの由来 5 1.“Accord” → 合意する、コンセンサス 2.”Chord” → P2Pの最短距離 3.”Chord” → ハーモニー、和音 Chord
  7. 7. Corda=ミドルウェア @2019, SBI R3 JAPAN /CONFIDENTIAL CorDapps オープンソース クラウド オンプレミス エンタープライズ 業務アプリ ミドルウェア インフラ レイヤー ノード内構成 6
  8. 8. Corda開発入門 • はじめに • Corda事始め • 技術概要of 概要 7
  9. 9. Corda事始め • 動画を見る(Youtube動画の紹介) • とにかく書く(Bootcamp-Cordapp) • 試験を受ける(CordaCertificate) 8
  10. 10. 9 ①動画を見る (Youtube動画の紹介)
  11. 11. 動画を見る • 概念を説明する日本語字幕動画があります。 • Corda理解に向けて(日本語字幕動画の紹介) https://medium.com/corda- japan/corda%E7%90%86%E8%A7%A3%E3%81%AB%E3%82%80%E3%81%91%E3%81%A6- %E6%97%A5%E6%9C%AC%E8%AA%9E%E5%AD%97%E5%B9%95%E5%8B%95%E7%94%BB %E3%81%AE%E7%B4%B9%E4%BB%8B-f3b586512609 日本語字幕 Corda
  12. 12. 動画を見る •日本語字幕動画 •約10分の動画×13本 •在宅勤務の合間に
  13. 13. 動画を見る •日本語字幕動画 •約10分の動画×13本 •在宅勤務の合間に • 話してる人:Roger Willis @R3 • 翻訳した人:山田 @SBI R3 Japan
  14. 14. 13 ②とにかく書く (Bootcamp-Cordapp)
  15. 15. Bootcamp Cordapp • R3社が用意したサンプルソースコード https://github.com/corda/bootcamp-cordapp Bootcamp Corda github
  16. 16. Bootcamp Cordappとは • R3社が用意したサンプルソースコード https://github.com/corda/bootcamp-cordapp •トークン発行の実装体験が可能 •TDDベースでテスト記載済み •テストを通せばエコシステム完成!?
  17. 17. Bootcamp-Cordappによる自習 16 1.サンプルコードを読む. ✓サンプルコード :src/main/java/java_examples以下 2.テストを通す. ✓テストコード :src/test/java/bootcamp以下 ✓実装するファイル:src/main/java/bootcamp以下 3.実行する
  18. 18. 困ったら・・①以下のファイルを見る 17 •README.mdを読む → 概念も含めた説明 •Troubleshooting.mdを読む → よくある質問とその解決法 •Solutions.mdを読む → 実装例
  19. 19. 困ったら・・①以下のファイルを見る 18 •README.mdを読む → 概念も含めた説明 •Troubleshooting.mdを読む → よくある質問とその解決法 •Solutions.mdを読む → 実装例 日本語の.mdが欲しい! →info-srj@sbir3japan.co.jp
  20. 20. 困ったら・・②真面目にドキュメントを読む 19 • https://docs.corda.net/ Corda Docs
  21. 21. 困ったら・・②真面目にドキュメントを読む 20 • https://docs.corda.net/ •Corda →オープンソース版ドキュメント •Corda Enterprise →商用版ドキュメント •Corda Enterprise Network Manager →ネットワーク構築アプリドキュメント
  22. 22. 困ったら・・・③誰かに聞く 21 •Slack CordaLedger#Japanese • SBI R3 Japanのエンジニアも(暇なら)見ています。 •SNS SBI R3 Japan • twitter/facebook/e-mail •英語 • Slackの#general で聞く (簡単な質問) • StackOverFlow #Cordaで聞く (割と複雑な質問) • Corda-Dev@Group.io #で聞く (設計思想に関する質問)
  23. 23. 22 ③試験を受ける(Corda Certificate)
  24. 24. Corda certificate とは 23 •Corda試験 •選択問題で70問、75%が合格ライン •デジタルバッジもらえます
  25. 25. 受験手順 24 1.https://bit.ly/2YnUoW2 2.Discount Codeに『CVIRTBC』 3. education@r3.comからくるメールに従う。
  26. 26. 練習問題用意してます。 25 https://forms.gle/SruxZMPkwHrM2k5i8
  27. 27. Corda Certificate Tips 26 •英語… … …(涙) ⇒Google先生! •難しそう………… ⇒制限時間なし!何度でも受験可能!
  28. 28. Corda開発入門 • はじめに • Corda事始め • 技術概要of 概要 2 7
  29. 29. 技術概要 of 概要 • ステートとトランザクション • ノータリーとフロー • Why? • ネットワーク 2 8
  30. 30. 29 概要 of 概要① ステートとトランザクション State / Transaction (Tx)
  31. 31. Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved.CONFIDENTIAL ブロック1 ハッシュ1 取引データ 1-1 取引データ 1-n 管理データ1 Input input output output ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 一般的なブロックチェーン(UTXOモデル) ブロック2 取引データ 2-1 取引データ 2-m 管理データ2 ハッシュ1 ハッシュ2 input ブロック3 ハッシュ3 取引データ 3-1 取引データ 3-l 管理データ3 ハッシュ2 ・ ・ ・ ・ input
  32. 32. Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved. 【UTXO】×【1取引1ブロック】 ブロック1 ハッシュ&署名 取引1 input input Output Output ブロック2 取引2 ブロック3 取引3 input input ハッシュ&署名 ハッシュ&署名
  33. 33. Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved. CONFIDENTIAL 取引2 ハッシュ&署名 取引1 Output Output 取引3 input input ハッシュ&署名 ハッシュ&署名 ハッシュ&署名 ハッシュ&署名 input Output input Output input Output Output Output Output 【UTXO】×【1取引1ブロック】
  34. 34. 借用証(例) • 佐藤は山田に1,000円借りている • 2027/3/1までに返済する • 支払遅延した場合は25%の利息 Id From To Amt Expiry Penalty Paid 1 佐藤 山田 1000 円 2027-03- 31 25% 0円 佐藤が知っている事実 = State 山田が知っている事実 = State Id From To Amt Expiry Penalty Paid 1 佐藤 山田 1000 円 2027-03- 31 25% 0円 CordaのState=共有する事実/価値 ハッシュ&署名 取引 OutputInput
  35. 35. 通貨、株、債券、シンジケートローン、CDO、 CLO、リファレンスデータ、請求書、契約書、 L/C(信用状)、注文書、売掛金、金利スワップ、 記帳入力、銀行貸出、中央銀行発行通貨、権利 証書、トレード取引、担保、KYCデータ、CDS (クレジット・デフォルト・スワップ)etc…. 34 「State=事実/価値」なので、、、
  36. 36. 100円 鈴木 80円 山田 20円 鈴木 280円 佐藤 80円 山田 使用 200円 山田 使用 35 UTXO = Stateは分割/合流可能
  37. 37. OUTPUT STATE INPUT STATE 36 CordaのTransaction(Tx) = 取引をいれる箱 取引に使う 事実/価値 取引で生まれる 事実/価値
  38. 38. 1)現金が鈴木から山田に移転されます 2)債券は山田から鈴木に移転されます BOND0 山田 BOND1 鈴木 CASH1 山田 CASH0 鈴木 トランザクション 37 例:「現金」と「債券」の取引(DvP決済)
  39. 39. A1 A2 B1 C1C0 A1 A2 B1 C1C0 38 Txはアトミック
  40. 40. トランザクションは複雑化 A0 A1 B0 A1 A2 B0 C0 39 A2 D4 D5 C0 C1
  41. 41. 40 概要 of 概要② ノータリーとフロー Notary/ Flow
  42. 42. Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved.CONFIDENTIAL TX1 ハッシュ&署名 取引1 TX2 取引2 Output input ハッシュ&署名 Output 不正取引 Input ハッシュ&署名 Output 二重支払い 補完機能としてのNotary
  43. 43. Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved. CONFIDENTIAL ①トランザクション1のハッシュを送付 Notary Tx1 ハッシュ +Output Index ②使用済み登録 TX1 ハッシュ&署名 取引1 TX2 取引2 Output input ハッシュ&署名 Output ③トランザクション2への署名 補完機能としてのNotary
  44. 44. Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved.CONFIDENTIAL Notary Tx1 Output1 ①検証&署名依頼 Input ハッシュ&署名 Output TX1 ハッシュ&署名 取引1 TX2 取引2 Output input ハッシュ&署名 Output 補完機能としてのNotary
  45. 45. ブロックは関係者だけに送付 ブロック1 ハッシュ&署名 取引1 input input Output Output ブロック2 取引2 input ハッシュ&署名 ブロック3 取引3 input ハッシュ&署名
  46. 46. Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved. TRANSACTION OUT0 TX_HASH: c6167d0dc8e3b0a1… OUT1 IN0 IN1 Sig Alice Sig Bob Sig Notary Alice Bob Notary Flow ブロック送付先のコントロール=Flow Alice Bob Notary
  47. 47. 取引内容の作成 自己検証 署名 Aliceの署名確認 取引内容確認 取引への署名 取引内容のハッシュ値受け取り ハッシュ値への署名 Alice Bob ノータリー Send Send Send Send 取引の確定/保存 *Suspended* *Suspended* 取引の確定/保存 FlowInitiator FlowRespond er 46 Flowの例
  48. 48. 47 概要 of 概要③ Why? 技術の特徴
  49. 49. 1. プライバシー 2. インターオペラビリティ 3. スケーラビリティ 4. ガバナンス
  50. 50. ①プライバシー 49 ×取引の中身を知ることができない 〇取引があった事がわからない BOND0 〇〇 BOND1 ×× ●● 〇〇 ●● ×× ??取引内容を匿名化?? × ×
  51. 51. ①プライバシー 関係者しか取引の存在を知らない ブロック1 ハッシュ&署名 取引1 input input Output Output ブロック2 取引2 input ハッシュ&署名 ブロック3 取引3 input ハッシュ&署名
  52. 52. ②インターオペラビリティ 51 ×イーサリアムとつながる (→LayerXさんありがとうございます!) 〇他のCordaアプリ/ネットワークに送金できる Cordage
  53. 53. ③パフォーマンス 52 ×1ノードでたくさん処理できる ×ダーティーリードでレスポンスを稼ぐ 〇エコシステム全体でマルチスレッド化
  54. 54. ③パフォーマンス ①並列処理可能 ②ネットワークサイズ非依存 ブロック1 &署名 取引1 input input Output Output ブロック2 取引2 input &署名 ブロック3 取引3 input &署名 ブロック1 &署名 取引1 input input Output Output ブロック2 取引2 input &署名
  55. 55. 6,300 TPS @連続5時間 or 1.15億件 @1日 54 https://www.dtcc.com/news/2018/october/16/dtcc-unveils-groundbreaking-study-on-dlt
  56. 56. 6,300 TPS @連続5時間 or 1.15億件 @1日 55 ※注意※ ・Open Source版は遅いです。 ・商用版も工夫がいります。 ・シャーディングです。
  57. 57. ④ガバナンス 56 ×計算パワー持ってる人が正しい(PoW) ×トークン持ってる人が正しい(PoS) ×指定されたノードが正しい(PoA/Raft他) 〇取引内容は知らないけど正しさだけ保証
  58. 58. Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved.CONFIDENTIAL Notary Tx1 Output1 ①検証&署名依頼 Input ハッシュ&署名 Output ④ガバナンス TX1 ハッシュ&署名 取引1 TX2 取引2 Output input ハッシュ&署名 Output
  59. 59. Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved. CONFIDENTIAL ①Tx1Hash&Indexを送付 Tx1 Hash & Index ②使用済みOutputの確認 ④ガバナンス ブロック1 ハッシュ&署名 取引1 ブロック2 取引2 Output input ハッシュ&署名 Output ③署名の提供
  60. 60. Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved. CONFIDENTIAL ①Tx1Hash&Indexを送付 Tx1 Hash & Index ②使用済みOutputの確認 ④ガバナンス ブロック1 ハッシュ&署名 取引1 ブロック2 取引2 Output input ハッシュ&署名 Output ③署名の提供 Notaryは取引内容を知らない
  61. 61. まとめ 60 • はじめに → 第3世代ブロックチェーン • 概要 of 概要 →プライバシー&パフォーマンス ネットワーク構築は次セッションで
  62. 62. Confidential © 2019 SBI R3 Japan, Inc. All Rights Reserved. ご視聴ありがとうございました。 続いて、伊藤さんからのCENM入門です。 エンジニア・セールス募集中
  63. 63. 困ったら・・・④お金を払う 62 •Professional Service • コンサルティングサービス • SBI R3 Japan と R3のエンジニア&コンサルタントが手伝います。 •Corda Training 名称 概要 所要日数 基礎 基礎概念の理解/アプリ実装/ノード構築 3日程度 開発応用 アプリ設計/ライブラリ解説 /テスト/アップグレード 4日程度 運用応用 ネットワーク構築/運用実務・監視 /実用ノード構築(FW/HA)他 4日程度
  64. 64. 63 概要 of 概要④ Network ネットワーク
  65. 65. 64 1. The Corda Network 2. Private Networks 3. Segregated Networks 11 3 3 2 2 2 3種類のネットワーク 3
  66. 66. The Corda Network 65  Corda Network Foundationが運営 (長所) • インターオペラビリティ • 低コスト (短所) • 可視性 • 運営が海外第三者機関(法的要件)
  67. 67. Private Network 66  それぞれ独立したNetwork (長所) • コントロールの確保 • 法的要件の実現 (短所) • ネットワーク運営コスト • 他ネットワークとの結合 Identity Manager IM Network map Trust Root Notary
  68. 68. Segregated Network 67  Internetでいうサブネットワーク (長所) • インターオペラビリティ • 参加者秘匿 (短所) • 技術/ビジネス構築の難易度
  69. 69. 68 Networkのコンポーネント 名称 機能 Node ノード 参加者サーバー 台帳保管 スマートコントラクト実行/認証 Notary ノータリー 価値移転の実現 Trust Root トラストルート 参加者およびデータに対する認証の源 Identity Manager アイデンティティ・ マネージャー ネットワーク参加者の管理 Network Map ネットワークマップ Corda用のDNS/電話帳 I M
  70. 70. 69 Networkのコンポーネント 名称 機能 Node ノード 参加者サーバー 台帳保管 スマートコントラクト実行/認証 Notary ノータリー 価値移転の実現 Trust Root トラストルート 参加者およびデータに対する認証の源 Identity Manager アイデンティティ・ マネージャー ネットワーク参加者の管理 Network Map ネットワークマップ Corda用のDNS/電話帳 I M Corda Enterprise Network Manager (CENM)

×