Maker DAO

Maker DAO란 ?

암호화폐의 가치를 안정적으로 유지하는 가장 확실한 방법은 ‘법정화폐담보’ 방식이다.

법정화폐담보 방식이란, 한 재단(주체)에서 보유한 달러화만큼 암호화폐를 발행하는 것이다.

하지만 이러한 법정화폐담보 방식은 결국 중앙화된 주체인 재단에서 암호화폐의 발행량을 조작할 수 있다는 비판에 직면하고 있다.

이는 탈중앙화된 운영방식을 지향하는 블록체인의 철학과는 잘 맞지 않는 방법이다.

메이커다오(MakerDAO)는 암호화폐 담보 방식의 스테이블코인인 다이(DAI)와 담보 대출 수수료로 사용되는 메이커토큰(MKR)을 만든 회사이다.

MakerDAO는 암호화폐를 담보로 운용하며 탈중앙화된 방식으로 스테이블코인 시스템을 운영하고 있다.

MakerDAO는 2017년 12월에 백서를 공개하며 시작된 프로젝트로, 이더리움 블록체인 플랫폼을 기반으로 스테이블 코인을 운영하고 있다.

특히, MakerDAO는 재단을 신뢰할 필요 없이 투명하게 기록되고 관리되는 스테이블 코인과 거버넌스를 목표로 한다.

DAI 가격은 어떻게 스테이블 한가?

스테이블 코인 DAI와 MKR

MakerDAO 생태계에는 총 두 가지 토큰이 존재한다.

각각의 토큰은 사용처도, 가치도 다르게 만들어졌다.

그렇다면 MakerDAO는 왜 스테이블 코인인 DAI만 발행하지 않고, MKR이라고 하는 토큰까지 발행한 것일까?

MKR

MakerDAO 시스템에는 DAI 외에도 거버넌스에 활용되는 MKR 토큰이 있다.

스테이블 코인은 아니며, 해당 코인을 보유한 사람들은 시스템의 의사결정에 참여할 수 있다.

최소담보비율, 안정화 수수료율 등 각종 지표를 설정하는 투표에 참여할 수 있으며 시스템의 다양한 부분의 모니터링을 수행한다.

MakerDAO에서 MKR토큰을 발행하는 이유는 이렇듯 탈중화된 방식으로 거버넌스를 유지하기 위한 것이다.

DAI

DAI는 MakerDAO의 스테이블 코인으로, $1에 soft-pegged 되어있는 ERC20 토큰이다.

뒤에서 더 자세히 설명하겠지만, 누구든지 MakerDAO의 Vault를 통해 DAI를 생성할 수 있다.

DAI의 발행과 Vault

본격적으로 시작하기 전에, ‘수요, 공급’의 원리에 대해 간단히 짚고 넘어가도록 하겠다. 어떤 상품, 서비스의 가격은 수요와 공급에 따라 결정되는데, 화폐의 가격 역시 수요, 공급의 원리를 따른다.

따라서 DAI가 $1의 가격을 안정적으로 유지하기 위해서는, 통화량 조절이 필요하다.

가격이 $1보다 낮은 경우, DAI의 공급을 줄이거나 수요를 늘리면 가격이 상승한다.

가격이 $1보다 높은 경우, DAI의 공급을 늘리거나 수요를 줄이면 가격이 하락한다.

DAI의 안정화 메커니즘은 기본적으로 위의 간단한 원리에 기초한다.

이러한 메커니즘에 대해 보다 자세히 파헤쳐보기 위해, 먼저 DAI의 공급 방법에 대해서 알아보도록 하자.

과연 DAI는 어떻게 생성되는 것일까?

우선 DAI의 생성에 대해 이해하기 위해서는, Vault에 대한 이해가 필요하다.

MakerDAO 팀은 Vault라는 담보를 담는(정확히는 담보와 해당 담보에 대한 정보도 함께 담는) 금고를 통해 DAI를 생성하도록 설계하였다.

Valut = 금고!

이용자는 Vault에 암호화폐를 담보로 맡김으로써 DAI를 생성할 수 있다.

이 과정은 주택담보대출과 유사하다. 은행에서 주택을 담보로 돈을 빌릴 때, 빌릴 수 있는 최대 금액은 주택의 가치보다 적다.

주택의 가격이 어느정도 내려가도 대출 금액보다 가치가 높아야 은행 입장에서는 손해를 보지 않기 때문이다.

마찬가지로 MakerDAO에서도 발행할 DAI의 가치보다 더 많은 담보를 예치해야한다.

