모든 것을 결합하여 살펴보기
비트코인의 설계에 기여한 아이디어들을 이해하면 나카모토가 이들을 결합한 방식을 살펴볼 수 있습니다. 비트코인에서는 퍼즐의 해답 자체가 화폐로 간주되지 않습니다. 대신, 퍼즐을 푸는 작업은 전체장부를 보호하는 데 사용됩니다. 작업 증명은 채굴자(miner)가 수행합니다. 나라야난과 클라크는 2017년 원문에서 나카모토가 채굴 산업의 전문화 정도를 과소평가했다고 봅니다.
채굴자들은 다음 퍼즐의 해답을 찾기 위해 경쟁합니다. 각 채굴자가 블록을 발견할 확률은 전체 채굴 능력에서 차지하는 비율에 비례합니다. 해답을 찾은 채굴자는 거래를 묶은 블록을 네트워크에 전파합니다. 각 풀 노드는 거래와 블록을 독립적으로 검증하며, 규칙을 어긴 블록은 받아들이지 않습니다. 유효한 블록이 채택되면 채굴자는 새로 발행된 비트코인과 거래 수수료를 보상으로 받습니다. 검증 규칙과 보상은 채굴자가 프로토콜을 따르도록 유도합니다. Bitcoin Developer Guide의 전체장부 설명
비트코인은 퍼즐의 해답을 주고받는 대신, 전체장부의 거래 기록과 합의 규칙으로 이중 지불(double-spending)을 방지합니다. 작업량과 발행량도 각각 다른 규칙을 따릅니다. 블록 생성에 필요한 작업량은 난이도 조정에 따라 달라지고, 블록당 신규 발행량은 약 4년마다 절반으로 줄어듭니다. 2017년 기준 신규 발행량은 블록당 12.5 비트코인으로, 초기의 50 비트코인에서 감소했습니다. 송신자는 거래를 블록에 포함시키는 서비스에 대해 수수료를 지불합니다. 신규 발행량은 프로토콜이 정하며, 수수료에는 시장의 수요가 반영됩니다.
나라야난과 클라크가 주목하는 것은 개별 구성 요소보다 이들이 맞물려 작동하는 방식입니다. 이들의 설명에 따르면, 타임스탬핑과 비잔틴 합의 연구에는 정직한 행동에 경제적 보상을 제공하는 아이디어가 빠져 있었으며, 작업 증명으로 신원 확인을 대체하는 연구는 2005년에 등장했습니다. 해시캐시, b-머니, 비트 골드의 제안에도 이중 지불을 막기 위한 합의가 충분히 통합되지 않았습니다. 비트코인에서는 전체장부가 이중 지불을 막고, 비트코인 보상이 채굴 참여를 유도하며, 채굴에 투입되는 작업이 장부 변경의 비용을 높입니다. 공격자가 전 세계 채굴 능력의 50%를 넘게 장악하면 나머지 네트워크보다 빠르게 블록을 생성해 자신의 지불을 뒤집는 공격을 지속하기 쉬워집니다. 이는 다른 사람의 서명을 위조하거나 검증 규칙을 무시할 수 있다는 뜻은 아닙니다. 비트코인 백서 §11
따라서 비트코인은 이 세 가지 구성 요소가 서로를 뒷받침하면서 초기 네트워크를 형성했습니다. 설계뿐 아니라 초기 사용자와 채굴자가 함께 참여하는 과정도 필요했습니다. 초기 사용 사례로는 피자 두 판을 10,000 비트코인에 구한 거래가 있습니다.
공개 키를 신원으로 사용하는 개념
안전한 전체장부가 결제를 어떻게 가능하게 할까요? 앨리스가 밥에게 결제하려면 밥의 수신 주소를 바탕으로 거래를 만들고 서명해 네트워크에 전파합니다. 서명은 거래 내용을 암호화해 숨기는 것이 아니라 지출 권한을 증명합니다. 거래가 유효한 블록에 포함되면 전체장부에 기록됩니다. 밥은 수신 주소를 알려준 뒤 거래를 받기 위해 직접 서명할 필요는 없습니다.
그렇지만 거래에서 눈에 띄게 빠져 있는 것이 있습니다. 바로 앨리스와 밥의 신원입니다. 대신, 거래에는 그들의 공개 키만 포함됩니다. 이는 비트코인의 중요한 개념입니다. 공개 키는 시스템에서 유일한 신원의 형태입니다. 거래는 공개 키(주소라고도 불리는) 간에 가치를 이전하는 방식으로 이루어집니다.
편집자 주: 위 설명은 공개 키를 가명으로 사용하는 개념을 설명한 원문의 표현입니다. 공개 키와 주소는 같은 개념이 아닙니다. 예를 들어 P2PKH 주소는 공개 키 자체가 아니라 공개 키의 해시를 인코딩한 것입니다. 실제 거래 출력에는 금액과 소비 조건을 정하는 스크립트가 들어갑니다. 자세한 구조는 Bitcoin Developer Guide의 거래 설명을 참고할 수 있습니다.
어떤 신원에 대해 "발언"하려면 해당 공개 키에 대응하는 비밀 키를 알고 있어야 합니다. 새로운 신원을 생성하려면 단순히 새로운 키 쌍을 생성하면 되며, 이를 위해 중앙 권한이나 등록소가 필요하지 않습니다. 사용자 이름을 따로 설정하거나 다른 사람들에게 특정 이름을 선택했음을 알릴 필요도 없습니다. 이는 탈중앙화된 신원 관리의 개념입니다. 비트코인은 앨리스가 밥에게 자신의 가명(pseudonym)을 전달하는 방식을 지정하지 않으며, 이는 시스템 외부에서 이루어집니다.
오늘날 대부분의 결제 시스템과는 근본적으로 다른 이 아이디어는 매우 오래된 것으로, 디지털 화폐의 선구자인 데이비드 차움(David Chaum)으로 거슬러 올라갑니다. 사실, 차움은 익명 네트워크에 대한 기초적인 기여도 했으며, 이 맥락에서 이 아이디어를 처음 제안했습니다. 그는 1981년 논문 "Untraceable Electronic Mail, Return Addresses, and Digital Pseudonyms"에서 "디지털 가명은 대응하는 비밀 키를 가진 익명의 소유자가 서명한 서명을 검증하는 데 사용되는 공개 키"라고 정의했습니다.
공개 키만으로는 메시지를 어느 컴퓨터에 전달할지 알 수 없습니다. 나라야난과 클라크는 이 문제가 차움의 제안에 큰 통신 비용을 발생시켰다고 설명합니다. 비트코인 역시 여러 노드가 거래를 전달하고 검증하므로 중앙 집중식 결제 시스템과 비교해 중복 작업이 발생합니다. 저자들은 이러한 구조가 보안을 위해 필요한 동시에 공개 키를 통한 가명 사용도 가능하게 한다는 점을 강조합니다. 차움은 1985년 논문에서 가명을 바탕으로 한 개인정보 보호 전자상거래와 디지털 화폐의 핵심 기술인 "블라인드 서명(Blind Signatures)"을 다뤘습니다.
공개 키를 신원으로 사용하는 개념은 비트코인의 전신인 b-머니와 비트 골드에서도 등장합니다. 그러나 차움의 기반 위에 구축된 많은 연구들과 차움 자신의 이후 전자화폐(ecash) 작업은 이 아이디어에서 벗어났습니다. 사이퍼펑크 운동가들은 개인정보 보호 통신과 상업에 깊은 관심을 가지며 가명(nyms)을 채택했는데, 그들은 이를 단순한 암호학적 신원(즉, 공개 키)으로 보지 않고, 주로 공개 키와 연결된 이메일 주소로 여겼습니다. 비슷하게, 익명 통신의 많은 후속 연구의 기초가 된 이안 골드버그(Ian Goldberg)의 학위 논문도 차움의 아이디어를 인식하면서 가명을 공개 키와 결합된 인간이 기억하기 쉬운 별칭(nickname)으로 제안했습니다.
나라야난과 클라크는 비트코인을 차움의 가명 아이디어가 실제 결제 시스템에 적용된 대표적인 사례로 평가합니다.