암호화폐 지갑(wallet)을 이해하기 어려운 이유

in #kr7 years ago (edited)

모두들 크리스마스는 잘 보내셨는지요
전 잘 못보냈지만..-_-

여튼 각설하고 지갑에 대해 확실히 알아봅시다

지갑 (wallet) 이라는 용어의 문제


요즘 마이이더월렛에 접속하면 뜨는 의미심장한 문구입니다

저런 불편한 팝업창을 띄우는 이유는
많은 시달림을 당하고 있어서 입니다.

다들 'wallet'을 제대로 이해하지 못해서이죠.

그리고 그 진정한 이유는
'지갑 WALLET' 이라는 용어가 암호화폐의 그것을
표현하기에 적절치 않은 것이기 때문입니다.
암호화폐 지갑이나 실생활 지갑이나 돈을 넣고
지불하고 하는 결과적 동작은 똑같습니다.
그래서 그것만 보고 '지갑'이라는 이름을 선뜻 붙여줬겠죠.
그러나 내부적 원리는 완전히 틀립니다

지우개 똥과 개똥은 원리가 전혀 다르다는 것이죠.

하지만 사람들은 '지갑'이라는 이름에 딸린 기능을
그대로 연상하며 커다란 착각을 하게 됩니다.

그건 바로

지갑에는 돈이 저장되어 있다

라는 착각입니다.

그래서 마이이더월렛에 저장된 자기 돈을 꺼내달라구
마구 문의를 넣었겠죠-ㅅ-;;

하지만 진실은
지갑 프로그램이 그냥 '통신 프로그램' 에
유사하다는 것입니다.
진짜 저장소인 블록체인과 통신하기 위한..

그렇기 때문에 하드웨어지갑이 뿌사지거나
마이이더월렛이 대폭발을 일으켜 사라지게 돼도
내 잔고를 길동무로 삼지 않습니다.

예를들어 여러분의 스맛폰에 은행앱이 있고
잔고가 100억일지라도 스맛폰을 인당수에 빠뜨릴때
함께 몸을 던지지 않습니다.

실제 돈이 들어 있는 곳은 은행이지 스맛폰안에
있는게 아니라는 것을 알기 때문입니다.

하지만 하드웨어지갑, 마이이더월렛 이라는 단어에
홀린 초보들은 하드웨어 지갑을 던지면 같이 물속에
들어갈 크립토 봉사들이 즐비합니다.

은행앱의 비유


사실 은행은 중앙체제로써 분산체제인 블록체인과
대척점에 있지만 동작에 대한 설명에 있어선
예로들기 정말 편합니다.

그리고 은행앱은 지갑을 설명하기 그만이죠.
더불어 블록체인도 카카오뱅크라고 생각합시다.

은행앱에는 돈이 저장되지 않으며
유저의 인증은행과의 통신만을 담당합니다.
적힌 숫자는 통신의 결과일 뿐이죠.

이거 보고 폰안에 500만원 있다고 들고 튈 바보는
없다는 거죠 (비싼 폰이 목적일 경우 빼고)

지갑앱도 마찬가지입니다.
돈을 저장하지 않고 거래인증
블록체인과의 통신만을 담당합니다.
적힌 숫자도 안에 돈이 들어있는게 아니라
블록체인의 정보를 가져온거 뿐이죠.

이때 거래 인증으로 개인키가 사용됩니다.
은행앱으로 치면 공인인증서랑 비번급입니다.
그러므로 그걸 털렸다면
누구든지 자신의 기기에 앱을 깔고
블록체인 계좌에서 돈을 빼갈 수 있게 되는 것입니다.

그래서 지갑앱들은 개인키의 직접적 사용을 권장하지
않습니다. 아니 극구 말립니다.
대신 지갑앱 내부에 암호화해서 저장하고
지갑에 접속할때 비번을 입력하면 내부적으로 개인키를
드러내지 않고 사용하게 합니다.

이러한 비밀번호는 해당 기기에 설치된 지갑앱 전용입니다.
저장된 개인키를 내부적으로
사용하기 위해서만 존재하죠.

그래서 비번은 개인키와 달리
털리더라도 다른 기기에선 사용할 수가 없습니다.
개인키가 저장되어있지 않으니까요.

이것이 지갑들이 굳이 개인키가 있는데도
개인키를 안쓰고 비번을 따로 설정하는 이유입니다.

위의 메타마스크 같은 지갑도 같은 원리라
재설치를 하면 안에 저장되었던 개인키 역시
같이 날아가버립니다. 재설치후 비번 넣어봤자 소용없죠.

그래서 이렇게 지갑앱이 삭제되거나
혹은 하드웨어 지갑이 박살나거나 잃어버릴 때를 대비해서
처음에 지갑을 생성할때 딱 한번에 한해
개인키를 전달합니다. 스파이영화의 1회용 메세지처럼요

그걸로 복구하는거죠.

한데 이후 해당지갑에서 다른 주소를 더 추가하거나
할때가 있습니다.

그럴때마다 개인키를 하나하나 전달하는건 빡시므로
아예 해당 지갑안의 모든 개인키를 추출할 수 있는
마법의 단어들을 제공합니다.


이 단어들을 지갑앱에 넣으면
특정한 연산을 거쳐 해당 지갑의 개인키들을 완전히
복구합니다.

하드웨어지갑도 마찬가지죠.
그래서 잃어버리거나 부숴져도 복구단어만 있으면
얼마든지 지갑을 그대로 복구할 수 있는 것입니다.

그런만큼 이 복구단어는 절대 잃어버리지 않도록
백업함과 동시에 유출을 방지키 위해
사실상 사용할 일이 없어야합니다.

지갑 비번만을 사용하거나
더욱 안전하게
아예 컴터바깥에 개인키가 저장되어 있는
하드웨어 지갑 같은 것을 쓰는 것이 좋은 것이죠 :D

마치며


결국 지갑을 이해하기 어려운 이유는
처음부터 용어를 잘못 적용했기 때문입니다.

거기에 더불어 분산화 개념, 블록체인
등등이 더해지니 점점 더 헷갈리는 것이죠.

그러므로 쉽게 이해할려면
앞서 봤듯이 은행앱 정도로 이해하면 됩니다

Sort:  

역시 트님의 글은 이해하기가 쉬워서 좋네요. ^^감사합니다.

지갑 원리에대해 궁금했는데 궁금증을 풀게되었네요!!
감사합니다ㅎㅎ

감사합니다 +_+/

항상 궁금했던점인데 감사합니다.

오늘의 날

믿고보는 트윈님 글입니다.
지갑 좀 써봐야 확실히 알 수 있겠네요.

쉽게 쓸려고 노력했으나 어제 오늘의 피로가..ㅠㅠ;

우아 정말 이해 잘됬습니다! 저도 이렇게 글 깔끔하게 쓰고싶네요 ㅠㅠ

감사합니다 ;ㅁ;/

저도 첨에 적응을 못해서 mew지갑 주소만 두개입니다.
가끔씩 로그인하면 꽁돈 생긴 것 같아서 기분이 좋습니다.
얼마전엔 해봤더니 개스비로 쓸려고 넣어놓은 이더가 치킨값이 되어서 무척 기뻤습니다.

하지만 지갑이 두개면.. 자꾸 자잘한 잔돈이 각각에 남게 되서-ㅅ-;; 영..
하긴 이더가 2천만 되면 모르죠. 잔돈으로 컴터살지..

은행처럼 "인출" 하는 것으로 계속 티켓이 들어올테니 ... 참 곤란하겠군요 ㅡ.ㅡ ;;

은행앱에 비유하니 정말 이해하기 쉬워지는군요. 감사합니다. 근데 아직 지갑을 만들어보지 못해다는.. ㅠㅠ

띠용..... 오늘도 많이 배워가요!