티스토리 뷰
크립토퀀트에서 데이터를 보다가 이 데이터가 어떻게 나오는 것인가? 라는 궁금증에 '블록체인' (+비트코인)을 공부하고 있다.
블록체인이란 무엇인가? 바로 블록이 체인처럼 연결되어 있는 것이다.
그럼 여기서 살펴볼 포인트는 아래 2가지이다.
1. 블록은 무엇인가?
2. 체인처럼 연결되어 있다는 것은 어떤것인가?
1. 블록은 무엇인가?
우선 실제 1개 블록을 읽어와 살펴보겠다. (설명보다, 어떻게 생겼는지 먼저 눈으로 확인해보자)
json 형식으로 블록 1개를 읽어오면 아래와 같다.
https://chainquery.com/bitcoin-cli/getblock 에서는 블록해쉬만 알면 해당 블록을 조회해볼 수 있다.
블록해쉬는 https://www.blockchain.com/btc/blocks 에 표시되는 해쉬 중 1개를 이용하면 된다.
위의 문자와 숫자의 나열들이 무엇을 의미하는지 살펴보자.
블록은 크게 헤더(header) / 바디(body) / 기타 정보 로 구성된다.
- 헤더(header) : 비트코인의 거래 데이터들을 안전하게 만들고 관리하는 부분이라고 할 수 있겠다. 블록 헤더는 version, previousblockhash, merklehash, time, bits, nonce 이렇게 6개의 정보로 구성된다.
- 바디(body) : 실제 비트코인의 거래 정보(tx)이라고 할수 있겠다. 트랜잭션(tx)이라 부른다.
- 기타 정보 : 헤더와 거래 정보에 포함되지 않는 정보를 말하며, 블록해쉬 계산에 사용되지 않는다.
거래 데이터들을 안전하게 만드는 주요 정보 및 방법이 있는 헤더(header)에 대해 먼저 알아보도록 하겠다.
블록헤더
블록헤더는 6가지 정보로 구성된다. 블록 헤더가 중요한 이유는 블록의 식별자 역할을 하는 블록 해쉬가 이 블록 헤더의 6가지 정보를 입력값으로 해서 구해지기 때문이다.
- 버전(version) : 소프트웨어/프로토콜 버전
- 이전 해쉬(previousblockhash) : 블록 체인에서 바로 앞에 위치하는 블록의 블록 해쉬
- 머클해쉬(merklehash) : 개별 거래 정보의 거래 해쉬를 2진 트리 형태로 구성할 때, 트리 루트에 위치하는 해쉬값
- 시간(time) : 블록이 생성된 시간
- 비츠(bits) : 난이도 조절용 수치
- 논스(nonce) : 최초 0에서 시작하여 조건을 만족하는 해쉬값을 찾아낼때까지의 1씩 증가하는 계산 회수
블록해쉬
블록 헤더의 6가지 정보를 입력값으로 SHA-256 알고리즘을 사용하여 구해진다. 블록의 식별자 역할을 하며, 블록 체인을 연결하는 중요 구성요소이다.
블록바디
비트코인을 주고받는 거래(트랜잭션)의 모음이다. 1개 블록에는 평균 1800개의 트랜잭션이 포함된다.
유명한 피자데이 트랜젹션을 한번 보도록 하겠다. 직관적인 이해를 위하여, 블록체인 익스플로러를 이용해보자.
피자데이 트랜잭션은, 비트코인을 이용한 첫 실물거래의 사례로,
2010년에 피자 2판을 10,000 코인(무려 ㄷㄷ)을 이용해 구입에 성공한 것이다.
아래 그림을 보면 2010년 5월 23일에 10000.00000000 BTC 가 보내진 것을 알 수 있다.
블록 바디 부분은 이런 거래 데이터들의 모음이다.
블록체인
블록 체인은 기술적으로 블록이 이어져 만들어진 블록 집합체라고 할 수 있겠다.
"어떻게" 체인이 이어져 있는 것인가에 대한 궁금증은 아래 그림으로 직관적으로 이해해보자.
그렇다. 블록체인은 링크드 리스트 이다.
블록에 바로 이전 블록의 해쉬값을 포함시켜 비엔나 소시지처럼(?) 줄줄이 엮어 놓은 것이라고 할 수 있겠다.
블록과 블록체인에 대한 개략적으로 이해한 내용을 작성해보았다. 앞서 정리를 훌륭히 잘해주신 분들이 있어 비교적 쉽게 다가갈 수 있었던 것 같다.
참고사이트
'블록체인' 카테고리의 다른 글
전자서명과 공개키 암호화 (0) | 2022.05.14 |
---|---|
파이썬으로 블록 해쉬 계산 (0) | 2022.04.29 |
- Total
- Today
- Yesterday
- pandas apply
- Dash 와 html 차이
- 블록해쉬구현
- 환율이평선
- 말잔
- ChatGPT
- 내 연금조회
- 위경도변환
- 프로그래스바 표시
- 경제는 어떻게 움직이는가
- 원계열
- 연금저축
- 환율데이터
- 마연굴
- 블록해쉬
- 리치고
- Forgiving
- 경제주체별 M2
- dash
- 객사오
- 연금등록
- 김성일 작가님
- 통화량 데이타
- M1M2비율
- 리치고 주식
- 환매시점
- 주소를 위경도 변환
- M1/M2
- 계정조정계열
- Dash.html
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |