본문 바로가기

비트코인가이드

비트코인 Q&A: 비트코인 거래가 이루어지는 방식은?



비트코인 거래란 비트코인 전자지갑에 돈을 보내고 받는 것을 말하며 보안을 위해 디지털 서명을 한다. 네트워크에 있는 사람이면 누구나 거래를 확인하고 거래 기록도 비트코인이 생성된 당시로 거슬러 올라가 추적할 수 있다.


가격 상승을 바라고 있다면 비트코인을 보유하는 것이 좋겠지만 돈이란 원래 쓰려고 만든 것이다. 그렇다면 비트코인을 쓸 때 거래는 어떤 식으로 이루어지는 것일까?


비트코인은 없고 거래 기록만 존재


비트코인이 재미있는 점은 어디에도 존재하지 않는다는 것이다. 하드드라이브에도 비트코인은 없다. 비트코인을 갖고 있다고 말해도 은행 계좌에 파운드나 달러가 정말로 저장되는 것이 아닌 것처럼 그 사람의 비트코인 계좌에 디지털 비트코인이 저장돼 있는 것은 아니다. “이것이 비트코인이다.”라고 말할 수 있는 실체나 디지털 파일조차 존재하지 않는다.


그 대신 늘어나거나 줄어든 잔고와 계좌 간 거래 기록만 남는다. 모든 거래는 블록체인이라는 공개장부에 저장된다. 비트코인 계좌 잔고를 알아내고 싶다면 계좌를 볼 것이 아니라 블록체인에서 확인해야 한다. 


거래는 어떤 식으로 일어날까?


엘리스가 밥에게 비트코인을 보낼 때 3가지 정보가 필요하다.


· 입력 값(input): 처음 엘리스가 비트코인을 받을 때 사용된 계좌 기록이다.(엘리스는 친구 이브에게 비트코인을 받았다.)


· 전송 값(amount): 엘리스가 밥에게 보낼 비트코인의 양이다. 


· 출력 값(output): 밥의 비트코인 계좌다.


비트코인을 보내는 방법은?


비트코인을 보내려면 비트코인 계좌(주소)와 비밀키가 필요하다. 비트코인 계좌는 무작위로 생성되며 문자와 숫자가 나열된 단순 조합이다. 비밀키도 문자와 숫자가 나열된 조합이지만 비트코인 주소와 다르게 공개되지 않는다.


앞판이 유리로 된 안전금고 속에 비트코인 계좌를 넣어뒀다고 상상해 보자. 모두가 그 안에 무엇이 있는지 볼 수 있지만 비밀키가 있어야 금고를 여닫을 수 있다.


엘리스가 밥에게 비트코인을 보낼 때 입력 값(비트코인의 출처가 된 거래)과 전송 값, 출력 값(밥의 계좌)에 비밀키로 서명한다.


그러면 그 기록은 엘리스의 비트코인 지갑에서 비트코인 네트워크로 전송되고 비트코인 마이너들이 블록에 그 거래를 기록하고 거래가 사실인지 확인한다.


거래를 확인하는 데 시간이 걸리는 이유는?


마이너들이 거래를 확인하기 때문에 마이닝(mining, 채굴)이 끝날 때까지 기다려야 할 때가 있어서다. 비트코인 블록 하나를 캐내는 데에는 10분 정도 걸린다. 


이 블록이 확인될 때까지 기다려야 하는 비트코인 지갑도 있어서 조금 기다려야 비트코인을 다운받거나 결제 서비스를 이용할 수 있다.


하지만 거래를 확인하는 데 시간이 걸리지 않는 지갑도 있다. 이런 곳은 거래가 확인되기 전에 고객이 그 비트코인을 다른 곳에서 쓰지 않을 것으로 믿고 맡긴다고 볼 수 있다. 주로 금액이 적은 거래에서 사기 위험이 크지 않을 때 자주 있는 일이다.


입력 값과 출력 값이 맞지 않는다면?


비트코인은 거래 기록상으로만 존재하기 때문에 한 계좌에서 여러 거래가 일어날 수 있다. 예를 들어 제인이 엘리스에게 2비트코인, 필립이 3비트코인, 이브가 1비트코인을 각각 다른 시간에 다른 거래로 보낼 수 있다. 


하지만 이때 거래로 생긴 6비트코인이 엘리스의 지갑에 하나의 파일로 자동 통합되는 것이 아니라 서로 다른 거래 기록으로 남는다. 


엘리스가 밥에게 비트코인을 보내고 싶다면 보내고 싶은 비트코인 개수만큼 여러 거래 기록에서 가져와 더해야 한다. 


거래 기록에 밥에게 보낼 양에 딱 맞는 비트코인이 있을 가능성이 적어서다. 예를 들어 엘리스가 밥에게 1.5비트코인만 보내고 싶을 수 있다.


엘리스의 비트코인 계좌에 그 양에 딱 맞거나 더했을 때 그 양이 되는 거래 기록이 없다고 해도 한 거래 기록에 있는 비트코인을 더 작게 나눠 그 액수만 보낼 수 없다. 기록 하나의 출력 값을 작게 나누기보다 전체를 한꺼번에 써야 한다.


그 대신 거래 기록 하나에 들어 있는 비트코인을 모두 보내고 나머지를 계좌로 돌려받으면 된다.


엘리스가 제인에게 받은 2비트코인을 밥에게 보낸다. 이때 제인이 입력 값이 되고 밥이 출력 값이 된다. 하지만 엘리스가 보내고 싶은 전송 값은 1.5비트코인이다. 이때 엘리스의 비트코인 지갑은 거래용 출력 값을 자동으로 2개 생성해서 1.5비트코인을 밥에게 0.5비트코인은 잔돈을 받기 위해 만든 새 계좌로 보낸다.


거래 수수료가 있나?


가끔 생긴다. 거래 수수료는 다양한 요인으로 생기는데, 고객이 직접 거래 수수료를 설정할 수 있게 하는 지갑도 있다. 받는 사람이 가져가지 않거나 잔돈으로 돌아온 거래액 일부를 수수료로 볼 수 있다. 이 금액은 거래 블록을 푼 마이너에게 보상으로 돌아간다.


현재는 수수료 없이 거래를 처리해주는 마이너가 많지만 비트코인 블록 보상이 줄어들면 이런 경향도 줄어들 것이다.


과거 거래 수수료 계산이 복잡하고 이해하기 어려운 것이 문제였다. 프로토콜이 여러 번 업데이트되고 유기적으로 발전하면서 빚어진 일이었다.


비트코인 거래를 처리하는 핵심 소프트웨어를 업데이트해 수수료 계산 방법을 바꾸고 받아들일 수 있는 최저 수수료를 계산하도록 할 예정이다. 


영수증을 받을 수 있을까?



비트코인은 영수증을 받을 수 있는 돈이 아니다. 하지만 0.9버전에서 결제 방식을 조금 더 사용자에 친화적이고 발전한 형태로 바꿨다.


BitPay 같은 결제업체도 영수증이나 주문 확인 웹 페이지 등 원래 비트코인 거래에는 없던 기능을 제공한다. 


1비트코인보다 적은 금액을 보내고 싶다면?


비트코인 거래도 나눌 수 있다. 1비트코인을 사토시 1억 개로 나눌 수 있으며 5430 사토시만큼 적은 액수도 네트워크로 거래할 수 있다.




How do Bitcoin Transactions Work?

http://www.coindesk.com/information/how-do-bitcoin-transactions-work/



반응형