지갑

용어심층

암호화폐 지갑 · Crypto Wallet

토큰포스트 위키인용하기

다른 이름 Wallet

도해지갑에 코인이 들어 있지 않다. 코인은 체인에 있고 지갑은 그것을 움직일 열쇠를 가질 뿐이다.

암호화폐 지갑(Crypto Wallet)은 블록체인 계정의 자산을 조회하고 거래 승인을 요청하는 도구다. 자산 자체는 원장에 기록되며, 지갑의 통제·복구 방식은 개인키 기반 계정, 스마트 계정, 수탁형 서비스마다 다르다.

1.개요#

암호화폐 지갑(Crypto Wallet)은 블록체인 계정의 잔액을 읽고, 자산 이전이나 계약 실행을 승인하는 도구다. 코인 파일을 지갑 안에 넣어 두는 방식이 아니라 원장에 기록된 자산에 접근한다. 지갑 앱을 바꾸는 것과 자산을 다른 주소로 보내는 것은 서로 다른 작업이다.

일반적인 개인키 기반 지갑은 개인키로 거래에 전자서명한다. 그러나 지갑과 계정은 같은 개념이 아니다. 이더리움은 개인키로 통제하는 외부 소유 계정(EOA)과 코드로 동작하는 컨트랙트 계정을 구분하며, 지갑은 이 계정들을 다루는 인터페이스가 될 수 있다.

여러 주소를 관리하는 앱, 서명 장치를 따로 연결하는 하드웨어 지갑, 다른 기관이 키를 관리하는 수탁형 서비스의 책임 범위도 같지 않다. 따라서 지갑을 설명할 때는 무엇을 보관하는지뿐 아니라 누가 거래를 승인하고 어떻게 복구하는지를 함께 밝혀야 한다. DEX·디파이에 연결하는 기능과, 자산 이동을 허용하는 서명·토큰 승인도 구별된다.

수취 주소를 공개하는 일과 비밀 키를 공개하는 일도 다르다.

[1][2][3]

2.기본 구성 요소: 개인키·공개키·주소#

지갑을 이해하는 기본 요소는 개인키, 공개키, 주소와 계정이다. 개인키는 서명을 만들고 공개키는 그 서명을 검증하는 데 사용한다. 주소는 네트워크에서 계정을 가리키는 식별자다. 다만 모든 주소가 하나의 개인키와 일대일로 대응하는 것은 아니다.

이더리움의 외부 소유 계정(EOA) 주소는 공개키에서 계산하지만, 컨트랙트 주소는 계약 생성 규칙에 따라 정해진다. 컨트랙트 계정에는 그 계정 자체의 개인키가 없으며, 코드에 정해진 조건으로 동작한다. 다중서명 지갑을 단일 열쇠 지갑처럼 설명하면 이 차이를 놓치게 된다.

서명에 필요한 비밀 정보와 남에게 알려 주는 수취 주소는 구분한다. 또 기술적으로 이전할 권한이 있다는 사실과 자산의 법적 소유·수탁 관계를 같은 뜻으로 단정하지 않는다. 이 문서에서 개인키의 통제는 블록체인상 승인 능력을 뜻한다.

[4]

3.시드 문구와 계층 결정적 지갑#

복구 구문과 개인키는 같은 문자열이 아니다. BIP39는 무작위 정보와 검증값을 단어열로 표현하고, 이 단어열에 선택적인 추가 암호(passphrase)를 결합해 시드를 만드는 절차를 정한다. BIP32는 하나의 시드에서 계층적으로 여러 키를 파생하는 별도의 규격이다.

BIP39 단어열의 길이는 12·15·18·21·24개다. 추가 암호를 사용했다면 단어만 복원해도 같은 지갑이 나오지 않는다. BIP39에서는 서로 다른 추가 암호마다 다른 유효한 시드가 생성되므로, 틀린 암호를 넣었다고 반드시 오류 메시지가 뜨는 것도 아니다.

지갑 사이 복구에는 지원 규격과 키 파생 경로가 맞아야 한다. 같은 단어열을 입력할 수 있다는 사실이 모든 앱·네트워크의 주소를 자동으로 찾아 준다는 의미는 아니다. 복구 구문, 추가 암호, 원래 지갑의 규격 정보를 구별해 보관하는 이유다.

[5][6]

4.커스터디와 논커스터디#

