2014년 12월 14일 일요일

비트코인 - 개요

아래 내용은 위키피디아에 있는 비트코인에 관한 내용을 옮긴 것이다.

비트코인은 2008년에 사토시 나카모토에 의해 기술되고, 2009년에 오픈소스 소프트웨어로 소개된 소프트웨어 기반 온라인 지불시스템이다. 지불 내용은 비트코인이라고 불리는 고유한 계정을 사용해서 공개거래장부에 기록된다. 지불이 중앙 저장장치나 독립된 기관이 없이 P2P방식으로 작동되는 분산형 가상화폐이다. 언론에서는 비트코인을 암호통화 또는 디지탈통화라고 말하기도 한다.

비트코인은 최초로 실현된 분산암호통화이다. 다른 암호통화들은 대부분 이 비트코인에서 파생된 유사한 것들이다. 또한 총 시장가치로 볼 때 비트코인이 가장 큰 암호통화다.

컴퓨터에 비트코인 소프트웨어를 설치한 후 실행시키면, 시스템내에서 발생한 거래가 정상인지 검증하고 이를 공개거래장부에 기록한다. 이렇게 컴퓨터를 사용하는 대가로 비트코인을 만들어 준다. 이러한 과정을 마이닝(채광)이라고 부르고 새로 만들어진 비트코인을 이 것을 만든 사람이나 회사한테 지급한다. 비트코인은 마이닝 이외에도 실제 돈이나 상품 또는 서비스를 제공하고 그 대신 받을 수 있다. 사용자는 컴퓨터나 핸드폰, 웹어플리케이션 또는 하드웨어지갑이라고 하는 특별한 장비를 사용해서 비트코인을 전자적으로 주거나 받을 수 있다. 이때 일정한 거래수수료가 있을 수 있는데 이 것은 마이닝 또는 컴퓨터를 제공하는 사람에게 지불된다.

상품이나 서비스를 거래하는 사람들이 비트코인을 지불방법으로 선호함에 따라 비트코인 사용율이 증가하고 있다. 이것은 신용카드 업체들이 부과하는 2~3%의 수수료에 비해 수수료가 적기 때문이다. 유럽은행에서는 비트코인이 신용카드와는 달리 소비자 보호가 없기 때문에 사용하는데 주의해야 한다고 경고한다. 비트코인은 신용카드와는 달리 벤더가 수수료를 내는 것이 아니라 구매자가 부담한다. 비트코인은 도난당할 수 있고 일단 지불된 것은 환불이 불가능하다. 2013년까지 비트코인이 상업적으로 이용된 것 보다 투기성으로 이용된 규모가 더 크다. 이 것이 비트코인 가치를 불안정하게 하는 요인이 되고 있다.

비트코인이 인터넷 암시장에서 불법적인 것을 거래하는데 사용되고 이 것이 당국에 의해서 적발되면 사이트가 폐쇄되고 비트코인은 압수당하기도 한다.

가상화폐에 대한 미국의회의 청문회가 2013년 11월 18일에 최초로 열렸다. 청문회에 나온 당국자들은 가상화폐가 범죄를 용이하게 할 수 있다는 우려 속에서 비트코인의 전망과 함정에 대해 이야기 하였다. 미국은 다른 나라보다 비트코인을 좀 더 좋게 보고 있다. 중국은 비트코인을 위안화로 사지 못하도록 하고 있고 은행계좌를 통해 비트코인과 환전하는 것을 금지하고 있다.


디자인

비트코인 시스템에 있어서 가장 중요한 파트는 블럭체인이라고 하는 공개거래장부이다. 비트코인은 블럭체인이라고 하는 곳에 거래내역으로 기록된다. 특이한 점은 이 것이 어떠한 중앙당국자의 개입도 없이 이루워 진다는 것이다. 누구나 비트코인 소프트웨어를 실행시켜서 비트코인 네트워크 에 참여 할 수 있는데, 공개거래장부는 이들이 서로 통신하는 네트워크상에서 유지된다. X라는 사람이 Y비트코인을 Z에게 지불한 거래내역은 소프트웨어에 의해 비트코인 네트워크에 전파된다. 네트워크 노드는 이 거래내역이 문제 없는지를 검증한 후 문제가 없으면 이 거래내역을 대장사본에 저장하고 이 대장을 다른 노드에 전파한다.


블럭체인

