코인 02 · 블록체인 · 투자 공부 노트

블록체인
— 장부는 어떻게 생겼나

앞 편에서 「모두가 장부를 갖는다」까지 왔습니다. 그런데 누가 거짓 장부를 퍼뜨리면 어떻게 하나라는 문제가 남았습니다. 블록체인은 그 답입니다. 이 편의 목표는 하나입니다 — 「왜 한 번 적힌 것을 고칠 수 없는가」를 말이 아니라 직접 깨뜨려보면서 이해하는 것.

이 편에서 진짜 계산이 돌아갑니다. 아래 해시 값들은 설명용 가짜 숫자가 아니라, 여러분 브라우저가 실제로 계산한 SHA-256입니다. 비트코인이 쓰는 것과 같은 함수입니다. 글자 하나만 바꿔보면 무슨 일이 일어나는지 직접 보세요.
읽기 모드
비유와 그림 위주 — 아이와 함께 보기 좋아요
01 · 해시

해시 — 어떤 글이든 같은 길이의 지문으로

블록체인의 모든 것이 이 하나의 도구 위에 서 있습니다.

🧒 아이 눈높이

아주 이상한 믹서기가 하나 있다고 생각해봐. 무엇을 넣든 — 글자 한 개든 책 한 권이든 — 항상 똑같은 길이의 이상한 글자 뭉치가 나와.

이 믹서기에는 특별한 성질이 세 개 있어.

① 같은 걸 넣으면 항상 같은 게 나와. ② 아주 조금만 바꿔도 — 점 하나만 찍어도 — 결과가 완전히 딴판이 돼. ③ 나온 결과를 보고 원래 뭘 넣었는지는 알 수 없어. 되돌리기가 안 되는 믹서기야.

아래에 직접 넣어봐. 글자 하나만 바꿔보면 ②번 성질이 뭔지 바로 알 수 있어.

TRY · 직접 해시를 만들어보세요

아래 칸에 아무거나 입력해보세요. 글자 하나만 바꿔도 아래 결과가 어떻게 변하는지 보세요.

계산 중…
입력 길이—글자
출력 길이—항상 같음
앞자리가 0인 개수—채굴에서 쓰입니다
해시의 성질
무엇을 넣어도 길이는 같습니다

한 글자를 써도, 소설 한 권을 넣어도 결과는 항상 64자리입니다. 그리고 글자 하나만 바꿔도 결과 전체가 완전히 달라집니다. 직접 마침표 하나만 찍어보세요.

참고. 여기서 쓰는 것은 SHA-256으로, 비트코인이 실제로 쓰는 해시 함수입니다. 브라우저에 내장된 기능으로 계산하므로 어디로도 전송되지 않습니다.

02 · 핵심

체인 — 한 칸을 고치면 뒤가 전부 무너집니다

이 편에서 가장 중요한 실습입니다. 직접 고쳐보세요.

🧒 아이 눈높이

공책에 장부를 적는데, 특별한 규칙을 하나 넣었어. 새 페이지를 시작할 때 맨 위에 「앞 페이지의 지문」을 먼저 적는 거야.

그러면 어떻게 될까? 누가 3번 페이지의 내용을 몰래 고치면, 3번 페이지의 지문이 바뀌어. 그런데 4번 페이지 맨 위에는 「고치기 전의 지문」이 적혀 있잖아. 안 맞아! 그래서 들통이 나.

들키지 않으려면 4번도 고쳐야 하고, 그러면 5번도, 6번도… 뒤에 있는 걸 전부 다시 써야 해. 이게 블록체인이 「고칠 수 없다」고 말하는 이유야.

아래 블록의 글자를 아무거나 바꿔봐. 무슨 일이 벌어지는지 직접 보자.

BREAK IT · 블록 내용을 고쳐보세요

각 블록은 앞 블록의 해시를 품고 있습니다. 아무 블록의 내용이나 바꿔보세요 — 그 뒤가 전부 빨갛게 변합니다.

전체 블록5
깨진 블록0
체인 상태정상
체인 상태
아직 아무것도 건드리지 않았습니다

블록 안의 글자를 하나만 바꿔보세요. 그 블록부터 끝까지 어떻게 되는지 보시면 됩니다.

여기까지는 「들킨다」일 뿐입니다

지금 실습은 「고치면 표가 난다」는 것까지만 보여줍니다. 그런데 공격자가 뒤의 블록을 전부 다시 계산해버리면 어떻게 될까요? 계산기만 있으면 위 실습에서는 순식간에 됩니다.

그래서 한 가지 장치가 더 필요합니다 — 블록을 하나 만드는 데 아주 큰 비용이 들게 만드는 것입니다. 그게 작업증명이고, 다음 편(03 · 채굴)의 주제입니다.

즉 블록체인의 안전은 「해시 체인」 하나가 아니라 「해시 체인 + 비싼 계산 + 다수결」 셋의 조합에서 나옵니다. 하나만 떼어놓고 「블록체인이라 안전하다」고 말하는 것은 정확하지 않습니다.


