Pro Yearly is on sale from $80 to $50! »

Introduction to Cordage v0.2 (日本語) - blockchain.tokyo Online #3

Introduction to Cordage v0.2 (日本語) - blockchain.tokyo Online #3

7584a5da756f1ab14ed0cd1081a6acd5?s=128

Shun Takagiwa

May 14, 2020
Tweet

Transcript

  1. Introduction to https://youtu.be/lH5yyWKJiWc?t=6382

  2. 2 Introduction to Cordage © 2020 The Cordage Authors Speaker

    Shun Takagiwa / 高際 隼 シニアソフトウェアアーキテクト, LayerX Inc. Cordageコアメンテナー • 2018年8月のLayerX創業とともに参画 • 技術担当として複数のプロジェクトを推進 ◦ e.g. MUFG, 三井物産, Cryptorealty, etc • プロダクトコンセプト設計、アジャイルソフトウェア開発、 システム設計、実装、運用を担当 • 2019年社長賞、2020年行動指針賞 @shun_tak
  3. 3 Introduction to Cordage © 2020 The Cordage Authors Agenda

    • ブロックチェーン・インターオペラビリティ概要 • Cordageとは何か • Cordageによるクロスチェーン・アトミックスワップ • デモ • マイルストーン
  4. 4 Introduction to Cordage © 2020 The Cordage Authors ブロックチェーン・

    インターオペラビリティ概要
  5. 5 Introduction to Cordage © 2020 The Cordage Authors 背景

    Bitcoin誕生以来、多くのブロックチェーンプロダクトやユースケースが出てきた 異なるプロダクトをつなぎたいという需要が高まっている • 例. Quorum vs Corda(Ubin-Jasperプロジェクト) • 例. Hyperledger Fabric vs Corda(ドイツ銀行のプロジェクト) ブロックチェーン・インターオペラビリティにより、プラットフォーム間の連携を既存のシステムで実現してい たものよりも更に強固でよりセキュアに実現できる
  6. 6 Introduction to Cordage © 2020 The Cordage Authors ブロックチェーン・インターオペラビリティの種類

    • ブロックチェーンと既存のシステムをつなぐ ◦ 例. Swiftのデータをブロックチェーンに取り込む • 同じブロックチェーン上の異なる Dapp(分散アプリケーション)をつなぐ ◦ 例. 分散取引所 (DEX) ◦ 例. 分散金融 (DeFi) • 同じタイプの異なるブロックチェーンをつなぐ ◦ 例. Quorum vs 別のQuorum • 異なるタイプのブロックチェーンをつなぐ ◦ 例. Quorum vs Corda ここから、後半2つのインターオペラビリティについて議論する よく議論されるブロックチェーン インターオペラビリティ
  7. 7 Introduction to Cordage © 2020 The Cordage Authors インターオペラビリティを利用したアプリケーションの例

    • クロスチェーン・アトミックスワップ ◦ 例. ブロックチェーンをまたいだ DvP決済 • クロスチェーン・オラクル ◦ 例. Ethereumメインネット上のUniswapから価格を取得し、別のブロックチェーンで利用 • ペグされた資産 ◦ 例. Wrapped BTC • 資産の移植 ◦ 例. ブロックチェーンのシャード間でアセットを移動する • 自動支払 ◦ 例. OpenLawの契約執行条件に応じて etherやbitcoinを移転する
  8. 8 Introduction to Cordage © 2020 The Cordage Authors ブロックチェーン・インターオペラビリティの3つの方式

    信頼できる仲介者 リレー HTLC 概略図 信用モデル 過半数の正常な仲介者 それぞれのブロックチェーンに依存 それぞれのブロックチェーンに依存 実装の容易さ 中 難 易 要求される機能 • イベント取得 • イベント伝播 • 仲介者間のコンセンサス • 仲介者の署名のオンチェーン 検証 • イベント取得 • イベント伝播 • イベントの正確性の検証 • イベントの最終性の検証 • データ取得 • データ伝播 • タイムロックが可能 • 暗号学的ハッシュ関数 適用可能なユースケース あらゆるユースケース (いくつかのユースケースでは長期 的な仲介者の信用が必要) あらゆるユースケース (いくつかのユースケースでは双方向 のリレーが必要) アトミックスワップに特化 (資産の移植や自動支払は困難) Ref: Chain Interoperability by Vitalik Buterin A B A B A B 信頼できる仲介者方式は過半数の正常な仲介者に依存する一方でリレー方式は実装が困難 コンソーシアムの領域においてはブロックチェーン運用者を利用することで信頼できる仲介者方式を改善可能
  9. 9 Introduction to Cordage © 2020 The Cordage Authors Cordageとは何か

  10. 10 Introduction to Cordage © 2020 The Cordage Authors Cordageは信頼できる仲介者を追加せずに

    CordaとEthereumベースのブロックチェーンとのインターオペラビリティを実現する Cordageとは何か 特徴 • Ethereumベースのブロックチェーンと Cordaを接続する • 追加のプロセスを実行しなくていい Cordageのインターオペラビリティはどうなっているのか?
  11. 11 Introduction to Cordage © 2020 The Cordage Authors Cordageのインターオペラビリティ方式

    信頼できる仲介者 Cordage方式 概略図 信用モデル 過半数の正常な仲介者 Depends on each blockchains 実装の容易さ 中 中 要求される機能 • イベント取得 • イベント伝播 • 仲介者間のコンセンサス • 仲介者の署名のオンチェーン 検証 • イベント取得 • イベント伝播 • ブロックチェーン Aのスマートコン トラクト上で動作するブロック チェーンBのライトクライアント 適用可能なユースケース あらゆるユースケース (いくつかのユースケースでは長 期的な仲介者の信用が必要) あらゆるユースケース A B A B リレー方式と同じセキュリティレベルで、信頼 できる仲介者方式よりも高い リレー方式よりも容易 仲介者が存在しないため、信頼できる 仲介者方式よりも可用性が高い CordaはEthereumのライトクライアント を実行可能
  12. 12 Introduction to Cordage © 2020 The Cordage Authors Cordageのインターオペラビリティ方式はどのように動くか

    イベント伝播 1. Cordaのデータを含むEthereumトランザクションを作成 2. Corda Notaryが持つEthereum秘密鍵でトランザクションに署名 3. トランザクションをEthereumノードに送信 Cordaでの正確性と最終性を保証するために Corda Notaryが署名する イベント取得 1. Ethereumトランザクションレシート内のログを監視 2. ABIやエンコーダを利用しログをパース 3. Cordaに保存 両処理とも追加の仲介者ではなく Corda NodesまたはCorda Notaryから実行される Ethereum RPCエンドポイントへのアクセス権限が必要 3. Txを送信 1. ログを監視 2-3. ログをパース して保存 1-2. Txを作成し署名
  13. 13 Introduction to Cordage © 2020 The Cordage Authors Cordageによるクロスチェーン

    ・アトミックスワップ 免責事項 これはブロックチェーン間でアトミックにアセットを交換することを確認するための MVP(最小限 の実行可能な製品)です。 本番環境においてはプライバシー機能等、追加の機能が必要になる場合があります。
  14. 14 Introduction to Cordage © 2020 The Cordage Authors Cordageによるクロスチェーン・アトミックスワップ

    Scenario • Etherと社債は事前に発行されている • AliceはBobが持つ社債を100個購入したい ◦ AliceはBobにetherで支払う(単価は社債登録時に指定 される) ◦ Bobは100個の社債をAliceに送信する ◦ これらがアトミックに起こることが期待される クロスチェーン・アトミックスワップの手順 1. ProposeAtomicSwapFlowを実行することで、Aliceは ProposalStateを作成し、Bobに署名を求める 2. ProposeAtomicSwapFlowの確定後、LockEtherFlowは自動 的に実行される 3. StartEventWatchFlow一度実行すると、Bobは EventWatchFlowを5秒毎に実行してログを監視する 4. 目標のログ (LockEtherEvent) が見つかったら、 EventWatchFlowによりSettleAtomicSwapFlowが自動的に実 行される 5. SettleAtomicSwapFlowでは、BobがAliceに社債を送信するの と同時に、Corda NotaryがetherをアンロックしてBobに送金す る https://github.com/LayerXcom/cordage/tree/ master/cross-chain-atomic-swap-cordapp
  15. 15 Introduction to Cordage © 2020 The Cordage Authors デモ

  16. 16 Introduction to Cordage © 2020 The Cordage Authors マイルストーン

  17. 17 Introduction to Cordage © 2020 The Cordage Authors マイルストーン

    • バージョン0.3 ◦ クロスチェーン・アトミックスワップの異常系を実装(現在テスト中) • 改善 ◦ ドキュメントを充実させる ◦ 追加のサンプルアプリケーションを実装 • バージョン1.0 ◦ モジュールがmaven (gradle) ライブラリとして動作するようにする • 新機能 ◦ Hyperledger Fabricへの対応
  18. 18 Introduction to Cordage © 2020 The Cordage Authors GitHub

    https://github.com/LayerXcom/cordage Gitter chat https://gitter.im/LayerXcom/Cordage