비트코인은 자유주의자로 묘사되곤 합니다.
그러나 자유주의자나 금 본위제를 지지하는 사람 모두가 비트코인을 반기는 것은 아니며, 일부에서는 혐오감을 드러내기도 합니다. 경험에 따르면, 이 혐오자들은 비트코인에 관한 일부 기본 개념을 제대로 이해하지 못했습니다. 비트코인을 제대로 이해하려면 비트코인의 동작 원리와 이유를 철학적으로 이해할 필요가 있죠.
몇몇 개인들이 운영하며 여러 개의 다른 집단으로 구성된 하나의 분산 시스템이 어떻게 통일성을 유지하면서도 ‘공유지의 비극’이라는 상태를 피할 수 있을까요? 여기서 공유지의 비극이란, 자신의 이익에 따라 독립적이고 이성적으로 행동하는 개인들이 공동의 자원을 고갈시킴으로써, 장기적으로 전체 집단의 최대 이익에 반하는 것을 말합니다.
한 집단의 농부들이 자신의 가축에 풀을 먹이기 위해 목초지를 공유하는 경우처럼요. 자신의 가축이 목초지의 풀을 소비하지 않게 제한하는 것은 농부의 개인적 이익에 반하므로, 공동 자원인 목초지는 과도한 사용으로 고갈되는 상황이 발생할 수 있습니다.
이제 비트코인의 3가지 핵심 개념인 공개 장부, 암호화 알고리즘, 분산 네트워크에 대해 알아보겠습니다.
✅비트코인의 블록체인: 공개 장부
비트코인 네트워크에 참여하는 모든 멤버는 공개 장부인 블록체인을 공유합니다.
각 페이지마다 거래 내역들이 나열된 거대 회계 장부를 상상해봅시다. 전 세계의 지불인들이 보낸 가장 최근의 비트코인 거래 내역을 포함한새 페이지가 매 10분마다 추가됩니다. 비트코인 소프트웨어를 실행하는 사람이라면 누구든 이 거대한 책을 인터넷에서 볼 수 있습니다. 비트코인 지갑이라는 소프트웨어 프로그램은 스마트폰이나 개인용 컴퓨터에서 실행되며, 사용자가 비트코인 네트워크상에서 결제할 수 있게 해줍니다.
비트코인 관점에서 원장을 이루는 페이지들은 데이터의 ‘블록’을 나타내기 때문에 블록이라 불립니다. 블록체인은 많은 개별 블록들로 구성되며 길이가 계속해서 늘어나고 있습니다. 비트코인이 시작된 2009년 1월 이래 수행된 모든 트랜잭션을 담고 있죠.
비트코인 트랜잭션 요청에는 다음과 같은 내용이 들어 있습니다.
1) 지불자의 비트코인 주소. 지불에 대한 자금 출처가 들어 있음
2) 수취인의 비트코인 주소
3) 지불되는 비트코인의 액수
블록체인이 지불자의 비트코인 주소에 대해 들어오고 나가는 모든 결제 기록을 담고 있으므로, 비트코인 네트워크를 관리하는 채굴자는 지불자가 대금을 충당할 수 있는지 확인할 수 있습니다. 언제든 누구라도 특정 비트코인의 주소에 연결된비트코인의 양을 볼 수 있습니다.
본인이 정보를 제공하지 않는 한 비트코인 주소로 소유자의 신원을 알 수는 없지만, 소유자의 비트코인 주소에서 나가고 들어오는 모든 거래와 현재 잔액까지 누구나 볼 수 있도록 공개되어 있습니다.
✅ 비대칭 암호화: 누가 비트코인을 소비하는가
암호화 키는 앞서 설명한 것처럼 하나의 트랜잭션과 관련이 있습니다. 비트코인은 비대칭 암호화 체계(공개키 암호화라고도 부릅니다)를 사용하는데, 암호화 알고리즘에 한 쌍의 키가 필요하고 각 키는 서로 다른 긴 숫자열로 이루어지므로 비대칭이라는 이름이 붙습니다. 하나는 복호화 동작을 제어하는 공개키, 다른 하나는 암호화 동작을 담당하는 개인키이며 역할을 서로 바꿔 사용할 수도 있습니다.
알고리즘으로 개인키를 만들고 그에 대응하는 공개키를 만드는 것은 간단하지만, 공개키를 이름처럼 공개하기 위해서는 공개키로 개인키를 결정하는 연산을 실현할 수 없도록 제한해야 합니다. 수취인은 공개키를 이용해 트랜잭션 정보를 얻을 수 있으며, 이로써 비트코인 전송을 진행할 수 있습니다.
비트코인 소프트웨어의 알고리즘은 개인키 소유자만 해당 비트코인에 연결된 비트코인을 소비할 수 있게 합니다. 수취인은 자신의 비트코인 주소를 지불인과 공유합니다. 그 주소에 연결된 개인키는 수취인만 알고 있으므로, 이후 해당 비트코인에 접근하거나 소비 또는 전달할 수 있죠.
또한 전송자는 비트코인 내에서 자신의 키로 비트코인 트랜잭션에 디지털 서명합니다. 비트코인 트랜잭션은 실제로 공개키(지금은 이것을 비트코인 주소라고 생각합시다)가 들어 있습니다. 시스템은 공개키를 사용해 디지털 서명이 유효함을 검증하고 전송인이 진짜 개인키의 소유자임을 확인해줍니다.
이 시스템은 소유자가 공개 장부(블록체인) 내의 비트코인 주소와 연결된 비트코인을 소비할 수 있게 하고, 공개 장부(블록체인)는 이 새로운 트랜잭션을 담은 새로운 페이지(블록)로 업데이트됩니다.
블록체인에 새로운 트랜잭션을 더하는 작업을 통해, 비트코인 네트워크에 수취인의 주소로 해당 비트코인을 입금한다는 내용과 전송인의 비트코인 주소에서 그만큼의 비트코인을 출금한다는 내용이 효과적으로 전달됩니다.
개인키는 긴 숫자열로 만들어져 패스워드로 보호되는 비트코인 지갑(사용자의 컴퓨터, 모바일 기기, 웹 브라우저 등에 설치하는 소프트웨어)에서 저장 및 관리됩니다.
✅ 화폐 주조, 장부 기록, 시스템 제어 역할을 하는 채굴자 네트워크
지금까지 트랜잭션이 어떻게 구성되고 어떻게 검증받는지에 대해 설명했습니다. 비트코인이 중앙화된 운영 시스템이라면 하나의 개체가 이 작업을 담당할 것이므로, 설명은 여기서 끝났을 것입니다.
그러나 비트코인은 탈중앙화 시스템이고, 보통 이런 작업은 전 세계에 분산된 자발적 참여 노드 집단 (채굴자들) 사이에 공유됩니다.
장부와 결제 전송 인증을 포함하는 시스템이 어떻게 사익을 추구하는 방식으로 서로 다른 개체에 의해 운영될 수 있는지 이해하는 것이 중요합니다. 이러한 비트코인 시스템의 특성은 비트코인을 비판하는 사람들이 자주 간과하는 사항 중 하나며, 필수적으로 이해해야 하는 사항입니다.
비트코인의 운영을 맡은 노드인 채굴자들은 트랜잭션이 유효하다는 것을 검증하고 정기적으로 최신 트랜잭션을 담은 새로운 블록을 블록체인에 업데이트합니다. 채굴자들이 각자의 컴퓨터에서 운영하는 비트코인 소프트웨어에는 규칙과 합의 사항들을 담은 비트코인 프로토콜이 내장되어 있습니다.
비트코인 네트워크는 전반적으로 블록체인(공개 장부)을 새로운 블록(장부의 페이지)으로 계속해서 업데이트해야 합니다. 대략 10분마다 새로운 블록에 최신 트랜잭션 리스트가 추가됩니다. 모든 채굴자가 다음 블록을 만드는 작업을 하지만, 오직 한 채굴자만이 선택되어 블록체인에 붙일 특정 버전의 블록을 만듭니다. 각 채굴자들은 자기 버전의 다음 블록을 만들 때 자신에게 이익이 되도록 동작하며 트랜잭션 블록들에 대한 트랜잭션 수수료를 개인적으로 모으죠.
비트코인 트랜잭션에서 주요 파라미터들(지불자,수취인, 금액)은 변경할 수 없지만, 대부분의 트랜잭션에는 지불인이 지출
하고 블록체인에 추가할 블록을 선택받은 채굴자의 계정으로 입금되는 트 랜잭션 수수료가 포함됩니다.
블록체인에 자신의 블록을 붙이는 채굴자는 트랜잭션 수수료에 더해 새로 주조된 비트코인도 추가로 받을 수 있습니다. 채굴자는 자신의 비트코인 계정에 새로 주조된 비트코인들을 입금하는 트랜잭션을 추가로 생성합니다. 이것을 블록 보상이라고 합니다.
현재 비트코인의 프로토콜은 채굴자가 생성 블록당 25개의 새 비트코인을 할당할 수 있도록 허용하고 있습니다. 이것이 트랜잭션 수수료를 합한 금액에 더해집니다. 처음 비트코인이 시작되었을 때는 블록당 할당된 블록 보상이 50BTC였으며, 약 4년마다 절반으로 줄어들고 있습니다.
블록체인에 자신의 블록을 포함시킬 권한을 얻은 채굴자가 자신의 주소로 새로운 비트코인을 입금받으려면, 동료 채굴자들보다 먼저 답을 찾아야 확실한 이익을 얻을 수 있습니다. 이 선택 절차가 어떻게 작동하는지 간단히 설명하겠지만, 일단 지금은 비용이 많이 드는 연산 작업을 통해 수학 문제를 푸는 것이라고 생각합시다.
답은 찾기 어렵지만 일단 발견되면 그것이 맞는 답인지 검증하는 것은 쉽습니다. 답을 찾는 첫 번째 채굴자는 전체 채굴자 네트워크에 자신이 만든 블록을 공개하는 것이 허락됩니다.
이 채굴자들은 블록과 해답을 받은 후 검증 및 승인 작업을 진행하는데, 해당 블록을 전파한 최초의 채굴자가 발견한 답이 맞다는 것을 확인하는 과정입니다. 비트코인 프로토콜은 답을 발견하는 데 필요한 시간이 평균 10분 정도가 되도록 문제의 난이도를 설정합니다.
블록 문제를 푸는 채굴자가 현재 자신에게 허용된 25개를 초과하는 새로운 비트코인을 입금하려고 하면, 다른 채굴자들이 해당 채굴자의 블록을 거부할 것이고 자신의 블록을 위한 답을 찾는 작업을 계속 진행할 것입니다. 각 블록은 약간씩 다르기 때문에 각각 다른 답을 갖고 있습니다.
직관에 반하는 것처럼 보일 수도 있지만, 한 채굴자가 연산 작업에서 답을 얻어 다른 모든 채굴자들이 패배를 인정하고 해당 채굴자의 블록을 받아 블록체인의 다음 블록으로 추가하는 것에 동의하면 그 블록은 검증되며 다음 블록을 위한 작업이 시작됩니다.
여기에는 이전 블록이 만들어진 이후 들어온 모든 최근 트랜잭션들을 새로운 블록에 붙이는 작업이 포함되는데, 블록들의 답은 차례로 발견되고 끝없이 이어지는 블록체인에 추가됩니다.
비트코인이 작동하는 방식을 이해하면, 처음으로 답을 찾은 채굴자가 왜 비트코인 프로토콜이 허용하는 블록 보상만큼만 자신에게 입금하는지 알 수 있습니다. 그렇게 함으로써 자신의 블록이 다른 채굴자들의 승인을 받아 그에 대한 보상(트랜잭션 수수료)을 받도록 보장하는 것입니다. 이때 다른 채굴자가 유효한 블록을 거절하면 아무 수익도 얻지 못합니다.
비트코인 결제 시스템은 온전히 동작할 때만 가치가 있습니다. 만일 채굴자가 자신의 블록 외의 모든 블록을 거절하면 어떤 합의도 이루어지지 않으며, 전체 시스템의 가치가 붕괴되어 모든 채굴자가 이익을 얻을 수 없게 됩니다. 그 경우 채굴자들이 보유한 비트코인의 양이 얼마든 무가치한 것으로 바뀝니다.
그러므로 모든 채굴자가 공유된 비트코인 소프트웨어 내에 만들어진 비트코인 프로토콜을 존중하면 모든 채굴자에게 이익이 됩니다. 따라서 비트코인은 이전에 이야기한 공유지의 비극과 반대되는 개념을 구현합니다.
위 콘텐츠는 『사토시의 서』에서 내용을 발췌하여 작성하였습니다.
『사토시의 서』
최신 콘텐츠