작업 증명 알고리즘
작업증명 알고리즘은 서비스 제공자가 제시한 '특정 작업'을 완료해야 사용자가 서비스를 이용할 수 있는 것
작업 증명 알고리즘 원리
※ 작업 증명 알고리즘을 이해하기 위해서는 우선 블록 헤더의 구조가 어떻게 구성되어 있는지 알아야함
'Nonce', 'Diffculty Target'을 통해서 작업 증명과 보상 채굴이 이루어짐
1) 블록 헤더의 구조
★ Previous Block Hash : 이전에 블록의 해쉬값으로 연결되어 있음 [추적성]
★ Time Stamp : 생성되는 시간 저장
★ Merkle Root : 블록 바디 부분의 저장된 트랜잭션(거래 정보)들의 해시 트리
★ Nonce : 0에서 부터 시작하며 1씩 증가하며 찾아야함
★ Diffculty Target : 난이도를 조정하는 비트값(Bits)
2) 작업 증명 알고리즘 원리(PoW)
해시 함수의 특정 해시 숫자보다 작아지는 입력값을 찾으면 보상(코인)을 제공
※ 실제로 블록헤더 안에서의 다른 정보는 변하지 않기 때문에 입력값을 구하는 것은 Nonce를 올리며 맞는 해쉬를 찾으면 작업 증명완료
예를들어, 작업 난이도(Diffculty Target) 블록 해시값이 '000010011'(19) 이다.
Nonce 1 - 블록 해시 값 '001110000'(112)
Nonce 2 - 블록 해시 값 '011100000'(224)
Nonce 3 - 블록 해시 값 '011100011'(227)
.....
Nonce 485 - 블록 해시 값 '000000111'(7)
해시값들을 조합했을 때 Nonce 485일 때 블록해시값이 작아져서 작업증명에 성공함
※ 편한 이해를 위해 그냥 '이진수'로 표현하였습니다. 실제 해시값은 224 숫자의 경우
Sha256(224) -> '84a5092e4a5b6fe968fd523fb2fc917dbffae44105f82b6b94c8ed5b9a800223'이렇게 생김
3) 작업의 난이도
작업 난이도는 블록 헤더 정보의 Nonce를 찾아내는데 계산의 어려운 정도
모든 채굴자가 새 블록을 생성하는데 10분에 1회 정도 새 블록을 생성하도록 타깃 조정
2,016블록 타깃 검토 시 블록 생성 시간 = 20,160분 [2,016(블록) * 10(생성 시간)]
20,160분 보다 빠르면 Nonce 찾기를 어렵게 블록 간격 조정
20,160분 보다 느리면 Nonce 찾기를 쉽게 블록 간격 조정
※ 블록 간격의 변화가 심하면 중복으로 블록이 생성되는 문제 발생하기 때문에 1/4 ~ 4배로 간격 제한
블록 하나의 용량은 1MB이하로 설정하고, P2P네트워크에서 전 세계 채굴자에게 1MB데이터를 공유하는데 걸리는 시간은 약 10분정도 소요됨.
작업 증명을 완료하면 채굴자의 지갑에 보상으로 비트코인을 일정량 제공
21만개의 블록치 추가될 때마다 코인의 보상이 절반씩 줄어들어 코인 총 공급량인 2100만개로 정해져 있고 2140년에 모두 채굴이 완료될 것
'보안 및 블록체인 > 블록체인' 카테고리의 다른 글
하이퍼레저 패브릭(Hyperledger Fabric) 구성 정리 Peer #1 - Key Concept (2) | 2022.05.06 |
---|---|
솔리디티(Solidity) 기본 언어/문법 정리 #3, 이더리움 Dapp개발을 위해 - [블록체인] (0) | 2022.01.21 |
솔리디티(Solidity) 기본 언어/문법 정리 #2, 이더리움 Dapp개발을 위해 - [블록체인] (0) | 2022.01.12 |
솔리디티(Solidity) 기본 언어/문법 정리, 이더리움 Dapp개발을 위해 - [블록체인] (0) | 2022.01.12 |
ICO, IEO, STO 상장방식 개념정리 - [블록체인] (0) | 2021.12.30 |