블록체인 기본 원리 이해, 제 3부: 위임 지분 증명(DPoS)

Loom Network Korean
Loom Network Korean
11 min readJul 24, 2018

이 글은 Georgios Konstantopoulos가 쓴 Understanding Blockchain Fundamentals, Part 3: Delegated Proof of Stake을 번역한 글입니다. 오역이 있으면 Private Note 기능으로 알려주세요!

블록체인 기본 원리 이해 시리즈에 해당하는 글들:

  1. 블록체인의 기본 원리 이해, 제 1부:비잔틴 결함 방지
  2. 블록체인의 기본 원리 이해, 제 2부:작업 증명 및 지분 증명
  3. 블록체인 기본 원리 이해, 제 3부: 위임 지분 증명(DPoS) 👈

얼마 전, 우리는 합의가 어떻게 이루어지는지에 대해 이야기했고, 작업 증명(PoW)지분 증명(PoS)기본 원리를 확인했습니다.

요점은 PoW가 현재까지 가장 입증된 보안을 제공하지만, 그 대가로 엄청난 양의 에너지를 소비한다는 것입니다. 주요 대안인 PoS는 PoW의 에너지 요구 사항을 없애고 채굴자들을 “검증자”들로 대체합니다. 이들은 자신의 지분에 비례하는 확률로 다음 블록을 검증(“채굴”)할 수 있는 기회를 얻지요.

자주 논의되는 또 다른 합의 알고리즘은 위임 지분 증명(DPoS)입니다 — 네트워크 상의 검증자 수를 제한하여 높은 수준의 확장성을 제공하는 PoS의 변형이지요.

이 글에서는 DPoS의 작동 방식, 장점, 단점, 그리고 검열과 이중 지불위험을 피하는 동시에 이러한 단점을 완화하여 더 높은 수준의 확장성을 달성하는 방법에 대해 설명할 것입니다.

위임 지분 증명이란 무엇인가?

DPoS는 일정 수의 엔티티(블록 생산자 또는 증인이라고 함)를 뽑아 라운드 로빈 방식으로 블록을 만드는 시스템입니다. 네트워크 사용자들이 투표를 하여 블록 생산자들을 뽑는 것이지요. 사용자는 자신이 네트워크상에서 보유한 토큰 수(자신의 지분)가 많으면 더 많이 투표할 수 있습니다.

또한 유권자들은 직접 투표하는 대신, 자신들의 지분을 다른 유권자에게 위임할 수 있으며, 위임을 받은 유권자들은 블록 생산자 선거에서 원 유권자들 대신 투표를 할 것입니다.

PoS와 비교한, Dan Larimer의 의미 노트: [1]

  • 블록 생산자는 블록을 만들고 서명하는 책임을 맡습니다. 그들의 수는 제한되어 있고, 유권자들에 의해 선출됩니다.
  • DPoS에서 블록 검증자는 블록 생산자가 작성한 블록이 합의 규칙을 준수하는지 확인하는 풀 노드를 나타냅니다. 모든 사용자는 블록 검증자를 실행하고 네트워크를 검증할 수 있습니다(Casper의 PoS에서 단어어 “검증자”라는 단어는 블록을 생성하는 사람들을 나타내기 때문에, 이 점이 헷갈릴 수도 있습니다).

DPoS 네트워크의 블록 생산자 수는 해당 체인의 합의 규칙에 따라 결정됩니다. 비교적 유명한 일부 DPoS 체인에서 블록 생산자의 수는 다음과 같습니다:

  • EOS: 21
  • BitShares: 101
  • Steemit: 21
  • Lisk: 101
  • Ark: 51

N개의 블록 생산자들이 있을 때 DPoS 블록체인의 한 라운드는 다음과 같습니다:

  1. N개의 블록 생산자들이 블록 생산자 후보군에서 선출됨
  2. i번째 블록 생산자가 i번째 블록을 서명(i=N이 될 때까지)

