Superfluid staking -Reverse Staking Derivative-
概要
まず簡単にSuperfluid Stakingとはどんなものか説明すると、OsmosisというAMM型のDEX上のLPトークンのうち、ネイティブトークンである$OSMOをそのままStakingにも使うことを可能にする仕組みのことです。
OsmosisはCosmos sdkで作られたApplication specific chainの先駆けとなる、DEXを搭載したDPoSチェーンで、ネイティブトークンを任意のValidatorに対してStakingすることができますが、通常はStakingしてロックされたトークンは一切の流動性を持たなくなるため、Stakingと DeFi運用を両立させることはできません。
ですが、それを可能にしたのがこのSuperfluid Stakingです。
さらに、Superfluid stakingは新興DPoSチェーンがセキュアにLiquid Staking protocolを持つことも可能にしており、L1チェーンの在り方としてEthereumなどでは実現が難しいものとなっています。
そんな革新的な機能について、技術的なメカニズムとApplication specific chain(ASC)としてのDappの在り方に触れながら紹介していきたいと思います。
Liquid Staking
Superfluid Stakingの説明に入る前に、現在主流の Liquid Stakingのあり方を見ていきましょう。
例えば代表的なLiquid Staking protocolにはマルチチェーン上に展開されるDappであるLidoが挙げられます。 On Ethereumの話に絞っていうと、Lidoでは任意の量のETHをプロトコルに預け、Stakingを委任することにより、代わりにstETHという1ETH=1stETHで交換されるトークンを得ることができます。
このstETHはStaking derivativeと呼ばれます。stETHはStaked ETHを代替するため、Staking rewardの受け取りを保有量に応じて行うことが可能です。この意味において、stETHは、ETHが持つ純粋なトークン価値とStakingにより得られるイールドの両方の価値を併せ持つトークンなわけですが、市場ではETHに対して大まかに1:1の価格をつけています。
つまりLidoはStakingによりロックされる資産の債権トークンのようなものを提供することでStakedETHに擬似的に異なるユーティリティを与えます。
これによりStaking ETHは流動性を持つことが可能になったわけです。
結論として簡結に言えば、Liquid StakingとはStakingして流動性を失う金融資産に流動性を付与するApplicationと捉えられます。そして、現在はStaked Tokenの代替となるStaking derivativeを発行するようなApplicationが主なプレイヤーとなっています。
Superfluid Staking
Superfluid Stakingは上記のようなapplicationとは全く別の方法でLiquid Staking protocolを実現しています。その設計理由を深く理解するためには、Cosmos sdkチェーンのDPoSの仕組みに少しだけ触れる必要がありますので、そこから入ります。
最初にも述べた通り、OsmosisはCosmos sdkで作られた一つのBlockchainで、シビル耐性メカニズムにはDPoS(Delegated Proof of Stake)を採用しています。(コンセンサスアルゴリズムはTendermint)
このDPoSというのは、上限となるValidator数が決まっており、参加できるValidatorはそれぞれのStaking量に応じて順位付けされ決定されます。 しかしそれではDecentralizedではなさすぎるため、Staking Tokenを持つアカウントは任意のValidatorに対してStakingを委任することによりネットワークのValidationに間接的に関わることができるようになっています。
攻撃耐性の話をすると、ある悪意あるValidator or Validatorsは全Staking量の66%を抑えることができたら完全に攻撃できます。これに対する防止策としては、トークンの価格が上がり続けること、ネイティブトークンのStaking比率を上げること、Stakingを解除できるまでの期間を長く設定すること、悪意ある行動を検知してStaking中の資産を没収することなどがあります。
価格のことは最終的には市場が決めることなので置いておくとして、DPoSチェーンとしてはネイティブトークンのStaking比率を上げる工夫をすることと、後ろ二つの備え付けの防御機構を有効なものに保つことが大事になります。
そこで登場するのがLiquid staking protocolという訳ですが、前節で紹介したような、Staking derivativeを発行するようなモデルには大きな弱点をもたらす可能性があります。
それは何かと言うと、ネイティブトークン/Staked derivativeのペアの取引において、通常長期間ロック解除できないStaking Tokenを即座にネイティブトークンに変えることができてしまうことに起因する、Stkaingロック解除期間の実質的な無効化です。(これはETHには当てはりません、あくまでDPoSに関する話です。)
あらゆるPoSチェーンはあるValidatorや悪意ある攻撃に対しての負のインセンティブを設けるためにStaking解除期間を設定しています。(Osmosisでは14日)
例えば、あるValidatorがある時点において攻撃を行ったとしても、その攻撃がネイティブトークンの価値を大きく下げるようなものだった場合、自らのStaked Tokenのロックが解除されるのは2週間先だとすると、その時には経済的に損失になっていることも考えられるため、この解除期間はネットワークの安全性を向上させる重要な要素となっています。(攻撃できている時点でネイティブトークンをかなりの量Stakingしている必要があり、ネットワーク全体のStaking比率が大きいだけ大変になる。)
ですが、先ほど述べた手順でStaked Tokenを即座にネイティブトークンに変えることが極めて容易な状況においては、この負のインセンティブが働かなくなるため、ネットワーク自体のセキュリティの低下を招いてしまいます。
この仮説的脆弱性は新興のDPoSを採用するASCに大きく影響する可能性があるため、多くの利点があるにもかかわらず、それがLiquid Staking Protocolを使うことから遠ざけています。
しかしながら、気づいている人も多いと思いますが、OsmosisはSuperfluid Stakingを用いることによりこの課題を解決することに成功しました。
なぜなら、冒頭にも述べた通り、これはLP中にあるロックされているOSMO分をStakingにも使用できるようにするためのプロトコルであるため、Staking derivativeを発行せずにStakingとDeFi運用を両立させられているからです。
結局のところ、ユーザーとしてはStaking中のトークンがロックされDeFiでの運用ができないことが大きなペインポイントになっている訳ですが、逆転の発想として、すでに DeFiで運用している、かつ、その資産をロックしているような、Stakingと親和性の高いプロトコルにStkaingそのものの要素を組み込んでしまえば同じ効果が得られるからいいでしょ、という大胆で革新的でありながらもシンプルな発想のもと生まれたんですね。
どうでしょうか、少しはSuperfluid Stakingのプロトコルとしての秀逸さを理解していただけましたでしょうか?
フローとメカニズム
この節ではそれ自体がブロックチェーンであるOsmosisがどのようにSuperfluid Stakingを実装しているのか、プロトコルの細かいフローと共に見ていきたいと思います。
Delegateの流れ
現在のOsmosisの実装ではStakingするトークンはOSMOでなければいけません。なので、Superfluidを通してのStakingは、まずStaking量が決定され、その分のOSMOがMintされSuperfluidによるDelegationを管理する中間アカウントに送られるという手順を踏みます。
そして、その中間アカウントはそれに紐づくValidatorに、送られてきたOSMOをDelegateします。
なので、実質的にはこのValidatorごとに存在する中間アカウントがSuperfluidによるStakingを担っています。
これらのアカウントは主に報酬の分配とSlashingのハンドリングのための措置として存在します。
報酬に関するこのアカウントの役割はざっくり報酬の流れの中で述べた通りで、Slashingについても、中間アカウントがSlashingをまず受け止め、その後個別アカウントのLPトークンにSlashingの影響を反映させればすむように、一連の処理が複雑になりすぎるのを防いでくれます。
ちなみに、SlashingはSuperfluid Stakingにどう影響するかというと、通常のSlashingと変わらず、自分がDelegateしているValidatorがSlashingを食らった際に、その罰則分のDelegate量は没収され、Community poolに行くことになっています。Superfluidで言うと自分の持ってるLPトークンの価値が5%減ることになります。
ですので、Delegateする際のValidator選びには慎重になりましょう。
Staking量の決定法
Superfluidを利用したStaking量は、各Epoch開始時点の、14日ロックにしているLPトークン中のOSMOの分が用いられます。
LPトークン内の各トークン割合は毎時変化しますが、日本時間2AM時点のLPトークン中のOSMO分がそのEpoch中のStaking量として扱われます。
ですので、Epoch開始時にStaking量の調整がmintやburnを通して行われます。
Epoch中にstaking量が変わることはありません。
報酬の流れ
Osmosisは毎日日本時間2AMに始まり同刻に終わるEpochを持っており、それごとにLiquidity miningの報酬を配ったりします。
Superfluid用のStaking報酬もこのEpochの始まりと同時にネットワークのStaking報酬を司るアカウント(Distribution module account)に対して、全体のインフレ量の25%がMintされ、そのアカウントからブロック毎にStaking報酬が配られます。
Epoch中の報酬は各Validatorに紐づくSuperfluid Staking管理用の中間アカウントに渡ります。
そしてその中間アカウントは、Epoch終了時にLiquidity miningの報酬なども管理する、個別のアカウントが所有するgaugeへと貯められた報酬を送り、ユーザーはLiquidity miningの報酬と同時にSuperfluid分のStaking報酬も受け取れます。
まあ簡潔に言えば毎日日本時間2AMくらいにSuperfluidを通してstakingしている分の報酬がLiquidity miningの報酬と同時にもらえるという感じです。
最後に
このような柔軟なStaking方法が実現できるのはCosmos sdkのモジュール型の設計思想とコンセンサス部分との分離の恩恵に他なりません。
このSuperfluidはそれ自体が一つのモジュールとして存在し、他のモジュールと相互に依存して作られています。この機能追加自体は他のチェーンでいうハードフォークに当たるような改変ですが、それがOnchain Governanceを通してStakerによって意思決定され、実行されます。
このフローの是非に関する議論は別の機会に譲るとして、すくなくともこういう手段を持っていて、実用段階にあると言うのももっと認知されて良いCosmos sdk製ASCの利点だと思います。
OsmosisはこれからもAMM自体の機能の拡充もしていくことを表明しており、もう間も無くのStable swap機能の追加もアナウンスされています。
どんどん進んでいくCosmos sdk製ASCエコシステムの進化に皆さんも一目置いておくといいことがあるかも知れませんよ。
References:
https://www.coinbase.com/ja/cloud/discover/insights-analysis/what-is-superfluid-staking