본문 바로가기

Home > 열린마당 > 공개SW 소식

공개SW 소식

[ICT법 바로알기] 비트코인(Bitcoin)의 동작원리

OSS 게시글 작성 시각 2014-01-21 19:36:59 게시글 조회수 3436

2014년 1월 14일 (화)

ⓒ 디지털데일리, 김경환 변호사 hi@minwho.kr


[법률사무소 민후 김경환 변호사] 비트코인(Bitcoin)은 온라인에서 생성돼 거래되는 가상화폐 또는 디지털화폐의 일종이다. 비트코인은 연혁적으로 사토시 나카모토(Satoshi Nakamoto)의 2008년 논문 “Bitcoin: A Peer-to-Peer Electronic Cash System”에서부터 시작됐다.


이 논문에서 사토시 나카모토는 금융조직의 개입이 없는 순수한 P2P(peer to peer) 방식의 화폐에 대해 제안하면서, 금융조직이 개입되지 않은 이러한 방식의 화폐의 가장 큰 문제는 중복사용(double-spending)이며, 이 문제를 해결하기 위해서 유통되는 가상화폐블록을 순차적인 해쉬암호값(일방향 암호화 방식으로서, 해쉬암호화를 실행하면 똑같은 길이의 유일무이한 함수값이 생성돼지는데, 비트코인의 경우 기본적으로 SHA-256 방식이 사용돼진다)으로 연결시키는 방안을 제안했다.

이런 이론적 기초 하에 나온 것이 바로 비트코인이며, 2009년 1월 3일 사토시 나카모토는 최초의 비트코인블록을 채굴했는바, 이것이 바로 비트코인의 창세기인 셈이다.


◆현황

비 트코인이 생긴 지는 5년이 넘지만 유명해진 지는 얼마되지 않는다. 예컨대 첫 거래는 2010년 미국의 ‘laszlo’라는 닉네임을 가진 사람이 비트코인 포럼 게시판에서 1만 BTC로 피자 2판을 사겠다는 제안을 하며 거래가 성립했다. 이 거래를 최근 비트코인 가격으로 환산하면 1BTC에 1000달러 정도이므로 한 판에 50억원짜리 피자를 먹은 셈이다. 시가만 보면 2013년 초에 10달러 안팎이었으니 1년 사이에 100배 정도가 상승했다.

2010년에 마운트곡스(Mt.Gox)라는 거래소가 등장했으며, 현재는 실제 화폐와 자유롭게 환전이 가능하고 수천 개의 인터넷쇼핑몰에서 거래수단으로 인정하기에 굳이 환전을 할 필요도 없다. 심지어 투자수단, 안전자산으로도 이용되고 있다. 비트코인의 성공에 힘입어, 네임코인(Namecoin), 라이트코인(Litecoin), 피피코인(PPCoin) 등의 아류도 속속 등장하고 있다.

우리나라의 경우 비트코인 거래소인 코빗이 개장했으며 비트코인을 결제수단으로 삼는 상점이 등장했고, 북한에서도 비트코인의 첫 거래가 이루어졌다고 한다. 비트코인의 자동화기기(ATM)가 캐나다에 등장했으며, 미국 FBI는 마약 밀거래사이트인 ‘실크로드’를 단속해 범죄수익을 압수했는데, 가장 많이 사용된 화폐는 유로·달러가 아닌 비트코인이었다. 비트코인은 이렇게 이미 대중화돼 있다.


◆암호키

비 트코인은 공개키(public key)를 가진 공개된 암호화된 정보이며, 공개된 공개키와 공개되지 않은 비공개키(private key)의 매칭으로 거래자격을 획득한다. 즉 특정 비트코인블록에 관한 비공개키를 가진 사람만이 특정 비트코인블록을 소유하고 거래할 수 있다.

