합의 알고리즘 개념
블록체인 사용자라면 누구나 데이터를 입력, 변경 또는 삭제할 수 있기 때문에 제 3의 신뢰기관(TTP: Trust Third Party)없이 신뢰성 있는 거래를 하기 위한 근간 기술인 합의 알고리즘의 사용이 필수적입니다. 합의 알고리즘을 이용하면 권한이 있는 사용자끼리의 특정 메커니즘 동작 후 블록체인에 저장되는 데이터의 신뢰성을 보장받을 수 있습니다. 이로 인해 블록체인의 상태가 안전하게 업데이트되고 유지되어 블록체인 내의 데이터 무결성이 보장됩니다.
PoW (작업 증명 방식)
- 네트워크 내의 노드들은 이전 블록 헤더의 해시값과 nonce를 연결한 값을 해시연산하여 특정한 값 x를 찾는 연산을 수행합니다.
- Nonce는 최초 0부터 시작하여 조건을 만족하는 해시값을 찾을 때까지 1씩 증가하는 32-bit의 수이고, x는 몇 개의 0으로 시작되는 256-bits의 수입니다.
- 해시연산의 특성 상 역연산이 어렵기 때문에 x를 찾기 위해서는 nonce를 변화시키면서 순차적으로 대입하여 연산하는 과정이 필수적으로 요구됩니다. 이러한 과정 때문에 컴퓨팅 파워가 높은 노드일수록 블록 생성에 걸리는 시간은 줄어듭니다.
- 해시 연산을 h(.)로 표시할 때 (1)과 같은 조건을 만족한다면 n번 째 블록에 대한 증명 작업이 완료됩니다.
PoS(지분 증명 방식)
- 계산능력이 아닌 화폐의 보유량에 따라 각 노드의 합의 결정권이 달라집니다.
Hash (Hash (Bprev), A, t) <= bal(A) M/D
- 만약 노드A가 가진 화폐 보유량이 bal(A). t를 타임스탬프. D를 난이도 조정값이라고 하면 해당 식 조건을 만족할 때 블록n에 대한 합의 권한이 노드 A에게 주어집니다.
- 일반적으로 블록체인을 공격하기 위해서는 공격자가 네트워크의 51% 이상을 점령해야 하는데 PoS를 사용하면 총 화폐 보유량 중 51% 이상을 가지고 있어야 공격이 가능하므로, PoW를 사용할 때보다 해커 입장에서 공격에 드는 비용이 매우 증가하여 보안성이 같이 높아진다는 장점을 가집니다.
- 이러한 특징 때문에 최근 이더리움에서는 합의 알고리즘을 PoW에서 PoS로 바꾸려는 움직임이 나타나고 있습니다.
- 조건을 만족할 때 블록n에 대한 합의 권한이 노드 A에게 주어집니다.
DPoS (Delegated Proof of Stake, 위임된 지분 증명 방식)
- PoS가 일정한 지분을 가진 모든 노드에게 블록생성 권한을 주었던 반면, 비트쉐어에서 사용하는 DPoS에서는 네트워크를 구성하는 모든 노드들의 추표 결과에서의 상위 101개의 노드에게만 권한을 부여하여 합의에 대한 권리를 위임합니다.
- 투표에 의해 선출된 대표자들의 신뢰를 바탕으로 블록을 생성하기 때문에 합의에 걸리는 시간과 비용이 적게 소요되고, 단위 시간동안 생성되는 블록의 개수도 PoW와 PoS에 비해 상대적으로 많습니다.
n(Voter A) > n(Voter al) / 2
- 만약 어떠한 블록체인 네트워크에서 노드 A가 대표자가 되기 위해서는 식 조건 만족해야합니다. n(Voter A)는 노드 A를 대표자로 선출한 사용자의 수, n(Voter al)은 투표에 참여한 사용자의 수를 의미합니다.
- 대표자들은 매 차수마다 임의로 배정되는 순서에 따라 블럭을 만들어 블록체인에 추가할 수 있는 권한을 가집니다.
- 또한, 대표자간의 투표에 의해 악의의 사용자로 선출된 노드는 블록체인 네트워크에서 추방시킬 수 있어 블록체인 네트워크를 유지하는데 도움을 줄 수 있습니다.
- 하지만 블록 내의 발신자, 수신자, 잔고 등은 바꿀 수 없습니다.
참고
'Infra > BlockChain' 카테고리의 다른 글
IBM HyperLedger Fabric 자료 정리 (1) | 2024.04.25 |
---|---|
HyperLedger Fabric 1.4 설치 (0) | 2024.04.24 |
HyperLedger Fabric 1.4 Fabcar 실습 (0) | 2024.04.24 |