암호화폐 지갑의 공개 키와 개인 키란? 어떻게 작동할까요?

Author logo
Patrick Dike-Ndulue
Post image

공개 키와 개인 키는 비트코인 등 다양한 암호화폐에서 꼭 필요한 요소예요. 이 키 덕분에 중앙화된 제3자 없이도 지갑에서 암호화폐를 주고받을 수 있죠. 공개 키와 개인 키는 public-key cryptography(PKC)라는 암호 기술의 일부로, 내 디지털 자산의 안전을 지키는 핵심 역할을 해요. 그렇다면 이 키들은 정확히 무엇이며, 어떻게 함께 내 자산을 보호할까요?

공개키 암호화란?

공개키 암호화(PKC)는 비대칭 암호 기술로, 데이터의 진위와 안전성을 검증하는 데 사용돼요. 원래는 컴퓨터에서 메시지를 암호화·복호화하는 데 쓰였지만, 지금은 암호화폐의 거래 암호화에도 활용되고 있어요.

PKC one-way trapdoor function.png
공개키 암호화의 원리

PKC는 '트랩도어 함수'라는 일방향 수학 함수를 기반으로 해요. 한 방향으로는 쉽게 계산되지만, 반대로 풀기는 거의 불가능하죠. 이론상 가능하더라도, 역산을 하려면 양자 슈퍼컴퓨터와 수천 년이 필요해요.

공개 키란?

공개 키는 사용자가 암호화폐를 받을 수 있도록 해주는 암호 코드예요. 누구나 공개 키로 자산을 보낼 수 있지만, 받은 자산을 '해제'하고 실제로 소유를 증명하려면 개인 키가 꼭 필요해요.

what is public key.png
공개 키란?

실제로 자산을 받을 때 쓰는 공개 키는 '주소'라고도 불리며, 공개 키를 짧게 줄인 형태예요. 예를 들어, 최초의 비트코인 주소는 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa입니다.

공개 키는 누구에게나 자유롭게 공유해도 괜찮아요. 콘텐츠 제작자나 단체의 기부 페이지에서 암호화폐 주소(공개 키)를 본 적이 있을 거예요. 누구나 기부할 수 있지만, 실제로 자금을 사용하려면 개인 키가 필요해요.

개인 키란?

what is private key.png
개인 키란?

개인 키는 내 공개 주소와 연결된 자산의 소유권을 증명하고 실제로 사용할 수 있게 해주는 암호 코드예요. 개인 키는 여러 형태로 존재할 수 있어요:

  • 256자리의 이진 코드
     
  • Hexadecimal code of 64 digits.
     
  • QR 코드
     
  • Mnemonic seed phrase.

어떤 형태든, 개인 키는 엄청나게 큰 숫자예요. 이 때문에 안전하게 보호할 수 있죠. 개인 키로 공개 키를 만들 수 있지만, 반대로 공개 키에서 개인 키를 알아내는 건 사실상 불가능해요. 또, 하나의 개인 키로 여러 공개 키를 연결할 수도 있어요.

경고! 개인 키는 절대 누구와도 공유하지 마세요!

공개 키와 개인 키는 어떻게 작동할까요?

지갑을 만들 때, 보안 칩의 진짜 난수 생성기(TRNG)가 개인 키를 생성해요. 이 키는 긴 영문·숫자 조합으로 만들어져요.

개인 키는 오직 나만의 것으로, 지갑에서 자산을 출금하거나 전송하는 등 모든 거래를 할 때 필요해요. 

복잡한 알고리즘이 개인 키를 바탕으로 공개 키를 생성하고, 이 공개 키가 다시 압축되어 실제로 사용하는 공개 주소가 돼요. 

개인 키가 어떻게 공개 키를 생성하나요?

개인 키는 비대칭 암호화, 특히 RSA, ECC(타원 곡선 암호), DSA(디지털 서명 알고리즘) 같은 수학적 알고리즘을 통해 공개 키를 만들어내요. 

아래는 비트코인 등에서 널리 쓰이는 타원 곡선 암호화(ECC) 방식의 간단한 설명이에요.

  1. 타원 곡선 선택 
    먼저, 특정한 수학적 성질을 가진 타원 곡선을 선택해요. 비트코인에서는 secp256k1 곡선이 널리 쓰여요.
     
  2. 고유한 점 도출 
    개인 키는 보통 큰 정수로 표현되는 임의의 숫자예요. 이 숫자를 곡선 위의 한 점으로 변환하는 '점 곱셈' 과정을 거쳐 고유한 점을 얻어요.
     
  3. 공개 키 생성
    이렇게 얻은 점이 바로 공개 키예요. (x, y) 두 좌표로 나타내지만, 실제로는 x좌표만 사용해 압축된 공개 키로 만들어요.
     
  4. 고유 점 압축(선택)
    효율성을 위해 전체 공개 키를 더 짧은 형태로 압축할 수 있어요. 그래도 암호화 작업은 그대로 할 수 있죠.
     
  5. SHA-256 및 RIPEMD-160 해싱
    비트코인에서는 압축된 공개 키를 SHA-256과 RIPEMD-160 해시 함수로 두 번 해싱해요. 이렇게 하면 '공개 키 해시(PKH)'라는 고정 길이의 짧은 값이 만들어지고, 이 값이 비트코인 주소에 쓰여요.
     
  6. 체크섬 추가(선택)
    일부 블록체인에서는 오류 검출을 위해 PKH에 체크섬을 추가하기도 해요. 모든 암호화폐가 그런 건 아니에요.
     
  7. Base58 인코딩
    마지막으로, PKH(체크섬 포함 또는 미포함)를 Base58 형식으로 인코딩해 사람이 읽기 쉬운 주소로 만들어요.

