블록체인 복습 : 합의 알고리즘_네트워킹

개굴·2023년 5월 2일
0

Blockchain

목록 보기
4/6

합의 알고리즘의 궁극적인 목표는 옳은 정보(공유되는 정보) 정하는 것

  • 합의 알고리즘 시작은 채굴(올바른 블록 해시값 추출 ) 하는 것임
  • 합의 알고리즘은 최종 완성은 다른 노드들과 체인 정보를 동기화 하는 것으로 이루어짐
  • 이웃 노드들과 지속적으로 통신을 주고 받음

  • 이웃 노드들과 통신 과정에서 비교를 통하여 규칙에 따라서 한쪽 노드의 정보로 동기화 과정을 이룸

  • 이러한 과정을 지속적으로 반복하여 네트워크 내 모든 노드들이 같은 체인 정보를 갖게 됨

  • 가장 긴 체인이 옳은 체인이라는 규칙이 산정 된다면 서로 다른 두 노드가 길이를 비교후, 더 긴체인을 지닌 노드가 더 짧은 체인을 지는 노드에게 자신의 체인 정보를 넘겨줌

  • 최종적으로 두 노드는 같은 체인 정보를 지니게 됨

  • 블록 동기화 과정

    • 비교 1 : 마지막 블록헤더 비교
    • 비교 2 : 일치 하지 않으면 길이 비교
    • 더 긴 체인을 보유한 노드가 짧은 체인을 보유한 노드에게 블록 넘기기
    • 받은 블록 검증(채굴 결과 검증)
    • 유효하면 블록 체인 동기화
  • 동시 체굴 / 분기

    • 마지막 블록헤더 비교 다르면 대기

    • 새로운 체인이 생겨서 이전 해시값을 이전 블럭의 값들이 같지 않으면 다른 값도 같이 넘겨줌

    • 동시 채굴이 된 상황을 분기(fork)가 일어났다고 표현

    • 분기가 일어나면서 일시적인 네트워크 내에 3개 종류의 데이터들의 공유되고 있음

    • 결국 가장 긴 체인 1개 체인으로 최종적으로 동기화됨



    합의 알고리즘의 시작은 채굴

    합의 알고리즈의 끝은 동기화



  • 체굴은 불록(데이터 단위)을 만드는 행위

  • 적절한 논스값을 찾으면 채굴 성공 -> 블럭 생성

    • bits값이 난이도 결정
    • 2주 마다 쉬우면 타겟값 내려감 어려우면 타겟값이 올라감
  • 중요한건 블럭생성이 아니라 바디에 거래 저장

  • 서로 다른 두 노드가 통신 행위를 하면 그 결과 Tx가 나옴

    • Tx : Transaction (거래)
    • 거래 : 비트코인에서는 보통 A가 B에게 10원을 보냄과 같은 송금행위.
  • 블록을 만드는 이유는 이러한 거래들을 담아서 주변 노드들에게 알리기 위함임 -> 그 결과적으로 거래가 검증이 되고 완료가 되기 때문

  • 결국 합의 알고리즘은 거래들을 담아서 블록을 만든 후(채굴) 주변 노드들에게 알려주어 (동기화) 거래를 완료 시키는 과정에서 필요한 규칙들의 집합체




    Q&A

  • ? 합의 알고리즘에 따라 내가 블록을 만들려면 어떻게 해야하나요?

    • 채굴을 하기 위해서는 컴터 계속 작동
    • 남들보다 논스값 빨리 끊임없이 계산 시킴
  • ? 그렇다면 비용이 발생하지 않나요? (전기세)

    • 컴퓨터 계속 사용하면 전기비 발생 -> 돈
    • 컴퓨터 노후로 인한 지속적으로 새로운 장비 교체 ->돈
  • ? 그럼 누가해요?

    • 이 일을 할 요인이 없음 그래서 이를 유인하기 위해 경제적 보상 줘야함
    • 채굴자가 없으면 블록이 굴려가지 않음 -> 망함
  • ? 그 경제적 보상은 뭔가요?

    • 블록 채굴 보상(새로운 코인) + 거래수수료(있던 코인)
    • 블록 채굴 보상
      • 코인 베이스 거래 : 보내는 사람은 없고 받는 사람만 있음
      • 최초 보상 50 -> 25 -> 12.5 -> 6.25 ......
        • 반감기를 걸침
        • 0.0000000...<-n자리에서 블록채굴 보상 사라짐
        • 비트코인 블록이 2100만개로 정해져 있어서 언젠가 채굴 보상 없음
        • 채굴 보상으로 블록이 생성될 때 마다 네트워크 마다 코인의 총량이 늘어남
    • 거래수수료
      • 내가 거래를 진행하는 데 있어서 채굴자에게 지불하는 수수료
      • 거래를 고르는 것은 채굴자의 마음이기에 높은 수수료 책정할 수 록 속도가 빨라짐
  • ? 합의 알고리즘 목표와 미치는 영향은?

    • 합의 알고리즘의 목표는 네트워크의 모든 노드들이 같은 정보
      • 옳은 정보 = 공유되는 정보 = 블록 = 거래 내역
    • 사용자가 본인의 거래 완료 보장
    • 채굴자는 보상
    • 시스템은 지속적인 발전을 이룸
  • ? 만약 모든 채굴자가 일시적으로 채굴을 멈춘다면?

    • 거래는 결국 영원히 완료되지 못하고 대기 상태로 머뭄 -> 시스템 마비됨

0개의 댓글