EOS 컨트랙트로써의 캐스퍼

저는 비탈릭 부테린과 진행중인 합의 메커니즘에 대한 설전을 고려하여 캐스퍼 리서치 페이퍼를 검토하였습니다. 저는 가능한 한 객관적이고 실용적인 관점을 제시하는 동시에 큰 그림을 놓치지 않으려 합니다.

저의 연구 과정 중 드러난 명백한 사실은 서로 다른 합의 모델을 주장하는 계파들이 용어의 부정확성으로 인해 서로 오해를 하고 있었다는 것입니다. 명확성을 기하기 위해 저는 캐스퍼 페이퍼에 나온 언어와 동일한 용어를 사용하고자 합니다.

문제의 두 측면

캐스퍼 프로토콜에는 제안 메커니즘합의 메커니즘이 있습니다. 제안 메커니즘은 블럭들을 생성하고 합의 메커니즘은 100개의 블럭마다 체크 포인트를 생성합니다.

하이브리드 POW 모델에서 이더리움은 제안 메커니즘으로 POW 블럭을 사용하고 체크 포인트에 대한 합의를 위해 캐스퍼 알고리즘을 이용합니다.

제안 메커니즘은 의도적으로 추상적입니다. 이는 독재자가 될 수 있고 합의 참여자들간의 라운드 로빈 방식이 될 수도 있고, 하이브리드 캐스퍼의 경우 처럼 원래의 POW 체인이 될 수도 있습니다.

제안 시스템이 추상적이라는 것을 감안하면 DPOS로 교체하는 것은 매우 간단합니다. 다른 말로 하면, 이더리움이 POW를 사용할 때 우리는 DPOS를 사용할 수 있습니다. 캐스퍼에 POW를 적용하려면 포크 선택 규칙을 변경해야 합니다. 이는 "가장 긴 체인"으로부터 캐스퍼를 우선적으로 고려하는 규칙으로 가장 긴 체인은 결과를 결정짓는 용도로만 사용됩니다.

캐스퍼 프로토콜 메시지

캐스퍼 페이퍼에서 제안 알고리즘을 의도적으로 추상화한 그들의 초기 제안 메커니즘은 POW 방식으로, 저는 그들의 대체 제안 메커니즘에 대해 제대로 인지하고 있지 못하고 있기 때문에 바로 캐스퍼의 합의 메커니즘에 대한 관점으로 넘어가겠습니다.

캐스퍼는 수학과 게임 이론에 기반을 둔 최초의 프로토콜입니다. 이 프로토콜은 동의한 이들에게 보상을 주는 반면, 반대자들에게 처벌을 가합니다. 또한 악의적인 행위가 관찰되면 이에 참여한 이들에게도 처벌을 가하는 특성이 있습니다.

캐스퍼 프로토콜에서 매 사건마다 검증자들이 두 개의 메시지를 보내게 됩니다. 블록체인 발생 시 준비커밋 메시지를 선호하는 곳에 보냅니다. 제안 epoch는 100 블럭마다 일어납니다. 이더리움에서 epoch는 1500 초 마다, DPOS 하에서는 300초마다 epoch가 일어납니다.

필요한 대역폭은 타 트랜잭션의 잠재적인 대역폭을 희생시키며 참여자와 검증자의 수에 대해 N 오더로 증가합니다. 이것이 epoch가 1블럭마다 일어나지 않고 100 블럭마다 일어나는 이유입니다.

EOS 애플리케이션으로써의 캐스퍼

위와 대한 이해를 바탕으로, EOS 커뮤니티는 블록체인의 보안성을 증가시키기 위해 컨트랙트로써 캐스퍼를 채택하는 투표를 할 수 있습니다. 참여에 대한 보상은 이해 관계자가 선출한 3개의 커뮤니티가 지지하는 애플리케이션 중 하나로부터 나올 수 있습니다. 현재 대표자 지분 방식에서는 가장 긴 체인 규칙을 사용하고 있습니다.

이 모든 것은 EOS 프로토콜을 실제로 변경하지 않고, 캐스퍼 검증자의 정보를 설명하기 위해 포크 선택 규칙을 조정할 필요없이 구현할 수 있습니다. 하지만 DPOS에서는 포크가 거의 발생하지 않기 때문에 꼭 필요할 것 같아 보이지 않습니다.

제안 메커니즘의 중요성

