블록체인 합의 알고리즘 비교

곽태욱·2020년 3월 25일
0

어느 블록을 유효한 블록으로 인정할 것인가는 그 기준이 블록체인마다 다르다. 이 글에선 여러 합의 알고리즘을 비교해볼 것이다.

노드는 블록체인에 참여하는 사람(사용자)이라고 생각하면 된다.

PoW류

Proof of Work

사용자들이 연산을 통해 블록의 해시값을 찾는다. 높이가 같은 여러 블록 후보 중 생성될 확률이 가장 낮은 블록을 유효한 블록으로 인정한다. 쉽게 말하면 블록 해시값 앞의 0의 개수가 가장 많은 블록이 유효한 블록이다.

equilibrium Proof of Work

PoW + 동일한 사용자가 연속으로 2번 이상 블록을 생성하지 못하게 한다. 하지만 한 사용자가 여러 지갑(계정)을 가지고 블록을 생성할 수 있으니 실제로 효과가 있을지 의문이다.

PoS류

Proof of Stake

높이가 같은 여러 블록 후보 중 사용자들이 특정 블록에 자신의 돈을 배팅한다. 돈이 가장 많이, 가장 오래 배팅된 블록이 유효한 블록으로 인정된다.

Delegated Proof of Stake

사용자들은 지분에 비례한 투표권을 얻어 이를 통해 블록 생성자를 선출한다. 블록 생성자만 블록을 생성하거나 합의할 수 있는 권한을 가지고, 그들이 선택한 후보 블록이 유효한 블록으로 인정된다.

Dual Delegated Proof of Stake

DPoS로 블록 생성자의 일부를 선출하고, 노드 중에서 랜덤으로 뽑아 나머지 블록 생성자를 선출한다.

시그마체인은 21개의 블록 생성자 중 17개는 DPos로 선출하고, 나머지 4개는 전체 노드 중 랜덤하게 뽑는다.

Hyper Delegated Proof of Stake

DPoS로 블록 생성자를 선출하지만, 일정 시간 안에 빠르게 반응하고 응답할 수 있는 노드만 블록 생성자가 될 수 있다.

Proof of Stake and Work

PoW + PoS. 높이가 같은 여러 블록 후보 중 생성될 확률이 가장 낮은 블록이면서 돈이 가장 많이, 가장 오래 배팅된 블록이 유효한 블록으로 인정된다.

BFT류

Byzantine Fault Tolerance

어떻게 하면 악의적인 노드가 네트워크를 장악하는 것을 방지할 수 있는지 고안한 방법을 통틀어 이르는 말이다. 어찌보면 모든 합의 알고리즘은 BFT의 일종이라고 볼 수 있다.

Practical Byzantine Fault Tolerance

블록 생성자의 대략 3분의 2이상이 '어떤 블록을 유효한 블록으로 할지' 합의할 수 있으면 그 블록이 유효한 블록으로 인정된다. 이때 3분의 1 이상이 계속 반대하거나 기권하면 합의가 무기한 길어질 수 있다는 단점이 있다.

Delegated Practical Byzantine Fault Tolerance

모든 노드의 투표를 통해 대표자를 선출한다. 그 대표자 중 랜덤으로 블록 생성자가 정해지고, 블록 생성자가 고른 후보 블록을 나머지 대표자의 60%가 동의하면 그 후보 블록이 유효한 블록으로 인정된다.

그 외

Proof of Importance

더 많은 지분을 가지고, 더 많이 거래하고, 더 많은 활동량을 보인 사람에게 블록 생성 권한을 주는 방식이다. 그리고 그 사람이 지정한 후보 블록이 유효한 블록으로 인정된다.

profile
이유와 방법을 알려주는 메모장 겸 블로그. 블로그 내용에 대한 토의나 질문은 언제나 환영합니다.

0개의 댓글