本稿で何度か取り上げている通り、今年はビットコイン上でDLCやコベナンツなど、スクリプト機能を活用したプロトコルへの関心が高まっています。今月ローンチしたFuji MoneyとLava Loans ProtocolはそれぞれLiquid NetworkのスマートコントラクトとビットコインのDLCを用いてビットコインを担保にステーブルコインなどを借りられるようにするプロダクトです。

各プロジェクトのホワイトペーパーはここにリンクするので、興味のある方はぜひ原文を当たってください。

https://vulpem.com/synthetic-asset-smart-contract.pdf

loans-spec/loans_spec.pdf at main · lava-xyz/loans-spec
Contribute to lava-xyz/loans-spec development by creating an account on GitHub.

今日はこれらのプロトコルの概要を見ていきます。

Fuji MoneyはLiquidのトークン発行機能を活用した(Semi-) Trustless Cefi

Blockstream社が開発したLiquid Networkはコンソーシアムで運営されており、最近は証券トークンやNFTの発行・取引を行うユースケースを推しています。(当初は秘匿トランザクションのプライバシーや短いブロック間隔などを理由に取引所間の送金用途が想定されていましたが、多くの取引所がコンソーシアムに参加しているにも関わらず定着していません。)

実際のプロダクト例として、分散型のオプション取引ができるプロトコルが考案されているなど、ビットコインのスクリプト言語であるBitcoin Scriptを拡張したElements Scriptによって強化されたオンチェーンスマートコントラクト機能を利用したものが複数あります。

Fuji Moneyはビットコインを担保にステーブルコインが借りられるオンチェーンDefiで、現時点で貸し手はFuji Moneyの運営者に限られますが、いつでも誰でもトラストレスに預け入れた担保(L-BTC)の66%相当額までfUSDという独自のステーブルコインが付与されます。(すなわち、fUSDはBTCに裏付けられたドルステーブルコインということになります。)

ウェブサイトには1.1ドル分のBTCに対して1 fUSDを貸し付けると書いてありますが、プレゼン資料などでは1.5:1となっています。担保割れのリスク管理を考えると前者はおっかない印象ですし、おそらく当面は1.5:1で運用されるでしょう。

仕組みとしてはElements Scriptのコベナンツによって預け入れた担保を引き出す条件を指定します。その条件とは「貸付資産の全額返却」または「精算価格到達による担保没収」です。(後者はDLCで使われるものに似たブラインドオラクルに依存するため、完全なトラストレスではありません。)

定期的な金利支払いという概念は多数のトランザクションの生成が必要になるため相性が悪いので考えず、最初のコントラクトの生成時に0.25%の手数料を取るのと、後は精算時の売却価格と貸付金額の差額で儲けを取るビジネスモデルだそうです。必要は発明の母ですね。(言うなればBTC先物取引所に近いです)

漫画ウシジマくんに出てくる、初回分の利息が引かれた後の金額が貸し付けられる闇金モデルが頭をよぎりました。

ライトニングネットワークからLiquid Network上へのリバースサブマリンスワップによるトラストレスな支払いが可能なため、担保をライトニングネットワークから預け入れることもできます。(返済時も同様に担保を受け取ることができます。)

シンプルで素晴らしいモデルだと個人的には思いますが、主な欠点としてはfUSDのネットワーク効果、そしてステーブルコインのボラティリティが抑えられるのかという点でしょうか。

fUSDという独自のステーブルコインを貸し付けるからには、借りて使える場面が必要なのでネットワーク効果を育てる必要が大きなハンデとなるでしょう。貸し付けるアセットは無から生み出されるためFuji Money側に資金力がなくても運営できることがメリットですが、仮にL-USDTを借りられるモデルがあればユーザーはそちらを好むという予測が立てられます。

また貸借成立時には秘匿トランザクションを使用しないためfUSDの不正発行がないことはチェーンを監視することで検証可能だそうですが、担保を入れて発行するステーブルコインに共通する弱点として担保資産の価格ボラティリティが高まった場合に返済・追証需要が発生する、担保割れの恐れが出てくるなど価格が安定しにくい特徴がありそうな印象を受けました。

