이더리움 캐스퍼 첫걸음 by Jon Choi

Loun Lee
38 min readMar 4, 2018

--

Ethereum Core Researcher인 Jon Choi의 Ethereum Casper 101을 저자의 허락을 받아 전문 번역하였습니다.

Jon Choi에 대한 정보는 다음의 링크를 참조해주세요!

요약: 이더리움은 캐스퍼를 통해 Proof of Stake(PoS)를 구현할 예정입니다. 우선은 PoS가 필요한 이유와 PoS의 장단점에 대해 다룰 것입니다. 그 다음으로 캐스퍼에 대한 개괄적인 설명과 함께 캐스퍼에 대한 두 가지의 프로토콜 디자인과 관련하여 혼동되는 점들을 정리할 것입니다. 두 방식 모두 네트워크의 생존성, 안전성, 동기성과 관련된 문제들을 해결하는 동시에 암호경제학(cryptoeconomics) 매커니즘을 적용함으로써 네트워크를 보호한다는 공통된 디자인 원칙을 갖고 있습니다. 또한 이 포스팅에서는 지금까지의 진행 상황(역자주: 원 글은 2017년 10월 22일에 쓰여졌습니다.)과 앞으로의 과제에 대해서 논할 것입니다. 특히 처음 접하시는 분들을 위해 주요 컨셉들을 정의 및 설명하면서 이해하는데 도움이 되는 여러 자료들을 함께 소개하려고 합니다. 무엇보다 이 포스팅의 가장 중요한 목표는, 커뮤니티에 계신 모든 분들이 캐스퍼와 PoS에 보다 쉽게 접근할 수 있도록 하는 것입니다.

(역자주: 처음 접하시는 분이라면 생소한 단어가 많이 등장할 수 있으므로 아래쪽의 용어 정리를 먼저 읽으시길 추천드립니다.)

개요

  1. 서론
  2. Proof of Stake
  3. 두 캐스퍼의 이야기
  4. 캐스퍼가 중요한 이유
  5. 설계 원칙
  6. 해결해야 할 문제들
  7. 향후 진행 방향
  8. 용어 정리
  9. 결론

서론

캐스퍼는 2014년부터 시작된 프로젝트로, 딱히 새로운 프로젝트는 아닙니다. 그러다보니 관련된 자료를 온라인에서 많이 찾을 수 있지요. 그러나 처음 접하는 분들이 쉽게 이해하고 프로젝트에 참여할 수 있도록 돕는 자료는 없었습니다. 그래서 이 포스팅을 통해 보다 쉽게 캐스퍼를 소개하고자 합니다.

다른 많은 포스팅, 비디오, 논문들은 캐스퍼의 기술적 사양, 구현 방식, 검증 방식들을 주로 설명합니다. 그러나 여기에서는 캐스퍼의 다양한 설계 원칙 가이드, 다른 대안들과의 차이점, 캐스퍼가 중요한 이유, 캐스퍼 프로젝트에 여러분이 공헌할 수 있는 방법을 다루려고 합니다.

덧붙여, 캐스퍼는 이더리움 연구자, 개발자, 그리고 커뮤니티 멤버들간의 매우 개방적인 협업을 통해 개발되고 있습니다. 이 포스팅을 통해 여러분께 캐스퍼를 소개하고, 이더리움을 비롯한 여러 퍼블릭 블록체인 생태계에서 캐스퍼가 중요한 이유를 설득함으로써 앞으로도 활발한 협업을 이어갈 수 있기를 희망합니다.

요약하자면, 이 포스팅은 다음의 내용을 담고 있습니다.

  • PoS와 캐스퍼에 대한 짧고 넓은 소개
  • 캐스퍼의 중요성과 설계 원칙, 그리고 당면 과제에 대한 논의
  • PoS와 캐스퍼에 당신이 공헌하기 위해 알아둬야 하는 필수 자료들과 용어들

다음의 내용은 포함하지 않습니다.

  • 캐스퍼의 전체 역사
  • 캐스퍼의 기술적 사양
  • 캐스퍼의 자세한 구현 방식
  • 캐스퍼의 형식적 검증

이 내용들을 기억하시면서, 이더리움의 PoS 연구와 구현 방식인 캐스퍼에 대한 초심자용 소개글을 즐겨주시기 바랍니다.

Proof of Stake

(이미 알고계신 내용이라면, 다음 섹션인 “캐스퍼란 무엇인가?”로 넘어가셔도 좋습니다)

Proof of Stake(PoS)란, 네트워크 상의 검증인의 경제적 지분(stake, 예치금)에 기반하는 퍼블릭 블록체인의 합의 알고리즘의 한 분류입니다.

Proof of Work(PoW) 기반 퍼블릭 블록체인(예: 비트코인 또는 현재의 이더리움)은, 거래를 검증하고 새로운 블럭을 생성하기 위해 암호학적인 퍼즐을 푸는 네트워크 참여자에게 보상을 지급하는 알고리즘(채굴)을 갖고 있습니다. 반면 PoS 기반 퍼블릭 블록체인(예: 캐스퍼가 구현된 이더리움)에서는 네트워크의 검증인들이 차례대로 다음 블럭을 제시하고 투표하며, 각 검증인들의 투표 영향력은 그들의 지분에 비례합니다. 검증인들은 그들이 네트워크에 공헌하는 정도에 따라 보상을 받지만, 지분은 네트워크에 피해를 끼치는 사람들에게 경제적인 불이익을 주는 역할을 하기도 합니다.

PoS의 큰 장점으로는 보안, 중앙화에 대한 리스크 저감, 에너지 효율성이 있습니다.

명시적인 경제적 안전성

PoW에서 당신이 겪을 수 있는 불이익은 아무리 커도 블럭 생성 시간(비트코인의 경우 10분을 목표로 함)에 맞춰 조절되는 에너지(전기) 소모량과 장비의 감가상각비를 넘지 않습니다. PoS는 비잔티움 행위(프로토콜을 따르지 않는 행위)에 대한 페널티를 자유롭게 명시적으로 설계할 수 있다는 큰 장점을 갖고 있습니다. 이 부분해서 해결해야 할 과제가 남아있지만요(포스팅의 뒷부분에서 다룰 예정). 그렇기 때문에 프로토콜 설계자는 네트워크에서 발생하는 다양한 행위들로 인한 위험성 및 그에 대한 보상/처벌 방식을 보다 비대칭적으로 자유롭게 설계할 수 있습니다. 네트워크의 효용과 정확성을 해하는 행위를 할 때 필요한 비용이 곧 네트워크의 안전성을 보여주는 지표 중 하나라고 볼 수도 있는데요, 따라서 보다 확실한 처벌(PoW보다 훨씬 강력한 수준의)을 가할 수 있다는 점은 네트워크의 보안(경제적 안전성)을 높이는데 도움이 됩니다.

