암호화폐 지갑은 블록체인 네트워크와 상호작용하는 수단 중 하나이다. 일반적인 일상생활 속의 지갑의 용도와 달리 암호화폐 지갑은 실제 암호화폐를 저장하지 않는다. 블록체인 분산 원장에 기록되는 트랜잭션 데이터를 생성하고 서명하는 과정에 사용되는 공개키, 개인키 쌍을 보관하고 관리하기 위한 도구라고 할 수 있다.
소프트웨어가 블록체인에서 실행되는 동안 개인 블록체인 지갑은 영문, 숫자, 문자로 이루어진 32개의 무작위 주소를 생성한다. 지갑 주소는 대부분의 경우 공개키를 사용하여 생성되며 공개키에 대응된다. 이 주소가 바로 코인이 전송될 수 있는 블록체인 상의 특정한 위치가 되는 것이다.
일반적으로 공개키는 누구에게나 공개가 가능한 키이며, 개인키는 자신만이 가지고 있는 비공개 키로 공개하면 안 되는 키이다. 공개키로 암호화를 하면 데이터 보안에 중점을 두고, 개인키로 암호화를 하면 인증 과정에 중점을 둔다고 할 수 있다.
블록체인상에서의 모든 거래는 블록체인에 포함되기 위해서 유효한 서명이 있어야 하고 이러한 서명은 유효한 디지털 키(공개키, 개인키)가 있어야 한다. 쉽게 말해, 공개키는 은행의 계좌번호에 해당하고, 개인키는 계좌의 비밀번호에 해당된다.
개인키(Private key) : 개인키는 256비트의 난수로 구성된 값이다. 여기서 난수를 선정하는 알고리즘이 중요한데 개인키로 사용할 256비트의 난수는 프로그래밍 언어가 제공하는 단순한 난수 생성기가 아닌, 암호학적으로 안전한 의사 난수 생성기를 사용하여 생성되어야 한다. 반드시 중복되지 않음을 보장하고, 키를 생성하는 작업은 1에서 2의 256승 사이의 사이의 숫자를 선택하는 것과 동일하다. 따라서 개인키는 256비트 길이의 숫자로 생성되며, 64개의 16진수로 표현된다.
공개키(Public key) : 공개키는 타원곡선 곱셈 함수를 통해 개인키 값을 대입하여 공개키 값을 얻게 된다. 공개키는 한쌍의 (x, y) 좌표로 구성된 점으로 타원 곡선 상에 존재하고 공개키의 형식은 비압축형과 압축형으로 나눌 수 있다. 비압축 공개키는 04의 접두어를 가지는 반면 압축 공개키는 02, 03의 접두어를 가져 양수, 음수를 구분한다.
어떤 지갑을 사용하던지 개인키를 사용하면 암호화폐에 접근이 가능하다. 때문에 암호화폐 지갑에 대한 보안이 항상 강조되는 것이며, 개인키를 까먹거나 분실하게 되면 본인의 암호화폐를 찾을 수 없게 된다.
암호화폐 지갑은 인터넷의 연결 여부에 따라 핫 월렛(Hot wallet)과 콜드 월렛(Cold wallet)으로 나누어진다. 온라인에 연결되어서 사용되는 온라인 지갑은 핫 월렛, 인터넷에 연결되지 않은 하드웨어 형태의 오프라인 지갑은 콜드 월렛이라 할 수 있다. 두 지갑은 암호화폐 지갑에서 가장 중요한 요소 중 하나인 개인키를 보관하는 방식이 다르다.
핫 월렛은 온라인 상태로 실시간 거래가 가능한 암호화폐 지갑으로 지갑이 인터넷과 연결되어 입출금이 자유롭기 때문에 편리하다는 장점이 있다. 암호화폐 투자한 자산의 가치가 아직 크지 않다면 대부분이 사용하는 암호화폐 지갑은 핫 월렛으로 웹브라우저나 모바일 앱 설치만으로 간편하게 이용이 가능하다. 하지만, 핫 월렛은 인터넷에 상시 연결되어 해커들의 표적이 되기 쉽고 개인키가 유출될 수 있는 위험이 있기 때문에 콜드 월렛에 비해 보안에 취약하다는 단점이 있다.
반면에 콜드 월렛은 인터넷에 연결되어 있지 않은 오프라인 상태에서 구동되는 지갑으로 보안성이 뛰어나다. 암호화폐를 물리적인 장치에 물리적으로 보관하는 방식으로, 인터넷에 접속을 하지 않고 민감한 거래내역 생성 및 개인키 서명을 오프라인에서 한다. 전송할 때만 따로 키를 생성해 개인키를 노출시키지 않고 전송하여 해킹 등 외부 위험으로부터 안전하다. 하지만, 인터넷에 연결되어 있지 않기 때문에 실시간 거래가 불가능하고 편리성이 떨어진다. 또한, 콜드 월렛 이용을 위한 물리적인 장치를 분실할 경우 암호화폐도 찾을 수 없게 된다는 단점이 있다.
암호화폐 지갑은 암호화폐를 사용하기 위해 빠질 수 없는 필수적인 요소이며, 블록체인 네트워크를 통해 자금을 주고받을 수 있게 하는 기본 요소 중 하나이다. 각 지갑은 장점과 단점을 갖고 있기 때문에 각 각의 작동 방식을 이해하고 본인에게 맞는 암호화폐 지갑을 이용하는 것이 중요하다.