I. 블록체인 시작하기/[2] 지갑(Wallet)

2장. 지갑의 종류와 예시, 관련 용어 총정리

아둥바둥 2024. 3. 7. 10:44
반응형

요약

  • 전통적 지갑 분류 : 인터넷 연결 여부에 따라 Hot(Software) Wallet(연결 O), Cold(Hardware) Wallet(연결X)
  • 그렇지 않은 분류 1. Smart Contract Wallet : 스마트 컨트랙트라는 코드를 구동시켜서 작동
  • 그렇지 않은 분류 2. MPC Wallet : 개인키를 나눠가지게 해서 다중으로 접근해야 하는 지갑
  • 그렇지 않은 분류 3. Custodial Wallet : 개인키 갖고 직접 접근하는 지갑

Intro

  • 이전 시간까지는 Web3란 무엇인지에 대해, 그리고 Web3에 접속하는 방법으로는 지갑(Wallet)이라는 것을 이용할 수 있다고 했습니다
  • 사실 지갑은 종류가 다양합니다. 이번 포스팅에서는 (제가 사랑하는 어느 구독자님의 요청으로) 지갑의 종류에 대해 간략히 소개하는 시간을 가져보고자 합니다.
  • 블록체인 세상을 이해하는 데 사실 그렇게 중요한 단원은 아니라고 생각합니다. 따라서 커리큘럼 따라 정독하시는 분들 중 마음이 급하신 분들은 건너뛰셔도 됩니다 :)

기초 용어 정리

  • Web3 Wallet : 암호화폐 지갑 과 같은 말. 코인, NFT 등을 저장 및 관리해주는 데에 도움을 주는 수단으로, 개인 키(private key)를 저장하는 디지털 혹은 물리적 장치로 존재합니다.
  • 개인 키(private key) : 주인이 지갑에 접근하기 위해 필요한 고유 코드를 말합니다. 로그인 할 때 "비밀번호"에 해당한다고 이해하면 됩니다.
  • 공개 키(public key) : 주인 혹은 제 3자까지 포함하여 지갑에 접근하기 위해 필요한 고유 코드를 말합니다. "지갑 주소"에 해당한다고 이해하면 됩니다

private key는 지갑의 주인, 즉 디지털 자산 소유자만 알 수 있는 반면, public key는 공개적으로 공유 가능한 코드입니다

  • ENS(Ethereum Name Service) : 이더리움 블록체인을 기반으로 만들어진 DNS(Domain Name Service)입니다.
    • DNS(Domain Name Service)란 말그대로 웹사이트를 "이름"을 통해 접근할 수 있게 해주는 기능입니다.
    • 예를 들면, 원래 네이버라는 사이트는 해당 사이트가 갖고 있는 ip인 125.209.222.141 를 이용하여 접속해야 합니다. ip란 쉽게 말해서 웹페이지의 주소라고 생각하면 됩니다.
    • 하지만 네이버에 들어갈 때 아무도 저렇게 하지 않습니다. naver.com 이라고 주소창에 치면 되죠. 즉, 이 naver.com 이라는 텍스트를 125.209.222.141 로 바꾸어주는 기능을 하는 것이 DNS라고 이해하시면 됩니다.
    • 비슷하게, 0xc00BE34Dc6 이런 형태의 주소를 가진 Web3 Wallet은 접근하기가 번거롭습니다. 이를 adungbadung.eth 라는 방식으로 쉽게 접근할 수 있게 하는 것이 바로 ENS입니다.(이더리움 기반이니까 .eth 로 끝나는 네이밍 센스를 가집니다)

Web3 지갑의 종류

  • 지갑의 종류는 아래 이미지와 같습니다

지갑의 Conventional한 대분류 : Hot Wallets + Cold Wallets

Hot Wallets(Software Wallet) : 인터넷을 통해 연결된 지갑. 실물로 존재하는 것이 아니라서 software wallet이라고도 부릅니다.

Cold Wallets(Hardware Wallet) : 인터넷 등으로 연결되는 형태가 아닌 지갑. usb처럼 물리적으로 존재하는 형태라서 Hardware Wallet이라고도 부릅니다.

