🦁 [BCS 1st TIL] 3일차 회고


채굴 (Mining)

  • 마이닝(채굴)은 ‘논스’ 값을 돌려서 하는것이다

  • 블록구조 중에 블록 안에는 여러가지가 들어가있다

  • 이 여러가지 정보들을 기반으로 블록해시가 만들어지는데
    👉 이 블록해시는 ‘16진수 숫자’ 이다

  • ‘논스’ 값을 바꾸면 해시값이 바뀌는데

  • ‘해시값’ 이 바뀌면 해시블록이 바뀌게 되고

  • 해시블록은 타겟값보다 낮아야 마이닝이 성공된다

  • 이 16진수 숫자가 타겟값보다 낮으면 ‘블록생성에 성공’하는거고

  • 이 16진수 숫자가 타겟값보다 높으면 ‘새로운 논스값’ 을 넣어야한다

  • ‘난이도’높아질수록 / ‘타겟값’낮아지게된다

논스값을 바꿔서 해시값을 바꾼다
👉 새로운 블록을 채굴

  • 거래정보들을 기반해서 만들어지는게 ‘머클해시’ 값이다

  • 새로운 거래가 만들어지는데 각 거래마다는 ‘수수료’ 가 있다

  • 이 수수료를 모아서 마이너(채굴자)한테 넘겨준다

  • 거래수수료가 높은 거래들이 높은 확률로 더 빨리 승인된다


채굴의 효과

  • 거래를 일으킨사람은 내가 채굴자에게 선택이 되어서 블록에 올라가게 된다면 내 거래가 확인이 되는거고 (빠른거래)

  • 체인(시스템) 입장에서는 블록을 계속 생성해야 ‘체인이 성장’하게 되는거고

  • 채굴자는 거래를 일으킨사람의 수수료를 얻을수 있어서 좋다

⭐ 채굴을 하지않으면 체인도 멈추고 거래도 성사되지않는다


거래 수수료 (Fee)

  • 마이너(채굴자)들이 거래중에 거래수수료‘높은 것’을 선택(pick)할수있다

  • 근데 수수료가 0 이라면 평생 선택(pick)이 안될까?

  • 거래에도 타임스탬프가 찍히는데
    타임스탬프가 일정수준 벗어나면 ‘멤풀’ 에서 우선순위로 올려준다

  • 그래서 ‘오래된 거래’새로운 블록을 생성했을때 먼저 거래되도록 해준다
    👉 평생 기다리지 않아도된다

멤풀(Mempool)

아직 블록에 들어가지 않은 상태의 트랜잭션이 ‘대기 상태’로 있는 공간

  • 그렇다면 급하지 않는 거래라고해서 수수료 0 으로 여러번 요청 해도 될까?
    👉 요즘에는 일정시간(ex. 10분) 지나도 거래가 안될경우 다시 요청하라고 취소가 된다
    👉 수수료가 0인 거래들도 풀노드끼리 공유되는 현상이 발생하기 때문
    (새로운 블록이 생성되면 거래되지않은(대기중인) 내역들이 이미 쓰여져있다)

🦊 메타마스크 같은 지갑에서는 0으로 지정하지 못하게 최소 수수료를 정해놓는곳도 있다


채굴 난이도 (Mining Difficulty)

  • 채굴을 많이 하기위해 그래픽카드 여러개 사서 연산력 (해시레이트) 을 높였다

  • 10분마다 하나씩 블록이 만들어지기로 했는데 컴퓨터 성능이 너무 좋아서

  • 1분마다 하나씩 블록이 만들어진다면
    👉 난이도 조절을 해야한다

  • 난이도 조절은 얼마마다 할까?
    👉 2016개 블록이 생성될때마다 한번씩 조절된다

  • 그럼 10분당 한개씩 블록이 만들어지니까
    20160분 이 되는거고 그게 대충 ‘2주(14일)’ 정도로 볼수있다

  • 2016개의 블록 생성일이 14일보다 늦으면 난이도를 좀 낮출거고

  • 2016개의 블록 생성일이 14일보다 빠르면 난이도를 높인다


51% 공격 vs 하드포크

  • 블록헤더의 값 중에 ‘아무거나 한개라도’ 변하게 된다면
    👉 블록 해시도 변하게 된다

  • 블록해시가 변한다면 혼자만의 문제가 아니라
    다음 블록에 이전블록해시가 들어가기때문에

  • 블록해시가 변한다면 연결되어있던 체인이 깨져서 체인으로부터 벗어나게된다
    👉 그럼 ‘일시적으로 붕괴’ 가 일어난다

  • 이걸 의도적으로 붕괴한다면 ‘하드포크’ 가 된다

51% 공격 vs 하드포크

바라보는 관점에 따라
나쁘다고 생각이 들면 ‘51% 공격’ 이고
좋다고 생각하면 ‘하드포크’ 라고한다

블록체인 스쿨 1기 / 멋쟁이사자처럼 / 멋사 / 프로젝트라이언