Cosmos 주소 변환기란?
Cosmos 주소 변환기는 Cosmos SDK 체인의 bech32 주소를 원시 계정 바이트(지갑은 20바이트, 모듈 및 컨트랙트 계정은 32바이트)로 디코딩한 뒤, 그 바이트를 다른 사람이 읽을 수 있는 접두사로 다시 인코딩합니다. 모든 Cosmos SDK 체인은 Cosmos SDK 계정 문서에 설명된 같은 인코딩을 사용합니다. 접두사, 구분자 1, bech32의 32문자 알파벳으로 된 데이터, 6자 체크섬으로 구성됩니다. 체인마다 접두사만 다르므로 바이트가 같은 cosmos1…, osmo1…, juno1… 주소는 같은 키에 속합니다.
변환 방식
- 접두사를 포함한 전체 문자열에 대해 bech32 체크섬을 검증합니다. 이 도구는 SegWit 주소와 같은 polymod를 bech32 상수 1로 사용합니다(Cosmos는 bech32m을 사용하지 않습니다).
- 5비트 데이터 그룹을 패딩 없이 바이트로 되돌리고, 20바이트 또는 32바이트인지 확인합니다.
- 표의 각 접두사에 대해 바이트를 5비트 값으로 재그룹화하고 그 접두사로 새 체크섬을 계산합니다.
예시
주소 cosmos15c20sqakl4uqnp4y93uwe8rlwlnda5futtjxsl은 20바이트 0xa614f803b6fd780986a42c78ec9c7f77e6ded13c로 디코딩됩니다. 이 바이트를 Osmosis 접두사로 다시 인코딩하면 데이터 32자는 같고 6자 체크섬만 다른 osmo1… 주소가 나오는데, 접두사가 체크섬 입력의 일부이기 때문입니다. EIP-55 체크섬이 적용된 0x 형식은 EVM 호환 체인이 같은 바이트에 대해 표시할 주소입니다.
표에 포함된 접두사
| 접두사 | 체인 | 키 파생 | 접두사 | 체인 | 키 파생 |
|---|---|---|---|---|---|
| cosmos | Cosmos Hub | secp256k1 | celestia | Celestia | secp256k1 |
| osmo | Osmosis | secp256k1 | dydx | dYdX Chain | secp256k1 |
| juno | Juno | secp256k1 | noble | Noble | secp256k1 |
| stars | Stargaze | secp256k1 | neutron | Neutron | secp256k1 |
| akash | Akash | secp256k1 | stride | Stride | secp256k1 |
| kava | Kava | secp256k1 | evmos | Evmos | ethsecp256k1 |
| secret | Secret Network | secp256k1 | cre | Crescent | secp256k1 |
| axelar | Axelar | secp256k1 | regen | Regen | secp256k1 |
| inj | Injective | ethsecp256k1 | terra | Terra | secp256k1 |
| sei | Sei | secp256k1 (EVM 주소는 온체인에서 연결) | kujira | Kujira | secp256k1 |
이 목록에 없는 접두사의 주소도 디코딩되어 표 맨 위에 자신의 접두사로 표시됩니다.
변환된 주소가 내 것인 경우와 아닌 경우
Keplr, Leap 같은 지갑은 니모닉에서 체인마다 하나의 키를 파생합니다. 표준 coin type 118과 secp256k1 파생을 공유하는 체인에서는 각 체인에서 파생된 주소가 다시 인코딩한 주소와 정확히 일치하며, 그래서 "다른 체인의 내 주소"로 보내는 IBC 전송이 작동합니다. coin type 60과 Ethereum 방식 키를 쓰는 체인(Injective, Evmos)은 다른 바이트를 파생하고, Sei는 바이트를 공유하는 대신 온체인 연결을 통해 별도의 EVM 주소를 sei1 계정에 연결합니다. 변환된 주소로 보내기 전에 해당 체인의 지갑에서 주소를 확인하세요.
일반적인 용도
- 지갑이 한 체인만 보여 줄 때 Cosmos Hub 주소로 내 Osmosis 또는 Celestia 입금 주소 찾기.
- MetaMask 0x 주소를 거래소 출금 폼이 요구하는
inj1…또는evmos1…형식으로 변환하기. - 계정 주소가 들어가야 할 자리에
valoper주소가 붙여넣어지지 않았는지 확인하기.
임의 접두사의 원시 bech32 문자열에는 bech32 인코더 / 디코더를, EIP-55 형식 검증에는 이더리움 체크섬 변환기를 사용하세요.