이 글을 이해하기 위해 컴퓨터 공학 지식이 일부 필요할 수 있습니다.
Liquidity
블록체인 경제 하에서, 유동성 관리 정책은 매우 중요합니다. 유동성 공급 전략은 Crypto Currency 가치에 영향을 줄 수 있습니다.
Market 은 거대한 Liquidity Pool 이라고 볼 수 있으며, Decentralized Finance (DeFi) 는 Liquidity Pool 을 사용해 Crypto Currency 의 가치를 산정하기도 합니다.
Crypto Currency 역시 실 사회의 M0, M1, M2 와 유사한 개념이 적용됩니다.
Mint
Crypto Currency 를 발행하는 단계입니다.
Mintable
최대 공급량이 제한되어 있지 않고, 지속적으로 Crypto Currency 를 발행합니다.
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
(Reference : OpenZeppelin ERC20)
- Case 1. 계획된 블록 주기마다 정해진 양만큼 Mint 합니다. 시간에 따라 Mint 수준이 변할 수는 있으나, 중단되지는 않습니다.
- Case 2. Crypto Currency 는 타 FIAT 혹은 Currency 에 Pegged 상태이며, Deposit 가치만큼의 Crypto Currency 를 발행합니다.
Capped
최대 공급량이 정해져 있으며, 예정된 공급량에 도달하면 더 이상의 Mint 가 진행되지 않습니다.
function _mint(address account, uint256 amount) internal virtual override {
require(ERC20.totalSupply() + amount <= cap(), "ERC20Capped: cap exceeded");
super._mint(account, amount);
}
(Reference : OpenZeppelin ERC20Capped)
- Case 1. 계획된 블록 주기마다 정해진 양의 Mint 가 발생하고, 일정 시점이 되면 Mint 중단합니다.
- Case 2. 정해진 유동성 만큼 최초 1회만 Mint 합니다.
Lockup
특정 시점까지 Liquidity 를 동결하는 단계이며, 주로 Team Share 에 적용됩니다.
Lockup 이 설정되어 있지 않은 경우, 개발 팀은 가진 자산을 타 자산으로 바꾼 뒤, 프로젝트로 부터 이탈할 수도 있습니다.
- Case1. 시스템 적 (Smart Contract) 상 Lockup 을 설정한 경우, 지정된 시점이 되어야만 이를 인출해 갈 수 있습니다.
- Case2. 시스템 상 Lockup 은 되어 있지 않지만, 공개된 White Paper 등에 Lockup 시점을 안내하는 경우도 있습니다.
Market
Crypto Currency 가 실제 Market 에서 유통되는 단계입니다. 시장의 영역으로, 시장 규칙을 따릅니다.
Staking
Market 단게에서 Liquidity 를 관리하는 방법 중 하나로 Staking 서비스가 있습니다. 유저가 Crypto Currency 를 Staking (Deposit) 하면 그 만큼 시장 내에 유통되는 Liquidity 가 억제될 수 있습니다.
다만, 유저는 충분히 매력적인 보상이 주어지지 않으면 Staking 을 하지 않을 것이며, 아래와 같은 보상을 제공할 수 있습니다.
- Case1. Governance 에 대한 참여 권한을 부여합니다.
- Case2. 시스템 상 발생하는 Fee 의 수입을 나누어 줍니다.
- Decentralized Finance (DeFi) 구조를 통해, Staking 된 Crypto 를 빌려 주고, 그에 대한 이자를 취해 배분할 수 있습니다.
- Transaction 혹은 Contract 의 기능에 대한 Fee 를 수취하여 이를 배분할 수 있습니다.
- Case3. 새로운 Crypto Currency 를 발행해서 지급합니다.
- Case4. Lottery 추첨과 같은 기회를 제공합니다.
Burn
Crypto Currency 를 소각하는 단계입니다. 소각 방법은 크게 2가지로 나눌 수 있습니다.
- 시스템 상 소각이 지원되는 경우, 시스템 상 유통량이 감소합니다.
- 시스템 상 소각이 지원되지 않는 경우, 누구도 사용할 수 없는 임의의 주소 등으로 송금하며, 시스템 상 표기되는 유통량에는 변화가 없습니다.
주로 서비스 운영 주체에 의해 이뤄지며, 공개된 소각 계획에 따라 시장에서 매입하여 소각하거나, Team 소유분을 소각하는 경우가 많지만, Governance 에 의해 Fee 를 소각하는 정책을 가진 경우도 있습니다.
Reference
- OpenZeppelin ERC20, MIT License
- OpenZeppelin ERC20Capped, MIT License