이와 관련하여, Vitalik은 PoS가 PoW보다 나은 회복력을 가지고 있다고 논한 바 있습니다. PoW에서는 블록체인을 쓸모없게 만들어버리는 “spawn camp” 공격(역자주: 51%의 채굴자 집단이 블록체인을 계속해서 공격하는 것)이 가해질 수 있습니다. PoS에서는 공격이 가해질 경우, 공격자의 지분을 네트워크에서 삭제해버림으로써 반복적인 공격을 막을 수 있습니다. 이를 경제적으로 분석해보면 다음과 같습니다. PoS에서 반복되는 공격의 한계 비용은 공격을 처음 시도했을 때와 동일합니다. 그러나 PoW에서는 공격을 반복할 때 발생하는 한계비용은 전기세 뿐입니다(공격을 반복할 때 추가적으로 발생하는 장비의 감가상각이나 물리적인 공간의 확보 비용은 0에 가까우므로). 이 부분을 쉽게 설명하기 위해 Vlad Zamfir의 말을 바꿔서 표현하자면, PoS에서는 51% 공격을 매번 반복 할 때마다 “당신의 ASIC 채굴장이 불타서 없어지는” 것과 같은 비용을 감수해야 합니다.

중앙화의 완화

PoS는 합의에 도달하는 과정에서 규모의 경제가 끼치는 영향을 줄입니다. 이미 보았듯이, PoW에서 네트워크는 채굴량의 대부분을 점유하는 몇몇 대형 채굴장(예: Bitmain의 AntPool)을 신뢰하게 됩니다. PoW 채굴장은 그 규모가 클수록 장비 하나당 들어가는 비용(데이터센터 비용, 전기세, 인건비 등)은 줄어들게 됩니다. 사업이 클수록 고정지출비용을 분할해서 납부할 수도 있고, 장비도 대량으로 구매할 수 있으므로 단가를 낮출 수 있기 때문이죠.

즉, 두 채굴장이 동일한 비용을 지불하더라도 (더 큰 규모의) 한 채굴장이 다른 채굴장보다 1달러당 더 많은 해시레이트와 네트워크에의 영향력을 가질 수 있다는 뜻입니다. 예를 들면, 채굴 비용으로 1분당 1달러를 지불하는 1만명의 개인 채굴자들(1년에 8760만 달러를 소비)보다, 1분당 1만달러를 지불하는 1개의 채굴장(마찬가지로 1년에 8760만 달러를 소비)이 더 높은 해시 파워를 가질 수 있습니다. (향후 조사해 볼 만한 부분: PoW 채굴의 중앙화로 인해 발생하는 이익을 계량적으로 분석해보는 것도 재미있을 것 같습니다. 1달러 투자 할 때마다 해시파워는 얼마나 증가할까요? 1bps? 1%? 아니면 몇배?)

하지만 PoS에서는 1달러가 1달러의 가치를 가집니다. PoS의 장점은 사용자들이 모여서 집단을 만들어도 1달러가 1달러보다 더 큰 가치를 가질 수는 없다는 것이죠. 기술적인 우위를 점하기 위해 채굴에 특화된 기기(ASIC)를 개발하거나 구입할수도 없습니다. 즉, PoS는 PoW 채굴 보상의 분포인 역진세적인 분포(regressive distribution, 아래 역자주 참조)를 완화시키고 비례세적인 분포(proportional distribution)로 이동시키고자 하는 것입니다. (비례세적인 분포를 넘어 누진세적인 분포(pregressive distribution)로 나아가려면 분산시스템에서 동작하는 보다 성숙된 평판/신원 관리 서비스가 필요할 것입니다).

역자주 (적절한 한국어 단어를 찾지 못해서 일단 조세 용어를 썼습니다. 올바른 단어를 아시는 분은 알려주세요!):

  • 역진세적인 분포: 투자금이 클수록 보상이 더 큼(투자금이 증가하는 비율보다 보상이 커지는 비율이 더 큼. 투자금이 많을수록 세금을 적게 징수한다는 개념)
  • 비례세적인 분포: 투자한 자본과 보상이 비례함
  • 누진세적인 분포: 투자금이 크더라도 그에 비례하는 만큼의 보상을 받지 못함(투자금이 증가하는 비율보다 보상이 커지는 비율이 작음. 투자금이 많을수록 세금을 많이 징수한다는 개념)

에너지 효율성

PoW는 네트워크를 보호하기 위해 엄청난 자원을 소비합니다. 비트코인은 1년에 20만 TWh가 넘는 전력을 소모하고 있습니다. 에콰도르 전체의 연간 전력 소모량과 비슷한 수준이죠. 비트코인을 더 많은 사람들이 쓰게 되어서 비자 네트워크 정도의 처리량을 내게 된다면 에콰도르보다 훨씬 더 큰 나라의 전력 소모량만큼을 소모하게 될 것입니다. 따라서 현재 상황에서 추론해 볼 때, PoW는 앞으로 지속 가능한 수단이 아닙니다.

물론 비트코인은 금전적 비용이나 환경에 끼치는 악영향보다 더 큰 긍정적인 사회적 기능을 하고 있을 수도 있습니다(Nick Szabo의 사회적 확장성 논의). 하지만 PoS 지지자들은 PoW 블록체인보다 (자릿수가 다른 수준으로) 훨씬 더 적은 에너지를 사용해서 PoW 같은 인센티브 매커니즘을 PoS를 통해 구현할 수 있다고 믿습니다. 또한 일부에서는 비트코인의 사회적 확장성이 가져다 주는 장점보다 환경에 끼치는 악영향이 더 크다는 의견도 있죠.

이런 논의들은 기존에 없었던 것이기 때문에 과거의 경험을 토대로 답을 얻기는 쉽지 않지만, 저는 암호화폐 커뮤니티 구성원 모두가 여러 합의 알고리즘들의 장점과 단점을 비교하면서 답을 찾아가야 할 책임이 있다고 생각합니다 (많은 시도들이 있지만 그 중 한 가지 예를 들면, 몇몇 프로젝트에서 Proof of Storage라는 알고리즘의 장점과 실현 가능성을 테스트 해 보는 것은 매우 좋은 일이라고 생각합니다).

다시 본론으로 돌아가서, PoW를 통한 발행 시스템에서는 두 종류의 비용이 소모됩니다. 첫번째는 내부 비용으로, 채굴자에 의해서 지불되고 암호화폐를 보유하는 사람들에게 전달되는 비용입니다. 다음은 외부 비용으로, 환경에 끼치는 영향이나 정부에 의한 보조금(전기를 저렴하게 공급한다거나) 등이 있습니다. 반면 PoS에서는 의견 일치에 필요한 비용이 적으므로(전력 소모나 장비 구매 비용이 들지 않음), 화폐 발행을 많이 할 필요가 없습니다. 네트워크가 성숙하게 되면 화폐를 소각하는 것(지분에 대한 벌금이나 몰수 뿐만 아니라 거래시 발생하는 수수료를 소각처리한다거나)도 가능할 수 있습니다. 이렇게 하면 가격을 안정시키는데 도움이 될 수 있죠.

따라서 에너지 소모량을 줄이는 것은 환경에 좋을 뿐만 아니라, 보다 단순한 매커니즘을 가질 수 있게 합니다. 에너지 소모가 적어지면 확정된 비용(realized cost)(전기세나 장비의 감가상각비 지출은 되돌릴 수 없으므로)을 네트워크의 보안을 위해 필요한 잠재적인 지출(potential economic value-at-loss)(확정되지 않은 비용의 발생 가능성)로 바꿀 수 있기 때문입니다. 이는 PoS의 주요 가설 중 하나인 확정된 비용과 금전적 손실의 발생 가능성, 이 두가지는 참여자들이 네트워크를 보호하도록 유도한다 입니다. 그러므로, 쉽지 않겠지만, 참여자들의 손실 회피 심리를 활용하여 퍼블릭 블록체인의 보안을 높이는 것은 가능할 것입니다. 그렇게 된다면 공공비용사중손실도 줄일 수 있겠지요.

Proof of Stake: 요약

지금까지 PoS의 주요 장점들을 정리했습니다. 캐스퍼를 통해 이더리움은 많은 좋은 점들(아래에서 다룰 예정)을 얻게 되지만, 캐스퍼가 중요한 이유 중 많은 부분은 PoS 방식의 일반적인 장점인 명시적인 경제적 안전성, 중앙집중화의 완화, 에너지 효율성의 상승때문입니다.

그럼 지금까지 PoS에 대해 알아보았으니, 이제 캐스퍼에 대해 알아볼까요?

PoS에 대한 참고 자료들

Proof of Stake FAQ — 이더리움 위키
Proof of Stake 설계 철학 — Vitalik Buterin
PoS 비판 — Tuur Demeester (그리고 이어지는 코멘트 1, 2, 3)
Tendermint 백서 — Jae Kwon
Proof of Work 없는 암호화폐 — Iddo Bentov et al. (슬라이드)
비트코인 위키의 Proof of Stake 항목
• PoS 예시: Tendermint, Polkadot, Peercoin

두 캐스퍼 이야기

쉽게 말하면, 캐스퍼는 이더리움의 Proof of Stake 작동 방식입니다.

캐스퍼는 특정한 구현 방식이라기보다는 이더리움 팀에 의해 연구중인 두 메인 프로젝트들을 묶어서 지칭하는 것입니다. 비공식적으로, “Vitalik의 캐스퍼”인 캐스퍼 FFG와 “Vlad의 캐스퍼”인 캐스퍼 CBC(아래에서 설명)가 있습니다. 캐스퍼 관련 자료들을 인터넷에서 찾아보다보면 이 부분이 좀 애매하다보니, 처음 시작하는 분들은 매우 혼란스러운 부분일 수 있습니다(사실, 이 글을 쓰게 된 가장 큰 이유이기도 합니다). 비록 구현 방식은 서로 다르지만, 두 방식 모두 이더리움을 PoS로 바꾸는 것을 목표로 하고 있습니다.

(의외로 많은 분들이 이미 이더리움이 PoS 방식이라고 생각하시지만, 여전히 PoW 체인(ethash를 사용)입니다. 비록 메모리 하드하고 비트코인보다 ASIC 저항성이 높긴 하지만, 이더리움도 어쨌든 PoW 체인이고, 따라서 에너지 소모량 측면에 있어서는 비트코인과 마찬가지의 문제점을 갖고 있습니다.)

자 그럼, 두 캐스퍼에 대해 간단히 이야기 해 봅시다.

FFG vs CBC

저자주: 두 프로젝트 모두 몇 주 뒤 열릴 Devcon3(역자주: 2017년 11월에 개최되었음)에서 보다 자세한 논문과 컨셉 검증 결과를 보여줄 예정이지만, 여기서 간단히 각각의 방식을 미리 살펴봅시다.

Casper the Friendly Finality Gadget (“FFG”) — aka “Vitalik의 캐스퍼” — 는 PoW와 PoS의 하이브리드 컨센서스 매커니즘으로, 현재로서는 이더리움이 PoS로 이행하는 과정의 첫 걸음이 될 수 있는 방식입니다. 보다 자세히 말하자면, FFG는 (이더리움의 ethash PoW 체인같은) PoW체인 위에 PoS 시스템을 덮어씌우는 방식으로 PoS를 구현합니다. 블록체인은 ethash PoW 알고리즘을 통해 한 블록씩 생성되지만, 블록이 50번 생성될 때마다 PoS의 체크포인트를 찍고 그 시점에서 네트워크의 검증인들이 완결성을 검증합니다.

Casper the Friendly GHOST: Correct-by-Construction (“CBC”) — aka “Vlad의 캐스퍼” — 는 기존의 프로토콜 설계와 다른 접근법을 취합니다. (1) 프로토콜은 초기에는 일부만 정해진 상태이고 (2) 정해지지 않은 나머지 프로토콜 부분은 바람직한/필요한 조건들을 만족하는 것으로 확인 된 방식으로 결정됩니다(일반적으로는 프로토콜을 전부 결정한 후에 그 프로토콜이 필요 조건들을 만족하는지 테스트 해보는 식으로 진행되죠). 이 경우 프로토콜을 완성하는 한 가지 방법은, 안전성을 예측하는 예언자(“이상적인 적”)를 구현하는 것입니다. 합리적인 추측의 결함을 알리거나, 앞으로 발생할 가능성이 있는 문제점들을 예측해주는것이 예언자의 역할이죠. 자세히 말하자면, Vlad는 각 노드에서 관찰하는 해당 네트워크 부분의 안전성에 대한 시야를 확장함으로써 컨센서스의 안전성을 높일 수 있는 프로토콜을 설계하는데에 집중하고 있습니다.

FFG는 여러 단계에 걸쳐 PoS를 도입하고자 합니다. 각 단계를 거치며 네트워크에서 PoS가 갖는 비중을 점점 높이는 방식의 접근 방식이죠. (초기에는 PoS 보상이 크지 않을 거라는 얘기입니다). 그러나 CBC는 처음부터 안전성이 담보되는 확실한 방법들을 건축하듯이 쌓아가는데에 중점을 둡니다. 조금 복잡하긴 하지만, 같은 문제를 해결하기 위해 제안된 이 두 가지 방법은 서로를 잘 보완해주고 있습니다. 최종적으로 캐스퍼는 FFG와 CBC를 통해 배우게 된 부분들을 합친 모습을 갖게 될 것입니다.

다음 단계들

상당한 진척이 있었지만, 아직 많은 디테일한 부분들 — 큰 범위의 매커니즘 디자인부터 구체적인 구현 부분까지 — 이 정해져야 합니다. Vitalik과 Vlad도 이 부분을 인지하고 있고, 앞으로 더 많은 분들이 커뮤니티에 참여하여 논의를 진척시켜나갔으면 합니다.

정리하자면, 두 연구 프로젝트 모두 매우 활발히 연구되고 있으며, 11월에 있을 Devcon3에서 자세한 내용이 공개될 예정입니다. 이 포스팅에서는 더 이상의 자세한 내용을 다루진 않지만, 더 알고 싶으신 분은 아래의 자료를 참고해주세요.

FFG 관련 자료

FFG 관련 추가 자료

CBC 관련 자료

  • Devcon3 이후 업데이트 예정 (역자주: 발견하게되면 업데이트 하겠습니다)

CBC 관련 추가 자료

캐스퍼가 중요한 이유