03 · 블록의 내용물

블록 안에는 무엇이 들어 있나

생각보다 단순합니다. 네 가지뿐입니다.

INSIDE · 눌러서 확인하세요

비트코인 블록의 구성을 단순화한 것입니다.

구성 ①
—

블록 크기와 「10분」

비트코인의 블록은 대략 10분에 한 개씩 만들어지고, 담을 수 있는 거래 수에 한계가 있습니다. 그래서 거래가 몰리면 대기줄이 생기고 수수료가 올라갑니다 — 수수료를 더 낸 거래가 먼저 블록에 들어가기 때문입니다.

왜 10분일까요? 더 짧게 하면 전 세계 참여자에게 블록이 퍼지기 전에 다음 블록이 나와 충돌이 잦아지고, 더 길게 하면 확정이 너무 느려집니다. 절대적으로 옳은 값이 아니라 설계상의 타협입니다.


04 · 소유의 증명

「내 돈」이라는 걸 어떻게 증명하나

아이디도 비밀번호도 없는데, 어떻게 내 코인인 줄 알까요?

🧒 아이 눈높이

열쇠가 한 쌍으로 만들어져. 개인키는 나만 갖는 진짜 열쇠고, 공개키(주소)는 모두에게 알려주는 우편함 주소야.

신기한 건 개인키로 「서명」을 하면, 모두가 그게 진짜인지 확인할 수 있는데도 개인키가 뭔지는 아무도 모른다는 거야. 도장은 보여주지 않으면서 도장이 찍혔다는 건 증명하는 셈이지.

그래서 코인에는 「비밀번호 찾기」가 없어. 개인키를 잃어버리면 그 돈은 영원히 그 자리에 남아 있지만 아무도 꺼낼 수 없어. 실제로 그렇게 잠긴 비트코인이 아주 많아.

DIAGRAM · 한 방향으로만 갑니다

개인키에서 주소는 만들 수 있지만, 반대는 불가능합니다. 화살표가 한쪽으로만 있는 이유입니다.

개인키
—

여기서 실전 교훈이 하나 나옵니다. 코인에서 「비밀번호」에 해당하는 것은 개인키(또는 그것을 사람이 외울 수 있게 만든 시드 문구 12~24단어)입니다. 이걸 잃으면 복구가 구조적으로 불가능하고, 남에게 알려주면 그 순간 돈이 넘어갑니다.

그래서 「고객센터입니다, 시드 문구를 알려주세요」는 100% 사기입니다. 어떤 정상적인 서비스도 시드 문구를 물어볼 이유가 없습니다. 이 이야기는 08편(투자 실전)에서 더 다룹니다.


05 · 공격

51% 공격 — 이론적으로 가능한 유일한 길

「해킹당했다」는 뉴스의 대부분은 사실 블록체인이 뚫린 게 아닙니다.

🧒 아이 눈높이

장부를 고치려면 뒤에 있는 페이지를 전부 다시 써야 한다고 했지? 그런데 그동안 다른 사람들은 계속 새 페이지를 앞으로 붙이고 있어.

그러니까 혼자서 따라잡으려면 나머지 사람들 전부를 합친 것보다 빨라야 해. 반 전체가 30명인데 나 혼자 16명 몫의 속도를 내야 하는 거야. 그게 51% 공격이야.

가능은 해. 다만 엄청나게 비싸. 그리고 재밌는 게 있어 — 그만한 돈이 있으면 공격하는 것보다 그냥 정직하게 참여해서 보상받는 게 더 이득이야. 사토시는 그걸 노렸어.

SIMULATOR · 얼마나 있어야 뒤집을 수 있나

공격자가 전체 계산력의 몇 %를 가졌을 때, 이미 확정된 블록을 몇 개나 되돌릴 수 있는지 봅니다.

25%
6개
성공 확률
—
공격 시뮬레이션
—

계산 방식. 사토시가 백서에서 제시한 방식(공격자가 뒤처진 상태에서 따라잡을 확률)을 단순화해 계산했습니다. 실제로는 네트워크 지연·수수료·장비 조달 같은 요소가 더 있어 훨씬 복잡합니다. 여기서 볼 것은 정확한 확률이 아니라 「블록이 쌓일수록 뒤집기가 급격히 어려워진다」는 성질입니다.

「거래소가 해킹당했다」와 「블록체인이 뚫렸다」는 다릅니다

대형 사고 뉴스의 대부분은 블록체인 자체가 아니라 그 주변이 뚫린 것입니다. 거래소 서버, 개인 지갑, 스마트 컨트랙트의 버그, 혹은 사람이 속아 넘어간 것입니다.

비유하자면 금고는 멀쩡한데 열쇠를 도둑맞은 것에 가깝습니다. 이 구분이 중요한 이유는 — 「블록체인은 안전하다」는 말이 「내 코인은 안전하다」는 뜻이 전혀 아니기 때문입니다.

작은 코인일수록 위험합니다

