XRP Ledger: Reservesと宛先タグの解説

1. はじめに

こんにちは、セキュリティ部コールドウォレットグループと決算システム・リスティング部クリプト入出金開発グループを兼務している山崎です。昨年12月から新たにコールドウォレットグループの開発にも携わることになり、いわゆるブロックチェーンに関わる開発を色々とやらせていただいています。

過去にPolkadotのアドレス形式とリプレイプロテクションに関して記事を執筆しましたが、今回のテーマはXRP Ledger(以下、XRPL)です。XRPLはその独自性と、他のブロックチェーン技術との比較において興味深い特徴を持っています。この記事では、XRPLの基本的な概念から始め、特にPolkadotなどの他のチェーンと比較しながら、そのユニークな特性と仕組みを紹介したいと思います。tech.coincheck.blog


2. XRPLの開発背景と運営構造

まずXRPLの開発背景、運営構造について簡単に説明します。

XRPLは2011年から2012年初頭にかけて、Jed McCaleb、Arthur Britto、David Schwartzによって開発されました。2012年9月、JedとArthurはChris LarsenとともにRipple社(当時はOpenCoin Inc.)を設立し、Ripple社がXRP Ledger上で開発を行う代わりに、800億XRPをRipple社へ譲渡することを決定しました。この歴史的背景から、XRPLの開発とXRPの供給に関してRipple社が中心的な役割を担っていることが分かります。
引用
xrpl.org

この供給管理機構は、Ripple社の中央集権的な管理がしばしば指摘される理由の一つです。これに対応するため、2017年には550億XRPがEscrowに預けられる措置がとられました。Escrowとは預託機能のようなもので EscrowCreateトランザクションを用いて作成することができます。これにより、Ripple社が市場に一度に大量のXRPを放出し、価格に影響を与えることを自己制限することができます。XRPの供給量をより透明かつ予測可能にし、市場参加者に信頼性を提供することを意図しています。
引用
xrpl.org

さらに、XRPLのコンセンサスプロトコルはUnique Node List(UNL)という独自の概念に基づいており、これは特定の信頼できるバリデーターのリストを意味します。このUNLに基づいたコンセンサスプロトコルは、トランザクションの検証が高速かつ低コストで行われる一方で、中央集権性に関する議論を引き起こしています。
引用xrpl.org

ここまで、XRPLの開発背景と運営構造を概観しました。次に、Reserves宛先タグ(Destination Tags) を例に、他のチェーンや通貨との違いにも触れながら解説していきます。


3. Reserves

まずは Reserves についてPolkadotとの比較も交えながら解説していきます。
引用
xrpl.org

XRPLではスパムや悪意のある使用によってネットワークへの負荷が高くなることを防ぐためにReserves と呼ばれる仕組みが存在します。他アドレスへのXRPの送信やアカウントの設定を変更するためには、各アドレスが一定量のXRPを保有している必要があり、その必要とされる保有量のことを Reservesと呼びます。Reserves にはBase ReserveOwner Reserve の2つがあり、ここではBase Reserve に焦点を当てます。現在のBase Reserve の要件は10XRPなので、他アドレスへトランザクションを送信するためには予め10XRPを保有する必要があります。

この概念は、以前ブログで取り上げたPolkadotの Existential Deposit と類似しています。Polkadotではアカウントが維持しなければならない最低限の通貨量が Existential Deposit として設定されています。 Existential Deposit を下回るとアカウントは reap 、つまり刈り取られてしまいます。この措置も、スパムや悪意のある使用によるネットワーク負荷の増加を防ぐ目的で導入されています。
Polkadotのアドレス形式とリプレイプロテクションの仕組み - coincheck tech blog

しかし、XRPLとPolkadotでは、アカウントが保持すべき最低通貨量を下回った場合の処理が異なります。

XRPLの場合、アドレスの残高が10XRP未満になると、そのアドレスから他のアドレスへXRPを送金するトランザクションの送信が不可能になります。ただし、この状態でもアドレスはネットワーク上から削除されるわけではなく、他アドレスへの送金など特定の種類以外のトランザクションは依然として実行できます。

