
Berachain 탐색: 네이티브 프로토콜 및 기술 요소 분석
글: Beosin
Berachain은 시장의 큰 관심을 받고 있는 블록체인으로, 다수의 혁신과 특징을 갖추어 많은 커뮤니티와 개발자의 주목을 받고 있다. Berachain은 PoL 메커니즘과 3종류의 토큰 모델을 통해 체인 상의 유동성 문제에 독특한 해결책을 제공한다. Berachain이 곧 메인넷 출시를 앞두고 있으며, 이를 위해 인센티브 프로그램과 TGE를 도입하여 Berachain 생태계의 초기 사용자와 프로젝트를 유치하고 지원하고 있다.
본 문서에서는 Berachain의 아키텍처와 세 가지 기본 애플리케이션 설계 및 관련 스마트 계약 실행 절차를 설명함으로써 독자들이 Berachain을 심층적으로 이해할 수 있도록 돕는다.
1. 아키텍처
Berachain은 EVM(Ethereum Virtual Machine)과 호환되는 레이어1(L1) 블록체인으로, 3종류의 토큰 모델과 유동성 증명(PoL, Proof-of-Liquidity) 합의 메커니즘을 도입하여 유동성, 합의, 거버넌스 기능을 통합하였으며, 이로 인해 생태계 내 유동성 공급자들에게 더 많은 인센티브를 제공한다.
Berachain의 아키텍처는 크게 두 가지 계층으로 나뉜다:
(1) BeaconKit 합의 계층: 이 계층은 블록체인의 합의 메커니즘을 담당하며, CometBFT를 기본 합의 알고리즘으로 채택하고 여기에 PoL(유동성 증명)을 추가로 도입한다. CometBFT는 Tendermint 기반의 합의 프로토콜로, 빠른 트랜잭션 확인과 비잔틴 장애 허용(BFT) 기능을 제공한다. Berachain에서는 BeaconKit이 CometBFT를 추가로 래핑하여 이더리움 가상 머신(EVM)과 호환되는 어떤 실행 환경과도 상호작용할 수 있도록 한다.
(2) EVM 실행 계층: Berachain의 실행 계층은 이더리움과 동일한 EVM(Ethereum Virtual Machine)을 사용하여 기존 이더리움 도구 체인, 스마트 계약 및 생태계와의 호환성을 보장하며, 개발자가 이더리움 상의 스마트 계약과 탈중앙화 애플리케이션(dApp)을 Berachain으로 직접 이식할 수 있도록 한다.
Berachain의 노드 유형은 검증노드와 RPC 노드로 나뉘며, 각 노드는 전체 노드(full node) 또는 아카이브 노드(archive node)로 구성할 수 있다. 모든 노드 유형은 실행 클라이언트와 합의 클라이언트의 조합이며, 이는 실행 측면에서 어떤 EVM 실행 클라이언트라도 지원하며 Berachain이 구축한 BeaconKit 합의 클라이언트 및 프레임워크와 연동된다는 것을 의미한다.

