[POSTECH 블록체인 입문] Proof of Work
Web 3.0/Block chain

[POSTECH 블록체인 입문] Proof of Work

  • POW 알고리즘은 사토시 나가모토의 논문 'Bitcoin: A Peer-to-Peer Electronic Cash System'에서 처음으로 제안한 비잔틴 합의 알고리즘임

  1. 비트코인에서는 블록 내에 포함되어 있는 값을 0부터 1씩 증가시키면서 해시함수에 넣음
  2. 그리고 해시함수의 출력이 목표 값보다 작은 값이 나오면 채굴 성공했다고 이야기함
  3. 해시 함수의 특성상 결과를 전혀 추론할 수 없기 때문에, 목표 값보다 작은 값을 얻는 과정은 로또에 당첨되는 것에 비유할 수 있음
  4. 이렇게 Nonce 값을 증가시키면서 원하는 값을 얻는 과정에는 많은 컴퓨팅 자원이 소비됨

  • 24번 블록이 두 개가 동시에 생성된 이후, 1번 작업자가 생성한 블록을 전달받은 참여자가 다음 번 채굴을 통해 1번이 생성한 블록 뒤에 25번째 블록을 추가로 연결했다고 가정했을 때가장 긴 체인을 메인 체인으로 선택함

 

  1. 네트워크 전송 속도 지연으로 인해 네트워크 상에 체인의 분기가 발생하여, 두 개의 체인이 존재하는 상황을 가정해보면
  2. 네트워크의 노드들은 다음 블록을 생성하기 위해 A와 B 중 하나의 체인을 선택하게 됨
  3. 가장 긴 체인이 네트워크에서 선택되기 때문에, 이러한 분기가 발생할 시, 더 긴 체인을 만들기 위해 경쟁하게 됨
  4. 이러한 경쟁은 6개의 블록이 생성되기 전에 보통 종료되기 때문에 이를 6 confirmation이라고 부름
  5. 사토시 나카모토는 확률 증명을 통해 분기된 체인과 원래의 체인이 6개 이상의 대립되는 블록을 생성할 확률이 0에 가깝다는 것을 증명함
  6. 6 confirmation은 자신이 생성한 거래는, 그 거래가 포함된 블록 이후에 5개의 블록이 더 생겨야, 해당 트랜잭션이 완전하게 거래됐다는 것을 의미함

  • 작업증명 알고리즘은 느린 속도와, 낭비되는 에너지 문제가 심각함
  • 지금 비트코인 한 블럭을 생성하기 위해서는 위해선 5,000,000 TH/s 이상의 해시 파워가 필요함