비트코인의 학술적 유래 (3)

KEEP!T Today


안녕하세요! KEEP!T 입니다.

비트코인을 이해하기 좋은 아티클을 마저 번역해보자 합니다.

지난번 번역본:
비트코인의 학술적 유래(1)
비트코인의 학술적 유래(2)


비트코인의 학술적 유래
현재의 암호화폐는 과거에 잊혀졌던 연구 자료에서부터 시작되었다.

Arvind Narayanan & Jeremy Clark

Proof of Work

사실상 모든 장애-허용 시스템은 다수 혹은 절대다수 (과반수 혹은 2/3 이상)의 시스템 노드들이 정직하고 또 신뢰할 수 있다고 가정합니다. Open peer-to-peer 네트워크에서는 노드의 가입이 따로 존재하지 않으며, 언제든 자유롭게 참여하고 탈퇴할 수 있습니다. 그렇기 때문에 시스템을 방해하고자 하는 사람들은 충분한 숫자의 Sybils (sockpuppet, 타인을 속이기 위하여 만든 가짜 계정; 역주)를 만들어 낼 수 있거나 혹은 시스템의 합의 보증 방식을 이용할 수 있게 됩니다. Sybil 공격은 2002년 암호법 John Douceur에 의해 그 유효함이 확인되었고, 그렇기에 그는 이러한 공격을 완화하기 위하여 proof of work라고 불리는 암호법을 개발하게 됩니다.

The origins

작업증명(Proof of Work)을 이해하기 위해서, 그 기원으로 돌아가 보도록 합시다. Cynthia Dwork과 Moni Naor가 1992년에 발표한 논문은 오늘날 Proof of Work라고 불리는 합의 시스템에 관한 첫 번째 프로포절(proposal)이었습니다. 그들의 목표는 스팸을 방지하는 것이었습니다. 스팸이나 Sybil attack, 그리고 서비스 거부 공격(Denial of Service, 이른바 Dos)은 모두 시스템을 방해하고자 하는 집단이 네트워크 영향력을 일반적인 사용자들의 것보다 더 크게 한다는 특징에서 비슷한 문제였습니다. 그리고 Proof of Work는 이러한 세 가지 문제에 모두 방어가 가능한 방식이었습니다. Dwork과 Naor가 설계한 방식에 따르면 이메일 수신자들은 증명서(proof)가 동봉된 이메일을 따로 받게 되는데, 발신자들이 여기에 필요한 증명서를 생산하기 위해서는 일정 규모의 전산 작업(computational work)이 필요합니다. 그렇기 때문에, “Proof of Work”입니다. 일반적인 컴퓨터에서 증명서를 생산하는 것은 몇 초 정도가 걸릴 수 있습니다. 그렇기 때문에, 이러한 작업증명(proof of work)방식은 일반적인 사용자들에게는 어떠한 방해도 되지 않지만 수백 만개의 이메일을 보내고자 하는 스팸 발송자들에게는 많은 시간이 걸리게 되는 것입니다.

작업증명의 인스턴스 (instance; puzzle이라고도 불림)은 수신자뿐만 아니라 이메일에도 특정되어야 합니다. 그렇지 않으면 스팸 발송자는 한 명의 수신자에게 필요한 하나의 메시지 비용만으로 동일한 수신자에게 많은 메시지를 보내거나 혹은 동일한 메시지를 다수의 수신자에게 보내는 것이 가능해집니다. 두 번째 중요한 특성은, 작업증명이 수신자에게는 최소한의 작업 부담만을 부과해야 한다는 점입니다. 퍼즐 솔루션은 그것이 얼마나 어렵게 생성되는지와는 별개로, 아주 쉽게 증명할 수 있어야 합니다. 나아가 Dwork와 Naor는 함정문(trapdoor)이라는 추가적인 기능을 고려하였는데, 이는 별도의 작업 증명 없이 중앙 감독기관이 퍼즐을 풀 수 있는 비밀 키를 제공하는 것입니다. 함정문을 사용한다면 가능해지는 방식 중 하나는, 감독기관이 비용을 발생하지 않고 메일링 리스트의 포스팅을 승인할 수 있게 되는 것입니다. Dwork과 Naor의 제안은 그들의 특성을 충족하는 세 가지 candidate puzzles들로 구성되어 있는데, 이것은 나중에 전체 연구 분야의 발전으로 이어지게 됩니다. 추후에 이것을 다루겠습니다.

Hashcash

Hashcash라고 불리는 매우 비슷한 아이디어는 Adam Back에 의해서 1997년에 개발되었습니다. 그는 당시 박사후과정 연구원으로서 Cypherpunk 커뮤니티의 일원이었는데, Cypherpunk는 정부와 중앙 기관의 권력에 반대하는 활동가들을 뜻하는 용어로 암호학을 통하여 사회/정치적 변화를 추구하였습니다. 당시 Back은 매우 실용적이었습니다. 그는 소프트웨어로서의 Hashcash를 우선 출시하고, 5년 후인 2002년에는 인터넷 초안(Internet Draft, 표준화 문서)과 관련 논문을 발표합니다.

