
Berachainの探求:ネイティブプロトコルと技術的ポイントの分析
TechFlow厳選深潮セレクト

Berachainの探求:ネイティブプロトコルと技術的ポイントの分析
Berachainのアーキテクチャ、3つのネイティブアプリケーションの設計、および関連するコントラクト実行プロセスを解析します。
執筆:Beosin
Berachainは市場から高い注目を集めるブロックチェーンであり、複数の革新と特徴を持つことで、多数のコミュニティや開発者の関心を引きつけています。BerachainはPoLメカニズムと3種類のトークンモデルを通じて、オンチェーン流動性問題に対して独自の解決策を提供しています。Berachainがまもなくメインネットをリリースするにあたり、早期エコシステムユーザーおよびプロジェクトを惹きつけ支援するために、インセンティブプログラムとTGEを開始しました。
本記事では、Berachainのアーキテクチャ、3つのネイティブアプリケーションの設計、および関連するコントラクト実行プロセスについて解説し、読者がBerachainを深く理解できるようにします。
1. アーキテクチャ
BerachainはLayer1のEVM同等チェーンであり、3種類のトークンモデルと流動性コンセンサスメカニズム(Proof-of-Liquidity)を導入することで、流動性、コンセンサス、ガバナンスを統合し、チェーンエコシステム内の流動性プロバイダーにより多くのインセンティブを提供しています。
Berachainのアーキテクチャは主に2つのレイヤーに分かれています:
(1)BeaconKitコンセンサス層。この層はブロックチェーンのコンセンサスメカニズムを担当し、基礎となるコンセンサスアルゴリズムとしてCometBFTを採用し、さらにProof-of-Liquidityを組み込みます。CometBFTはTendermintに基づくコンセンサスプロトコルであり、迅速なトランザクション確認とビザンチンフォールトトレランス(BFT)機能を提供します。Berachainでは、BeaconKitがCometBFTをさらにカプセル化し、任意のイーサリアム仮想マシン(EVM)互換の実行環境と相互作用できるようにしています。
(2)EVM実行層。Berachainの実行層は、イーサリアムと同じ仮想マシンであるEVM(Ethereum Virtual Machine)を採用しており、既存のイーサリアムツールチェーン、スマートコントラクト、エコシステムをサポートすることで、開発者がイーサリアム上のスマートコントラクトおよび分散型アプリケーション(dApps)を直接Berachainに移植できるようにしています。
Berachainにおけるノードタイプは2種類に分けられ、バリデーターノードとRPCノードです。各ノードはフルノードまたはアーカイブノードとして設定可能で、いずれのタイプも実行クライアントとコンセンサスクライアントの組み合わせです。これは、実行面においてあらゆるEVM実行クライアントをサポートし、Berachainが構築したBeaconKitコンセンサスクライアントおよびフレームワークとペアリングできることを意味します。

● 実行クライアント:スマートコントラクトコードの実行、ステート変更の管理、トランザクションロジックの実行を担当します。Ethereum Engine APIを使用することで、BerachainはGeth、Erigon、Nethermind、Besu、Reth、Ethereumjsの6つの主要なEVM実行クライアントをサポートしています。
● コンセンサスクライアント:ネットワークノード間でコンセンサスを達成し、トランザクションおよびブロックの検証と順序付けを保証します。BerachainはBeaconKitをコンセンサスクライアントとして使用しています。
2. Proof-of-Liquidity(PoL)
BerachainのProof-of-Liquidity (PoL) トークン経済モデルは、以下の3つのコアトークンに関係しています:
$BERA:BERAはBerachainのネイティブgasトークンであり、トランザクション手数料の支払いおよびバリデーターのステーキングに使用されます。
$BGT:Berachainのガバナンストークンであり、オンチェーンガバナンスへの参加、報酬配布、バリデーターへの委任に使用されます。通常のガバナンストークンとは異なり、BGTはsoulboundトークンであり、譲渡不可です。つまり、ユーザーは異なるアドレス間でBGTを送金できませんが、1:1の比率でBERAに交換可能です。ただし、これは一方向操作であり、BERAをBGTに戻すことはできません。BGTは譲渡不可のsoulboundトークンとして、購入や取引ではなく、Berachainエコシステムへの実際の参加(例:流動性提供、貸借など)を通じてのみガバナンスに参加できることを示しています。
$HONEY:Berachainのネイティブステーブルコインであり、Berachainエコシステム内外での安定的かつ信頼できる交換手段を提供します。公式によると、その価値は1ドルに連動しています。HONEYは完全担保型ステーブルコインであり、ホワイトリストに掲載された担保資産を金庫に預けることで鋳造できます。担保資産ごとに異なる鋳造率があり、これはBGTガバナンスによって決定されます。