비공개키는 보통 서명(signature)으로 비유되곤 하는데, 따라서 서명을 할 수 있는 자격이 있는 비공개키의 소유자가 결국 특정 비트코인블록의 소유자가 된다. 하지만 비공개키에는 다른 전자서명이나 오프라인의 서명과 달리 소유자에 대한 정보가 포함되지 않아 거래의 익명성이 보장되고 있으며, 비공개키는 모든 비트코인블록끼리 수학적으로 연결돼 있다.

비 트코인블록이란 암호로 순차로 연결된 비트코인 전체 중에서의 하나의 단편을 말하지만 단순한 단편이라기보다는 거래내역 등의 정보가 포함돼 있는 일종의 거래장부라 할 수 있다. 이러한 비트코인블록의 크기는 채굴 또는 거래시에 결정된다. 각 비트코인블록에 대해 하나의 공개키와 비공개키가 존재하지만, 거래의 필요성에 따라 쪼개어 사용되기도 하는데 이 때 기존의 키값은 파기되고, 별도의 공개키와 비공개키가 생성된다.


◆지갑(Wallet)

비트코인을 채굴하고 거래하려면 우선 지갑을 만들어야 한다. 지갑이란 비트코인(정확하게는 비공개키)을 보관하면서 새로이 주소를 생성해 비트코인의 거래를 할 수 있는 프로그램이다. 한 마디로 비트코인 관리도구인 셈이다. 지갑은 여러 가지가 존재하는데, 그 형태는 웹사이트형 지갑(Blockchain, Coinbase, Coinjar, Coinpunk 등), 소프트웨어형 지갑(BitcoinQT, Armory, Multibit 등), 모바일폰형 지갑(Blockchain, CoinJar, Coinpunk 등)이 있다.

거 래자는 여러 개의 지갑을 생성해 여러 개의 주소를 분류·관리할 수 있다. 지갑에 접근하기 위해서는 아이디와 비밀번호를 입력하는 절차를 거쳐야 하지만, 지갑을 만들 때 공인을 받아야 하는 것은 아니므로 지갑의 생성으로 비트코인의 익명성은 감소하지 않는다.

비트코인 자체의 절도나 분실은 있을 수 없지만 지갑에 접근할 수 있는 아이디나 비밀번호를 절취당하거나 분실하게 되면 비트코인까지 절취당하고 분실할 수 있다. 실제로 최근 지갑을 해킹해 금전을 요구하는 사례도 발생했다.

따 라서 지갑 기능의 핵심은 보안성인데, 비공개키가 인터넷에 노출되지 않을수록 보안성은 좋아진다. 그래서인지 소프트웨어형 지갑이 웹사이트형 지갑보다 보안성이 좋다고 평가되지만 설치시에 기초적인 채굴·거래 정보를 다운로드받는 데 시간이 걸리는 단점이 있다. 최근에는 오프라인 지갑이나 하드웨어 지갑까지 등장하고 있는데, 아무래도 사용에 불편한 단점이 있다.


◆노드(Node)와 블록체인(Blockchain)

비트코인의 모든 블록정보와 거래내역은 모든 사람들에게 공개돼지고, 이 때 필요한 것이 정보를 모으는 것과 이를 통합하는 것인데, 전자를 노드라 할 수 있고, 후자를 블록체인이라 할 수 있다.

노 드란 비트코인블록정보와 거래내역을 모으는 비트코인 네트워크의 각 수집사이트라 할 수 있는데, 원하는 사람은 지원해 자신의 사이트를 노드로서 역할을 하게 할 수 있다. 채굴이 되거나 특정 비트코인 거래가 발생하면 블록정보나 거래내역은 모든 노드에 전달이 되며, 전달을 받은 노드들은 경쟁적으로 블록정보나 거래내역을 업데이트한다.

이미 설명했듯이 각 블록들은 하나의 체인으로 길게 연결돼 있는데, 이를 블록체인이라 한다. 블록체인에는 공인된 블록정보와 거래정보가 포함돼 있으며, blockchain.info 사이트에서 그 내용을 누구나 확인할 수 있다. 블록체인 또는 blockchain.info 사이트는 각 노드들에서 수집한 블록정보나 거래정보를 근거로 그 중에서 공인된 정보를 업데이트하고 있다. 비트코인은 익명성을 가지지만 공개성도 같이 가지고 있는 것이다.