이 때에 원하는 DAI보다 최소한 얼마나 더 많은 담보물을 넣어야 하는지를 최소담보비율이라는 수치로 나타낸다.

최소담보비율은 MakerDAO의 거버넌스 시스템에 의해 투표로 정해진다.

만약 MakerDAO 시스템에서 최소담보비율은 150%이며, 1 DAI는 $1의 가치를 가진다고 해보자.

그렇다면 $150 가치의 ETH를 Vault에 예치하면 최대 100개의 DAI를 받을 수 있다.

실질적으로 사용자는 Vault에 $150의 ETH를 담보로 100 DAI를 빌린것과 같다.

요약 : Vaule에 담보를 맡기면 DAI가 나온다.

최소 담보 비율이란?

담보비율은 ‘맡긴 담보의 시장가치($)’ / 발행받은 DAI의 가치 *100 (%)를 말한다.

최소담보비율은 DAI 생성을 위해 만족해야 하는 최소한의 담보비율이다.

담보의 시장가치 변화로 인해 담보비율이 최소담보비율 아래로 내려가는 경우, 청산절차가 자동으로 진행된다.

여기서 한 가지 질문이 생길 수 있다.

“ETH의 가격은 시시각각 변하는데, ETH 가치가 크게 떨어지면 담보의 가치가 떨어져서 시스템이 위험해질 수 있는 거 아닌가?”

정확하다. 위에서 설명했듯이, MakerDAO에는 최소 담보비율이 존재한다.

(예치한 담보가치($) / 발행받은 DAI가치($))

현재 Vault를 통해 DAI를 생성할때 적용되는 최소 담보비율은 150%이다.

따라서 담보물의 시장 가격이 하락하여 담보비율이 150% 이하로 떨어질 경우, 해당 Vault의 담보는 강제로 청산과정에 들어간다.

시스템은 해당 Vault에 예치된 담보를 경매에 등록하고, 해당 경매를 통해 받은 금액으로 부채를 청산한다.

이 과정에서 약간의 추가 페널티 수수료가 부과되며, 해당 Vault의 담보는 사라지게 된다.

이렇듯 담보물의 시장 가격 하락으로 인해, 예치한 담보가치가 발행받은 DAI의 가치보다 적어지기 전에 담보를 매매함으로써 시스템의 안정성을 확보한다.

Vault에서 DAI가 발행되는 과정을 더 자세히 알아보도록 하자.

  • 각 개인은 Vault contract를 통해 담보 유형별 Vault를 생성할 수 있다.

  • 개별 Vault에 담보로 맡기고자 하는 암호화폐를 전송한다. 현재 담보로 수용되는 암호화폐는 ETH, BAT가 있다

  • 각 사용자는 최소담보비율의 한도 내에서 DAI를 발행할 수 있다.

  • DAI를 생성할때 필요한 암호화폐의 가격 정보 또한 최대한 탈중앙화된 방식으로 운영되고 있다.

  • 거래 정보를 어느 특정 개인이 입력하는 것이 아니라, 여러 집단에서 입력한 값들의 중간값을 시스템에 반영한다.

  • 그런데 Vault를 통해 DAI를 생성할 때 주의할 점이 한 가지 있다. 그것은 바로 담보의 가격이 급락해서 담보 비율이 150% 이하로 하락하는 경우, 해당 Vault는 강제로 청산된다는 점이다.

  • 때문에 담보로 맡긴 금액보다 훨씬 적은 금액의 DAI를 생성하여 청산될 가능성을 최대한 낮추는 것을 권장한다.

  • Vault의 청산 과정에서 담보물이 경매에 부쳐진다.

  • 상환해야할 가치가(DAI의 양이), 담보물보다 낮은 경우에는 담보물 차액을 원래 주인에게 돌려준다.

  • 반대로 담보물로 상환해야할 가치를 충당할 수 없는 경우에는, 시스템에서 MKR을 발행하고 이를 경매하는 ‘부채경매’를 진행한다.

  • 경매 종료 후 부채경매에서 수취한 DAI를 통해 부족분을 충당한다.

  • 위의 강제 청산에 해당되지 않는 경우 진행되는 일반 청산 절차는 다음과 같다.

  • Vault 생성자는 자신의 담보로 발행된 DAI와, 일종의 이용 수수료인 Stability Fee를 상환함으로써 예치했던 담보를 돌려 받을 수 있다. 시스템에 반환된 DAI는 소각된다.