● 실행 클라이언트: 스마트 계약 코드 실행, 상태 변화 관리 및 트랜잭션 로직 처리를 담당한다. Ethereum Engine API를 사용함으로써 Berachain은 Geth, Erigon, Nethermind, Besu, Reth, Ethereumjs 등 6가지 주요 EVM 실행 클라이언트를 지원한다.
● 합의 클라이언트: 네트워크 노드들 사이에서 합의를 이루고 트랜잭션과 블록의 검증 및 순서 결정을 보장하는 역할을 한다. Berachain은 BeaconKit을 합의 클라이언트로 사용한다.
2. 유동성 증명 (PoL, Proof-of-Liquidity)
Berachain의 유동성 증명(PoL) 토큰 경제 모델은 다음 세 가지 핵심 토큰을 포함한다:
$BERA: BERA는 Berachain의 기본 gas 토큰으로, 트랜잭션 수수료 지불과 검증자의 스테이킹에 사용된다.
$BGT: Berachain의 거버넌스 토큰으로, 체인 상 거버넌스 참여, 보상 배분, 검증자 위임에 사용된다. 일반적인 거버넌스 토큰과 차별화되는 점은 BGT가 soulbound 토큰이라는 것이다. 즉, 전송 불가능하여 사용자는 서로 다른 주소 간에 BGT를 송금할 수 없지만, BGT는 1:1 비율로 BERA로 교환할 수 있다. 단, 이는 일방향 작업이며 BERA를 다시 BGT로 되돌릴 수는 없다. 전송 불가능한 soulbound 토큰인 BGT는 오직 Berachain 생태계(예: 유동성 공급, 대출 등)에 실질적으로 참여한 사용자만이 거버넌스에 참여할 수 있음을 의미하며, 단순히 구매나 거래를 통해 획득할 수 없다.
$HONEY: Berachain의 원생 안정화폐(stablecoin)로, Berachain 생태계 내외부에서 안정적이고 신뢰할 수 있는 결제 수단을 제공한다. 공식적으로는 1달러에 고정된 가치를 가진다고 소개되고 있다. HONEY는 완전 담보 기반의 스테이블코인이며, 허용된 자산을 금고(vault)에 예치하면 발행할 수 있다. 다양한 담보 자산마다 다른 발행 비율이 적용되며, 이는 BGT 거버넌스에 의해 결정된다.

Berachain이 채택한 유동성 증명(PoL) 메커니즘은 PoW나 PoS와 같은 전통적 합의 방식과 다르게, 생태계 내 모든 유동성 공급자의 기여도를 반영한다. 유동성 마이닝과 스테이킹을 통해 Berachain은 PoL을 활용하여 더 많은 사용자가 생태계 전반에 참여하도록 유도한다. 아래에서는 Berachain의 원생 DEX인 BEX를 예로 들어 PoL의 주요 프로세스를 설명한다:
-
초기 스테이킹: 사용자는 먼저 BERA를 스테이킹하여 블록 생성 자격을 가진 검증자가 된다.
-
블록 제안: 활성 검증자 중 하나가 무작위로 선택되어 새로운 블록을 제안한다.
-
보상 분배: 블록을 제안한 검증자는 거버넌스 토큰(BGT)을 받으며, 이를 각각의 검증자가 설정한 파라미터에 따라 생태계 내 다양한 보상 금고(reward vault)에 분배한다.
-
유동성 공급자: BEX의 경우, 유동성 공급자는 BEX 풀에 토큰(HONEY 및 BERA 등)을 예치하여 유동성을 제공하고, 유동성 증명 토큰(예: $HONEY-WBERA)을 획득한 후 이를 보상 금고에 스테이킹함으로써 기여도에 따라 BGT 보상을 받는다.
-
거버넌스 토큰 위임: BGT 보유자는 자신의 BGT를 활성 검증자에게 위임하여 해당 검증자가 블록 제안 시 보상 분배 권한을 높일 수 있게 하며, BGT 분배에 영향을 미칠 수 있다. 다만 이 권한은 검증자의 블록 생성 확률에는 영향을 주지 않는다.
현재 거버넌스 토큰 BGT는 Berachain 상에서 운영되는 세 가지 공식 원생 DApp을 통해 주로 발생한다. 즉, Berachain의 원생 DEX인 BEX, 원생 비託관 대출 프로토콜 Bend, 그리고 원생 탈중앙화 레버리지 거래 플랫폼 Berps이다. 본 문서에서는 이 세 프로젝트의 비즈니스 로직을 중심으로 설명한다.
3. PoL과 BEX
BEX(Berachain Exchange)는 Berachain의 원생 탈중앙화 거래소(DEX) 프로토콜로, 사용자가 중개자 없이 임의의 암호화 자산 쌍을 자유롭게 거래할 수 있도록 한다. BEX는 Berachain 생태계의 중요한 구성 요소로서 다음과 같은 방식으로 PoL 합의 메커니즘과 밀접하게 통합되어 있다:
-
유동성 풀: BEX의 유동성 풀은 거버넌스 업그레이드를 통해 PoL 보상 금고로 전환될 수 있으며, 이 경우 BGT 보상을 받을 자격을 얻는다.
-
유동성 공급자: 사용자는 BEX에서 유동성을 제공하고 LP 토큰을 획득한 후, 이를 PoL 보상 금고에 스테이킹하여 BGT 보상을 얻을 수 있다.
-
거버넌스: BEX의 거버넌스 메커니즘을 통해 제안을 통해 새로운 유동성 풀이 PoL 보상 금고의 허용 목록(whitelist)에 포함될 수 있으며, 이를 통해 해당 풀이 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는 대리 호출(delegate call)을 통해 해당 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 세 가지 유동성 추가 로직을 포함한다. 각각은 지정된 수량의 유동성을 직접 추가하거나, 풀 내 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 체인 상의 풀 유동성은 모두 환경 유동성(ambient liquidity) 형태로, 유동성 공급자가 전역에서 유동성을 제공하며 특정 가격 범위에 집중 유동성을 추가하지 않기 때문에, 현재 토큰 교환 작업은 Uniswap V2와 거의 차이가 없다.
4. PoL과 Bend
Bend는 Bera 체인 상의 비托管형 대출 프로토콜로, Berachain 생태계에 기초적인 대출 서비스를 제공하는 것을 핵심 목적으로 한다. 이 프로젝트는 Berachain 생태계의 중요한 구성 요소로서 공식 대출 시장으로서 다음 방식으로 PoL 합의 메커니즘과 긴밀히 통합되어 있다.

차입자는 wBTC 등의 암호화폐를 담보로 제공하여 HONEY 토큰을 빌릴 수 있으며, 대출과 동시에 일정량의 거버넌스 토큰(BGT)도 획득한다. 이는 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에서는 누구나 정리인이 될 수 있다. 차입자의 건강 지표(health factor)가 1 미만일 경우, 담보 가치가 부채 가치를 충족하지 못한다는 의미이며, 이때 정리인은 정리(clearing)를 시작할 수 있고 담보물의 5% 가치를 정리 보상으로 받을 수 있으므로 정리인의 정리 행동을 유도한다.
4.1 유동성 추가
유동성 공급자가 유동성을 예치할 때, supply 함수는 먼저 현재 예비금 캐시(reserve cache)와 이자율을 업데이트하여 예비금과 이자율의 건전성을 유지하고 최신 데이터를 언제든지 조회할 수 있도록 한다. 이후 현재 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는 탈중앙화 레버리지 거래 플랫폼로, 영속 선물 계약(perpetual futures contract) 거래를 지원한다. Berachain의 원생 안정화폐 $HONEY는 모든 거래의 담보, 지출 및 입금의 기본 토큰 역할을 한다. 사용자는 $bHONEY 금고에 거래 유동성을 제공함으로써 수익을 얻을 수 있다. 금고 예치자는 Berps에서 발생하는 거래 수수료를 수취하며, 거래자의 포지션에 대한 맞수(counterparty) 역할을 한다. 또한 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 블록체인으로, 독특한 유동성 증명(PoL, Proof-of-Liquidity) 합의 메커니즘을 채택하고 있으며, Berachain에 유동성을 제공하는 사용자는 PoL 메커니즘을 통해 보상을 받는다. PoL을 활용함으로써 Berachain은 체인 내 자금 유동성과 보안성을 강화한다. 다른 블록체인과 비교할 때, Berachain은 원생 BEX, Bend, Berps 애플리케이션을 보유하여 사용자에게 토큰 교환, 유동성 마이닝, 대출, 영속 거래 등 일련의 DeFi 서비스를 제공하며, PoL과의 결합을 통해 DeFi 거래 깊이와 사용자 경험 측면에서 뛰어난 성과를 보일 것으로 기대된다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News














