# EdDSA / Ed25519 (Edwards-curve Digital Signature Algorithm)

EdDSA(Edwards-curve Digital Signature Algorithm)는 트위스티드 에드워즈 곡선 위에서 동작하는 슈노르 계열 전자서명입니다. Ed25519는 그중 edwards25519 곡선과 SHA-512 해시를 쓰는 대표 구현으로, 2011년 다니엘 번스타인(Daniel J. Bernstein) 등이 발표했고 RFC 8032에 규정되었으며, NIST FIPS 186-5(2023)에도 승인 알고리즘으로 포함되었습니다.

## 자세히 알아보기

EdDSA의 가장 큰 특징은 서명용 난수를 외부 난수 생성기에서 가져오지 않는다는 점입니다. 개인 키를 해시해 얻은 비밀 값과 메시지를 다시 해시해 난수 r을 결정적으로 만들기 때문에, 같은 메시지에는 항상 같은 서명이 나오고 난수 결함으로 키가 유출되는 ECDSA형 사고를 원천적으로 줄입니다.

Ed25519는 공개 키 32바이트, 서명 64바이트로 작고, 서명·검증이 빠르며, 에드워즈 곡선의 '완전한(complete) 덧셈 공식' 덕분에 예외 처리 없이 상수 시간 구현이 쉽습니다. 보안 강도는 약 128비트입니다. 더 높은 강도가 필요하면 Ed448(Ed448-Goldilocks, 약 224비트)을 사용할 수 있습니다.

주의할 점도 있습니다. edwards25519 곡선의 보조인수는 8이라서 검증 규칙(보조인수 곱 포함 여부, 비정규 인코딩 거부 등)이 라이브러리마다 미세하게 다를 수 있습니다. 합의가 필요한 블록체인에서는 모든 노드가 정확히 같은 검증 규칙을 써야 합니다. 또한 같은 개인 키를 Ed25519와 다른 방식에 동시에 쓰는 것은 피해야 합니다.

Ed25519 서명 (R, S)에서 R은 32바이트로 인코딩한 곡선 점, S는 32바이트 정수입니다. RFC 8032의 검증식은 [8][S]B = [8]R + [8][k]A(k = SHA-512(R ‖ A ‖ M))이며, 보조인수 8을 빼고 [S]B = R + [k]A를 확인하는 구현도 허용되어 이 차이가 앞서 말한 검증 규칙 불일치의 원인이 됩니다.

## 블록체인·암호화폐에서는

Solana의 계정 주소는 Ed25519 공개 키를 Base58로 표현한 것이며, Cardano, Stellar, NEAR, Aptos 등도 Ed25519를 사용합니다. Bitcoin·Ethereum·Tron이 secp256k1 ECDSA를 쓰는 것과 대비되므로, 같은 니모닉이라도 체인마다 키 유도 방식(예: SLIP-0010)이 다릅니다. 블록체인 밖에서는 OpenSSH 키, Tor 어니언 서비스 주소, 소프트웨어 배포 서명 등에 널리 쓰이며, TLS 1.3에서도 서명 방식으로 지원됩니다.

## 쉽게 말하면

도장을 찍을 때마다 주사위를 굴리는 대신, 문서 내용과 비밀 열쇠로 '찍을 위치'를 정확히 계산하는 도장입니다. 주사위가 고장 나서 비밀이 새는 일이 없습니다.

## 예시

Solana 주소 예: 32바이트 Ed25519 공개 키 → Base58 인코딩 → 32~44자의 문자열.

---
출처: https://achivx.kr/glossary/eddsa-ed25519-%EC%97%90%EB%93%9C%EC%9B%8C%EC%A6%88-%EA%B3%A1%EC%84%A0-%EC%A0%84%EC%9E%90%EC%84%9C%EB%AA%85/ · ACHIVX 용어 사전 · 수정일 2026-10-20
