크립토 월렛

크립토 지갑의 원리

니모닉이란?

  • 니모닉은 privtate key 를 생성하는데 사용되는 단어들이다.

HD Wallet

  • 메타마스크는 HD Wallet 이다. HD wallet 이란, hierachical deteministic wallet 의 약자로, 계층적이고 결정론적인 지갑이라고 볼 수 있다. HD wallet 은 하나의 니모닉에 HD derivation 조합으로 여러 개의 지갑을 만들 수 있는 구조이다.
  • 하나의 니모닉에서 생성된 주소이기 때문에 N 개의 지갑이 있다고 하면 N 개의 private key 를 알 필요없이 단 하나의 니모닉만 알고 있으면 모든 계좌에 대한 권한을 얻을 수 있다.

Service provider 란?

  • 모든 wallet 들은 네트워크에 연결되기 위해서는 service provider 와 연결되어 있어야 한다. 즉, 지정된 service provider 에 의해서만 이더리움 네트워크에 접속할 수 있다. 메타마스크의 경우에는 infura 를 사용한다. 내가 만약에 직접 이더리움 노드를 운영하는 것이 아니라면, 메타마스크처럼 infura 를 service provider 로 지정해서 사용할 수 있다.
  • Service provider 가 내 지갑에 대한 니모닉을 갖고 있지 않을까? 그럴 걱정은 하지 않아도 된다. Service provider 는 사용자가 지정한 니모닉에 의해 생성된 개인키에 대한 접근 권한을 갖고 있는 것은 아니다. 서명하는 작업은 오로지 로컬에서만 수행되고, service provider 는 서명한 트랜잭션을 수행시키는 대리 역할만 하게 된다.
  • 트랜잭션을 받게 되면 service provider 의 mempool 에서 트랜잭션은 대기하게 되고, miner 는 transaction pool 에 있는 트랜잭션을 자신이 채굴한 블록에 담아서 블록 생성을 하고 전파시킨다.

Hot wallet vs Cold wallet

  • Hot wallet 과 Cold wallet 은 주로 가상자산 거래소에서 사용한다. 사용자가 가상자산 거래소에서 출금할 때 사용자의 지갑 주소에서 돈을 빼가는 것이 아니라 거래소에서 운영하는 hot wallet에서 돈을 뺀다. 적어도 바이낸스는 그런 것 같다. 이렇게 자산의 입출금이 빈번하게 발생하는 지갑은 인터넷에 연결되고 언제든지 자산을 이동시킬 수 있는 hot wallet에 저장하곤 한다.
  • 반면에 많은 양의 가상 자산을 보관하는 경우에는 인터넷에 연결되어 있으면 언제나 해커들의 대상이 될 수 있기 때문에 오프라인에서 보관해야 한다. 이렇게 오프라인으로 관리되고 있는 월렛을 cold wallet 이라고 부른다.
  • 참고로 바이낸스의 hot wallet 으로 송금하게 되면 self-recovery 라는 단계를 거치게 된다. 항상 수신인의 주소를 확인하고 자산을 이동시키는 점을 잊지 말자.

크립토 지갑의 주인은?

  • 특정 크립토 지갑이 어떤 거래소의 지갑인지 알 수 있는 명시적인 방법은 없다. 다만, 사람들이 트랜잭션들을 분석하고, 여러가지 힌트들을 통해서 추정할 뿐이다.