검수요청.png검수요청.png

슬롯리더

위키원
ghdrn221 (토론 | 기여)님의 2019년 9월 11일 (수) 16:45 판
이동: 둘러보기, 검색

슬롯리더(slot leader)는

개요

특징

  • 그라인딩 공격
그라인딩 공격(grinding attack)은 랜덤 변수를 생성해 슬롯리더를 선출하는 지분증명 방식의 암호화폐에 대한 공격 방식이다. 본인에게 유리한 랜덤 변수를 얻을 때까지 전송 내역을 임의로 누락/포함 시키는 방식과 미리 계산한 랜덤 변수로 예측한 스테이킹 코인을 사전 구매하는 등의 공격을 생각할 수 있다.[1]

활용

카르다노(Cardano)

카르다노

카르다노(Cardano)는 세계적으로 일어나는 거래를 감당하려면 당연히 전송속도는 빨라야 한다. 이것을 측정하는 것은 TPS(Transfer Per Second)단위로 숫자가 높을수록 거래처리 속도가 빠르다는 것을 알 수 있다. 카르다노에서는 이 문제를 해결하기위해 우로보로스는 지분증명(PoS) 방식을 적용하였다. 지분증명은 작업증명(PoW)의 문제점을 해결하기 위해 등장한 증명방식이다. 카르다노는 비트코인처럼 모든 노드들이 경쟁을 통하여 작업증명을 하는 것이 아니라, 시간대별로 한 명의 슬롯리더가 마치 이어달리기를 하는 것처럼 증명을 한다. 경쟁을 통한 채굴을 하는 것이 아니기 때문에 시간과 많은 에너지를 낭비하지 않아도 된다.

이어달리기.PNG

또한, 시간대별로 슬롯을 더 늘려 더 빠르게 증명속도를 늘릴 수 있고, 병렬적으로 시대(epoch)를 세워 몇 개의 작업증명을 동시에 할 수도 있다.[2]

  • 인센티브
카르다노 상에서의 인센티브는, 슬롯 리더로 선출되고 선거 과정에 참여할 때 온라인 상태로, 블록을 생성하는 것을 의미한다. 카르다노 프로토콜 참여는 것은 비트코인에 참여하는 것보다 훨씬 더 적은 컴퓨테이션 비용이 들어도 슬롯리더들을 그들의 차례가 돌아왔을 때 온라인으로 상태로 유지하는 것은 보안 및 효율성 측면에서 매우 중요하다. 또한 이 슬롯 리더들에게는 하드웨어, 시간 등의 투자가 이루어지므로, 이 문제들을 해결하기 위한 적절한 보상을 해야 하고, 카르다노의 경우 현금성 인센티브로서, ADA의 형태로 지급이 된다. 프로토콜 참여는 지분보유자들이 특정 슬롯의 슬롯 리더로 선출되면 그들은 블록을 생성하기 위해서는 슬롯에서 온라인 상태여야 한다.[3]
  • 주소형식
카르다노는 다양한 주소 형식을 지원하고, 주소에 지분분배(stake distribution)와 같은 추가 정보가 붙어있는 점이 특이한데, 지분은 비트코인의 채굴자에 해당하는 슬롯 리더 선출과 거버넌스 프로토콜 업데이트 여부 투표에 사용한다. 지분분배는 잔액(balance)과 지분(stake)을 구분하는 역할을 하고 예를 들어, 여러 사람이 모여서 다중서명 주소를 만들면, 다중서명 주소의 잔액은 참여자가 보낸 총액이지만, 보통은 각자가 보낸 금액에 비례하는 지분분배에 따라 각자 지분에 따른 권한을 행사할 수 있다.[4]
  • 블록형성
