본문 바로가기

프로그래밍/블록체인

[블록체인] 블록체인 작동 원리 및 구조

 

블록체인 작동 순서

  1. A가 B에게 송금
  2. 해당 거래 정보가 담긴 block 생성
  3. 네트워크 내 모든 참여자에게 block 전송
  4. 모든 참여자가 해당 거래의 타당성 확인
  5. 승인된 block을 기존의 chain 에 연결 (거래 기록 수정 불가)
  6. A에서 B에게 송금 완료

 

블록체인 작동 원리

  • 다수의 온라인 거래 기록을 묶어 하나의 데이터 블록을 구성
  • 해쉬값을 이용하여 이전 블록과 체인처럼 연결
  • 정보의 전부 또는 일부를 P2P 방식으로 전 세계 여러 컴퓨터에 복사하여 분산 저장 및 관리

 

노드

  • 네트워크에서 연결 포인트 혹은 데이터 전송의 종점
  • 개개인의 서버(참여자)를 노드라 칭함

 

블록 구조

👉 Header

  • 버전 (version)
    • 소프트웨어 / 프로토콜 버전
  • 이전 블록의 해시값 (previous block hash)
    • 바로 앞에 위치하는 블록의 해시값
  • 머클 해시 (merkle hash)
    • 머클 트리 : 개별 거래 정보의 거래 해쉬를 이진트리 형식으로 구성
    • 트리 루트에 위치하는 해시값
  • 타임스탬프 (timestamp)
    • 블록이 생성된 시간
  • 난이도 (difficulty)
    • 난이도 조절용 수치
  • 논스 (nonce)
    • 최초 0에서 시작하여 조건을 만족하는 해시값을

👉 Body

  • 거래 정보
    • 입출금 관련 여러가지 정보
  • 기타 정보
    • 블록 헤더와 거래 정보를 제외한 정보
    • 블록 해쉬 계산에 사용 x

 

블록 해쉬

  • 블록 헤더 정보를 입력 값으로 SHA256 해쉬 함수를 적용해서 계산되는 값
  • 32 바이트의 숫자 값
  • 블록 전체 해쉬가 아닌, 블록 헤더를 해쉬

👉 머클 해쉬블록 해쉬 관계

  1. 개별 거래의 해쉬값 생성
  2. 개별 거래 해쉬 값 끼리 해싱해서 또 다른 해쉬 값 생성
  3. 1,2 과정 반복
  4. 가장 마지막 해쉬 값이 머클 해쉬
  5. 머클 해쉬를 포함한 블록 헤더를 해싱한 값이 블록 해쉬
  • 블록 헤더의 값 중 유일하게 변경 되는 값은 Nonce
    • 채굴에 이용

 

블록체인 구조

👉 비트코인

비트코인 구조

 

👉 이더리움

이더리움 구조

 

 

Smart Contract

  • 계약 내용과 실행 조건을 컴퓨터 코드를 통해 사전에 설정
    • 해당 조건이 충족 되면 블록체인 네트워크에서 자동적으로 계약 집행
  • 온라인 상에서 거래 중, 중개자 없이도 컴퓨터 코드 만으로 법적 효력을 지닌 계약 집행 가능

 

합의 알고리즘

  • 참여자들의 통일된 의사결정을 위해 사용하는 알고리즘
  • 합의를 통해 검증된 블록이 체인에 연결

👉 작업 증명 (PoW : Proof of Work)

  • 블록 생성을 하고자 하는 노드들이, 특정한 해쉬값을 찾는 연산 수행 후, 특정한 난이도 작업을 수행했음을 증명
  • 마이너들은 해시값을 찾기 위해 경쟁
  • 특정 마이너가 목표값에 해당하는 해시값을 찾는데 성공하면 블록 생성 (채굴, 보상의 개념)
  • 난이도 : 난이도 목표 값보다 작은 블록 해시값을 만드는데에 성공하면 블록 생성
    • 해당 해시를 블록 해시로
  • 논스 : 블록 해시 생성
    1. 0 … N 까지 숫자 변경
    2. 난이도 목표 도달
    3. 블록 생성

 

👉 지분 증명 (PoS : Proof of Stake)

  • 작업 증명 합의 알고리즘의 과도한 에너지 소비 및 채굴 독점화 대안
  • 참여자의 소유 지분, 보유 일수 기반으로 블록 생성 기회 제공
Recent Posts
Popular Posts