LST/LRT 회계: rebasing, exchange rate, restaking
도입
LST는 staked asset의 유동성을 높이지만, ETH와 완전히 같은 자산은 아니다. rebasing token은 잔액 자체가 늘어나는 방식으로 reward를 반영할 수 있고, wrapper token은 share price 또는 exchange rate가 변하는 방식으로 reward를 반영할 수 있다. 둘 다 경제적으로 비슷해 보이지만 integration에서는 완전히 다르게 다뤄야 한다.
LRT는 여기에 restaking exposure를 더한다. 사용자는 "ETH yield"를 보는 것 같지만 실제로는 operator, AVS, slashing, withdrawal queue, wrapper liquidity에 노출된다. DeFi protocol이 LST/LRT를 담보로 받는 순간 이 위험은 lending, AMM, perps margin으로 전이된다.
학습 목표
- rebasing LST와 exchange-rate wrapper의 잔액 표시 차이를 설명한다.
- LRT가 restaking exposure를 포장하면서 추가 위험을 만든다는 점을 이해한다.
- DeFi 담보로 LST/LRT를 받을 때 oracle, withdrawal, slashing risk를 분리한다.
개념 설명
| 토큰 형태 | reward 반영 | integration 주의점 |
|---|---|---|
| Rebasing LST | balance가 변함 | snapshot, allowance, accounting diff |
| Wrapper LST | exchange rate가 변함 | share price와 asset amount 분리 |
| LRT | restaking reward와 risk | operator/AVS/slashing metadata 필요 |
코드로 확인하기
export function wrapperAssets(shares: bigint, exchangeRateRay: bigint) { return (shares * exchangeRateRay) / 10n ** 27n;}export function displayLstPosition({ shares, exchangeRateRay }: { shares: bigint; exchangeRateRay: bigint }) { return { shares: shares.toString(), redeemableAssets: wrapperAssets(shares, exchangeRateRay).toString(), warning: "share balance is not the same as underlying asset amount" };}select collateral_symbol, oracle_price_usd, exchange_rate, withdrawal_delay_days, slash_event_active, case when slash_event_active then 'disable_new_borrow' when withdrawal_delay_days > 7 then 'increase_haircut' else 'normal' end as risk_actionfrom lst_collateral_config;코드는 wrapper share와 underlying asset을 분리한다. SQL은 LST/LRT collateral이 price만으로 평가되면 안 되고 withdrawal과 slash status가 함께 들어가야 함을 보여준다.
강의 포인트
| 관점 | 확인할 질문 | 증거로 남길 것 |
|---|---|---|
| Accounting | balance가 변하는가, exchange rate가 변하는가 | token integration rule |
| Collateral | 담보 haircut이 충분한가 | LTV, threshold, cap |
| Withdrawal | exit delay가 있는가 | queue and liquidity route |
| Slashing | 어떤 operator/AVS에 노출되는가 | restaking allocation |
실무 예시
백엔드[INDEXER] wstETH를 담보로 받는 lending market은 단순히 token balance만 보면 안 된다. exchange rate가 변하면 같은 share balance가 더 많은 underlying ETH를 가리킬 수 있다. 반대로 slash event나 withdrawal delay가 생기면 price oracle이 늦게 반영할 수 있다.
LRT는 더 복잡하다. 사용자는 restaking reward를 기대하지만 protocol은 operator concentration, AVS dependency, slashing isolation을 봐야 한다. LRT를 "ETH 계열 담보"로만 분류하면 상관관계와 tail risk가 숨겨진다.
흔한 오해와 실패 시나리오
| 오해 | 실패 시나리오 | 교정 방식 |
|---|---|---|
| LST는 ETH와 같다 | withdrawal queue와 depeg가 생긴다 | redeemability와 liquidity를 분리한다 |
| wrapper balance는 asset balance다 | share와 underlying을 혼동한다 | exchange rate를 명시한다 |
| restaking yield만 보면 된다 | slashing과 operator risk가 누락된다 | allocation과 slash policy를 추적한다 |
| oracle price만 있으면 충분하다 | slash event나 withdrawal delay가 늦게 반영된다 | status oracle과 risk cap을 둔다 |
실습 과제
- LST wrapper share 계산하기: staked shares, exchange rate, wrapper supply를 받아 사용자 표시 잔액과 redeemable amount를 계산한다.
- LST collateral risk field 정의하기: oracle, withdrawal queue, slash event, exchange rate drift를 lending market 설정표로 정리한다.
완료 기준
- rebasing token과 wrapper token의 balance/share accounting 차이를 코드로 표현했다.
- LST/LRT를 lending collateral로 받을 때 필요한 risk field를 작성했다.
근거 자료
- 06 Staking and Restaking
- Lido Token Integration Guide