소화가 잘되는 비트코인 지식
본 글은
'소화가 잘되는 비트코인 지식'시리즈의
두 번째 글입니다.
혹시 탈중앙화, 비트코인, 블록체인의 뜻이
궁금하다면 1편을 참조해주세요.
1편의 내용을 간단히 정리하자면,
비트코인 시스템이 걱정하는 일은
은행(중앙)에 거래 장부를 넣어뒀을 때
은행이 해킹당하거나 파산하는 겁니다,
그에 대한 해결책은
거래 장부를 은행 서버가 아닌
사용자들의 컴퓨터에 저장하는 것이고요.
이를 위해 쓰인 블록체인이란 기술은
매 10분마다 생겨나는 블록에 장부를 기록해
각 참가자의 컴퓨터에 나눠 저장합니다.
그런데 문득
이런 생각이 듭니다.
중앙이 없다며,
그럼 장부를 누가 나눠줘?
오늘은 이에 대한 대답을 해보려 합니다.
바로 '채굴'로 말이죠.
오늘의 글은
에 대한 답을 담고 있습니다.
비트코인의 반장선거 시스템
난이도 : ★☆☆☆☆
비트코인 시스템이 돌아가기 위해선
누군가 장부를 기록하고 나눠줘야 합니다.
하지만 비트코인은 중앙 서버가 없죠.
비트코인 시스템이 이 문제를 해결한 방법은
거래장부를 적어줄 반장을
매 10분마다 뽑는 겁니다.
여기서 당선된 반장은
지난 10분 동안* 신청된 거래를
승인/기록하고 나눠줄 권한을 가지죠.
*정확히는 체결되지 않은 과거의 모든 거래
예를 들어
돌망, 돌순, 놀란, 버핏이가 있는 그룹이
비트코인 시스템으로 거래한다고 해봅시다.
어느 날 12시에서 12시 10분 사이
돌망, 돌순, 놀란, 버핏이가
다음과 같은 송금을 하겠다고 요청합니다.
그러면 12시 10분,
이들 중 한 명이 반장으로 선정됩니다.
반장은 그날의 거래내역을
블록에 아래와 같이 기록하죠.
이렇게 작성된 블록을 복사해
반장이 다른 그룹원들에게 나눠주면
그제야 송금이 진행됩니다.
이러한 과정은 매일 반복해서 일어나고요.
이를 통해 쌓이는 거래내역은
블록체인의 형태로 다음과 같이 쌓입니다.
즉 돌망, 돌순, 놀란이는
가지고 있는 거래내역들에
매일 새로운 거래내역을 연결해 소장하는 거죠.
정리하자면 비트코인의 거래는
의 구조가 반복되는 겁니다.
쇼미 우승 래퍼 vs 채굴자(승)
앞에서 봤듯이 반장으로 선정된 사람은
거래 내역을 맘대로 작성할 권한이 있습니다.
생각해보니 반장에 당선만 된다면
거래장부에 거짓말만 잔뜩 넣어
마음껏 조작을 할 수도 있는 거거든요.
조작을 막기 위해 만든 비트코인 시스템인데
반장이 마음껏 조작할 수 있다니..!
제법 심각한 문제로 보이는데요.
이 문제를 해결하고자 사토시 나카모토가
비트코인 시스템에 마련한 방법은
바로 반장 당선금입니다.
반장으로 당선된 사람에게 큰 상금을 줘서
모두가 반장이 되기 위해
경쟁하도록 유도하는 거죠.
10분마다..? 상금..?
혹시 눈치채셨나요?
만약 친구가 "나 채굴한다?"라고 말한다면
이는 반장 선거에 출마해 당선된 뒤,
블록을 받아 거래내역을 기록한다는 뜻인 거죠.
반장(채굴자) 당선금은 실로 어마어마한데요.
현재(21년 4월) 6.25개의 비트코인을 주니까..
4억을 조금 넘는 정도입니다.
*채굴 30분 12억 vs 쇼미 7년 9억..
어..?
이건 못 참죠..
높은 금액에 너도나도 출마를 선언합니다.
인기가 많아져 코인의 가격이 높아질수록
채굴에 뛰어드는 사람들은 더 많아질 텐데요.
이러한 경쟁자들 때문에,
장부 조작이라는 나쁜 목표를 가진 참가자는
채굴에 성공할 확률이 자연스레 낮아지게 되는 거죠.
해시 기반의 채굴 시스템
이쯤 되면 이런 의문이 들 겁니다.
그러면 저 많은 채굴자 중
도대체 누가 당선되는 건데?
비트코인 시스템의 채굴 방식,
즉 후보자 중 반장을 뽑는 방법은
바로 '비밀번호 풀기'입니다.
비밀번호는 '해시'라는 함수로 만들어지는데요.
비트코인 시스템은 번호를 가장 먼저 맞춘 사람에게
거래를 기록할 새로운 블록을 주게 됩니다.
해시(HASH)라는 함수의 특징은
어떤 데이터가 들어가던
해당 데이터를 랜덤하게 바꿔 뱉어낸다는 건데요.
쉽게 말해서 사과를 입구에 넣으면
출구로 배를 뱉어내는
마법의 상자라고 생각하면 됩니다.
이 해시함수는
넣은 물건과 나온 물건에 패턴이 존재하지 않아
결괏값으로 입력값을 추측할 수 없는데요.
넣는 값이 조금만 달라져도
전혀 다른 결과물이 나오기 때문에
비트코인 시스템은 이런 특징을 활용해서
*평균 블록 생산시간이 10분인 이유
예를 들어
이번 블록에 '빵'이라는 미션이 걸린다면
채굴자는 빵이 나올 때까지
당근, 콜라, 햄버거 등의 다양한 입력값을
일일이 넣어보는 노가다를 해야 하는 거죠.
채굴자 중 빵을 가장 먼저 뱉어내는
물건을 찾은 사람은 블록을 받게 되고요,
해당 채굴자는 블록에 지난 거래내역을 적어
다른 사용자들에게 나눠주는 역할을 합니다.
물론 실제 비트코인 시스템에서는
과일이나 동물 같은 물체가 아니라
컴퓨터를 통해 숫자나 문자를 넣게 되는데요.
이 숫자와 문자를
함수에 입력하는 속도가 빠르면 빠를수록
채굴에 성공할 확률이 높아지니
사람들은 계산능력이 뛰어난 컴퓨터를
아~~주 많이 사용해서
동시에 문제를 풀도록 합니다.
이 때문에 우리가 뉴스에서 보는 채굴장은
이처럼 수많은 컴퓨터가 차곡차곡 쌓인 채
시끄럽게 돌아가고 있는 모습인 거죠.
오늘의 내용을 정리하자면 비트코인 시스템은
새로운 블록이 생겨날 때마다
알아내는데 10분 정도 걸릴 비밀번호를 문제로 출제합니다.
이 비밀번호는 해시라는 함수로 만들어지는데요.
이 함수에는 일정한 패턴이 없어서
비밀번호를 알아내려면
수많은 숫자/문자를 직접 넣어줘야 합니다.
그리고 이 비밀번호를 가장 먼저 입력하는 사람은
블록에 장부를 기록할 권한과
약 4억에 해당하는 상금을 얻게 되는 거죠.
오늘은 이렇게 채굴에 대해 알아봤습니다.
비록 이번 장에선 간략하게 알아봤지만,
해시는 블록체인에서 아주 중요한 역할을 하는데요.
다음 장에선 비트코인에서 장부 조작을 거의 불가능하게 만드는
이 해시함수의 특성에 대해 보다 자세히 알아보겠습니다.
본 글은 IT 아웃소싱 플랫폼, 위시켓과 함께 만든 콘텐츠입니다.