📖 용어
🇰🇷 쉽게 설명
🔰 초보
✍️ 디지털 서명 Digital Signature
거래에 붙는 수학적 증명이에요. 특정 개인 키 보유자가 보낸 것이고, 전달 과정에서 단 한 글자도 바뀌지 않았다는 걸 증명해요.
💡
흔한 오해 — 손으로 쓴 서명 이미지인가요? 아니에요! 이미지도 타이핑한 이름도 아니에요. 디지털 서명은 키 쌍으로 만드는 암호화 수식으로, 데이터가 변조되지 않았음을 증명해요.
🖊️ 쉽게 풀면 — 위조 불가능한 밀랍 봉인
옛날 편지를 떠올려 봐요. 편지 봉투에 특별한 도장으로 밀랍 봉인을 찍었죠. 그 도장(개인 키)은 나만 갖고 있으니 봉인도 나만 만들 수 있어요. 봉인 모양(공개 키)을 아는 사람은 누구나 진짜인지 알아볼 수 있고, 봉투가 열린 흔적이 있으면 바로 들통나요. 디지털 서명도 똑같은 원리인데 한 가지가 더 좋아요. 위조가 불가능하고, 내용물의 글자 하나라도 바뀌었으면 바로 검증에 실패해요.
⚙️ 실제로 어떻게 동작하나요?
데이터를 해시 함수에 넣으면 짧은 고정 크기 '지문'이 만들어져요. 서명자는 이 지문을 개인 키로 서명해요. 검증할 때는 누구든 같은 데이터로 해시를 만들고 공개 키로 서명을 확인해요. 서명 후 글자 하나라도 바뀌었다면 지문이 달라져 검증이 실패해요. 핵심은 이거예요. 서명을 통해 개인 키를 단 한 번도 드러내지 않고 내가 그 키를 가지고 있다는 걸 증명할 수 있어요.
🛡️ 세 가지 보장
| 보장 | 증명하는 것 |
|---|---|
| 👤 인증(Authentication) | 누가 보냈는지 — 개인 키 보유자만 서명을 만들 수 있어요 |
| 🧩 무결성(Integrity) | 서명 이후 데이터가 바뀌지 않았음 |
| 🔒 부인 방지(Non-repudiation) | 서명자가 나중에 '내가 서명한 적 없다'고 발뺌할 수 없어요 |
🪙 크립토에서 어디서 만나나요?
블록체인에는 로그인이 없어요. 모든 거래는 개인 키로 디지털 서명을 해야 전송이 승인되고, 네트워크는 공개 키(주소)로 서명을 확인해 진짜 소유자가 코인을 움직이는 게 맞는지 검증해요. 입문자 입장에서는 지갑이 '서명' 또는 '확인'을 물어볼 때 이 과정이 일어나요. 코인 전송이든 dApp 로그인이든 지갑이 내부에서 디지털 서명을 만들고 있는 거예요.
🔗 실제 사례
- ₿ 비트코인 — secp256k1 곡선의 ECDSA를 사용하고, 2021년 탭루트(Taproot) 업그레이드에서 슈노르(Schnorr) 서명을 추가해 효율을 높이고 여러 서명자를 하나로 합칠 수 있게 됐어요
- ⟠ 이더리움 — 거래와 메시지 서명에 동일하게 ECDSA(secp256k1)를 사용해요
- 🔮 앞으로는 — 미래의 양자 컴퓨터에도 안전한 포스트-퀀텀 서명 방식이 연구 중이에요 (아직 주류 적용 전)
❓ 자주 묻는 질문
- 서명하면 개인 키가 노출되나요?
- 아니요. 디지털 서명의 핵심은 개인 키를 한 번도 드러내지 않고도 '내가 키를 가지고 있다'는 것을 증명한다는 거예요. 서명과 공개 키만 공유되고, 개인 키는 내 쪽에 그대로 비밀로 남아요.
- 디지털 서명은 손으로 쓴 서명 이미지인가요?
- 아니요. 이미지도 아니고 이름을 타이핑한 것도 아니에요. 디지털 서명은 개인 키·공개 키 쌍으로 만드는 암호화 수식이에요. 도장 이미지를 붙이는 건 '전자 서명'이고, 디지털 서명은 문서가 진본이며 변조되지 않았음을 수학적으로 증명하는 기술이에요.
- 지갑이 '서명'을 요청하는 이유가 뭔가요?
- 블록체인에는 로그인이 없어요. 코인을 보내거나 dApp에 내가 누구인지 증명하려면 지갑이 개인 키로 디지털 서명을 만들어요. 네트워크는 공개 키로 그 서명을 검증한 뒤 행동을 허가해요.