지갑의 역할과 기능
Last updated
Last updated
이번 시리즈에서는 블록체인 환경에서 사용자들이 거래를 위해 사용하는 어플리케이션인 지갑에 대해서 알아보겠습니다. 지갑의 기능부터 지갑의 유형과 안전성, 복구의 중요성과 같은 내용을 다룰 예정입니다.
※ 본 편은 블록체인에 대한 기본과 암호 기초에 대한 이해를 전제로 합니다.
지갑은 현금이나 신용 거래를 위한 카드, 신분증과 같은 것을 보관하기 위한 용도로 사용됩니다. 사용자들이 가지고 다녀야 하는 물건을 보관하여 가지고 다닐 수 있도록 편리함을 제공합니다. 지갑에서는 현금이나 신분과 같은 중요한 정보들을 한곳에 보관하는 만큼 잃어버릴 경우 큰 피해로 이어질 수도 있습니다.
인터넷의 발전으로 많은 것들이 디지털화 되어가면서 스마트폰과 태블릿의 보편화로 인해 우리는 소유하고 있는 많은 것들을 디지털화할 수 있게 되었습니다. 메모가 필요한 경우 노트를 꺼내기 보다 스마트폰에 기록하는 라이프 스타일의 변화처럼, 사람들이 소지하고 다니는 물품은 점점 줄어들어 디지털화 되어가고 있습니다.
디지털화된 지갑은 기존에 전통적인 지갑의 역할을 디지털화 하기 위한 노력의 결과로, 아직 발전의 여지가 많은 어플리케이션입니다. 그 중에서도 암호 화폐 지갑 혹은 블록체인 지갑은 개인의 자산이나 신분과 같은 중요한 정보들을 디지털화하여 사용할 수 있도록 시도하고 개발되는 어플리케이션입니다.
실물 지갑에 현금을 보관하는 것과 같이 블록체인 지갑에서도 자산(암호 화폐)을 보관하는 것으로 생각할 수 있습니다. 비슷한 의미로 느껴질 수도 있지만 블록체인 지갑은 내부적으로는 자산을 보관하고 있지는 않습니다. 자산에 대한 소유권을 보관하고 있다는 것이 정확한 표현입니다.
좀 더 직관적인 설명을 위해 투명하고 자물쇠로 잠겨져있는 상자를 상상해봅시다. 이 상자에는 구멍이 뚫려있어서 현금을 넣는 것은 쉽지만, 상자에서 현금을 꺼내기 위해서는 열쇠가 있어야만 합니다. 여러개의 상자 안에는 각 사용자들의 현금이 보관되어 있고, 사용자가 가지고 있는 유일한 열쇠로만 상자를 열어서 현금을 꺼낼 수 있습니다. 공개된 장소에 있는 상자의 안에 있는 현금은 누구의 소유인가요? 열쇠를 가진 사람만이 상자를 열어서 현금을 사용할 수 있기 때문에, 상자 안의 현금을 직접 가지고 있지 않아도 열쇠를 가진 사람이 소유자가 될 수 있습니다. 현금은 상자안에 있지만(직접 가지고 있지 않지만), 열쇠를 가진 사람만이 꺼낼 수 있다라는 사실에 주목하시기 바랍니다.
블록체인 환경에 적용해보면, 한 상자에서 다른 상자로 현금을 옮기는 행위를 작성하는 것이 거래내역입니다. 블록체인 상에서는 거래내역이 모두 공개 되고, 자산이 누구의 소유인지도 공개가 됩니다. 열쇠만 있다면 자산이 있는 누구나 상자에서 현금을 꺼내 다른 상자로 옮기는 것이 가능하듯이, 개인키를 가지고 있으면 블록체인 상의 자산을 이체시킬 수 있습니다. 블록체인 상에서 개인키는 자산을 옮길 때 필요한 소유권을 증명할 수 있는 유일한 수단입니다. 블록체인 네트워크에서는 유효한 전자 서명이 있는 거래내역만을 받아들이기 때문입니다.
블록체인 상에서 여러분의 자산은 어디에 존재하는지 이해가 되었나요? 정리하면, 자산은 블록체인상에 존재하며 공개되어 있지만 개인키를 가진 사람만이 옮길 수 있습니다. 따라서 개인키는 소유권을 의미하는 가장 중요한 정보이며, 이를 잘 관리하기 위한 도구가 필요하기 때문에 블록체인 지갑을 사용하는 것입니다.
지갑은 사용자에게 개인키를 생성하고 관리할 수 있도록 서비스를 제공하는 소프트웨어입니다. 생성된 개인키로 부터 블록체인 상의 계좌번호에 해당하는 주소를 만들어냅니다. 또한 자산을 이동할 때 필요한 거래내역을 작성하고, 개인키로 소유권을 증명하는 전자 서명을 작성하는 과정을 수행합니다. 또한 분실이나 도난의 경우에 대비해서 개인키를 복구할 수 있는 솔루션도 함께 포함됩니다. 이를 요약하면 지갑의 기본적인 역할은 다음과 같습니다.
개인키 및 주소를 생성 및 복구
거래내역을 작성
개인키로 거래내역에 전자 서명 작성
블록체인에 저장되는 거래내역은 정해진 형식에 따라 작성되어 전자 서명과 함께 네트워크로 보내면, 유효성을 검증 후 저장됩니다. (해당 내용이 잘 이해가 안가신다면, 블록체인 기본 편을 참고하시기 바랍니다.) 암호 화폐는 종류 별로 네트워크가 다르기 때문에 이를 선택하고 네트워크에 맞는 거래내역을 작성하도록 지갑에서 보조합니다. 예를 들어, 비트코인과 이더리움은 서로 다른 네트워크를 가지고 있으며 서로 호환되지 않습니다. 지갑 소프트웨어의 종류 별로 지원하는 암호 화폐가 다른 이유는 이 때문입니다.
본 편에서는 지갑의 역할과 기능에 대해서 알아보았습니다. 다음 편에서는 지갑의 유형에 대해서 알아보겠습니다.