본문 바로가기

정보보기

비트코인, 공개 키 암호방식, 공개된 계정간의 거래

반응형

 

 

비트코인, 공개 키 암호방식, 공개된 계정간의 거래

 

비트코인(Bitcoin)2009 나카모토 사토시가 만든 디지털 통화, 통화를 발행하고 관리하는 중앙 장치가 존재하지 않는 구조를 가지고 있다. 대신, 비트코인의 거래는 P2P 기반 분산 데이터베이스에 의해 이루어지며, 공개 키 암호 방식 기반으로 거래를 수행한다. 비트코인은 공개성을 가지고 있다. 비트코인은 지갑 파일의 형태로 저장되며, 이 지갑에는 각각의 고유 주소가 부여되며, 그 주소를 기반으로 비트코인의 거래가 이루어진다. 비트코인은 1998년 웨이따이가 사이버펑크 메일링 리스트에 올린 암호통화(cryptocurrency)란 구상을 최초로 구현한 것 중의 하나이다.

 

개요

비트코인은 공개 키 암호 방식을 이용해 공개된 계정간에 거래를 한다. 모든 거래는 비공개적이나 거래의 기록은 남으며, 분산 데이터베이스에 저장된다. 분산된 시간서버로 일련의 작업증명(proof-of-work)을 하여 중복지출(double-spending)을 방지한다. 거래 기록은 모두 데이터베이스에 저장되어야 한다. 저장소 크기를 줄이기 위해 머클 트리(Merkle tree)가 사용된다.

  

기술

비트코인은 웨이따이의 비-머니(b-money) 제안과 닉 재보(Nick Szabo)의 비트골드(Bitgold) 제안을 P2P로 구현한 것이다. 체계의 원리는 사토시 나카모토의 2008년 비트코인 백서에 나와 있다.

 

주소

비트코인 네트워크에 참여하는 사람은 모두 임의의 암호화 키쌍을 담고 있는 지갑을 갖게 된다. 공개키는 비트코인 주소와 마찬가지인데 모든 지불의 발신자수신자 종단점으로 작동한다. 공개키의 짝이 되는 비밀키는 소유자만이 지불할 수 있도록 허가하는데 사용된다. 비트코인 주소에는 소유자에 대한 정보가 포함되지 않아서 익명성을 갖고 있다. 주소는 사람이 읽을 수 있게 표기될 경우 33글자 정도 된다. 비트코인 사용자는 여러 주소를 보유할 수 있고 새로운 주소를 제한 없이 생성할 수 있다. 어떤 네트워크 노드와도 접촉할 필요 없이 새로운 공개키와 암호키쌍을 간단히 생성하면 새로운 주소를 즉시 만들 수 있기 때문이다. 쉽게 주소를 무한대로 생성해 바꿔 사용한다면 익명성이 보장될 수 있다.

 

거래

비트코인에는 현재 소유자의 공개키(주소)가 포함되어 있다. 사용자 이 사용자 에게 무언가를 전송할 경우를 보자. 의 공개키(주소)를 비트코인에 추가하고 이 소유한 개인키로 서명한다. 그 다음 은 이 비트코인을 적절한 메시지의 거래 내역으로 P2P 네트워크에 방송한다. 나머지 네트워크 노드들은 암호화된 서명과 거래량을 허가하기 전에 입증한다.

 

블록체인

다른 노드로 방송(broad cast)된 거래 내역들은 어떤 것이라도 즉시 공식적이지 않다. 블록 체인(block chain)이라고 불리는 거래내역이 있는데, 이것은 알려진 모든 거래 내역의 목록을 수집해 보관하는 것이다. 블록 체인에서 6회 이상 인정되어야 공식적인 거래가 된다. 각각의 생성용 노드들은 인정되지 않은 거래 내역을 전해 듣고 후보 블록에 수집한다. 후보 블록은 다른 것과 함께 있는 파일이고 이미 알려져 있는 바로 이전의 유효블록(valid-block)의 암호화 해시를 포함하고 있다. 생성용 노드들은 난이도에 의해 정해진 목표값 이하의 암호화 해시를 생성하기 위해 시행 착오를 반복한다. 노드가 그 해답을 찾으면, 노드는 네트워크의 나머지 노드에게 알린다. 새로 해결된 블록(solved-block)을 받은 노드들은 그것을 허가하기 전에 인증하고 체인에 추가한다.

