안녕 지난 시간엔 작업증명을 알아보았어. 이번엔 블록체인의 핵심이라고 할 수 있는 ‘블록’에 대해서 알아볼거야. 비트코인뿐만 아니라 다른 네트워크에서도 기본적으로 쓰이는 용어이니, 이번 시간에 잘 배워두면 다른 블록체인을 공부할 때도 도움이 될거야. 그럼 고고고!
블록의 ‘ㅂ’ 들어가기 전,
비트코인 거래의 흐름도를 알아볼거야. 작업증명, 프로토콜, 노드, 채굴 등등 낯선 용어가 많아서 전체적인 흐름을 보는 시간이 필요할거야. 하단 이미지를 참고해서 대략적인 흐름만 가져가도 좋아!
Rob이 Laura에게 비트코인을 송금하는 과정(출처)
- 지갑 프로그램을 실행하여 개인 지갑 생성
- 비트코인 전송
- 트랜잭션 전송 및 검증
- 블록 생성
- 블록 전송 및 검증
- 검증된 블록의 체인 연결
- 송금 완료
블록이란?
아주 간단하게 설명하자면, ‘데이터’ 그 자체야. 그냥 데이터 종류의 하나일 뿐이고, 특별한 것은 없어. 다만, 이 블록이 구성하고 있는 블록체인은 ‘추가’만 가능한 링크드 리스트, 즉 데이터 베이스의 일종이기 때문에 보안분야에서 각광을 받고 있는 것이지.
실시간 블록 현황, 화살표 표시 : 블록 번호, 체크 표시 : 블록이 나열된 것을 시각화한 것 (출처)
블록은 데이터이기도 하지만 블록체인에서의 거래내역, 데이터 등을 저장하는 단위야. 하나의 블록 안에는 여러 개의 거래내역이나 데이터가 저장돼. 비트코인의 경우, 블록 한 개당 1MB, 블록 한 개에 약 4000여개의 거래를 담을 수 있어. 전세계인들이 사용한다고 생각하면, 엄청 적은 양이지.
블록은 대략적으로 하단 이미지 처럼 구성되어 있어.
블록 구성도
블록 식별 정보가 입력되어 있는 해시(hash), 블록의 다양한 정보가 들어있는 헤더(header), 거래내역, 데이터 등이 담겨있는 바디(body)로 구성되어 있지.
비트코인 익스플로러(Bitcoin Explorer)
비트코인 익스플로러를 통해서 확인을 해보자. 참고로, 비트코인 익스플로러는 여러 사이트에서 제공하고 있어. 비트코인 재단, BIP에서 만들지 않아. 각자 보기 편한 익스플로러를 찾아서 블록을 보는 것도 좋은 방법이 될 수 있어.
블록이 나열되어 있는 블록체인을 시각화 한 것(출처)
블록체인 익스플로러에서 확인할 수 있는 헤더 및 바디 정보(출처)
- 버전(version)
소프트웨어 혹은 프로토콜의 버전 정보
- 이전 블록의 해시(previous hash, 상단 이미지 : previousblock에 해당)
SHA256으로 암호화된 64자 코드로 이전 블록의 식별 데이터
- 블록 생성 시간(time)
현재 블록이 생성된 시간
- 계산의 난이도, 비츠(bits)
Nonce 값을 계산할 때 난이도를 측정한 값 (작업증명의 해시 난이도 목표 값)
- 작업 증명 계산 결과, 논스(nonce)
새로운 블록을 추가(채굴)하려면 새로운 블록의 해시값을 찾아야 하는데, 이때 사용되는 값이 논스야. 채굴자가 노드 컴퓨터를 이용해서 입력값을 바꾸는 것이지. 즉, 노드 컴퓨터의 계산과정을 통해 맞춘 값이 논스야. 해시함수 특성상 역산으로는 사실상 추론이 어려워. 그래서 일방향 함수라고 불러. 따라서 특정 값이 나올 때까지 무작위로 값을 넣어야 해. 여기서 컴퓨팅 파워가 쓰이는 것이지. 채굴자의 노고가 들어가기 때문에 채굴자는 채굴 원가 이상으로 비트코인 가격을 정하기도 해.
- 머클 루트(merkle root)
머클트리의 구조(출처)
머클 트리 형태에서 가장 상위의 해시값 정보, 모든 거래 정보를 요약한 해시값이야. 장점은 블록체인의 무결성 검증에 있어 효용성을 높여줘.
머클 트리란 바디 내에 있는 거래 내역의 해시 값을 모아놓은 정보인데, 거래가 발생할 때마다 가장 가까운 거래내역과 짝을 이뤄 하나의 해시를 만들어. 거래가 발생하는 행위가 반복해서 가장 마지막으로 나온 해시가 머클 루트인 셈이지. 아래에 해당하는 개별 거래 내역 값이 변조될 경우 꼭대기에 해당하는 머클 루트 값이 바뀌어. 마치 도미노처럼 말이지. 이를 통해 바디 내의 거래내역의 무결성을 검증할 수 있어.
📍더 알아보기 : https://t.me/coiniseasy
📍코인이지 앱 :
IOS- https://apps.apple.com/us/app/coineasy/id6463145391
Andoid - https://play.google.com/store/apps/details?id=com.coineasy.coineasy
댓글 3개
다사랑
2024.05.26 16:39:29
감사합니다.
러너일이
2024.05.22 21:52:00
잘 봤습니다.
HelloXDC
2024.05.22 15:15:50
감사합니다
2024.05.22 11:13:12