블록체인

21.09.17 [합의알고리즘] PoW 작업 증명

슈팅스타제제 2021. 9. 18. 18:39

PoW 작업 증명 합의 알고리즘 

PoW 체인: 비트코인, 이더리움 1.0, 

 

블록 생성 과정

작업: 논스를 바꿔가면서 해시화했을 때, 목표값 이하의 해시를 찾는 연산 과정
채굴: 작업을 완료하여 블록을 생성한 것 

보상: 새로 발행되는 비트코인과 해당 블록에 포함된 거래 수수료의 합 

마이닝풀: 여러 대의 채굴기를 연결하여 1대의 슈퍼컴퓨터처럼 작동하도록 만든 네트워크 

검증: 블록 헤더의 정보가 맞는지 확인

비트코인은 가장 긴 체인을 메인 체인으로 선택하는 longest chain rule을 따른다. 

 

블록의 구조

현재 해당 블록해시, 블록헤더, 블록바디

블록헤더: 논스, 타임스탬프, 이전블록해시, 난이도, 머클루트해시, 버전 
블록바디: 트랜잭션들이 담김. 코인베이스 트랜잭션(tx0), 일반 거래 트랜잭션(tx1~)

 

블록헤더

논스: 블록 난이도에 따라 랜덤으로 설정된 목표값
타임스탬프: 블록 생성되는 순간의 값
머클루트: 트리 구조를 형성하고 있는 암호화 과정이다. 


머클루트 해시 구하는 과정
1. 최초의 데이터를 해시값으로 변환한 후
2. 가장 가까운 노드 두 개를 한 쌍으로 묶어 합친 후 해시값으로 변환한다. 
3. 이 과정을 반복하여 마지막 하나가 남을 때까지 반복한다. 그 마지막 하나가 머클루트해시!

머클루트의 역할
log₂[전체거래내역수]를 통해 특정 거래내역을 쉽게 찾을 수 있는 특징이 있다. 
따라서, 각 TXID의 정보들이 변경되었는지에 대한 유효성을 검사하는 역할을 할 수 있다. (풀노드, 라이트노드)
그리고 주어진 트랜잭션이 모든 트랜잭션을 요구하지 않고 블록에 있는지 확인할 수 있기 때문에 검증 시간을 줄이는 역할을 한다.


비트코인 구조

https://loosie.tistory.com/309

논스와 난이도

https://medium.com/@dongha.sohn/bitcoin-6-%EB%82%9C%EC%9D%B4%EB%8F%84%EC%99%80-%EB%AA%A9%ED%91%AF%EA%B0%92-9e5c0c12a580