블록체인이 실제로 하는 일
블록체인이란 서로를 신뢰하지 않는 다수의 참여자가, 중개자 없이 하나의 기록에 합의하도록 만든 장부 구조다. 거래를 블록에 묶고, 각 블록이 앞 블록의 지문을 품게 해서 과거를 고치면 즉시 드러나도록 설계했다.
앞 글에서 ‘분산 장부’라는 표현을 썼습니다. 그런데 여러 사람이 각자 장부를 갖고 있으면 누구 장부가 맞는지 어떻게 정할까요. 이 글은 그 문제를 어떻게 푸는지 설명합니다.
- 중개자 없이 합의에 이르는 방법 — 블록체인이 실제로 푸는 문제
- 해시(지문)가 위조를 어떻게 막는가
- 작업증명과 지분증명의 차이, 그리고 '채굴'의 정체
- 지갑·개인키의 구조와 '확인 수'를 기다려야 하는 이유
블록체인이 풀려는 문제
디지털 파일은 복사가 쉽습니다. 사진 한 장을 열 명에게 보내도 원본은 그대로 남습니다. 그런데 돈은 복사되면 안 됩니다. 내가 10만 원을 A에게 보냈으면 그 10만 원은 내게서 사라져야 합니다.
현실에서는 은행이 이 문제를 해결합니다. 은행 장부 하나만 보면 되니까요. 그런데 은행 없이 같은 일을 하려면 참여자 전원이 ‘누가 얼마를 갖고 있는지’에 동시에 합의해야 합니다. 이것이 블록체인이 푸는 핵심 문제입니다.
해시 — 내용을 요약한 지문
해시는 어떤 데이터를 넣어도 일정한 길이의 문자열을 뱉는 함수입니다. 세 가지 성질이 중요합니다.
- 같은 입력이면 항상 같은 결과가 나옵니다.
- 한 글자만 바꿔도 결과가 완전히 달라집니다.
- 결과만 보고 원래 내용을 되돌릴 수 없습니다.
앞 글에서 본 것처럼 각 블록은 앞 블록의 해시를 품습니다. 그래서 과거 블록 하나를 고치면 그 뒤 모든 블록의 지문이 어긋납니다. 위조하려면 그 뒤 전부를 다시 만들어야 하는데, 그러는 동안에도 정직한 참여자들은 계속 새 블록을 붙이고 있습니다.
누가 다음 블록을 쓰는가
여러 참여자가 동시에 블록을 만들려 하면 충돌합니다. 그래서 누가 쓸지 정하는 규칙이 필요한데, 이것을 합의 알고리즘이라고 부릅니다. 대표적인 두 가지가 있습니다.
작업증명 — 계산을 많이 한 쪽
비트코인이 쓰는 방식입니다. 참여자들이 정답을 찍어 맞히는 계산 경쟁을 하고, 먼저 맞힌 쪽이 블록을 쓸 권리와 보상을 가져갑니다. 이 경쟁이 흔히 말하는 채굴입니다.
지분증명 — 자산을 많이 맡긴 쪽
이더리움 등이 쓰는 방식입니다. 계산 경쟁 대신 자기 자산을 담보로 맡기고 그 비중에 따라 블록 쓸 기회를 얻습니다. 잘못된 기록을 올리면 맡긴 자산을 잃습니다. 전기 소모가 훨씬 적습니다.
지갑과 개인키
지갑에는 코인이 ‘들어있지’ 않습니다. 지갑이 갖고 있는 건 서명할 수 있는 권한뿐입니다.
‘확인 수’가 의미하는 것
거래소에서 입금할 때 “승인 12/12” 같은 표시를 본 적 있으실 겁니다. 이건 내 거래가 담긴 블록 뒤로 블록이 몇 개나 더 쌓였는지를 뜻합니다.
블록이 뒤에 쌓일수록 그 거래를 뒤집기 어려워집니다. 그래서 거래소는 일정 개수 이상 쌓일 때까지 기다린 뒤 입금을 인정합니다. 입금이 바로 안 뜨는 게 오류가 아니라 안전장치입니다.
블록체인이 못 하는 일
블록체인은 만능이 아닙니다. 오해가 잦은 지점을 정리합니다.
- 내용이 참인지는 보장하지 않습니다. 장부에 적힌 내용이 ‘고쳐지지 않았다’는 것만 보장할 뿐, 애초에 잘못 적힌 정보는 그대로 남습니다.
- 실수를 되돌릴 수 없습니다. 주소를 잘못 입력해 보낸 자산은 회수할 방법이 없습니다.
- 완전한 익명이 아닙니다. 주소에 이름은 없지만 모든 거래가 공개되어 있어, 한 번 신원이 연결되면 과거 기록 전체를 되짚을 수 있습니다.
- 프로젝트의 성공을 보장하지 않습니다. 기술이 정상 작동하는 것과 그 코인의 가치가 유지되는 것은 별개입니다.
정리
- 블록체인은 중개자 없이 하나의 기록에 합의하기 위한 구조다.
- 해시는 내용의 지문이며, 한 글자만 달라도 값이 완전히 바뀐다.
- 블록이 앞 블록 지문을 품기 때문에 과거를 고치면 뒤가 전부 어긋난다.
- 작업증명은 계산력, 지분증명은 맡긴 자산을 걸게 해 거짓말을 손해로 만든다.
- 지갑에 코인이 든 게 아니라 서명 권한이 있는 것이다. 개인키를 잃으면 끝이다.
- 확인 수는 뒤에 쌓인 블록 수이며, 입금 지연은 오류가 아니라 안전장치다.
- 블록체인은 기록의 불변만 보장한다. 내용의 진위나 프로젝트의 성공은 보장하지 않는다.