Berachainの探求:ネイティブプロトコルと技術的要点の分析
著者:Beosin
Berachain は、市場で注目されているブロックチェーンであり、多くの革新と特徴を備えており、大量のコミュニティと開発者の関心を引き付けています。Berachain は PoL メカニズムと三重トークンモデルを通じて、チェーン上の流動性問題に対する独自の解決策を提供しています。Berachain がまもなくメインネットを立ち上げるにあたり、Berachain はインセンティブプログラムと TGE を発表し、Berachain の初期エコシステムユーザーとプロジェクトを引き付け、サポートしています。
本記事では、Berachain のアーキテクチャ、三大ネイティブアプリケーションの設計、および関連する契約実行プロセスについて説明し、読者が Berachain を深く理解できるようにします。
1. アーキテクチャ
Berachain は Layer1 EVM 等価チェーンであり、このチェーンの特徴は三重トークンモデルと流動性コンセンサスメカニズム (Proof-of-Liquidity) を導入し、流動性、コンセンサス、ガバナンスメカニズムを統合して、チェーンエコシステム内の流動性提供者により多くのインセンティブをもたらすことです。
Berachain のアーキテクチャは主に二つのレイヤーに分かれています:
(1)BeaconKit コンセンサスレイヤー。このレイヤーは主にブロックチェーンのコンセンサスメカニズムを担当し、CometBFT を基盤としたコンセンサスアルゴリズムを採用し、その上に Proof-of-Liquidity を導入しています。CometBFT は Tendermint に基づくコンセンサスプロトコルであり、迅速な取引確認とビザンチン耐障害機能(BFT)を提供します。Berachain では、BeaconKit が CometBFT をさらにラップし、EVM 互換の実行環境と相互作用できるようにしています。
(2)EVM 実行レイヤー。Berachain の実行レイヤーは、Ethereum と同じ仮想マシンである EVM(Ethereum Virtual Machine)を採用しており、Berachain が既存の Ethereum ツールチェーン、スマートコントラクト、エコシステムをサポートし、開発者が Ethereum 上のスマートコントラクトや分散型アプリケーション(dApps)を直接 Berachain に移植できるようにしています。
Berachain のノードタイプは、検証ノードと RPC ノードの二種類に分かれています。各ノードはフルノードまたはアーカイブノードに設定でき、各タイプのノードは実行クライアントとコンセンサスクライアントの組み合わせであり、実行レイヤーの観点からは、任意の EVM 実行クライアントをサポートし、Berachain が構築した BeaconKit コンセンサスクライアントおよびフレームワークとペアリングされます。
● 実行クライアント:スマートコントラクトコードの実行、状態変化の管理、取引ロジックの実行を担当します。Ethereum Engine API を使用することで、Berachain は 6 種類の主流 EVM 実行クライアントをサポートしています:Geth、Erigon、Nethermind、Besu、Reth、および Ethereumjs。
● コンセンサスクライアント:ネットワークノード間でコンセンサスを達成し、取引とブロックの検証と順序付けを保証します。Berachain は BeaconKit をコンセンサスクライアントとして使用しています。
2. Proof-of-Liquidity(PoL)
Berachain の Proof-of-Liquidity (PoL) トークン経済モデルは、主に三つのコアトークンに関連しています:
$BERA:BERA は Berachain のネイティブガストークンであり、取引手数料の支払いと検証者のステーキングトークンとして使用されます。
$BGT:Berachain のガバナンストークンであり、チェーン上のガバナンス、報酬配分、および検証者の委託に参加するために使用されます。このトークンは一般的なガバナンストークンと比較して独特であり、BGT はソウルバウンドトークンであるため、移転不可能です。つまり、ユーザーは異なるアドレス間で BGT を転送することはできませんが、このトークンは 1:1 の比率で BERA に交換できます。注意すべき点は、これは一方向の操作であり、BERA は BGT に交換できません。BGT は移転不可能なソウルバウンドトークンとして、実際に Berachain エコシステムに参加するユーザー(流動性提供、貸付など)だけがガバナンスに参加できることを示しています。
$HONEY:Berachain のネイティブステーブルコインであり、Berachain エコシステム内外で安定した信頼性のある交換手段を提供します。公式にはその価値は 1 ドルに連動しています。HONEY は完全に担保されたステーブルコインであり、ホワイトリストにある担保を金庫に預けることで鋳造できます。異なる担保には異なる鋳造率があり、BGT ガバナンスによって決定されます。
Berachain が採用している Proof of Liquidity (PoL) メカニズムは、従来のコンセンサスメカニズム(PoW や PoS など)とは異なり、PoL はすべてのチェーンエコシステムの流動性提供者が行った貢献を考慮します。流動性マイニングとステーキングを通じて、Berachain は PoL を利用して、より多くのユーザーが Berachain の全体的なエコシステムに参加するように促します。以下に、Berachain のネイティブな分散型取引所 BEX を例に、Berachain エコシステムにおける PoL の主要なプロセスを紹介します:
- 初期ステーキング:ユーザーはまず BERA をステークし、ブロック生成資格を持つ検証者になります。
- ブロック提案:ランダムに選ばれたアクティブな検証者が新しいブロックを提案します。
- 報酬配分:提案されたブロックの検証者はガバナンストークン(BGT)を受け取り、チェーンエコシステム内のさまざまな報酬金庫に配分します。このパラメータは各検証者によって設定されます。
- 流動性提供者:BEX に対して、流動性提供者は BEX プールにトークン(例:HONEY と BERA)を預けることで流動性を提供し、流動性証明トークン(例:$HONEY-WBERA)を受け取り、それを報酬金庫にステークすることで、その貢献に応じて BGT 報酬を得ます。
- ガバナンストークンの委託:BGT 保有者はアクティブな検証者に委託することができ、その検証者がブロックを提案する際の報酬配分の重みを増加させ、BGT の配分に影響を与えますが、その重みは検証者のブロック生成確率には影響しません。
現在、ガバナンストークン BGT の主な供給源は、Berachain 上の三つの公式ネイティブ DApp から来ています。一つは Berachain ネイティブの分散型取引所 BEX、もう一つは Berachain ネイティブの非管理型貸付プロトコル Bend、そしてもう一つはネイティブの分散型レバレッジ取引プラットフォーム Berps です。本記事では、これら三つのプロジェクトのビジネスロジックを主に紹介します。
3. PoL と BEX
BEX (Berachain Exchange) は Berachain のネイティブ分散型取引所 (DEX) プロトコルであり、ユーザーは仲介者なしで任意の暗号資産ペアを取引できます。BEX は Berachain エコシステムの重要な構成要素であり、ネイティブ分散型取引所として、以下の方法で PoL コンセンサスメカニズムと密接に結びついています:
- 流動性プール:BEX 上の流動性プールは、ガバナンスによって PoL 報酬金庫にアップグレードされることができ、BGT 報酬を受け取る資格があります。
- 流動性提供者:ユーザーは BEX 上で流動性を提供し、LP トークンを取得し、その後これらのトークンを PoL 報酬金庫にステークして BGT 報酬を得ることができます。
- ガバナンス:BEX のガバナンスメカニズムは、提案を通じて新しい流動性プールを PoL 報酬金庫のホワイトリストに追加することを許可し、これによりこれらのプールが BGT 報酬を得ることができます。
テストチェーン上の契約を研究した結果、現在 BEX の主要なコードアーキテクチャは三つの部分に分かれています。第一部は BeraCrocMultiSwap コントラクト (https://bartio.beratrail.io/address/0x21e2C0AFd058A89FCf7caf3aEA3cB84Ae977B73D) であり、このコントラクトはトークンの多経路交換を主に担当し、ユーザーのトークン交換が中間トークンを含む場合にこのコントラクトを呼び出す必要があります。
第二部は CrocSwapDex コントラクト (https://bartio.beratrail.io/address/0xAB827b1Cc3535A9e549EE387A6E9C3F02F481B49) であり、このコントラクトはユーザーとプールのすべての操作を担当し、流動性の追加や削除、トークンの交換などを行います。
第三部は Path コントラクトであり、チェーン上の BEX には合計 8 種類の Path クラスコントラクトが存在し、異なる Path コントラクトは異なる機能に対応しています。ユーザーが CrocSwapDex コントラクトに渡す異なる操作に対応する User Cmd パラメータに基づいて、CrocSwapDex は代理呼び出しを通じて対応する Path を呼び出し、指定されたロジックを完了します。
プロジェクトの主要なロジックは、異なる Path 機能に応じて以下のように分類されます:
- BootPath:コントラクトのアップグレード関連機能
- ColdPath:取引に関係ない管理ロジック、プールの初期化や過剰担保機能を含む
- HotPath:取引で最も一般的なロジック、トークンの単一ステップ交換を担当
- KnockoutPath:取引が事前に定められた流動性境界点または価格点(bump point)を越えると、このイベントがトリガーされ、流動性を再評価または調整するために使用されます。通常の取引パスとは異なり、流動性境界を越えるコードは複雑であり、通常の交換を処理する HotPath に完全に含めることができないため、分離して処理されます。
- LongPath:長いチェーンの複合注文取引(Long-chain Compound Orders)を処理するためのもので、通常は分散型取引プラットフォームや流動性プールで、複数の単一操作が組み合わさった複雑な取引を指します。
- MicroPaths:単一の原子操作に関連する中間コンポーネントを含み、これらのコンポーネントは複雑な複合操作を実行する際に、事前にロードされた流動性曲線の文脈で呼び出されることができます。
- SafeModePath:主な目的は DEX コントラクトが緊急状態に入ったときに、他のすべての操作を制限し、特定の管理操作のみを許可することです。
- WarmPath:流動性提供者のコア操作ロジックを含み、環境流動性の鋳造(Mint ambient liquidity)、集中範囲流動性の鋳造(Mint concentrated range liquidity)、環境流動性の焼却(Burn ambient liquidity)、集中範囲流動性の焼却(Burn concentrated range liquidity)を担当します。
3.1 流動性の追加
本記事では、流動性の追加とトークン交換の二つの一般的なロジックを主に紹介します。ユーザーが流動性を追加する際、まずフロントエンドまたはコントラクトを通じて CrocSwapDex コントラクトの userCmd 関数を呼び出します。このとき callpath は 16 ビットのインデックスで、DELEGATECALL を通じてコマンド呼び出しを転送する対応する Path コントラクトを識別します。
次に、コントラクトは ProxyCaller コントラクトの callUserCmd 関数を呼び出し、渡された proxyIdx に基づいて対応する Path コントラクトを代理呼び出しします。この時点では WarmPath コントラクトです。WarmPath コントラクトの commitLP 関数は、渡されたパラメータに基づいて対応する流動性追加の分岐ロジックに入ります。コントラクトには MINTAMBIENTLIQLP、MINTAMBIENTBASELP、MINTAMBIENTQUOTE_LP の三種類の流動性追加ロジックがあり、それぞれは指定された数量の流動性を直接追加すること、プール内のベーストークンまたはクォートトークンの価格に基づいて流動性の数量を計算することを表します。
最後に、WarmPath コントラクトの mintAmbientLiq 関数は、流動性の鋳造を主に担当し、このコントラクトは SettleLayer コントラクトの settleFlows 関数を呼び出し、ユーザーに対応する流動性証明トークンを鋳造します。
流動性の削除ロジックは流動性の追加と類似しており、本記事では具体的に紹介しません。
3.2 トークン交換
ユーザーが BEX を使用してトークンを交換する際、まず BeraCrocMultiSwap コントラクトの multiSwap 関数を呼び出します。この関数は交換パスに従って、CrocSwapDex コントラクト内で段階的に交換を行います。次に、CrocSwapDex コントラクトの caluserCmd 関数を呼び出し、指定された HotPath または KnockoutPath に入って具体的な交換ロジックを実行します。この時、最も一般的な HotPath コントラクトを使用します。HotPath は MarketSequencer の swapOverPool 関数を呼び出し、交換されるトークンの数量を計算します。最後に、HotPath コントラクトは SettleLayer コントラクトの settleFlows 関数を再度呼び出し、ユーザーに交換後の目標トークンを転送します。
以上のように、BEX は従来の uniswap V2 などの DEX に対して以下の特徴を持っています:
曲線状態(CurveState)管理
曲線スナップショット(Snapshotting CurveState):ガス消費を最適化するために、BEX は現在の曲線状態(CurveState)をチェーン上のストレージ(EVM Storage)からメモリにコピーし、取引が完了した後に変更された状態を再びチェーン上に書き戻します。
スナップショットに保存される情報には、価格ルート(priceRoot)、流動性シード(ambientSeeds)、集中流動性(concLiq_)が含まれます。流動性シードなどの概念については、Ambient Finance (Crocswap) のホワイトペーパーを参照してください:https://crocswap-whitepaper.netlify.app/
取引実行(Swap Execution)
段階的な取引実行:BEX のコードアーキテクチャは、特に大規模な取引時に、複数の流動性境界(Uniswap V3 の tick など)を越えて段階的に取引を実行することを可能にします。流動性境界を越えると、流動性と価格を再調整する必要があります。反復計算:各流動性区間(または tick)を遍歴することで、システムは取引の流動性を段階的に消費または蓄積し、取引を完了するか、ユーザーの価格制限に達するまで続けます。
ビットマップ構造:Uniswap V3 に似て、Ambient DEX はビットマップを使用して各価格範囲内の流動性の存在をマークし、ビットマップを通じて次の利用可能な流動性区間を迅速に検索します。しかし、現在 BEX チェーン上のプールの流動性は環境流動性を採用しており、流動性提供者はグローバルに流動性を提供しているため、特定の価格で集中流動性を追加する方法ではないため、現在のトークン交換操作は uniswap V2 と大差ありません。
4. PoL と Bend
Bend は Bera チェーン上の非管理型貸付プロトコルであり、核心は Berachain エコシステムに基礎的な貸付サービスを提供することです。このプロジェクトは Berachain エコシステムの重要な構成要素であり、公式な貸付市場として、以下の方法で PoL コンセンサスメカニズムと密接に結びついています。
借り手は暗号通貨を担保にして(wBTC などに似て)HONEY トークンを借り入れることができ、貸付の同時に一定数量のガバナンストークンを得ることができ、これが PoL コンセンサスメカニズムの BGT の配分を改善するのに役立ちます。一方、HONEY 提供者は HONEY の流動性を提供することで、貸付から生じる利息分配を得ることができます。
Bend の主要な参加者は三種類です:
- $HONEY トークンの流動性提供者(Suppliers)。
- 暗号通貨を担保にして HONEY トークンを借り入れる借り手(Borrowers)。
- プロトコルの支払い能力を確保する清算人(Liquidators)。
下図はこのプロジェクトの主要なアーキテクチャです:
テストチェーン上の契約を研究した結果、流動性提供者は supply インターフェースを通じて HONEY トークンを 1:1 の比率で預け入れ、相応の数量の AHONEY トークンを報酬として得ます。時間が経つにつれて、これらのユーザーが取得した AHONEY トークンの残高は利息の増加に伴い増加し、貸付プールのエコシステムを維持し、借り手が常に資金を借り入れられるようにします。後に流動性提供者は withdraw インターフェースを通じて、1:1 の比率で AHONEY トークンを使用して相応の数量の HONEY トークンを引き出し、利益を実現できます。
借り手は borrow インターフェースを通じて担保を担保に入れることで、担保の価値に基づいて担保の価値未満の HONEY トークンを借り入れ、相応の数量の vdHONEY、すなわち債務トークンを得ることができます。vdHONEY トークンは HONEY トークンに似ており、時間の経過とともに数量が増加し、借り手はより多くの HONEY トークンを返済する必要があります。しかし、Bera チェーンでは、借り手が HONEY トークンを借り入れると同時に、一定数量のガバナンストークン(BGT)も得るため、借り手の借入意欲を刺激し、貸付プールのエコシステムを維持し、同時に PoL コンセンサスにも貢献します。
Bend では、誰でも清算人になることができます。借り手の健康係数が 1 未満になると、借り手の担保の価値が債務の価値をカバーできないことを示し、清算人は清算を開始し、担保の 5% の価値を清算報酬として得ることができ、清算人を清算に誘導します。
4.1 流動性の追加
流動性提供者が流動性を預け入れる際、supply 関数はまず現在の準備金キャッシュと利率を更新し、これにより準備金キャッシュと利率の健全性を維持し、最新の準備金キャッシュデータを随時取得できるようにします。次に、現在の ATOKEN トークンが鋳造上限に達しているかを検証し、過剰に ATOKEN トークンを鋳造しないようにします。
これらのチェックと更新がすべて通過した場合、流動性提供者に相応の数量の ATOKEN トークンが 1:1 で鋳造されます。流動性提供者が流動性を引き出す際、withdraw 関数もまず現在の準備金キャッシュと利率を更新し、次に現在の最新の利息数量に基づいてユーザーが持つ最新の ATOKEN トークンの残高を計算し、1:1 の比率で相応の担保トークンを引き出します。
注意すべき点は、ここで流動性提供者が貸付を行った場合、貸付因子が健全な状態でなければ、相応の数量の流動性を引き出すことができないということです。また、現在の Berachain では、HONEY トークンのみが貸付資産として借り入れ可能であり、他の担保は貸付によって利息を得ることはできません。
4.2 借貸
借り手が Bend を使用して借貸を行う際、まず十分な数量の担保を supply 関数を通じてプールに担保として預け入れる必要があります。次に borrow 関数を呼び出して借貸を行います。borrow 関数はまず準備金キャッシュを更新し、最新の準備情報を保証し、次に validateBorrow 関数を呼び出して今回の借貸の合法性を検証します。この検証には、借貸上限、担保の価値、ユーザーの信用などの情報が含まれます。これらの検証が通過した場合、担保の価値に基づいて相応の数量の債務トークン、すなわち vdHONEY トークンが鋳造され、相応の数量の HONEY トークンを得ることができます。
借り手がローンを返済する必要がある場合、repay 関数も同様にまず準備金キャッシュと利率を更新し、準備金キャッシュと借貸利率に基づいて借り手が今回返済する HONEY トークンの数量を取得し、成功裏に返済した後に相応の数量の vdHONEY トークンを焼却します。借り手は、十分な数量の vdHONEY トークンを成功裏に返済し、現在の債務が担保を引き出しても健全な状態である場合にのみ、withdraw 関数を使用して相応の数量の担保を引き出すことができます。
4.3 清算
借り手の担保の価値が不足している場合、誰でも liquidationCall 関数を呼び出して清算人として清算を行うことができます。liquidationCall 関数はまず債務キャッシュデータを更新し、次に validateLiquidationCall 関数を呼び出して借り手の健康因子と担保の可用性をチェックします。借り手の現在の債務価値が清算限界を超えると、健康因子が低下します。健康因子が 1 未満の場合、清算人は清算を成功裏に実行し、借り手の債務トークンを焼却し、担保を準備金庫のアドレスに送信します。清算人はこの清算から担保の 5% の価値を清算報酬として得ることができ、清算人を清算に誘導します。
5. PoL と Berps
Berachain Berps は分散型のレバレッジ取引プラットフォームであり、永続的な先物契約取引を可能にします。また、Berachain のネイティブステーブルコイン $HONEY は、すべての取引の担保、支出、預金の基礎トークンです。ユーザーは $bHONEY 金庫に取引流動性を提供することで利益を得ることができます。金庫の預金者は Berps が生み出す取引手数料を獲得し、取引者のポジションの取引相手となります。さらに、Berps の金庫も PoL のインセンティブを受け取ることができ、金庫に資金を預け入れたユーザーは $BGT を得ることができます。
現在、Berps はテストネットに上线しており、BTC、ETH、ATOM、TIA の四種類のトークンの U 本位永続契約取引をサポートしています。
Berps のアーキテクチャは、現在の市場に存在する分散型永続取引プラットフォームと非常に似ており、主に以下の重要なコントラクトがあります:
● Entrypoint:ユーザーが取引(清算を含む)を行うための入口。Entrypoint コントラクトは、ユーザーが発起した取引が合法かどうかをチェックし、検証に通過した場合、コントラクトはユーザーのために対応する取引を作成します。
● FeesAccrued:借貸手数料を計算および管理します。
● FeesMarkets:すべての取引ペアに関連する手数料を計算および管理します。
● Markets:すべての取引ペアのパラメータと制限を管理します。
● Orders:ユーザーが提出した取引注文を管理し、ユーザーの資金を保存します。
● Settlement:取引の状態変化を更新します。
● Vault:取引者の対手方として、取引の流動性を提供します。ユーザーは資金を Vault に預け入れることで、プラットフォーム手数料の利益と PoL のトークンインセンティブを得ることができます。
6. まとめ
以上のように、Berachain は Cosmos SDK に基づいて構築された EVM 等価 L1 ブロックチェーンであり、独自の流動性証明 (Proof-of-Liquidity, PoL) コンセンサスメカニズムを採用しています。Berachain に流動性を提供するユーザーは PoL メカニズムの報酬を得ることができます。PoL を利用することで、Berachain はチェーンの資金流動性と安全性を強化しました。他のブロックチェーンと比較して、Berachain にはネイティブの BEX、Bend、Berps アプリケーションがあり、ユーザーにトークン交換、流動性マイニング、貸付、永続取引などの一連の DeFi サービスを提供し、PoL と組み合わせることで、Berachain は DeFi の取引深度とユーザー体験において優れたパフォーマンスを発揮します。