프로그래밍/블록체인

[해석서]Bitcoin: A Peer-to-Peer Electronic Cash System - 1. 서론

산을좋아한라쯔 2018. 1. 30. 19:23
반응형

Bitcoin을 있게 한 전설적인 논문인 Bitcoin: A Peer-to-Peer Electronic Cash System에 대해서 해설해보고자 합니다.

역사에 길이남을 논문들이 그렇듯, 이 논문도 몇 페이지 되지 않지만, 많은 백그라운드 지식과 깊이있는 고민을 해야 이해할 수 있습니다.

 

이 논문을 처을 접할 때가, 논문이 나오고 난 지 약 2년후인 2011년 쯤이었는데, 참 생각이 기발하다는 것만 느끼고 말았던 기억이 납니다. 이 후 비트코인이 유명세를 타고, 블록체인이 각광을 받고, 비트코인 투자 열풍이 불면서, 문득 이 논문을 다시 한 번 정독을 해야겠다는 생각이 들어서 보고 있는데, 역시 대단하다는 생각이 듭니다. 

 

논문의 내용은 간결한 문체로 되어 있어, 관련된 백그라운드 지식이 없으면 어떤 내용인지 파악이 힘듭니다.

해서, 그 동안 30여년간의 IT 지식과 보안/암호학 경험을 가지고, 일반 엔지니어들이 이해할 수 있는 수준으로 논문을 해석해보려 합니다.

 

원래 벅역은 기존에 우리나라에 떠돌고 있는 번역본들을 참조하려했으나, 이왕 손붙인 바라, 그냥 번역까지 했습니다. 전체 번역본은 pdf로 별첨할 예정입니다.  

영어로 된 원문은 첨부된 pdf 파일 혹은 여기를 참조.

 

-----------------------------------------------------------------------------------------------

시작합니다.

논문 원문(번역본)은 2중실선으로 된 박스안에 위치 시키고, 박스 다음에 설명 하는 순으로 진행됩니다. 

 

제목과 요약입니다. 이 부분은 설명하지 않겠습니다. 왜냐면, 문서전체에 대한 요약이어서, 문서를 다 읽어야만 이해할 수 있을테니깐요.

비트코인: 개인간(peer to peer) 전자 화폐 시스템

 

 

Satoshi Nakamoto

satoshin@gmx.com

www.bitcoin.org

번역: Park HeeJin

 

 

 

요약. 순수한 개인 간(peer to peer) 전자화폐시스템으로도 금융기관의 개입 없이 직접 개인 대 개인으로 송금하는 온라인 지불이 가능하다. 전자 서명을 통해 이러한 것이 부분적으로 가능한데, 이중 지불을 막기 위해 여전히 중앙 기관이 필요하다면 주된 이점이 사라지게 된다.

이 논문에서 개인 간 네트워크에서 일어날 수 있는 이중 지불 문제에 대한 해결책을 제시하고자 한다. 네트워크 내에서 이루어지는 거래는 해싱(hashing)에 의해 타임 스탬프가 찍히게 되고, 해시(hash) 기반의 작업 증명(proof of work)에 의해 생성되는 연속된 체인의 일부로 포함되어, 이러한 작업 증명이 다시 진행되지 않는 한 변하지 않는 기록으로 남게 된다. 최장길이의 체인은 단순히 이 체인이 담고 있는 사건들의 시간 순서에 대한 증명일 뿐 아니라, 가장 큰 CPU 파워 풀(pool)에 의해 생성되었다는 증거이기도 하다. 과반수의 CPU 파워가 선량한 목적을 가진 네트워크의 노드(node)로부터 나온다면, 이 노드들은 네트워크 공격자들을 압도하며, 가장 긴 체인을 생성할 것이다.

네트워크 자체로는 최소한의 구조가 요구된다. 메시지들은 네트워크 상에서 최대한의 노력에 의해 브로드캐스트 되고, 노드들은 자유로이 네트워크를 이탈할 수 있으며, 이탈해 있는 동안 생성된 가장 긴 체인을 그사이 발생한 것들에 대한 증거로 수용함으로써 다시 네트워크에 합류할 수 있다.

 

시작합니다. 서론입니다.

 

서론

