- 암호화폐 지갑은 암호화폐를 저장할 수 있는 계정을 의미한다.
- 지갑, 또는 월렛(wallet)이라고 부른다.
지갑의 유형은 다양하게 나뉜다.
- 기본적으로 암호화폐를 사용할 때, 개인 정보 보호를 위해 암호화폐 주소는 재사용하지 않는 것이 바람직하다.
- 매 트랜잭션마다 새로운 비밀키를 생성할 수 있으나, 기존의 지갑은 새로운 비밀키를 무작위로 추출해서 보관해야 한다.
- 이 경우 지갑 데이터를 분실하는 경우가 발생하면, 해당 비밀키에 저장된 암호화폐와 해당 비밀키로 생성한 스마트 컨트랙트에 접근할 수 없게 된다.
🍠 이를 방지하기 위해서는 지갑 데이터를 자주 백업해야 하는 불편함이 있다.
- 비결정적 지갑의 불편함을 해소하고자 나온 지갑이 결정적 지갑이다.
- 결정적 지갑은 하나의 시드에서 하나의 시드키를 가진다.
🍜 이 시드키는 비밀 키를 만들기 위한 난수이다. 비밀키는 시드키를 인덱스나 다른 데이터와 결합하여 만든다.
🍜 이 시드키는 자신으로부터 만들어진 비밀키를 복구할 수 있다.- 위와 같은 특성 때문에 시드 키로부터 만들어지는 모든 비밀 키는 그 값이 미리 정해져 있다고 볼 수 있다. (결정적)
- 결정적 지갑을 사용하면, 하나의 시드 키만 알고있어도 시드 키에서 파생된 모든 비밀 키를 알 수 있다.
🍣 따라서, 모든 비밀 키를 관리할 필요가 없고, 시드 키 하나만 잘 관리하면 된다.
HD 지갑(Hierarchical Deterministic Wallet)은 계층적 결정지갑으로, 하나의 Seed key를 사용하여 여러 주소를 생성할 수 있는 암호화폐 지갑이다.
HD 지갑은 트리 형태이다.
HD 지갑에서는 하나의 부모 키가 여러 개의 연속된 자식 키를 만들고, 이 자식키는 다시 여러 개의 손자 키를 만들어 내는 방식으로 여러 개의 주소를 생성한다.
HD지갑은 BIP32에서 처음 제안되었으며, BIP39나 BIP44 등 여러 버전이 존재한다.
- 니모닉은 결정적 지갑에서 난수를 12개의 영단어로 인코딩한 영단어 그룹이다.
🍇 니모닉 코드 단어 시퀸스에서 시드 키를 생성한다.- BIP39에서 제안되었다.
- 기존의 시드 키는 숫자와 문자로 구성된 난수이기에 사용자가 기억하기 어려웠다.
- 니모닉 코드 단어는 사용자가 기억하고 사용하기 쉽다.
- 사용자가 이 단어 시퀸스를 기억하고 있으면, 호환되는 다른 지갑 app에서도 시드 키 및 파생된 모든 비밀 키를 복구할 수 있다.
- 또한, 영단어이기에 사용자가 받아적기 쉽다.
🍇 오타를 찾아내기도 더 쉽다.
- 브레인 월렛은 비밀 키를 랜덤하게 생성하지 않고, 일련의 단어 목록이나 문장을 이용해 비밀 키를 만드는 지갑이다.
- 비밀 키를 만들 때 사용한 단어 목록이나 문장을 기억하고 있다면, 언제든지 비밀 키를 복구할 수 있기에 저장 방식이 간편하다.
🍻 사용자에게 익숙한 문장으로 시드를 삼으면, 어딘가에 기록하지 않아도 사용할 수 있기에 안전하다.- 하지만, 사용자가 비밀 키를 만드는 데 사용한 단어 목록이나 문장을 잊는다면, 해당 비밀키에 영원히 접근할 수 없다.
- 또한, 인간이 만드는 문장은 컴퓨터가 만들어낸 난수에 비해 임의성이 떨어지기에 무차별 대입 공격에 비밀 키가 노출될 수도 있다.
🍺 위와 같은 이유로 브레인 월렛은 요즘에는 잘 사용되지 않는다.
일반적인 이더리움 사용자는 EOA(Externally Owned Accounts)로 자산을 관리한다.
하지만 EOA는 코드, 즉 스마트 컨트랙트를 담을 수 없기에 기능이 제한적이다.
CA(Contract Accounts)를 이용하여 자산을 관리하는 경우 CA의 컨트랙트 코드를 이용해 누가 어떤 조건에서 내 자산에 접근할 수 있는지 프로그래밍화 할 수 있고, 이러한 방식의 월렛을 스마트 컨트랙트 월렛이라고 부른다.
스마트 컨트랙트 월렛에서는 개인 키가 아니라, 스마트 컨트랙트를 통해 지갑을 관리한다.
🍿 따라서, 기존의 단일 키를 사용하는 EOA 기반의 지갑보다 더 높은 수준의 보안과 유연성, 편의성을 제공한다.
스마트 컨트랙트 월렛을 사용하는 사용자는 스마트 컨트랙트 코드를 통해서 여러 추가적인 고급 기능을 이용할 수 있다.
🍿 멀티 시그 트랜잭션, 일일 송금 제한, 안전한 계정 복구, 긴급 계정 동결 등
많이 사용되는 스마트 컨트랙트 월렛에는 Metamask, InstaDApp, Zerion 등이 있다.
- 스마트 컨트랙트 월렛의 한 종류로, 멀티시그(Multi-Sig)를 통해서만 송금이 가능한 월렛이다.
- 기존의 핫 월렛과 콜드 월렛이 하나의 개인키를 사용하기에 보안에 문제가 있던 점을 해결하기 위해 나온 월렛이다.
- 멀티 시그 월렛에서는 하나의 지갑에 N명의 사용자가 지갑에 대한 소유권을 가진다.
- 멀티 시그 월렛에서 트랜잭션을 생성하기 위해서는 N명중에서 k명이 트랜잭션에 서명을 해야 한다.
- 멀티 시그 월렛은 기존 지갑보다 보안이 우수하며, 송금 실수를 방지할 수 있다.
- 하지만, 스마트 컨트랙트 상에서 구현되기에 컨트랙트 코드의 오류로 문제가 일어날 수 있고, 사용성이 부족하다.
🥚 대부분의 암호화폐 거래소는 일반 지갑에서 이루어진 트랜잭션만 처리한다.
🥚 따라서, 멀티 시그 월렛에서 일어난 트랜잭션을 인식하지 못할 수도 있다.- 대표적인 멀티 시그 월렛은 Argent, BitGo, ConsenSys, Gnosis 등이 있다.
- 다중 서명 월렛은 지갑이 거래를 완료하기 위해서 여러 당사자의 입력이 필요한 암호화폐의 지갑 유형이다.
- 다중 서명 기술을 사용하는 암호화폐 지갑은 가족이나 기업이 사용하기에 이상적이다.
🦀 모든 당사자들이 거래를 완료하기 위해서 PIN 입력이나 주문해야 하는 공유 은행 계좌와 유사하다.
- 일부 지갑은 단 한 가지 유형의 암호화폐만 보유할 수 있다.
- 하지만, 요즘의 많은 지갑은 여러 유형의 암호화폐를 하나의 장소에 저장할 수 있다.
- 일부 암호화폐 지갑에서는 암호화폐 사이의 변환을 지원하기도 한다.
🍪 이와 같은 변환을 지원하지 않는다면, 환전을 하기 위해서 온라인에서 추가적인 단계를 수행해야 한다.
- 핫 월렛은 온라인에 연결된 암호화폐 지갑으로 인터넷상에 연결되었으며 개인 키가 서버에 저장되어 있기에 사용자가 쉽게 접근할 수 있으며, 실시간으로 거래할 수 있다.
- 핫 월렛은 인터넷에 접속해야지만 사용할 수 있고, 지갑이 인터넷에 연결된 경우 악의적인 해커에 의해 탈취될 가능성이 있어 보안에 취약하다.
- 일반적으로 거래소에서 우리가 별도의 개인키를 입력하지 않고, 거래소의 아이디와 비밀번호만으로 이용할 수 있는 것은, 암호화폐 거래소가 사용자 정보를 대신 저장하고 관리해주기 때문이다.
- 일반적으로 암호화폐 거래소는 사용자 지갑에 있는 여러 개인키를 사용해야 출금할 수 있도록 하는 멀티 시그 방식을 이용하여, 개인 키 일부가 유출되어도 출금할 수 없게 하여 비교적 안전하다.
🍅 대표적인 핫 월렛으로 메타마스크(MetaMask)가 있다.
🍅 크롬 브라우저에 설치하는 지갑인 메타마스크는 사용자 정보를 보관하고, 사용자는 비밀번호만 입력하면 암호화폐를 사용할 수 있다.
- 지갑의 개인키를 오프라인으로 보관하는 지갑을 콜드 월렛이라고 한다.
- 개인키를 카드나 USB에 저장하기에 하드웨어 월렛(Hardware Wallet)이라고도 부른다.
- 대부분의 거래소에서는 자산의 일부만 핫 월렛에 보관하고, 대부분의 자산은 오프라인 상태의 지갑. 즉 콜드 월렛에 저장한다.
🧂 거래소는 약 70%의 자산을 콜드 월렛에, 30% 자산을 핫 월렛에 보관한다.
🧂 해킹의 위험이 발생하면, 자산을 모두 콜드 월렛에 옮겨 보호한다.- 콜드 월렛으로 거래하기 위해서는 우선 오프라인 상에서 트랜잭션을 생성한 뒤, 이 트랜잭션을 온라인에 입력해야 한다.
- 핫 월렛에 비해서 번거롭지만, 트랜잭션을 온라인에 입력할 때를 제외하면 오프라인 상태이기에 해킹 위험이 핫 월렛에 비해서 적다.
- 하드 월렛은 잃어버리더라도 복구 문서(Recovery Phrase)만 알고있다면, 소유권을 증명할 수 있다.
🍓 암호화폐 거래를 자주한다면, 접근성이 높은 핫월렛을 사용한다.
🍓 암호화폐를 안전하게 보관하고자 한다면, 콜드 월렛을 사용한다.
🍓 거래소에서 출금을 할 때에는 거래소 데이터베이스에 저장된 개인 키를 이용하여 트랜잭션을 생성하는 방식으로 거래가 이루어 진다.
하드웨어 월렛 이전의 콜드 월렛의 표준이었다.
일반적인 종이 월렛과 보안에 특화된 종이 월렛이 있다.
해커로부터 안전한 지갑이며 대컴퓨터에 저장되지 않는다.
또한, 타사 서버에 개인키가 저장되지 않는다.
하지만 번거로우며 별도의 사용법을 익혀야 하고, 더 많은 기술적인 이해가 필요한 방법이다.
하드웨어 월렛은 웹 월렛이나 데스크탑 월렛보다 사용자 친화적이지 않다. 하지만, 종이 월렛보다는 작업하기 쉽다.
대부분의 핫 월렛보다 강력한 보안을 가져 안전하다.
자주 이동할 필요가 없는 많은 양의 암호화폐를 장기간 저장하는 데 적합하다.
또한, 더 많은 제어 기능을 제공한다.
다만, 약간의 번거로움이 있고 별도의 사용법을 익혀야 하는 불편함이 있다.
데스크탑 월렛은 온라인 보안을 잘 적용한 경우에 웹 지갑이나 모바일 지갑보다 다소 안전하다.
완전 오프라인으로 새로 운영체제를 설치한 오래된 랩탑을 사용하는 경우에 효과적인 콜드 스토리지 방법이 될 수 있다.
데스크탑 월렛은 사용하기 쉬운 암호화 지갑 유형이며 개인 키가 타사 서버에 저장되지 않는다.
하지만, 인터넷에 연결된 경우 보안 및 개인 정보 보호 관련 주의사항들이 있다.
🧊 컴퓨터 또한 맬웨어(Malware), 키로거(Keylogger) 및 바이러스에 노출되어 있다.
🧊 컴퓨터가 물리적으로 고장나면, 복구할 방법이 없다.
🧊 컴퓨터 수리를 맡기는 경우 코인을 빼앗길 수 있다.
🍰 경우에 따라서, 모든 핫 월렛을 웹 월렛이라 하기도 한다.
모바일이나 데스크탑 월렛과 구분하여 웹 브라우저에서 사용하는 지갑을 특정해 웹 월렛이라고 부른다.
앱과 서버 위치 사이에 지연이 없기에 트랜잭션을 완료하는 가장 빠른 방법이다.
소량의 암호화폐 보유에 적합하다.
일부 웹 월렛은 여러 암호화폐를 관리하거나 둘 사이에서 금액을 전송하거나 거래소에 직접 통합할 수도 있다.
하지만, 사용자는 피싱사기, 내부자 해킹, 맬웨어(Malware), DDos 공격 및 구식 보안 조치에 취약하다.
또한, 웹 월렛의 암호화폐 정보는 제삼자에 저장되기에 개인정보 보안에 문제가 될 수도 있다.
모바일 장치가 있는 곳이라면, 암호화폐에 엑세스할 수 있다.
🍮 다른 암호화폐 지갑보다 더 실용적이고 사용하기 쉽다.
🍮 또한, 즉시 지불을 수락하거나 송금할 수 있다.
완전히 인터넷 기반인 월렛이나 하드웨어 지갑 이상의 추가기능을 제공한다.
🍮 ex) QR 코드 스캔
휴대폰은 매우 안전하지 않은 기기이기에 추가 보안 위험이 따른다.
🍮 휴대폰은 맬웨어(Malware), 키로거(Keylogger) 및 바이러스에 노출되어 있다.
휴대폰이 악의적으로 손상되거나 루팅된 경우, 지갑 앱 암호화도 마찬가지이다.
참고 자료 출처 : 코드 스테이츠