상세 컨텐츠

본문 제목

작업증명(PoW)

Blockchain/BlockChain Theory

by Yongari 2023. 2. 2. 15:30

본문

 

 

작업증명(PoW)의 정의

작업 증명(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

 

 

비트코인 채굴 알고리즘

  1. 비트코인 네트워크로부터 이전 블록의 헤더를 얻는다.
  2. 네트워크상에서의 트랜잭션 브로드캐스트 세트를 제안할 블록에 넣어서 합친다.
  3. 블록 버전, 이전 블록의 블록 해시값, 머클루트 값, 타임 스탬프, 난이도 비트, 새로운 논스를 합한 값에 SHA256 함수를 두 번 적용한다.
  4. 결과 해시값이 현재의 타겟 난이도보다 낮은지 확인하고, 낮으면 PoW를 푼 것이다. PoW 성공시 발견된 블록은 네트워크에 브로드 캐스트 되고 보상을 받는다.
  5. 결과 해시값이 현재의 타겟 난이도보다 높지 않다면, 위 과정을 반복하며 논스값을 증가시킨다.

 

 

작업증명의 장점

가장 큰 장점은 보안성입니다. 블록체인의 규모가 커질수록 51% 공격을 성공시키기 어렵습니다. 51% 공격을 하기위해서는 51%이상의 컴퓨팅 파워를 확보해야하지만 그만큼 천문학적인 비용이 발생하기때문에 현실적으로  매우 어렵습니다. 

그리고 비잔티움에러라고 불리는 문제를 해결한것이 작업증명의 큰 장점입니다. 

 

작업증명의 단점 

블로그에서도 한번 다뤄본적이 있는데요  다음과 같은 2가지 문제점이 있습니다.

 

1. 기업화가 되어버린 채굴 : 탈중앙화가 근본 가치였지만 이제는 채굴업체의 파워와 금전적인 장벽이 너무 높아서 기업단위가 아니면 참가하기 어렵습니다. 이건 곧 중앙화 방향으로 가는 방향입니다.

2. 친환경: 저는 가장 큰 문제로 생각되는 문제입니다. 바로 과도한 전력낭비로 인한 에너지 낭비입니다. 이 문제는 친환경을 중요하게 여기는 요즘 트렌드에 맞지않습니다. 

 

PoW 대표 코인

 

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 

 

직접 번역한 비트코인 백서 한글판이 공식 Bitcoin whitepaper GitHub repository에 올라갔습니다! — Steemit

 

steemit.com

 

 

참고 링크 

https://choikhyang.tistory.com/12 

 

비트코인 시스템의 이해 - 작업증명으로 블록체인 보호하기

비트코인 시스템에서 가장 중요한 것은, 바로 블록체인 조작에 관한 문제를 해결하는 것입니다. 이전 글에서 설명한 블록체인을 통해 안전하게 비트코인을 거래하기 위해서는 블록체인 자체에

choikhyang.tistory.com

 

'Blockchain > BlockChain Theory' 카테고리의 다른 글

채굴 알고리즘  (0) 2023.02.02
거버넌스 블록체인 - Klaytn  (0) 2023.02.02
채굴 시스템  (0) 2023.02.01
채굴 풀(Mining Pool)  (0) 2023.02.01
간략히 알아보는 프루닝  (0) 2023.01.26

관련글 더보기