이용자나 노드는 네트워크에서 중간에 이탈하더라도 문제는 없다. 재접속했을 때 가장 높은 번호가 있는 블록체인(longest blockchain)을 근거로 다시 업데이트 작업을 하면 되기 때문이다.


◆채굴(Mining)

비 트코인은 채굴(mining)함으로써 취득할 수 있다. 비트코인을 얻기 위해서는 클라이언트 프로그램을 다운받은 다음 공식사이트에 접속해 고도의 수학문제를 풀어야 하는데 이를 채굴이라고 한다. 하나의 문제를 풀어 얻을 수 있는 최대의 양은 50비트코인이고, 채굴이 완성되면 정보를 얻게 되는데, 이 때 채굴을 마친 비트코인블록의 해쉬암호값을 확정함과 동시에 다음에 누군가 채굴될 비트코인블록의 해쉬암호값을 찾게 된다. 채굴이 완성되면 그 결과는 모든 노드에 전달이 되는데, 노드가 블록정보를 다음에 채굴된 블록의 해쉬암호값으로 업데이트함으로써 모든 채굴과정이 종료된다.

채굴할 수 있는 양은 2100만개이며 현재까지 약 절반 정도가 채굴됐고 2040년에는 전부 고갈될 예정이다. 공급량 조절을 위해 채굴량이 늘수록 문제의 난이도는 올라간다. 난이도 조절은 채굴시에 찾게 되는 해쉬함수값에 위치한 제로(0)의 개수를 늘림으로써 가능하다. 현재 10분당 25BTC정도가 채굴되고 있지만(21만1 블록부터 42만번째 블록까지는 25BTC 지급됨), 조만간 이 양도 줄어들 것이다.


◆주소(Address)

비 트코인의 소유자는 비공개키를 이용해 비트코인에 대한 거래를 하는데, 이 비공개키는 노출되지 않아야 하기 때문에, 비공개키로부터 해싱 기법을 통해 생성된 유일무이한 주소(address)라는 공개용 식별자를 이용해 거래가 진행된다. 즉 주소란 거래자를 대신해 만들어지는 거래식별자 또는 인터넷통신에서 이메일의 역할이라 할 수 있다. 때문에 비트코인 거래란 한 주소에서 다른 주소로의 이전이라 할 수 있다.

거래자는 거래시마다 새로운 주소를 생성해 거래를 할 수 있고, 이미 만들어진 주소를 재사용해 거래를 할 수 있다. 주소 재사용이 잦을수록 거래자의 식별이 쉬워질 것이다. 주소는 지갑에 보관하며, 주소와 주소 사이의 이전인 비트코인 거래는 블록체인 사이트에 모두 공개돼진다.


◆거래(transactions)

거래는 통상 지갑의 도움을 받아 진행한다. 비트코인의 지급을 요구하는 사람(C)은 지갑 프로그램을 열고, 수신주소를 설정한 다음 지급하는 사람(B)에게 보내면, 지급하는 사람은 새로이 주소를 만들거나 기존 주소를 활용해 송신주소를 고른 다음 수신주소를 그대로 옮기고, 이후 거래하고픈 비트코인 액수를 기재해 보내면, 자동적으로 지갑 안에 저장돼 있는 비공개키의 서명절차와 거래내역의 전체 비트코인 네트워크에의 공지(broadcast)가 이루어지면서 거래가 완성된다. 비트코인은 소수점 8자리까지 분할될 수 있다(이를 1 사토시라 하므로, 0.00000001 BTC = 1 satoshi가 된다). 거래가 이루어지는 경우, 기존거래의 내용과 당해 거래내용을 근거로 새로운 해쉬함수값이 생성돼지며, 비트코인 네트워크로부터 거래가 승인되는 시간은 통상 10분 정도 소요된다. 거래수수료는 자발적으로 부담할 수 있으나 매우 미미한 수준이다.


