#16 - 비트코인 잔액은 어떻게 확인할까?(input&output) / 비트코인 거래원리(4/N)

in #kr7 years ago (edited)


main.jpg



안녕하세요. 어미새입니다.


지난 포스팅에서는 트랜잭션 검증원리에 대해서 학습하였습니다. 지난 시간의 내용을 요약하면 아래와 같습니다.


  1. 노드에 전파된 트랜잭션이 '진짜'인지 검증을 하기 위하여 '전자서명'이 필요하다.
  2. 공개키 암호화 알고리즘에 의해 송신자의 '개인 키'로 암호화 했을 경우 '전자 서명'된 데이터를 만들 수 있다.
  3. 트랜잭션에는 '원본 데이터'와 '전자 서명'이 포함되어 있으며 각 노드로 전파된 트랜잭션이 진짜 인지를 검증하기 위해 사용된다.
  4. 노드는 '전자 서명'된 데이터를 난독화 하여 난독화된 데이터와 원본 데이터가 완전히 일치했을 경우에만 유효한 트랜잭션으로 인정하고 해당 거래를 업데이트 후 주변 노드들에 해당 트랜잭션을 전파한다.


오늘은 비트코인 거래시 내 잔액이 얼마인지.. 어떻게 확인하는지에 대한 개념정리와 거래 시 발생하는 입력 값(input), 출력 값(output)이 무엇인지에 대한 개념정리를 해보도록 하겠습니다.



내 잔고는..?


우리가 은행에 방문하여 A라는 사용자에게 돈을 이체하기 위해서는 당연한 이야기지만 돈이 있어야 가능 합니다.은행에서는 계좌이체를 한 계좌에 이체할 돈이 충분한지 확인 후 이체를 진행하게됩니다. 마찬가지로 비트코인 거래에서도 거래를 요청한 사용자의 주소에 충분한 비트코인이 있는지 그리고 이체 후 남은 거스름돈은 어떻게 처리할 것인지에 대한 방법이 필요합니다. 지금부터 이 방법에 대해서 자세히 알아보도록 하겠습니다.



비트코인 발행


기본적으로 거래를 하기 위해서는 거래에 사용될 물건, 즉 화폐가 필요합니다. 즉 비트코인 네트워크에서도 거래를 하기 위해서는 비트코인이 필요하다는 의미입니다.


비트코인 네트워크는 중앙 관리 시스템이 없기 때문에 별도로 비트코인을 발행하는 주체가 없습니다. 비트코인의 발행은 채굴자(마이너)가 새로운 블록을 생성한 댓가로 자신의 비트코인 주소에 '보상'받을 비트코인의 거래내역을 작성하여 '셀프보상'을 받는다고 하였습니다. 보다 자세한 내용을 이해하고 싶으신 분은 아래의 포스팅을 먼저 읽어보시길 추천드립니다.



비트코인 인포 사이트에 접속하여 각 블록에 '보상'과 관련된 0번째 거래 내역을 살펴보면 아래와같습니다.



23_0.png


위의 데이터를 살펴보면 비트코인의 최초 제네시스 블록의 0번째 거래내역, 그리고 반감기가 이루어진 21만번째, 42만번째의 거래내역입니다. 최초에는 50BTC + 수수료, 반감기가 이루어진 시점에서는 25.BTC + 수수료, 12.5BTC + 수수료를 지불 받은 데이터를 확인할 수 있었습니다.



비트코인 반감기란?


비트코인 반감기란 새로운 블록을 생성하였을 때 보상 받을 수 있는 비트코인의 수량이 절반식 줄어드는것을 의미합니다. having은 약 4년마다 이루어지며 21만 블록마다 having이 이루어집니다.



23_1.png




이해를 돕기 위해 비트코인의 발행, 그리고 거래가 이루어지는 과정을 예제를 통해 설명해보겠습니다.(해당 내용은 이해를 돕기 위해 쉽게 풀이한 과정입니다. 상세내용은 아래에서 이야기 하도록 하겠습니다.)


'Bird', 'Caw', 'Dog' 3친구가 비트코인 네트워크에 참여했다고 가정하고, 최초의 블록을 'Bird'가 생성하였습니다. 생성한 댓가로 'Bird'는 50BTC를 받았을 경우 아래의 그림과 같이 'Bird'만이 50 BTC를 소유하게됩니다.



23_2.png


그리고 다음 블록의 생성은 'Caw'가 생성하여 보상을 받았습니다. 이렇게 되었을 경우 비트코인 네트워크의 비트코인 총 발행량은 100 BTC이며, 비트코인 소유자는 Bird - 50 BTC, Caw - 50 BTC가 됩니다. 이렇게 비트코인을 소유한 Bird와 Caw는 서로 비트코인 거래를 진행할 수 있지만 아직 비트코인을 소유하고 있지 않은 Dog는 거래에 참여할 수 없습니다.



23_3.png


Dog는 채굴에 자신이 없었기 때문에 원화(KRW)를 Caw에게 지불하고 25BTC를 구매했다고 가정해보겠습니다. 그리고 다음 블록은 'Bird'가 생성하여 보상금인 50BTC + 거래 수수료를 받았다고 가정해보면 아래의 그림과 같이 구성이됩니다.



23_4.png



어느정도 이해가 되셨나요?


