본문 바로가기

블록체인 기초

비트코인 작업증명 (POW: Proof-of-Work)

비트코인 작업증명 (POW: Proof-of-Work)


작업증명(POW)은 새로 생성된 블록을 블록체인에 추가하는 작업을 완료했음을 증명하는 것이다. P2P 네트워크를 사용하는 암호화폐는 해시 함수를 계산해서 블록체인에 새로운 블록을 추가하는 방식으로 화폐를 만들거나 송금을 한다. 작업증명은 이때 사용하는 방법이다. 데이터 무결성이 증명되어 비트코인을 비롯한 수많은 암호화폐에서 이 방식을 사용하고 있다. 비트코인(Bitcoin)은 SHA-256을 기반으로 하는 해시캐시(Hashcash) 방식을 사용하고 있다.


새로운 블록을 블록체인에 추가하기 위해서는 새로 생성된 블록의 블록 해시를 계산해야 한다. 이 블록 해시를 계산할 때 해당 블록의 블록 헤더 정보 중 하나인 논스 값을 계산하여 구해야 하는데, 이 논스(nonce)값을 구하는 것이 작업증명이다. 논스(nonce)를 구하면 보상을 얻게 된다.


작업증명은 컴퓨터 연산능력이 좋을수록 유리하다. 작업량만큼 새로운 블록이 증명되므로, 더 많은 경우의 수를 빠르게 대입하면 보상을 얻을 확률이 높아지기 때문이다. 이에 연산능력을 높이기 위해 고성능의 ASIC, GPU을 사들이는 채굴 팜이 많아졌다.



작업증명 방식은 데이터 효율성이나 전력 소모 측면에서 한계를 보이고 있다. 비트코인은 블록 사이즈의 한계 때문에 초당 약 3~4개의 거래를 처리하고 있다. 카드사에서 초당 수만 개의 거래를 처리한다는 점에 비추어 보면 매우 느린 속도다. 해결책으로 세그윗2x(segwit2x)로 서명과 거래 데이터를 분리하는 방안이 제시되었으나 쉽게 합의에 이르지 못하는 상황이다.


전력 소모 문제도 심각하다. 모든 컴퓨터에 증명을 받아야 하다 보니 많은 에너지를 필요로 한다. 게다가 사용자 규모는 계속 커지고 있어 채굴 난이도도 지속적으로 높아지고 있다. 결국 전체 네트워크의 전력 소모량은 계속 급증할 수밖에 없는 구조다.


데이터 처리량이 많아질수록 속도가 느려지는 문제는 이론적으로 해결할 수 없다. 이에 POI(지분증명), DPoS(지분위임증명) 등의 대안이 제시되고 있다. 그러나 POS나 DPOS도 체인 복제가능성 등의 이슈가 있어 수학적으로 완벽하게 검증되지 않았다는 과제가 있다.





데이터 무결성(data integrity) : 데이터가 변경되거나 파괴되지 않고 보존되는 특성이다. 우연한 사고나 의도적인 공격에도 정확성과 일관성을 지킬 수 있다면 데이터 무결성이 검증되었다고 본다.


작업(mining) : 블록체인에 블록을 연결하기 위해 블록에 담긴 정보들을 검증하는 과정으로, 흔히 채굴이라 표현한다.


ASIC(Application Specific Integrated Circuit) : 반도체 업체에서 사용자의 주문에 맞춰 설계·제작한 주문형 반도체이다. 블록체인에서는 암호화폐 채굴에 특화된 반도체를 이르는 말로, 그래픽 카드 대비 수만 배 이상의 빠른 연산 속도를 갖는다.


GPU(Graphics Processing Unit) : 그래픽 처리장치로, 채굴을 위해 쓰인다. 대표적으로 이더리움이 GPU를 활용해 채굴하고 있다. 이더리움 발명자인 비탈릭 부테린이 전문 채굴업자가 지나치게 많은 이더리움을 소유하여 전체 가치에 영향을 주는 것을 우려하여 ASIC 사용을 막기 위한 장치를 곳곳에 도입하였기 때문이다. 하지만 세계 최대 채굴업체인 비트메인에서 이를 우회하는 ASIC을 개발했다고 발표하여 이더리움 채굴 방식에도 변화가 있을 것으로 보인다(2018년 5월).