◆중복사용(double-spending)

한 사람이 자신의 비트코인을 두 사람에게 동시에 보내는 경우에는 어떤 거래가 승인돼야 하는가? 비트코인 정보를 담고 있는 노드나 블록체인에 특정 블록에 대한 정보가 2개 전송돼지는 경우 노드나 블록체인은 이를 어떻게 처리해야 하는가?

비트코인의 획기적인 기여는 중복사용의 효율적인 방지책을 만들어냈다는 점이다. 중복사용의 문제는 흔히 비잔틴 장군들의 고민(The Byzantine Generals Problem)과 관련되는데, 비잔틴 시대에 각 군영 사이의 연락병 중에서 배신자가 잘못된 정보를 퍼뜨리는 문제를 말한다. 그 방지책을 살펴보면 아래와 같다.

첫째, 각 채굴과정에서 만들어지는 비트코인블록은 일련의 암호화 함수로 체인처럼 연결돼져 있다. 따라서 하나의 블록만을 빼내어 위조하기는 불가능하며 만일 위조를 하려면 전체 블록을 모두 위조해야 하는데 블록수가 30여만개 정도라는 점을 감안하면 이것은 사실상 불가능하다. 이렇게 블록끼리의 암호화 체인이 가능한 이유는 채굴시 다음 채굴될 블록의 함수값을 미리 찾아내어야 하기 때문이다.

둘째, 채굴 보상금이 미리 정해져 있어 총통화량 계산이 매우 용이하기 때문에 통화량을 임의로 늘리거나 조작하는 것이 불가능하다. 처음 21만개의 블록을 채굴할 때까지는 블록마다 50BTC가 제공되고, 21만1 블록부터 42만번째 블록까지는 25BTC가 지급되게끔 미리 설계돼 있기 때문이다.

셋째, 한 사람이 자신의 비트코인을 두 곳에 보낼 때를 대비해 ‘The longest chain wins’가 적용되기 때문이다. 모든 거래내역은 모든 노드에 제공되는데, 각 노드에서는 먼저 도달한 거래내역만 저장하고 나중에 도달한 것은 저장하지 않는다. 그리고 노드들끼리 저장된 정보가 다를 때는 가장 긴 즉 가장 높은 번호가 있는 블록체인만을 공식적으로 채택한다. 이런 원칙을 적용해 중복사용 문제를 효율적으로 해결해 가고 있다.


◆특징

이 상의 내용을 바탕으로 꼽을 수 있는 비트코인의 특징을 정리하면, P2P 방식(탈중앙통제, decentralization), 익명성(anonymity), 암호화 방식, 불가역성(irreversibility), 공개성, 통화공급량 조절이다.

첫 째, 비트코인은 제3자나 금융조직의 개입이 전혀 없는 P2P 방식의 분산처리방식을 취하고 있다. 현실화폐나 기존의 가상화폐는 금융조직이나 발행기관의 개입에 의해 이중사용 방지라든지, 조작, 가치조절 등의 조치가 취해지지만, 비트코인은 이러한 개입이나 조작이 존재하지 않고, 개인과 개인이 직접 거래하는 시스템을 취하고 있기에 비트코인의 가치도 순전히 거래자의 의사에 의해 결정된다.

나아가 글로벌 화폐로서 경계마다 다른 화폐를 사용하는 현행 체제에는 상반된다. 그리고 비트코인 블록은 내 PC에 보관하는 것이 아니기 때문에 전세계 어디에서든지 컴퓨터에 연결해 인터넷 공간에 저장된 정보인 비트코인을 거래할 수 있으며, 제3자나 금융조직의 개입이 없기 때문에 수수료 역시 무시할만하다.

글로벌 화폐이고 각국 정부나 중앙기관의 통제를 받지 않고 거래가 이루어진다는 점에 대해 인터넷기업은 환영하고 있지만, 각국 정부는 우려를 표하고 있다. 특히 각종 거래에 대해 세금을 매길 수 없다는 점은 각국 정부의 개입의 정당성을 키워주는 역할을 하고 있다.