지갑은 개인키를 누가 보관하느냐에 따라 크게 두 가지로 나뉜다.

커스터디 지갑(수탁형) 은 중앙화 거래소 같은 사업자가 이용자를 대신해 개인키를 관리하는 방식으로, 사용이 편리하고 비밀번호 분실 시 복구도 가능하지만 사업자를 신뢰해야 한다. 이 경우 이용자가 직접 서명 키를 관리하지 않으며, 자산에 관한 권리와 반환 조건은 계약 및 관할 법령에 따라 확인해야 한다. 사업자의 파산·해킹·출금 정지 위험도 별도로 존재한다. 이런 위탁 보관 서비스는 커스터디 사업 영역으로 별도로 다뤄지기도 한다.

반대로 논커스터디 지갑(비수탁형) 은 이용자가 직접 개인키를 관리하는 방식으로, '내 키가 아니면 내 코인이 아니다(Not your keys, not your coins)'라는 원칙을 실현한다. 자기 자산을 완전히 통제할 수 있는 대신, 개인키·시드 문구 관리 책임이 전적으로 이용자에게 있다. 비수탁형 지갑은 탈중앙화 거래소나 각종 온체인 서비스에 직접 연결해 쓰는 것이 일반적이다.

[7][8]

5.핫 월렛과 콜드 월렛#

핫 월렛과 콜드 월렛은 키를 사용하는 환경의 온라인 노출을 구분하는 말이다. 누가 키를 관리하는지에 따른 자기수탁·제3자 수탁 구분과는 다른 기준이다.

핫 월렛은 인터넷과 연결된 환경에서 사용하는 지갑이다. PC·스마트폰의 소프트 월렛은 거래와 서비스 연결에 편리하지만, 악성코드·피싱이나 기기 침해에 노출될 수 있다. 온라인 접근성과 키의 보호 방식을 함께 살펴야 한다.

콜드 월렛은 키를 오프라인으로 보관하는 방식이다. 하드 월렛이나 오프라인 백업을 사용할 수 있으며, 온라인 노출을 줄이는 콜드 스토리지의 예가 된다. 그러나 기기·복구 정보의 분실과 훼손, 잘못된 거래 승인의 위험까지 사라지는 것은 아니다.

SEC의 수탁 안내는 핫·콜드 방식의 편의와 보관 위험을 함께 설명한다. 특정 보유 기간만으로 모두에게 한 방식을 권하기보다는, 서명과 복구 절차를 누가 관리하는지 구분해야 한다. 콜드 방식도 사업자가 고객 대신 관리할 수 있으므로 하드웨어를 쓴다는 이유만으로 자기수탁이 되는 것은 아니다.

[9][10]

6.지갑의 형태#

구현 형태에 따라 지갑은 여러 종류로 나뉜다.

  • 소프트웨어 지갑: PC·모바일 앱이나 브라우저 확장 프로그램 형태의 소프트 월렛. 설치가 쉽고 디앱 연결에 편리하다.
  • 하드웨어 지갑: 개인키를 기기 내부에 격리해 두는 하드 월렛. 서명 시에도 개인키가 기기 밖으로 나오지 않는다.
  • 웹 지갑: 브라우저에서 바로 쓰는 지갑으로, 초기 이더리움 이용자에게 널리 쓰인 마이이더월렛이 대표적이다.
  • 페이퍼 지갑: 개인키나 시드 문구를 종이에 인쇄·기록해 보관하는 원시적 콜드 방식.

일부 지갑은 하나의 키가 아니라 여러 개의 키가 있어야만 송금이 승인되는 다중서명(multisig) 구조를 지원해, 개인·기업의 자산 보관에서 단일 키 분실·유출 위험을 낮춘다.

7.잔액 계산과 서명의 원리#

지갑이 표시하는 '잔액'은 실제로는 블록체인을 조회해 계산한 값이다. 비트코인처럼 미사용 트랜잭션 출력 모델을 쓰는 네트워크에서는, 내 주소로 아직 쓰이지 않은 출력들을 모두 합한 것이 잔액이 된다. 반면 이더리움 계열은 계좌마다 잔액을 직접 기록하는 계정(account) 모델을 사용한다. 어느 방식이든 지갑 자체가 돈을 들고 있는 것이 아니라, 블록체인상의 자산에 대한 접근 권한을 관리한다는 점은 동일하다.

