작업증명(Proof of Work)
금융기관을 통해 관리되고 있는 전통적인 금융 거래 기록 방식은 여러 문제를 가지고 있는데 그중 거래자 이외에 신뢰성 있는 제삼자(금융기관)가 반드시 필요하다는 근본적인 문제도 포함된다. 이에 반해 암호화 화폐 거래의 경우에는 거래자 스스로가 금융기관의 역할을 할 수 있다.
블록체인 기록을 다운로드하면 블록체인 P2P 네트워크의 일원이 될 수 있다. 이 기록을 가진 사람들은 노드(Node)라고 불리며 각자가 금융기관 역할을 한다. 블록체인 방식에서는 과반수의 노드가 동의한 경우에만 기록으로서 영구적으로 장부에 기록되는 시스템을 가지고 있다.
쉽게 생각하면 투표를 떠올릴 수 있는데 한 명이 하나의 투표권을 가지는 선거제도와는 달리 블록이 생성되는 합의과정에서는 가장 많은 '작업(Work)'을 한 노드(가장 긴 체인)가 어느 기록이 참인지 결정할 수 있는 권한을 더 많이 가지게 된다. 이를 '작업증명(Proof of Work)'라고 한다.
채굴(Mining)
블록체인을 채굴한다는 것은 블록체인에 거래 내역을 기록하는 것이라고 할 수 있다. 그 과정을 좀 더 자세히 설명하면 다수의 거래내역(트랜잭션)을 모아 하나의 새 블록을 구성하고, 그 블록을 대표하는 해시값인 블록해시를 생성하는 것을 의미한다. 앞서 언급했듯이 만약 1000명의 참여자들이 거래를 하고 있다면 1000명의 참여자들은 모든 거래내역을 기록한 장부를 각자 보관하고 있다. 이 중에서 거래 내역을 기록해 주는 사람에게는 일을 수행한 대가로 디지털 자산(코인)을 지급해 주는데 이를 '채굴(Mining)'이라고 한다. 이 때문에 많은 사람들이 채굴을 하려고 하는 것이다. 하지만 블록 생성은 한 사람만 수행하면 되기 때문에 다수가 장부의 기록을 원할 경우 어려운 연산 문제를 풀도록 하고 처음으로 해답을 내놓는 사람이 블록을 생성할 수 있도록 조건이 만들어져 있다. 이는 결과적으로 다른 사람보다 빠르게 연산하기 위한 장비 구매로 이어져 관련 컴퓨터 부품의 가격 상승을 야기시켰다.
정리하면 채굴은 블록 생성과 검증 두 가지 역할을 한다고 할 수 있다. 채굴자는 블록체인이라는 거래 장부에 거래를 기록하고(블록 생성), 그것을 모두에게 공개하는 방식으로 블록을 검증하고 거래의 정당성을 증명해 내는 역할을 해서 부정거래를 방지한다.
논스(Nonce)
블록체인의 블록에는 논스값이 존재한다. 논스값이란 아무도 알 수 없는 무작위 값으로 참여자들이 찾아야 하는 값이다. 앞서 언급한 채굴 경쟁에 최종 승자를 가리기 위한 연산 문제와 관련 있는 것이 바로 논스값(Nonce)이다. 논스값을 찾는 효율적인 알고리즘은 존재하지 않으며 일일이 찾아보는 방법 밖에 없다.
앞서 채굴을 한다는 의미는 다수의 거래 내역을 모아 새 블록을 구성하고 블록해시를 생성하는 것이라고 했다. 이때 블록해시를 생성하려면 일정한 조건이 필요하다. 그 조건은 블록 난이도에 따라 자동으로 설정된 '목푯값'보다 더 작은 블록 해시값을 찾아야 한다는 제약조건이다. 해시는 랜덤 하게 생성되므로 수없이 많은 연산을 반복하여 미리 정해진 목푯값 이하의 해시값이 나오도록 해야 한다. 이때 랜덤한 해시값을 생성할 수 있도록 매번 임시값을 사용해야 하는데 그 임시값이 논스값이다.
일반적으로 블록의 해시값은 해당 블록의 생성일시, 버전, 비츠(bits), 머클루트(merkle root), 이전 블록의 해시 그리고 논스 등을 조합한 후에 해시로 변환하여 생성한다. 여기서 논스값 이외의 값은 이미 확정되어 정해진 값을 가지고 있다. 따라서 논스라는 임시값이 달라짐에 따라 해시 연산 결과로 생성되는 블록 해시값이 천차만별로 다르다.
이때 가장 빨리 목푯값 이하의 크기를 가진 해시값을 생성하는 논스값을 찾으면 새로운 블록을 생성할 수 있게 된다. 목푯값 이하의 해시값을 가장 처음으로 생성한 참여자가 새로운 블록을 생성하고 올바른 논스값을 모든 참여자에게 공유하고 논스값을 받은 다른 참여자들은 이 논스값이 정답인지 확인한다.
해시파워
가장 대중적인 비트코인으로 설명하겠다. 비트코인의 경우 논스값을 찾아내는 데는 약 10분 정도가 걸리도록 설계되어 있다. 참여자들이 논스값을 찾는 데 너무 오래 걸린다면 비트코인 시스템은 논스값을 쉽게 맞힐 수 있게 난이도를 내리고, 너무 빠르다면 난이도를 올린다. 이때 참여자들이 논스값을 찾아내는 능력을 연산능력(Hash power, 해시 파워)이라고 하며 좋은 컴퓨터일수록 논스값을 가장 먼저 맞힐 확률이 높아 블록의 기록에 더 관여할 수 있다.
정리
특정한 블록에 대해 목푯값 이하의 크기를 가진 해시값을 생성하는 논스값을 찾음으로써 새로운 블록을 생성하는 행위인 '채굴'은 '작업증명'의 수단이며, 채굴을 통한 작업증명 과정은 목푯값 이하의 블록해시를 생성하는 '논스값'을 찾는 행위이라고 할 수 있다.
참고
https://www.banksalad.com/contents/쉽게-설명하는-블록체인-블록체인의-원리-채굴-해시-그리고-작업증명-qvCud
https://upbitcare.com/academy/education/blockchain/60
'넓고 얕은 블록체인 지식' 카테고리의 다른 글
블록체인 기술이 이중 지불 문제를 해결하는 방법 (1) | 2023.06.23 |
---|---|
DAO(탈중앙화된 자율조직) 1분 요약 정리 (0) | 2023.05.03 |
머클루트(Murkle Root)와 머클트리(Merkle Tree) 1분 요약 정리 (0) | 2023.05.03 |
블록체인의 구성 간단 정리 (0) | 2023.05.03 |
AWS에서 설명하는 블록체인으로 블록체인 훑어보기 (0) | 2023.04.28 |