작업 증명(PoW)은 Proof of Work의 약자이며 목표값 이하의 해시를 찾는 과정을 무수히 반복하면서 해당 작업에 참여했음을 증명하는 방식의 합의 알고리즘이다. PoW의 대표코인으로는 비트코인과 비트코인 캐시가 있다.
Proof : 증거(물), 증명(서), 입증, 증명
Work : 일하다, 작업하다, 일, 직장, 직업, 업무, 직무
우선 논스(nonce)가 무엇인지 알아볼까요?
해시넷위키에 적힌 설명에 따르면 논스(nonce)는 블록체인에서 목표값 이하의 블록 해시를 찾기 위해 임시로 사용하는 숫자이다. 넌스, 난스 또는 임시값이라고도 한다. 국내에는 "논스"라는 이름의 크립토 커뮤니티 겸 스타트업도 있다.
그렇다면 비트코인에서 논스를 찾는 방법은 무엇일까요?
논스값은 아무도 알 수 없는 무작위 값으로 P2P(Peer to Peer) 참여자들이 무작위로 찾아야 하는 값입니다. 비트코인은 블록 생성이후 이 블록의 해시값을 참여자들한테 알려주면 참여자들은 일일히 대입한 후 해시해서 비트코인이 알려준 값과 같은지 대조해보고 올바른 값을 찾은 참여자는 다른 참여자한테 논스 값을 건네주고 다른 참여자들은 이 논스값이 정답인지 확인해봅니다. 이 과정을 볼 때 비효율적이라는 생각이 들 수밖에 없네요 그리고 논스값은 찾아내는 데 10분이 걸리도록 비트코인에서 설계되어있습니다. 논스를 찾는 난이도가 너무 쉽거나 어려우면 해킹이나 시간문제가 발생할 수 있어서 비트코인 내부에서 난이도조절을 합니다. 이 난이도 조절을 해시캐시(HashCash)라고 부릅니다.
nonce가 어떻게 생겼는지 궁금해서 해시넷 위키에서 참조했습니다. 살펴보면 다음과 같습니다.
예를 들어, 비트코인의 제520,654번째 블록의 해시값을 찾기 위해 사용한 논스값은 0xe1c63570이었다.
- 코인종류 : 비트코인
- 생성일시 : 2018-05-01 09:57:58 UTC
- 블록번호 : 제520,654번째 블록
- 블록해시 : 00000000000000000027d5cc71fb300b9d7c3b703da500a23a6a413297e7f8f4
- 버전 : 0x20000000
- 난이도 : 7.07T/4.02T
- 비츠(bits) : 0x1745fb53
- 임시값(nonce) : 0xe1c63570
- 포함된 트랜잭션의 개수 : 2,683개
- 루트해시 : 57e9d0dfa5fb3f73303fc205b04adcbb9b2b29ade8031ddcc8c9c88652f35cd2
- 이전 블록의 해시 : 00000000000000000020c54be8b197db66d61b0e9782ee15c71a0cc822bf48e8
- 다음 블록의 해시 : 0000000000000000000c74f3b4da084b2a8a635dd988e00cc1877565eff6eaa8
가장 큰 장점은 보안성입니다. 블록체인의 규모가 커질수록 51% 공격을 성공시키기 어렵습니다. 51% 공격을 하기위해서는 51%이상의 컴퓨팅 파워를 확보해야하지만 그만큼 천문학적인 비용이 발생하기때문에 현실적으로 매우 어렵습니다.
그리고 비잔티움에러라고 불리는 문제를 해결한것이 작업증명의 큰 장점입니다.
블로그에서도 한번 다뤄본적이 있는데요 다음과 같은 2가지 문제점이 있습니다.
1. 기업화가 되어버린 채굴 : 탈중앙화가 근본 가치였지만 이제는 채굴업체의 파워와 금전적인 장벽이 너무 높아서 기업단위가 아니면 참가하기 어렵습니다. 이건 곧 중앙화 방향으로 가는 방향입니다.
2. 친환경: 저는 가장 큰 문제로 생각되는 문제입니다. 바로 과도한 전력낭비로 인한 에너지 낭비입니다. 이 문제는 친환경을 중요하게 여기는 요즘 트렌드에 맞지않습니다.
bitcoin github 주소 : https://github.com/bitcoin/bitcoin
bitcoin 백서 주소 :https://bitcoin.org/bitcoin.pdf
bitcoin 한글 백서 주소 : https://drive.google.com/file/d/1Te82Gu2H27Ah7Vo1lnZP2L0NVcHSWt24/view (아래의 블로거님이 제공해주신 파일입니다. 블로그에 가셔서 포스팅한 내용을 확인하시는 걸 추천드립니다.
https://steemit.com/kr/@blockchainstudio/bitcoin-whitepaper-github-repository
참고 링크
https://choikhyang.tistory.com/12
채굴 알고리즘 (0) | 2023.02.02 |
---|---|
거버넌스 블록체인 - Klaytn (0) | 2023.02.02 |
채굴 시스템 (0) | 2023.02.01 |
채굴 풀(Mining Pool) (0) | 2023.02.01 |
간략히 알아보는 프루닝 (0) | 2023.01.26 |