송금이 이루어지는 과정은 다음과 같다. 이용자가 받는 주소와 금액을 입력하면, 지갑이 거래 내용을 만들고 개인키로 서명한 뒤 네트워크에 전파한다. 이더리움 계열에서는 이때 연산 수수료인 가스도 함께 지정된다. 공개 경로로 전파된 거래는 멤풀에서 대기할 수 있으며, 블록 제안자가 거래를 포함한 블록을 만들고 다른 노드들이 이를 검증한다. 모든 풀 노드가 블록을 만드는 것은 아니고, 전파와 블록 포함·최종 확정은 서로 다른 단계다.

이 전 과정에서 개인키 자체는 외부로 전송되지 않고, 오직 서명 결과만 공개된다는 점이 지갑 보안의 핵심이다. 하드웨어 지갑이 안전하다고 여겨지는 이유도, 서명 연산을 기기 내부에서 처리해 개인키를 결코 외부로 내보내지 않기 때문이다.

[11]

8.보안과 위험#

지갑 보안에서는 열쇠 유출과 잘못된 권한 승인을 나누어 보아야 한다. 개인키·복구 구문이 노출되면 공격자가 직접 서명할 수 있다. 반면 비밀 정보를 유출하지 않아도 악성 계약에 토큰 사용 권한을 주면 허용된 범위의 자산이 이동할 수 있다.

MetaMask의 공식 설명은 토큰 승인(allowance)을 특정 계약이 이용자 대신 토큰을 사용하는 권한으로 다루며, 이 권한을 별도 거래로 철회하는 절차를 설명한다. 지갑 화면에 보이는 서명 요청이 단순 로그인인지, 토큰 사용 승인인지, 실제 전송인지 확인해야 하는 이유다.

복구 방식도 구분해야 한다. 복구 수단이 없는 개인키 기반 계정에서 열쇠를 잃는 상황과, 미리 복구 정책을 설정한 스마트 계정은 다르다. 하드웨어 지갑은 열쇠 격리에 도움이 되지만 이용자가 승인한 거래 내용을 대신 판단해 주지는 않는다. 수탁형 서비스라면 계정 복구와 출금 통제를 맡는 주체도 함께 확인한다.

[12][13][14]

9.활용: 온체인 서비스 연결#

지갑은 단순 보관 수단을 넘어, 온체인 세계로 들어가는 로그인 수단이자 결제 수단으로 쓰인다. 비수탁형 지갑을 디앱에 연결하면 별도의 회원가입 없이 지갑 주소가 곧 계정이 된다.

  • 거래: 탈중앙화 거래소에서 지갑을 연결해 중개자 없이 토큰을 교환한다.
  • 금융: 탈중앙화 금융 서비스에서 예치·대출·유동성 공급 등에 참여한다.
  • 연결 표준: 모바일 지갑과 웹 디앱을 QR코드·딥링크로 잇는 월렛커넥트 같은 프로토콜이 널리 쓰인다.
  • 정체성: 이더리움 네임 서비스로 긴 주소를 읽기 쉬운 이름으로 표시하고, 에어드롭 수령이나 온체인 활동 이력의 기준 주소로 활용한다.

이처럼 지갑 하나가 여러 네트워크·서비스에 걸쳐 이용되면서, 지갑은 법정화폐 세계의 은행 계좌·신분증·인증 수단을 합친 역할에 비유되기도 한다.

10.역사#

암호화폐 지갑의 역사는 블록체인의 역사와 함께 시작됐다. 2009년 비트코인의 최초 클라이언트 자체가 개인키를 보관하고 거래에 서명하는 지갑 기능을 담고 있었다. 초기 지갑은 개인키를 파일 형태로 그대로 저장했기 때문에, 파일 분실이 곧 자산 상실로 이어지는 불편이 있었다.

이후 하나의 씨앗에서 여러 키를 파생하는 계층 결정적 구조(BIP32)와, 이를 사람이 백업하기 쉬운 단어열로 표현하는 니모닉 표준(BIP39)이 제안되면서 오늘날과 같은 시드 문구 기반 지갑이 자리 잡았다. 비슷한 시기에 개인키를 오프라인 기기에 격리하는 하드웨어 지갑이 상용화되며 콜드 스토리지 보관이 대중화됐다.

