블록 체인 개론 #5

반영환·2023년 5월 8일
0

BlockChain

목록 보기
5/5
post-thumbnail

블록 체인 개론

암호 화폐 지갑

지갑의 개념에 앞서 어떻게 비트코인을 주고 받는지 알아보자.

사실 비트코인을 보낼때 아무것도 보내지 않는다. 내가 비트 코인을 소유한다는 것은 내가 비트코인을 가지고 있다는 것이 아니다. 비트코인은 네트워크 상에 영원히 존재한다. 즉 지갑에 비트코인을 넣는다는 개념이 애초에 잘못된 것이다.

그렇다면 어떻게 비트코인을 소유할 수 있는 것일까?

예를 들어서, 집을 산다고 했을 때 집의 주소가 바뀌는 것이 아니라 그 집 문서가 바뀐다.

즉 비트코인을 거래할때 A가 B에게 5개의 비트코인을 준다고 할 때 5개의 비트코인의 소유주의 이름을 B로 변경하는 것.

여기서 이름을 지갑으로 바꿔보자. 비트코인 지갑은 굉장히 긴 문자열이다.

16faewiobng1egBASkbsakn2 : 비트코인 지갑

비트코인을 보낼 때도 받을 때도 지갑이 필요하다.

존재하지 않는 지갑에 보내거나 다른 사람에게 보내면 해당 비트코인은 나에게서 영영 사라지는것

지갑의 생성

지갑은 비대칭적 암호화 Asymmetric Encryption를 통해 생성된다.

이에 앞서 대칭적 암호화 Symmetric Encryption에 대해 알아보자.

대칭적 암호화

서로 같은 암호키로 데이터를 암호화 하고 같은 암호키를 주고 받으며 데이터를 복호화 하는 것이다. 이는 사실 그렇게까지 안전하지 않다. 그래서 비대칭적 암호화가 필요한 것이다.

비대칭적 암호화

Sender A와 Receiver B가 있다고 해보자.

  • A는 공개키A, 비공개키A
  • B는 공개키B, 비공개키B

를 가지고 있다.

전송과정

  1. A는 데이터를 보내기 전에 B의 공개키를 요구한다.
  2. A는 자신의 공개키A와 데이터를 B의 공개키B로 암호화 시킨다.
  3. B는 공개키B로 암호화된 내용들을 비공개키B로 복호화 시킨다.

B는 데이터를 받아서 사용한다.

재전송과정

  1. B는 데이터에 응답값등을 작성한 후 A가 보낸 공개키A로 데이터와 공개키B를 암호화 시킨다.
  2. A는 비공개키A로 B가 보낸 내용을 복호화 해 내용을 본다.

이런 식으로 데이터를 암호화해 주고 받는다.


바로 이런 비대칭적 암호화 방식이 암호 화폐의 지갑이다.

공개키는 언제든 공개돼도 상관이 없다. 공개키가 필요한 순간은 데이터를 비공개키를 이용해 볼 수 있게 암호화 하는 것일 뿐이다.

항상 비밀로 남겨져 있어야 하는 것은 비공개키이다.

즉 지갑을 만든다는 것은 비공개키를 만든다는 것이다. 이 비공개키를 가지고 공개키를 만들고 이 공개키가 바로 비트코인을 보낸다고할 때 공유해야할 주소이다.

우리가 비트코인을 주고 받고싶을 때 필요한 것은 비공개키가 나에게 있음을 증명하는 것이다.

이걸 네트워크에 증명하면, 그제야 비트코인을 움직일 수 있다.

profile
최고의 오늘을 꿈꾸는 개발자

0개의 댓글