비트코인 트랜젝션은 블럭체인이라고 하는 공개거래장부에 기록된다. 블럭체인은 분산되어 저장된다. 모든 비트코인 금액의 소유관계를 독립적으로 검증하기 위해서 비트코인 소프트웨어 전체가 복제되어 저장된다. 한시간에 약 6번씩 그동안 받아 들인 트랜젝션을 한 블럭으로 만들어 블럭체인에 추가한 후 즉시 네트워크에 전파한다. 이렇게 함으로써 비트코인 소프트웨어가 특정한 비트코인 금액을 언제 사용하였는지 알 수 있고, 중앙통제가 없는 환경에서도 중복사용을 방지할 수 있는 것이다. 현실세계의 대장은 영수증이나 약속어음 자체가 기록되는 것이 아니라 그런 재화의 이동을 기록하는 반면 블럭체인은 비트코인 자체가 저장된다.


단위

비트코인 시스템에서 계정의 단위는 비트코인(BTC, XBT, BitcoinSign.svg)이다. 비트코인은 0.00000001 BTC까지 작은 조각으로 나뉠 수 있다. 이 단위는 비트코인 개발자의 이름을 따서 사토시라고 한다. 사토시는 비트코인의 가장 작은 조각이다.

또 다른 단위로는 밀리비트코인(mBTC)와 마이크로비트코인(µBTC)이 있다. 밀리비트코인은 0.001 BTC이고 마이크로비트코인은 0.000001 BTC인데 이 것은 백만분의 1 비트코인 또는 100사토시 또는 0.001 mBTC이다. 마이크로비트코인은 가끔 bits라고도 한다.

2014년 10월 7일 발간된 한 신문에서, 비트코인 재단은 비트코드용 ISO 4217 통화코드를 공식으로 신청할 계획이라고 발표했다. 그 신문은 BTC와 XBT가 그 후보가 될 것이라고 밝혔다.(ISO 4327은 국제기구가 제정한 표준 통화코드로서 KRW나 USD등이 그 예다.)


소유권



간략화한 소유권 체인 : 한 트랙젝션이 하나 이상의 입력과 하나 이상의 출력을 갖는다. https://bitcoin.org/bitcoin.pdf

비트코인을 지불하게 되면 새로운 트랜젝션이 만들어 지는데, 이 때 지불하는 사람은 자신의 사설키로 새로운 트랜젝션에 디지탈사인을 해야 한다. 사설키를 알고 있는 사람만 사인할 수 있기 때문에 부정사용을 막을 수 있다. 네트워크는 공용키를 사용해서 사인을 검증할 수 있다.

만약 사설키를 잃어 버린다면 비트코인 네트워크는 소유권을 인식할 수 없게 되어서 코인을 잃어 버리게 되고, 한번 잃어버린 코인은 다시 복구할 수 없게 된다. 예를 들어 2013년에 한 사용자는 자신의 사설키가 담긴 하드디스크를 폐기하는 바람에 당시 750만 달러에 해당하는 7,500 비트코인을 잃어 버렸다고 한다.


트랜젝션


http://chimera.labs.oreilly.com/books/1234000001802/ch02.html#_bitcoin_transactions

트랙젝션에서 입력은 수입을 의미하고 출력은 지출을 의미한다. 입력의 합보다 출력의 합이 적을 수 있는데 이 것은 거래수수료때문이다. 거래수수료는 마이닝을 하는 대가로 마이너에게 지불된다.

한 트랜젝션은 한개 이상의 입력을 갖고 있어야 한다. 정상적인 트랜젝션으로 검증되려면, 그 입력이 이전 트랜젝션의 출력이어야 하는데, 이 출력은 반드시 디지탈사인이 되어 있어야 한다. 입력이 여러개인 경우 현금거래에 있어서 동전을 여러개 받는 것과 같다.

한 트랜젝션이 출력을 여러개 갖고 있을 수 있어서 한꺼번에 여러가지 지출이 가능하다. 트랜젝션 출력 한 개는 한개 이상의 사토시로 이루워 진다.

현금거래와 비슷하게 입력의 합(지불에 사용된 코인의 합)이 원래 받고자 하는 금액을 초과할 수 있다. 그런 경우, 잔돈을 거슬러 주기 위해 추가적인 출력을 사용하게 된다.

마이닝



상대적인 마이닝 난이도 차트. Y축:상대적 마이닝 난이도, 구간은 로그단위, X축:2009-1-09일부터 2014-11-08일까지

마이닝은 기록보존서비스를 하는 것을 말한다. 금광에서 금을 캐는 것과는 완전히 다른 것이다. 마이너는 블럭체인을 일관적이고 완전하게 유지하는 역할을 맞는다. 또, 새롭게 전파되는 트랜젝션을 지속적으로 검증하고 이 트랜젝션을 블럭이라고 부르는 새로운 트랜젝션그룹으로 수집 및 저장해서 변경불가능한 상태로 유지한다.

새로운 블럭은 이전 블럭으로 연결되는 체인과 블럭체인 이름을 갖고 있어야 한다.