말로만 듣던 캐스퍼 프로젝트가 어떤 것인지 조금 이해 되셨나요? 그럼 이제 PoS와 캐스퍼에 대해 공부한 내용을 합쳐서 이게 왜 중요한지에 대해 알아봅시다.

핵심 내용은 다음과 같습니다:

  1. 탈중앙화 (PoS에서 다뤘음)
  2. 에너지 효율성 (PoS에서 다뤘음)
  3. 명시적인 경제적 안전성 (PoS에서 다뤘음)
  4. 이더리움의 확장
  5. PoW로부터의 부드러운 이전

PoS이기 때문에

처음 세 항목은 PoS 파트에서 이미 다루었습니다. 그러나 이더리움은 시가총액이 280억달러에 달하고 전체 시가 총액의 18%를 차지하여 암호화폐 중 두번째로 큰 프로젝트인 만큼, 조금이라도 탈중앙화가 더 진행되고 에너지 효율성을 조금이라도 더 개선할 수 있다면 현재로써도 적지않은 영향을 끼칠 수 있고 미래에는 더더욱 큰 영향을 끼칠 것입니다.

다시 한 번 되짚어보면, (1) PoS는 규모의 경제의 영향력을 줄입니다 — 1달러는 오직 1달러의 가치만을 갖는거죠. 채굴자나 검증인 하나가 남들보다 더 큰 영향력을 가질 수 없습니다. PoW에서는 큰 채굴장일수록 1달러 당 얻을 수 있는 해시 파워가 개인 채굴자에 비해 더 크지만, PoS에서는 1달러로는 1달러어치의 영향력만 얻을 수 있으므로 채굴의 중앙화를 막을 수 있습니다.

또한 (2) PoW는 네트워크의 안전성을 얻기 위해 에너지를 낭비하지만 PoS는 예치금을 잃을 가능성을 이용해 네트워크의 안전성을 확보합니다. 여기서 해결해야 할 과제는 (3) PoW의 장점을 어떻게 흉내내는 (그리고 개선시키는) 동시에 PoS가 갖는 경제적 매커니즘 설계 측면의 약점을 어떻게 줄일 것인가 입니다.

확장성 문제 해결을 위해

이제 새로운 내용을 얘기해봅시다. 바로 (4) 확장 입니다. 이 부분을 이해하기 위한 방법은 두 단계로 나뉩니다. (a) 캐스퍼는 명시적인 완결성(확률적인 완결성과 대비되는 개념으로서)을 얻고자 하며 (b) 명시적 완결성은 샤딩을 통한 네트워크 확장이 진행되는 동안 네트워크의 안전성을 유지합니다.

PoW 체인에서 완결성은 명시적으로 나타나지 않습니다 (잔뜩 낸 전기세가 곧 PoW 체인에 대한 투자라는 것 만큼이나 덜 직접적이죠). PoW 체인의 특징인 암시적 완결성은 실생활에서 PoW 체인을 활용하여 거래 할 때 거래가 어떻게 완결되는지를 살펴보면 쉽게 발견할 수 있습니다. PoW 체인을 활용하게 되면, 결제가 얼마나 중요한지/얼마나 큰 금액인지에 따라 더 많은 블록의 확인(가장 긴 체인에 거래 내역이 기록된 이후 생성된 블록의 갯수)을 기다리곤 하죠. 예를 들어 커피 한 잔을 산다면 확인 몇번이면 괜찮지만, 자동차를 구매한다면 일반적인 확인 횟수보다 더 많은 확인 횟수를 필요로 할 것입니다.

반면에 캐스퍼는 명시적인 완결성을 제공합니다. 예를 들면, 캐스퍼 FFG는 PoW 체인 위에 완결성을 부여하는 층을 씌웁니다. 따라서 아래에 있는 PoW 체인은 여전히 거래의 완결성을 암시적으로 판단하는 방법을 사용합니다. 그러나 캐스퍼 FFG는 약 2.5 에폭타임뒤에 명시적인 완결성을 제공합니다(각 에폭타임은 50개의 PoW 블록의 연결을 뜻하며, 각 에폭의 마지막 블록이 체크포인트가 됩니다. 그 내용은 검증인 그룹에 의해 우선 “타당성이 증명(justify)”된 후 “완결(finalize)”됩니다. 더 자세한 내용은 앞서 링크된 논문과 나중에 올라올 포스팅을 참고해주세요.).

그러면 그 때 비잔티움 장애 허용 방식의 가설에 기반하여 우리의 가설이 위반되었는지, 아니면 체크포인트가 완결 되었는지 확인할 수 있습니다. 여기서 검증인 그룹에 대해서는 이미 알고 있는 상황(물론 변동될 수 있지만)이므로, 나쁜 행동을 한 사람들에게는 처벌이 가해지게 됩니다.

그렇다면 샤딩과 확장성은 이것과 무슨 관계일까요? 명시적 완결성의 유무 여부는 각 노드가 네트워크에 얼마나 많은(좀 더 정확하게 말하면, 얼마나 적은) 일을 해야 하느냐와 관련이 있습니다. 명시적 완결성이 규칙적으로 부여되게 된다면 다음과 같은 부분까지 논의를 확장할 수 있습니다: 만약 모든 노드가 모든 거래 내역이나 상태를 보관 할 필요가 없다면? 모든 노드가 모든 거래를 검증할 필요가 없다면? 퍼블릭 블록체인의 각 노드와 관련된 이러한 서로 다른 “책임”에 대한 문제들은 블록체인 샤딩을 통해 해결될 수 있습니다.

다시 논점으로 돌아와서, “보다 적은 노력” 또는 “보다 적은 지식”으로 네트워크의 각 노드를 탐색해야 하는 상황이라면, 블록체인의 첫번째 블록부터 지금까지의 발생한 확률적 체인을 전부 고려하는 것 보다는 지난 몇 에폭동안의 완결성만을 고려하는 것이 훨씬 도움이 될 것입니다. 그러므로 완결성 검증이 이와 같은 에폭 간격마다 한 번씩 진행 될 때는, 단순한 거래를 검증하는데에 완결성은 큰 도움이 안 될 것입니다. 그런 단순한 거래들은 해당 에폭 간격보다 짧은 시간동안 발생하는 확인 과정만으로도 충분히 검증되기 때문입니다. 그 대신, 완결성이 갖춰진다면 현재의 초당 10회 수준의 거래량보다 수십배, 수백배 더 많은 거래를 처리할 수 있게 될 것입니다.

이더리움의 시가총액이 280억달러에 달하기 때문에

마지막 포인트는 (5) PoW로부터의 부드러운 전환 입니다. 저처럼 처음 접하는 분들을 위해 배경 설명을 드리면, 이더리움의 PoS로의 이전은 2017년에 있었던 이더의 급격한 가격 상승 이전부터 계획되었습니다. PoS로의 이전 계획은 ethash 기반의 PoW 체인 위에 PoS층을 덧붙이는 방식으로 시작해서 점차 순수한 PoS 방식으로 이전해가는 것이었죠. 그러나 이더의 가격이 급상승하면서, 이더리움 인프라의 많은 부분을 변경하는 과정인 PoS로의 전환 도중에 이더의 가격이 급락하는 것을 방지하기 위해서도 점진적인 전환을 진행할 수 밖에 없게 되었습니다.

