- Published on
블록체인 채굴
- Authors
- Name
- 황도연
채굴의 개념
블록체인 네트워크에서 블록을 생성하는 과정을 채굴이라고 합니다. **채굴자(노드)**는 블록체인 네트워크의 노드중에서 블록을 생성할 수 있는 권한을 가진 노드입니다.
채굴의 과정
채굴자는 새로운 블록을 생성하기 위해 필요한 정보를 준비합니다.
- 블록의 헤더 정보
- 이전 블록의 해시값
- 머클 루트
- timestamp
- bit(난이도)
- nonce
블록의 해시값을 계산합니다. 블록의 해시값은 블록의 정보를 암호화한 값입니다. 다음과 같은 식으로 계산됩니다.
block_hash = hash(block_header + block_body)
블록의 해시값이 (bits) 를 충족하는지 확인합니다. 합의 알고리즘의 난이도 목표는 블록의 해시값이 특정 규칙을 만족하도록 설정된 값입니다. 블록의 해시값이 bits(난이도) 목표를 충족한다는 것은, 블록의 정보가 정확하다는 것을 의미합니다.
블록의 해시값이 난이도 목표를 충족하면, 해당 블록의 블록 체인 네트워크에 전송합니다.
블록채인 네트워크가 유효성 검증을 합니다.
- 블록의 헤더 정보와 바디 정보가 일치하는지 확인합니다.
- 블록의 해시값이 합의 알고리즘의 난이도 목표를 충족하는지 확인합니다.
- 블록에 포함된 거래 내역이 유효한지 확인합니다.
검증에 성공한 노드는 새로운 블록을 자신의 블록체인에 추가합니다.
채굴 합의 알고리즘
- 작업증명(Proof of Work): 블록의 해시값을 계산하기 위해 무작위 값을 생성합니다.
- 지분증명(Proof of Stake): 블록의 해시값을 계산하기 위해 보유한 코인의 양을 사용합니다.
- 권한 증명(Proof of Authority): 특정 권한을 가진 노드만이 블록을 생성할 수 있습니다.