brunch

You can make anything
by writing

C.S.Lewis

by 북북 Jan 26. 2024

#2 블록의 구조 (해시함수)

#블록체인 #가상화폐 #비트코인

이전 글 요약 (#1블록체인이란? https://brunch.co.kr/@ncsp/9)


    블록체인(Blockchain)이란?
  블록체인은 중앙 시스템이 아닌 모두가 데이터를 공유하는 기술로, 탈중앙화를 실현합니다.      중앙 시스템과 달리 사용자들이 거래 내용을 서로 기록하며, 에러를 감지하기 위해 모두가 동일한 내용을 갖는 것이 핵심입니다.


    블록은 무엇이며 어떻게 구성되어 있는가?
  블록은 거래 내용을 담고 있는 개념으로, 이전 블록의 정보를 담아 체인으로 연결됩니다. 블록체인은 이러한 블록들의 연결로 구성되며, 블록이 고리처럼 연결돼 블록체인이 형성됩니다.      


  그럼 오늘은 이 블록이 어떻게 구성되어 있는지 자세히 살펴보도록 하겠습니다.






본격적으로 블록의 구조를 알아보기 전에 알아야 할

해쉬 함수

  블록은 수직적으로 쌓아진다고 생각되며, 이 하나하나의 블록에는 TXID라는 블록의 해시값이 있습니다. 해쉬값이라는 어려운 용어가 갑자기 등장했죠? 해쉬함수란 임의의 데이터를 고정된 크기의 고유한 값으로 변환하는 함수입니다.


  쉽게 설명해 보자면 어떤 량의 데이터든 와장창 넣으면 짠 하고 같은 자리 숫자의 데이터를 만들어내는 것이라고 생각하면 될 것 같습니다. 블록에 포함되어 있는 정보들을 합산하여 이 해쉬함수에 넣으면 블록의 해쉬값이 나오는 것이죠.


  이 해쉬함수는 들어가는 데이터의 작은 변화에도 출력값이 완전히 변하도록 설계되어 있습니다. 이런 특성이 함수를 역산하지 못하도록 방지합니다. 블록체인 기술에서 이 해쉬함수는 블록의 무결성을 검증하는 데 사용됩니다.


(Hash Function ex. MD5, SHA-1, SHA-256) 비트코인에서 사용하는 SHA-256은 64개의 알파벳 및 숫자로 구성된 출력값을 냅니다. 해쉬함수는 이 64개의 글자만을 비교함으로써 무결성을 검증할 수 있는 효율적인 장치입니다.




블록의 구조

  우선 블록은 크게 헤더 바디로 나뉩니다. 헤더는 메타데이터라고도 하며, 블록에 대한 정보 데이터입니다. 바디는 블록이 담고 있는 거래 및 기타 데이터의 리스트라고 보시면 될 것 같습니다. 블록체인 기술을 이용한 가상화폐인 비트코인의 예시로 이런 블록이 10분에 하나씩 생성됩니다. 이제 헤더의 요소를 하나하나 살펴볼게요.


블록 해쉬 (Hash of the block)

  블록해쉬는 한 블록의 대표 이름이라고 보면 될 것 같습니다. 헤더에 포함되는 버전이전 블록 해시머클 루트타임bits논스 정보를 모두 합하여 해쉬함수로 변환한 값입니다.



버전 (Version)

  해당 블록이 어떤 버전의 비트코인을 사용하고 있는지 나타냅니다. 해당 값을 이용하여 소프트웨어 버전을 추적할 수 있습니다.



이전블록해시 (PreviousBlockHash)

  이전 블록의 블록해시이며, 이 값이 다음 블록에 추가됨으로써 블록 간 연결을 이룹니다. 첫 번째 블록인 제네시스블록 (GenesisBlock)의 PreviousHash 값은 이전 블록이 없기 때문에 0입니다.


머클루트 (Merkle Root)

  거래 정보들의 해쉬값입니다. 머클트리의 최상단 값이며, 머클트리란 거래정보들을 2쌍씩 짝지어 해쉬값을 구하고, 이렇게 나온 값들을 다시 2쌍씩 짝지어 해쉬값을 구하는 과정입니다. 이렇게 반복하여 나온 하나의 해쉬값이 머클루트입니다.

  

  하나의 거래 정보라도 다르게 되면 이 머클루트의 값이 크게 달라지게 되어, 오류를 발견할 수 있습니다.


시간 (Time)

  블록이 생성된 시간입니다.


난이도 목표 (Bits, Target)

  블록 해쉬를 구하기 위한 난이도로 비트코인에서는 10분당 1개가 생성되도록 평균을 맞춰가며 난이도를 설정합니다.


논스 (Nonce)

  헤더 정보중 유일한 변수로, 이 논스를 1에서부터 +1 해가며 블록해시를 구하는 과정을 채굴(Mining)이라고 합니다. 블록해시의 값이 위의 목표보다 작으면 블록이 채굴됩니다.



body


트랜젝션 (Transation)

  앞선 설명에서는 간단하게 거래 내용 정도로 표기하여 설명하였지만, 가상화폐에 따라 다른 세부적인 정보들을 담고 있습니다. 



  

오늘은 블록의 자세한 구조에 대해 알아보았습니다. 최대한 쉽게 써보려 노력했는데, 어렵진 않으셨을까요... 아무튼 저희의 목표는 블록체인의 기초적인 지식을 다진 다음 재테크에 이용하는 것이기 때문에, 큼직하게 구조만 이해하시면 될 것 같습니다. 다음시간에는 합의 알고리즘에 대해 알아보도록 하겠습니다.


오늘도 긴 글 읽어주셔서 감사드립니다.

작가의 이전글 #1 블록체인 및 블록 이해하기
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari