합의 알고리즘(Consensus Algorithm)

taeheeyoon·2022년 8월 6일
4

Blockchain 이론

목록 보기
7/14
post-thumbnail

시작하며

합의 알고리즘(Consensus Algorithm)이란, 다수의 참여자들이 통일된 의사결정을 하기 위해 사용하는 알고리즘을 말합니다. 합의 모델, 합의 방식, 합의 메커니즘 또는 합의 프로토콜이라고도 불립니다.

블록체인 시스템의 경우 네트워크에 참여하는 모든 참여자들이 동일한 데이터를 복사하여 분산 저장하기 때문에 원본과 사본의 구별이 없으며, 통일된 의사결정을 내릴 수 있는 권위 있는 중앙(Center)이 존재하지 않습니다.

다시 말해, 블록체인의 데이터는 중앙화된 서버 대신 전세계에 흩어져 있는 수많은 노드에 보관되기 때문에, 각각의 노드들은 블록에 기록하는 데이터가 위변조되지 않은 원본이라는 것이라는 것을 상호간에 합의하는 과정이 필요합니다. 만약 블록을 생성하는, 특정 노드가 악의를 품고 조작된 데이터를 저장하거나 네트워크에 전파한다면 시스템 전체의 신뢰도가 떨어질 것 입니다. 이런 악의적인 상황의 발생하더라도 네트워크를 올바른 방향으로 이끌고자하는 다수의 노드들이 상호 검증을 거쳐 올바른 블록 생성을 이끌어내는 프로세스와 알고리즘을 바로 합의(Consensus)라고 합니다.

작업 증명(PoW, Proof of Work)

작업 증명은 최초의 블록체인인 비트코인을 창시한 사토시 나카모토(Satoshi Nakamoto)가 제안한 합의 알고리즘으로, 블록생성 시간동안 가장 많은 해시파워를 제공한 노드가 블록을 생성할 수 있도록 설계가 되어있습니다. 이 기법은 비트코인, 라이트코인(Litecoin) 등 여러 암호화폐 블록체인에서 사용 됩니다.

블록을 생성하기 위해 논스(Nonce)라는 임의의 값을 맞히는 과정을 마이닝(Mining, 채굴)이라고 부르는데, 블록체인 네트워크에 전송된 암호화된 거래정보를 새로운 블록에 담고, 새로운 블록을 체인에 연결하는 작업을 완료했다는 것을 증명하는데 사용되는 컴퓨팅 파워라고 이해할 수 있습니다. 작업 증명에서는 브랜치가 생긴 경우 가장 긴 블록체인이 남을 때까지 서로 경쟁하여 이긴 브랜치가 최종적인 브랜치로 채택이 되며, 다른 브랜치는 버려집니다.

작업 증명은 현재 시빌 공격(Sybil Attack)과 같은 블록체인 네트워크에 대한 각종 공격을 막을 수 있다고 증명된 유일한 알고리즘입니다.

그러나 작업 증명에도 단점이 있습니다. 가령, A, B, C가 동시에 채굴을 시작했고 C가 채굴에 성공했습니다. 만약 A와 B가 찾는 논스에 90% 근접했다고 하더라도, 지금 찾는 논스의 값을 계속 찾는 것보다는 새로운 블록을 채굴하는 게 더 효율적입니다. 따라서 채굴에 성공한 하나의 노드를 제외한 나머지 모든 노드들은 에너지 자원을 낭비할 뿐입니다. 이것이 작업 증명의 가장 큰 단점입니다.

PoW의 특징
장점- 현재 높은 시장 가치를 형성하고 있는 주류 코인들이 채택하고 있습니다.
- 강력한 보안성을 제공합니다.
- 서비스 남용을 쉽게 방지할 수 있습니다.
단점- 높은 전력 소모를 통해 자원을 낭비합니다.
- 지속적으로 해시파워를 유지해야 합니다.
- 특정 마이닝 세력의 해시 독점으로 인한 생태계 교란 우려가 있습니다.

지분 증명(PoS, Proof of Stake)


지분 증명 알고리즘은 노드 또는 사용자가 시스템에 충분한 지분을 갖고 있다는 아이디어에서 출발합니다. 즉, PoS는 지분을 많이 가지고 있는 노드에게 블록을 생성할 권한을 줍니다. 작업이 아닌 더 많은 지분(해당 코인)을 가지고 있을 수록 그에 비례하여 블록에 기록할 권한이 더 많이 부여된다는 개념입니다.

