토이프로젝트-블록체인 코어 개발 2단계 - PoW 구현
비트코인 개발 참고자료 #1 : https://jeiwan.net/posts/building-blockchain-in-go-part-2/
비트코인 개발 참고자료 #2 : https://mingrammer.com/building-blockchain-in-go-part-2/
PoW(Proof of Work, 작업 증명) 개요
- PoW(Proof of Work, PoW)란 “어려운 작업을 수행하고 이를 증명한다"의 전체 메커니즘을 작업 증명을 의미 함
- 블록체인의 핵심 아이디어는 데이터를 추가하기 위해선 어떤 어려운 작업을 수행해야 하며, 이러한 작업이 작업이 블록체인을 안전하고 일관성있게 만들어줌
- 블록체인에서 네트워크의 일부 참여자들 (채굴자)은 네트워크를 유지하기 위해 블록을 생성하고 이에 대한 보상을 받으며, 작업을 마친 사람이 이 작업을 증명해야 한다
- 작업 증명 알고리즘은 작업 수행은 어렵지만 증명 검증은 쉬워야한다는 요구사항을 충족해야함
PoW 작업 기능 구현하기
-
채굴 난이도 설정하기
- 채굴 난이도인 Target bits를 전역상수 지정 및 해더값 생성(target bit를 조정하는 알고리즘은 현재 까지의 버전인 ver0.1에서는 추가하지 않을 예정)
- 블록 포인터와 타겟 포인터를 가진 ProofOfWork 구조체 생성
- (코드) target bits를 위한 블록 해더 값 구현
-
PoW 작업 기능 구현하기
- 블록 포인터와 타겟 포인터를 가진 구조체 생성
- (코드) PoW 구조체
- PoW 작업이란 기존의 “Hash” 값과 “Target”을 비교하기 위한 작업
- Traget을 통해 유효한 작업의 상향선을 구분 가능
- (코드) PoW 작업 기능 구현