오늘 끝나면
비트코인
- ✓비트코인의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 비트코인이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
작업증명·채굴·이중지불 막기 — 중앙은행 없는 돈 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
암호 & 보안 · 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배 더 → 조작 비용도 같이 폭증