인터넷 기반 상거래는, 보증된 제삼자로서 전자지불 프로세스를 수행하는 금융기관에 전적으로 의존해 왔다. 이 시스템은 대부분의 거래에 대해 잘 동작하고 있지만, 뢰 기반 모델이기에 안고 있는 약점이 있다. 금융기관들이 분쟁에 대한 중재에서 자유로울 수 없기에, 완벽하게 철회 불가한 거래라는 것은 실재하지 않는다. 이러한 중재비용은 결국 거래비용을 상승시켜서, 거래 가능한 실질적인 최소거래금액을 제한하여 소액거래가 일어나기 힘들게 하고, 철회 불가한 속성을 가진 거래까지 철회 가능하도하려다 보니 더 큰 비용이 발생한다. 철회 가능성 때문에 더 많은 신용을 요구하게 된다. 판매자는 구매자에게 구매에 필요한 최소 정보보다 더 많은 정보를 귀찮게 요청하게 되고 경계하게 된다. 어느 정도 거래 사기를 감내할 수밖에 없다는 것이 현실이다. 이러한 비용과 거래의 불확실성은 실제 사람들에 의해 물리적 화폐가 사용될 때는 회피될 수 있는 사항이나, 디지털 통신상에서 거래가 일어날 때는, 믿을 수 있는 기관이 개입되지 않는 한 해결할 방법이 없다.

온라인 쇼핑몰에서 물건을 사는 경우를 생각해봅시다. 물건을 고르고 대금지불을 하려할 때 지불 수단을 물어봅니다. 신용카드로 결제하거나 무통장입금을 하거나 합니다. 이 경우 우리는 신용카드사 은행 등 금융기관을 이용하는 것이지요. 나와 쇼핑몰 사이에서, 제3자로서 물건에 대한 대가가 지불되는 것을 중개해서 보증해주는 겁니다. 만약 이러한 신용기관이 없다면, 물건을 사고 대금을 지불하는 것이 힘들겁니다.

물건을 파는 입장에서는 돈을 받아야 안심하고 물건을 보낼것이고, 돈을 보내는 입장에서는 물건을 받고나서 송금하길 원할 테니깐요. 

이처럼 인터넷 기반 전자상거래에 있어서, 제3의 신용기관은 필수인것으로 보입니다.

 

그런데 만약, 물건 구매를 하고나서, 생각이 바껴서 취소하고자 합니다. 가능할까요?

대부분 가능합니다. 우리나라의 경우 법으로도 보장이되어 있고, 카드로 구매를 했다면 환불도 쉽게 됩니다. 이러한 것을 카드사들이 해줍니다. 대신 수수료를 받지요. (2018년 1월 기준, 우리나라 온라인 결재에서의 카드 수수료는 3%~4%. 100만원이면 3만원~4만원이 수수료)

물건을 보내는 입장에서는, 물건을 송부하기 전에 취소하겠다는 연락을 받았으면, 물건을 안 보내면 되고, 돈도 안받으면 되겠습니다.

 

그런데, 물건을 이미 보낸 후라면? 더군다나 구매한 것이 물건이 아니고  구매하고 나면 사라지는 어떤 정보라면? 그렇다면 곤란합니다.

이렇게 철회불가한 서비스에 대해서 결재철회를 가능하게하려면, 많은 노력과 비용이 소요됩니다. 해서, 상품을 파는 입장에서는 소비자에게 물건 구매를 결정하기 전에 더 많은 것을 확인하라고 귀찮게 굽니다. 

 

이러한 신용거래를 가능케하고, 구매에 대한 철회도 감내하기 위해, 카드사는 일종의 위험수당이 포함된 수수료를 받는 것입니다. (또한 가짜 카드를 이용한 가짜 지불 등도 어느정도는 감내해야합니다. )

 

이 처럼, 전자상거래에 있어, 신뢰기관이 없이 전자상거래를 한다는 것은 상상할 수 없으나, 신뢰기관을 유지하기 위해서는 비용이 들어가게 되고, 끝내는 이러한 비용이 해당 거래 당사자에게 부가되는 겁니다. 

그렇다면, 다른 방법이 있을까요? 

사토시는 이런 신뢰기반이 아닌, 암호학적인 방법으로, 금융기관 같은 제3의 기관없이 가능하다고 합니다.

 

