Fundamentals ·

암호화폐 주소 형식: Bech32, Base58, 그리고 0x


암호화폐 주소를 복사해 본 적이 있다면, Bitcoin 주소는 bc1로 시작하고, Ethereum 주소는 0x로 시작하고, Solana 주소는 완전히 다른 언어처럼 보인다는 것을 눈치챘을 것입니다. 이 차이는 외관상의 것이 아닙니다. 각 주소 형식은 블록체인, 지원하는 트랜잭션 유형, 자금을 보호하는 오류 감지 메커니즘에 대한 특정 정보를 인코딩합니다.

주소 형식을 이해하는 것은 실용적인 지식입니다. 암호화폐 주소의 한 문자가 틀리면 자금이 영구적으로 사라질 수 있습니다. 이 가이드는 주요 인코딩 체계를 분석하고, 각 블록체인이 해당 형식을 선택한 이유를 설명하며, 체크섬이 비용이 큰 실수를 어떻게 방지하는지 보여줍니다.

주소가 왜 다르게 보이는가

암호화폐 주소는 공개 키 또는 이로부터 파생된 해시의 사람이 읽을 수 있는 표현입니다. 원시 암호화 출력은 이진 데이터로, 사람이 읽고, 복사하고, 검증하기에 실용적이지 않습니다. 서로 다른 블록체인이 이진 데이터를 텍스트 문자열로 변환하기 위해 다른 인코딩 체계를 선택했습니다.

이러한 인코딩 선택은 다음 사이의 트레이드오프를 반영합니다:

  • 문자 세트 안전성 -- 비슷하게 보이는 문자(0/O, l/1/I)를 피함
  • 오류 감지 -- 자금이 손실되기 전에 오타를 잡는 내장 체크섬
  • 공간 효율성 -- 짧은 주소가 다루기 쉬움
  • 대소문자 구분 -- 소문자 전용 형식은 클립보드 혼란을 피함

암호화폐의 세 가지 주요 인코딩 계열은 Base58Check, Bech32, 그리고 0x 접두사가 붙은 16진수입니다.

Base58Check: Bitcoin 레거시

Base58Check는 Satoshi Nakamoto가 Bitcoin에 도입한 최초의 주소 인코딩 체계 중 하나입니다. 시각적 혼란을 일으키는 문자를 의도적으로 제외한 58개의 영숫자를 사용합니다:

  • 제로(0) 없음 -- 문자 O와 너무 유사
  • 대문자 O(O) 없음 -- 제로와 너무 유사
  • 소문자 L(l) 없음 -- 대문자 I와 숫자 1과 너무 유사
  • 대문자 I(I) 없음 -- 소문자 l과 숫자 1과 너무 유사

Base58Check Bitcoin 주소는 다음과 같이 보입니다: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

형식에는 시작 부분에 버전 바이트와 끝 부분에 4바이트 체크섬이 포함됩니다. 이 체크섬은 한 문자를 실수로 잘못 입력하면 잘못된 주소로 자금이 전송되는 대신 거의 확실히 유효성 검사에 실패한다는 것을 의미합니다.

여러 다른 블록체인이 Base58Check를 채택했습니다:

  • Litecoin 레거시 주소는 L 또는 M으로 시작
  • Dogecoin 주소는 D로 시작

SafeSeed의 Bitcoin Address Validator를 사용하여 트랜잭션 전에 Base58Check 주소의 체크섬이 유효한지 확인할 수 있습니다.

Bech32: SegWit bc1 주소

2017년 Bitcoin은 SegWit(Segregated Witness)를 도입했고, 새로운 주소 형식이 필요했습니다. Base58Check를 확장하는 대신 개발자들은 BIP173에 정의된 Bech32를 만들었습니다. Bech32 주소는 Bitcoin 메인넷에서 bc1으로 시작하기 때문에 즉시 알아볼 수 있습니다.

Bech32 주소는 다음과 같이 보입니다: bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4

Bech32는 Base58Check에 비해 여러 가지 의도적인 개선을 했습니다:

