비트코인의 원리 PART 5-1: 블록체인 원리

in #kr6 years ago (edited)

안녕하세요 여러분. 참새입니다.

우선은 정리된 여러 장부들을 ‘블록’의 형태로 분리합니다. 각각의 블록은 ‘작업증명을 포함한 거래 기록들’을 담고 있습니다.

(질문): “참새님, 작업증명 (proof of work)이란 무엇인가요?”

장부가 거래 기록뿐만 아니라 작업증명을 포함하고 있다는게 무슨 말인지 헷갈리시죠? ㅎㅎ 전의 포스팅에서 알아봤듯이 작업증명이란 SHA-256와 같은 암호화 해쉬 함수로 장부의 정보를 넣었을 때 특정한 숫자들이 나오게끔 해주는 ‘마법의 숫자’입니다.

위의 그림에서처럼 각 장부의 기록들은 다르지만 작업증명 숫자들 (예. 844421851525)을 함께 SHA-256 해쉬 함수에 넣었을 때 첫자리 숫자들에 ‘0’이 계속해서 반복되는 것을 보실 수 있습니다. 거래 기록도 다르고 전자서명도 다르지만 어떤 마법의 숫자를 함께 포함시켜서 함호화 해쉬 함수에 넣어보니 ‘0’이 계속해서 반복이 되었습니다. 이렇듯 ‘0’이 계속 반복되어서 나타나게끔 해주는 숫자를 ‘작업증명’이라고 하고, 이런 ‘작업증명’ 숫자를 찾는 과정을 ‘작업증명 방식’이라고 부릅니다.

위의 그림을 한 번 더 보실게요!

‘어떠한 거래 기록’이 있고, ‘특정 숫자 (320780322309)’를 암호화 시켰더니 첫 60자리 숫자들이 신기하게도 ‘0’이 반복되어서 나타났습니다 (60번이 반복되는 것은 예로 들겠습니다). 암호화를 하는 과정은 랜덤하게 진행되는 것이라서 어떤 숫자를 넣어야지 암호화 시켰을 때 ‘0’이 60번 반복되어서 나타날 지는 아무도 모릅니다. 그러니까 채굴자들은 계속해서 컴퓨터를 돌려서 결과물의 첫 60자리가 모두 ‘0’이 나올 때까지 ‘때려 맞춰야’합니다 ^^;;

정리된 장부들이 블록들로 분리된 후에는, ‘순서’를 정해줘야 하겠죠? ㅎㅎ 여러 종류들의 서류들을 깔끔하게 정리를 해놨는데 순서가 뒤죽박죽이면 안되니까요 ^^;;

‘블록들의 순서’를 정해주기 위해서 각 블록들은 이전 블록 (a previous block)의 해쉬를 포함하게 됩니다.

서류 #2 = 서류 #1의 해쉬 + 장부 거래 기록 + 전자서명 + 작업증명
서류 #3 = 서류 #2의 해쉬 + 장부 거래 기록 + 전자서명 + 작업증명

이런 식으로 서류를 정리하게 된다면 서류들 서로간에 ‘순서’가 명확해지겠죠. 블록을 정리할 때도 똑같습니다.

만약에, 첫 두 블록들의 순서를 바꾸려면 어떻게 해야 할까요?

그림에 보시다시피 첫 번째 블록과 두 번째 블록의 순서가 뒤바꼈습니다. 그런데, 각 블록의 맨 위에는 ‘이전 블록의 해쉬’를 포함하고 있기 때문에 첫 번째 블록과 두 번째 블록의 ‘이전 블록의 해쉬’를 다시 바꿔줘야 하죠. 그런데 더 큰 문제는, 이전 블록의 해쉬를 다시 바꿔준다는 말은 ‘블록의 해쉬’ 또한 바뀐다는 말이기 때문에 원래 지정되었던 첫 번째 블록과 두 번째 블록의 순서를 정식대로 바꾸려면, 이 블록들과 연결되어 있는 모.든. 블록들의 해쉬를 다시 다 찾아야 합니다. 순서 하나 바꾸려면 여태까지의 모든 블록들의 해쉬를 다시 다 찾아야 하니까 불가능에 가깝겠죠 ^^;;

(질문): “참새님, 이전 블록의 해쉬만 다시 찾으면 되는 것 아닌가요? 왜 굳이 모든 이전의 블록들의 해쉬까지 다 찾아야 하나요?”

좋은 질문입니다. 예를 들어서 4개의 블록들이 있다고 가정해보겠습니다. #3 블록과 #4 블록의 순서를 바꾸려면 #3&4 블록들의 ‘이전 블록들의 해쉬’를 다시 찾아야 하는 것까지는 아실 겁니다. 그런데, #4 블록이 #3 블록으로 바꼈으니까 예전 #2 블록의 해쉬는 더이상 #3 (예전의 #4) 블록의 ‘이전 블록의 해쉬’가 아니게 되어버리죠. 그러니까 ‘체인 (사슬)’처럼 연결된 블록들의 일부분 순서를 바꾸려면 모.든. 블록들의 해쉬를 다시 다 찾아줘야 합니다.