例えばイーサリアム上のDAIではETHを預け入れて発行されている割合が高かった頃や、今では担保の大部分を占めるUSDCのデペグが発生した際などと同じイメージです。

コントラクトの生成に手数料を取るなどしてビジネスとしての運営を目指しているのもFuji Moneyの特徴の1つです。つまりFuji Moneyは所謂Defiというよりは(Semi-) Trustless Cefiですね。

Lava Loans ProtocolはDLCによって

Fuji MoneyがLiquid Networkの提供するコベナンツやトークン発行などの強力なスマートコントラクトを活用する一方で、Lava Loans Protocolはビットコイン上で既に使えるDLCを用いたアプローチを採用しています。

今から1年ほど前にビットコイン・ライトニング関連情報が集める掲示板Stacker Newsで開発者を採用していたLavaで借りられる資産はオレオレステーブルコインではなくSolana上のUSDCだそうです。返済時にはSolanaのスマートコントラクトも活用するためです。

Solanaの利用に関して反発を予想してか、このディテールはかなり控えめに書いてありました。

具体的にはオフチェーンのコントラクト(DLC)には4つのケースがあります:

1.担保が精算価格割れしている場合はレンダーが即座に担保を没収できる。(精算価格割れをオラクルが証言)

2.ユーザーが借りた資産を金利を載せて満期日前にSolana上のスマートコントラクトに返済。このときスマートコントラクトから取得できる鍵を使って担保を引き出せるようになる。正しく返済処理するにはレンダーの協力が必要である。そのためユーザーが正しく返済したがレンダーが一定時間内に協力しない場合、ユーザーが担保の代わりに貸付金額+金利分+レンダーのStakeする金額(合計>担保額?)を代わりに入手できる仕組みになっている。

3.ユーザーが返済を行わないまま満期日が到来した場合、担保のうち貸付金額と金利相当額はレンダーが、残った部分はユーザーが回収可能。満期日、貸付金額は最初から決まっており、オラクルが満期日のビットコイン価格を証言することで双方の取り分が計算可能。

4.ユーザーが返済したがオラクルが証言を行わない場合など、例外時の処理。ロックタイムの経過後、ユーザーは担保全額を回収し、

また、Solana上の貸付とビットコイン上の担保預け入れをアトミックに行うための工夫として、DLCに入金する前段階のトランザクションがあり、ハッシュロックされたそのアウトプットをレンダーがDLCに入金するためにはSolana上で貸付金が引き出され、そのローンに特有のプリイメージが公開される必要があるようです。(これがないとレンダーに担保を人質に取られてしまう可能性があるため)

トータルで見るとハッシュロックとDLC、Solana上の比較的シンプルなスマートコントラクトを上手に組み合わせて作っている印象でした。また、借りられる資産もSolana上のUSDCということで取引所の対応や他チェーンへのブリッジ手段も多く、その点ではFuji Moneyより利便性が高そうです。DefiというよりはLavaを相手にスマートコントラクトを使ってトラストを最小化して契約するという形態はFuji Moneyと共通しています。

欠点というより懸念点としてはやはりSolana上のコントラクトとのインテグレーションでエッジケースがないか(年に数回・数時間落ちているチェーンという印象が強いので、例えば落ちている間にビットコイン側でタイムロックなどが作動しないか等)に尽きるかもしれません。

あとはFuji Moneyにも共通する問題ですが、カスタムのプロトコルは独自ウォレットに頼ることになるのでそのあたりの安全性・利便性の問題は両方ともつきものですね。

まとめ

・Fuji MoneyはLiquid上でL-BTCを担保にfUSD(独自ステーブルコイン)、Lava Loansはビットコイン上でBTCを担保にSolana-USDCを借りられるTrust-minimized Defiプロトコル。どちらも2023年5月ローンチ。

・Fuji MoneyはLiquidのコベナンツ機能を使ってシンプルにまとめられており、Lavaはビットコイン上のハッシュロックやDLCとSolana上のスマートコントラクトを上手に組み合わせる。どちらもビットコイン価格の面でオラクルに依存する部分があり、どちらもDefiというよりは運営者との相対取引専用。

・Fuji MoneyはLiquidというハンデがある上に借りられる資産も独自ステーブルコインなので、ユーザビリティではLavaに軍配が上がるかもしれない。