Solana(ソラナ)初のオンラインハッカソン「Solana Wormhole Hackathon」の審査結果が11月25日に公開されました。ハッカソンはおよそ2週間にわたり開かれ、1,000人以上の開発者が登録し、DeFi(分散型金融)、Web3、NFTゲームなど60以上のプロジェクトが最終的に提出されました。
今回はソラナハッカソンで一等に入賞したメッセージアプリ、DeFiプロジェクトを含む4つのプロジェクトを紹介します。今回紹介するプロジェクトがソラナ上に展開されるかどうかは今後の開発次第になりますが、いくつかはソラナエコシステムを構成する重要なプロジェクトになる可能性はあります。
また今回紹介していないプロジェクトの中には、ガスレストランザクションを実現するSolGSNや分散型アイデンティティのコンセプトをソラナ上で実証するIdentitySwapなど今後のソラナエコシステムを革新するようなさまざまな提案なので、興味がある方はこちらのハッカソンのページも参考にしてみてください。
Jabber|P2PメッセージングdApp
Jabberはソラナ上に構築されたP2PメッセージングdApp(分散型アプリケーション)です。ほとんどの機能はオンチェーンで処理され、高速低コストというソラナブロックチェーンの性質を活かした従来のメッセージアプリケーションに近しいユーザー体験を提供するdAppとして構想されています。現時点ではプライベートチャット機能とグループチャット機能をもつdAppとして考えられており、以下のような特徴を持っています。
プライベートチャット機能
- 任意の有効なSolanaアドレスにエンドツーエンドで暗号化されたメッセージを送信可能です。
- 高速低コスト:Twitterと同程度の長さで半永久的に記録するのであればメッセージコストは0.0015SOL(2020年11月24日時点でおよそ0.34円)。一般的なストレージ(ブロックチェーンではない)に保存するのであればより安価に利用することができます。
- earn-dot-comのように、メッセージ受信を有料化することが可能です。
グループチャット機能
- グループ作成者がグループのストレージ(最大10MB)を購入し、ストレージがいっぱいになると追加で支払い更新をしていく仕組みです。最も古いメッセージがリサイクルされ、送信時には計算コストのみ発生します。
Jabberは現在テストネット上で稼働しており、上画像がテストネットで公開されているアプリケーションの画面です。アカウントは新規作成、または既存のSOLアドレスを持っている場合はシークレットキーからアカウントを生成することができます。
アカウントにはSOLアドレスが紐づけられていますが、メッセージを送るときはSOLアドレス宛てに加えて、上画像のアカウント設定画面で決定したアカウント名宛に送信することが可能です。そのほか設定画面でメッセージ受信の有料化を設定できる項目が設けられています。
どのような動作をするのか気になる方はこちらのデモ動画をご覧ください。
【Jabberに関する情報】
・Twitter:https://twitter.com/jabber_im
・Github:https://github.com/vidhunv1/jabber/
Solana Fantasy Sports|スポーツのリーグ戦を模したオンチェーンゲーム
Solana Fantasy Sportsはスポーツのリーグ戦を模したオンチェーンゲームです。SOLで各リーグのエントリー料金を支払うことで参戦することができ、各リーグで最高得点を得ることができた人がそのリーグで支払われたエントリー料金を得ることができるというものです。
現在Fantasy Sportsアプリ(テスト版)が公開されており、自分でリーグを作成して、選手を募集する方法と既存のリーグに参加する方法があります。簡単に前者の自分でリーグを作成してからリーグが終わるまでの一連の流れを紹介します。
- ステップ1: SOLウォレットの作成(または既存のSOLウォレットをインポート)
- ステップ2:蛇口からSOLのエアドロップをリクエストする
- ステップ3:リーグを作成し、SOLのエントリーコストを設定
- ステップ4:友達をリーグに招待
- ステップ5:選手をドラフトする
- ステップ6:毎週の選手のラインナップを選ぶ
- ステップ7:ベンチにいる選手をリーグ戦の他チームと入れ替える
- ステップ8: 各週が完了したら、オラクルを使ってスコアを渡す
- ステップ9: スコアボードを使ってスコアを集計し、シーズン終了後に賞金を引き出す
この一連の流れは動画で解説されていますので、興味がある方はこちらの動画をご覧ください。
【Solana Fantasy Sportsに関する情報】
・Twitter:https://twitter.com/SolanaSports
・Github:https://github.com/ProtoDao/solana-fantasy-app
・アプリケーション(テスト版):https://solanafantasy.netlify.app/
Solana Structured Products|AMMタイプのDEXに対する片側流動性提供を実現するDeFiプロジェクト
Solana Structured Productsは、Serum DEX上の市場データ(Serum swapやその他AMMプールに対応)を読み取り、それに反応するポジション管理ボットを組み合わせて稼働するDeFi(分散型金融)プロジェクトです。
Solana Structured Productを理解する上でSerum SwapなどのAMMシステムで流動性提供する仕組みを理解する必要があります。AMM型のDEX(分散型取引所)は二つのトークンをペアをある比率で流動性プールに提供することが一般的です。
AMMにはイーサリアム上にあるBalancerのように片側のトークンのみで提供できるタイプも存在しますが、多くの場合はそうではありません。Solana上に構築されているSerum Swapの場合は、2つのトークンを市場価格ベースでおよそ50:50の比率でプールに提供することになりますので、必ず両方のトークンを用意しておかなければなりません。
Structured Productsはこのトークンペアを用意しなければならないというストレスを解消し、片側のトークンだけで流動性提供できる仕組みを提案しています。現時点で本プロジェクトは完成しておらず、ドキュメントが公開されているのみですが、今回のハッカソンで受賞したことから将来的に稼働するプロダクトに発展する可能性はあります。
出典:GitHub
上画像はSolana Structured Productsを概説したものですが、上画像に示された動作の順番がどのように機能するのかを解説します。
画像内の白背景部分はユーザーの動作、グレー背景はプログラムの動作、矢印はトランザクションを示しています。画像ではユーザーに名称はついていませんが、動作を理解するために一人をユーザーA、もう一人をユーザーBとして扱います。また本プロダクトはモジュール化されており、以下3つの主要コンポーネントで構成されています。
- Vault:資産をロックするプログラムです
- プール:Serum Swapを含む各種AMMのプールコードです。Vaultとプールの違いはVaultが資産をロックしてルートを確保するために用いられるのに対して、プールは資産を保持しつつも、その資産を条件付きアクション(スワップや負債の返済など)を実行できる点にあります
- ドローン:ドローンはオフチェーンワーカー(別の言葉で表すとボット、キーパー)のことです。上画像では「Position management bot」と記載されており、プールプログラムなどの特定の範囲内のアクションを実行します
では、実際にどのように機能するのかを以下説明します。
- ユーザーAとBが「program-associated-accout」と呼ばれる仲介アカウントを作成するために、まずVaultプログラムを呼び出します
- Vaultプログラムによって「program-associated-account」を作成します
- ユーザーAとBが仲介アカウントにそれぞれ一種類のトークンを預けます
- 仲介アカウントからSerum SwapなどのAMM(自動マーケットメイカー)システムのプール(Pool)にユーザーAとBそれぞれの資金(トークンペアの片側、つまり50%を)を流し込みます
- プール内で取引が行われます(この時ドローン/ボットがアクションを実行し、ポジションを管理)
- ロックしていた資金の引き出しが可能になります
本プロジェクトの仕組みの詳細は不明な点もまだありますが、将来的にイーサリアムとソラナのブリッジであるワームホールを用いて、イーサリアム上のコンパウンドプロトコルに貸し出したUSDCを担保にしたcUSDCを、ワームホール経由でソラナ上のVaultにロックし、流動性提供に回す、つまり更なる利回りを得るということも本プロジェクトの構想の中に含まれています。
【Solana Structured Productsに関する情報】
・Twitter:https://twitter.com/solstructured
・Telegram:https://t.me/solstructured
・Github:https://github.com/wilbarnes/solana-structured-products
StableSwap|Solana版Curve
StableSwapはイーサリアム上のAMMであるCurveをソラナ上に展開させたプロジェクトです。CurveとはAMMの中でもステーブルコイン同士の交換やWBTC、RenBTC、sBTCなどのソフトペッグ系トークンの交換をサポートしています。
出典:StableSwap - efficient mechanism for Stablecoin liquidity
Curveの特徴はいくつか挙げられますが、そのうちの一つとして為替レートの算出方法の特殊性が挙げられます。Serum SwapやUniswapといったAMMは二つのトークンの価格とボリュームに応じて取引価格(x*y = k)を導出します。しかし、Curveの場合は(x*y)+(x+y) = k によって取引価格を導出しています。上図表は「x*y = k」タイプ、「x+y = k」タイプ、Curveの「(x*y)+(x+y) = k 」タイプの違いによって取引価格がどのように変化するのかを示しています。
詳細の説明は省きますが、このようにAMMにもいくつかのタイプがあり、取引時のスリッページの発生しやすさなどの違いがあります。また流動性提供の面でもステーブルコインのみで構成することができるため、提供しているトークンの価格変動によって生じる損失を緩和させることができるという特徴があります。
【StableSwapに関する情報】
・Twitter:https://twitter.com/stableswap_pro
・Github:https://github.com/michaelhly/stable-swap-program