둘째, 비트코인은 거래자의 개인정보를 제시하지 않고 단지 거래자가 생성한 주소(address)를 통해 주고받기 때문에 익명성이 보장된다. 즉 비트코인은 개념적으로 주소 대 주소로 거래가 일어나는 것이지 개인 대 개인으로 거래가 발생하는 것은 아니다. 다만 주소의 생성자를 파악하면 거래자를 찾을 수 있기에 완전한 익명성이 보장되는 것은 아니다(pseudo anonymity).

이러한 익명성은 마약, 도박, 포르노, 성범죄, 무기매매 등의 범죄수단이나 비자금 용도나 돈세탁 목적으로도 악용되고 있다.

예 컨대 마약범죄에 비트코인이 사용된다면 추적이 어렵기 때문에 많이 사용되고 있으며, 한 개인의 컴퓨터에 보관돼 있는 파일을 암호로 잠그고 비트코인을 결제하면 다시 풀어주는 랜섬웨어의 경우에도 해커는 그 추적이 불가능한 비트코인을 결제수단으로 요구하고 있다.

셋 째, 비트코인은 암호화 방식을 취하고 있다. 비트코인은 공개된 암호화된 정보를 소지한다고 해서 소유자가 되는 것은 아니고, 이 정보에 매칭이 되는 비공개키(private key)를 가진 사람이 비트코인을 소유하게 된다. 즉 비트코인은 비공개키에 의해 소유권이 결정된다.

넷째, 비트코인은 한번 이체를 하게 되면 다시 그 거래를 취소할 수 없다. 수령자가 다시 이체를 해주지 않으면 이체 자체를 취소할 수 있는 방법은 존재하지 않는다. 이러한 이유는 비트코인 거래는 해쉬함수값의 처리를 통해 이루어지는데, 해쉬함수는 일방향 암호화 방식으로서 암호값을 다시 풀어낼 수는 없기 때문이다.

다섯째, 비트코인은 채굴과정부터 거래내역까지 모든 정보가 노드나 블록체인을 통해 모두에게 공개돼진다. 하지만 익명적인 정보가 공개돼지므로 누구의 거래인지는 원칙적으로 파악하기 어렵다. 비트코인의 공개성은 중복사용을 막는 역할도 하고 있다. 비트코인은 거래내역이 공개돼 있을 뿐 아니라 오픈소스의 형태로서 누구에게나 공개돼 있기 때문에 누구나 개발에 참여할 수 있다.

여섯째, 비트코인은 무제한으로 공급되지 않는다. 비트코인은 제한된 양을 채굴할 수 있으며, 따라서 수요가 많아질수록 비트코인의 시가는 상승할 수밖에 없다. 이러한 공급제한성을 고려해 비트코인이 장차 현실화폐 가치의 하락과 인플레이션에 대한 통제수단으로 사용될 수 있다고 생각하는 사람들도 있다.


◆각국 정부의 태도

각국 정부의 비트코인에 대한 시선은 곱지 않다. 과세를 회피하고 있으며, 마약·포르노로 벌어들인 불법자금의 세탁에 사용될 우려가 크다는 문제점을 지적한다.

미국은 비트코인 유통업체 규제책, 비트코인 거래에 대한 과세를 마련하고 있고, 텍사스주 연방법원은 트렌든 셰이버스 사건에서 비트코인을 화폐로 간주해 규제의 근거를 마련했다. 캐나다는 세계 최초로 비트코인 거래에 과세하기로 했다.

독 일 중앙은행은 비트코인의 투기성에 대해 경고했고, 영국은 국세청이 감독하는 가상화폐 거래소 설립을 검토 중이며, 태국은 비트코인의 매매ㆍ전송, 물품 구매를 금지시켰다. 중국 중앙은행인 인민은행은 금융기관이 합법적이지 않은 비트코인을 통화로서 시장에서 유통할 수 없다는 원칙을 강조했지만 아직 개인간의 거래는 허용하고 있고, 한국은행은 화폐로서 한계가 있다고 지적했다.


