하드웨어 지갑을 교체하시나요? 몇 단계만으로 안전하게 Ledger로 마이그레이션하세요.

자세히 알아보기

클래스룸

경로 J) 지갑 지식 II - 암호화폐 저장의 진화

장 1/2

공개키 vs 개인키: 크립토의 공개키 암호화(PKC) 이해하기

읽기 4 최소
입문자용
securitycover
주요 시사점:
— 공개키와 개인키의 핵심 목적은 전송된 트랜잭션이 위조되지 않았으며, 실제 자산 소유자에 의해 정당하게 서명되었음을 증명하는 것입니다.

― 암호화폐를 소유한다는 것은 해당 자산을 사용할 수 있는 권리를 부여하는 ‘개인키(Private Key)’를 소유하고 있음을 의미합니다. 개인키는 내 자산으로 접근하는 열쇠이므로 철저한 보안을 유지해야 합니다.

— 개인 키를 보유하고 있으면 공개 키 복구가 가능합니다. 하지만 공개 키만 사용해 개인 키를 찾는 것은 불가능합니다.

크립토를 조금이라도 접해보셨다면, 가상자산 지갑이 대체 어떤 원리로 작동하는지 한 번쯤 궁금하셨을 겁니다. 직관적으로 이해하기 쉬운 기술은 아니니까요.

지갑의 작동 원리에는 기반 블록체인 기술부터 거래를 실행하는 기기, 그리고 네트워크와의 상호작용 방식까지 다양한 요소가 얽혀 있습니다. 하지만 크립토 지갑을 제대로 이해하고 싶다면, 먼저 블록체인 내부에서 어떻게 동작하는지부터 살펴보는 것이 좋습니다.

지갑이 공개키와 개인키를 통해 작동한다는 사실은 이미 알고 계실 것입니다. 그렇다면, 공개키와 개인키가 암호화폐보다 훨씬 전부터 존재했다는 사실도 알고 계셨나요? 지갑의 핵심인 공개키와 개인키는 사실 암호화폐보다 오랜 역사를 가진 개념입니다. ‘공개키 암호화(PKC)’ 또는 ‘비대칭 암호화(Asymmetric Encryption)’라 불리는 암호학 기술에서 출발했죠.

그렇다면 이 기술의 정체는 도대체 무엇일까요?

공개키와 개인키의 기원

PKC의 일반적인 목적은 악의적인 도청이 발생할 가능성이 있는 공개 채널에서 디지털 서명을 사용하여 안전한 비공개 통신을 지원하는 것입니다.

이 과정에서 PKC는 한 상태에서 다른 상태로의 전환은 원활하게 처리하면서, 그 과정을 거꾸로 되돌리는 것(역산)은 거의 불가능하게 만듭니다. 즉, 타인에게 비밀을 전혀 노출하지 않고도 자신이 해당 비밀을 소유하고 있음을 증명할 수 있습니다. 이를 위해 PKC는 ‘트랩도어 함수(Trapdoor function)’라는 단방향 수학적 개념을 핵심으로 사용합니다. 쉽게 말해 트랩도어 함수란 한 방향 계산은 쉽지만 반대 방향으로 풀기엔 사실상 불가능한 수학 문제입니다. 위조 자체가 불가능하기 때문에 진위 검증에 최적화되어 있습니다.

조금 더 쉽게 풀어보자면, 컴퓨터가 이 반대 방향의 정답을 찾아내는 데는 수천 년 이상의 엄청난 시간이 걸립니다. PKC에서는 소인수분해(Prime Factorization) 같은 수학적 원리가 트랩도어 함수 역할을 하여, 암호화된 서명을 위조(역공학)하는 것을 불가능하게 만듭니다. 결과적으로 컴퓨터가 사실상 해독 불가능한 수학 문제를 풀어야만 하는 셈입니다.

이처럼 PKC는 안전성을 유지하기 위해 공개키와 개인키라는 ‘투 키(Two-Key) 모델’을 기반으로 작동합니다. 이 두 가지 핵심 요소가 서로 협력하여 중요한 정보를 안전하게 보호합니다. 그렇다면 이 모든 원리가 암호화폐와는 정확히 어떤 관련이 있을까요?

암호화폐의 공개키와 개인키

퍼블릭 블록체인이 제대로 구동되려면 개인키와 공개키가 필수적입니다. 암호화폐 환경에서 공개키 암호화(PKC)는 해당 트랜잭션이 위조된 것이 아니라, 자산의 실제 소유자가 직접 서명했음을 증명하는 역할을 합니다.

