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

Introduction XRPL for Ideathon

tequ
June 24, 2023

Introduction XRPL for Ideathon

tequ

June 24, 2023
Tweet

More Decks by tequ

Other Decks in Technology

Transcript

  1. XRPレジャーとは XRP XRPはXRPLの開始時に1000億単位発行された XRPレジャーのネイティブトークンです。追加発行を 行う機能/プログラムは存在していません。 XRPはXRPLを利用する上で必要となる手数料や準 備金、DEXにおけるブリッジ通貨などとして利用され ます。 手数料や準備金の額はバリデータによるオンレ ジャーのガバナンス投票により、スパム対策となり、

    かつユーザの負担が小さくなる額へ調整されていま す。 XRPレジャー(XRPL) 2011年から2012年にかけてBitcoinの初期コントリ ビュータを含む3人の開発者によって開発された分 散型のL1ブロックチェーン XRPLではBitcoin/Ethereumのコンセンサスアルゴ リズムとは異なる独自のアルゴリズムを採用 →PoW・PoSに対してPoA(Proof of Assosiation) と呼ばれることも。 XRPLではDEXやNFTなどをプロトコルネイティブに 利用 →最小限のコントラクトリスク 5
  2. コンセンサス • XRP Ledger Consensus Protocol / Proof of Association

    ◦ 連合コンセンサスとも • PoWやPoSなどの資本や資金によるパワーの偏りは生まれず、より分散する仕組み ◦ トランザクションを選択するリーダーの選出は行わない ◦ 上位3~4つ程度のマイナー /バリデータが共謀することで 悪意あるトランザクションがネットワークに取り込まれるリスクがない • 各ノードは共謀しないと信頼するバリデータのリストを自由に設定する ◦ 選択するバリデータは誰かに強制されているものではない。 ◦ 多数のバリデータと大きく異なる選択をした場合はネットワークをフォローできなくなる恐れ • バリデータ間の合意と妥協の中でレジャーに含めるトランザクションの決定・バリデーションを行 う 7
  3. レジャーオブジェクト • XRPL上のデータはレジャーオブジェクトによって表される • Account, DEXOffer, NFToken, NFTOffer, Multisig… •

    レジャーオブジェクトはトランザクションによってのみ追加・変更・削除可能 15 { "LedgerEntryType": "NFTokenOffer", "Owner": "rhRxL3MNvuKEjWjL7TBbZSDacb8PmzAd7m" , "NFTokenID": "00081B5825A08C22787716FA031B432EBBC1B101BB54875F0002D2A400000000" , "Flags": 1, "Amount": "1000000", "NFTokenOfferNode": "0", "index": "AEBABA4FAC212BF28E0F9A9C3788A47B085557EC5D1429E7A8266FB859C863B3" "OwnerNode": "17", "PreviousTxnID": "BFA9BE27383FA315651E26FDE1FA30815C5A5D0544EE10EC33D3E92532993769" , "PreviousTxnLgrSeq": 75443565, }
  4. レジャーオブジェクト • 公開APIからレジャーオブジェクトは取得可能 16 { "command": "book_offers" , "taker": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59"

    , "taker_gets": { "currency": "XRP" }, "taker_pays": { "currency": "USD", "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" }, "limit": 10 }
  5. レジャーオブジェクト 17 アカウント関連 AccountRoot DirectoryNode DepositPreauth SignerList Ticket トークン/DEX関連 RippleState

    Offer NFT関連 NFTokenOffer NFTokenPage Payment関連 Check Escrow PayChannel その他 Amendments FeeSettings LedgerHashes NegativeUNL
  6. トランザクションタイプ • レジャーオブジェクトを変更するための操作 • 送金、DEX取引、NFT取引、アカウント削除など • トランザクションはアカウントから送信する • 他チェーンだとコントラクトが必要な処理も、これらのトランザクションを通じて直接実行可能 ◦

    NFTやDEX取引など 18 { From: “0xf39fd6e5a…” , To: “0x5FbDB231567…” , nonce: 123, gas: 500000, data: nftContract .methods.mint… } { TransactionType : “NFTokenMint ”, Account: “rvYAfWj5gh67o…”, NFTokenTaxon : 1, TransferFee : 123, Flags: 8, URI: “697066733A2F2F62…”, } イーサリアム XRPレジャー
  7. トランザクションタイプ 19 アカウント関連 AccountSet AccountDelete DepositPreauth SetRegularKey SignerListSet TicketCreate トークン/DEX関連

    TrustSet OfferCreate OfferCancel NFT関連 NFTokenMint NFTokenCreateOffer NFTokenAcceptOffer NFTokenCancelOffer NFTokenBurn Payment関連 Payment CheckCreate CheckCash CheckCancel EscrowCreate EscrowFinish EscrowCancel PaymentChannelCreate PaymentChannelFund PaymentChannelClaim その他 EnableAmendment SetFee UNLModify
  8. 手数料と準備金 • トランザクション手数料 ◦ 非常に安い(0.001円程度) ◦ ネットワークが高負荷の場合に、必要となる手数料は高騰 ▪ → ネットワーク攻撃への対処

    • 準備金 ◦ レジャーオブジェクトをアカウントが保有するためのコスト ▪ → レジャー攻撃への対処 ▪ ノード運用者のストレージの負担を減らす ◦ オブジェクトを保有しなくなったら返還される 21
  9. 手数料と準備金 • 基本準備金 (Base Reserve) ◦ アカウントを有効化するために必要な準備金 ▪ アカウントが有効化 =

    AccountRootオブジェクトが存在 ◦ 1アカウントあたり 10XRP ◦ アカウントの削除を行うことで準備金の一部を取り戻すことが可能 • 所有者準備金 (Owner Reserve) ◦ アカウントがDEXオファーやトークンなどの1つのレジャーオブジェクトを保有するために必要な準備金 ◦ 1オブジェクト当たり 2XRP ◦ オブジェクトを削除することで準備金を取り戻すことが可能 • 準備金の額はバリデータによるオンレジャーのガバナンス投票によって決定 22 ◦ SetFeeトランザクション ◦ FeeSettingsオブジェクト
  10. アカウントの管理 アドレス: rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh • マルチシグ ◦ 最大32アカウントを指定可能 ◦ 複数人でアカウントの操作が可能 •

    レギュラーキー ◦ 他アドレスのキーでトランザクションへの署名 ◦ マスターキーの流出リスクを減らす • マスターキーの無効化 ◦ プロトコルでマルチシグを必須とする運用が可能 24 SignerListSet トランザクション SignerList オブジェクト SetRegularKey トランザクション AccountRoot オブジェクト AccountSet トランザクション AccountRoot オブジェクト
  11. ここまでのおさらい • コンセンサスの仕組み ◦ 資本力/資金力に依存しないより分散した仕組み • レジャーオブジェクト/トランザクションタイプ ◦ XRPレジャーにおけるデータの表現 ▪

    レジャーオブジェクトの操作 • 準備金と手数料 ◦ 一般ユーザは低手数料で利用でき、攻撃者に大きな攻撃コスト • アカウントの管理 ◦ プロトコルの機能で秘密鍵の運用方法を決定できる 25
  12. Payment • Payment: シンプルな直接支払い ◦ Paymentトランザクション • Check: 小切手形式の後払い ◦

    CheckCreate, CheckCash, CheckCancel • Escrow: 条件付きの支払い ◦ EscrowCreate, EscrowFinish, EscrowCancel • Paychan: 非同期の支払い ◦ PaymentChannelClaim, PaymentChannelCreate, PaymentChannelFund 30
  13. Payment: シンプルな直接支払い Paymentトランザクションを使用する XRP to XRPやXRP to Token、Token to Tokenのような支払い。

    • クロスカレンシー支払い • マルチホップ支払い • スワップなど 31 XRP XRP 送金人 受取人 JPY JPY Payment
  14. Paychan: 非同期の支払い • 個々の取引をオフチェーンで処理し、後々まとめて決済する。 37 XRP PayChan 送金人 受取人 XRP

    PaymentChannel Create PaymentChannel Claim PaymentChannel Fund 1000XRP オフチェーン Claimの送信 Claimの検証 10XRP, 2XRP,4XRP… 16XRP
  15. トークンの管理 • 規制要件準拠のための ◦ 保有者制限機能 ▪ トークンが保有可能なアカウントを発行者が認可 ▪ 認可トラストライン ◦

    凍結機能 ▪ 第三者間のトレード、送付を禁止する ◦ 回収機能(開発中) ◦ XRP/トークン入金制限機能 ▪ Paymentトランザクションによる入金を認可制とする • Checkなどでの入金は可能 ▪ DepositAuth 42
  16. DEX • 世界初のDEX ◦ 2012年のXRPL稼働当初から存在 • 無制限のペアとオンチェーンの注文情報 ◦ 注文情報はすべてチェーン上に公開情報として存在 ◦

    過去の約定情報も historicalデータから取得可能 • AutoBridgingによる最良レートの自動採用 ◦ USD->EURのトレードでUSD/XRP,XRP/EURの流動性も自動的に利用される。 45
  17. DEX/CLOB • 世界初のDEX ◦ 2012年のXRPL稼働当初から存在 • 無制限のペアとオンチェーンの注文情報 ◦ 注文情報はすべてチェーン上に公開情報として存在 ◦

    過去の約定情報も historicalデータから取得可能 • AutoBridgingによる最良レートの自動採用 ◦ USD->EURのトレードでUSD/XRP,XRP/EURの流動性も自動的に利用される。 46
  18. DEX 48 JPY USD DEX JPY/XRP DEX XRP/USD EUR ETH

    DEX ETH/XRP DEX XRP/EUR XRP • プロトコルネイティブでXRPをブリッジ通貨とする仕組み
  19. AMM • CLOBの流動性との統合 ◦ DEXでのトークントレードやクロスカレンシー送金時に CLOBだけでなくAMMの流動性も自動的に利用される。 • 無制限のプールとプール毎のガバナンストークン (=LPToken) ◦

    手数料投票や連続オークションへの入札 • 手数料無料の権利を競い合い、低ボラティリティでも裁定機会を与えるための連続オークション ◦ トレーダー...ボラティリティがプールの手数料未満でも裁定機会を得ることができる ◦ LP…オークションから収益を得ることができる • MEV/フロントランニングなし。 ◦ トランザクションは正規化された順序で実行され、複数のバリデータとの合致が必要なため。 ◦ 1つのバリデータがレジャーに含めるトランザクションを決定したり、その順番を決めることは不可能 50
  20. NFTの売買 53 Alice NFToken Offer Sell 100XRP Bob NFToken CreateOffer

    NFToken AcceptOffer Sell 100 XRP Owner Alice → Bob NFToken 100 XRP
  21. NFTのブローカー取引 54 Alice NFToken Offer Sell 100XRP Bob NFToken CreateOffer

    NFToken CreateOffer Sell 100 XRP Owner Alice → Bob NFToken 100 XRP MP Buy 105 XRP 5 XRP NFToken AcceptOffer NFToken Offer Buy 105XRP
  22. Hooks(開発中) • XRPLのトランザクション送受信の前後へロジックを組み込むことがで きる ◦ 支払いを行う前に・・・ ◦ 支払いを受け取った時に・・・ ◦ NFTを購入した時に・・・

    ◦ Hook実行用トランザクションを実行した時に・・・ • State操作はもちろんのこと、Hookロジック内からトランザクションを 送信することも可能 ◦ 支払いを受けた時に NFTを転送 ◦ NFTを売却した時にトークンを売却 • パラメータやメモなどでHookにデータを渡すことが可能 56
  23. Hooks(開発中) 58 Alice Bob Hook • 1000XRPを超える支払いはブロック Pay 1500XRP Alice

    Bob Hook Pay 1000XRP • 支払いの一部は他アカウントへ送金 Charlie Pay 100XRP
  24. サイドチェーン • Witnessモデル 64 XRPL SC Witne ss ClaimId 123

    Regist / Delete Witne ss Witne ss Bob Bob Door Door 100XRP/ClaimID:123 100XRP
  25. インフラ • ウォレット ◦ Xumm ◦ GemWallet ◦ Bifrost Wallet

    ◦ CROSSMARK • フロントエンドライブラリ ◦ JavaScript (xrpl.js) ◦ Python (xrpl-py) ◦ Java (xrpl4j) ◦ Go (xrpl-go) 66 • エクスプローラ ◦ Bithomp ◦ XRPScan ◦ XRPL エクスプローラ
  26. 開発者リソース • 開発者Discord ◦ “XRP Ledger Developers” • 5000人の参加者 •

    毎月のAMA • AMMやDEXなどの機能や目的毎に特化したチャンネル • 日本語チャンネル 70 xrpldevs.org
  27. 業界最高クラスのセキュリティ 自己管理型ウォレット ✔ XRPレジャーで発行されたトークンのみ対応 ✔ 秘密鍵はユーザーが管理 無料アプリ ✔ 年間60ドルでProへアップグレード可能 業界最高クラスの

    セキュリティ ✔ モバイル端末専用にすることでリスク低減 ✔ 第三者機関によるセキュリティ監査に合格 xApps ✔ Xumm経由で多様なアプリ(xApps)にアクセス Xumm Tangemカード ✔ Xumm仕様のカード型ハードウェアウォレット ✔ Proユーザーに2枚配布 Xummアプリの主な特徴
  28. Xumm Tangemカード 通常のアカウント 特徴 デイリーユース 向け ✔ 秘密鍵を紙などに書いて管理 ✔ 送金時などの署名はパスコード

    ✔ ネットワークに接続している   「ホットウォレット」 メリット・デメリット 〇 署名が簡単 × 秘密鍵の書き間違えリスク × ハッキングリスク 特徴 貯蓄向け ✔ 秘密鍵はNFCチップに保存 ✔ 送金時などはカードを端末にか ざして署名 ✔ ネットワークに接続していない   「コールドウォレット」 メリット・デメリット 〇 ハッキングリスクが   極めて低い × カードを持ち歩く必要あり Xumm+Tangemなら 両方使える! タンジェム