블록 생산자의 (2/3+1)가 투표하면 한 블록이확정됩니다(즉, 되돌릴 수 없음). 그렇지 않으면 긴 체인 규칙을 따릅니다. 확정성은 블록 간 상호 운용을 목표로 할 때 매우 중요한 속성이죠.

각각의 DPoS 구현에서 블록 보상 및 인플레이션 메커니즘은 각 프로젝트의 보상 모델에 따라 달라지며, 이것에 대한 내용은 이 글에서 다룰 범위를 벗어납니다. Dan Larimer는 다양한 조건 하에서 어떻게 DPoS가 돌아가는지에 대해 상세히 기술했지요. [2]

유권자들은 또한 블록 생산자들이 악의적인 것으로 밝혀지면(즉, 트랜잭션을 검열하거나 이중 지불을 하려고 하면), 다음 라운드에서 해당 블록 생산자에게 투표하지 않음으로써 블록 생산자를 “해고”할 수도 있습니다.

블록 생산자의 수가 제한되어 있기 때문에, DPoS는 오늘날의 PoW보다 큰 규모의 트랜잭션을 처리할 수 있습니다.

진짜라고 믿기엔 너무 좋다구요?

이전에 설명한 바와 같이, DPoS는 블록 생산자의 수가 적기 때문에 성능을 위해 분산을 희생하는 프로토콜입니다.

그래서 높은 수준의 확장성을 필요로 하는 많은 애플리케이션에 대해서는 의미가 있는 반면, 우리(그리고 많은 다른 전문 블록체인 개발자들)는 DPoS가 가치 저장소 역할을 하는 베이스 레이어나 Web 3 어플리케이션에 대한 소유권 원장으로 쓰기에는 충분히 분산되어 있지 않다고 생각합니다.

재정적 가치를 전달할 수 있는 블록체인의 베이스 레이어는 완전히 분산되어야 하며 안전해야 합니다. 베이스 레이어는 타협해선 안 되죠.

흥미롭게도, 이더리움과 같은 PoW 블록체인에 비해 DPoS가 “우수” 하다고 선전하는 특정 프로젝트의 집중된 마케팅에도 불구하고, 최근 트위터 여론 조사에서 880명의 50%가 이 것이 탈중앙화를 희생한다는 것을 알아차렸습니다:

많은 사람들이 DPoS 탈중앙화 시스템의 결함에 대하여 썼고, 그 중 한명인 Vitalik Buterin은 그는 카르텔 형성과 유권자 매수에 인센티브가 있다고 얘기했습니다. [3]

우리는 베이스 레이어에 대해 완전한 탈중앙화를 타협하는 것은 받아들이지 않으며 네트워크 참여자들이 정직하다고 가정할 수 없다는 점을 고려할 때, DPoS는 특히 금융 거래를 다루는 블록체인에 잘 맞는다고 보여지지 않습니다.

특정 사용 사례에 대해 DPoS를 사용해 보는 것은 어떨까요?

우리가 이것을 생각한 첫 번째 사람은 아닙니다. Myles Snider가 설명하길:

“만약 DPoS 시스템이 탈중앙화 데이터베이스가 요구하는 수준의 검열 저항, 비허가성 및 신뢰성을 여전히 제공할 수 있다면, DPoS는 광범위한 탈중앙화 애플리케이션을 위한 더 좋은 선택지일 겁니다.

절대적으로 검열 저항이 필요한 디지털 골드, P2P 디지털 화폐 등과 같은 특정한 사례의 경우, 성능을 희생하여 탈중앙화를 높이는 트레이드오프는 의미가 있을 겁니다.

대부분의 애플리케이션에서는, 확장성이 훨씬 더 실용적입니다.”[4]