アドレスが再びアクティブになるには、他のアドレスから十分なXRPを受け取るか、Reservesの最低保有額要件がアカウントのXRP保有量以下に調整される必要があります。ただし、最低保有額要件の変更は Fee Voting というプロセスを通じて行われるため、容易ではない点に注意が必要です。
引用
xrpl.org

一方、Polkadotでは、アカウントの残高が Existential Deposit を下回った場合、アカウントは「reap」、つまりネットワークから刈り取られてしまいます。そして "The account will be wiped from the blockchain's state to conserve space, along with any funds in that address" とあるように、アカウントのnonceもリセットされ、アドレスとそのアドレスに関連する資金はブロックチェーンの状態から削除されて空間を節約します。この処理は、アカウントが一時的にネットワークから消えることを意味します。この点から、Polkadotは最低保有額を下回った場合の対応がXRPLよりも厳しいと言えます。ただし、XRPL同様この状態は恒久的ではありません。該当アドレスにExistential Depositを超える額が入金されると、アカウントは再度利用可能になります。
引用
wiki.polkadot.network

Polkadotでは、アカウントの残高が意図せずExistential Depositを下回らせてしまう送金を防ぐために「Keep-Alive Checks」という機能が組み込まれています。この機能を活用することで、Existential Depositを下回る送金が行われないようにすることが可能です。


4. 宛先タグ(Destination Tags)

次に 宛先タグ(Destination Tags) について解説します。
引用
xrpl.org
宛先タグ(Destination Tags) はXRPLで支払いの受取人や宛先を特定するために使用されます。

In other distributed ledgers, it is common to use different deposit addresses for each customer. In the XRP Ledger, an address must be a funded, permanent account to receive payments. Using this approach in the XRP Ledger wastefully consumes resources of all servers in the network, and is costly because the reserve amount must be set aside indefinitely for each address.
Source and destination tags provide a more lightweight way to map deposits and payments to individual customers.


とあるように、多くのチェーンでは、顧客ごとに異なる入金アドレスを提供することが一般的です。しかし先ほど説明した通り、XRPLではアドレスが送金するためには最低保有額である10XRP以上を持つ恒久的なアカウントでなければなりません。この方式を採用すると、ネットワーク上の全サーバーのリソースを無駄に消費し、各アドレスに対して10XRPを無期限に確保する必要があります。

宛先タグは、入金を個々の顧客にマッピングするためのより軽量な方法を提供します。例えば取引所では、顧客ごとに異なるアドレスを用意する代わりに、宛先タグを使用して一つのアドレスを個別の顧客に入金を割り当てることができます。これにより、顧客ごとに10XRPの最低保有額を用意する必要がなくなり、ネットワークおよび取引所の負担を軽減します。

宛先タグを必須とする設定も可能です。これは「AccountSetトランザクション」を通じて、「RequireDest」フラグを有効にすることで実現できます。この設定を行うことで、宛先タグを指定せずに入金が行われた場合、入金先が不明確になる問題を防ぐことができます。
引用
xrpl.org

宛先タグの機能は、IOSTやXLMのメモ機能など、他のブロックチェーン技術でも類似の仕組みが提供されています。

このような背景から当社にXRPを入金していただく際には必ず「宛先タグ」を入力していただく必要があり、「宛先タグ」の未入力や異なる「宛先タグ」を入力した場合、残高への反映や暗号資産の返還は仕組み上できないので十分にご注意ください。
faq.coincheck.com


5. 最後に

XRPLにおける Reserves宛先タグ(Destination Tags) を通じて、XRPLの特徴を簡単に解説してきました。過去に書いたPolkadotに関するブログといくつかの点で重複する内容もありましたが、暗号資産の世界を掘り下げてみると、各通貨が独自の仕様や背景に基づく独特の思想を持っていることが、この技術の多様性と魅力を一層際立たせています。今回の記事がXRPLの理解を深める一助となれば幸いです。

なお、コインチェックでは一緒に働くエンジニアを募集中です!詳しくは求人ページをご覧ください。
corporate.coincheck.com