Berachainが採用するProof of Liquidity (PoL) メカニズムは、従来のコンセンサスメカニズム(PoWやPoSなど)とは異なり、すべてのチェーンエコシステムにおける流動性プロバイダーの貢献を考慮しています。流動性マイニングおよびステーキングを通じて、BerachainはPoLを利用してより多くのユーザーがエコシステム全体に参加するようインセンティブを与えます。以下では、Berachainネイティブの分散型取引所BEXを例に、BerachainエコシステムにおけるPoLの主なプロセスを紹介します:
-
初期ステーキング:ユーザーはまずBERAをステーキングして、ブロック生成資格を持つバリデーターになります。
-
ブロック提案:アクティブなバリデーターの中からランダムに選ばれた1人が新しいブロックを提案します。
-
報酬配布:ブロックを提案したバリデーターはガバナンストークン(BGT)を受け取り、それをチェーンエコシステム内のさまざまな報酬金庫に配布します。このパラメータは各バリデーターが設定します。
-
流動性プロバイダー:BEXの場合、流動性プロバイダーはBEXプールにトークン(例:HONEYおよびBERA)を預けることで流動性を提供し、流動性証明トークン(例:$HONEY-WBERA)を得ます。これを報酬金庫にステーキングすることで、貢献度に応じてBGT報酬を受け取ります。
-
ガバナンストークンの委任:BGT保有者は、それをアクティブなバリデーターに委任することで、そのバリデーターがブロック提案時に報酬を配布する際の重みを増加させ、BGTの分配に影響を与えることができます。ただし、この重みはバリデーターのブロック生成確率には影響しません。
現在、ガバナンストークンBGTは主にBerachain上の3つの公式ネイティブDAppから得られます。1つはBerachainネイティブの分散型取引所BEX、もう1つはBerachainネイティブの非カストディローンプロトコルBend、そしてもう1つはネイティブの分散型レバレッジ取引プラットフォームBerpsです。本稿ではこれらの3プロジェクトのビジネスロジックを中心に紹介します。
3. PoL と BEX
BEX (Berachain Exchange) はBerachainのネイティブ分散型取引所(DEX)プロトコルであり、仲介者なしで任意の暗号資産ペアを取引できるようにします。BEXはBerachainエコシステムの重要な構成要素であり、ネイティブDEXとして、以下のようにPoLコンセンサスメカニズムと密接に結びついています:
-
流動性プール:BEXの流動性プールはガバナンスによりPoL報酬金庫にアップグレードでき、BGT報酬の対象となります。
-
流動性プロバイダー:ユーザーはBEXで流動性を提供してLPトークンを得た後、それらをPoL報酬金庫にステーキングしてBGT報酬を獲得できます。
-
ガバナンス:BEXのガバナンスメカニズムにより、新たな流動性プールをPoL報酬金庫のホワイトリストに追加する提案が可能となり、それにより当該プールがBGT報酬を受け取れるようになります。

テストチェーン上のコントラクトを調査したところ、現時点でのBEXの主要なコード構造は3つの部分に分けられます。第1はBeraCrocMultiSwapコントラクト (https://bartio.beratrail.io/address/0x21e2C0AFd058A89FCf7caf3aEA3cB84Ae977B73D) で、主にトークンのマルチパス交換を担当し、ユーザーのトークン交換が中間トークンを含む場合に呼び出されます。
第2はCrocSwapDexコントラクト (https://bartio.beratrail.io/address/0xAB827b1Cc3535A9e549EE387A6E9C3F02F481B49) で、ユーザーとプール間のすべての操作(流動性の追加・削除、トークン交換など)を担当します。
第3はPathコントラクトで、チェーン上にはBEXに8種類の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 流動性の追加
本稿では、流動性の追加とトークン交換という2つの一般的なロジックを主に紹介します。ユーザーが流動性を追加する際、まずフロントエンドまたはコントラクトからCrocSwapDexコントラクトのuserCmd関数を呼び出し、callpathは16ビットのインデックスであり、DELEGATECALLによってコマンドが転送される対応するPathコントラクトを識別します。
次に、コントラクトはProxyCallerコントラクトのcallUserCmd関数を呼び出し、渡されたproxyIdxに応じて対応するPathコントラクト(ここではWarmPathコントラクト)をプロキシ呼び出しします。WarmPathコントラクトのcommitLP関数は、渡されたパラメータに基づき対応する流動性追加ブランチロジックに入ります。コントラクトにはMINT_AMBIENT_LIQ_LP、MINT_AMBIENT_BASE_LP、MINT_AMBIENT_QUOTE_LPの3種類の流動性追加ロジックがあり、それぞれ指定数量の流動性の直接追加、およびプール内のbaseトークンまたはquoteトークンの価格基準で追加数量を計算する方法を表します。
最後に、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の主要参加者は以下の3種類です:
1. $HONEYトークンを提供する流動性プロバイダー(Suppliers)。
2. 暗号通貨を担保として預け、HONEYトークンを借り入れる借り手(Borrowers)。
3. プロトコルの支払能力を確保する清算人(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トークンの過剰鋳造を防ぎます。
これらのチェックおよび更新がすべて通過すれば、流動性プロバイダーに1:1で対応する数量のATOKENトークンを直接鋳造します。流動性プロバイダーが流動性を引き出す際、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の4種類のトークンに対して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における取引深度およびユーザーエクスペリエンスの面で優れた成果を上げることが期待されます。
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News