그렇다면 이 원리는 이미 알고 계신 블록체인 기술과 어떻게 연결될까요? 그리고 트랜잭션에 ‘서명’한다는 것은 대체 어떤 의미일까요? 먼저 암호화폐 지갑에서 공개키와 개인키가 작동하는 방식부터 차근차근 되짚어 보겠습니다.

암호화폐 지갑 속 공개키와 개인키

보통 암호화폐 지갑은 공개키와 개인키라는 두 가지 키를 사용합니다. 명확히 말해, 공개키는 누구에게나 공유해도 괜찮은 키입니다. 반대로 개인키는 해당 공개 주소에 보관된 자산에 누구나 접근할 수 있게 해주는 비밀번호(코드)입니다.

하지만 사실, 지갑의 원리에는 이보다 조금 더 깊은 내용이 숨어 있습니다.

개인키(Private Key)란 무엇인가요?

개인키(Private keys)는 모든 블록체인 계정의 기초이자, 가장 기본적인 동작을 실행할 때도 반드시 필요한 요소입니다. 우선, 흔히 암호화폐를 “소유”한다고 할 때 실제 소유하는 것은 해당 자산에 접근할 수 있는 지갑의 개인키입니다. 명확히 하자면, 암호화폐는 지갑 내부에 보관되는 것이 아니라 항상 블록체인 네트워크에 존재합니다. 사용자는 그 계정에 접근할 수 있는 개인키를 소유하는 것입니다.

이 개인키는 연동된 암호화폐를 사용할 수 있는 권리를 부여합니다. 하지만 누군가가 이 개인키를 손에 넣는다면 그 계정에 대한 모든 접근 권한까지 갖게 됩니다. 이름 그대로 ‘개인(Private)’키인 만큼 철저히 비밀로 유지해야 하는 이유가 바로 여기에 있습니다. 계정의 개인키는 단 하나뿐이며, 오직 본인만 알고 있어야 하는 비밀번호 역할을 합니다.

하지만 개인키는 단순히 자산 접근 권한만 주는 것에 그치지 않고, 지갑이 작동하는 전반적인 원리와 다른 계정과 상호작용하는 방식을 통제합니다. 실제로 대부분의 암호화폐 지갑은 이 개인키를 바탕으로 공개키를 생성합니다.

공개 키(Public key)란 무엇인가요?

공개 키(Public key)는 네트워크의 모든 사용자(때로는 네트워크 외부까지)에게 공개되는 키입니다. 기본적으로 공개키는 ‘계좌번호’와 같은 역할을 하여, 네트워크 참여자들이 각 지갑을 고유하게 식별할 수 있도록 해줍니다. 개인키와 마찬가지로 공개키 역시 긴 숫자열로 구성되어 있습니다. 일반적으로는 개인키를 이용해 생성되지만, 항상 그렇지는 않습니다. 또한 공개키는 우리에게 훨씬 익숙한 ‘블록체인 주소(Blockchain Address)’를 만드는 데 사용됩니다. 보통 블록체인 주소는 이 공개키를 해시(Hash)화한 형태입니다.

블록체인 주소(Blockchain Address)란 무엇인가요?

블록체인 주소는 암호화폐를 받기 위해 타인에게 공유할 수 있는 코드이며, 보통 공개키에서 파생됩니다. 다른 사람에게 암호화폐를 보낼 때 상대방 화면에 표시되는 주소가 바로 이것입니다. 이더리움의 경우 0x로 시작하는 긴 16진수 형태입니다. 비트코인의 경우에는 거래할 때마다 비트코인 지갑이 새로운 주소를 생성하는 것을 볼 수 있습니다. 두 방식 모두 지극히 정상적이며, 명확히 말씀드리자면 이 블록체인 주소는 타인과 공유해도 완전히 안전합니다.

공개키 vs 개인키: 어떻게 작동할까요?

이제 개인키와 공개키가 무엇인지 이해하셨을 텐데요, 그렇다면 두 키는 실제로 어떻게 작동할까요? 각 키는 고유한 역할을 수행하며, 트랜잭션을 실행하거나 서명을 승인할 때 동일하게 중요합니다. 즉, 두 키가 상호작용하는 방식은 지갑으로 어떤 작업을 하려 하는지에 따라 달라집니다.

