探索 Berachain:原生协议与技术要点分析

CN
链捕手
关注
2小时前

作者: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 的执行层采用与以太坊相同的虚拟机——EVM(Ethereum Virtual Machine),确保 Berachain 支持现有的以太坊工具链、智能合约和生态系统,使开发者能够直接移植以太坊上的智能合约和去中心化应用程序(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 的原生 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),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 函数会根据传入的参数进入对应的添加流动性分支逻辑,合约包括 MINT_AMBIENT_LIQ_LP、MINT_AMBIENT_BASE_LP、MINT_AMBIENT_QUOTE_LP 三种添加流动性逻辑,分别代表直接添加指定数量的流动性,以及按照 pool 中的 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):为了优化 gas 消耗,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 的主要参与者有三种:

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 四种代币的 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 的交易深度和用户体验方面表现出色。

免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。

分享至:
APP下载

X

Telegram

Facebook

Reddit

复制链接