소문자만 사용

Bech32는 소문자와 숫자만 사용합니다. 이것은 주소가 구두로 전달되거나 혼합 대소문자 글꼴로 인쇄되거나 QR 코드로 인코딩될 때 대소문자 구분 문제를 제거합니다.

우수한 오류 감지

Base58Check는 오류를 감지하지만 오류 위치를 알려줄 수 없습니다. Bech32는 단일 문자 오류와 대부분의 다중 문자 치환 오류를 감지할 수 있는 BCH 코드를 사용합니다. 최대 2개 오류의 위치를 식별하여 일부 지갑 인터페이스에서 수정 가능합니다.

더 작은 QR 코드

Bech32는 제한된 문자 세트(32자)를 사용하므로 이 주소를 나타내는 QR 코드는 측정 가능하게 더 작고 스캔하기 쉽습니다.

Bech32m

Bech32m(BIP350)이라는 업데이트된 버전은 마지막 문자와 관련된 원래 Bech32 형식의 사소한 약점을 수정했습니다. 최신 SegWit v1 주소(Taproot, bc1p로 시작)는 Bech32m을 사용합니다. SafeSeed의 Bitcoin Address Generator로 Bitcoin 주소를 생성하면 기본 출력은 최신 Bech32/Bech32m 형식을 사용합니다.

0x: EVM 체인 주소

Ethereum은 완전히 다른 접근 방식을 취했습니다. Ethereum 주소는 0x 접두사가 붙은 40개의 16진수 문자로 표시되는 20바이트 값입니다:

0x742d35Cc6634C0532925a3b844Bc9e7595f2bD08

EIP-55 혼합 대소문자 체크섬

원래 Ethereum 주소 형식에는 내장 체크섬이 없었습니다. EIP-55는 16진수 문자의 대문자 변환을 체크섬으로 사용하여 이를 해결했습니다. 주소는 Keccak-256으로 해시되고, 해시의 해당 니블이 8을 초과하면 각 문자가 대문자로 변환됩니다.

겉보기에 무작위인 대문자 변환은 실제로는 체크섬입니다. 한 문자를 변경하면 대문자 패턴이 일치하지 않게 되어 올바르게 구현된 지갑이 이를 거부합니다.

EVM 체인 전체에서 공유

0x 형식의 가장 중요한 측면 중 하나는 모든 EVM 호환 체인에서 동일하다는 것입니다:

같은 개인 키가 이 모든 체인에서 동일한 주소를 생성합니다. EVM 주소 보안에 대한 더 자세한 내용은 EVM 주소 보안 가이드를 참조하세요.

SafeSeed의 Ethereum Address Validator로 EIP-55 체크섬을 포함한 모든 EVM 주소를 검증할 수 있습니다.

Solana, XRP, TRON의 Base58

여러 현대 블록체인이 Base58 인코딩을 사용하지만 Check 접미사 없이 자체 체크섬이나 검증 메커니즘을 구현합니다.

Solana

Solana 주소는 Base58로 인코딩된 Ed25519 공개 키로, 일반적으로 32~44자 길이입니다. Solana는 Bitcoin과 같은 Base58 알파벳을 사용하지만 버전 바이트나 SHA-256 체크섬을 추가하지 않습니다. 검증은 Ed25519 곡선 위의 유효한 점인지에 따릅니다. SafeSeed의 Solana Address Validator가 이 검증을 처리합니다.

XRP

XRP는 자체 버전 접두사가 있는 Base58Check 인코딩을 사용하여 r로 시작하는 주소를 생성합니다.

TRON

TRON 주소는 0x41 버전 바이트가 있는 Base58Check를 사용하여 T로 시작하는 주소를 생성합니다.

체크섬: 안전망

체크섬은 주소 페이로드에서 파생된 작은 데이터 조각으로, 소프트웨어가 오류를 감지할 수 있게 합니다. 한 문자만 변경되어도 지문이 일치하지 않습니다.