Hot Wallet의 여러가지 종류와 장단점

  • Desktop Wallets(데스크탑 지갑) : 컴퓨터나 노트북에 설치되는 web3 지갑을 말합니다.
    • 어플리케이션으로 다운받는 것들이 데스크탑 지갑입니다. 메타마스크(Metamask) 등과 같은 것도 데스크탑 지갑입니다.
  • Mobile Wallets(모바일 지갑) : 스마트폰, 태블릿 등 모바일 장치에서 사용할 수 있는 web3 지갑을 말합니다.
    • 카카오톡 이라는 어플은 원래 모바일 기반이었다가 PC카톡도 등장하고 그랬었죠? 똑같은 네이밍 센스입니다.
    • 메타마스크도 모바일, 데스크탑 모두 이용이 가능합니다만, 개발 형태에 따라 데스크탑에서는 지원이 되는 기능이지만 모바일에서는 지원되지 않는 것들이 일부 있을 수 있는 차이가 있습니다.
  • 장점) 비밀번호만 치면 로그인이 가능하니, 접근이 매우 쉽다
  • 단점) 인터넷 연결이 필요하니까 보안 위협에 취약하다. => 그러므로 반드시 Hot Wallet에는 큰 금액 말고! 소액을 넣도록 하자

Cold Wallet의 여러가지 종류와 장단점

  • 하드웨어 월렛(Hardware Wallet), web3가 아닌 단순한 종이지갑(Paper Wallet) 등이 모두 cold wallet에 해당합니다.
  • 장점) 인터넷 연결이 필요 없기 때문에 보안 수준이 매우 높다. 안전하다. => 대량의 암호화폐를 장기간 보관하는 데에 사용한다
    • 초기 비트코인 채굴자가 지갑을 못찾아서 못팔고 있다는 이야기를 들어보셨나요? 여기서 못찾고 있는 대상은 hot wallet이 아니라 cold wallet일 겁니다. 물리적인 형태로 존재하는 것이니까요!
  • 단점) 물리적 저장공간을 마련해야 하므로 자본이 조금 든다. Hot Wallet보다 접근이 어렵다. 잃어버리면 큰일난다 등등

여러가지 예시


지갑의 또다른 분류 : Non-Custodial Wallet + Custodial Wallet

Web3 Wallet을 인터넷 연결 여부에 따라서 Hot Wallet, Cold Wallet으로 분류할 수도 있지만, "제3자의 접근가능성"을 기준으로도 분류할 수 있습니다. 제 3자가 접근가능한 지갑을 Custodial Wallet이라고 하고, 그렇지 않은 것을 Non-Custodial Wallet이라 합니다.
- Custodial 이라는 단어를 "보관"이라고 이해하면 편합니다. 은행처럼 제 3자가 대신 보관해주는 형태인 것이 Custodial이라고 생각하면 됩니다.

Non-Custodial Wallet : 사용자가 개인키를 이용해서 자금을 완전히 통제할 수 있는 지갑, 제 3자가 접근할 수 없다
Custodial Wallet : 거래소 등 제 3자가 사요자를 대신에 개인키를 이용하여 제어하는 지갑. 제 3자가 접근할 수 있다

저희가 네이버 로그인을 하는 상황을 생각해봅시다. 그러면 아이디와 비밀번호를 입력해야 합니다. 간혹 로그인을 할 때 비밀번호를 잊어버려서 "비밀번호 찾기" 기능을 통해 비밀번호를 찾는 상황이 있지 않나요? 이는 달리 말하면, 네이버라는 제 3자가 개인키를 갖고 있기 때문이라고 이해할 수 있습니다. 개인키를 사용자가 갖는가 거래소가 갖는가에 대한 이야기는 이것과 비슷한 상황입니다.

Non-Custodial Wallet의 특징과 예시

  • 개인키를 사용자가 갖고 있는 것으로, 제 3자에 의해 자금이 손상되거나 손실될 위험이 적습니다.
    • 물론, 사용자가 임의로 개인키를 그냥 공개해버리면.... 위험하겠죠
  • 1장에서 메타마스크 설치를 할 때 시드구문(12개의 단어가 있었던 것)이 기억나시나요? 이런 시드 구문을 이용한 지갑을 EOA(Externally Owned Accounts) 라고 부릅니다. 외부라는 주체가 존재할 수도, 존재하지 않을 수도 있지만, 아무튼 개인키가 없으면 큰일난다는 점에서 Externally Owned라고 표현한 겁니다.
  • 아무튼, 이 12개의 시드구문이 없으면 절대로 "비밀번호 찾기"에 대응하는 행위를 할 수 없습니다. 그러므로 매우 주의해야 합니다.
  • 아래 Web3 Wallet들이 Non-Custodial Wallet이 예시입니다.

Custodial Wallet의 특징과 예시

  • 제 3자가 접근할 수 있기 때문에 자금에 대한 안전성, 보안 등이 제 3자에게도 책임이 있습니다.(거래소가 해킹당해서 저희의 자산에도 피해가 간다면, 거래소 잘못이 크죠)
  • 아래 Web3 Wallet들이 Custodial Wallet이라고 할 수 있습니다. 대부분 거래소에서 거래할 때 사용되는 지갑입니다.

