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