Hashcash는 Dwork과 Naor의 아이디어와 매우 유사했습니다. 함정문(Trapdoor)이 없었고, 중앙 권력도 존재하지 않으며, 나아가 디지털 서명 대신 해시 함수만을 사용하였습니다. 실제로 Hashcash는 간단한 원리에 기반하였습니다: 해시 함수는 몇 가지 실용적인 목적을 위하여 랜덤 함수로서 기능했는데, 이것은 곧 특정 값을 위한 인풋 해시값을 찾는 유일한 방법은 해당 값이 나올 때까지 인풋을 수차례 돌아가며 입력하는 것뿐이라는 것을 뜻합니다. 나아가 임의의 결과값을 도출해내는 해시 인풋 해시값을 찾는 방법 역시 여러 인풋들을 하나씩 하나씩 시도해보는 것뿐입니다. 그렇기 때문에 만약 당신에게 10개의 0을 지닌 (2진법의) 해시값을 찾아보라는 문제가 주어진다면, 당신은 10개의 0들로 시작하는 1/1024의 확률을 가진 각각의 아웃풋을 찾아야 할 것입니다. 이것은 곧 2의 10승 값을 순서대로 모두 시도해야 한다는 것, 즉 약 1000번에 가까운 해시값을 연산해야 한다는 것을 뜻합니다.

Hashcash라는 이름이 나타내듯이 Back은 Proof Of Work, 그 자체를 일종의 화폐의 형태로 보았습니다. 자신의 웹페이지에서 그는 Hashcash를 David Chaum의 DigiCash의 대용품으로 소개하였습니다. 이때 DigiCash란 은행으로부터 사용자에게 추적이 불가능한 디지털 화폐를 발행하는 시스템입니다. Back은 Hashcash를 더욱 현금처럼 만들어 보이기 위하여 기술적인 디자인에서 어느 정도의 타협도 보입니다. 나중에 Back은 비트코인이 Hashcash의 확장판이라는 발언을 합니다. 하지만 Hashcash는 이중 결제(double spending)를 방지하기 위한 보호 장치가 없었기 때문에 화폐가 아니었습니다. 그래서인지 Hashcash token들은 구성원들 간에 교환의 매개로 이용되지 못하였습니다.

반면에, 학문적인 관점에서 연구자들은 스팸 방지뿐만 아니라 그 외에 Proof of Work의 다양한 활용 방법을 발견하였습니다. 예를 들면, 서비스 거부 공격(DoS)을 예방하는 것, 웹 분석의 통합성(the integrity of web analytics)을 보장하는 것, 그리고 온라인에서 패스워드를 유추하기 위한 시도를 제한하는 것 등등. 우연히도 Proof of Work라는 단어는 1999년 Markus Jakobsson과 Ari Juels이 작성한 논문에서 처음 등장하는데 이 논문은 당시까지의 작업 진행 상황에 대한 자세한 조사 자료를 포함하였습니다. 이 연구자들은 Hashcash의 존재에 대해서는 모르고 있었으나, Eran Gabber 등이 논문에서 소개한 Hash 기반의 Proof of Work를 독자적으로 통합하고 있었다는 점은 흥미롭습니다. (이번 단락에서 소개된 많은 용어들은 해당 주제에 대한 의문을 제기하는 논문들이 출판되기 전까지 오랜 시간 동안 표준 용어로 자리 잡지 못하였습니다.)

Proof of work and digital cash: A catch-22

당신은 아마 Proof of Work 시스템이 그 원래의 목적, 즉 스팸 방지 기능을 성공적으로 수행하지 못했다는 것을 알 것입니다. 전자 기기마다 가지는 연산 기능의 급격한 차이, 즉 퍼즐 해결에 필요한 속도가 너무나 다른 것이 실패의 원인일 수 있습니다. 이것은 곧 스팸 발송자들이 적은 돈의 투자로 스팸 발송을 위한 하드웨어를 구축할 수 있었다는 것을 뜻합니다. 경제학에서 생산 비용의 비대칭성에 대한 (경제적으로) 자연스러운 반응은 거래(trade), 즉 Proof of Work 솔루션을 위한 시장이었습니다. 하지만 이것은 작업 디지털 화폐(working digital currency)를 필요로 하였기 때문에, 이는 곧 catch-22으로 이어지게 됩니다. 실제로 당시 이러한 종류의 화폐가 존재하지 않았던 것은 Proof of Work 문제의 해결에 가장 큰 동기로 작용하였습니다. 이 문제를 해결하려는 방법은 Hashcash가 의도한 것처럼 퍼즐 솔루션, 그 자체를 화폐로 선언해버리는 것이었습니다.

퍼즐 솔루션을 화폐로 인정하는 것보다 조금 더 나은 접근 방식은 비트코인보다 앞서 등장한 두 개의 에세이에서 각각 b-money 와 bit gold라는 이름으로 등장합니다. 이 두 개의 솔루션들은 Proof of Work를 통해 화폐가 생성될 때 화폐에 서명이 되는 타임스탬핑 서비스를 제안했는데, 한번 화폐가 만들어지면 화폐가 이체될 때도 서명이 이루어지게 됩니다. 하지만 만약 원장에 대한 노드/서버들 사이의 합의가 제대로 이루어지지 않으면, 이것을 해결하기 위한 명확한 방법이 없었습니다. 두 개의 논문에서는 다수결의 원리로 이 문제를 해결하고자 하는 의도가 함축되어 있었습니다. 하지만 이러한 다수결 메커니즘은 Sybil 문제 때문에 네트워크 진입을 통제하는 게이트키퍼(gatekeeper)가 존재하지 않거나, 혹은 Sybil 저항 자체가 proof of work를 통해 이루어지지 않으면, 매우 불안정한 모습을 보였습니다.

원문: [Queue]Bitcoin’s Academic Pedigree

Written by keepit
출처 : https://steemit.com/kr/@keepit/keep-t-6-30-3