확률적 지분증명 편집하기
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
[[파일:로커스체인 글자.png|썸네일|300픽셀|'''[[로커스체인]]'''(Locus Chain)]] | [[파일:로커스체인 글자.png|썸네일|300픽셀|'''[[로커스체인]]'''(Locus Chain)]] | ||
− | '''확률적 지분증명'''<!--확률적지분증명, 확률적 지분 증명-->(SPoS; Stochastic PoS; Stochastic Proof of Stake)이란 합의에 참여할 커미티를 | + | '''확률적 지분증명'''<!--확률적지분증명, 확률적 지분 증명-->(SPoS; Stochastic PoS; Stochastic Proof of Stake)이란 합의에 참여할 커미티를 랜덤하게 선출하되 코인 보유량 등에 비례하여 선출될 확률이 높아지는 [[합의 알고리즘]]이다. 이것은 [[알고랜드]](Algorand)의 무허가형 순수지분증명방식과 유사한 알고리즘으로서 '실사용 암호화폐'를 목표로 하고 있는 '''[[로커스체인]]'''(Locus Chain)이 채택한 방식으로 알려져 있다. 합의에 참여할 수 있는 노드를 미리 정하는 [[이오스]]의 [[위임지분증명]]과 달리 로커스체인의 확률적 지분증명은 코인 보유량, 최근 투표 참여 횟수, 네트워크 참여도 등에 따라 매 라운드마다 새로운 커미티를 랜덤하게 선출하기 때문에 로커스체인은 이것을 통해 높은 수준의 탈중앙화를 이룰 수 있다고 주장한다. 합의에 참여할 노드(프로포저, 밸리데이터)를 특정하거나 미리 예측할 수 없으므로 악의적 공격에 의한 조작이 어려워져 합의결과의 공정성과 네트워크의 안정성(security)이 확보되는 장점이 있다. |
== 개요 == | == 개요 == | ||
10번째 줄: | 10번째 줄: | ||
=== 지분량 계산 === | === 지분량 계산 === | ||
− | 로커스체인은 코인 | + | 로커스체인은 코인 보유량 뿐만이 아니라 최근 투표 참여 횟수, 네트워크 참여도(온라인 시간) 등에 기반해 지분량을 측정한다. 지분량이 높은 노드가 시스템 유지에 높은 기여를 하는 구조인데 로커스체인의 어카운트는 자기 지분량을 다른 어카운트에 위탁(delegate)할 수 있다. 이를 통해, 네트워크에 항상 접속하지 않는 어카운트도 자신의 지분량을 유효하게 활용할 수 있다. 노드의 지분량은 해당 노드의 대표 어카운트가 가진 자기 지분량과 다른 어카운트로부터 위탁받은 지분량의 합계가 된다. |
=== 선출 방식 === | === 선출 방식 === | ||
20번째 줄: | 20번째 줄: | ||
* '''상태 선택 투표 단계''': 라운드 상태 제안 단계가 수행되면 샤드 내에는 라운드 상태 제안 커미티 만큼의 상태 제안 패킷이 발생한다. 라운드 상태 투표는 이 제안 상태 중 하나를 선택하여 고르는 단계이다. 투표 노드가 제안을 선택하면, 선택된 제안을 사용하여 선택 투표 패킷을 구성, 서명하여 브로드캐스트한다. | * '''상태 선택 투표 단계''': 라운드 상태 제안 단계가 수행되면 샤드 내에는 라운드 상태 제안 커미티 만큼의 상태 제안 패킷이 발생한다. 라운드 상태 투표는 이 제안 상태 중 하나를 선택하여 고르는 단계이다. 투표 노드가 제안을 선택하면, 선택된 제안을 사용하여 선택 투표 패킷을 구성, 서명하여 브로드캐스트한다. | ||
− | * '''상태 확정 투표 단계''': 투표인단 커미티는 각 투표 노드가 발행한 투표 패킷을 수신하여, 각 제안에 대한 투표수를 집계한다. 만약 어떤 한 상태 해쉬값이 투표 노드의 2/3+1이상의 투표수를 모은 경우, 그 상태 해쉬값은 해당 라운드의 최종 상태로서 확정되었다 볼 수 있다. 각 커미티 노드는 투표 패킷을 수신하여, 한 상태 해쉬값이 전체 투표노드 2/3+1이상의 투표수를 수신한 순간 해당 제안을 확정으로 판단, 이에 대해 다시 서명을 실시하여 확정 투표 패킷을 구성, 공유한다. 이 확정된 투표 정보에는 참여한 여러 투표 노드의 서명이 [[ | + | * '''상태 확정 투표 단계''': 투표인단 커미티는 각 투표 노드가 발행한 투표 패킷을 수신하여, 각 제안에 대한 투표수를 집계한다. 만약 어떤 한 상태 해쉬값이 투표 노드의 2/3+1이상의 투표수를 모은 경우, 그 상태 해쉬값은 해당 라운드의 최종 상태로서 확정되었다 볼 수 있다. 각 커미티 노드는 투표 패킷을 수신하여, 한 상태 해쉬값이 전체 투표노드 2/3+1이상의 투표수를 수신한 순간 해당 제안을 확정으로 판단, 이에 대해 다시 서명을 실시하여 확정 투표 패킷을 구성, 공유한다. 이 확정된 투표 정보에는 참여한 여러 투표 노드의 서명이 [[슈노르]](Schnorr) 서명 등의 방법으로 복수 부여되게 된다. 샤드 내의 모든 노드는 충분한 숫자의 커미티 노드가 서명한 확정된 투표 정보를 수신하면, 해당 제안이 확정된것으로 보고 합의를 완결짓는다. |
{{각주}} | {{각주}} |