[Blockchain] 지갑 (Wallet)

yooni·2022년 3월 8일
0

Blockchain

목록 보기
20/36
post-thumbnail



1. 지갑 (Wallet)

암호화폐를 보관할 수 있는 계정

지갑은 지갑 주소와 암호로 구성되어 있다. 지갑의 주소는 다른 사람들이 암호화폐를 송금할 수 있도록 공개해도 되지만(공개키), 개인 암호(개인키)는 오직 지갑 소유자 본인만 알고 있어야 한다.

암호화폐 지갑은 비트코인 지갑, 이더리움 지갑 등 암호화폐 종류별로 따로 가지고 있어야 한다. 지갑은 개인 PC에서 직접 만들 수도 있지만 관리가 불편하기 때문에 대개 암호화폐 거래소에서 제공하는 웹 지갑을 사용한다.

  • 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
    최초의 비트코인 지갑인 사토시 나카모토의 지갑 주소. 비트코인 제네시스 지갑이라고도 한다.
  • 0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B
    이더리움 창시자 비탈릭 부테린의 이더리움 지갑 주소

지갑에 대한 오해중 하나는 지갑이 암호화폐를 가지고 있다는 것이다. 엄격하게 지갑은 단지 키만 가지고 있고 암호화폐는 블록체인에 기록되어 있다. 사용자는 지갑의 키를 이용해 서명한 트랜잭션을 통해 블록체인 네트워크 상의 암호화폐를 제어한다. 지갑은 사실 지갑이라기 보다는 키홀더에 가깝다고 볼 수 있다.


❗️ 암호화폐 자체는 블록체인 기반으로 사실상 해킹이 거의 불가능하지만, 암호화폐를 보관하는 지갑은 소유자 개인의 아이디와 암호를 이용해 관리하는 방식이기 때문에 해커의 주된 대상이 된다.


지갑은 소유자 개인이 직접 관리할 수도 있지만, 거래소에 맡길 수도 있다. 지갑과 시드키를 둘 다 분실할 경우 코인은 영원히 찾을 수 없다. 개인이 직접 관리할 때에는 분실의 책임을 본인 스스로 져야 하지만 거래소에 맡긴 경우 거래소가 책임을 져야 한다. 하지만 실제로 거래소가 해킹을 당하거나 거래소가 나의 지갑을 가지고 사라진 경우, 보상에 대한 문제가 이슈가 되고 있다.

현재 대한민국 법에는 거래소의 자산을 보장해주는 법적 장치가 없다. 거래소에 예치된 암호자산은 개인 지갑으로 송금하거나 현금으로 인출하기 전까지는 개인의 자산이라 볼 수 없기 때문에 신뢰할 수 있는 거래소를 선택하는 것이 유리하다. 거래소는 7:3의 비율로 콜드월렛과 핫월렛을 사용하여 코인을 보다 안전하게 보관함과 동시에 출금의 편리성을 제공한다.



2. 핫 월렛 vs 콜드 월렛

크게 핫월렛콜드월렛으로 구분할 수 있다. 그 기준은 인터넷 연결의 유무이다.


2-1. 핫 월렛 (Hot wallet)

사람들이 일반적으로 사용하는 지갑이다. 인터넷에 항상 연결되어 있어, 실시간으로 빠르고 쉽게 출금할 수 있다. 스마트폰 App 월렛, PC 월렛, 웹사이트 월렛 등이다. 직접 보관하는 방식이 아니라 분실 위험이 적다. 하지만 언제나 해킹의 위험에 노출되어 있어 해커는 실시간으로 거래가 이루어지는 핫월렛을 공격하여 이용자의 개인키를 탈취할 수 있다. 예금계좌, 단기 투자 등 소량의 암호화폐를 자주 거래할 때 사용한다.

웹 월렛

