• Home
  • About
    • Jiwon Jeong photo

      Jiwon Jeong

      끊임없이 배우며 성장하는 엔지니어

    • Learn More
    • Email
    • Github
  • Posts
    • All Posts
    • All Tags
    • All Categories
  • Projects

채굴 정의

28 Mar 2022

Reading time ~1 minute

참조 : https://yozm.wishket.com/magazine/detail/761/ , https://m.blog.naver.com/sunchan683/221606846917

비트코인 채굴 방식

  • 블록헤더를 해시함수에 넣어 다음 블록의 블록 해시값 도출
    • 머클루트
    • 난이도 - 해시 목표값(채굴의 성공 조건)
    • 논스

contentMap

  • 채굴은 이전 블록 해시값, 머클루트, 목표값에 논스를 추가하여 Hash한 후 결과값을 난이도(목표값)과 비교한다!

contentMap

  • 실제 비교 방법
    • Bits는 난이도(목표값)을 의미
    • 목표값 계산 단계
      • Bits를 16진수로 변환
      • 변환한 16진수 앞 두자리는 지수로, 뒤 6자리는 계수로 사용
      • 목표값 : 계수 * 28 * (지수-3)
    • 결국 블록을 만드는 방법은 난이도(목표값)보다 작은 해시값이 나오도록 하는 논스를 찾는것!

contentMap

작업 증명을 하는 이유

  • 비잔틴 장군 문제를 해결하기 위해서임.
  • 비잔틴 장군 문제 규칙
    • 장군들은 메세지를 만들어서 보내려면 반드시 각각 10분의 시간이 필요한 작업을 해야 함
    • 이 작업은 10분의 시간을 꼬박 할애해야만 완료할 수 있는 작업
    • 그리고 이 작업을 했다는 것을 증거와 함께 인접 장군에게 보내야함
    • 인접 장군에게 보낼 때는 전달받은 내용을 함께 보내야 함
  • 비잔틴 장군 문제
    • 장군 1이 “오전 6시 공격”이라는 메세지를 10분 할애해서 만들고, 장군 2에게 보냄
    • 장군 2도 “오전 6시 공격”이라는 메세지를 10분 할애해서 만들고, 장군 1이 보낸 메세지와 함께 장군3에게 보냄
    • 장군 3은 배신자인데, “오후 9시 공격” 메세지를 만들어서 보내려고 함
      • 단순히 “오후 9시 공격”이라는 메세지를 만들어서 장군1, 2의 메세지와 함께 보내면 메세지의 내용이 다른 것이 단번에 들통남
      • 장군 1,2의 메세지까지 모두 바꾸려면 20분의 추가 시간을 들여서 메세지를 만들어야 하는데, 그럴 시간이 없음
      • 때문에 장군3도 “오전 6시 공격” 메세지를 만들 수 밖에 없음

contentMap

  • 비트코인에서 적용
    • 배신자가 블록 #2의 내용을 바꾸려고 함
    • 블록 #2를 만들기 위해 논스를 찾는 과정을 거쳐야함
    • 운좋게 10분만에 찾아서 블록 #2의 내용을 변경했다고 가정
    • 하지만 그 사이에 이미 블록 #4가 생성
    • 블록#4는 정상 블록 #3을 보고 있음
    • 그러려면 블록#3과 블록 #4를 계산해야함
  • 이런 과정이 계속 반복되기 때문에 변조는 불가능한 것!!


BlockChainEthereum Share Tweet +1