신뢰보다는 암호학적인 증명에 기반을 둔 전자 지불 시스템이 필요하다. 이 시스템은 거래 의사가 있는 두 당사가가 신뢰기관의 도움 없이 직접 거래를 수행하게 한다. 계산의 복잡성에 기인한 비가역적 거래는, 판매자가 사기당할 위험성이 없게 해주고, 구매자를 위해서는 이미 널리 사용되고 있는 에스크로 방법이 사용될 수 있다. 이 논문에서 우리는 거래들의 시간 순서에 대한 계산적 증거를 생성하는 피어 투 피어 기반의 분산 타임스탬프 서버를 써서 이중 지불 문제를 해결하는 방법을 제시한다. 이 시스템은 참여하고 있는 건전한 노드들의 CPU 파워가 공격자들의 파워보다 높은 한 안전하게 동작한다.

판매자와 구매자 당사자간 전자화폐거래를 함으로써, 신용카드사 같은 제3의 신뢰기관 없이 전자상거래가 가능하게 하겠다 합니다.

가능하려면, 판매자와 구매자 둘 다를 만족시키는 방안이라야합니다.

판매자에게는, 물건은 보냈는데 돈이 입금되지 않는 일이 발생하지 않는다는 보장이 필요하고, 또한 구매자가 상품을 구매하고 대금지불도 마치고 난 후 다시 대금지불을 취소하는 상황이 일어나지 않는다는 보장이 필요합니다.

구매자에게는, 판매자에게 돈은 보냈는데 물건이 도착하지 않는 문제가 발생하지 않는다는 보장이 되야합니다.

 

판매자의 우려를 없애는 방법은, 이 논문에서 제시하는 암호학에 바탕을 둔 전자화폐를 사용하면 된다 합니다. 왜냐하면 이 화폐는, 구매자가 한 번 지불을 하면, 그 지불을 취소할 방법이 아예 존재하지 않기 때문입니다. 즉, 한 번 지불하면 무조건 끝인, 환불 불가한 성격을 가진 전자화폐입니다. (전자화폐가 이런 성질을 가지도록 설계하겠다는 얘기입니다.) 

 

구매자의 우려는, 전자상거래에서 쓰이고 있는 에스크로(escrow) 방법을 쓰면 된다고 합니다. 

에스크로는, 판매자와 구매자 사이에 신뢰할 수 있는 제3자가 중개해서 거래의 안정성을 보장하는 겁니다. 절차를 보면,

 1)구매자는 제3자에게 구매대금을 위탁한다.

 2)판매자는, 제3자에게 구매자의 대금이 입금되었음을 확인하고, 구매자에게 상품을 발송한다.

 3)구매자는 도착한 상품을 확인하고, 제3자에게 상품이 도착했음을 알린다. 

 4)제3자는, 구매자가 위탁했던 대금을 판매자에게 송부한다.

 5) 판매자는 대금을 수령한다. 

 

즉, 이 논문에 의하면 (비트코인에 의해서는), 판매자의 염려는 제3자의 개입없이 해결할 수 있으나, 여전히 구매자의 염려는 제3자의 개입이 있어야 해결이 되는 겁니다. ^^ 그런면에서 보면 논문의 저자인 사토시는 판매자편.  

 

서론의 마지막에 있는 아래 글은, 비트코인 전체를 한 문장으로 나타낸 겁니다. 본문에서 차차 설명토록하겠습니다.

 이 논문에서 우리는 거래들의 시간 순서에 대한 계산적 증거를 생성하는 피어 투 피어 기반의 분산 타임스탬프 서버를 써서 이중 지불 문제를 해결하는 방법을 제시한다. 이 시스템은 참여하고 있는 건전한 노드들의 CPU 파워가 공격자들의 파워보다 높은 한 안전하게 동작한다.

 

다음 절은 본문의 처음으로, 비트코인의 "거래(Transaction)"가 어떻게 이뤄지는지 다룹니다.

 

-계속-

 

[전체 목차]

1. 서론  
2. 거래(1/2)  
2. 거래 (2/2)
3. 타임스탬프 서버 
4. 작업 증명 
5. 네트워크 
6. 인센티브 
7. 디스크공간 회수 
8. 지불 입증 간소화 
9. 금액의 결합과 분할 

 

반응형