공개 키(Public Key)란?
공개 키는 지갑 암호학의 공유 가능한 절반입니다. 사람들은 이를 통해 당신을 찾고 서명을 확인하며, 당신의 비밀은 숨겨집니다. 우편함 라벨처럼 생각하면 됩니다: 누구나 볼 수 있지만, 상자는 당신만 열 수 있습니다.
“누군가 내 공개 키를 알면 코인을 가져갈 수 있다.” 아니다. 당신은 비밀 키로 송금합니다. 공개 절반은 다른 사람이 당신의 서명을 확인하고 자금을 당신에게 라우팅하도록만 할 뿐입니다.
공개 키의 작동 원리
간단한 흐름 설명, 불필요한 말은 없습니다. 브런치 후 친구에게 암호화를 보내는 모습을 상상해 보세요.
- 1단계: 당신의 지갑이 비밀 키를 만들고 내부적으로 일치하는 공개 키를 계산합니다.
- 2단계: 전송 버튼을 누르면 지갑은 비밀 키로 거래 서명을 얻고, 네트워크는 공개 절반으로 이를 확인합니다.
- 3단계: 당신의 친구가 그들의 주소들 중 하나를 공유하는데, 이는 공개 키에서 파생된 축약형이며, 당신은 그 주소로 송금합니다.
- 4단계: 노드가 수학적 검증을 통해 서명이 공개 정보와 일치하는지 확인합니다.
- 5단계: 앱 로그인, 메시지 인증 등에도 같은 흐름이 적용됩니다.
그 흐름은 이렇게 깔끔하고 예측 가능합니다.
공개 키가 중요한 이유
여기에 관심이 있거나 암호화가 궁금한 분들을 위해, 왜 중요한지 이유를 알려드립니다:
- 혜택: 공개적으로 신뢰를 열어두기: 누구나 거래를 검증할 수 있지만 당신의 비밀은 보이지 않습니다.
- 관점: 지갑으로 로그인하고 메시지 검증의 기반이 되지만, 무작위 항목을 승인하라고 하는 가짜에 주의해야 합니다.
- 관련성: 온체인 아이덴티티와 DAO 투표가 종종 같은 암호화 키에 의존합니다.
체인이 주소를 사용하는 경우, 공개 키의 원시 값을 공유하기보다 그 주소를 공유하세요. 같은 목적지, 더 나은 프라이버시, 복사 실수 감소.
공개 키의 주요 특징
이걸 이해하게 만드는 특성들:
- 공유 가능: 게시하거나 전송하기 안전합니다; 자금을 움직일 수는 없습니다.
- 파생: 비밀 키에서 수학적으로 도출되며, 역으로 되돌리는 것은 실용적이지 않습니다.
- 비대칭: 한 키가 서명하고, 다른 키가 검증합니다, 공개 검증의 열쇠를 엽니다.
- 형식: 지갑에 따라 압축형, 비압축형, 또는 x-only 형태로 나타날 수 있습니다.
- 휴대성: 같은 체인과 곡선을 지원하는 앱 전반에 작동합니다.
공개 키는 어떻게 계산되나요?
비트코인과 많은 체인에서, 공개 점 K는 비밀 수 k에 알려진 기준점 G를 곱하여 얻습니다. 이는 타원 곡선 secp256k1 위에서의 연산입니다.
K = k × G 여기서 k는 비밀 정수이고, G는 합의된 시작점이며, 모든 산술은 한정된 필드에서 이루어지므로 역연산은 매우 비현실적입니다.
Variations
다르게 표현되는 방법들:
- Compressed: x 좌표와 y에 대한 아주 작은 힌트를 담은 더 짧은 형식.
- Uncompressed: x와 y 좌표를 모두 포함하는 더 긴 형식.
- Xonly: x만 필요한 Schnorr 스타일 서명에서 사용됩니다.
공유는 괜찮지만, 영구성은 현실적입니다. 공개 키를 공개하고 나중에 그것과 당신의 신원을 연결하면 그 연결은 남아 있습니다.
예시
친구의 QR 코드를 스캔하고 USDC를 보내면, QR은 공개 키로부터 생성된 주소를 인코딩하고 있어 자금이 올바른 곳으로 도착합니다.
재미있는 사실
공개 키 암호화는 Diffie, Hellman, Rivest, Shamir, And Adleman 덕분에 대중화되었고, Bitcoin은 secp256k1 위의 타원 곡선 버전을 대중화했습니다. 이는 여전히 무한한 포럼 토론의 원천이 되는 기묘한 선택입니다.
Wrap-Up
공개 키를 암호화의 오픈 배지로 생각하세요: 공유하기 쉽고, 검증하기도 쉽고, 낯선 사람도 먼저 만나지 않아도 당신의 클릭을 신뢰하도록 충분히 강력합니다.