이렇듯, 제대로 인증된 블록들은 사슬처럼 연결되어 있기 때문에, 더이상 장부라고 부르지 않습니다.
바로 ‘블록체인’이라고 부르게 됩니다.

간단하게, 체인(사슬)처럼 연결되어 있는 블록들이죠 ^^

참조링크

제 포스팅이 유익하였다면 보팅 , 리스팀, 팔로잉 부탁드립니다 ^^

인터넷의 원리 PART.1: 인터넷이란 무엇인가?
https://steemit.com/kr/@kim066/part-1
인터넷의 원리 PART 2: 와이어, 케이블, 그리고 와이파이 (Wifi) - 1
https://steemit.com/kr/@kim066/part-2-wifi-1
인터넷의 원리 PART 3: 와이어, 케이블, 그리고 와이파이 (Wifi) - 2
https://steemit.com/kr/@kim066/part-3-wifi-3
인터넷의 원리 PART 4: IP 주소 & DNS – (1)
https://steemit.com/kr/@kim066/part-4-ip-and-dns-1
인터넷의 원리 PART 5: IP 주소 & DNS – (2)
https://steemit.com/kr/@kim066/part-5-ip-and-dns-2
인터넷의 원리 PART 6: IP 주소 & DNS – (3)
https://steemit.com/kr/@kim066/part-6-ip-and-dns-3
인터넷의 원리 PART 7: 패킷, 라우팅, 그리고 신뢰성 – (1)
https://steemit.com/kr/@kim066/part-7-1
인터넷의 원리 PART 8: 패킷, 라우팅, 그리고 신뢰성 – (2)
https://steemit.com/kr/@kim066/part-8-2
인터넷의 원리 PART 9: TCP/IP와 UDP/IP (번외편)
https://steemit.com/kr/@kim066/part-9-tcp-ip-udp-ip
인터넷의 원리 PART 10: 암호화와 공개 키– (1)
https://steemit.com/kr/@kim066/part-9-1
인터넷의 원리 PART 11: 암호화와 공개 키– (2)
https://steemit.com/kr/@kim066/part-11-2
인터넷의 원리 PART 12: 사이버 보안과 사이버 범죄 – (1)
https://steemit.com/kr/@kim066/part-12-1

비트코인의 원리 PART 1: 가상화폐란?
https://steemit.com/kr/@kim066/4urqt9-part-1
비트코인의 원리 PART 2: 전자서명이란? (1)
https://steemit.com/kr/@kim066/part-2-1
비트코인의 원리 PART 3: 비트코인의 기본적 정의
https://steemit.com/kr/@kim066/part-3
비트코인의 원리 PART 4-1: 해쉬 함수와 작업 증명 방식의 원리
https://steemit.com/kr/@kim066/part-4-1
비트코인의 원리 PART 4-2: 해쉬 함수와 작업 증명 방식의 원리
https://steemit.com/kr/@kim066/part-4-2

Sort:  

알수록 어렵고 신기한거 같아요 ^^

비트코인이 이런원리 였군요~
좋은 정보 감사합니다.

저 같은 사람들에겐 참 유익한 글이네요.
감사합니다 잘 읽었습니다.

정확히는 조작하려는 블록과 그 ‘뒤’의 모든 블록의 해시값을 다시 찾아야 하지요. 조작하려는 블록 전의 블록들에는 손을 댈 필요가 없고요. 그래서 컨펌 수가 늘수록(거래가 들어간 블록 다음에 블록이 쌓여갈수록) 거래가 기하급수적으로 확정된다고 하는 것이고요.

작업 증명 방식이 저렇게 되는군요...!!!!
0이 반복되는걸 찾아야하는건 저도 몰랐던 사실인데...
감사합니다!!

작업증명이라는 단어의 의미를 더 명확하게 알게 되는군요. 감사합니다.

자료 정말 좋습니다 ㅎㅎ 원리 설명자료들 정주행중입니다. 보팅 하고 갈게요~

언제 트론에 관련된 포스팅 한 번 부탁드립니다. 항상 감사한 마음으로 포스팅 보고 있습니다.^^

다 이해하진 못했지만 블럭체인을 이렇게 상세하게 설명한 포스팅 흔치않다고 생각합니다. 정성을 들여 작성한 글 잘 봤습니다. 팔로우했습니다.

그리고 제가 스팀잇 여기저기 구경다니며 제 소개도 짧게 하고 있습니다.
'터보힘준' 유머(인'터'넷에서 찾아'보'기 '힘'든 수'준'있는 유머)와
인성교육칼럼을 게재하고 있습니다.
인터넷3대 구경거리는 미인, 동물, 유머라고 합니다.
제 창작 품위유머도 한 번 구경 오십시요 @isson99

점점 어려워지는 것 같네요 ㅎ
좋은 정보 잘 보고 갑니다.

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.030
BTC 64724.80
ETH 3460.60
USDT 1.00
SBD 2.51