MakerDAO 생태계와 구성원들의 역할

MakerDAO 생태계에는 다양한 역할을 가진 주체들이 존재한다.

탈중앙화된 방식으로 운영되는 운영되는 MakerDAO 참여자들의 성격과 역할에 대해 알아보도록 하자.

Users

MakerDAO 생태계에서 일반 이용자 층은 아래와 같이 DAI Holder와, Vault Owner로 분류할 수 있다.

Users - DAI Holder

안정적인 가격을 유지하는 암호화폐를 필요로 하는 사람. MakerDAO 시스템에 대한 구체적인 지식은 갖고 있지 않아도, 암호화폐 거래소를 통해 쉽게 DAI를 취득할 수 있다.

For example, 암호화폐 거래소에서 1 DAI를 $1에 구매한 Ben

Users - Vault Owner

Vault 생성을 통해 암호화폐를 담보로 맡기고 DAI를 발행받는 사람.

Maker DAO 시스템의 작동원리 및 암호화폐에 대해 어느 정도의 지식이 필요하다.

이들이 Vault를 이용하는 가장 큰 이유는 ‘레버리지 효과’ 때문이라 할 수 있다.

대부분의 경우 ETH(와 같은 암호화폐 )의 가격상승을 기대하고, ETH를 담보로 맡긴 뒤 Vault 생성을 통해 DAI를 발행받는다.

그리고 발행받은 DAI를 ETH로 바꾼뒤 또 다시 Vault를 생성하고, 이 작업을 반복적으로 수행한다.

즉, 1 ETH로 100 DAI를 발행받으면, 100 DAI로 또 다시 ETH를 구입하고, 또 DAI를 발행받고…

이 과정을 거쳐 ETH의 가격 상승을 통해 얻을 수 있는 수익률을 극대화 하는 것이다.

For example, 1 ETH를 맡기고 생성한 100 DAI로, 다시 ETH를 구매한 Robbie

Users - Governor

MakerDAO 시스템의 안정적인 운영을 위해 활동하는 참여자들이다.

Governor는 크게 MKR HolderRisk Team으로 분류된다.

Governor - MKR Holder

MKR 보유를 통해 의사결정에 참여할 수 있는 사람.

시스템에 대한 비교적 깊은 이해와 지식이 요구된다.

기본적으로 MKR 토큰의 가치는 시스템과 직접적으로 연결되어 있다.

따라서 MKR Holder들은 시스템의 안정적인 운영 및 발전을 위해 올바른 의사결정을 내리는 이해관계자들이라고 볼 수 있다.

Governor - Risk Team

MakerDAO 시스템 관련 데이터를 수집하여, 담보 포트폴리오 혹은 적절한 통화 정책 등과 관련된 risk model을 개발한다.

해당 리스크 모델로부터 각 담보물(ETH, BAT, 또는 새로운 후보 담보물들)에 대해 아래와 같은 4개의 리스크 파라미터들을 산출하여 MKR Holder들에게 제출하고, 이는 투표를 통해 시스템에 반영된다.

Stability fee

MakerDAO 시스템을 이용하는 일종의 수수료다. 최소담보비율 이상으로 담보비율이 잘 유지되어 Vault에 생성한 부채를 청산하는 경우, 발행받은 DAI와 더불어 (발행받은 DAI) * (Stability fee %)를 함께 상환해야한다. 또한, 강제청산의 경우에도 stability fee는 수취된다.

Liquidation ratio

시스템의 강제청산이 시작되는 비율을 말한다. 담보물의 시장 가치가 발행받은 DAI 가격의 청산비율 아래로 떨어지는 경우 강제청산이 시작된다. 최소담보비율과 같은 의미로 사용되며, 현재 ETH, BAT 모두 청산비율(최소담보비율)은 150%이다.

Liquidation penalty

일반 청산과 달리, 강제청산인 경우 발생하는 추가적인 수수료(벌금)이다. 이렇게 수취된 DAI는 MKR을 구매하여 소각하는데 이용된다.

Debt ceiling

특정 담보 유형별로 시스템에서 발행될 수 있는 DAI의 최대 한도를 말한다. 현재 ETH의 Debt Ceiling은 7500만개이고 BAT의 Debt Ceiling은 300만개이다.

그 외

그 외 - Oracles

담보물의 가격은 체인 외부로부터 가져와야 한다.

Oracle은 체인 외부의 시장에서 담보물의 가격을 가져오는 시스템이다.

