마스터링 이더리움(Mastering Ethereum) 14장 - 합의(Consensus)

JinJinJJara·2021년 2월 1일
1

Mastering_Ethereum

목록 보기
11/11

합의

이더리움은 의사결정을 하는 신뢰가능한 중앙 주체가 없는 탈중앙화 시스템이다.
탈중앙화라는 것은 권위적이고 검열을 할 가능성도 있는 중앙 주체가 없다는 장점이 있지만 편리한 방법이 아닌 다른 의사 결정 과정을 통해야 한다는 단점이 있고 여기서 등장한 다른 의사 결정 과정이 합의 알고리즘이다.

합의 알고리즘을 통해 블록체인이 추구하는 것은 중앙주체 없이 규칙을 만들고 합의하는 것이다. 이를 위해서 여러 모델들이 제시되었고 여러 다른 알고리즘 들을 다룰 것이다.

PoW(Proof of work) 통한 합의

PoW는 블록체인의 원조격 기술 중 하나인 비트코인에서 사용된 합의 알고리즘이다.

채굴

PoW에서 핵심 단어는 '채굴'이다. 채굴이라는 단어의 어감이 채굴이 화폐를 만들어 내는 것이 목적이라는 오해를 불러일으키기도 한다. 하지만 블록체인에서 채굴의 목적은 여타 합의 알고리즘과 같은 블록체인을 탈중앙화 시스템에서 안전하게 하는 것이다.
그리고 채굴로 인해 주어지는 보상은 시스템의 안전에 기여한 참여자를 위한 인센티브이다.

PoW 시스템에는 '처벌' 또한 있는데 그는 채굴자가 소요한 전기와 채굴에 쓰인 컴퓨터와 같은 비용이다. 만약 참여자가 규칙을 따르지 않는다면 그들이 채굴에 들인 비용이 빼앗길 수 있기 때문에 참여자는 정직하게 참여할 동기를 얻는다.

PoS(Proof of Stake) 통한 합의

PoS는 지분과 관계있는 알고리즘이다.
PoS에서는 'validator'라는 개념이 있다. 이더리움으로 치면 이더와 같은 암호화폐를 가지고 있는 사람은 validator가 될 수 있다. 이더의 소유자가 자신의 이더를 deposit으로 lock up하는 트랜잭션을 실행하면 validator가 될 수 있고 블록체인은 validator를 관리한다.

validator는 보관한 이더에 비례하는 만큼의 표결권을 얻게 되는데 그들은 이를 다음 유효한 블록에 투표할 수 있다. 만약 투표한 블록이 다음 블록으로 validator에 의해 선택된다면 stake 만큼 보상을 얻게 되고 다수의 validator에 의해 거부된다면 lock up한 이더를 잃게 된다. 따라서 validator는 정직하게 행동하고 합의에 따를 동인을 얻게 된다.

PoS와 PoW의 차이는 PoS의 처벌은 블록체인 시스템 내부에서 일어나고 PoW의 처벌은 시스템 외부의 것이라는 것이다.

이더리움의 PoW 알고리즘 - Ethash

Ethash는 이더리움의 PoW 알고리즘으로 방향성 비순환 그래프(DAG) 데이터 세트의 생성과 분석에 의존한다. DAG의 목적은 Ethash 알고리즘을 자주 접근하는 대규모 데이터 구조 유지에 의존하게 하는 것이다. 이 구조는 ASIC이라는 채굴도구로 채굴을 하기 어렵게하기 위해 만들어졌다.(ASIC은 보통 거대 채굴기업들이 소유를 하고 있기 때문에 이더리움의 개발자들은 ASIC이 GPU보다 채굴을 빨리 한다면 채굴기업들에 의해 중앙화가 일어날 것이라고 생각하였다.)

상대적으로 저사양인 GPU로 채굴이 가능하게 되면서 전세계의 다양한 사람이 채굴에 참여할 수 있게 되었다. 그 결과 비트코인과 같이 ASIC을 소유한 채굴자가 채굴의 대부분을 하는 사태로부터 자유로워졌다. 또, 이더리움은 처음 디자인 했을 때부터 점진적으로 PoS로 전환하는 것을 목표로 삼았기 때문에 대형 채굴자는 이더리움에 관심을 기울이지 않게 되었다.

이더리움의 PoS 알고리즘 - Casper

Casper는 이더리움의 PoS 알고리즘으로 제시된 알고리즘이다. 현재까지 적용되지는 않았으며 두가지 방향으로 개발되고 있다.

  • Casper FFG(Friendly Finality Gadget)
    FFG는 PoW와 PoS 사이에 있는 알고리즘으로 이더리움이 PoS로 가는 과정의 알고리즘이라 생각할 수 있다.
  • Casper CBC(Friendly GHOST/Correct-by-Construction)

FFG와 CBC를 비교하면 CBC가 이론적으로는 더 매력적이지만 FFG가 더 현실적으로 적용하기 쉬어보인다는 것이 있다.

합의 알고리즘의 원칙

  • immutability(과거의 내용을 누가, 어떻게 바꿀 수 있는가)
  • finality(미래의 내용을 누가, 어떻게 바꿀 수 있는가)
  • cost(변화의 비용)
  • decentralization(탈중앙화 정도)
  • 변화가 알려지는 대상, 방법

합의 알고리즘간 비교를 할 때 모든 부분에서 특출난 알고리즘을 찾기 힘들다. 그는 각 알고리즘들이 목적이 다 다르기 때문에 각기 다른 부분에서 뛰어나고 그 부분들은 보통 trade-off 관계에 있기 때문이다.
따라서 '어떤 알고리즘이 좋냐?'라는 질문보다는 '어떤 상황에서 어떤 알고리즘이 좋냐?'라는 질문이 더 합당할 것이다.

profile
갈팡질팡 공부하는 중입니다

0개의 댓글