소셜 네트워크나 게임 같은 애플리케이션, 모든 코멘트나 게임 내 움직임과 같은 경우 완전히 분산된 네트워크에서의 완전한 보안을 필요로 하지는 않지만, 높은 처리량은 필요로 합니다. 따라서 DPoS는 이러한 애플리케이션에 완벽하게 적합한 것처럼 보입니다.

더 좋게는 — 만약 안전한 베이스 레이어로 이더리움 같은 PoW 네트워크를 사용하고 레이어 2에 DPoS 체인을 구축하면, 대부분의 애플리케이션을 확장성이 뛰어난 DPoS 체인에서 실행할 수 있습니다. 게임 내 통화 또는 자산의 소유권과 같이 높은 보안을 필요로 하는 애플리케이션의 일부를 위해 안전한 베이스 레이어를 사용하면서 말이죠.

비탈릭 부테린이 말하길:

당신이 정말로 매우 빠른 트랜잭션 확인이 필요한 애플리케이션을 가지고 있을 때, 그렇게 빠른 확인이 안정적으로 일어나길 원한다면, 제 생각에는 그러한 시스템을 구축하기 위한 알맞은 도메인은 이더리움과 같이 안전한 베이스 레이어 플랫폼 위에 있는 레벨-2 플랫폼입니다.

레벨-2 플랫폼들은 안전성이 아니라 성능을 강화하는 방식으로 만들어질 수 있습니다(상태 채널 허브, 플라즈마 운영 참고). 즉 그들이 현재 높은 성능을 낸다면 평판 인센티브와 미래의 기대 수입을 얻을 수 있습니다. 그리고 실패에 따른 비용 지출을 완화할 수 있겠지요. [5]

이런 방식으로, 흑조 시나리오가 발생하면 안전한 PoW 메인체인으로 돌아갈 수 있는 옵션이 항상 있습니다.

예를 들어, 나쁜 행위자들이 DPoS 레이어 2에서 블록 생산자의 대부분을 차지할 수 있었다 해도, 사용자의 토큰(잠재적으로 수백만 또는 수십억 달러 가치가 있는)은 여전히 레이어 1에서 안전할 것입니다.

이는 보다 분산화된 레이어 1 기반이 없는 독립형 DPoS 블록체인에서는 불가능할 것입니다. 만약 불량 행위자에 의해 체인이 손상되면, 토큰은 물론 체인에 있는 다른 모든 것이 위험하겠죠.

레이어 2 체인의 하드 포크 vs. 레이어 1 체인의 하드 포크

DPoS 체인에서, 만약 악의를 가진 적이 많은 지분을 획득하여 네트워크를 장악한다면, 블록체인은 그 적을 검열하기 위해 하드 포크를 해야만 할 겁니다.

토큰 소유권이나 다른 디지털 자산들을 추적하는 원장을 가진 블록체인에서 (대부분의 레이어 1 체인) 하드포크는 큰 파국일 수 있지요. 이는 장기적인 가치 저장소로서의 네트워크의 신뢰성에 대한 믿음을 약화시킬 것입니다(예:개인이 평생 저축한 것을 투자할 수 있는 것).

그러나 안전한 레이어 1에 가치가 있는 것을 저장하는 레이어 2에서 실행되는 비재정적 애플리케이션의 경우, 하드 포크는 그러한 재앙은 아니지요.

레이어 2에서 실행 중인 앱이나 게임의 경우, 기본 데이터의 무결성이 유지되는 한, 하드 포크는 실행할 수 있는 솔루션입니다.

플라즈마 캐시를 통한 레이어 2 보안 강화

플라즈마는 블록체인을 통해 자산을 안전하게 전송하는 기술입니다. “플라즈마 체인”이 비잔틴이 된 경우에도 “루트 체인”에 의해 시스템의 안전성을 보장하는 것이지요.

플라즈마를 사용하면 사용자는 보안을 위해 레이어 1에 의존하면서 레이어 2에서 토큰을 사용하여 거래할 수 있습니다. 앞에서 설명한 대로 상대방이 레이어 2를 제어할 수 있는 경우, 사용자는 토큰을 레이어 1로 “엑싯(Exit)” 할 수 있습니다.