마지막으로 새로운 블럭은 작업증명(proof-of-work)이라고 하는 것을 갖고 있어야 한다. 작업증명은 목표값(difficulty target)이라고 하는 수와 논스(nonce:a number used only once)라고 하는 수로 되어 있다. 마이너는 목표값보다 작은 해시값을 만드는 논스를 찾아야 한다. 새로운 블럭이 만들어지고 네트워크에 배포되면, 각 네트워크 노드는 주어진 논스의 해시가 목표값보다 작은지 쉽게 알 수 있다. 반면에 목표값보다 작은 해시를 만들어 내는 논스를 찾아 내는 것은 대단히 어려운데 이것은 해시에서 논스를 찾아 내는 방법은 한가지 밖에 없기 때문이다. 즉, 마이너는 한번에 숫자 하나씩 시도해 보아야 하는데, 예를 들면 처음에 1을 해 보고 그 다음 2, 3, 4를 해 보는 식으로 들어 맞는 결과를 찾을 때 까지 계속 반복해야 한다. 목표값보다 해시가 작다는 사실은 이 지루한 작업을 마쳤다는 증거이고 그래서 작업증명이라고 한다. (논스는 4바이트 크기이다.)


http://bitcoinclock.com에서 보면 초침은 약 24시간마다 144개 블럭이 만들어 지고 있는 것을 보여 주고, 분침은 2016블럭(약 2주)마다 난이도가 조정되며, 시침은 21만블럭(약 4년)마다 보상이 절반으로 줄어 드는 것을 보여 준다.

목표값이 작으면 논스를 찾는 것이 어려워 진다. 이 것은 특정한 값이 목표값보다 작은 해시를 만들어 낼 가능성이 적어지기 때문이다. 비트코인시스템은 2016블럭마다 목표값을 조정해서 전체 네트워크에서 논스 하나를 찾아내는데 걸리는 시간이 약 10분이 되도록 한다. 컴퓨터 하드웨어가 해마다 빨라지는 동안에도 비트코인 프로토콜은 이런 방법으로 단순히 목표값을 조정해서 마이닝에 걸리는 시간이 언제나 약 10분이 되도록 하였다. 예를 들어, 2014년 4월말에 마이너는 평균 34.4 x 10의 18승번을 시도해야 논스를 찾을 수 있었고, 같은 해 10월말에는 평균 154.6 x 10의 18승번을 시도해야 논스를 찾을 수 있었다.

작업증명은 블럭이 연결되어 있다는 사실과 함께 블럭체인을 수정하는 것을 극도로 어렵게 한다. 어떤 블럭을 수정하려면 해당 블럭만 수정해서 되는 일이 아니고 그 이후 블럭들을 모두 바꾸어야 하고, 네트워크에서 새로운 블럭을 만들어 내기 전에 수정을 끝내야 하므로 네트워크상에 있는 모든 컴퓨터의 성능보다 앞서야 하기 때문이다.

공급


총 비트코인 회전수. X축:2009-01-09일부터 2014-11-08일까지

새로운 블럭을 찾아 낸 마이너는 새로 만들어진 비트코인과 트랜젝션 수수료를 받는다. 2014년 현재, 한 블럭당 비트코인 25개가 보상금으로 주어지고 블럭체인에 추가되었다. 보상금은 코인베이스(coinbase)라고 하는 특별한 트랜젝션을 사용해서 지불된다. 순환되는 모든 비트코인은 그런한 코인베이스 트랜젝션으로 역추적 될 수 있다. 비트코인 규약은 블럭 하나를 추가해서 받는 보상이 약 4년마다 절반씩 줄어 들 것이라고 기술되어 있다. 결국 2,100만 비트코인에 도달하면 블럭을 만들어서 받는 보상이 완전히 없어지고 트랜젝션 수수료로만 보상이 될 것이다.

트랜젝션 수수료가 항상 있는 것은 아니지만 트랜젝션 수수료를 지불하게 되면 트랙젝션을 검증하는 속도가 빨라 진다. 수수료를 지불하게 되면 블럭체인에 빨리 추가될 가능성이 높기 때문에 지불하는 사람들이 수수료를 지불하도록 유인하는 요인이 된다. 마이너는 어떤 트랜젝션을 처리할 지 선택할 수 있기 때문에 수수료를 지불하는 것을 먼저 선택할 수 있다. 수수료는 오래 된 정도와 크기 그리고 입력수에 따라 결정된다. 각각의 입력 값(XBT)을 오래 된 정도로 곱한 후 합계를 내서 트랜젝션 크기(바이트)로 나눈 후 그 값이 0.576보다 작으면 수수료를 내야 한다. [참고]


지갑