이렇게 만들어진 주소가 바로 우리가 암호화폐를 주고받을 때 사용하는 공개 주소예요. 

공개 키에서 개인 키를 역산하는 건 사실상 불가능하지만, 개인 키에서 공개 키를 만드는 과정은 수학적으로 투명해서, 개인 키를 노출하지 않고도 지갑 소유권을 증명할 수 있어요.

Private keys vs. public keys.png
 

비대칭 암호화

공개 키와 개인 키는 서로 짝을 이뤄 메시지를 암호화·복호화해요. 누군가의 공개 키로 메시지를 암호화하면, 해당 개인 키로만 복호화할 수 있어요. 그래서 암호화된 메시지는 오직 의도한 수신자만 읽을 수 있죠. 또, 비대칭 암호화는 발신자의 신원을 증명하는 데도 활용돼요.


예를 들어, 친구 Patrick에게 비밀 메시지를 보내고 싶다면 Patrick의 공개 키로 먼저 암호화한 뒤, 내 개인 키로 서명해요. Patrick은 자신의 개인 키로만 메시지를 복호화할 수 있죠.

개인 키와 공개 키로 암호화폐 거래가 이루어지는 원리

예를 들어, Patrick에게 비트코인을 보내고 싶다면 먼저 Patrick의 공개 주소(공개 키의 짧은 형태)를 알아야 해요. 그다음 내 개인 키로 메시지(거래)에 서명해, 거래가 변조되지 않았음을 증명해요. 이 거래는 암호화되어 비트코인 네트워크의 노드들이 검증하게 돼요.

Patrick의 지갑은 자신의 개인 키로 거래 메시지를 복호화해 내가 보낸 비트코인을 받을 수 있어요. Patrick이 개인 키를 안전하게 지키지 않으면, 누구든 해당 자산에 접근할 수 있으니 주의해야 해요.


채굴된 진짜 거래는 취소가 불가능해요. 그러니 거래 서명 전에, 올바른 공개 주소와 네트워크를 꼭 확인하세요.

개인 키는 어디에 저장되나요?

개인 키는 암호화폐 지갑에 저장돼요. 모바일이나 데스크톱 소프트웨어(핫 지갑), 또는 전용 하드웨어 장치(콜드 지갑)일 수 있어요.

Binance나 Coinbase 같은 거래소에 암호화폐를 보관하면, 거래소가 내 개인 키를 대신 관리하는 수탁형 지갑이 돼요. 마치 은행 금고에 현금을 맡기는 것과 비슷하죠. 

비수탁형 지갑에서는 내가 직접 개인 키를 통제해요. 다행히 대부분의 비수탁형 암호화폐 지갑은 자동으로 개인 키를 저장·서명해주기 때문에, 직접 키를 다룰 일은 거의 없어요. 

지갑이 개인 키로 거래를 자동으로 서명해주고, 백업용으로 시드 문구나 여러 하드웨어 장치로 복구할 수도 있어요.

공개 키와 개인 키가 암호화폐를 통제하는 원리

공개 키와 개인 키가 어떻게 상호작용하는지 이해하는 것은 암호화폐 거래의 핵심이에요. '내가 암호화폐를 가진다'는 것은, 사실상 내 소유를 증명하는 개인 키를 갖고 있다는 뜻이에요.

'내 키를 직접 보관할지', 아니면 신뢰할 수 있는 수탁자에게 맡길지는 각자의 투자 성향과 위험 선호도에 따라 달라질 수 있어요.

개인 키를 완전히 직접 관리하고 싶다면 Tangem Wallet 같은 최신 하드웨어 지갑을 고려해보세요. 이 지갑은 개인 키를 노출하지 않고 안전하게 관리해줘요. 

거래소 등 수탁형 솔루션을 선택할 때는 보안과 규제를 중시하는 신뢰할 수 있는 회사를 고르는 것이 중요해요.

마무리

공개 키는 이메일 주소, 개인 키는 비밀번호와 비슷하다고 생각해보세요. 누구나 내 이메일로 메시지를 보낼 수 있지만, 실제로 읽으려면 비밀번호가 필요하죠. 개인 키(비밀번호)는 반드시 본인만 보관하고, 공개 키(이메일 주소)는 자유롭게 공유해도 괜찮아요.

Author logo
작가 Patrick Dike-Ndulue

Senior editor covering crypto, onchain equities, and technology.

Author logo
검토자: Rukkayah Jigam

Writer & editor covering digital assets and product updates.