공개키 암호화(PKC)는 암호화와 서명 기능을 모두 제공하지만, 암호화폐 네트워크에서는 오직 ‘서명’ 기능만 사용합니다. 서명은 트랜잭션의 진위 여부를 검증하여 거래가 위조되거나 변조되지 않았음을 보장합니다. 그럼, 이제 구체적으로 어떻게 작동하는지 살펴보겠습니다.

개인키로 트랜잭션 서명하기

예를 들어 이더리움 네트워크를 통해 친구 밥(Bob)에게 1 ETH를 보내는 상황을 떠올려 보세요. 먼저 밥의 블록체인 주소를 확인해야 합니다. 여러분과 마찬가지로 밥 역시 자신만의 공개키와 개인키 한 쌍을 가지고 있으며, 해당 공개키 주소를 통제할 수 있는 것은 밥의 개인키뿐입니다.

이더를 전송하려면 가장 먼저 트랜잭션 요청을 생성해야 합니다. 이 요청서에 송금할 수량과 수신자 주소(밥의 계정으로 1 ETH)를 입력하면, 지갑이 여러분의 개인키를 활용해 거래에 서명합니다. 서명은 일종의 ‘디지털 지문’ 역할을 합니다. 해당 거래를 실행하려는 본인의 의사를 입증함과 동시에, 작성자가 본인이 맞음을 블록체인에 증명해 주는 것이죠. 개인키로 만들어진 이 서명에는 거래 상세 정보가 포함되며, 최종적으로 트랜잭션 데이터의 일부로 기록됩니다.

서명이 끝나면 트랜잭션이 전체 네트워크로 브로드캐스팅되어 모든 노드가 검증할 수 있는 상태가 됩니다. 이더리움 검증자(Validator)들은 이 서명이 여러분의 공개키와 일치하는지 확인하여 자산의 정당한 소유자가 맞는지 검증합니다. 또한 밥의 주소가 유효한지, 거래 내용에 오류가 없는지도 함께 점검합니다. 모든 검증을 통과하면 거래가 승인되어, 여러분의 계좌에서 1 ETH가 차감되고 밥의 계좌로 입금됩니다.

개인키의 소유자인 본인만이 자금을 이동시킬 수 있는 거래에 서명할 수 있습니다. 즉, 개인키만 안전하게 보관한다면 그 누구도 블록체인상에서 여러분의 자산을 마음대로 움직일 수 없습니다. 공개키나 주소, 나아가 그동안 실행했던 모든 거래의 서명 기록이 외부에 공개되어 있음에도 자산이 안전한 이유가 바로 여기에 있습니다. 단방향 계산만 가능한 ‘트랩도어 함수(Trapdoor function)’의 진가가 발휘되는 순간입니다.

개인키 vs 공개키: 암호화폐 지갑의 기본 원리

공개키와 개인키는 지갑의 원리를 이해하는 첫걸음에 불과합니다. 두 키가 P2P 가치 전송의 기본 뼈대를 잡아준다면, 오늘날의 크립토 지갑은 여기서 한 단계 더 나아가 훨씬 다채로운 기능을 제공합니다. 지갑의 종류도 다양해졌고, 이 기술을 활용하는 방식도 저마다 조금씩 다르죠.

암호화폐 지갑에 대해 더 자세히 알아보고 싶으신가요? 하나의 인터페이스로 수많은 계정을 손쉽게 관리할 수 있게 해주는 최신 크립토 지갑의 매커니즘을 지금 바로 알아보세요.


소통하기

공지 사항은 블로그에서 확인할 수 있습니다. 홍보 문의:
[email protected]

뉴스레터 구독

새롭게 지원되는 코인, 블로그 업데이트 및 특별한 혜택 정보를 이메일로 직접 받아보세요


귀하의 이메일 주소는 뉴스레터, 업데이트 및 제안을 보내는 데만 사용됩니다. 뉴스레터에 포함된 링크를 사용하여 언제든지 구독을 해지할 수 있습니다. 당사에서 사용자 데이터 및 권리를 관리하는 방식을 자세히 알아보세요.

내 손으로 지키는 크립토 라이프

유용한 보안 팁과 최신 업데이트, Ledger만의 독점 혜택을 가장 먼저 확인하세요.

귀하의 이메일 주소는 뉴스레터, 업데이트 및 제안을 보내는 데만 사용됩니다. 언제든지 구독을 취소할 수 있습니다. 자세히 알아보기

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.