[정보] 비트코인의 원리 PART 5-1: 블록체인 원리

image.png

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

image.png

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

image.png

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

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

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

image.png

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

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

image.png

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

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

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

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

image.png

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

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

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

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

image.png

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

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

참조링크

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

인터넷의 원리 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

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

블록체인 기술

번호 제목 글쓴이 날짜 조회수
86 가상화폐 나의 이더리움 분석기 - 중간정리 - 2 icon Work4Block 06-21 3,128
85 가상화폐 이더리움이 go를 사용하는 이유(개인적인 생각) icon Work4Block 06-21 2,326
84 가상화폐 [Ethereum] Smart Contract 개발을 위한 환경 세팅 (Remix, Ganache) icon Work4Block 06-19 7,613
83 가상화폐 나의 이더리움 분석기 - 중간정리 - 1 icon Work4Block 06-19 5,138
82 가상화폐 이더리움 프로토콜 매니져로부터 insertChain함수 호출 까지(Fetcher) icon Work4Block 06-18 2,457
81 가상화폐 이더리움 트렌젝션의 실행 icon Work4Block 06-18 2,424
80 가상화폐 나의 이더리움 분석기 - Light Ethereum Service icon Work4Block 06-18 3,671
79 가상화폐 Technical White Paper for QtumX icon Work4Block 06-09 3,372
78 가상화폐 Traceto(트레이스투) 코인 분석 icon Work4Block 06-09 2,513
77 가상화폐 엑심체인[Eximchain] 제대로 알기 2편 icon Work4Block 06-09 2,366
76 가상화폐 엑심체인[Eximchain] 제대로 알기 1편 icon Work4Block 06-09 2,623
75 가상화폐 Eximchain 미래의 무역과 상거래 플랫폼[백서포함] icon Work4Block 06-09 2,427
74 가상화폐 어거(Augur) 토큰 이코노미에 대한 이슈와 평가 icon Work4Block 06-08 2,537
73 가상화폐 어거(Augur)의 토큰이코노미 설명 icon Work4Block 06-08 2,414
72 가상화폐 팩텀(Factom)의 프로토콜 icon Work4Block 06-08 2,867
71 가상화폐 팩텀(Factom)의 토큰 공급 방식과 가치평가 방법 icon Work4Block 06-08 2,457
70 가상화폐 비트코인의 원리 PART 7: 비트코인의 원리와 인터넷의 원리를 마치며 (에필로그) icon Work4Block 06-07 4,852
69 가상화폐 비트코인의 원리 PART 6: 블록 보상과 거래 수수료 icon Work4Block 06-07 3,385
68 가상화폐 비트코인의 원리 PART 6: 블록 보상과 거래 수수료 icon Work4Block 06-07 2,729
67 가상화폐 비트코인의 원리 PART 5-3: 블록체인 원리 icon Work4Block 06-07 3,507