의견.png

Deb 합의 알고리즘

위키원
Asadal (토론 | 기여)님의 2019년 11월 6일 (수) 10:42 판 (같이 보기)
이동: 둘러보기, 검색

Deb 합의 알고리즘은 공정성을 핵심 가치로 둔 방식으로, 채굴을 원하는 노드는 조건없이 채굴에 참여할 수 있게 하는 방식의 합의 알고리즘이다. 채굴에 참여한 채굴 노드들은 채굴 기회를 균등하게 얻을 수 있다.

개요

기존의 작업증명(PoW) 및 지분증명(PoS) 합의 알고리즘의 경우 채굴노드가 가지고 있는 컴퓨팅파워와 보유한 지분에 따라 채굴 노드의 채굴 확률이 비례하는 특성을 가지고 있으며, 이는 채굴 관점에서 블록체인에 참여를 원하는 채굴자들에게 공정하지 않다는 것을 의미한다. deb 합의 알고리즘은 바로 이러한 공정하지 못한 문제점을 해결하여 공정한 채굴 기회를 보장하기 위한 합의 알고리즘이다. 먼저 공정한 채굴 기회를 보장하기 위해서는 채굴을 원하는 모든 노드들에게 주어진 조건에 상관없이 공정한 채굴 기회를 주어야 한다.

이를 위해 deb 합의 알고리즘은 작업증명과 지분증명 방식과는 달리 공정한 노드라는 개념을 도입했다. 물론 P2P 기반의 deb 합의 알고리즘의 특성을 유지하기 위해 공정한 노드의 신뢰성을 가정하지는 않는다. 즉, 공정한 노드는 제3의 신뢰기간은 아닌, 단지 P2P 네트워크의 노드들과 협력하여 합의 알고리즘을 지원하는 단순한 특별한 노드라고 생각하면 된다.

deb 합의 알고리즘은 유료 채굴 리그, 최대 논스 규칙 및 다수결 원칙 등 3가지 기본 원리로 작동된다. 유료 채굴 리그란 채굴을 원하는 노드들 중 특정 수의 노드들로 구성된 채굴 노드들의 그룹이다. 물론 채굴 리그에 참여를 원하는 노드들은 채굴 리그에 참여하기 위해 현실적으로 충분히 가능한 적은 금액인 참가비를 지불해야 한다. 그리고 유료 채굴 리그에 참여한 노드들로 구성된 그룹에서 각 노드가 블록을 생성하는 규칙이 최대 논스 규칙이다. 그리고 최종 채굴자를 결정하는 방식, 즉 최종 블록을 결정하는 방식은 공정한 노드와 채굴리그에 참여한 노드들 간의 협력을 통한 다수결 원칙으로 이루어진다.

등장배경

특징

전체 프로세스

유료 채굴리그 구성

채굴 프로세스

합의 방식

블록 합의는 기본적으로 블록선택과 다수결 원칙에 기반한다. 즉, 최초에 채굴 노드들끼리 각자 생성한 블록을 브로드캐스팅한 뒤, 자신에게 수신된 블록 중 가장 난이도가 지정된 블록을 선택한 뒤 서명하여 공정한 노드에게 전송한다. 공정한 노드는 자신이 수신한 블록 중 다수의 채굴 노드들이 선택한 블록을 선정하여 채굴 노드들의 주소와 서명을 블록 내에 포함시킨 뒤 자체 서명한다. 그리고 공정한 노드가 해당 블록을 채굴 노드들에게 전파하면 채굴 노드들은 해당 블록이 다수결 원칙에 부합하는지, 공정한 노드가 서명했는지 등을 검증한 뒤 원장에 추가한다. 이로써 해당 블록은 최종 블록으로 결정되고, 채굴 노드들은 해당 블록을 네트워크에 전파한다.[1]

  • 유효성 검증 단계
  1. OTPRN 전파 주기와 블록 생성 주기가 일치하는지 확인한다
  2. OTPRN 무결성 및 공정한 노드의 서명을 검증한다.
  3. 채굴한 노드가 채굴 리그 참가 가능 대상자인지 확인한다.
  4. 채굴 노드가 채굴 리그 참가비를 지불할 수 있는지 확인한다.
  5. 난이도가 올바르게 생성되었는지 확인한다.
  • 블록 합의
  1. 채굴 노드는 수신한 블록 중 난이도가 가장 큰 블록을 선택하여 서명한 뒤 공정한 노드에 전송한다.
  2. 공정한 노드는 전송받은 블록 중 다수결 원칙에 따라 다수에 의해 선택된 블록을 최종 블록으로 결정하여 서명한 후 노드들에게 전송한다. 향후 검증을 위해 공정한 노드는 해당 블록에 투표한 채굴 노드들의 주소와 서명을 블록에 포함시킨 뒤 서명한다.
  3. 공정한 노드는 해당 블록을 채굴 노드들에게 브로드캐스팅한다. 채굴 노드들은 수신한 블록이 다수결 원칙에 부합하는지, 공정한 노드의 서명이 포함되었는지를 검증한 뒤 자신의 원장에 추가하고 해당 블록을 브로드캐스팅한다.
  4. 마찬가지로, 위 블록을 수신한 일반 노드들(채굴에 참여하지 않은 노드들)도 채굴 노드들이 수행한 방식과 동일한 검증 절차를 거친 뒤 해당 블록을 원장에 추가한다.
  5. 채굴자는 아래와 같이 인센티브를 제공받는다. (인센티브 = 트랜잭션 수수료 + 채굴리그 참가자 전체 참가비)
  6. 채굴리그 참가자들의 채굴 확률을 조정한다.

