2019년 4월 5일 금요일

PoW

PoW(Proof of Work:작업증명)는 비트코인의 창시자인 나카모토 사토시(Satoshi Nakamoto)가 비트코인에 대한 이야기를 담은 논문,
Bitcoin: A Peer-to-Peer Electronic Cash System에서 처음으로 제안한 비잔틴 합의 알고리즘입니다.

[Bitcoin Blockchain 백서 참조]

블록을 찾기 위해 다량의 계산을 요구하는 데이터로 비트코인에서 채굴자들은 전 네트워크에 걸쳐 설정된 목표값
즉, 난이도 목표값을 충족하는 SHA 256 알고리즘에 대한 수치적 솔루션을 찾아내야 합니다.  
난이도는 주어진 목표치 아래에서 해시를 찾는데 주어지는 척도로 블록의 생성 시간을 기준으로 조절이 됩니다.
BTCD 소스 코드를 보면 환경변수 값으로 블록 난이도 인자, 난이도 재설정 블록 개수, 블록 생성 주기를 받고,


위와 같은 공식으로 난이도를 재설정하여 블록생성 주기를 조절합니다.
쉽게 정리하면, 10분마다 블록을 생성한다는 게 블록을 시간 주기로 생성하는 개념이 아니라,
블록들의 평균 생성시간이 10분이라는 의미로 블록이 빨리 생성될 경우
난이도 값 조절을 통해서 다음 블록은 늦게 생성된다는 것을 의미합니다.
작업증명 방식도 한계점은 존재합니다.
우선 블록을 생성할 때마다 암호화된 값을 찾아야 하므로 많은 양의 컴퓨터 자원을 소모해야 합니다.
뿐만 아니라 마이닝 파워의 51%를 장악하면 원하는 방향으로 블록체인 데이터를 조작할 수 있다는 51% 공격의 위험이 있습니다.

댓글 1개:

  1. 향후 51%공격 혹은 그 이외의 합의 알고리즘에 대한 부분들은 연재 하실 계획 없으신가요?

    답글삭제