Polkadot 합의 파트 1: 도입
Polkadot Blog의 Polkadot Consensus Part 1: Introduction 번역입니다. 2019년 12월 8일 Joe Petrowski에 의해 작성된 글이며, Polkadot 팀에 번역 허가를 받았습니다.
이 시리즈는 폴카닷의 보안과 합의를 주제로 하고 있습니다. 파트 1에서는 블록 생성과 보안 유지에 관한 용어를 몇가지 정의할 것입니다.
합의 알고리즘을 통해 컴퓨터 네트워크는 하나의 컴퓨터처럼 작동할 수 있습니다. 네트워크에 참여중인 모든 컴퓨터가 최초 상태와 결정론적 작업 기록에 동의하는 경우, 각 컴퓨터는 동일한 최종 상태에 도달할 수 있습니다.
블록체인은 이 분야에 흥미로운 문제 의식을 제공하고 있지만, 이러한 합의와 조정의 문제는 새로운 주제가 아닙니다. 이 문제는 우주의 열악한 환경적 특성에 기인한 갑작스러운 이슈에 임의로 대응해야하는 항공 우주 분야에서 시작되었습니다. 여러분이 비행 컴퓨터 네트워크를 이용하여 비행기가 어느 방향으로 가고 있는지 파악하려하는 경우를 상상해 봅시다. 이 때, 네트워크 상의 어느 컴퓨터에 문의하든 상관없이 항상 같은 응답을 받아야 할 것입니다.
이 문제와 블록체인이 무슨 상관이 있는 것일까요? 우리는 컴퓨터 네트워크가 어떤 특정한 값에 동의하기를 원할 수 있습니다. 그 값은 계정 잔액일 수 있고, 투표 결과일 수 있으며, 스마트 컨트랙트의 실행 결과일 수도 있습니다.
기존의 일부 합의 알고리즘은 블록체인과 닮아있습니다. MIT 교수 Barbara Liskov는 비트코인이 존재하기 훨씬 전인 2001년 강의에서 PBFT (Practical Byzantine Fault Tolerance)의 성능 개선을 위한 배치 트랜잭션에 대해 언급하였습니다.
“요청이 쇄도하여 시스템이 매우 혼잡한 상태일 수 있습니다; 요청을 받은 즉시 실제 프로토콜을 작동시키는 것이 아니라, 요청을 수집하여, 그 묶음을 하나의 프로토콜로 수행할 수 있을 것입니다. … 모두가 클라이언트에게 답을 보내줄 필요가 없습니다. 그들 중 일부 참여자만 응답을 보내더라도 클라이언트가 동일한 응답을 받았는지 확인할 수 있습니다.”
PBFT는 상태 — 배치 (블록) 상태도 포함 — 변경 동의를 위한 규칙 세트를 제공합니다.
블록체인 합의 분석
블록체인과 같은 분산형 시스템은 아래와 같은 몇 가지 질문에 대답할 수 있어야 합니다.
- 다음 상태 변경에 대한 제안은 누가하게 됩니까?
- 어떤 변경 셋을 완결로 볼 것입니까?
- 누군가 규칙을 어기면 어떻게 됩니까?
많은 블록체인 합의 프로토콜은 이 문제들의 답을 하나로 뭉뚱그려 대답하고 있습니다. 하지만 우리는 이 문제들의 차이를 분명하게 하여 답을 분리하였습니다. 전자의 예를 살펴보면, 블록의 적절한 작성자를 선택하기 위하여 작업 증명을 사용하였으며, 가장 긴 체인을 완결된 것으로 결정하였고, 규칙을 어긴 것에 대한 처벌은 증명 생성에 대한 비용으로 갈음됩니다. 하지만 앞선 예와 다르게 폴카닷은 이 질문들에 대해 독립적으로 대답하고 있습니다.
비-블록체인 (Non-blockchain) 시스템에서도 이 질문에 대답이 필요한 경우가 있습니다. 예를 들어 모든 컴퓨터가 동일한 소프트웨어를 실행한다라는 가정이 있을 수 있습니다. 이 가정에는 큰 무리가 없을 것입니다. 구체적으로 보잉이 생산한 비행기의 소프트웨어는 보잉이 직접 개발하여 적용하였고, 동일하게 실행된다고 가정해도 문제가 없을 것입니다.
하지만 퍼블릭 네트워크에서는 그런 가정이 불가능하기 때문에, 블록체인에서는 경제 이론을 통하여 가정의 일부를 파악해 볼 수 있습니다. 모든 합의 시스템은 “선”과 “악”의 개념이 존재하며, 고유의 경제적 특성에 따라 좋은 행동을 보상하거나 나쁜 행동을 처벌할 수 있습니다. 지분 증명 네트워크는 합의를 확보하기 위한 실제적인 방법론으로 경제 논리를 사용합니다.
블록체인 시스템 보안의 수준은 합의를 얼마나 깨기 어려운가로 평가될 수 있습니다. 권위 증명 (proof of authority)에서는 참여자가 권위를 완전하게 장악할 수 없다는 사실에 기반하여 보안을 확보하고 있습니다. 작업 증명에서는 네트워크보다 긴 체인을 만들기에 충분한 해시 파워를 획득하고 운영하는데 필요한 비용을 통해 보안을 확보하고 있습니다. 지분 증명에서는 위임된 가치와 처벌에 기인한 위험 가치에 기반하여 보안을 확보하고 있습니다.
패리티 테크놀로지스와 Web3 파운데이션 멤버들은 합의와 보안 문제를 해결하기 위해 알고리즘 라이브러리를 개발, 구현하고 있습니다. 이 시리즈는 완결 알고리즘인 GRANDPA부터 시작하고자 합니다. 모든 블록 생성 알고리즘은 기본적으로 이 완결 알고리즘을 따라야 하기 때문입니다. 다음으로는 블록 생성 엔진인 BABE로 넘어가 블록 생성 방법에 대해 논의하겠습니다. 마지막으로, GRANDPA와 BABE의 보안을 위해 경제 논리를 활용하는 방법에 대한 논의로 마무리하겠습니다.
디사이퍼(DECIPHER)는 “건강한 블록체인 생태계 조성에 기여한다” 라는 미션 아래 블록체인에 대해 연구하고 이를 실용적으로 응용하는 서울대 블록체인 연구 학회입니다. 2018년 3월에 처음 조직 되어 현재까지 블록체인 기술을 다방면에서 연구하고 산업계에 응용하고 있는 100명 이상의 회원들을 배출해왔습니다. 다양한 팀별 연구활동과 프로젝트, 컨퍼런스 개최, 서울대학교 블록체인 강의 개설, 유수 기업들과의 산학협력과 파트너십 체결을 해오며 국내 최고의 블록체인 학회로 자리 잡았습니다.