코인을 위한 지갑에 대한 고찰

일반적인 개념에서의 지갑의 주된 역할은 동전이나 지폐와 같은 화폐, 신용카드, 신분증 따위를 넣어다니는 것입니다.

그럼 비트코인이나 이더리움 같은 블록체인 플랫폼의 지갑(Wallet)에는 무엇이 들어있을까요? 당연히 비트나 이더가 들어있을 것 같지만 실제로는 그렇지않습니다.

https://redd.it/97v62e

그럼 지갑엔 무엇이 들어있나?

블록체인 플랫폼에서 지갑이라는 용어는 여러가지 뜻으로 쓰입니다.

  1. 개인키를 모아놓은 것
  2. 개인키들을 모아 관리하고 트랜잭션을 수행하는데 사용하는 소프트웨어 클라이언트
  3. 개인키들을 안전하게 저장하고 관리할 수 있도록 제작된 하드웨어

이 모든 지갑들은 공통적으로 개인키들을 모아두는 역할을 합니다.(사실 지갑보다는 키홀더라고 표현하는게 더 적합할지도 모르겠네요.)

그럼 내 소중한 비트랑 이더는 다 어디에 있는걸까?

정답은 ‘블록체인 상에 있다.’ 입니다.

지갑 2.로 제시된 소프트웨어 클라이언트들이 소유한 자산을 조회하여 보여주는 기능을 제공하고 있기 때문에 지갑 속에 비트나 이더가 들어있다고 착각하게되는 경우가 종종 있습니다.

여기서 소유 자산으로 조회되는 것은비트코인 플랫폼 상에서 지갑의 개인키와 연관된 모든 주소(address)의 UTXO의 합,이더리움 플랫폼 상에서 지갑의 개인키와 연관된 모든 계좌(account)의 잔액(balance)으로,보유하고 있는 개인키를 사용하여 서명된 트랜잭션을 통해 소유권을 증명할 수 있는 자산들입니다.

(개인키와 주소의 관계에 대해 궁금하신분은비트코인에서 개인키, 공개키, 주소를 생성하는 방식을 읽어보세요!)

당연한 이야기지만 개인키가 유실되면 자산의 소유권을 증명할 수 없게되므로 매우 소중하게 관리하여야 합니다.그렇다면, 단순하게 생각했을 때 여러개의 개인키와 공개키 쌍을 관리하는 것보다 하나의 개인키와 공개키 쌍을 관리하는 것이 쉬울것 같아보입니다.

그런데 하나의 개인키와 공개키 쌍으로만 반복해서 거래를 하면(트랜잭션을 발생시키면) 어떤 일이 발생할까요?

공개키와 주소를 재사용하면 발생하는 문제