イーサリアムはスマートコントラクトを用いた分散型アプリケーションプラットフォームとして非常に有望なプラットフォームです。
しかし、現状ではイーサリアムネットワーク上でのトークンのやり取りは送金に多くの時間がかかってしまったり、多額の手数料がかかってしまうなどの問題があげられます。
この問題を解決するためにさまざまなプロジェクトが開発されていますが、その中のひとつで非常に魅力的なのがRaiden Network(ライデンネットワーク)です。ライデンネットワークを用いることで、高速かつ手数料の低い送金が実現できるとされています。
そこで、当記事ではライデンネットワークの仕組み、および実装上の問題点などについてお伝えしていきます。
ライデンネットワークとは
ライデンネットワーク(Raiden Network)とは、イーサリアムネットワーク上でEtherやERC20に準拠したトークンをオフチェーン処理で移動させることです。
ユーザー間でペイメントチャネルを作り、その中にユーザーの資金をデポジット(ロック)します。そして、後述するようにバランスプルーフに従ってトークンをやり取りし、最終的な結果のみをブロックチェーンに記録します。
オフチェーン処理なのでトランザクションの承認を必要とせず、高速な送信、低コストな手数料、ブロックチェーンのスケーラビリティ問題の対策などが可能になります。
ライデンネットワークのメリットやIoTにおけるマイクロペイメントなどはさまざまな記事で書かれているので当記事ではライデンネットワークの仕組みと問題点について紹介していきます。
ちなみに、ライデンネットワークの仕組みはビットコインにおけるライトニングネットワークの仕組みとほとんど同じです。
ライデンネットワークの仕組み
ライデンネットワークの原理はビットコインのライトニングネットワークとほとんど同じですが、ここではライデンネットワークで強調されているbalance proofs(バランス・プルーフ)という考え方に従って仕組みを見ていきたいと思います。
バランスプルーフとは、2者間の間においてオンチェーンでデポジットした通貨(トークン)をやり取りする概念のことです。両者がデポジットした通貨を上限として、下図のようにオフチェーン処理でやり取りします。
(source: What is the Raiden Network?)
バランスプルーフにおいて、トークンのやり取りはデジタル署名とHTLC(ハッシュを使ったタイムロック)で安全に行うことができます。暗号学的にシンプルなトリックで安全性を保つことができるようになっています。
この仕組みについては以下のライトニングネットワークの記事で詳しく解説しているのでぜひご覧になってください。
参考:ビットコインにおけるライトニングネットワークの仕組みを分かりやすく解説
上述したように、バランスプルーフを用いたペイメントチャネルを開くには両者がトークンをデポジットする必要があります。このデポジットは特別なマルチシグアドレスに送信することによって行われ、このトランザクションをOpening transaction(オープニングトランザクション)と呼びます。
オープニングトランザクションはブロックチェーンに記録されるオンチェーン処理であることに注意してください。対して、オープニングトランザクションによって開かれたペイメントチャネル内での取引はオフチェーン処理で行われるので、ブロックチェーンに記録されることはありません。
チャネル内のトランザクションは、Commitment transaction(コミットメントトランザクション)と呼ばれ、常に最新の状態が保たれるようになっています。つまり、チャネル内で1回トークンのやり取りをするとそのコミットメントトランザクションにより古い状態が新しい状態に上書きされるのです。
チャネル内では古い状態の情報に関しては一切保持していなく、最新の状態のみ保っています。そして、やり取りを終えたペイメントチャネルを閉じるときに、最新の状態のみがブロックチェーンに書き込まれるのです。
ペイメントチャネルは、セットされたタイムロックによってある一定の時間やブロック数が追加されることで、その時点での最新状態がブロードキャストされ、ブロックチェーンに記録されるようになっています。つまり、これはペイメントチャネルが閉じられることを意味しています。
ここまでのバランスプルーフはある2者間で行われており、イーサリアムのプロジェクト名ではμRaiden(micro Raiden)と呼ばれています。厳密にはμRaidenは多対一のペイメントチャネルになります。
一方、下図のような多対多のチャネルがライデンネットワークになります。
(source: What is the Raiden Network?)
例えば、上図において参加者Aが参加者Dとライデンネットワークを利用したいときは、A→B→C→Dでバランスプルーフを用いたチャネルを開くことでやり取りすることが可能になります。
このように、A→Dと直接チャネルを開く必要はなく、複数の参加者を介することでネットワーク的に遠くに位置する参加者に対しても、ライデンネットワークを利用することができるようになるのです。
実際にライトニングネットワークを通してトークンを送信するときは、下図のようにある値(ハッシュ元のバリュー)を逆伝搬するように渡すことでセキュアにトークンを送ることができます。この部分の仕組みについても上記のライトニングネットワークの記事で解説しています。
(source: What is the Raiden Network?)
ライデンネットワークの問題点
ルーティング問題
ライデンネットワークやライトニングネットワークにおいて、まずあげられる課題がルーティングに関する問題です。ネットワークにおいて、特定のピアに到達するために他のピアを介してつながります。このとき、どのようにして最適な仲介ピアを選択するかという問題です。
現段階では、下図のように分散化されていないネットワークになってしまうことが予想されています。つまり、ある特定のピアがハブ化しそのピアを中心とするような中央集権化されたネットワークになってしまうことが考えられるのです。
(source: Mathematical Proof That the Lightning Network Cannot Be a Decentralized Bitcoin Scaling Solution)
高額の送金には適していない
ライデンネットワークはあくまでも少額の高速送金として実用化されます。なぜなら、バランスプルーフでは参加者がデポジットしたトークンを上限としてやり取りが行われるからです。
なので、もし100万円相当のETHをライデンネットワークを使って送金したい場合は、チャネルを作る両者が最低でも合計100万円をデポジットする必要があります。
2者間のペイメントチャネルであるμRaidenならまだしも、多数のピアを介するライデンネットワークではこのような高額な送金は現実的でないことが分かります。例えば、A→B→C→Dという4階層のライデンネットワークでもA→B、B→C、C→Dそれぞれのチャネルにおいて100万円のデポジットが必要になるということです。
さらに、参加者はそれぞれ複数のチャネルを持つことになるのでそれぞれのチャネルに対しデポジットを行わなければなりません。
ライデンネットワーク上でのプロジェクト
イーサリアムネットワークにライデンネットワークが実装されることを前提に、さまざまなプロジェクトが立ち上がっています。ここでは代表的なプロジェクトをいくつか紹介していきます。
RaidEX
RaidEXはライデンネットワーク上でトークンのアトミックスワップを可能にする分散型取引所です。分散型取引所はRaidEXの他にもさまざまなものが存在しますが、それらはブロックチェーンにおける承認時間に依存してしまうので送受信が遅くなってしまいます。
RaidEXでは、より高速かつ低手数料の分散型取引所を目指しています。
Trustlines Network
Trustlines Networkは元々はリップルのアイデアをイーサリアム上に構築することを目指しています。ライデンネットワークを利用することによりIOUベースで高速な送金を目指しています。
Raidos
Raidosは、ライデンネットワークで使ってるチャネルを拡張してサイドチェーン技術を導入することを目指している構想段階のプロジェクトです。
ライデンネットワークでは、EtherかERC20に準拠したトークンのみの移動に限られていますが、Raidosはさまざまなスマートコントラクトが使っているサイドチェーンとやり取りすることでイーサリアムの機能を拡張することを目標にしています。
イーサリアムのスケーラビリティ問題を解決するためのプロジェクトはここで解説したライデンネットワークの他にもさまざまなものがあげられます。例えば、プルーフ・オブ・ステークを前提としていますがSharding(シャーディング)はとても期待されています。シャーディングではトランザクションの承認を各ノードが役割分担するように行う技術です。
参考:ShardingはEthereumのスケーラビリティ問題を解決することができるのか