MakerDAO에서 Oracle 시스템은 크게 Offchain과 Onchain으로 나뉜다.

Oracle version 2는 최대한 많은 참여자들이 저렴한 비용으로 빠르게 가격을 기록하는 것을 목표로 설계하였다.

Offchain

  • Broadcasters : 거래소의 데이터를 수집한 후 전자서명을 한 후 가십 네트워크에 전파한다.

  • Omnia Relayer Network*(Feed)* : 전파된 메시지를 하나의 트랜잭션으로 만들어 onchain으로 전파한다.

Onchain

  • Medianizer : Relayer로부터 받은 가격들을 종합하여 중간값을 반환한다.

  • Oracle Security Module*(OSM)* : 반환된 중간값이 실제 시스템에 반영되는 시간을 늦추는 역할을 한다. 거버넌스가 해당 오라클 값이 잘못됐을 경우 대응할 수 있는 시간을 벌어준다.

가격이 반영되는 흐름은 다음과 같다.

기존 버전 Oracle에서는 Feed라는 컨트랙트로부터 가격 정보를 받아왔다.

하지만 다중담보다이로 버전이 업그레이드 되면서 방식이 바뀌었다.

지금은 Relayer Network가 여러 개의 Offchain 가격 정보를 묶어서 한번에 Medianizer에게 전달한다.

Medianizer는 묶음으로 온 정보가 유효한 오라클로부터 나온 것인지 서명을 검증하며, 또한 받은 정보가 최신 정보인지 등을 확인한 후 가격 정보를 업데이트한다.

마지막으로 OSM이 Medianizer로 부터 받은 정보를 일정시간 지연 후 실제 시스템에 반영한다. 현재 지연시간은 한시간이다.

그 외 - Keeper

MakerDAO는 시스템을 안정화시키기 위해 외부 에이전트들에게 인센티브를 주어 활동하게 하는데, 이 외부 에이전트들을 Keeper라고 명한다.

Keeper들은 보통 자동화된 봇들이고, 여러 유형의 Keeper들이 존재한다. 각각에 대해 좀 더 상세하게 살펴보도록 하자.

Auction Keeper

시스템의 재무상태가 안정적으로 유지되기 위해서는 채무와 잉여금 둘 모두 특정 한도를 넘어서는 것을 방지해야 한다.

Auction 시스템과 Auction Keeper들이 이 일을 수행한다.

경매에는 잉여금 경매(Surplus Auction), 담보 경매(Collateral Auction), 부채 경매(Dept Auction)가 있고, 키퍼들은 각 경매를 시작시키고 bidding함으로서 차익거래 기회를 얻는다.

시스템이 안정적으로 유지될 경우 Vaults로 부터 수집된 stability fee를 통해 DAI 잉여금이 발생한다.

Stability fee로 발생한 순 잉여금이 특정 한도에 도달할 때마다, DAI 잉여금은 외부 참여자(Keeper)에게 경매된다(Surplus Auction).

그리고 외부 참여자들은 그 대가로 MKR을 지불한다.

이후 해당 MKR은 소각되어 시장에 유통되는 MKR의 양이 줄어든다.

MakerDAO는 overcollateralization(초과 담보)을 통해 과도한 부채 생성으로부터 시스템을 보호한다.

이상적인 상황에서 올바른 risk parameter들을 사용하면 개별 Vault의 부채는 해당 Vault에 예치된 담보로 지불할 수 있다.

해당 담보의 가격이 더이상 Vault가 필요로하는 최소담보비율을 유지하지 못하는 지점으로 떨어지면, 시스템은 Vault의 부채(및 청산 페널티)만큼 강제로 담보를 경매에 부쳐 매각한다.

이 과정을 담보 경매(Collateral Auction)라고 부른다.

담보가격이 급격히 떨어지거나 담보를 사려는 사람이 없을 때, 청산된 Vault에는 담보 경매를 통해 상환할 수 없는 부채가 있을 수 있으며, 반드시 시스템에 의해 처리되어야 한다.

첫 번째 방법은 이 부채를 충당하기 위한 잉여금이 있다면 안정수수료에서 나오는 잉여금을 이용하여 충당하는 것이다.

만약 없다면, 시스템은 부채 경매(Debt Auction)를 개시한다.

부채 경매는 시스템이 MKR을 발행하여 이를 경매에 부치고, 낙찰자는 DAI를 그 대가로 지불하는 형태로 이루어진다.

이를 통해 시스템은 DAI를 회수하여 Vault 부채 청산 부족분을 충당한다. 한편, 이 과정에서 유통 중인 MKR의 양은 늘어나게 된다.