제안 메커니즘은 블럭에 어떤 트랜잭션이 포함되야 하고 어떤 트랜잭션이 검열되어야 하는지 결정합니다. 이 메커니즘은 또한 캐스퍼 합의 프로세스에 적합한 블럭 집단을 결정합니다.

제안 메커니즘은 아래 프로토콜에 대한 관점을 제어합니다.

  1. 언제 블럭이 생성되야 하는가
  2. 누가 생성할 것인가
  3. 어떤 트랜잭션이 포함될 것인가
  4. 잠재적으로 누가 수수료를 받는가
  5. 언제 하드 포크가 채택되는가
  6. 어떤 소프트 포크가 시행 되는가
  7. 단기 트랜잭션의 승인 속도
  8. 단기 포크의 가능성

이는 제안 프로세스가 생산과 검열의 집중화를 결정한다는 것을 의미합니다. 캐스퍼 합의 프로세스가 새롭게 생성된 유효 블럭에 의존하기에 제안 프로세스를 중단한다는 것은 네트워크를 중단하는 것을 의미합니다. 모든 캐스퍼는 30분마다(이더리움 POW 하이브리드) 또는 5분마다(DPOS 하이브리드) 경제성을 측정합니다.

이를 통해 대다수의 실제적인 합의 문제가 제안 메커니즘에 귀결된다는 것을 알 수 있습니다. 또한 캐스퍼는 생산성 향상과는 관련이 없습니다. 마지막으로 이더리움 블럭이 POW로 인해 30분 내에 묻혀지면(buried), 블록체인이 되돌려질(reversed) 확률은 매우 작아 “캐스퍼 보험”의 상대적 비용이 실제 포함된 위험보다 훨씬 클 것입니다.

제가 제안하는 제안 메커니즘

누구나 시간에 구애 받지 않고 무엇이든 제안할 수 있다면 캐스퍼 검증자는 어떤 블럭에 준비 메시지 사인을 남겨야 하는 지 알 수 없는 교착 상태에 빠질 것입니다. 합의하기 위해 협력하는 것은 검증자의 이해관계와 밀접하게 관련되어 있습니다.

캐스퍼 검증자는 교착 상태에 현명하게 대처하고 교대로 준비 메시지를 보내는 것에 대해 동의합니다. 이 방법으로 검증자는 준비 메시지를 가장 많이 받은 유효 블럭에 준비 메시지를 보낼 수 있게 됩니다. 검증자가 스케쥴링과 준비 메시지를 보내는 시간을 동기화하도록 설정하면, 첫 번째로 준비 메시지를 보낸 자가 그들이 생산한 블럭에 대해서도 동기화할 것을 제안할 수 있습니다.

따라서 캐스퍼를 N명의 검증자가 3초마다 개별적으로 할당된 시간 동안에 준비 메시지를 보내도록 모델링할 수 있습니다. 이는 100 블럭 epoch와 3초의 블럭마다 100회 검증할 수 있음을 의미합니다. 시간 간격을 줄이고 충분한 모멘텀이 구축된 후에 다수의 검증자가 준비 메시지를 병렬적으로 발송할 수 있도록 허용하면 더 많은 검증자를 지원할 수 있습니다. 하나의 준비 눈송이가 촉발한 눈사태를 상상해 보세요.

검증자의 수를 얼마든지 늘리는 것은 가능하나 프로토콜은 적절한 수를 제한합니다. 제가 캐스퍼에 대해 이해한 바에 따르면, 검증자의 수가 증가할 수록 최소 요구 채권 또한 증가합니다. 캐스퍼의 스케일 확장을 위해 검증자가 채권 풀을 만들어 잠재적으로 준비커밋 메시지에 다중 서명할 것을 기대합니다.

DPOS는 파이프라인되어 있는 캐스퍼입니다

캐스퍼는 대역폭과 성능 이슈 때문에 100 블럭마다 한 라운드(epoch로 불립니다)를 실행합니다. Epoch 파이프라인화를 통해 향상시킨 능력을 바탕으로 100 epoch가 병렬 처리 되고 새로운 epoch가 모든 블럭을 마무리 하도록 만들 수 있습니다. 검증자가 교대로 생산과 준비를 수행한다고 가정하면, DPOS 블럭 각각을 99개의 지나간 epoch에 대한 준비 메시지로 볼 수 있고, 다음 epoch의 블럭을 제안 메시지로 볼 수 있습니다. 이와 같은 파이프라인에서 준비, 커밋 메시지를 이전의 준비 메시지로 간주할 수 있습니다.