2015년 이더리움 등장 이후에는 계정 모델과 디앱 생태계에 맞춘 지갑이 발전했고, 웹 지갑(마이이더월렛)과 브라우저 확장형 지갑, 지갑–디앱 연결 표준(월렛커넥트)이 차례로 등장하며 지갑은 온체인 활동의 관문으로 자리 잡았다.

11.앞으로의 과제#

지갑의 과제는 비밀 정보 보관만이 아니라 승인 실수와 복구 실패를 줄이는 데도 있다. 기존의 단일 개인키 방식은 열쇠를 관리하기 쉽지만, 복구 수단이 없으면 분실의 영향이 크다. 다중서명은 여러 승인자를 둘 수 있으나 정족수를 채울 수 있는 운영 체계가 필요하다.

이더리움의 계정 추상화 설명은 복구 수단, 묶음 거래, 수수료 처리 등을 지갑의 프로그래밍 가능한 기능으로 다룬다. 이는 모든 기존 지갑이 이미 같은 복구 기능을 갖췄다는 뜻은 아니다. 선택한 구현의 승인자와 복구 조건을 확인해야 한다.

또한 지갑을 연결했다고 모든 자산 이동을 허용한 것은 아니며, 개별 토큰 승인은 별도의 상태로 남을 수 있다. 이용자가 이해할 수 있는 거래 설명과 권한 관리 화면은 키 저장 방식과 함께 중요한 설계 요소다.

[15][16]

12.연표7건

  1. 2009설립비트코인 최초 클라이언트가 지갑 기능을 포함해 배포되며 사실상 최초의 암호화폐 지갑이 등장
  2. 2012이정표BIP32 제안으로 하나의 시드에서 여러 키를 파생하는 계층 결정적(HD) 지갑 구조가 정립
  3. 2013이정표BIP39 니모닉 표준 제안으로 개인키를 12~24개 단어의 복구 구문으로 백업하는 방식이 보급
  4. 2014이정표BIP44 표준으로 여러 코인·계정을 하나의 시드로 관리하는 파생 경로 체계가 마련
  5. 2014출시전용 기기 형태의 상용 하드웨어 지갑이 출시되며 콜드 월렛 보관이 대중화
  6. 2015출시이더리움 출시로 계정(account) 모델 기반 지갑이 등장하고, 웹 기반 이더리움 지갑(마이이더월렛)이 공개
  7. 2018출시월렛커넥트 프로토콜이 공개되어 지갑과 디앱을 QR·딥링크로 연결하는 표준이 확산

각주

  1. [1]Ethereum wallets — ethereum.org · ethereum.org
  2. [2]Ethereum accounts: EOA·컨트랙트 계정과 지갑의 구분 — ethereum.org · ethereum.org
  3. [3]How to revoke smart contract allowances/token approvals — support.metamask.io · MetaMask
  4. [4]Ethereum accounts: EOA·컨트랙트 계정과 지갑의 구분 — ethereum.org · ethereum.org
  5. [5]BIP 32: Hierarchical Deterministic Wallets — github.com · Bitcoin BIPs
  6. [6]BIP 39: Mnemonic code for generating deterministic keys — github.com · Bitcoin BIPs
  7. [7]Crypto Asset Custody Basics for Retail Investors — investor.gov · 미국 SEC 투자자교육 부서
  8. [8]The Act on the Protection of Virtual Asset Users to Take Effect from July 19 — fsc.go.kr · 금융위원회
  9. [9]Crypto Asset Custody Basics for Retail Investors — investor.gov · 미국 SEC 투자자교육 부서
  10. [10]Ethereum wallets — ethereum.org · ethereum.org
  11. [11]Transactions: 전파·검증·블록 포함 — ethereum.org · ethereum.org
  12. [12]How to revoke smart contract allowances/token approvals — support.metamask.io · MetaMask
  13. [13]Account abstraction — ethereum.org · ethereum.org
  14. [14]Crypto Asset Custody Basics for Retail Investors — investor.gov · 미국 SEC 투자자교육 부서
  15. [15]Account abstraction — ethereum.org · ethereum.org
  16. [16]How to revoke smart contract allowances/token approvals — support.metamask.io · MetaMask

이 문서가 도움이 됐나요?

이 문서 인용하기
토큰포스트 위키, “지갑”, 2026-09-26 수정, https://wiki.tokenpost.kr/w/wallet

문단 11개 · 연표 7건 · 각주 16개