Market Maker Keeper

DAI 가격이 Target Price로 장기적으로 수렴할 것이라는 기대를 가지고 스프레드, 최대 계약 등의 매개 변수들을 사용하여 DAI 마켓이 존재하는 여러 거래소(OasisDEX, EtherDelta 등 탈중앙화 거래소 뿐만 아니라 Okex, Kraken 등 중앙화 거래소)들에 일련의 주문을 생성하는 외부 참여자들이다.

Cage Keeper

Emergency Shutdown* 과정은 DAI 시스템에서 활동하는 모든 타입의 유저들이 참여한다.

Cage Keeper는 이런 참여자들의 활동을 도와주는 역할을 한다. 이에 대한 자세한 설명은 여기에서 확인할 수 있다.

Emergency Shutdown이란?

담보물 가치의 급격한 하락으로 시스템이 Undercollateralized 될 매우 큰 위기에 처했을 때, 혹은 해킹이나 컨트랙트 상의 이슈가 발견되어 시스템 전체에 문제를 야기할 수 있는 경우, MKR 투표권자들에 의해 시스템 전체를 중지시키고, 시스템에 예치된 담보를 각자의 몫에 맞게 DAI 보유자 및 Vault에 담보를 예치해놓은 이용자에게 돌려주는 최후의 청산 절차를 말한다.

MakerDAO는 탈중앙화된 커뮤니티로, 각 role에 필요한 지식만 갖추고 있다면, 누구나 특정 role에 참가할 수 있고, 한 사람이 복수의 역할을 할 수가 있다.

다만, Oracle과 같은 경우에는 MKR holder들의 지명을 받을 필요가 있다.

MakerDAO는 누가 어떻게 의사결정하는가?

탈중앙화 시스템에서는 어떤 주체가 어떤 의사결정 방식으로 시스템을 운영하는지에 대해 이해하는 것이 중요하다.

MakerDAO는 투표를 통해 의사결정을 하게 되고 실제로 시스템을 변경한다. 그렇다면 투표는 어떤 방식으로 진행될까?

[용어 정리]

  • Chief : MKR 홀더들이 투표를 할 수 있도록 도와주는 컨트랙트

  • IOU: Risk Premium Rates, Base Rate and Savings Rate 등을 정하는 투표를 할 수 있는 토큰(아직 적용되어있지 않음).

  • Proposal Object : 투표를 통해 뽑히는 이더리움 address. 이 address는 Maker protocol의 관리자 권한을 얻게 된다. Proposal Object의 종류는 아래와 같다.

  • Spell: 한 번에 1개의 정책을 바꾸는 특수한 컨트랙트. 한번만 실행가능.

  • MegaSpell: 한번에 여러 개의 정책을 바꾸는 특수한 컨트랙트. 한번만 실행가능.

  • Multi-Signature Contract: 다중 서명 컨트랙트.

  • EOA (Externally Owned Account) : 이더리움 지갑 address.

  • Slate : 투표의 단위. 한번에 1개 또는 여러 개의 Proposal Object를 선택할 수 있다.

투표는 다음과 같이 진행된다.

  1. MKR 홀더들이 MKR를 Chief 컨트랙트에 lock 한다. Chief는 IOU토큰을 발행해 준다.

  2. MKR 홀더는 lock한 MKR만큼 Slate에 투표를 할 수 있다. 예를 들어 내가 원하는 안건이 들어있는 Slate를 지정하여 지분만큼 투표한다.

  3. Proposal Object는 여러 Slate에 속해있을 수 있다. 속해 있는 모든 Slate가 받은 투표의 합이 가장 큰 Proposal Object가 뽑히게 된다. 이 때에 Chief에 lift 함수를 호출한다. 이 순간, Chief의 hat이라는 변수에 해당 Proposal Object의 주소가 저장된다.

  4. Pause 컨트랙트는 선택된 Proposal Object가 일정 시간 후에 시스템에 반영될 수 있도록 돕는다. 딜레이를 주는 이유는 혹시 잘못된 선택을 했거나 공격을 받았을 때에 되돌릴 수 있는 시간을 벌기 위함이다.

  5. Mom이라는 시스템 인터페이스를 통해 Proposal Object가 실제 시스템에 반영된다.

실제로는 https://vote.makerdao.com/ 라는 홈페이지를 통해 쉽게 voting이 이뤄지도록 만들어놓았다.

Sources …

Last updated