블록체인

21.09.18 [합의알고리즘] PoS 지분 증명

슈팅스타제제 2021. 9. 18. 20:15

PoS Proof of Stake 지분 증명 합의 알고리즘 

 

PoS 체인: 이더리움2.0, 퀀텀, 

 

블록 생성 과정

자신의 보유 자산을 lockup하는 transaction을 발생시키면 Validator가 됨. 

이때, Validator는 블록 생성 및 검증에 참여할 수 있는 노드이다.

Validator의 스테이킹 지분(수량, 기간)이 많을 수록 블록 생성 권한이 주어지는 확률 높아짐. 

 

PoS는 블록 생성 기준에 따라 아래와 같은 종류가 있다. 

1. Chain-based PoS

10초 단위의 기간(슬롯)마다 랜덤으로 하나의 validator를 선정할 수 있다.

이 validator가 생성하는 블록은 길이가 가장 긴 체인의 마지막 블록을 가리키며 연결된다.

결과적으로 만들어지는 메인 체인은 보통 단일 체인이다. 

 

2. BFT-style PoS

매 라운드마다 Validator가 랜덤으로 블록 생성 권한이 주어진다. 

모든 validator가 블록에 투표한다. 가장 많이 투표를 받은 블록 기준으로 합의되어 남는다.

Chain-based PoS와 다르게 longest chain의 블록이 아니라 많은 합의를 받은 단 한개의 블록만이 남을 수도 있다. 

→BFT 알고리즘은 따로 정리해야겠다!

 

장점

✔에너지 효율성(PoW보다 반복 연산 줄어듦.)

비잔틴 결함 허용문제를 해결하는데 적합

모든 유효성 검사가 네트워크에 의해 추적되고 지갑 주소의 신원을 알고 있기 때문이다. → 이 내용은 아직 좀 이해안감...

✔분산화 측면에서 PoW보다 우수

51% 해시파워를 가지느냐 vs 51% 자산을 가지느냐 를 따졌을 때

후자가 100배 더 높은 비용이 소모되므로 분산화가 보장된다. 

 

문제점

블록 생성 시간이 느림.

일정 지분을 소유한 모든 노드에게 블록 생성 권한이 주어지기 때문에 투표가 완료되기까지 시간이 걸린다.

이것을 개선한 DPoS 등장

✔Nothing of Stake

포크 상황에서 validator가 나눠진 모든 블록에 지분을 투표하였을 때, 여러 블록에 지분을 증명하거나 잘못된 블록에 지분을 증명할 경우 (포크된 상황에서 유효한 블록에 투표를 해야 하는데 자신을 잃을 게 없으니 둘 다 투표를 하는 경우라고 생각할 수 있다.)

Slash라는 해당 지분이 사라지게 하는 패널티 제도로 해결 가능

 

참고문서 링크

https://steemit.com/kr/@kblock/44-1-pow-pos