추가 자료

설계 원칙

이 부분에서는 Vlad와 Vitalik의 여러 포스팅에서 발견할 수 있는 설계 원칙들을 정리해두었습니다. 현재 캐스퍼의 설계 원칙들은 여러 자료들에 흩어져 있습니다. 정리해둔 내용을 읽으시면서 전체적인 설계 원칙을 파악하시는데 도움이 되면 좋겠습니다.

  1. 참여자의 행위를 유도하기 위한 경제학. 명시적인 경제적 매커니즘의 설계를 통해 다른 사회적 계약들(PoW와 같은 합의 알고리즘 등)에서 발견할 수 있는 암시적인 경제적 인센티브를 부여하는 구조를 만들 수 있다. 비유를 좋아한다면, 캐스퍼의 역사 파트3의 “빅 게임”부분을 참조.
  2. 공격 비용의 최대화. 예를 들어, 공격자가 프로토콜의 효용에 일정 크기의 피해를 가한다면 공격자 역시 일정 수준의 피해를 받아야 한다(griefing factor). 100달러의 피해를 주는 공격에 드는 비용이 0.01달러여서는 안되며, 적어도 100달러 정도는 비용이 들어야 한다. 다시 말해, 프로토콜을 공격할 때 소모되는 1달러 당 공격 가능 횟수를 최소화시켜야 한다(다른 포스팅에서 더 자세히 다룰 예정).
  3. 개인이 아닌 공공의 비용 대비 이익. 우리는 퍼블릭 블록체인의 확장을 진행하므로 프로토콜 경제학 역시 사회(공공)의 비용과 이익(부정적인 외부비용과 긍정적인 외부비용)을 고려해야 한다. 에너지 소모량, 환경에의 영향, 부의 분배가 대표적인 예.
  4. 규모의 경제를 방지. 중앙화는 퍼블릭 블록체인의 가치 제안(value proposition)을 약화시킨다. 규모의 경제를 막음으로써 중앙화 요인을 막을 수 있고, 보다 안전한 블록체인을 만들 수 있다.
  5. 네트워크의 안전성은 네트워크에 투입되어있는 비용에서 나온다. 단순한 말이지만 다시 언급할만한 부분. 당신이 네트워크에 많은 돈을 걸어두어 네트워크가 피해를 입을 경우 당신이 입는 피해가 클수록, 우리는 당신을 검증인으로서 더 신뢰할 수 있다. PoW체인은 에너지 소모를 통해 보안을 얻지만, PoS체인에서는 경제적 가치의 손실 가능성을 높임으로써 보안을 얻는다.
  6. 소수독점 구조를 고려한 설계. 협력 게임 이론은 네트워크의 권력이 중앙화되는 것(예: 규모의 경제)을 완벽히 막을 수 없는 상황을 부르는 말이다. 다르게 말하면, 개인의 이익을 최대화하기 위해 참가자들이 집단을 만드는 모든 행동을 분석하는 과정이다. 특히, 프로토콜은 집단에 속해있지 않은 검증인들에 대해 다른 검증인 집단이 짓궂게 굴지 않도록(친절하게 행동하도록) 설계되어야 한다.
  7. 책임 부여를 통한 안전성. 악한 행위를 하는 참여자에게 책임을 물을 수 있는 구조가 되어야 한다. 캐스퍼는 비잔티움 행위를 하는 참여자에게 처벌을 가하는 기능에 의존한다.
  8. 합리적인 생존성. 공격자가 체인을 막음으로써 체크포인트나 블록에 대한 제안 또는 투표가 진행되지 못하게 하는 것을 구조적으로 금지한다. 이 부분이 캐스퍼가 텐더민트같은 다른 방식과 다른 점으로, 텐더민트에서는 안전성이 확보되지 않으면 “잠금”상태로 변환한다.
  9. 동기성 가정의 최소화. 생존성을 유지하는 동시에 체인의 성장을 막는 것을 피하기 위해, 캐스퍼는 최소한의 동기성을 가정한다. 실제로, 우리는 각 노드들이 몇달에 한 번 정도 접속하는 것을 가정하고 있다.
  10. 탈중앙화되었다면 복구할 수 있어야 한다. 프로토콜은 모든 다른 노드가 사라지고 노드가 딱 하나만 남았더라도 모든것을 복구 할 수 있는 경우에만 “탈중앙화”되었다고 말할 수 있다. (텐더민트는 체인 생성의 정지에 예민하며 다시 복구될 수 없다. Matthew Wampler-Doty와 Vlad의 관찰에 따르면, 텐더민트의 검증인 그룹은 매 번 나뉠때마다 점점 작아지게 된다.
  11. 검열에의 의욕 저하. 이러한 시스템의 경우, 검증인들이 점차 접속을 끊는 식으로 공격을 가할 수 있다는 문제가 있다. 그러나 집단 검열이 더욱 큰 문제이다. 검열을 통해 얻을 수 있는 이익과 검열에 드는 비용 및 처벌(예치금의 몇 퍼센트라거나)의 비율을 적절하게 정하는 것이 이 문제를 해결하기 위해 매우 중요할 것이다.

추가 자료

해결해야 할 문제들

이더리움 전반에 대한 과제 목록은 여기를 참조하시기 바랍니다.

PoS와 관련된 과제

Nothing-at-stake 문제 — 체인의 포크가 발생할 경우, 검증인에게 가장 이익이 되는 행동은 모든 체인을 검증함으로써 포크의 결과와 상관 없이 보상을 받는 것입니다.

장거리 공격— 51% 공격과 같은 방식(더 긴 체인을 만들어 공격자가 원하는 내용으로 장부를 수정하는 것)이지만, 여섯 블록만 뒤로 돌아가는 것이 아니라 한참 전에 생성된 블록부터 조작을 시도하는 것입니다. PoS에서 이 공격이 가능한 이유는, 매우 긴 체인을 생성하는데에 드는 PoW 과정(과 같은 시간이 오래 걸리는 작업)이 PoS에는 없기 때문입니다.

이 두 문제는 삭감(과 이를 개선한 방법들)을 통해 해결되었습니다. 이 문제를 해결하기 위해 중요한 점은 (1) 검증인들이 알려져있어 검증인 단계에서 책임을 물을 수 있을 것, 그리고 (2) 특정 행동에 대한 의지를 꺾는 강한 “삭감 조건”이 있을 것, 이 두가지 입니다. 또한 이 예시는 캐스퍼 팀의 합의 알고리즘 설계에 대한 시각 — 경제적 매커니즘을 적절히 설계함으로써 분산 시스템을 보호할 수 있다 — 을 이해하는데 매우 중요합니다.

PoS에 대한 비판

바람직하지 않은 검증인의 선출 — 잘못된 행동을 할 경우 엄청한 페널티가 가해진다면, 많은 일반적인 위험 회피 성향의 “검증인 후보”들은 검증인으로 참여하는 것을 주저할 것입니다. 그렇게 되면 시스템에서 분쟁을 일으켜 더 많은 이익을 얻고자 하는 사람들만 검증인으로 참여하게 되겠죠. 좀 더 넓게 보면, (평균적으로) 선한 행동을 하는 사람은 악한 행동을 하는 사람들보다 더 높은 투자수익을 가져갈 수 없을 것입니다.

이에 대한 대답:
이 부분은 연구팀이 많은 관심을 두고 앞으로도 연구해야 하는 “암호경제학(cryptoeconomics)”과 관련된 내용입니다. 매커니즘의 수식화가 진행됨에 따라, 악한 행동에 대한 처벌 및 예치금의 크기에 따른 리스크와 보상의 균형 등을 최적화하는 과정을 진행할 예정입니다.

이 문제는 비트코인에도 동일하게 존재한다는 점(PoW이므로 상대적으로 덜하긴 하지만)은 주목할 만 합니다.

“돈이 돈을 번다” — “예치한 금액에 기반한 합의 알고리즘”이라는 말을 듣는 분들이 많이들 우려하시는 또 하나의 부분이 바로 이 부분이죠. 이렇게 될 경우 암호화폐 생태계에서 부의 불평등을 가속화하고 더 나아가 세계 경제에도 부의 불평등이 더 심화되는게 아니냐면서요.

이에 대한 대답:
여기서 기억해야 할 것은 PoS는 현재 비트코인에 사용되고 있는 PoW에 비해 더 평등주의적(즉, 자본이 많은 사람에게 적은 이익이 돌아가는 것)이라는 점입니다.

위에서 PoS에 대해 살펴보았던 것 처럼, PoS는 채굴자가 모여 집단을 이루려는 의욕을 저하시킴으로써 규모의 경제를 완화시킵니다. PoS에서, 1달러는 1달러의 가치를 가지는 것이죠.

그러므로, PoS에 대해 처음 들었을 때 PoS가 부의 불평등을 악화시킬 것이라는 생각이 드는 것과는 정 반대로, 실제로는 현재 상태에 비하면 상당한 수준의 개선이 이뤄지게 됩니다.

잠깐 다른 이야기를 하자면: 규모가 커질수록 비용이 더 많이 들게 하거나, 자본이 적은 참가자가 더 많은 보상을 받게 하려면(부의 불평등을 해소하기 위한 한 걸음 더 나아간 방법), 성숙하고 신뢰할만한 신원/평판 관리 시스템이 반드시 필요합니다. 그렇지 않으면, 큰 자본을 가진 집단이 신분을 위조해서 그들이 가진 자본을 “가난한” 그들의 위조 신원으로 분배함으로써 전체적으로 누진세 시스템(progressive reward system)에서 이익을 보는 구조를 취할 수 있을 것입니다. 그러나 이 문제는 캐스퍼의 범위를 넘어가는 것이고, 앞으로 차차 해결해 나가야 할 부분입니다.

캐스퍼와 관련된 질문들

“캐스퍼가 여러개라 헷갈려요!”
죄송해요! 이 포스팅을 통해 그 부분을 조금 해소하려고 한 거였어요. 다시 정리하자면, 캐스퍼는 이더리움의 PoS 연구 개발 프로젝트들을 묶어서 부르는 말이에요. 나중에는 이 프로젝트들이 하나로 합쳐지겠지만, 프로토콜을 연구하다보면 가장 좋은 방법을 찾을 때 까지는 포크도 하면서 여러 방법들을 시도하게 되잖아요? 원래 일은 간단해지기 전까지는 점점 복잡해지기 마련이니까요 🙂

“캐스퍼가 텐더민트와 다른점이 뭐죠?”
간단히 정리하면 캐스퍼는 생존성(가용성)을 우선으로하는 동시에 일시적인 안전성(정확성)의 저하는 수용한다는 점입니다. 텐더민트는 뛰어난 프로젝트이지만, 체크포인트에서 투표가 2/3 이상 이뤄지지 않으면 체인이 정지한다는 문제가 있습니다. 이 점 때문에 이더리움은 텐더민트와 협업하기보다는 캐스퍼를 연구하고 있는 것입니다.

Vlad Zamfir의 말을 인용하자면:

텐더민트는 안정성보다는 네트워크의 일관성을 우선하는 반면, 캐스퍼는 일관성보다 안정성을 우선합니다(CAP 정리 참조).

텐더민트는 단지 접속이 끊겼을 뿐인 검증인을 검열하는 것을 피하기 위해 접속중인 검증인을 처벌하지 않습니다.

보다 자세한 내용을 확인하시려면: Hudson Jameson이 위 인용문을 설명한 내용, Vitalik과 Jae Kwon이 참여한 레딧에서의 논의, 텐더민트 백서를 참조해주세요.

“😱 현재도 돌아가고 있는 280억달러짜리 라이브 네트워크의 엔진을 바꾸겠다고?”
네, 매우 야심차면서도 걱정도 되는 계획이죠. 그러나 PoS로의 이전은 오래전부터 의도된 방향이자 이 프로젝트의 진행 방향에 대한 철학이기도 합니다. 커뮤니티의 멤버들은 이더리움의 PoS로의 전환을 다들 잘 알고 있었습니다(이더리움 생태계의 참여자들이라면 많은 분들이 알고 계신 이더리움의 빙하기 — PoS로의 전환을 독려하기 위한 PoW체인의 난이도 조절 — 를 참조해주세요).

이런 변경을 말없이 진행할 수도 있겠지만, 이더리움 팀은 테스트 네트워크에서부터 변경을 시작하여 점차 옮겨올 계획입니다. 또, 초기의 하이브리드 방식에서는 PoS 요소가 끼치는 경제적인 — 동시에 보안에 대한 — 영향은 최종적으로 적용 될 “순수한” PoS 합의 방식에 비해 적을 것입니다.

“실제로는 10개 블록을 지나면 거래가 완료된 것으로 처리합니다. 왜 50블록 단위로 에폭을 설정해서 완결성을 검증하는게 중요하죠?”
위에서 다루긴 했지만, 중요한 부분이니까 한 번 더 정리해보죠.

우선, 캐스퍼는 샤딩이 가능하도록 만듭니다.

이 부분은 저도 처음엔 잘 이해가 안됐는데요, 이 부분을 이해하려면 캐스퍼의 배경에 대한 이해가 필요합니다. 이더리움의 목표는 여러가지가 있지만, 그 중 하나가 기술적/환경적으로 확장 가능한 블록체인 솔루션을 제공하는 것입니다. 이더리움은 암호화폐가 지금보다 훨씬 성장하여 세계 경제에서 큰 비중을 차지하는 세상을 만들고자 합니다. 그 비전을 달성하기 위해 캐스퍼는 PoW 채굴로 낭비되는 에너지를 줄이고자 합니다. 그러나 한편으로는 이더리움을 기술적으로 확장하기도 해야 합니다. 이 기술적 확장은 주로 샤딩을 통해 해결하고자 합니다.

현재 네트워크의 각 노드는 모든 일을 합니다. 샤딩은 그러한 각 노드의 책임 부담을 낮추는 방법을 찾기 위한 프로젝트입니다. 샤딩과 관련된 자세한 내용은 이 포스팅의 범위를 벗어나지만, 다음과 같은 질문을 통해 샤딩을 조금은 이해할 수 있습니다. “네트워크 전체가 아니라 일부의 노드만이 거래를 검증하는 새로운 매커니즘을 만들 수 없을까?”

여기서 중요한 부분은, 캐스퍼를 통해 주기적인 완결성이 확보된다면 샤딩을 적용했을 때 보안이 약화될 것에 대한 걱정을 줄일 수 있다는 점입니다.

두번째로, 명시적인 완결성은 블록체인의 일관성을 유지하는데 도움이 됩니다. Vitalik의 말을 인용하자면 다음과 같습니다:

PoW체인에서, 예를 들면 geth/parity 합의 부분에서 체인이 분기되어 두 체인 모두가 계속해서 블럭이 생성되는 경우를 가정해봅시다. 이 경우 거래소는 두 체인 중 한 쪽의 클라이언트를 구동해야 하므로, 갖고있는 자산이 잘못된 체인에 묶여버릴 위험을 지게 됩니다. 그러나 거래소가 캐스퍼에서 부여되는 완결성을 기다린다면, 만약 50 대 50으로 체인이 나뉜 경우라면 어느 체인도 완결되지 않을 것입니다. 즉, 이런 극단적인 상황에도 “잘못된” 내용을 완결하기보다는 “아무것도 완결하지 않는”것을 택함으로써 플랫폼의 안전성을 높이는 것입니다.

정리하자면, 직관과는 반대되지만, 명시적인 완결성은 거래의 완료보다는 블록체인의 확장 및 안전성과 더 관련이 있습니다.

앞으로의 진행

실행 사항

  • FFG와 CBC의 설계 마무리
  • 컨셉을 구현한 코드의 개발
  • 테스트넷에 적용

“하나의 캐스퍼”

캐스퍼 PoS의 최종 상태를 생각해야 합니다. 멋지고 안전하면서 엘레강스한 하나의 캐스퍼를 만들기 위해 FFG와 CBC의 장점들을 어떻게 합쳐야 할까요.

매개변수 최적화

특정 매커니즘에서 원하는 방향으로 인센티브를 부여하기 위해 매개변수와 상수들을 최적화 하는 작업을 진행해야 합니다. 이 작업을 통해 얻은 지식에 기반해 매커니즘 설계를 변경하는 작업을 반복해야 하죠.

커뮤니티 교육

이더리움과 PoS, 그리고 암호화폐 커뮤니티 전체에 여러 연구 진행상황과 연구의 뒷배경에 있는 생각들을 더 많이 공유할 예정입니다.

앞으로의 포스팅 계획

• 캐스퍼의 역사 파트 6
• 캐스퍼를 통해 어떻게 샤딩이 구현될 수 있는지에 대한 자세한 설명
• 캐스퍼가 다른 설계들과 어떻게, 왜 다른지에 대한 자세한 설명
• “예치금”과 “투자한 돈”에 대한 비금전적인 측정 방법 (1000만원이라는 돈은 억만장자보다는 일반적인 사람들에게 상대적으로 더 큰 돈이죠)
• 슬픔 요소(griefing factor) 분석 2.0

용어 정리

이번 포스팅에서 무척 많은 개념들을 다루었는데요, 앞으로도 수많은 크롬 탭을 띄워가면서 자료들을 찾아보시다 보면 자주 보는 용어들이 있을거에요. 여기서는 가장 필요하고 자주 등장하는 개념들을 간단히 정리해두었습니다. 도움이 되었으면 좋겠네요!

Proof of Stake(PoS) — 네트워크의 검증인이 예치한 금액에 기반하는 퍼블릭 블록체인의 합의 알고리즘.

캐스퍼(Casper)— 이더리움의 PoS 연구 프로젝트 이름.

완결성(finality) — 시스템에서 어떤 작업이 완료되면, 그 작업은 번복될 수 없음(Vitalik의 합의 완결성에 대한 논의). 배경: PoW는 확률적이고 암시적(명시적이지 않음)인 완결성을 가짐. 캐스퍼는 완결성을 명시적으로 강제하는 매커니즘을 설계하고자 함.

포크 선택 규칙(fork choice rule) — 포크 선택 규칙이란, 여러 블록들과 메시지들을 입력으로 받아서 어떤 체인이 “올바른”체인인지 클라이언트에게 출력되는 함수로, 클라이언트는 출력을 전달받아서 평가를 함. PoW에서 주로 사용되는 “가장 긴 체인이 올바른 체인이다”가 대표적인 포크 선택 규칙 중 하나.

삭감 조건(slashing conditions) — 네트워크의 규칙을 어긴 검증인을 지분을 삭감함으로써 처벌하는 규칙.

신원 위조 공격(sybil attack) — P2P 네트워크에서 신원을 위조함으로써 평판 시스템을 무효화시키는 공격.

신원 위조 공격을 막기 위한 3 E(3 E’s of Sybil resistance) — 1. 진입 비용(entry cost) 2. 거주 비용(existence cost) 3. 탈퇴에 대한 페널티(exit penalty) (Dominic Williams가 만든 용어).

Nothing-at-stake 문제 — PoS 시스템에서 포크가 발생했을 경우, 검증인은 포크 된 체인 모두를 검증해버리면 손해보는 게 아무것도 없다는 문제가 존재함. PoS의 문제점으로 가장 잘 알려진 문제이자, 해결 가능한 문제로 여겨지고 있음. 예를 들면 삭감(Slasher) 등.

뇌물 공격(bribe attack) — 공격자가 프로토콜의 보안을 저해하기 위해 뇌물을 사용하여 검증인의 게임이론 프레임워크의 내시 균형을 변형시키는 것. (보다 자세한 내용은 캐스퍼의 역사 파트 2를 참조)

장거리 공격(long range attack) — 51% 공격과 같은 매커니즘(더 긴 체인을 만들어서 공격자가 원하는대로 장부를 수정하는 것)이지만, 여섯 블록 전부터 시작하는게 아니라 훨씬 이전(6만블록 전이라거나)부터 조작하는 것.

DAG — “Directed Acyclic Graph(비순환 방향 그래프)”. 순환하지 않는 유한한 방향성을 갖는 그래프. (ETH Stack Exchange)

GHOST — “Greedy Heaviest Observed Subtree”. 보안과 탈중앙화 측면을 타협하는 대신 빠른 검증 시간을 우선 목표로 하는 체인 선택 규칙. (원본 논문, ETH GHOST)

동기성(synchronicity) — 메시지의 시각과 관련된 가정 (동기, 비동기, 부분동기)

생존성(liveness) — “가용성(availability)”. 프로토콜을 따르는 노드들이 언젠가는(eventually) 값을 결정함. 네트워크의 상태가 값을 결정할 수 없는 상황과 반대의 경우 (예: 텐더민트에서 투표가 2/3 이상 모이지 않은 경우).

안전성(safety) — “정확성(correctness)”. 프로토콜을 따르는 노드들이 동일한 값을 도출함. 직관적으로 설명하면, 서로 충돌하는 내용을 담은 두 개의 블록이 체인에 포함될 수 있는지 여부와 관련된 부분.

FLP 불가능 정리 — 비동기 상태(asynchronous)이면서 안전(safe)한 상태로 운영(live)되는 네트워크는 존재할 수 없다 (증명된 바 있음).

책임을 물을 수 있는 장애(accountable faults) — 특정 검증인 또는 검증인 집단에게 책임을 물을 수 있는 장애.

비잔티움 장애 / 비잔티움 행위(Byzantine faults / Byzantine behavior) — 서로 다른 관찰자에게 서로 다른 증상을 보이는 장애를 지칭. 프로토콜을 따르지 않는 행위.

비잔티움 실패(Byzantine failure)합의가 필요한 시스템에서 비잔티움 장애로 인해 시스템 서비스에 발생한 손실.

비잔티움 장애 허용 (Byzantine fault tolerance, BFT) — 시스템이 비잔티움 장애를 견딜 수 있는 능력. 비동기 네트워크에서는 1/3을 비잔티움 행위의 한계로 설정하고, 동기 네트워크에서는 1/2로 설정. (새로운 캐스퍼와 텐더민트를 비롯한 Paxos, PBFT를 포함하는 BFT 합의 알고리즘).

나카모토 합의(Nakamoto consensus) — PoW에 기반한 비트코인같은 방식의 합의 생성 방식. BFT에 기반한 PoS와 대비하여 체인 방식의 PoS를 나카모토 스타일(Nakamoto-style) 합의라고 부르기도 함.

텐더민트(Tendermint) — 일관성에 중점을 두는 PoS 구현 방식. 악의를 품은 행위자가 1/3 이하일 때는 포크가 발생하지 않지만, 검증인 투표에서 2/3 이상의 투표가 진행되지 않으면 체인이 정지하는 단점이 있음.

검증인(validator) — 블록체인의 체크포인트/블록을 검증함으로써 보상을 얻는 주체. PoW의 채굴자 = PoS의 검증인.

검증인 집단(validator set) — 특정 시점의 어떤 체인의 검증인의 집단.

체크포인트(checkpoint) — FFG에서, PoW체인(예: ethash에 기반한 이더리움) 위에 PoS 검증 매커니즘이 덧붙여져 있을 때, 일정한 간격(50블록)을 둔 블록.

에폭(epoch) — 검증인이 블록의 완결성에 대한 투표를 진행하는 간격(FFG에서는 50블록). PoW 채굴자는 블록을 채굴하고 PoS 검증인은 매 에폭마다 체크포인트를 검증.

변동하는 검증인 집단 — 시간이 흐름에 따라 블록체인의 검증인 집단이 변화할 수 있다는 개념. BFT스타일의 합의 알고리즘에서 이 부분을 해결하는 것이 매우 중요한 발전이었음. 텐더민트가 처음으로 해결 방법을 제시하였음. 캐스퍼 역시 이 부분에 대한 연구가 활발히 진행되는 중.

얼버무림(equivocation) — 검증인이 서로 충돌하는 두 메시지를 보내는 행위 (보다 정확한 정의는 이 발표자료의 28번 슬라이드를 참조)

덩클(dunkles) — 지배적인 블록(“올바른” 체인에 생성된 블록)에 지배적이지 않은 블록(“올바르지 않은” 체인에 생성된 블록)의 데이터를 포함시키는 매커니즘. 이 매커니즘을 통해 보다 나은 인센티브 매커니즘을 만들 수 있었으며, Nothing-at-stake 문제를 완화시키는데에 큰 도움이 되었음 (링크)

제안 매커니즘(proposal mechanism) — 집단에 속한 검증인이 블록을 타당성 증명 또는 완결 하자고 건의하기 위한 매커니즘.

타당성 증명(justification) — FFG를 예로 들면, 검증인의 2/3 이상이 새로운 체크포인트에 대해 체크포인트의 기록이 정확하다고 동의하는 것. 이는 체크포인트를 완결하기 위한 중간단계임.

완결(finalization) — FFG를 예로 들면, 검증인의 2/3 이상이 타당성이 증명 된 체크포인트에 대해 체크포인트의 기록이 정확하다고 동의하는 것. 이 단계까지 마치면 체크포인트에 완결성이 부여됨.

상태 전환 시스템(state transition system) — 특정 상태(예: 거래 내역 목록 또는 계좌 목록 등)와 그 상태의 시간에 따른 변화(전환)를 유지하는 시스템. 비트코인, 이더리움, 그 외 퍼블릭 블록체인들은 상태 전환 시스템으로 볼 수 있음.

프로토콜 효용 함수(protocol utility function) — “…프로토콜이 얼마나 잘 동작하는지를 확인할 수 있는 공식으로, 이상적으로는 블록체인 내에서 계산할 수 있어야 함. PoW체인의 경우, 생성된 모든 블록 중 메인 체인에 포함된 블록의 비율로 볼 수 있음. 캐스퍼에서는 프로토콜 효용이 0인 경우 가장 완벽하게 동작하고 있는 것으로 봄. 이는 모든 에폭이 완결되고 아무런 안전성과 관련된 오류가 발생하지 않은 상황으로, 완결되지 않은 에폭이 발생하면 약간의 페널티를 받고, 안전성과 관련된 오류가 발생하면 매우 큰 페널티를 받는다. 프로토콜 효용 함수를 제대로 정립할 수 있다면, 악의적 행위에 대한 페널티를 해당 행위로 인해 프로토콜 효용이 손실된 정도와 비슷하게 설정할 수 있을 것이다.” (피해의 삼각형에서)

(역자 추가) 형식적 검증(formal verification) — 어떤 하드웨어나 소프트웨어 시스템이 의도된대로 동작하는지 여부를 형식 수법(formal method) 또는 수식을 통해 검증하는 것.

결론

“첫걸음” 치고는 새로운 정보가 무척 많긴 했지만, 이정도면 캐스퍼와 관련된 논의에 끼어들 정도의 기초적인 지식과 배경은 갖추신겁니다. 이 포스팅을 쓴 목적은 (1) 캐스퍼와 관련하여 넘쳐나는 정보를 하나로 묶어서 전달하고자, (2) 이더리움 확장(캐스퍼, 샤딩, 가스 가격 설정)과 관련된 암호경제학 연구를 시작하며 저 스스로의 캐스퍼에 대한 이해를 높이기 위해, (3) PoS, 캐스퍼, 이더리움과 관련된 정보를 널리 알리고 논의를 확산시키고자, 그리고 (4) 재능있는 수학자, 경제학자, 컴퓨터 과학자와 개발자들이 이 문제에 뛰어들도록 설득하기 위함이었습니다.

보다 더 자세히 알고 싶으시다면, 포스팅 전반에 걸쳐 소개된 자료들을 보시면서 앞으로의 진행에 참여해주시고, 주변에 있는 수학, 컴퓨터과학, 경제학, 게임이론, 분산시스템 분야의 (암호화폐 생태계에 속해있거나 아직 속해있지 않은) 여러 친구들 이더리움과 캐스퍼에 대해 이야기 해 주세요.

긴 글 읽어주셔서 감사합니다. 이 글이 도움이 되었길 바라며, 궁금하신 부분이나 걱정되는 점, 의견 등이 있으시면 이메일 또는 트위터로 연락해주세요!

--

--