Cosmos[3] (Algorithm, Protocol)

storemymem·2022년 4월 27일
0

Tendermint Consensus algorithm

  • Synchronous BFT consensus protocol, DPoS와 PBFT 개념을 섞음

  • 아톰이라 불리는 지분 토큰(staking token)을 임의의 검증인에게 위임하여 일정한 블록 수수료(block fee)와 아톰 보상(atom rewards)를 얻을 수 있다.

  • 위임 검증인(Delegate Validator)이 해킹 당하거나 프로토콜을 위반할 경우 처벌을 받는 리스크 존재

  • 100의 validator를 선발하여, 아톰 지분 토큰을 validator에게 위임해서 일정한 블록 수수료와 아톰 보상을 받을 수 있다. 사용자가(delegator) 위임한 validator가 해킹 당하거나 프로토콜을 위반할 경우 처벌을 받는 리스크가 존재

  • Tendermint 합의 개념

    • Propose, Prevote, Precommit
    • 2/3 초과하는 사람들이 동의했을 경우 다음단계로 진행
    • 투표를 진행할 때 참여한 지분을 네트워크에 동결 시키는 locking 메커니즘을 통해 이중 투표 방지
    • 프로토콜을 임의의 validator가 안정성을 저해하는데 시도만 하더라도 이를 처벌가능하고, nothing of stake 문제를 해결 가능
    • 최신 블록에서 2/3 초과하는 precommit을 검증하기만 하면 최신 상태를 결정할 수 있다.
  • Tendermint 합의 프로세스

    • 아톰 토큰
      • cosmos 내부 토큰
      • 코스모스 허브의 유일한 지분 토큰(staking token)
      • 아톰의 보유자가 투표, 검증 또는 다른 검증자들에게 위임하기 위해 필요하다.
      • 거래 수수료를 지불하기 위해 사용 (ETH의 denial of service attack 예방)
    • Validator 선발
      • 텐더민트는 검증자 수가 많아질수록 통신 복잡도가 증가하여 속도가 느려짐
      • 대역폭, 저장공간 및 병렬 컴퓨팅 용량이 증가하면 더 많은 validator를 지원할 수 있고, 100명 제한에서 10년동안 매년 13% 비율로 최종적으로 300명을 목표로 하고 있다.
      • 아톰 보유자들은 BondTx 이체를 서명하면서 validator가 될 수 있다.
      • 검증자 수가 허용치 이상인 경우 가장 적은 아톰을 보유한 검증자보다 더 높은 아톰을 담보로 제공해야하며, 이런 경우 새로운 검증인이 기존 검증인을 대체 할 수 있다.
    • validator 인센티브
      • 검증자 처벌
        - 동일한 블록 height 또는 라운드에서 이중 서명 or consensus 프로토콜을 위반한 행위는 즉시 발견 가능하여 검증인은 해당 지위를 상실하고 예치된 보증금과 지분을 상당히 잃을 수 있다.
        - 지역 네트워크 단절, 전원 장애 등의 여러 이유로 검증인이 단절될 수 있는데 과거의 투표가 이루어지지 않은 횟수를 고려하여 일정 수준 이상인 경우 검증인을 비활성화 하고 지분의 일정 부분을 잃게 한다.
        - 명확한 증거가 남지 않는 악의적 행위가 발생할 경우 압도적 다수의 합의가 있다면 검증인들이 외부에서 합의하여 악의적 검증자를 제거할 수 있다.
        - 투표권의 1/3 이상이 악의적으로 연합하여 코스모스를 중단시키거나 악의적 행동의 증거가 블록체인으로 들어오지 않게 검열하여 삭제하는 경우, 허브는 하드포크를 통한 블록 재조정 프로포절로 복구되어야 한다.
      • 인센티브
        - validator들은 아톰 뿐만아니라 어떤 유형의 토큰이라도 이체 수수료로 받을 수 있다.
        - 각 검증인은 교환비율과 이체방식을 주관적으로 선택할 수 잇다.
        - 징수된 수수료는 세금을 제외하고 bonding된 아톰에 비례하여 주주들에게 재분배된다.
        - 투표권을 다른 검증인에게 위임하는 아톰 보유자는 일정 수준의 커미션을 위임 받은 검증인에게 지불한다.
    • 세금
      • 이체된 수수료 중 지금준비금 세금(reverse tax)은 지급 준비금 풀에 충당이 되며 이는 cosmos network의 보안과 가치를 높일 수 있다.
    • 해커에 대한 인센티브
      • 해커들이 특정 검증인들이 해킹 당한 사실을 알린다면 해킹이 확인된 즉시 해당 검증인과 위임자들은 비활성화 되고, 검증인과 위임자들의 아톰이 감소되며 해커는 그만큼 보상을 받는다(약 5%)
  • System 상 프로세스

    • 프로토콜은 라운드로 진행, 각 라운드는 다음 블록 합의 도달위한 시도
    • ProposalMessage(by proposer) → VoteMessage(other participant, prevote와 precommit vote 두가지) → block commited(동의되면)
    • 효율성을 위해 합의 프로토콜 검증자는 블록의 크기가 커서 직접 동의하지 않고 (i.e. proposal이나 voteMessage에 블록을 추가하지 않고) BlockID로 agreement에 도달한다.
      • Proposal가 블록을 여러 part block으로 분할한 다음 BlockPartMessage를 사용하여 프로세스(참여자) 간에 gossip을 진행
    • 가십 프로토콜을 사용하여 참여자간 p2p 통신을 진행
      • 각 validator들은 피어라 불리는 프로세스들의 subset에만 연결되어 있다.
      • 가십으로 validator는 피어가 필요로 하는 모든 정보를 보낸다(ProposalMessage, VoteMessage, BlockPartMessage)
      • 가십을 통해 합의에 도달하고선택된 블록(chosen block of block parts)의 내용을 얻을 수 있다
      • 핵심 합의 알고리즘(NewRoundStepMessage. NewValidBlockMessage)의 실행단계에 대해 peer에게 알리는 보조 메시지와 프로세스(참여자)가 본 투표를 피어에게 알리는 메시지(HasVoteMessage, VoteSetMaj23Message, VoteSetBitsMessage)를 보냄
profile
ConsensusMyMemoies

0개의 댓글