공정한 노드의 역할

비트코인이더리움의 합의 알고리즘은 공정한 노드 개념을 사용하지 않는다. 그러나 deb 합의 알고리즘의 경우 지속가능한 탈중앙화 특성을 유지하기 위해 공정한 노드 개념을 도입하였다. 물론 deb 합의 알고리즘이 동작하기 위해서 공정한 노드의 신뢰성을 가정하지 않는다. 공정한 노드는 유료 채굴리그 구성의 효율성, 블록 합의 및 최종성 협력을 위한 역할만을 담당한다.[1]

  • 공정한 노드의 역할
  1. 유료 채굴리그 참여자의 랜덤한 선정
  2. 노드들과의 상호 견제를 통한 최종 블록 합의 협력

가장 중요한 것은 deb 합의 알고리즘은 공정한 노드의 신뢰성에 의존하지 않는다. 공정한 노드와 블록체인 노드들 간의 상호 견제를 통해 공정한 노드의 신뢰성 보장 없이도 블록체인의 안전성을 확보할 수 있다. 공정한 노드를 이용하여 deb 합의 알고리즘의 공정성은 다음과 같이 생각할 수 있다.

성능

deb 합의 알고리즘
블록크기 4.5MB ~ 9MB
TPS 1000 TPS
생성주기 10초 ~ 1분

deb 합의 알고리즘의 성능은 유료 채굴리그 구성 수와 블록생성 주기 등에 따라 동적으로 결정될 수 있다. 예를 들어, 채굴 리그 인원수가 100명인 경우 예상되는 성능은 표와 같다. 특히, 블록 생성 시간을 줄이기 위해 공정한 노드와 유료 채굴 리그 노드들 간의 네트워크 접속 부하를 줄이면 블록 생성 시간을 더욱 단축할 수 있다. 일례로 한번 구성된 유료 채굴 리그의 블록 생성 숫자를 10개로 한다면 블록 생성 시간은 10초 이내로 단축할 수 있을 것이다.[1]

장점

deb 합의 알고리즘의 목적은 현재의 합의 알고리즘의 불공정성으로 인해 발생할 수 있는 블록체인 합의 알고리즘의 중앙화 문제를 해결하는 것이다. 즉, 기존의 합의 알고리즘인 작업증명 방식, 지분증명 방식과 deb 합의 알고리즘의 가장 큰 차이점은 지속가능한 탈중앙화를 유지할 수 있다는 것이다. 이는 채굴을 원하는 노드들의 조건들에 의존하지 않는 공정한 합의 알고리즘이라는 것을 의미한다. 또한 기존의 퍼블릭 블록체인의 합의 알고리즘의 경우 블록을 생성하는 채굴과 암호화폐 발행이 연계되어 있으나, deb 합의 알고리즘의 경우 채굴과 암호화폐 발행이 무관하다는 것이다. 즉, 초기 발행한 암호화폐 발행량이 바로 총통화량이 된다는 것을 의미한다. 이는 암호화폐 발행 권한을 독점하면서도 퍼블릭 블록체인을 구성할 수 있게 하는 최초의 합의 알고리즘이다. 한편으로 deb 합의 알고리즘의 장점으로는 포크가 일어나지 않아 최종성이 1블록이면 달성되는 장점이 있다.

각주

  1. 1.0 1.1 1.2 이승윤 기자, 〈(Tech Report)공정한 합의 알고리즘, deb 합의 알고리즘〉, 《CCTV뉴스》, 2018-09-04

참고자료

같이 보기


  의견.png 이 Deb 합의 알고리즘 문서는 합의 알고리즘에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.