블록은 슬롯 리더가 슬롯마다 한번씩 만들 수 있으며, 슬롯을 일정 개수만큼 모으면 에폭(epoch)이 된다. 에폭 기간 동안 다음 에폭에 활동할 슬롯당 슬롯 리더를 무작위로 결정하고, 슬롯 리더가 되려면 미리 정한 지분 최소량 이상 지분을 가져야 해서, 지분에 비례하여 슬롯 리더가 될 확률이 커진다. 슬롯 리더가 해당 슬롯 시점에 블록을 만들 자신이 없다면 다른 노드에게 위임해도 되며, 공격자가 슬롯 리더 결정에 영향력을 미칠 수 없도록 스크레치(Scrape)라는 검증가능한 비밀공유 기법을 사용한다. 메인넷에서 슬롯은 20초이고, 21600 (= k * 10) 슬롯이 모여서 에폭이 된다. k는 안정성 파라미터(security parameter)인데 어떤 블록 뒤에 k개 블록이 쌓이면 그 블록은 확정되어 취소할 수 없어 이런 수치는 블록체인을 처음 시작할 때 지정하며 프로토콜 업데이트 투표를 거쳐 운영중에 변경할 수 있다.[4]
  1. 슬롯이 모여서 에폭을 이루고, 슬롯마다 최대 1개 블록을 생성한다.
  2. 에폭하는 동안 다음 에폭의 슬롯리더를 모두 결정한다.
  3. 슬롯리더가 되려면 최소량 이상 지분을 가진다.
  4. 지분 비율에 따라 슬롯리더가 될 확률이 결정되며, 슬롯리더는 다른 노드에게 권한을 위임할 수 있다.
  5. 공격자가 슬롯리더 선정을 조작할 수 없게 SSC(Shared Seed Computauion)하려고 PVSS(Publicly Verifiable Secret Sharing) 스크레치 방식을 사용하여 난수 생성한다.

우로보로스

우로보로스(Ouroboros)

우로보로스(Ouroboros) 알고리즘의 가장 큰 특징은 블록을 만드는 과정을 에포크(Epoch)와 슬롯(Slot)으로 구분지어 만들었다는 점이다. 우로보로스에서는 블록을 생성할 사람들을 사전에 미리 선발하게 되는데, 앞으로 만들어질 모든 블록에 대해 생성자를 선발할 수 없으니, 특정 주기를 정해놓고 해당 주기에 대해 선발하게 되어 이 주기를 에포크라고 부르며 슬롯은 에포크 내에서 블록 1개를 생성하는 시간을 의미한다. 에포크가 시작되기 전, 개별 슬롯에서 블록을 생성할 슬롯 리더를 선별하게 된다. 슬롯 리더는 확률적으로 선별되는데 이 때 확률은 가지고 있는 에이다의 수를 전체 에이다의 수로 나눈 값이 된다. 즉 총 1억개의 에이다 중 5천만개의 에이다를 가지고 있다면, 이 사람이 슬롯 리더에 선발될 확률은 50%인 것이다. 이런 과정을 모든 슬롯에 걸쳐서 반복하게 되며, 한 사람이 여러 개의 슬롯 리더가 될 수 있으며, 참고로 현재 에포크는 21,600개의 슬롯으로 구성되어 있다. 우로보로스는 기본적으로 지분증명(PoS)이기 때문에, 같은 플랫폼 블록체인인 이더리움보다 더 빠르게 합의를 이끌어 낼 수 있고, 이 때문에 우로보로스 알고리즘을 소개하는 문서에 따르면, 카르다노는 258 TPS를 처리할 수 있다. 단 슬롯 주기를 5초로 했을 경우이며, 현재는 슬롯 주기가 20초이다.[5]

  • 지분증명 과정
  1. 우로보로스는 다음 블록을 채굴하기 위해 시간대(Epoch)별로 슬롯리더를 지정한다.
  2. 시간대는 슬롯으로 나누어져 있는데, 슬롯은 약 1개의 블록이 생성되는 시간을 기준으로 나누어져 있다.
  3. 슬롯에서는 한 명의 리더(leader)가 거래내역을 증명(verification)을 한다.
  4. 증명이 되면 블록 안에 거래내역의 데이터를 저장한다.
  5. 만약 슬롯리더가 시간 내에 증명을 하지 못하거나, 아예 나타지도 않는다면 바로 다른 슬롯리더에게 기회가 넘어간다.
  6. 기회를 잃어버린 슬롯리더는 나중에 다시 기회가 주어진다.


각주

  1. 암호화폐 해킹〉, 《옥코인》,2018-11-19
  2. sobly tv, 〈Cardano가 3세대 블록체인으로 불리는 이유〉, 《미디엄》, 2018-07-06
  3. 카르다노 공식 홈페이지 - https://forum.cardano.org/t/pos-lars-brunjes/12169/1
  4. 4.0 4.1 이더리움 연구회, 〈(리서치 3주차) Cardano〉, 《미디엄》, 2018-05-29
  5. energist, 〈(카르다노, 에이다) #2 확장성(1)〉, 《스팀잇》, 2018-02-11

참고자료

같이 보기


  검수요청.png검수요청.png 이 슬롯리더 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.