最近のイーサリアムの手数料高騰により、イーサリアムでもレイヤー2の話題が盛り上がってきているので、個人的に調べられる範囲で主なものや話題のものを調べてみました。
STATE CHANNELS系
Lightning Networkのようなペイメントチャネルネットワークを実現するソリューションをState Channels系としました。Raiden - スマートコントラクトをLightning Networkにおけるペイメントチャネルとして扱うもので、そのためETH以外にもERC20トークンを送金することもできます(二者間の全てのチャネルに十分な残高があれば)。
RDNというトークンには特に有効な役割はないように思われます。
単純にペイメントチャネルがイーサリアム上のスマコンだからいろんなトークンを扱えるLN、と考えると理解しやすいと思います。
トークンを扱えるのでDEXの実現が期待されますが、raidEXというプロジェクトのGitHubは9ヶ月前を最後に枯れているようです。
サイドチェーン系
イーサリアムのブロックチェーンとは別のブロックチェーンを(時には複数)運用し、結果のみをブロックチェーンに解決するソリューションをサイドチェーン系としました。
Plasma (旧OmiseGOなど) - イーサリアムのブロックチェーンの下にPlasmaチェーンが複数あり、各Plasmaチェーンの下にもPlasmaチェーンが複数ある、ツリーと呼ばれる形をとります。階層になっているこれらのチェーンで処理を分散することで、事実上無数のブロックチェーンを最終的にイーサリアムのブロックチェーン上で決済できる、という主張がされています。
もし不正なデータが決済されてしまった場合は、イーサリアムのブロックチェーン(または、不正があった階層より上のいずれかの親チェーン)で不正の証明を行えばロールバックされ、作成者はペナルティを受けます。ただし、不正があったことを確認し証明するには自身の使うPlasmaチェーンに加え、イーサリアムのブロックチェーンまで連なる全てのPlasmaチェーンを監視する必要があり、ここは問題点といえます。単純にスケーリング効果が大きいほどハイスペックなハードウェアや回線、技術力が必要になるので一般人には不正を確認することは難しくなるでしょう。
また、メインチェーンの限界が同時に不正を証明できる人数の上限でもあるので、いずれかのPlasmaチェーンが暴走した場合、そのユーザーが大挙してブロックチェーンを利用するので以前説明したFlood and Lootのような脆弱性があります。
最近ではOMG Network (旧OmiseGo)上でUSDTが発行されました。
SKALE - ホワイトペーパーには色々書いてありますが、要するにサイドチェーンだということしかわかりませんでした。トークンが存在し、トランザクションを発行するユーザーだけでなく、開発者がサイドチェーンを利用したり、バリデータとして検証する権利を得るためにもトークンが必要(=検証することに負のインセンティブ)らしいです。ただしネットワークローンチ前(テストネット期間?)は検証することで逆にもらえるみたいです。
それほど色々見てきたわけではありませんが、テストネットの実行にインセンティブを与えながら本番の検証には明確に負のインセンティブを付与するプロジェクトは初めて見ました。言うまでもなく悪手だと思いますが、詳しくないので誤解かもしれません。
「セミレイヤー2系」
セミレイヤー2系のスケーリングソリューションにはRollupsというカテゴリがあります。これは、特定のスマートコントラクトに集めた資金間のトランザクションをオフチェーンで集約して、その結果のみをブロックチェーンに記帳していく方法で、ブロックチェーンからスナップショットの内容が確認できるというメリットがあります。(Plasmaなどではブロックチェーンに記載されるのは単なるブロックヘッダーのハッシュですが、Rollupsだと残高が確認できるようです)これらはほぼ無限のスケーラビリティを主張するRaidenやPlasmaとは異なり、イーサリアムの処理能力を現在の数十倍程度にする効果が見込まれています。
用語:オペレーターとは、Rollupsにおいてオフチェーンの取引を受け付けたり配信する役目を果たす管理者のことです。Rollupsは資産のカストディの面ではトラストレスですが、オペレーターが特定のユーザーのトランザクションを拒否することができるため対検閲性はありません。
ただ、ZkRollupsを使うLoopring v3ではオペレーターに競争させることで全てのトランザクションを含めるインセンティブを与えようとしているようです。
ZkRollups (Loopringなどが活用) - オペーレーターによるトランザクションの集約によって配信される最新状態には、直前からの状態の遷移を証明するゼロ知識証明が含まれ、これがオンチェーンのRollupコントラクトによって検証されるので、誰かがブロックチェーンを検証している限り不正な状態を配信することはできません。欠点としては、オンチェーンでゼロ知識証明を検証するコードを書くことが難しく、かなりガスコストもかかると思われる(=手数料が高い)ことと、ゼロ知識証明の作成のために一定数のトランザクションが必要なため、もし需要がそれを下回ると少数のトランザクションとオペレーターによるダミートランザクションで費用を負担する必要があるため、トランザクションを待つ時間がかかるか手数料が嵩むことが挙げられます。
なお、ZkRollupsに関わる開発者はこれまでゼロ知識証明の計算方法でトラストレスセットアップが可能で十分に計算効率の良いものがなかったが、開発者はSNORKsという新世代のゼロ知識証明の誕生によって可能になったとし、オンチェーンでスマートコントラクトを実行するEVMとほぼ同じものが実現できる見込みがあるとしています。(スマートコントラクトをZkRollupに移行することが容易になるそうです)
トラステッドセットアップとは:一般に、ゼロ知識証明を使用するシステムは最初に乱数を設定する必要がありますが、この乱数が適切に生成され、絶対に漏洩しないように破壊されなければなりません。第三者がこのプロセスを適切に行うことを信用しないといけないのがトラステッドセットアップです。(この場合はオペレーターをトラストする必要があります。)
乱数が漏洩してしまうと好き勝手できてしまうので、例えばZcashの場合は秘密裏に不正発行される恐れがあります。
セキュリティ上の懸念としては、ZkRollupsでトラステッドセットアップが必要な伴う従来のゼロ知識証明を使う場合はやはり少なくとも1人の正直なオペレーターが必要になることと、ゼロ知識証明の歴史が浅いため万一暗号が破られた場合のために、オペレーターのみが状態の遷移を配信できるようにすることが好ましいと考えられていることです。(この提案は対検閲性を損ないます)
Optimistic Rollups - オペーレーターによるトランザクションの集約によって起こる状態の遷移をとりあえず受け入れて、もし不正な結果を含む状態が配信されていたら他のオペレーターやユーザーが不正なブロックを巻き戻して、不正を働いたオペレーターをスラッシング(預託金の没収)することができるというのがOptimistic Rollupsです。ただし、そのためにはユーザーは必ずレイヤー1のRollupコントラクトを監視していなければなりません。セキュリティ上の懸念としては、Optimistic Rollupsの場合はオペレーターの少なくとも1人が不正を通報する必要があることと、マイナー(PoW)やバリデーター(PoS)のインセンティブを悪用した不正通報の妨害が行われる可能性があることが挙げられます。
Optimistic Rollupsはスマートコントラクトをそのまま実装できることが長所とされていましたが、前述の通りZkRollupsでも実現可能と考えられているため最近では本命はZkRollupsと考えられています。
まとめ
個人的な意見ですが、レイヤー2ソリューションの中でRaidenは機能が送金限定なことから過小評価されている気がするのと、Plasmaは中央集権化などのデメリットとのトレードオフがかなり激しいと感じます。セミレイヤー2系の中ではZkRollupsの不正が難しい仕組みは画期的に感じますが、最大で数十倍の処理能力を得ることの対価として少数のオペレーターへの依存(トラステッドセットアップや、インフラの問題など外界の影響を受けやすくなる)と対検閲性の放棄だと認識しました。参考になりましたでしょうか。もし間違ったこと、古いことを言っているようでしたらぜひご指摘をお願いします。
参考:
イーサリアムのスケーラビリティ問題を解決するplasmaの仕組みと重要性を理解する
Explaining Plasma and Rollups: Advantages & Limitations - Matic Network
SKALE ホワイトペーパー
Optimistic vs. ZK Rollup: Deep Dive