오늘 끝나면
비트코인
- ✓비트코인의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 비트코인이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
작업증명·채굴·이중지불 막기 — 중앙은행 없는 돈 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
암호 & 보안 · 15
비트코인
작업증명
중앙은행 없이 합의하는 돈이다. 해시 퍼즐을 먼저 푼 사람이 장부에 기록한다. 이게 채굴이다.
누가 장부에 적을지 정해야 한다
돈은 결국 장부다. 누가 누구한테 얼마 보냈다, 이걸 적는 공책이다.
은행은 그 공책을 혼자 쥔 기관이다. 비트코인은 그 은행이 없다.
장부가 모두한테 뿌려져 있다. 그러면 누가 새 거래를 적을 권한을 가지는가가 문제다. 아무나 막 적으면 가짜 거래가 넘쳐난다. 그래서 기록할 사람을 고르는 규칙이 필요하다.
비트코인의 답이 작업증명이다. 해시 퍼즐을 먼저 푼 사람이 이번 기록권을 가진다.
은행 한 곳이 장부를 쥐고 혼자 기록한다
장부가 모두한테 있다. 그런데 누가 적나
해시 퍼즐: 논스를 먼저 찾기
블록(거래 묶음)에 논스라는 숫자를 하나 붙여 해시를 뽑는다.
그 해시가 0이 N개로 시작하게 만드는 논스를 찾아야 한다. 이게 퍼즐이다.
해시는 입력이 1만 바뀌어도 결과가 딴판이 된다. 그래서 어떤 논스가 맞을지미리 알 수가 없다.
방법은 하나뿐이다. 논스를 0,1,2,3 순서로 무식하게 다 넣어본다.
먼저 맞는 논스를 찾은 사람이 이번 블록을 장부에 적는다. 이 찾기 과정이 채굴이다.
| 논스 | 해시 | 맞음? |
|---|---|---|
| 0 | a3f1… | ✕ |
| 1 | 7b2c… | ✕ |
| 2 | c901… | ✕ |
| … | … | ✕ |
| 8431 | 00d4… | 찾음! |
논스를 다 넣어보다 처음 맞는 걸 찾으면 채굴 성공이다
직접 캐보자, 채굴 시뮬
오른쪽에서 직접 캐본다. 논스를 0부터 1씩 올리며 해시를 다시 뽑다가, 조건(0이 N개로 시작)을 만족하는 논스를 먼저 찾으면 멈춘다.
몇 번 시도했고 몇 ms 걸렸는지 카운트로 보여준다.
난이도(앞자리 0 개수)를 1만 올리면 시도 횟수가 평균 16배씩 폭증한다. 찾기는 점점 어려워진다.
[채굴 시작]을 누르면 논스를 0부터 1씩 올리며 해시를 계속 다시 뽑는다. 조건 맞는 논스를 먼저 찾으면 멈춘다.
찾기는 어렵고, 검증은 즉시
작업증명의 핵심은 비대칭이다. 찾기는 수백만 번 굴려야 하지만, 확인은 단 한 번이면 된다.
자물쇠 비번 찾기와 같다. 직접 풀려면 수없이 돌려야 하지만, 정답을 받으면 한 번 넣어보고 딸깍 끝난다.
채굴자가 찾은 논스 하나만 받으면 모두가 해시 한 번으로 검증한다.
그래서 거짓말을 못 한다. 기록권을 얻으려면 계산 비용을 치렀다는 증거(=논스)를 내야 한다. 그게 “작업”을 “증명”한다는 뜻이다.
수백만 번 굴려야 한다
찾은 논스 하나만 넣고
해시 딱 한 번이면 끝난다
누구나 즉시 확인한다
난이도가 오르면 조작 비용도 폭증
난이도가 오르면 시도 횟수가 폭증한다. 0 한 자리 더 요구하면 평균 16배 더 굴려야 한다.
블록들은 사슬로 엮여 있다. 과거 한 블록을 고치면 그 뒤 모든 블록의 해시가 깨진다.
그걸 다시 맞추려면 그 블록부터 끝까지 전부 다시 채굴해야 한다. 그것도 전 세계 채굴자보다 빨리 해야 한다. 사실상 불가능하다.
이 막대한 비용이 곧 보안이다. 과거를 못 바꾸니 이중지불도 못 한다. 한 코인을 두 번 못 쓴다.
Q. 작업증명에서 채굴이 일부러 어렵게 설계된 이유는?
기록에 비용을 들게 해서 과거 조작을 비싸게 만들려는 것이다. 한 블록을 고치면 뒤 블록을 전부 다시 캐야 하는데, 난이도 때문에 그 비용이 천문학적이다. 반면 검증은 쉬워서 논스 하나로 모두가 한 번에 확인한다. 어렵게 풀고 쉽게 확인하는 이 비대칭이 비트코인을 지킨다.0 한 자리 더 요구하면 약 16배 더 굴려야 하고 조작 비용도 같이 폭증한다