51% 공격이 비싼 이유는 참여자가 많기 때문입니다. 반대로 참여자가 적은 작은 코인은 공격 비용도 작습니다. 실제로 규모가 작은 몇몇 체인에서 51% 공격이 성공한 사례들이 있었습니다.

즉 「블록체인이니까 안전하다」는 코인마다 다릅니다. 네트워크가 클수록 안전하고, 작을수록 취약합니다. 이건 「기술이 좋다/나쁘다」의 문제가 아니라 규모의 문제입니다.


06 · 한계

왜 느리고 비싼가 — 피할 수 없는 삼각형

기술이 덜 발전해서가 아닙니다. 구조적으로 셋을 동시에 가질 수 없습니다.

🧒 아이 눈높이

블록체인이 원하는 게 세 가지야. ① 안전할 것, ② 빠를 것, ③ 아무나 참여할 수 있을 것.

그런데 셋을 동시에 갖기가 아주 어려워. 아무나 참여하게 하면서 안전하려면 모두가 다 확인해야 하니까 느려져. 빠르게 하려면 확인하는 사람을 줄여야 하는데, 그러면 아무나 참여하는 게 아니게 되지.

은행 시스템은 이 중에서 ②번과 ①번을 골랐어. 빠르고 안전한 대신 아무나 은행이 될 수는 없어. 비트코인은 ①번과 ③번을 골랐고, 그래서 느려.

TRILEMMA · 두 개만 고를 수 있습니다

꼭짓점을 눌러보세요. 무엇을 포기했는지가 나옵니다.

선택
—

해결하려는 시도들

레이어2가 대표적입니다. 「모든 거래를 메인 장부에 적지 말고, 자기들끼리 여러 번 주고받은 뒤 결과만 적자」는 발상입니다. 비트코인의 라이트닝 네트워크, 이더리움의 롤업이 이 방식입니다.

다른 방향은 애초에 참여자를 제한하는 것입니다. 소수의 검증자만 두면 빨라집니다 — 다만 그만큼 「아무나 참여」를 포기한 것이고, 그 지점에서 「그럴 거면 그냥 데이터베이스를 쓰지 왜?」라는 질문이 따라옵니다.

트릴레마는 「아직 못 푼 문제」가 아니라 「구조적 맞교환」에 가깝습니다. 어떤 코인이 「셋 다 해결했다」고 주장한다면, 무엇을 어떻게 포기했는지를 찾아보는 게 좋습니다. 대개 어딘가에 대가가 있습니다.


07 · 정리

「블록체인은 좋지만 코인은 별로」가 가능한가

한때 많이 나왔던 말입니다. 반은 맞고 반은 틀립니다.

◤ 블록체인이 실제로 잘하는 것
  • 서로 못 믿는 참여자들 사이의 기록. 관리자를 세울 수 없는 상황.
  • 검열 저항. 특정 주체가 막을 수 없어야 하는 경우.
  • 공개 검증. 누구나 전체 기록을 확인할 수 있어야 할 때.
  • 가치를 직접 옮기는 것. 중개자 없이 소유권이 이동합니다.
◤ 굳이 쓸 필요 없는 것
  • 관리자가 있어도 되는 일. 그냥 데이터베이스가 빠르고 쌉니다.
  • 고쳐야 할 일이 생기는 기록. 오타 하나 못 고칩니다.
  • 대용량 데이터. 저장 비용이 비교가 안 됩니다.
  • 현실 정보의 정확성. 「이 사과가 유기농」이라고 거짓으로 적어도 블록체인은 그대로 영구 보존합니다.

「코인 없는 블록체인」이 어려운 이유

공개 블록체인에서 코인은 장식이 아니라 부품입니다. 아무나 참여하는 네트워크에서 정직하게 일한 사람에게 보상을 주려면 그 보상이 필요하고, 공격을 비싸게 만들려면 값이 있는 무언가가 걸려 있어야 합니다.

즉 「누구나 참여하는 공개 네트워크」를 원한다면 코인을 떼어내기 어렵습니다. 반대로 참여자를 정해두는 폐쇄형이라면 코인 없이도 되지만, 그 경우는 앞서 말한 대로 기존 데이터베이스와의 차별점이 크지 않은 경우가 많습니다.

그래서 정확한 표현은 이렇습니다 — 「블록체인이 만능이 아니다」는 맞고, 「코인만 빼고 쓰면 된다」는 상황에 따라 다릅니다.

이 편의 요약. 블록체인이 「고칠 수 없는 장부」인 이유는 해시 체인 + 비싼 계산 + 다수결의 조합입니다. 셋 중 하나만 떼면 성립하지 않습니다.

그리고 반드시 구분해야 할 것 — 「블록체인이 안전하다」는 「내 코인이 안전하다」가 아닙니다. 사고의 대부분은 거래소·지갑·사람에게서 일어납니다. 다음 편에서는 「비싼 계산」이 정확히 무엇인지, 그리고 코인이 세상에 나오는 방식을 봅니다.