여덟 번째 이야기
지난 시간에 이어 블록체인 이론 편 두 번째 이야기를 시작하겠습니다.
블록체인에서 난이도 강화?
일반적으로 해쉬 함수는 공개 표준 해쉬 함수 중 256비트인 SHA-2를 사용해요. 그래서 해쉬 제약 완화를 하기 위해서 256비트 중 앞의 40자리를 0으로 채우고, 나머지 216을 조정하도록 하고 있죠. 그리고 이를 통해 해쉬 결과 범위를 조정할 수 있습니다.
SHA(Secure Hash Algorithm) : ) :미국 국가안보국(NSA)이 표준으로 지정한 안전한 해시 알고리즘
각각의 블록들이 가지고 있는 것들
그렇다면, 이 블록체인에서 연결된 각각의 블록들은 무엇을 가지고 있기에, 서로를 연결해나가고 이를 통해 신뢰도를 확보하는 것일까요? 100번째 블록을 들여다보도록 할게요.
BLOCK 100번째에는 다음과 같은 정보를 가지고 있어요.
1) 100번째 블록 내용(100번째 블록에 담긴 거래내역)
2) BLOCK 99의 해쉬값(99번째 블록의 거래내역 암호화된 요약)
3) BLOCK 100의 앞자리 40비트가 되는 nonce값(복호화 시 필요한 정보)
그리고 여기서 더 발전해서, 거래내역을 요약하기 위해 블록 내용의 payload 만 해쉬 하여 갖고 있게 됩니다. 그래서 100번째 블록인 아래와 같은 내용을 포함하게 되는 거죠.
BLOCK 100번째
1) 100번째 블록 내용의 payload 해쉬값(100번째 블록에 담긴 거래내역의 암호화된 요약)
2) BLOCK 99의 payload 해쉬값(99번째 블록의 거래내역 암호화된 요약)
3) BLOCK 100의 앞자리 40비트가 되는 nonce값(복호화 시 필요한 정보)
이렇게, 전 블록의 요약된 내용을 갖고 있음으로써 스스로 블록을 검증할 수 있게 되는 기술이 블록체인입니다. 또한 서로의 내용을 가지고 있기 때문에 체인이 길어질수록 블록의 신뢰도가 증가하게 되죠.
블록체인의 네트워크 구성
1) 각 노드는 독자적으로 블록체인의 내용을 검증
- 누구나 블록을 만들 자격이 있다
- 누구나 블록이 정당한지 검증할 수 있다
2) 각 노드는 독자적으로 블록체인에 블록을 추가
- 거래 1 ~ 거래 N이 payload 해쉬값으로 들어가 추가
- 블록이 연결될수록 이전 블록의 신뢰는 점점 커짐
(이전 블록이 옳다는 것을 검증하며 쌓아가기 때문)
- 새 블록이 만들어지면 즉시 다른 노드에 전송
- 10분에 한 번씩 모여 전 세계의 거래기록 동기화
(해킹이 불가능한 이유)
3) 모든 노드는 정해진 규칙 하에서 동작
4) 중앙집중적인 관리 주체 없이 블록체인의 동작과 검증
- payload에 거래 내역 보관하여 이를 블록체인화
블록체인에 블록은 어떻게 쌓여갈까?
1) 여러 블록이 동시에 들어오면 긴 블록에게 우선권
2) 전 세계에 오직 하나의 거래 장부만 존재
이번 시간은 블록 내용과 블록체인 구성에 대해 알아보았고요. 다음 시간 블록체인 이론에 대해 알아보는 마지막 시간이 되겠습니다. 감사합니다.