◆비트코인과 개인정보

비트코인의 거래요소 중에서 식별성 있는 개인정보로서 검토할 수 있는 것은 비공개키, 주소, 지갑, IP 주소 등이 있다.

첫 째, 비공개키의 경우, 비트코인은 암호화된 정보이고, 이 정보에 접근할 수 있는 비공개키(private key)를 가진 사람이 비트코인을 소유하게 된다. 즉 비트코인은 비공개키에 의해 소유권이 결정된다. 하지만 이 비공개키는 노출되지 않아야 하기 때문에 성명, 주민등록번호, 얼굴 등과 쉽게 결합할 수 있는 개인정보로 보기는 어려워 보인다.

둘째, 주소의 경우, 비트코인의 거래란 외형적으로 보면 한 주소에서 다른 주소로 이전되는 것을 말하며, 이러한 주소간 이전은 모든 사람에게 공개되므로, 현금거래와 달리 모든 거래가 공개되지만, 주소와 거래자의 결합이 불가능하기 때문에 거래의 공개에도 불구하고 익명거래성은 유지되고 있다. 즉 개인정보로 보기에는 어려움이 있어 보인다.

셋째, 지갑의 경우, 주소는 지갑(wallet)에 담아 보관하고, 지갑에 접근하기 위해서는 아이디와 비밀번호를 입력하는 절차를 거쳐야 하지만, 지갑을 만들 때 공인을 받아야 하는 것은 아니므로, 지갑의 생성으로도 비트코인의 익명성은 감소하지 않는다. 즉 지갑으로 개인을 식별하기는 어려워 보인다.

정리 하면, 비공개키가 소유의 식별자라면, 주소는 거래 식별자, 지갑은 관리도구이고, 개인정보 및 식별성의 기초인 ‘누가’라는 개념은 여기에 존재하지 않는다. 하지만 국가가 비트코인을 제도권으로 흡수시키기로 마음먹는 순간 바로 이 ‘누가’에 대한 정책이 중점과제가 될 가능성이 높다. 이 경우 익명성은 무너질 수 있으며, 따라서 식별성 및 개인정보와의 연결은 비트코인의 미래 모습을 좌우하는 핵심이 될 것으로 보인다.

반면 넷째, 비트코인의 인터넷을 통한 채굴 및 거래 과정에서 자동으로 기록되는 IP 주소나 거래시간 등은 개인정보의 성격을 가진다고 볼 수 있다.


◆마치면서

비 트코인의 문제는 앞으로 끊임없이 등장할 글로벌 가상화폐의 시초로 이해해야 한다. 실제로 비트코인의 문제점을 극복하는 수십개의 가상화폐가 줄이어 등장하고 있다. 단순히 현재 기준으로 비트코인이 화폐가 아니라 해 그 영향을 폄하하는 것은 부적절한 행위로 생각된다. 특히 기술적으로 이루어낸 혁신적인 부분에 대해도 높게 평가해야 할 것이다. 비트코인 관련 비즈니스가 급성장하고 있다는 점도 눈여겨보아야 할 대목이다.

하지만 비트코인의 가치가 시간이 흘러갈수록 평가절상돼 비트코인의 유통이 떨어지는 점, 비가역성 때문에 반환이 쉽지 않다는 점, 변동성이 너무 커서 안정성 있는 통화 수단이 되지 못하고 있는 점, 각국 정부 정책과 발맞추어야 한다는 점은 비트코인 등의 가상화폐가 해결해야 할 과제로 보인다.


※ 본 내용은 (주)디지털데일리(http://www.ddaily.co.kr)의 저작권 동의에 의해 공유되고 있습니다.

Copyright ⓒ 디지털데일리. 무단전재 및 재배포 금지



[원문출처 : http://www.ddaily.co.kr/news/article.html?no=113278]

맨 위로
맨 위로