안녕하세요 오늘은 비트코인 네트워크에서 비트코인을 얻을 수 있는 행위인 '채굴' 즉 mining에 대해 알아보도록 하겠습니다. 특히 비트코인 네트워크에서 채굴할 때 채택한 합의 알고리즘임 PoW에 대해서 알아보도록 하겠습니다.
채굴이란 블록체인 참여자인 노드들이 검증에 참여해, 검증 보상으로 암호화폐를 얻는 행위입니다. 채굴은 분산원장이라는 광산에서 합의 알고리즘이라는 곡괭이를 들고 암호화폐라는 광물을 캔다라고 이해하시면 됩니다. 비트코인의 경우 10분에 한번 씩 채굴이 가능하도록 설계되어있고, PoW 합의알고리즘을 사용합니다. PoW 채굴 과정은 보시는 거처럼, 트랜잭션을 트랜잭션 풀에서 수집을 합니다.
맨 처음에, Transaction pool에서 블록에 포함시킬 Transaction을 수집합니다. 이후 거래 원문을 SHA-256 해시 알고리즘을 통해 Hash 계산 후, 이를 Merkle tree 형태로 2개씩 묶어서 최종 Merkle root값을 만듭니다.
이 Merkle root를 포함하여, Blockheader에 포함 될 Timestamp, Nonce, 이전블록 해시(Previous blockhash), version, bits(난이도)등을 종합해서 SHA-256을 통해 블록헤더 해시값을 생성하여 최종 블록을 생성합니다. 이러한 과정 전체를 채굴이라고 하는데요. PoW는 여기서 Nonce라는 값을 여러 값을 대입시켜가면서, 난이도 값보다 낮은 타겟 해시값을 만들어 내야 합니다. 이때 '누구보다 빨리' 값을 찾아야 하기에, 빠른 해시연산이 필요로 하고, 이는 여러 해시연산 머신을 동원하면 성공 가능성을 높이게 되죠, 이 머신은 전력을 엄청나게 먹습니다. 그래서 비트코인을 채굴할 때 환경파괴가 일어난다고 하는 겁니다.
그래서 지난번 글에서도 말씀드렸지만, 최대한 효율적으로 블록을 생성할 수 있고, 1개의 블록에 더 많은 거래를 담을 수 있게 하는 방식으로, 채굴 환경 개선을 진행하고 있는것이죠.
오늘은 비트코인네트워크에서의 채굴에 대해 알아보았습니다. 궁금하신 부분은 댓글로 남겨주세요~
오늘의 용어 사전
1. Transaction: transaction은 database의 상태를 변화시키는 작업 모음이라고 정의 되어있는데, 블록체인 네트워크에서는 데이터의 기본 단위입니다. 이 트랜잭션에는 입력, 출력 값이 존재합니다. 입력에는 돈이 얼마나 있는지, 실제로 가지고 있는지를 보여주고, 보낼값을 넣습니다. 그리고 UTXO를 개인키로 서명하여 전송합니다. Output에는 보내고 난 이후의 잔액과 보낸 금액이 들어있습니다. UTXO는 unspent transaction output이라고 하는데 아직 쓰지않은 잔액이라는 의미입니다. 비트코인 네트워크에서 잔액이라는 개념은 트랜잭션에 의한 결과물들의 합입니다. 예를 들면, A와 B가 C에게 1비트, 2비트를 보내면 C는 2개의 UTXO를 가지게 됩니다. 즉 1과 2 더해져서 3이 되는것이 아니라, 1과 2라는 2개의 UTXO를 그대로 갖게 됩니다. A가 10비트가 있고 C에게 1비트를 보냈을 시, 1비트는 출력값, 9비트는 입력값으로 A의 walllet에 저장되게 됩니다.
2. Mempool: Transaction pool 이라고도 불리는 이것은 말 그대로 미 승인된 transaction들이 모여있는 곳을 말합니다.
'Blockchain' 카테고리의 다른 글
블록체인의 합의 알고리즘에 대해서 알아보자! PoW, PoS, DPoS... (0) | 2024.09.27 |
---|---|
이더리움 Layer2 네트워크 TAIKO에 대해 알아보자 (1) | 2024.09.27 |
Bitcoin 개발 그룹 BIP(Bitcoin Implementation Proposal)에 대해 알아보자 (2) | 2024.09.25 |
부산디지털자산거래소가 무엇인지 알아보자 (6) | 2024.09.23 |
가상자산위원회 출범 전 가상자산위원회에 대해 알아보자 (1) | 2024.09.20 |