피드로 돌아가기
Three Address Checksums, Three Engineering Philosophies — Verifying Base58Check, Bech32m, and EIP-55 in 250 Lines of Browser JS
Dev.toDev.to
Security

250줄의 JS로 분석한 블록체인 주소 검증 설계 철학 3종

Three Address Checksums, Three Engineering Philosophies — Verifying Base58Check, Bech32m, and EIP-55 in 250 Lines of Browser JS

SEN LLC2026년 4월 28일9intermediate

Context

블록체인 주소 체계는 단순 데이터 식별을 넘어 오타로 인한 자산 손실을 방지하는 Checksum 설계가 필수적임. 각 네트워크는 초기 설계 시점의 위협 모델과 사용자 경험, 하위 호환성 요구사항에 따라 서로 다른 검증 철학을 채택함.

Technical Solution

  • Base58Check: SHA-256을 두 번 적용한 4바이트 Checksum 구조를 통해 오타 발생률을 1/40억 수준으로 억제한 방어적 설계
  • EIP-55: 기존 Case-insensitive Hex 형식의 대소문자 구분 가능성을 활용하여 1비트-per-nibble Checksum을 추가한 하위 호환 중심 설계
  • Bech32/Bech32m: QR 코드 인식률 향상 및 음성 전달 편의성을 위해 30비트 Polynomial Modulo 기반의 오류 검출 알고리즘 적용
  • Keccak-256: NIST SHA3-256과 Padding 바이트(0x01 vs 0x06)가 다른 특성으로 인해 Web Crypto API 대신 커스텀 구현체 사용
  • HRP Validation: Bech32 디코딩 시 단순 구분자 검색이 아닌 정규표현식을 통한 엄격한 HRP 검증으로 잘못된 포맷 수용 가능성 제거

- 데이터 무결성 검증 설계 시 Trade-off 분석(보안성 vs 사용자 편의성 vs 호환성) 수행 - 외부 라이브러리 의존성 제거 시 NIST 표준과 실제 구현체 간의 Padding 및 상수 차이 정밀 검증 - 하위 호환성 유지를 위한 'Gradual Upgrade' 전략(예: EIP-55의 Mixed-case 처리) 검토 - 입력 값 검증 시 Postel's Law(관용적 수용)보다 엄격한 Strict Validation 적용 여부 판단

원문 읽기