모두가 같은 장부를 들고 있다면
은행 통장은 은행이 장부를 혼자 들고 있어서 믿을 수 있습니다. 비트코인은 반대로 생각했습니다. 장부를 모두가 똑같이 들고 있으면, 누구 한 사람을 믿지 않아도 된다. 문제는 하나입니다. 누군가 자기 장부만 몰래 고쳐서 “내 것이 맞다”고 우기면 어떻게 할까요?
비트코인의 답은 장부를 쪽(블록) 단위로 나누고, 각 쪽을 바로 앞 쪽에 단단히 묶는 것이었습니다. BTCMobick은 이 설계를 그대로 물려받은 체인이라, 여기서 배우는 내용은 비트코인과 모빅 모두에 똑같이 들어맞습니다.
블록 한 장에 들어 있는 것
블록은 대략 네 가지로 이루어집니다.
- 거래 목록 — 누가 누구에게 얼마를 보냈는지. 첫 줄은 언제나 새 코인을 만드는 채굴 보상 거래입니다.
- 이전 블록 해시 — 바로 앞 블록의 ‘지문’.
- nonce — 채굴자가 맞는 해시를 찾으려고 계속 바꿔 넣는 숫자.
- 이 블록의 해시 — 위의 내용을 모두 넣고 계산한 이 블록 자신의 지문.
해시는 어떤 데이터든 정해진 길이의 지문으로 바꾸는 계산입니다. 한 글자만 바뀌어도 결과가 완전히 달라지고, 결과만 보고 원래 내용을 되돌려 알아낼 수는 없습니다. 해시가 어떻게 계산되는지는 다음 레슨에서 직접 만져 봅니다.
직접 고쳐 보기
아래 블록 네 개는 서로 해시로 묶여 있습니다. 이 실험에서는 해시가 00으로 시작해야 유효한 블록이라는 규칙을 씁니다. 두 번째 블록의 거래 내용에서 숫자 하나만 바꿔 보세요.
두 번째 블록의 거래 내용을 한 글자만 바꿔 보세요.
두 번째 블록의 해시가 바뀌는 순간, 세 번째 블록이 들고 있던 ‘이전 블록 해시’도 바뀌고, 그래서 세 번째 블록의 해시가 바뀌고, 네 번째도 마찬가지로 무너집니다. 한 쪽을 고치면 그 뒤가 전부 끊어집니다.
다시 이으려면 ‘다시 채굴’을 눌러 nonce를 처음부터 찾아야 합니다. 이 실험의 조건은 앞자리 0 두 개라서 몇백 번이면 끝나지만, 실제 모빅 블록의 해시는 앞자리 0이 열세 개쯤입니다. 그런 해시를 블록마다 찾아내면서, 그 사이에도 새 블록을 계속 쌓아 가는 정직한 채굴자들을 앞질러야 합니다. 사실상 불가능하다는 것이 이 장부를 지키는 힘입니다.
움직이는 해설 갈라지고, 정해지고, 쌓인다
해시 힘이 절반인 쪽이 세 블록 뒤에서 쫓아갈 때, 시간이 갈수록 격차는?
해설 갈라지고, 정해지고, 쌓인다
1 / 5 · 퍼진다
새 블록은 몇 초 만에 모든 노드로 퍼집니다 — 노드마다 규칙을 검사한 뒤 자기 장부에 붙입니다
노드 1
찾음
노드 2
받음 ✓
노드 3
받음 ✓
노드 4
받음 ✓
2 / 5 · 갈라진다
거의 동시에 두 블록이 나오면 — 노드마다 먼저 받은 쪽을 붙여, 장부가 잠깐 갈라집니다
노드 1
갑
노드 2
갑
노드 3
을
노드 4
을
3 / 5 · 정해진다
다음 블록이 정합니다 — 노드는 일이 더 많이 쌓인 쪽, 보통 더 긴 체인을 따릅니다
버려진 ‘을’ 블록의 거래는 — 대기열로 돌아가 다음 블록에 다시 담깁니다
노드 1
갑
노드 2
갑
노드 3
갑
노드 4
갑
4 / 5 · 예측
누군가 세 블록 전에 담긴 내 거래를 고쳐 쓰려 합니다. 해시 힘은 정직한 채굴자 전체의 절반.
생각해 본 뒤 답 보기
답: 평균적으로 벌어집니다.
고친 블록부터 다시 채굴해야 하는데 — 정직한 쪽은 그동안에도 계속 쌓습니다
평균적으로 격차는 벌어집니다 — 뒤처진 블록이 많을수록 따라잡을 확률은 빠르게 줄어듭니다
정직한 채굴자들
고쳐 쓰는 쪽
격차 7블록
5 / 5 · 쌓일수록
그래서 거래소는 컨펌을 기다립니다 — 내 거래 위로 블록이 쌓일수록 되돌리기 어렵습니다
정직한 채굴자들
11컨펌
고쳐 쓰는 쪽
격차 7블록
대본 읽기 — 해설 전체 글
- 퍼진다. 새 블록은 몇 초 만에 모든 노드로 퍼집니다. 노드마다 규칙에 맞는지 검사한 다음, 자기 장부에 붙입니다.
- 갈라진다. 그런데 거의 동시에 블록 두 개가 나오면 어떻게 될까요? 노드마다 먼저 받은 쪽을 붙이니, 장부가 잠깐 갈라집니다.
- 정해진다. 이 갈림은 다음 블록이 정합니다. 노드는 일이 더 많이 쌓인 쪽, 보통은 더 긴 체인을 따릅니다. 버려진 을 블록에 있던 거래는, 대기열로 돌아가 다음 블록에 다시 담깁니다.
- 예측. 예측해 보세요. 누군가 세 블록 전에 담긴 내 거래를 고쳐 쓰려 합니다. 그 사람의 해시 힘은 정직한 채굴자 전체의 절반입니다. 시간이 갈수록 격차는 어떻게 될까요? 답: 평균적으로 벌어집니다. 고쳐 쓰는 쪽은 고친 블록부터 다시 채굴해야 하는데, 정직한 쪽은 그동안에도 계속 블록을 쌓습니다. 그래서 평균적으로 격차는 벌어집니다. 뒤처진 블록이 많을수록, 따라잡을 확률은 빠르게 줄어듭니다.
- 쌓일수록. 그래서 거래소는 컨펌을 기다립니다. 내 거래 위로 블록이 쌓일수록, 되돌리기는 더 어려워집니다.
해설 음성은 음성 합성으로 만들었습니다.
모빅 체인에서 지금 일어나는 일
홈 화면 맨 위의 블록 띠는 지금 이 순간의 모빅 메인넷입니다. 블록을 눌러 보면 이 레슨에서 본 네 가지가 그대로 들어 있습니다. 블록 해시의 앞자리 0들, 바로 앞 블록과 똑같은 ‘이전 블록 해시’의 끝자리, 그리고 대부분의 블록에 ‘거래 1건’이라고 적혀 있는 것까지 보일 겁니다.
거래가 1건뿐인 블록은 빈 블록이 아닙니다. 그 한 건이 블록마다 새로 생기는 3.125 BMB를 만드는 채굴 보상 거래이고, 모빅에서는 이 보상이 공공재 지갑으로 들어갑니다. 사람들이 주고받는 거래가 없는 시간에도 체인은 10분마다 한 쪽씩 장부를 넘깁니다.
정리
- 장부를 모두가 똑같이 들고 있으면 한 사람을 믿을 필요가 없다.
- 블록은 바로 앞 블록의 해시를 품고 있어서, 하나를 고치면 뒤가 전부 끊어진다.
- 다시 이으려면 그 뒤를 모두 다시 채굴해야 하고, 그 비용이 장부를 지킨다.
확인 문제
맞히면 내 체인에 블록이 하나 쌓입니다
-
Q1블록 안에 ‘바로 앞 블록의 해시’를 적어 두는 이유는 무엇일까요?
앞 블록의 해시가 뒤 블록 안에 들어 있으니, 앞을 한 글자만 고쳐도 뒤의 모든 연결이 끊어집니다. 고치려면 그 뒤를 전부 다시 캐야 합니다.
-
Q2모빅 메인넷에서 새 블록은 평균 얼마마다 하나씩 생길까요?
모빅은 비트코인과 같은 목표 간격(약 10분)을 씁니다. 홈 화면의 다이얼이 한 바퀴 도는 시간이 바로 그 10분입니다.
-
Q3실험에서 두 번째 블록의 내용을 고쳤을 때 무효가 된 블록은 어디까지였나요?
고친 블록부터 그 뒤가 모두 무효가 됩니다. 앞쪽 블록은 뒤를 모르기 때문에 그대로 유효합니다.
근거 자료
틀린 곳이나 바뀐 정책을 찾으셨나요? 메일로 알려 주기 →