블록체인의 구조
참고:https://steemit.com/kr/@yahweh87/3
#3- 블록체인 기술 및 블록에 관한 정의 — Steemit
안녕하세요. 어미새입니다. 저번 포스팅에서는 해시함수에 대해 알아봤습니다. 저번시간 내용을 간략하게 정리해보면 아래와 같습니다. 해시함수 해시함수는 임이의 길이를 갖는 메시지를 입
steemit.com
1.블록이란?
- 거래내역 즉 트렌잭션 뭉탱이와 이외의 값들로 구성돼있다.
- 블록체인의 가장 작은 단위이다.
2.블록의 구성요소
블록은 크게 블록헤시,head,body로 구성된다.

3.블록헤시
해당 블록의 이름이라고 생각하면된다.
블록헤시를 구하는 과정을 정말 간단하게 설명하면
->
블록의 header 내용들을 순서대로 이어 붙혀 하나의 값으로 만든다.그 후 SHA-256해시 함수의 입력으로 하여 얻은 결과가 블록헤시이다.
*블록해시를 생성하려면, 일정한 조건을 만족해야 한다!(nonce 부분에서 추가 설명)

4.Header
위에서 header의 내용은 블록해더를 만드는 내용들이라했다.
하나씩 살펴보면

1)버전(version): 블록 헤더를 만든 프로그램의 버전 정보를 말한다
2)이전 블록 해시(previousblockhash): 블록이 생성되어 체인에 연결될 때 직전에 연결된 블록의 블록해시 값

3)타임(time): 블록이 생성된 시간
4)난이도 목표(target): 블록해시를 생성하기 위해서는 target보다 작은 hash값을 찾아야만 블록해시로 인정된다.
즉 target 값이 1에 가까워질 수록 블록해시를 생성하는데 오랜시간 걸린다.
5)머클루트(merkle root):
블록체인 검증기술, 머클트리, 머클루트 - 모두의 블록체인 #7 (tistory.com)
이곳을 참고
*여기 까지의 header의 구성요소들은 블록 생성과 동시에 정해진 값들이다.
6)nonce:
블록해시 부분에서 "블록을 대표하는 해시값인 블록해시를 생성하려면, 일정한 조건을 만족해야 한다."라는 말중
조건은 target 보다 작은 해시값을 채택해야하는 것이다.
예) 목표값이 10이라면 10> sha256( block header값들)을 만족하는 해시값을 블록해시로 채택한다.
해당 조건을 만족하는 해시값(블록해시)을 구하다는 말은 조건을 만족시키는 nonce 값을 찾는다는 말과 같다.
*header의 구성요소들 중 nonce를 제외한 모든 요소들은 블록해시 생성전에 미리 정해져있다.
그럼으로 블록해시 조건을 만족하기 위해서는 nonce값을 변경하면서 조건에 맞는 블록해시를 구해야한다.*
5.채굴
채굴은 target 존건을 만족하는 nonce를 구하는 작업을 말한다.
채굴에 성공한 채굴자는 이 블록을 블록체인내에 있는 모든 노드들에게 전파시킨다!
전파 받은 노드들은 이 블록의 유효성 검사를 실시한다.
유효성 검사는 다음 포스팅에...