웹 지갑은 웹 브라우저를 통해 액세스 하는 지갑이다. 일반적으로 다른 지갑들보다 빠른 편이다. 하지만 키가 온라인의 써드파티 서버에 저장되는 경우가 많아 사이버 공격, 악성 멀웨어, DDos 공격, 피싱사기, 해킹에 취약하다. 또한 이 지갑은 본질적으로 사용자의 지갑이 아니다. 지갑 제공자가 회사이고 사용자가 자기 자금의 안전을 전혀통제할 수 없기 때문이다.

🔍 [웹지갑] 코인베이스, 코인베이스 프로
코인베이스는 비트코인 이더리움 등 주요 암호화폐를 거래할 수 있는 미국 최고의 암호화폐 거래소이다. 지갑 서비스 외의 다양한 서비스를 제공하는 플랫폼이다. 계정의 스타일에 따라 추적이 불가능한 고급형 지갑을 만들 수 있다. 암호화폐 거래에 능숙한 유저를 위한 전문가용 거래 플랫폼인 코인베이스 프로도 존재한다.


모바일 월렛

모바일 지갑은 '가벼운 클라이언트'로 불린다. 모바일 지갑을 운영하기 위해서는 블록체인 전체를 다운로드 할 필요가 없다. 대신 채굴자나 노드가 네트워크의 현재 상태에 대한 정확한 정보를 보내주어야 한다. 휴대전화 연결만 되어 있다면 언제 어디서라도 사용할 수 있다. QR 코드로 암호화폐를 주고받을 수 있기 때문에 매우 편리하다. 따라서 일상적인 거래와 결제에 적합하다.

하지만 모바일 지갑은 가벼운 만큼 해킹도 그만큼 쉽다. 휴대전화 기기 자체가 안전하지 않아서 멀웨어, 키로거 및 바이러스에 노출되어 있다. 휴대폰이 손상될 경우 지갑 역시 영향을 받는다.


데스크탑 월렛

데스크탑 지갑은 PC에서 실행된다. 블록체인 전체를 갖춘 풀 클라이언트를 다운로드 할 수도 있고 가벼운 클라이언트를 사용할 수도 있다. 전자의 경우 스스로 거래를 인증할 수 있기 때문에 보안성이 높다. 데스크탑 지갑은 설정 및 사용이 편리하며 매우 안전한데, 이는 다운로드 받은 컴퓨터 한 대에서만 사용할 수 있기 때문이다. 하지만 인터넷에 연결되어 있기 때문에 PC가 해킹되거나 멀웨어에 감염되지 않도록 주의해야 한다. 또한 컴퓨터 기기 자체를 잃어버리거나 고장날 경우 자금을 잃어버릴 위험성이 매우 크다.



2-2. 콜드 월렛 (Cold wallet)

인터넷에 연결되지 않은 USB, 카드 형태의 지갑이다. 상대적으로 해킹에는 안전하지만 매번 지갑을 컴퓨터에 연결시켜 온라인으로 이동시켜야 하기 때문에 출금이 번거롭고 실시간 거래가 불가능하다. 또한 콜드월렛 자체를 분실할 위험이 있다. 주로 고액 투자나 대량의 코인을 안전하게 보관하기 위한 목적으로 쓰인다. 지갑보다는 금고의 개념에 더 가깝다. 최근 잦은 해킹 사고로 과학기술정보통신부는 보안성 강화를 위해 국내 암호화폐거래소에 암호화폐 예치금의 70% 이상을 콜드월렛에 넣어둘 것을 권고하고 있다.

하드웨어 월렛

암호화폐용으로 특별하게 고안된 휴대용 하드디스크이다. 원하는 컴퓨터에 연결하여 거래를 수행할 수 있으며 오프라인으로 또는 이동 중에 키를 생성할 수 있다.

인터넷에 연결되어 있지 않아 사이버 공격이나 해킹에 영향을 받지 않는다. 2017년부터 글로벌 암호화폐 거래소들이 연이어 해킹을 당하면서 보안성이 높은 하드월렛에 대한 수요가 급증했다. 대부분의 하드웨어 월렛은 백업 옵션을 제공하며 하드웨어 지갑 자체에 화면을 갖추고 있어 장치 자체에서 거래에 서명할 수도 있다.


종이 월렛

이 지갑은 본질적으로 그저 코드가 적혀있는 종이 조각이다. 최대 장점은 인터넷에 연결되어 있지도 않고 컴퓨터에 저장될 필요도 없다는 것이다. 종이 지갑은 항상 가지고 다닐 수 있다. 금고에 넣어둘 수도 있다. 잘 숨기기만 한다면 해커의 공격은 물론 대부분의 물리적 도난에도 영향받지 않는다. 단 종이를 잃어버리면 자신의 암호화폐를 영원히 잃어버릴 수도 있다.




3. 다중 서명 월렛, 다중 통화 월렛

3-1. 다중 서명 월렛 (Multisig wallet)

✔️ 다중 서명 (Multi-signature)
데이터의 위변조를 막고 메시지의 무결성을 확인하여 인증을 수행하는 특수 전자서명 방식. 이 방식은 하나의 주소에 n개의 개인키가 설정되어 있다. 이 주소에서 인출할 때는 n개의 개인키 중에서 m개의 서명이 있어야 가능하다. 이러한 거래를 M-of-N 거래라고 한다. 다중 서명은 보안을 강화하거나 온라인 거래시 소비자를 보호하는 방안으로 활용될 수 있다.

보통 비트코인은 단일 키 주소에 저장되며 해당 개인키를 가진 누구나 자금에 접근할 수 있음을 의미한다. 트랜잭션에 서명하기 위해서는 하나의 키만 있으면 되며, 개인키를 소유한 누구나 다른 이의 동의 없이 코인을 전송할 수 있다. 이는 빠르고 쉬운 방법이지만 보안 문제에 취약하다.

다중 서명 월렛은 다중 서명을 통해 출금이 가능하도록 만든 스마트 컨트랙트이다. 일반 지갑에 비해 보안이 우수하며 실수로 인한 출금도 방지할 수 있다. 하지만 편의성이 부족하고 주의성이 요구되기 때문에 일반 지갑에 비해 사용이 쉽지 않다. 가족이나 기업이 사용하기 적당하다.



3-2. 다중 통화 월렛 (Multi-Currency wallet)

대부분의 코인과 토큰에는 공식 지갑이 있지만 시간이 갈수록 독립적인 제3자 지갑이 다양하게 등장했다. 다중 통화 월렛은 여러 종류의 암호화폐를 하나의 지갑에서 관리할 수 있게 한다.



4. HD 월렛

HD 지갑 (Hierarchical Deterministic Wallet, 계층적 결정 지갑)
하나의 마스터 시드(seed)키를 사용하여 무수히 많은 주소(공개키)를 생성할 수 있는 암호화폐 지갑이다.

기존의 암호화폐 지갑은 필요할 때마다 매번 주소를 새로 생성해야 해서 매우 번거로웠지만, HD 지갑을 사용하면 하나의 마스터 시드키에서 다수의 지갑을 생성할 수 있어 매우 편리하다. 부모 키가 연속된 자식 키를 유도할 수 있고 각각의 자식 키는 손자 키를 유도할 수 있는 트리 구조를 갖고 있으며 비트코인 BIP32 표준으로 정의되어 있다.

HD 지갑은 결정적 지갑이다. 결정적 지갑은 모든 키가 시드키에서 유도되기 때문에 자식 키를 잃어버려도 시드키를 이용해 파생되었던 모든 키를 복구할 수 있다. 따라서 생성 시점에 단일 백업으로 지갑의 모든 자금과 스마트 계약을 보호할 수 있다. 시드 하나만으로 전체 지갑에 접근할 수 있으므로 시드의 보안은 매우 중요하다. 반면 비결정적 지갑은 각 지갑 파일에 무작위로 추출된 단일 개인키를 저장하는 방식으로 사용이 번거롭고 불편하기 때문에 결정적 지갑으로 대체되고 있다.