따라서 캐스퍼를 파이프라인으로 연결하고 현재 라운드(epoch 0)의 각 블럭에 준비를 제안하고 이전 라운드(epoch -100)에 대해 커밋하면, 높은 생산성을 추구하면서 유사한 슬래싱 조건을 적용하는 것이 가능합니다.

DPOS의 두 가지 측면

DPOS 알고리즘의 두 가지 독립적인 면을 소개하겠습니다.

  1. 생산자 결정
  2. 합의 도달

만약 생산자 채권의 규모를 기준으로 생산자를 결정한다면 생산자에 대한 투표를 생산자 채권으로 대체할 수 있습니다. DPOS 블럭 생산 스케쥴을 캐스퍼 epoch의 파이프라인된 순열로 재해석하면 캐스퍼의 슬래싱 조건을 만족하는 동시에 DPOS의 속도와 모든 장점을 취할 수 있습니다.

검증자와 제안자 결정

하이브리드 POW 모델하에서, POW에 의해 제안자가 결정되고 높은 지분 보유자에 의해 검증자가 결정됩니다. 이 하이브리드 모델은 빈 블럭이나 채굴 집단의 검열 위협으로부터 보호받지 못합니다. 이 하이브리드 단계는 결국 다른 제안 시스템으로 넘어갈 것이기 때문에 앞으로 어떤 시스템으로 나아갈 지 추측해보도록 하겠습니다.

합리적인 해결방안은 검증자가 교대로 블럭을 생성하도록 만드는 것입니다. 선택 빈도는 지분에 비례할 수도 있고 독립적일 수도 있습니다. 지분에 독립적인 경우, 최소한의 채권을 유지한 채 지분을 쪼개 계좌를 늘리는 방법을 사용하는 시빌 공격을 받을 수 있습니다. 따라서 저는 지분 가중치가 적용된 생산 방식을 선호합니다.

지분 가중치가 적용된 시스템 하에서 각 “제안자”는 자신에 지분에 비례하는 빈도로 블럭을 생성합니다. 이는 전통적인 POS 시스템과 같습니다.

블럭 생산자(제안자)가 거래 수수료나 블럭 보상을 받는다고 가정해 봅시다. 이러한 보상은 사회화 되거나 개인화될 수 있습니다. 검증자 사이의 인센티브를 맞추기 위해서 사회화에 있어 경쟁보다 협력을 장려하는 것이 이치에 맞습니다. 하지만 이더리움이 채택한 하이브리드 POW 모델에서는 채굴자(생산자 또는 제안자) 사이에 개인화가 일어날 것입니다.

중앙 집권화에 대한 시각

이더리움의 제안에는 중앙 집권화 경향이 있는 두 가지 세력이 존재합니다. 노드 유효성을 검사하는 데 드는 운영비가 일정하다고 가정하면, 수익률은 제안 개별 보상 체계의 위험성에 노출된 지분에 비례하여 증가합니다. 따라서 커다란 채권을 보유하고 있는 하나의 풀이 가장 큰 수익을 가져갑니다.

투자 수익에 대한 합리적인 관점에서 모든 사람들은 전체 블럭을 인증하는 단일 계정에 지분을 모아야 합니다. 이렇게 하지 않는 것은 대다수의 가장 경제적인 이익과 상충됩니다. 최종적으로 10 명 미만의 개인이 전체 합의를 결정하는 채굴 집단에 의해 수익이 분배될 가능성이 높습니다.

두 번째로, 블록체인 처리량이 증가함에 따라 노드 유효성을 검증하는 데 드는 운영비도 함께 증가할 것입니다. 이더리움은 이미 초당 약 15건의 트랜잭션을 처리하고 있으므로, 이와 관련한 이슈가 곧 대두될 것입니다. 고성능의 하드웨어를 구입하여 운영하는 이들은 소규모 운영자들을 압도하므로 중앙 집중화(집권화)를 야기할 것입니다.

협치

현재 시점에서 캐스퍼는 애플리케이션 계층 프로토콜로 체크 포인트를 추가하기 위한 어느 실존하는 합의 알고리즘 계층 위에서든 존재할 수 있습니다. 캐스퍼가 풀지 못한 것은 협치(거버넌스) 문제입니다. POW 계층 위에서의 협치는 블럭 신호를 차단하며, POS 계층 위에서의 협치는 검증자 사이에 지분 가중치가 적용된 직접 민주주의와 같습니다. DPOS의 협치 방식은 동일 가중치가 적용된 생산자 패널에 대한 여러 계층화된 위임을 의미합니다.