채굴자에게는 마치 이자와 같은 방식으로 코인이 지급되며, 일정 수 이상의 코인을 보관하고 있는 지갑을 블록체인 네트워크에 연결시켜놓기만 하면 보상을 받을 수 있습니다. 블록 생성자와 지분 생성자의 이해관계를 일치시킴으로써 블록을 나쁜 의도로 생성할 동기부여를 없애며, 잘못 생성할 경우 패널티를 부여합니다.

PoW보다 에너지 소모가 적고, 코인을 가진 노드 누구나 네트워크에 허가없이 참여하기 때문에 분산화가 더 잘 되어 많은 노드가 의사결정 과정에 쉽게 참여할 수 있는 이점이 있습니다.

현재 이더리움은 작업 증명 방식에서 지분 증명 방식으로 합의 알고리즘을 변경하려 합니다.

PoS의 특징
장점- 해쉬파워가 많이 필요하지 않으므로 경제적이며 친환경적입니다.
- 블록 생산자의 탈중앙화로 안정성을 확보할 수 있습니다.
- 블록을 생성하기 위해 지분을 담보로 잡아야하기 때문에 Dumping을 방지할 수 있습니다.
단점- 아직 검증되지 않았기 때문에 보안성이 강한지 확인되지 않았습니다.
- 지분이 많은 고래들이 권력을 독점할 가능성이 존재합니다.

위임 지분 증명(DPoS. Delegated Proof of Stake)

위임 지분 증명은 PoS에서 변형된 것으로, 시스템의 지분을 가진 각 노드가 투표를 통해 트랜잭션의 유효성 검사를 다른 노드에 위임하여 증명하는 개념입니다. 이오스(EOS)에서 사용이 됩니다.

이오스(EOS)는 위임지분증명(DPoS) 방식을 사용하는 제3세대 암호화폐입니다.

모든 노드의 자격을 가진 주주들이 블록생성에 참여하는 대신, 네트워크의 모든 노드의 투표 결과로 선출한 '상위 노드'(스팀에서는 증인, Witness이라 함)에게 권한을 위임해 합의하도록 하는 방식입니다. 일정 수의 증인들(스팀은 20명, EOS는 21명)은 모든 권한을 위임 받아 블럭 생성을 담당합니다. 이는 미국 대선의 대의원 제도 같은 간접선거 방식에 비유할 수 있습니다.

댄 라리머는 DPoS 를 사용하는 그라핀(Graphene) 엔진을 토대로 스팀과 빗쉐어를 만들고 이에 대한 성능을 증명했습니다. DPoS는 합의에 참여하는 노드의 수가 한정되어 있기 때문에 매우 빠른 성능과 확장성을 보이고 있지만, 완전히 탈중앙화된 블록체인이 아니라는 비판을 받고 있기도 합니다.

PoS의 특징
장점- POS에 비해 많은 트랜잭션을 빠르게 처리가능합니다.
- POW에 비해 비용이 낮습니다.
- 하드포크의 위험이 낮습니다.
- 증인들이 투표에 참여할 인센티브가 분명합니다.
단점- 증인끼리 손쉽게 담합할 위험이 있습니다.
- 공개된 소수의 증인에 대한 디도스(DDoS) 공격 위험이 있습니다.

비잔틴 장애 허용(BFT. Byzantine Fault Tolerance)

비잔틴 장애 허용(BFT. Byzantine Fault Tolerance)이란, 장애가 있더라도 전체의 3분의 1을 넘지 않는다면, 시스템이 정상 작동하도록 허용하는 합의 알고리즘입니다.
블록체인의 분산원장 체계가 제대로 돌아가기 위해서는 원장을 공유하는 참여자들이 정직하게 행동해야 하며 이를 보장할 방법이 있어야 합니다. 만약 악의적인 노드가 존재하여 누군가 속이려 들더라도 모두가 지닌 원장은 같은 내용을 유지해야 하는 방법 또한 존재해야 하는데, 이런 골칫거리가 비잔틴 장군의 문제입니다. 자세한 개념은 다른 콘텐츠에서 상세히 설명합니다.

프랙티컬 비잔틴 장애 허용(PBFT. Practical Byzantine Fault Tolerance)

프랙티컬 비잔틴 장애 허용(PBFT, Practical Byzantine Fault Tolerance)은 네오, 질리카, 하이퍼레저, R3, ITC, 텐더민트 등에서 사용하는 합의 알고리즘입니다. 이 기술은 여러 노드로 구성된 네트워크에서 악의적 공격을 방어하기 위해 만들어졌습니다. 자세한 개념은 다음 유닛에서 상세히 설명합니다.

합의 알고리즘의 종류와 장단점

참고자료

Consensus -Wikipedia
Consensus in Distributed Systems

profile
생각하는 대로 살지 않으면, 사는 대로 생각하게 된다.

0개의 댓글