비트코인 지갑이라고 하는 비트코인 클라이언트 소프트웨어는 비트코인을 거래할 때 사용된다. 지갑이 비트코인을 저장하는 장소라고 자주 이야기 하지만 비트코인은 원래 블럭체인 거래장부와 분리될 수 없는 것이다. 소유한 비트코인에 접근할 수 있는 로그인정보를 저장하는 곳이 지갑이라고 말하는 것이 더 적절한 설명이 될 것이다. 비트코인은 공개키 기반으로, 공개키와 사설키 두개의 키를 발행한다. 공개키의 해시는 비트코인의 주소이다. 비트코인을 소유하고 있는 경우 사설키를 사용해서 그 주소에 접근할 수 있게 된다. 가장 기본적인 지갑은 이 키를 저장하는 지갑이다. 하지만 대부분의 지갑은 트랜젝션을 만들 수 있는 기능이 있다.

지갑을 구현하는 방법에는 몇가지가 있다. 첫번째 지갑 프로그램은 사토시 나카모토에 의해 오픈소스코드로 발표된 Bitcon-Qt다. 이 것은 지불할 때 데스크탑지갑으로 사용되거나, 사업자 또는 다른 지불서비스용 서버유틸리티로 사용될 수 있다. 버전 0.9에서 네트워크상에서의 역할을 좀 더 정확하게 표현하기 위해 이름을 Bitcoin Core로 바꾸었다. 모바일용 지갑은 간단하게 트랜젝션을 만들기 위해 QR코드를 사용한다.

소프트웨어 지갑과는 별개로 온라인 지갑이라고 하는 Blockchain.info, Circle 또는 Coinbase 같은 인터넷 서비스가 서비스 가입자에게 비슷한 역할을 한다. 온라인 지갑의 이점은 사용법이 쉽고 여러가지 기능이 있다는 것이다.

물리적인 지갑이라고 불릴 만한 물리적인 비트코인이 매스콤에 많이 보도된다. 사설키가 인쇄된 종이나 금속, 나무 또는 플라스틱으로 된 신기한 모양의 동전등이 그런 것 들이다. 보안을 염려하는 사람은 사설키를 종이에 인쇄해서 보관하거나 오프라인 데이터 저장서비스를 이용하는 것이 좋은 방법이 될 것이다.



온라인 지갑의 편리함과 종이지갑의 보안을 결합한 것이 하드웨어 지갑이다. 그런 지갑의 예가 Trezor다. (trezor는 금고라는 뜻의 슬라브어다.)


프라이버시

비트코인 시스템에서 거래의 내용은 공개되지만 비트코인의 소유자를 밝히지 않음으로서 프라이버시가 지켜진다. 비트코인 사용자를 이름을 갖고 찾아 낼 수는 없지만 모든 사람이 트랜젝션을 볼 수 있기 때문에 트랜젝션을 각 개인이나 회사와 연결할 수 있다.[참고] 또한, 현금으로 비트코인을 교환할 때 개인정보가 수집될 수 있다.[참고] 재정프라이버시를 유지하려면 각 트랜젝션마다 서로 다른 비트코인주소를 사용해야 하지만 다중-입력 트랜젝션 또한 모두 동일한 소유자에 속한다는 것이 밝혀졌다. 소유한 코인을 거래할 때 다른 코인의 이력이 남도록 하는 믹싱서비스를 사용하는 사용자들이 프라이버시에 대해 걱정하는 이유가 바로 이 것 때문이다.[참고]

프라이버시 레벨을 비교한다면 비트코인이 신용카드 지불보다 더 좋다고 볼 수 없다.


대체 가능성

현금을 대체할 가능성은 합법적으로 결재에 이용할 수 있는가에 달려 있다. 지갑소프트웨어나 이와 비슷한 소프트웨어는 기술적으로 비트코인을 동등한 것으로 다루기 때문에 기본적인 대체 가능성을 제공한다. 하지만 연구원들은 모든 비트코인이 블럭체인대장에 기록되고 공개되기 때문에 어떤 사람들은 논란이 될만한 거래에 비트코인을 받지 않으려고 할 것이고 이로인해 대체 가능성이 줄어 들 것이라고 지적한다.[참고]



참고링크

http://en.wikipedia.org/wiki/Bitcoin
http://www.bitcoinwiki.or.kr/
http://bitcoinfees.com/
https://www.bittrex.com/
https://bitcointalk.org/index.php?topic=663728
https://en.bitcoin.it/wiki/Main_Page
https://en.bitcoin.it/wiki/Block_hashing_algorithm
http://bitcoinclock.com/
http://chimera.labs.oreilly.com/books/1234000001802/ch02.html#_bitcoin_transactions
http://evolvingnewsroom.co.nz/video-explanation-bitcoin-works/

댓글 없음 :

댓글 쓰기

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.