탄탄히 정의된 협치 모델이 없다면, 블록체인은 일반적으로 거대 검증자와 채굴자에 대한 영향력을 줄이는 특별임시조직에 의해 협치가 이루어집니다. 하드 포크 결정은 모든 지분 소유자들에게 충격을 가하고 지분 소유자들은 누구나 작은 영향이라도 받게 됩니다. 이러한 결정은 생산자, 제안자, 검증자에 의해 무시될 수 있는 기본 여론 조사를 넘어선 차원에서 진행되야 합니다. 궁극적으로 실행되는 협치 결정은 블럭 생산(제안)으로 이루어지기 때문에, 블럭 생산자(제안자)에 대한 결정은 커뮤니티 차원의 관리로 귀속될 필요가 있습니다.

한 가지 분명한 점은 기술자가 아닌 사람이 쉽게 협치 영역에 참여하지 못한다면, 블록체인에 참가하는 이들 사이의 이익 불균형이 나타나게 될 것이라는 점입니다. 이는 개인이 검증자 집단에 자신의 보유 지분을 증여 (그리고 위험을 감수) 해야 함을 의미합니다. 한 집단에만 지분을 증여할 때 나타나는 위험성은 상당하며, 특히 보상 받지 못할 가능성이 있습니다. 기금 운영자에게 상당한 책임을 지우고 보상의 100%를 공유하게 할만한 인센티브가 주어지지 않습니다. 이는 기금 운영자가 보상의 더 많은 부분을 차지하게 된다는 것을 의미합니다.

비트코인, 이더리움과 마찬가지로 규모의 경제에서 이익을 얻는 소수의 기금 운영자들이 있습니다. 집단이 관리하는 지분이 많을수록 위험성은 낮아지며 운영비로 사용되는 자금의 비율은 감소합니다. 이 경우에 사람들은 정치적인 신념으로 기금에 투표하는 것이 아니라 기금 운영자들로부터 받게 되는 수익률에 근거하여 이기적인 투표를 하게됩니다. 심지어 기금 운영자는 지분을 51% 까지 임대하여 모든 제안 알고리즘을 조정할 수 있습니다.

결론

캐스퍼는 블럭 유효성에 대해 지분을 베팅하는 이들에게 보상을 주는 흥미로운 알고리즘입니다. 이 게임에 참여할 때 발생하는 현실적인 위험과 보상에 대해 살펴볼 필요가 있습니다. 이는 소프트웨어 버그로 인한 단순한 실수, 네트워크 중단, 절망감에 빠진 사람들이 예기치 못한 과도한 손실을 유발할 수 있는 게임입니다. 이 위험은 접근하기 어렵고, 정직한 플레이어의 참여를 방해하기도 합니다. 슬래싱 조건은 코드가 곧 법인 세계의 가혹한 협치 방식으로 작은 실수라도 절대 용납하지 않습니다.(예를 들어 동일한 키로 우연히 백업 노드를 실행하고 두 번 서명하는 경우) 원래 의도는 가동 시간을 극대화하고 놓치는 epoch를 최소화 하는 것이었으나, 결과는 가혹합니다.

이 모든 노력과 게임 이론에 의한 설명으로도, 캐스퍼가 POW와 전통적인 POS보다 적절한 보안과 분권화를 가져올 지는 명확하지 않습니다. 저는 DPOS가 합의 알고리즘에 대해 최선의 제안 알고리즘을 제공한다고 확신하지만, 캐스퍼가 의미있는 가치를 더하고 있는 지에 대해선 여전히 의문입니다. 버그 없이 작동하는 버전의 DPOS는 포크를 발생시키지 않으며 30 배 빠르게 비가역적인 체크 포인트를 설정할 수 있습니다.

저는 캐스퍼 프로토콜을 EOS 스마트 컨트랙트로 구현하는 것이 가치 있는 실험 이라고 생각합니다. 저는 커뮤니티 이익 기반 컨트랙트(CBCs)의 개념을 사용해서, 캐스퍼 컨트랙트에 대해 EOS 토큰 소유자들이 얼마의 보상 인플레이션을 유지할 지 투표하는 캐스퍼가 구현되야 한다고 제안합니다.


원문: @dan/casper-as-an-eos-contract
@yguhan 님께서 번역해 주셨고, @clayop 가 감수하였습니다.

H2
H3
H4
3 columns
2 columns
1 column
14 Comments