블록체인은 모든 거래 데이터를 가지고 있는 공통의 장부이고, 이 장부를 통해 최초의 비트코인 발행부터 지금까지 이루어진 모든 거래내역을 확인할 수 있게됩니다. 즉 특정 주소의 송금, 입금 기록을 통해 해당 주소의 비트코인 수량까지 모두 확인할 수 있게됩니다!


보다 깊히 있는 비트코인 거래 내용을 설명하기 위해서는 input, output에 대한 개념 및 UTXO라는 개념에 대한 이해가 필요합니다.



입력 값(input) & 출력 값(output)


입력 값(input)


입력 값(input)은 쉽게 생각해서 내가 현재 송금할 총 금액이 얼마인지를 나타내는 금액입니다. 입력 값은 실제 전송할 BTC의 금액, 그리고 수수료를 지불하는 금액의 총합이 되겠습니다.


출력 값(output)


출력 값(output)은 누구에게 몇 BTC를 지불할지에 대한 데이터로 구성되며, 다수의 사용자와, 거래 수수료 정보로 나뉘어서 표시될 수 있습니다.


비트코인 인포에서 가장 최근에 생성된 블록의 거래내용은 아래의 그림과 같습니다.



23_5.png


위의 그림에서 오른쪽에 표시되는 정보를 살펴보면 가장 위의 정보부터, 총 거래량이 입력(input)값, 총 출력은 사용자들에게 보낸 비트코인의 총 합입니다. 거래 수수료는 해당 거래를 하기 위해 지불한 수수료 값이 되겠습니다. 즉 총 입력 값 25.17842512 BTC는 출력 값( 25.1784207 BTC) + 수수료(0.00000442 BTC) 가 되겠습니다. 추가로 왼쪽에 있는 트리 차트 보기를 선택하여 조금 더 상세하게 살펴볼 수 있습니다.



23_6.png


위의 차트에서 나와 있듯이 각 주소 1FuTHcPEj5ny3hHoHnRjEcfBgLp3gjRdHe, 1NWEeSJwcMpRRFYgzKGxwgye5TVKeFLPCU, 1HfMmXnnHUjvGCmjuExC5uoRnYXsL7ScVC, 1PzV98RhSHDGggoDk1nL38fCWnDUzxK4Ja에 BTC를 송금하였습니다. 그렇기 때문에 트랜잭션의 주소 부분을 살펴보면 해당 주소 4곳이 기입된 것을 확인할 수 있습니다.



23_7.png




비트코인 거래를 보다 깊히 있게 설명해드리기 위해서는 UTXO에 대한 개념 설명이 필요합니다만.. 포스팅 내용이 너무 길어졌기 때문에 오늘은 여기서 설명을 마치고 다음 포스팅에서 UTXO에 대한 설명을 이어가도록 하겠습니다.


어느덧 블록체인 기술 및 비트코인에 대한 포스팅이 총 17개의 포스팅을 진행하였습니다. 블록체인 기술에 대해 전혀 모르던 제가 학습을하고.. 학습한 내용을 토대로 포스팅을 진행하다보니.. 부족한 부분이나 포스팅 순서가 조금 뒤섞인 경향이 있다는 생각이 들었습니다.(오늘 포스팅이 비트코인 거래원리의 첫 포스팅이어야 되지 않았나 싶기도 하구요.. )


어디서부터 어떻게 포스팅을 정리할지는 고민입니다만.. 꾸준히 블록체인 관련 기술을 포스팅 후 어느정도 모든 내용에 대한 포스팅이 이루어졌다고 판단이 되면 책의 형태로 정리 후 공유해드리고 싶은 욕심이 생기네요:)


이상 긴글 읽어주셔서 감사합니다.



[참고자료]

https://steemit.com/kr/@jsralph/5f59rf-1

http://blog.naver.com/PostView.nhn?blogId=allthatbtc&logNo=20204252383

https://organicmedialab.com/2014/02/20/bitcoin-addresses-transactions-and-wallets/

Sort:  

Boost Your Post. Send 0.100 STEEM or SBD and your post url on memo and we will resteem your post on 5000+ followers. check our account to see the follower count.

처음엔 UTXO 이해하기가 헷갈리더라고요.
다음 글을 유심히 봐야겠습니다.

이번 포스팅에 UTXO에 대한 개념을 넣을까 하다가 다음 포스팅에서 다루는게 더 쉽게 이해하실 것 같아서 포스팅을 나눠봤습니다~ 도움이 되셨으면 좋겠네요!!

짱짱맨 태그 사용에 감사드립니다^^
짱짱 레포트가 나왔어요^^
https://steemit.com/kr/@gudrn6677/3zzexa-and

감사합니다 ^^

그럼 잔고를 알기위해서는 모든 블럭을 알아야하는건가요?? 이해력이 딸려서 ㅜㅜ

하하 잘 아시면서 왜그러세요~
자신의 주소와 연결되는 UTXO 정보만 알고있으면 되는걸로 알고있습니다!!

헙 담 포스팅을 봐야겠군요. ^^

헙 다음 포스팅 까지ㅜㅜ
부족한 제 글을 읽어주셔서 감사합니다:)

Coin Marketplace

STEEM 0.13
TRX 0.34
JST 0.035
BTC 111872.14
ETH 4465.08
SBD 0.86