2023-07-14
823
비트코인 채굴은 무엇인가요?
비트코인 시스템에서는 거래 내역을 등록하기 위해, '채굴'이라는 복잡한 수학 문제를 푸는 과정을 거쳐야 합니다. 비트코인을 보내고 싶은 사람들은 거래 요청(트랜잭션)을 생성하여 네트워크에 제출하고, 채굴자들은 제출된 이런 거래 요청들 중 수수료가 높은 것들을 골라서 그 내역을 바탕으로 채굴 연산을 수행합니다. 이 과정은 마치 복권에 당첨되기 위해 무작위로 수많은 복권을 사는 것에 비유할 수 있습니다. 많은 복권을 살수록 당첨 확률이 올라가는 것과 비슷합니다. 이제 좀 더 기술적인 설명을 해보겠습니다.
비트코인의 각 블록에는 네트워크 사용자들간의 거래 내역 및 블록 번호, 이전 블록의 해시, 타임스탬프, 난이도(해시 목표값), 논스(조건에 맞는 해시값을 찾기 위해 함께 입력으로 섞는 임의의 숫자), 머클 루트, 그리고 이 모든 정보를 해시한 고유 해시값이 포함됩니다. 이 고유 해시값이 네트워크 난이도(해시 목표값)보다 작도록 하는 논스를 찾는 것을 '채굴'이라고 합니다. 채굴에 성공한 채굴자는 이 블록을 네트워크에 제출하고 블록 보상 및 블록에 포함된 거래들에 대한 수수료를 보상으로 받습니다.
예를 들어, 우리가 1~100까지의 난수를 생성한다고 가정해보겠습니다. 만약 난이도 목표값이 20이라면, 생성된 난수가 20보다 작거나 같은 경우 채굴에 성공하게 됩니다. 따라서 해시 목표값이 작을수록 채굴에 성공할 확률이 낮아집니다. 비트코인이 사용하는 해시함수인 SHA-256은 256비트로 이루어져 있으므로, 해시값은 0 ~ (2^256 - 1) 사이의 값을 가집니다.
16진수로 표현한다면
0000000000000000000000000000000000000000000000000000000000000000
~
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
가 됩니다.
따라서, 채굴 난이도가 어려울수록(목표 해시값이 작을수록) 16진수로 표현시 앞에 연속한 0이 많이 붙게 됩니다.
이를테면, 비트코인의 634,842번째 블록의 해시값은 000000000000000000000003681c2df35533c9578fb6aace040b0dfe0d446413입니다.
블록에 들어갈 정보들에 적절한 논스를 더해 이처럼 적합한 해시값을 찾는 채굴 과정은 엄청난 계산량을 필요로 하며, 비트코인 장부 불변성의 핵심인 이 합의 메커니즘을 '작업 증명'이라고 합니다. 만약 해시값을 구하기 위해 사용된 정보 중 극히 일부라도 변경된다면, SHA-256의 특성상 해시값은 완전히 달라지게 됩니다.(해시함수란?)
만약 누군가가 특정 블록의 거래내역을 조작하려 한다면, 조작된 내역을 가지고 다시 유효한 해시값을 찾기 위해 채굴해야합니다. 게다가 가장 긴 체인만 유효하다는 비트코인의 규칙 때문에, 오래된 블록을 조작하려 할수록 정상 체인보다 길어지기 위해 뒤에 추가해야 하는 블록도 많아지게 됩니다. 특정 블록을 기준으로 그 뒤에 붙은 새로운 블록들의 개수를 '컨펌 횟수'라고 하며, 이 수치가 높을수록 더 변경 가능성이 낮은 안전한 거래내역이 됩니다.
비트코인 네트워크의 해시레이트는 이미 전세계의 슈퍼컴퓨터들의 연산능력을 모두 합친것을 아득하게 초월하여 사실상 공격의 여지가 없기 때문에, 많은 거래소들에서는 보통 단 한 번의 컨펌만으로도 충분히 확정된 거래로 인정하고 입금처리해줍니다. 그에 반해, 거래소들이 알트코인을 입금받을 때는 몇 회에서 많게는 몇 백회에 이르는 컨펌을 요구하는 것을 흔히 볼 수 있습니다.
이처럼 엄청난 연산을 통해 새 블록을 생성하고 장부에 추가할 권한을 얻는 '작업 증명' 합의 덕에 블록체인이 불변성을 지니고 안전한 것이므로, '지분 증명' 등의 다른 알고리즘을 쓰는 것들은 블록체인이 불가역성/불변성을 지니는 이유에 대한 이해가 없는 잘못된 설계 하에 운용되는 체인들임을 알 수 있습니다.
그런 체인들은 대개 중앙화된 운용사(EX: Ripple)나 많은 지분을 가진 검증자들(EX: PoS 노드)이 정직할 것이라는 신뢰에 의해 운용되는데, 이는 비트코인의 핵심인 "믿지 말고, 검증하라."의 정신이 아닌 신뢰에 기반한 기존 금융과 전혀 다를 바가 없습니다.
참조:
- Bitcoin’s Lowest Block Hash Values
- What is ‘proof of work’ and how does that affect Bitcoin halving?
1