블록체인 네트워크에서 채굴을 하는 방식으로 여러가지 방식이 존재합니다. 어떤 블록이 유효한지 검증하고 새로운 블록을 생성하는 과정에서 누가 블록을 생성하고 검증할 권한을 가지냐가 핵심입니다. 가장 유명한 비트코인의 경우 PoW 방식을 사용하며 Klaytn의 경우 위임지분증명(DPoS) 방식으로 블록을 생성합니다. 이더리움의 경우 PoW 방식에서 캐스퍼 알고리즘으로 이동하면서 PoS 방식으로의 전환을 시도하고 있습니다.
작업 증명(PoW) 방식
Proof Of Work의 약자입니다. 유효한 블록을 생성하고 검증하는데, 가장 많은 해시 파워를 제공했다고 증명하는 방식입니다. 블록체인이 생성되는 과정을 보면 끊임 없는 분기가 발생하는데, 결국은 하나의 메인 체인으로 수렴하게 됩니다. 이 때 어떤 체인이 유효한지를 검증하는 과정에서 고스트 프로토콜(Ghost Protocol)이 사용됩니다.
고스트 프로토콜은 어떤 체인이 가장 긴지 계산할 때 고아블록도 포함합니다. 따라서 네트워크 보안 손실을 최소화 합니다. 어떤 블록이 가장 큰 작업증명을 가졌는지 계산하면서 부모 블록과 함께 고아 자손 블록까지 더하면서 손실을 최소화 합니다.
작업증명 방식의 대표적인 코인으로는 비트코인, 비트코인 캐시가 있습니다. 작업 증명방식을 사용해 트랜잭션이 발생할 경우 해당 트랜잭션과 블록이 유효한지 검증하는 역할을 담당합니다.
작업증명에서 논스를 찾는 방법
작업증명에서 해시 파워를 증명하기 위해서 해시 퍼즐을 풀게 됩니다. 해시 퍼즐은 특정한 조건 보다 낮은 값(Nounce)를 찾아내는 과정입니다. 무작위로 논스를 대입하면서 SHA-256 알고리즘을 사용하게 되며, 논스값을 찾은 컴퓨터를 제외한 다른 컴퓨터들이 사용한 해시 파워는 그대로 낭비되어버립니다. 해시 파워가 높을 수록 블록을 생성 및 검증할 권한을 쉽게 얻을 수 있습니다.
작업 증명 방식에서 유효한 논스값을 찾기 위해서 아래 식을 풀어야 합니다. 블록 헤더 값의 논스와 이전 블록의 해시 그리고 트랜잭션들을 담아 해시 함수를 돌리고 그 결과값이 네트워크 난이도 목표값보다 작아지는 논스를 찾아야 합니다.
※ 작업 증명(PoW) 방식
N : 논스(Nounce) 값
P_Hash : 이전 블록 해시 값
Tx : 볼록 트랜잭션
Target : 네트워크 난이도 목표값
Hash(N || P_Hash || Tx || Tx || ... Tx) < Target
작업 증명 방식의 장점
작업증명(PoW) 방식의 가장 큰 장점은 보안성입니다. 블록체인 네트워크를 공격하는 51% Attack을 어느정도 방어할 수 있습니다. 악의적인 노드가 생성한 체인을 받아들이기 위해서는 51%이상의 노드가 합의를 해야 하는데, 나머지 노드들이 제공한 해시 파워를 넘어서기에는 천문학적인 비용이 들어가기 때문에 보안성이 높아집니다.
작업 증명 방식의 단점
작업 증명 방식의 최대 단점은 에너지 낭비 입니다. 현재 비트코인 채굴에 필요한 연간 전력량은 133 테라 와트/h로 대한민국 연간 전력사용량의 1/4 수준입니다. 블록 생성 권한을 얻은 노드를 제외하고 나머지 노드들의 해시 파워가 그대로 낭비되는 점이 가장 큰 문제점 입니다.
또한 마이너들이 풀을 만들어 함께 채굴하는 과정에서 이들이 제공하는 해시파워가 네트워크 51%를 넘어서버리면 전혀 다른 체인을 메인 체인으로 선택하는 담합 문제도 무시할 수 없습니다. 이는 블록체인의 정신인 탈중앙화에서 멀어지게 만드는 요인입니다.
비트코인 작업 증명 알고리즘
- 비트코인 네트워크에서 이전 블록의 헤더값을 얻습니다.
- 브로드캐스트 세트를 제안할 블록에 트랜잭션을 넣습니다.
- 이전 블록 헤더 값을 Double 해시하고 논스와 함께 새로 제안된 블록을 SHA256 알고리즘으로 결합합니다.
- 결과 해시값이 타겟 난이도보다 작아질 때 까지 논스값을 변경하며 반복합니다. 이 과정이 PoW입니다. PoW가 성공하면 해당 논스를 합친 블록을 네트워크에 브로드캐스트하고 채굴 노드는 보상을 받습니다.
작업증명 방식을 사용하는 블록체인 네트워크
지분 증명(PoS) 방식
Proof Of Stake의 약자입니다. 말 그대로 보유하고 있는 암호화폐 지분량에 따라 의사결정 권한을 제공하는 합의 알고리즘입니다. 암호화폐를 예치하는 스테이킹(Staking)을 통해 블록을 생성합니다. 마치 주식회사에서 이사회들이 지분에 따라 투표하는 것 처럼 암호화폐 지분의 크기에 따라 블록을 검증할 노드로 선택될 확률이 올라가게 되며 블록형성 권한과 거래 수수료를 보상받게 됩니다.
지분 증명 방식(PoS)의 장점
① 친환경적인 시스템
PoW처럼 무의미하게 논스값을 찾기 위해 해시 파워를 제공하지 않아도 됩니다. 따라서 친환경적이라고 할 수 있는 합의 알고리즘입니다.
② 인센티브 제공
채굴자들과 암호화폐 보유자들의 이해관계를 하나로 맞출 수가 있습니다. 지분이 많을 수록 그리고 오래 가지고 있을 수록 보상을 받을 확률이 올라가므로, 보유자와 채굴자의 이해관계가 맞아떨어집니다.
③ 탈중앙성 확보
PoW 방식의 경우 채굴 풀들이 해시파워를 모아 51% 공격이 가능해집니다. 반면 지분 증명(PoS)의 경우 PoW에 비해 중앙화를 방지하고, 탈중앙화를 만드는데 적합한 알고리즘 대안이 될 수 있습니다.
지분 증명(PoS) 단점
지분 증명 또한 단점을 가지고 있습니다. 먼저 체인 선택에 대한 해결책만을 내놓고 있으므로, 그외 문제들에 대해서는 명확한 해결책이 제시되지 않았습니다. 또한 암호화폐 보유량에 따라 신규 암호화폐를 배당하는 방식이므로, PoW와 유사하게 중앙화가 되는 현상을 배제할 수 없습니다.
지분 증명 방식에서는 Nothing at Stake Problem이 발생할 수 있습니다. 즉 모든 노드들이 제한 없이 여러 블록에 자신의 지분을 가지고 증명할 수 있으므로, 만약 악의적인 노드가 두개의 블록에 대해 모두 증명해놓아 버리면 새로 참여한 검증자는 어떤 블록이 정상적인 블록인지 구별할 수 없게 되어버립니다.
캐스퍼 알고리즘(Casper Algorithm)
이더리움 블록체인은 PoW에서 PoS로 전환을 시도하고 있습니다. 먼저 1%를 PoS로 전환하고 점차 그 비중을 늘려가는 방법을 선택합니다. 이 과정에서 난이도 폭탁이 터지도록 설계함으로써 PoW에서 자연스럽게 PoS로의 전환을 시도하고 있습니다. 기존 코인이 또 다른 코인으로 분기되는 것을 막기 위한 고육책입니다.
캐스퍼 프로젝트는 이더리움에서 PoW->PoS로 전환하는 프로젝트를 의미합니다. 캐스퍼 CBC 사양으로 구축된 최초 라이브 베팅 증거 블록체인 입니다. 캐스퍼 알고리즘이 기존 PoS와 다른점은 악의적인 검증인들을 처벌하는 시스템에 있습니다.
검증인들은 블록 검증시 자신의 이더 지분을 맡겨야 하고, 체인이 연결될 것으로 보이는 블록에 원하는 만큼 베팅을 시전합니다. 만약 베팅한 블록이 채택되면 베팅한 만큼 보상을 얻게 됩니다. 만약 Nothing at Stake 문제를 일으키면 맡겨놓은 이더 지분을 몰수당하게 됩니다.
지분 증명 방식을 사용하는 블록체인 네트워크
위임 지분 증명(DPoS) 방식
Delegated Proof Of Stake의 약자입니다. 암호화폐 보유자들은 자신의 지분률에 따라 투표를 통해 대표자를 뽑습니다. 선발된 대표자들은 합의를 통해 블록을 생성하는 의결정을 내리는 합의 알고리즘입니다. 지분 증명이 암호화폐를 가진 모든 노드가 참여할 수 있는 반면, 위임지분 증명 합의 알고리즘에서는 선택된 노드만 블록 생성 권한을 할 수 있습니다. 현대의 대의 민주주의와 유사한 방식으로 거버넌스를 운영하게 됩니다.
위임 지분 방식에서 대표자가 되기 위해서는 투표를 거쳐야 합니다. 선출된 노드들이 대표자가 될 수 있으며, 대표자들끼리 모여 블록을 생성하는데 이 때 2/3 이상의 대표자들이 합의를 해야 블록이 승인되게 됩니다. 대표자의 지위는 일정 시간 후 블록 셋업에 참여하면 유지가 됩니다.
위임 지분 증명(DPoS) 의 장점
지분 증명(PoS)와 달리 선출된 몇몇의 대표자들이 합의를 진행하므로 TPS가 높다는 장점을 가지고 있습니다. 새로운 트랜잭션을 검증하는데 그만큼 적은 시간이 소요됩니다.
또한 지분을 적게 들고 있는 보유자들도 투표를 통해 대표를 선출하면서 블록 생성에 간접적으로 참여할 수 있고, 이로써 작더라도 보상을 얻을 수 있게 됩니다.
위임 지분 증명(DPoS)의 단점
위임 지분 증명 방식의 가장 큰 단점은 탈중앙화 가치가 없어진다는 점입니다. 소수의 선출된 대표자들이 블록 생성/검증 권한을 가지면서 중앙집중식 네트워크의 형태를 띄기 때문입니다. 만약 선출된 대표자 노드가 해킹당하면 네트워크 보안이 위협당하게 됩니다.
또한 대표자로 선출되기 위해 투표를 진행해야 하는데, 이 때 익명성을 잃어버리게 됩니다. 대표자에 대한 정보를 밝혀야 피투표권을 가지게 되기 때문입니다.
위임 지분 증명 방식을 채택한 블록체인 네트워크
'Blockchain' 카테고리의 다른 글
[Blockchain] 이더리움 Geth 설치 방법(Ubuntu Docker) (0) | 2022.07.05 |
---|---|
[Blockchain] 클레이튼(Klaytn) 블록체인 이란? (0) | 2022.07.04 |
[Blockchain] 채굴(Mining)이란? (0) | 2022.07.04 |
[Blockchain] 프루닝(Pruning)이란? (0) | 2022.06.29 |
[Blockchain] IPFS(InterPlanetary File System)란? (0) | 2022.06.29 |
댓글