2022/블록체인

개발자가 설명해주는 비트코인 채굴 방법 (ft 시뮬레이터, 노마드코더)

코드아키택트 2021. 6. 15. 00:15
반응형

https://youtu.be/ElGBP90XZWE

 

인트로

 

  • 비트코인 가격 상승
  • 작업 증명 / 채굴 / 왜 채굴에 그래픽 카드가 쓰이는지 알아봄

 

블록체인은 무엇인가?

  • 블록체인 = 데이터베이스. 데이터는 블록 + 해시로 연결
  • 누가 블록 추가
  • 누구나 아무때나?
  • 어떤 데이터가 추가?
  • 상황에 따라 다름
    • 만약 "레시피"블록체인이라면 아무나 추가하고 공유해도 상관없음 
  • 하지만 비트코인 등과 같이 누가 얼마를 보냈고 하는 내용들은?
  • 아무나 블록을 생성해선 안될것

  • 거기에 어떤 데이터가 블록체인에 추가됬는지도 살펴보아야함(돈 문제이니까)
  • 결제내역 / 송금내역 / 잔금 등 데이터는 아무나 생성해선 안될것

 

작업증명

어떤 데이터가 블록체인에 추가?

  • "진실"만 있어야함(진짜만)
  • 누군가 거짓말을 하는 것이 아닌 오로지 진실만

 

  • 사기탐지를 위해선 작업증명 필요
  • 사기꾼 거짓말쟁이 악용 사례로 부터 보호
  • 작업증명을 이해하려면 '채굴자'라는 개념 이해 필요

 

채굴과 채굴자란?

  • 채굴자의 일.
    • 데이터 확인 / 블록생성 / 체인에 추가

 

  • 이해하는게 매우 중요함
  • 친구에게 비트코인을 보낸다 했을때...
    • 모든 내역을 체크함 -> 체크가 끝나면 그 데이터를 블록안에 넣음 -> 블록이 꽉차면 블록을 닫고 블록체인에 올림 
  • 채굴자들 덕분에 데이터를 확인하는 것이 가능함
  • 이를 탈중앙화 방법으로 하고 있음 -> 누구나 원한다면 채굴자가 될 수 있다는 뜻

 

  • 우리 모두가 데이터를 검증함. 누구 한명이 아님
  • 채굴자들이 이걸 하는 이유?
    • 돈을 받기위해

  • 채굴자가 트랜잭션 컨펌하면 돈 받음. 일종의 수수료
    • 검증작업 활발. 네트워크 보호
  • 채굴자가 되는건 좋은 일일까?
    • 블록 올리기 겁나 어려움(꼭 좋은 일이라고 하긴 어려움)

  • 작업증명이 질문함. 전체 네트워크가 다 아는 질문
  • 채굴자그 질문에 대답해야함
  • 채굴자가 답을 찾아야 블록을 올릴 수 있음

 

  • 채굴자보상 2번
    • 거래내역 컨펌
    • 질문의 답을 찾아서 블록체인에 올림

 

비트코인 생성 원리

  • 채굴자가 블록을 체인에 올릴때 코인베이스(Coin base) 트랜잭션 생김
    • 이게 비트코인 생성되는 순간
  • 블록을 체인에 올릴 때마다 비트코인 새롭게 생성

처음엔 올릴땐 블록당 50개 비트코인 생성

  • 4년마다 반감기
  • 블록마다 50->25->12.5....->현재 6.25
  • 비트코인은 2100만개 한정

 

작업증명 시뮬레이터

블록체인 작업증명 시뮬레이터로 보여줄 것임

데이터를 쓰면 해시 바뀜

데이터를 넣어서 해쉬가 생성된 모습

채굴하면 다음 블록 생성

채굴을 통해 블록이 추가된 모습

 

nonce와 0 이해

논스와 난이도

  • 0은 난이도 얼마나 블록을 찾기 어려운지
  • 채굴자는 데이터 바꿀 수 없음

채굴과정을 보여주기위한 시뮬레이터

  • 오로지 검증만 가능
  • 채굴자는 데이터를 바꿀 수  없음

 

이것은 네트워크가 채굴자에게 물어보는 질문에 연결됨

"채굴자님, nonce에 넣어야 하는 값은 무엇일까요? 참고로 그 해시는 3개의 0으로 시작해야합니다."

뭔소리인지 싶겠지만 침착

 

논스란?

  • 우선 nonce란??
  • 한번만 쓰인 숫자

채굴자가 바꿀수 있는 값 Nonce

채굴자가 바꿀수 있는 유일한 값

"3개의 0으로 시작하는 해시를 만들려면 어떤 논스를 가져야 하나요?"

 

  • 왜 3? 난이도가 3
  • 채굴자는 숫자 맞추기  게임 시작. 논스를 여러가지 바꿔봄

  • 아직 3개의 0으로 시작하지 않기 때문에 블록이 생성되진 않음
    • 노가다
  • 검증하는 절차 자체는 정말 쉬움
  • 질문의 답은 아주 복잡하지만 절차자체는 정말 쉬움 "매력적인 포인트"
  • 000으로 시작할때까지 돌려야함

마인 블록(Mine Block)부분이 활성화 된 것을 볼 수 있음

답을 찾았음

 

비트코인의 난이도

  • 블록은 10분마다 빗코. 너무 빨리 생성되면 난이도를 올리기도 함
  • 논스만 바꿔서 네트워크가 원하는 답을 찾음

  • 현재 비트코인은 19개의 0으로 시작
  • 여기서 설명한 방법이 아주 정확한 비트코인의 방법은 아님
  • 난이도는 bits를 함

왜 그래픽 카드인가?

https://en.bitcoin.it/wiki/Why_a_GPU_mines_faster_than_a_CPU

 

Why a GPU mines faster than a CPU - Bitcoin Wiki

Some Bitcoin users might wonder why there is a huge disparity between the mining output of a CPU versus a GPU. First, just to clarify, the CPU, or central processing unit, is the part of the computer that performs the will of the software loaded on the com

en.bitcoin.it

  • 그래픽카드는 논스를 아주 빠르게 계산가능
  • 6천만 논스를 1초에 계산(같은 성능의  CPU에 비해 800 배)
  • 엄청 길고 긴 숫자를 1초마다 동원되는 해시
  • 현재는 지금 보이는 만큼의 해시가 1초마다 비트코인에 동원됨(즉 1초마다 아래 숫자만큼 또는 그 이상의 논스가 시도됨)

 

 

반응형