관리 메뉴

평행우주 : world 1

[블록체인이론] 지갑의 의미와 종류 본문

텃밭 1 : BlockChain/이론

[블록체인이론] 지갑의 의미와 종류

parallelworlds 2022. 3. 6. 05:01

지갑의 의미

넓은 의미 : 주요 사용자 인터페이스 역할을 하는 어플리케이션

좁은 의미 : 사용자의 키를 저장하고 관리하는 데 사용되는 데이터 구조

 

지갑 기술 개요

  • 지갑에는 비트코인이 들어있는 것이 아니라 '키'만 들어있다
  • 지갑은 개인키와 공개키 쌍을 포함하는 키체인과 같은 것이다
  • 사용자들은 키를 이용해서 거래에 서명함으로써 자신들이 거래 출력값(코인)을 소유함을 입증한다
  • 비트코인은 거래출력값의 형태로 지갑이 아닌 블록체인 내에 저장되어 있다

 

 

비결정적(무작위)지갑

  • 최초의 비트코인 지갑(비트코인 코어)에서는 지갑이란 단순히 무작위로 생성된 개인키를 모아 둔 장소였다.
  • 처음 시작할 때 무작위로 선택한 개인키 100개를 미리 생성한 후 필요한 만큼 추가로 더 생성했기 때문에,
  • 각 키들은 단 한 번만 사용되었다.
  • 무작위로 뽑은 키들의 단점은 한 번 생성된 후에는 전부 복사본을 보관해야 한다는 것이다.
  • 즉 지갑이 자주 백업되어야 했다
  • 주소를 다시 사용하게 되면 여러 건의 거래와 주소가 연관되기 때문에 프라이버시가 노출된다. 
  • 따라서 비결정적 지갑은 많은 키를 보유해야 하며 지갑을 자주 백업해야하기 때문에 좋지 않은 선택이다

 

결정적(시드)지갑

  • 모든 키가, 시드라고 하는 '단일 마스터 키' 또는 '단일 시드'로부터 파생된 유형의 지갑 (여러 파생 방법이 존재)
  • 결정적 지갑에는 일방 해시 함수를 이용해서 공통 시드(common seed)에서 얻은 개인키들이 담겨 있다 
  • 시드는 개인키를 만들기 위해 인덱스 번호나 '체인코드' 같은 데이터와 결합된 무작위로 추출된 번호다
  • 시드는 개인키를 추출하기 위해 색인번호나 체인코드 등의 여러 데이터와 무작위로 생성된 숫자가 결합되어 있는 형태다
  • 결정적 지갑 내에서는 시드만 있으면 추출키 전부를 복원할 수 있기 때문에, 특정 시기에 백업을 한 번만 해도 된다
  • 모든 키는 서로 관련이 있고, 원래의 시드를 갖고 있다면 다시 키를 파생시킬 수 있다
  • 지갑의 export와 import도 시드만 있으면 가능하기 때문에, 다른 종류와 지갑 사이에서도 사용자들의 키 전부가 쉽게 이동할 수 있다.
  • 이러한 구조로 인해 시드만 있으면 전체 지갑에 접근이 가능하기 때문에 시드의 보안이 최우선적인 과제가 된다

 

HD지갑(BIP-32/BIP-44)

 

  • 결정적 지갑은 단일 시드로부터 많은 키를 쉽게 얻기 위해 개발되었다.
  • 결정적 지갑들 중 가장 발달된 유형은 HD지갑으로 BIP-32 표준에서 규정하고 있다
  • 트리구조에서 생성된 키를 담고 있으며, 이 구조에서는 부모키가 자식키 열을 만들어 낼 수 있고,
  • 각각의 자식키는 손자키 열을 만들어 낼 수 있으며, 이 과정이 무한대로 반복된다

 

주요한 장점

  • 수입금이나 지급금을 받기 위한 서브키로 구성된 특정 브랜치가 언제 사용되는지 등 유기적인 의미를 표현하기 위해 트리 구조를 사용할 수 있다 (브랜치를 각 부서, 자회사, 특정 행사 등에 배당해서 회사 내 설정에도 활용 가능)
  • 사용자들이 공개키에 대응하는 개인키에 접근하지 않고도 콩개키 열을 생성할 수 있다
  • 덕분에 안전하지 않은 서버상에서나, 수신 기능만을 가지고 있는 서버에서도 HD지갑을 사용할 수 있고, 자금을 움직이는 개인키를 넣지않고, 각각의 거래에 대해 다른 공개키를 발급 받게 된다

 

 

시드와 연상기호|니모닉 코드(BIP-39)

  • 지갑 간 복사, export, import가 쉽도록 영어 단어 배열로부터 시드를 생성하는 표준화된 방법을 연상기호라고 한다
  • 이 연상기호에 대한 표준을 BIP-39에서 정의하고 있다
  • 현재 대부분의 암호화폐 지갑에서 사용하는 표준이다
  • 실용적인 측면에서, 16진수 시퀀스를 기록할 때는 오류가 발생할 확률이 매우 높다.
  • 반면, 단어목록은 단어들을 사용할 때 중복성이 커서 다루기가 쉽다

 

 

 

 

 

 

Comments