심지어 플라즈마를 사용하지 않더라도 안전한 레이어 1에 DPoS 사이드체인을 만들면 보안이 더욱 강화됩니다. DApp 개발자가 DApp의 어느 부분은 안전한 베이스 레이어에 저장하고 어느 부분은 확장성 있는 사이드체인에 저장할지 구분할 수 있기 때문이지요. 플라즈마와 함께 하면, 개발자들은 더 유연해질 수 있습니다. 보안을 위해 오직 베이스 레이어에만 의존하는 사이드체인에서 추가적인 트랜잭션을 수행할 수 있기 때문입니다.

지금까지 플라즈마 체인의 모든 예시에서는 플라즈마 운영자 권한 하나가 있는 권한 증명(PoA)을 사용해 왔고, 운영자가 적일 수 있는 시나리오에 대해 연구해 왔습니다. 이 위협 모델은 사이드 체인에서 하나의 플라즈마 운영자만 고려하며, 사이드체인과 메인체인 간의 자금 이동을 보장하기 위해 매우 엄격한 보안 증거가 필요하죠.

하지만, 사이드체인의 커뮤니티에 의해 선출된 다수의 블록 생산자들이 존재할 수 있는 DPoS 사이드체인의 경우, 이 위협 모델은 대단히 다릅니다. 우리는 플라즈마를 통해 DAppChain과 이더리움 PoW 메인체인 간의 보안 링크를 만드는 것이 더 간단하다고 생각합니다. 악의적인 블록 생산자 그룹의 공격 벡터가 많이 다르기 때문이지요.

Loom Network에서는 게임 개발자들이 그들의 ERC721 토큰을 Loom DAppChain에 보관하고 게임에서 사용할 수 있는 ERC721 토큰을 위한 플라즈마 캐시 구현을 이번 달 말에 출시할 예정입니다.

결론

블록체인에서 대규모 게임과 DApp을 운영하기 위해선, 높은 성능과 비용 효율성을 위해 일부 탈중앙화를 희생해야 합니다 — 이런 것을 위해, DPoS는 완벽한 매치로 보입니다.

또한 몇 개의 검증자가 있을 때 네트워크에 대한 신뢰가 필요하기 때문에 DPoS 알고리즘은 가치 저장에 이상적인 솔루션이 아닐 수 있습니다.

따라서, 우리는 탈중앙화 메인넷(즉, 이더리움)을 레이어 1으로 이용하고 확장성이 뛰어난 DPoS 사이드체인에서 DApp을 운영하면 양쪽의 장점을 모두 활용할 수 있다고 생각합니다.

참조:

[1] Response to Cosmos white paper’s claims on DPOS security

[2] DPOS Consensus Algorithm — The Missing White Paper

[3] Governance, Part 2: Plutocracy Is Still Bad

[4] Delegated Proof of Stake: Features and Tradeoffs

[5] Comment on Medium by Vitalik Buterin

Loom Network는 고성능 디앱을 확장하기 위한 멀티체인 상호운용 플랫폼입니다 — 이미 상용 가능한 상태이며, 감사 및 실제 테스트를 거쳤습니다.

Loom 베이스체인에 여러분의 디앱을 한 번 배포하고 나면, 오늘날 모든 주요 블록체인에 걸쳐 가능한 가장 광범위한 사용자 기반에 접근할 수 있습니다.

Loom Network를 처음 접하시나요? 여기서 시작하세요.

LOOM 토큰을 스테이킹해서 베이스체인을 보호하는 데 참여하고 싶으신가요? 여기서 그 방법을 알아보세요.

우리가 하는 일이 마음에 드시나요? 그렇다면 어서 우리의 프라이빗 메일링 리스트에 가입하고, 우리가 계속 전달하는 모든 업데이트를 계속 받아보세요.

--

--