블록체인에서 실행되고 public key&private key를 저장하며 해당 키와 관련된 모든 트랜잭션을 모니터링하고 유지하는 소프트웨어
즉, 블록체인 ID(=지갑주소)를 발급하며 해당 ID와 관련된 모든 거래를 추적하는 App이며
이는 곧 블록체인에 접속하는 프로그램이라고 이해해야 한다.
특정 지갑 주소에 관한 모든 트랜잭션(거래내역)은 사용자뿐만 아니라 모두가 볼 수 있으며 그 트랜잭션을 발생시키는 권한을 가진자는 이 지갑주소를 만들때 사용한 private key, Mnemoic code의 소유자이며 따라서 소유자는 이 private key와 Mnemonic code를 절대 분실해선 안된다.
지갑은 생성된 계정(들)의 트랜잭션을 모니터링하고 관리하는 프로그램
HD 지갑(계층적 결정 지갑)
하나의 시드키를 사용하여 무수히 많은 주소를 생성할 수 있는 지갑
계층적 결정 지갑 이전에 비결정적 지갑, 결정 지갑이 있으나 이는 공개키와 주소 재사용의 문제, 개인키 백업&관리 등의 문제가 있었고 HD 지갑이 이를 해소하기 위해 만들어진 비트코인의 BIP32 표준으로 정의된 지갑이며 현재 MetaMask를 포함한 대부분의 암호화폐 지갑은 이 HD 지갑 구조이다.
MetaMask와 같은 지갑 프로그램을 이용하여 지갑을 생성하는 과정은 다음과 같다.
만약 지갑내에서 2번째 account (index=1)을 삭제하고
새로운 계정을 생성한다면 HD지갑은 seed key를 통해 이미 정해진 인덱스의 account를 생성해주기 때문에 삭제한 account를 다시 찾을 수 있다.
실제 코인정보는 블록체인에 담겨있고 지갑은 그 account 값을 파라미터로 블록체인에 저장된 데이터를 읽는 것이기 때문에 잔액이 남아있었다면 그것 또한 그대로 복구(정확히는 블록체인에서 읽는 것) 가능하다.
통상 MetaMask와 같은 지갑은 실제로 디지털 자산을 보관하는 실제 지갑과 같은 기능이 아니라 블록체인에 접근하여 해당 지갑주소의 트랜잭션 정보를 읽어 자산을 모니터링하고 keystore를 보관해주는 프로그램.
실제 자산정보는 블록체인에만 기록돼어 있다.
지갑주소 (지갑에 있는 모든 account 주소) 분실시 복구 방법은 지갑 생성시 입력한 Mnemonic code 뿐이다.
따라서 이 Mnemonic code는 종이에 물리적으로 저장하거나 안전하게 보관해야 하며 각 account 의 private key 또한 노출시에도 해당 account에 접근할 수 있기 때문에
Mnemonic code와 private key는 안전히 보관해야한다.
블록체인 개발은 어떤식으로 배울 수 있는지 알려주실 수 있나요?