Terra [1] (Concept, Architecture)

2023. 6. 13. 22:06Blockchain/Terra

728x90
반응형

※ 원글 작성 : 22년 4월 27일

Concept

Terra & Luna

  • Terra
    • 법정통화와 pegging된 멀티 스테이블 코인(e.g. UST, KRT 등)
  • Luna
    • 테라의 가격 안정화를 위해 고안
    • 테라의 가격이 고정가격 이상일 때 차익거래자들은 시스템에 루나를 보내서 같은 법정화폐 가치에 해당되는 테라를 얻은 뒤 이를 매각해서 수익을 얻음과 동시에 테라를 고정가격으로 되돌림
    • 테라의 가격이 고정가격 이하일 때 차익거래자들은 시스템에 테라를 보내서 같은 법정화폐 가치에 해당되는 루나를 얻은 뒤 이를 시장에 매각해서 수익을 얻음과 동시에 테라를 고정가격으로 되돌림
    • 루나를 시스템에 스테이킹한 사람들은 miner이며, 루나의 가치변동, 수수료, 시뇨리지를 통한 이득을 얻음
    • 안정적 보상을 위해 테라의 수요가 올라가는 경우 마이너들(루나 홀더)은 수수료를 많이 받으므로 시뇨리지의 루나 소각률을 통한 마이너들의 이득은 줄이고, 테라의 수요가 감소하는 경우 마이너들은 수수료를 적게 받으므로 시뇨리지의 루나 소각률 통한 마이너들의 이득을 늘리거나 수수료를 비싸게 하여 마이너를 최대한으로 보호한다.

Governance

  • 거버넌스는 user와 validator의 민주적 프로세스에 의해 유지됨
  • 커뮤니티 맴버(user와 validator)는 submit, vote, proposal을 실행
  • Proposal
    • 커뮤니티 맴버는 초기 보증금과 함께 제안서(draft)를 작성하고 제출(submit)한다.
    • 가장 흔한 proposal
      • ParameterChangeProposal : 각 모듈의 파라미터 정의를 변경
      • CommunityPoolSpendProposal : 커뮤니티 pool내의 fund를 보냄
      • TextProposal : 다른 이슈들을 다룸 e.g. 큰 방향성을 변경한다던가 어떤 결정을 요청할 때
  • voting process
    • 커뮤니티 맴버들은 그들의 스태이킹한 루나 만큼 보팅을 할 수 있다.
    • 1 luna = 1 vote
    • 사용자가 vote를 특정하지 않으면 투표는 기본적으로 자신이 속한 validator가 한다.
    • validator는 delegator가 지정하지 않는 한 전체 스테이킹 된 지분으로 투표한다.
    • 해당 이유로 각 delegator(위임자)가 자신의 선호도에 따라 투표하는것이 매우 중요하다.
    • process
      • 한 사용자가 proposal을 제출하고 2주의 deposit 기간을 둔다.
      • user들이 루나를 proposal을 뒷받침, 동의하기 위해 담보로 입금한다.(deposit)
      • 이 deposit 기간은 최소 임계값인 50luna가 입금되면 종료된다. deposit을 스팸으로부터 보호하기 위해서
      • 1-week vote 기간이 시작되면 voting option은 다음과 같다.
      • yes : in favor
      • no : not in favor
      • noWithVeto : not in favor, the deposit should be burned
      • abstain : voter abstains
      • 투표가 집계되고, proposal은 다음 세가지 조건을 충족하면 통과된다.
      • quorum is met : 적어도 40%의 모든 스테이킹 루나들이 vote를 했을 때
      • noWithVeto 투표의 총 수가 총 투표수의 33.4%보다 적을 때
      • yes의 총 투표수가 50%일때. 만약 이전 두 조건들에 충족하지 못한다면 해당 proposal은 reject
      • accept된 proposal이 적용된다.
      • 예금들은 환불되거나 태워진다.
    • 일단 수락 되면 거버넌스 제안에 설명된 변경사항은 proposal handler에 의해 자동으로 적용된다.
    • 통과된 textProposal과 같은 일반 제안은 terra 팀과 커뮤니티에서 검토해야 하며, 수동으로 구현해야 한다.
  • Deposit
    • Deposit, 예치는 불필요한 proposal과 스팸에 대응하기 위함으로 사용된다.
    • 사용자들은 noWithVeto에 투표하여 스팸으로 간주되는 모든 proposal에 거부권을 행사할 수 있다.
    • Deposit이 환불되는 조건
      • 최소 deposit 50luna가 2-week 입금기간내에 달성 되었을 때
      • Quorum is met : 총 투표수가 스테이킹 된 모든 luna의 40%이상일 때
      • noWithVeto 투표의 총 수가 총 투표의 33.4% 미만일 때
      • 투표가 찬성 또는 반대 투표의 과반수를 return할 때
    • Deposit이 환불되지 않는 조건
      • 50luna의 최소 deposit이 2주 입금기간 내에 도달하지 못했을 때
      • quorum is not met : 1주일의 투표기간 후 총 투표수가 스테이킹 된 전체 luna의 40% 미만일때
      • noWithVeto 투표수가 전체 투표수의 33.4% 이상일 때