주요 형식 간 체크섬 메커니즘 비교:

형식 체크섬 방법 감지 능력
Base58Check 이중 SHA-256 (4바이트) 사실상 모든 오류 감지
Bech32 BCH 코드 (6문자) 모든 단일 문자 오류 감지; 최대 2개 오류 위치 파악
EIP-55 (0x) Keccak-256 대문자 변환 단일 문자 변경에 ~99.98% 오류 감지
Solana Base58 Ed25519 곡선 검증 유효하지 않은 곡선 점 거부

체크섬은 모든 유형의 실수를 보호하지는 않습니다. 멀웨어가 클립보드 전체를 다른 유효한 주소로 교체하면(클립보드 하이재킹 공격) 체크섬은 여전히 통과합니다. 체크섬은 우발적인 오타와 전송 오류를 방지하며, 의도적인 사기로부터 보호하지는 않습니다.

오타 이외의 위협에 대한 더 넓은 시각은 시드 구문을 노리는 일반적인 암호화폐 사기를 참조하세요.

전송 전 주소 검증

모든 암호화폐 트랜잭션은 주소 검증으로 시작해야 합니다. 적절한 검증에는 다음이 포함됩니다:

1. 형식 확인

주소가 사용 중인 블록체인의 예상 형식과 일치하는지 확인합니다. bc1 주소는 Bitcoin에서만 사용해야 합니다. 0x 주소는 여러 EVM 체인에서 유효할 수 있으므로 사용할 네트워크를 다시 확인합니다.

2. 체크섬 확인

내장 체크섬을 확인하는 검증기를 통해 주소를 실행합니다. SafeSeed는 가장 일반적인 체인에 대한 무료 검증기를 제공합니다:

모든 검증은 클라이언트 측 코드를 사용하여 브라우저에서 완전히 실행됩니다. 주소 데이터가 서버로 전송되지 않습니다.

3. 시각적 확인

자동 검증 후에도 주소의 처음과 마지막 여러 문자를 시각적으로 확인합니다. 클립보드 하이재킹 멀웨어는 때때로 처음 몇 문자가 같은 공격자 통제 주소로 교체합니다.

4. 소규모 테스트 트랜잭션

대규모 이체의 경우 먼저 소액을 보내고 수신을 확인한 후 전체 잔액을 보냅니다. 소규모 트랜잭션 수수료는 확실성을 위한 작은 보험료입니다.

5. 주소록 기능 활용

대부분의 지갑은 검증된 주소를 저장할 수 있습니다. 주소를 확인한 후 저장하여 다시 입력할 필요를 피합니다(새로운 오류 기회를 제거).

검증 과정에 대한 자세한 설명은 암호화폐 주소 검증 방법을 참조하세요.

올바른 형식 선택

새 주소를 생성하는 경우 최신 형식이 거의 항상 선호됩니다:

  • Bitcoin: 더 낮은 수수료와 더 나은 오류 감지를 위해 Bech32(bc1) 주소를 사용합니다. 레거시 Base58Check 주소도 작동하지만 더 큰 트랜잭션 크기로 인해 수수료가 더 높습니다.
  • Ethereum 및 EVM 체인: 항상 EIP-55 체크섬 주소를 사용합니다. 대부분의 현대 도구가 기본적으로 이를 생성합니다.
  • Solana: Base58가 유일한 옵션이며 잘 작동합니다.

SafeSeed로 주소를 생성할 때 도구는 각 블록체인에 가장 최신이고 안전한 형식을 기본으로 사용합니다. Bitcoin Seed Phrase Generator 또는 Ethereum Address Generator를 사용하든 파생된 주소는 해당 체인에 권장되는 인코딩을 사용합니다.

이러한 형식을 이해하면 암호화폐 주소의 신비함이 사라집니다. 주소들은 무작위 문자열이 아닙니다 -- 단순한 인적 오류로부터 자금을 보호하기 위해 내장된 안전 메커니즘을 갖춘 암호화 키의 세심하게 설계된 표현입니다.