세부 분류 : Custodial Wallets > Email Wallets

  • Custodial Wallet은 제 3자가 존재하는 방식이라고 말씀드렸습니다!
  • 그 중에서도, 자신의 이메일 주소를 활용하여 Web3 지갑에 접근하는 방향을 Email Wallet 이라고 합니다. 이메일 주소라는 것을 얻기 위해서는 결국 제 3자가 필요하니, 이메일로 Wallet에 접근하는 것은 Custodial Wallet이 되겠죠.
  • 이메일이니까! 초심자가 접근하기 매우 쉽습니다
  • 아래 지갑들이 예시입니다.

또! 다른 분류 : Smart Contract Wallets

  • Smart Contract Wallet 이란 개인 키 대신 스마트 컨트랙트(smart contract)라는 것으로 구동되는 지갑을 말합니다.
  • 블록체인이나 암호화폐를 공부하다보면 스마트 컨트랙트라는 말이 자주 등장합니다. 스마트 컨트랙트란 쉽게 말해서 미리 프로그래밍하려고 짜둔 스크립트 코드입니다. 즉,

스마트 컨트랙트로 작동한다 == 미리 짜여진 코드를 실행시키는 방식이다

라고 읽으시면 이해가 쉽습니다.

  • 왜 이런 짓을 할까요? Custodial Wallet에서 개인 키를 잊어버리면 정말 영구적으로 큰일나기 때문입니다. 내 지갑에 있는 소중한 코인들을 훔치기 위해 누군가가 개인 키를 도용하기라도 하면 위험하니까요.
  • 스마트 컨트랙트 지갑에서 코인을 뺴내거나 넣거나 하기 위해서는 단순히 개인 키를 입력하는 것이 아니라, 코드를 실행시킬 수 있는 매우 복잡한 조건들을 만족해야 합니다.(공인인증서가 우리의 일처리를 가로막는 느낌이랄까요. 안전한 대신 간편하진 않습니다)
  • 스마트 컨트랙트 지갑으로는 아래 예시들이 존재합니다.

Smart Contract Wallets > Multisig Wallet

  • 조건들에 따라 스마트 컨트랙트 지갑을 또 분류하기도 합니다.
  • Multisig Wallet 이라는 다중서명(multi-sig) 방식을 채택하는 지갑입니다.
  • 다중 서명(multi-sig)란, 말그대로 여러 명이 확인해주어야 지갑의 기능을 수행할 수 있도록 설계한 지갑을 말합니다. 제가 제 지갑에 있는 코인을 빼려고 하는 상황을 생각했을 때, 엄마 아빠의 동의도 같이 구해야 하는 격입니다.
  • 안전해진다는 장점이 있지만, 여러 당사자에게 서명받아야 하니 느리겠죠

MPC(Multi-Party Computation) Wallet

  • MPC 지갑이라는 것도 존재합니다. MPC는 단어 그대로, 여러 명이 같이 계산을 하는 겁니다.
  • 지갑 로그인을 위해서는 결국 "개인키"가 중요한 경우가 많았습니다. MPC 지갑에서는 이 개인키를 여러 명이 계산하는 겁니다. 개인키를 완성된 퍼즐이라고 생각했을 때, 여러 명의 사람들이 퍼즐조각을 각각 갖고 있고, 로그인할 때 각자 모여서 합치는 방식이라고 이해하면 됩니다.
  • Multi-Party에게 제공되는 퍼즐 조각은 정해진 것이 아니라, 매번 새롭게 할당되는 방식입니다. 조각낸 퍼즐을 샤드(Shard) 라고 부르고, 조각내는 행위 자체를 샤딩(sharding) 이라고 부릅니다. (샤드에 대한 구체적인 원리는 블록체인에서 고난도 내용에 해당합니다.)
  • Web2로 치면 다중 보안 로그인을 생각할 수 있습니다. 구글 아이디를 로그인할 때 그냥 아이디 비밀번호만을 이용해서 로그인할 수도 있지만, 보안을 강화하기 위해 로그인을 위해 "핸드폰 인증", "이메일 코드 인증" 등을 추가적으로 시키는 경우도 있는데, 이러한 것이 MPC Wallet의 작동 원리와 비슷합니다.
  • 이중 삼중으로 엄격하게 검증하니 당연히 안전하지만, 느릴 수 있다는 단점이 있습니다. 하지만 퍼즐 조각을 빠르게 맞추는 것을 개선하면 될 일이므로 속도 면은 해결될 여지가 있습니다.

반응형