HD 지갑은 부모키가 자식키를 유도하고, 각각의 자식키가 손자키를 유도하는 트리 구조이다. 이러한 구조를 이용하여 사용자의 편의에 따라 사용할 주소를 구분하여 사용하고 관리할 수 있다.특정 서브키의 특정 분기는 입금을 위해 사용하고 다른 브랜치는 출금의 잔돈을 받기 위해 사용할 수 있다. 또한 부서/기능/카테고리 별로 다른 분기를 할당하여 기업 구조를 표현하는 데도 사용할 수 있다.

시드로부터 마스터키가 생성되면 마스터키로부터 자식키를 2^32개 까지 생성할 수 있다. 자식키는 일반 자식키와 단절 자식키로 나뉘는데, 일반 자식키는 부모의 공개키를 통해 자신의 공개키를 구할 수 있으며 단절 자식키는 부모의 비밀키를 알아야 자신의 공개키를 구할 수 있다.

HD 지갑의 키는 경로 이름 규칙을 사용하여 식별한다. 각 트리 레벨은 슬래시(/)로 구분한다.

m(마스터키)/n번째 자식/m번째 손자

m/3/20은 마스터키의 3번째 자식의 20번째 손자 키이다.


BIP44에서는 목적에 맞게 여러 지갑을 사용할 수 있는 5-level 구조를 제안하였다. BIP44는 복수화폐 복수계정 구조를 나타낸다.

m / purpose' / coin_type' / account' / change / address_index
  • purpose' : 항상 44'로 설정되며 BIP44 규격임을 의미한다.
  • coin_type' : 가상화폐 유형을 의미한다. 비트코인은 0', 이더리움은 60'을 사용한다.
  • account : 지갑을 하위 계좌로 세분화 할 때 사용한다.
  • change : 비트코인 잔액 계정 여부를 의미하며, 이더리움에서는 사용되지 않는다.
  • address_index : 입금 주소나 잔액 주소를 의미한다.

🏷 니모닉 코드 (BIP-39)

니모닉은 지갑을 복구하기 위한 12개의 단어이다. 개인키가 너무 복잡하기 때문에 이를 쉽게 입력할 수 있도록 변경된 형식이다.

HD 지갑은 시드로부터 마스터키를 생성한다. 기존의 시드키는 숫자와 문자로 구성된 난수이기 때문에 사용자가 기억하기 어려웠다. 니모닉 코드 단어는 시드로 사용되는 난수를 인코딩한 단어 시퀀스이다. 단어 시퀀스는 시드를 다시 만들 수 있고 그것으로부터 지갑과 모든 파생된 키를 다시 만들 수 있다. 지갑 니모닉은 지갑을 복구할 수 있다.

처음 지갑을 만들 때 지갑의 고유 지갑 문구를 생성하고 이것이 지갑의 니모닉이 된다. 니모닉은 랜덤한 일반 영어 텍스트 단어로 이루어져 있어 사용자가 난해한 기술에 대한 이해 없이 편리하게 지갑을 사용할 수 있도록 돕는다. 니모닉 코드는 솔팅 해시 함수를 재귀적으로 반복하는 키 스트레칭 과정을 거쳐 마스터 시드를 생성하고 마스터 시드는 HD 지갑 동작의 바탕이 된다.

니모닉이 유출될 경우 암호화폐를 모두 잃게 될 수 있다. 프린트하거나 어딘가에 적어두고 금고 등에 넣어 물리적으로 보관하는 것이 안전하다.



📌 Reference
https://myseedkey.com/coldwallet/
https://academy.binance.com/ko/articles/what-is-a-multisig-wallet
https://kr.cointelegraph.com/ethereum-for-beginners/ethereum-wallets-a-beginners-guide-to-storing-eth
https://www.steemcoinpan.com/sct/@moon0819/season-3-coinbase-coinbasepro
https://steemit.com/kr-dev/@modolee/mastering-ethereum-4-wallet

profile
멋쟁이 코린이

0개의 댓글