결국, 블록체인은 생성자의 주소부터 현재 소유자의 주소까지 모든 암호화 기록을 갖게 된다. 그래서 사용자가 이미 사용한 돈을 재사용하려고 하면, 네트워크가 거래를 거부할 수 있는 것이다.

 

비트코인 생성

비트코인 네트워크는 코인 생성옵션을 선택한 소프트웨어를 구동하는 누군가, 구체적으로는 블록을 생성해내는데 성공한 누군가에게 한 묶음의 새로운 비트코인을 시간당 6번 정도씩 생성해 배분할 수 있도록 되어 있다. 그 소프트웨어나 같은 역할을 하는 사용자가 직접 만든 특수한 프로그램을 구동하는 사람은 누구나 비트코인 묶음을 받을 가능성이 있다. 비트코인을 생성하는 것은 금광 채굴에 빗대어 채굴이라고 불리기도 한다. 사용자가 코인 묶음을 받을 수 있는 확률은 정해진 목표값 이하의 해시를 만들어낼 수 있는 확률과 같으며, 비트코인이 묶음당 생성되는 양은 50 BTC를 넘지 않는다. 그리고 변동분은 21만 코인이 될 때 마다 1/2으로 줄어들게 프로그램되어, 전부 2100만을 넘지 않게 된다. 이 지불금이 줄어들면, 사용자들은 블록을 생성하는 노드를 구동하는 것 보다는 거래 수수료를 벌도록 유도된다.

네트워크의 생성용 노드들은 전부 그들의 후보 블록을 만들기 위한 암호화 문제를 찾아내기 위해 경쟁한다. 이 문제를 풀려면 반복적인 시행착오가 필요하다. 노드가 정답을 찾으면 네트워크의 나머지 노드에게 그것을 알리고 새로운 비트코인 묶음을 요구한다. 새로 해결된 블록(solved-block)을 받은 노드들은 그것을 허가하기 전에 인증하고 체인에 추가한다. 노드에는 표준 클라이언트를 사용하거나 GPU 가속을 이용하는 다른 소프트웨어가 사용될 수 있다. 사용자들은 집단으로 비트코인을 생성할 수도 있다.

 

거래 수수료

노드는 자신이 생성하는 블록에 다른 이들의 거래내역을 포함할 의무가 없기 때문에, 비트코인 송신자는 거래 수수료를 자발적으로 지불함으로써 거래 속도를 높이고 사용자들이 노드를 운영하려는 유인을 제공한다. 특히 비트코인을 생성하기가 어려워질수록, 시간이 감에 따라 블록 분량마다의 보상이 줄어든다. 노드들이 받는 보상은 후보 블록에 포함된 모든 거래 내역과 관련된 거래 수수료이다.

 

총발행량

2009년 만들어진 비트코인은 총발행량 2100만 비트코인이 한계이다. 그 이상은 발행될 수 없다. 2013년 현재 대략 1,200만 비트코인이 발행되었다. 그러나 다른 유사한 암호통화가 비트코인을 시작으로 해서 다수 등장해 있기 때문에, 라이트코인 등 대체 암호통화를 사용하거나, 아니면 더 작은 단위로 쪼개 쓰면 된다. 비트코인은 소수점 8자리까지 나눌 수 있게 설계됐다. 비트코인의 가장 작은 단위는 창안자인 사토시 나카모토를 기념하기 위해 사토시라는 단위로 불린다.

 

 

반응형