Node

  • validator
    • validator는 consensus에 참여, 블록 검증, 거버넌스 참여와 리워드 receive를 확인하기 위해 full node 프로그램을 실행시킨다.
    • 토탈 스테이킹 양이 높은 top 130 validotor들은 컨센서스에 참여할 수 있다.
  • delegator
    • delegate
      • 유저 혹은 delegator가 보상을 받는 대가로 그들의 LUNA를 validator의 stake에 추가한다.
      • delegated luna는 validator에 bond된다.
      • validator는 delegator의 luna에 대한 소유권이 절대 없다.
      • delegating, bonding, staking은 일반적으로 동일한 프로세스를 나타낸다.
    • 루나에 대한 delegate, bond, stake를 통해 리워드를 받는 유저이다.

Fees on Terra

  • Market swap 시 fee가 존재한다
  • Gas
    • 트랜잭션을 프로세싱 하는데 소요되는 비용
    • 테라 스테이션의 모든 트랜잭션에 부여된다. 충분한 gas가 없을 시 트랜잭션이 프로세싱 되지 않는다.
    • 다른 블록체인들의 gas와 다른점
      • validator는 그들의 최소 gas fee를 설정할 수 있다.
      • 대부분의 트랜잭션은 최소한의 gas보다는 많이 설정되어 있을것이고, 트랜잭션의 완결성을 보장한다.
      • 사용되지 않은 gas는 환불되지 않는다.
      • 트랜잭션은 가스양에 기반해 queue되지 않고 받은 순서대로 처리된다.
    • 현재 gas rate를 확인하는 페이지 존재
    • 모든 블록에서 가스 비용은 reward pool로 보내지고, 스테이킹 보상의 형태로 delegators에게 분산시키는 validator들에게 분산된다.
  • Tobin tax
    • 테라 스테이블코인 denominations(e.g. UST,KRT..) 간 마켓 스왑시 더해지는 고정된 퍼센티지의 fee
    • rate는 각 테라 스테이블 코인에 의존되어 다양하다.
    • e.g. most denominations가 0.35%일때 rate for MNT는 2%이다.
    • 더 높은 tax rate가 트랜잭션에 사용되어 진다.
    • front-running the oracle을 줄이기위해 만들어졌다.
  • spread fee
    • terra와 luna 사이 마켓 스왑 시 추가되는 비용
    • 미니멈 spread fee는 0.5%
    • terra pool의 크기와 luna pool의 법정 가치 사이에 constant produce를 유지하기 위해 spread fee를 마켓 모듈이 조정한다.
    • pool이 contant product equilibrium에 도달하면 spread rate는 normal 값을 return한다.
    • 모든 블록에서 spread fee는 oracle reward pool로 보내지며 validator에게 분산된다. validator는 이 fee들을 delegator에게 스테이킹 보상으로 다시 분배한다.
  • changes to fees
    • proposal 172이 통과되었다.
    • 스테이블한 fee tax rate를 0으로 변화시키기 위한 parameter 교환 프로토콜
    • 테라 스테이블코인을 사용하고 마켓 스왑에 배제된 어떠한 트랜잭션(=모든 트랜잭션)에도 charge하기 위해 사용된다.

참고
https://www.terra.money/

728x90
반응형

'Blockchain > Terra' 카테고리의 다른 글

Terra [2] (Core, SDK, Smart contract)  (0) 2023.06.14