Nombres y direcciones

Las cadenas de bloques utilizan direcciones para identificar a actores externos mediante un hash de una clave pública. Las direcciones en cadena se representan mediante un formato binario conciso e inmutable, normalmente de 20 o 32 bytes de longitud, a menudo derivado de una función hash. Sin embargo, existen varias representaciones legibles por humanos de estas direcciones binarias que se muestran a los clientes.

A continuación se muestran ejemplos de dos formatos de dirección diferentes:

  • Bech32: bc1qc7slrfxkknqcq2jevvvkdgvrt8080852dfjewde450xdlk4ugp7szw5tk9

  • Checksummed Hex: 0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed

Addr

Las direcciones en el SDK de Cosmos son cadenas de 20 caracteres de longitud e incluyen comprobaciones de seguridad, como prefijo de cadena en Bech32, sumas de comprobación en Bech32 y hexadecimal con suma de comprobación (EIP55). Dado que CosmWasm es una extensión del SDK de Cosmos, se adhiere a las mismas reglas de direcciones; los monederos, contratos inteligentes y módulos tienen cada uno una dirección identificadora con un prefijo específico. Por ejemplo, "archway1..." se utiliza para Archway, mientras que "wasm1..." se utiliza para algunas cadenas habilitadas para CosmWasm.

Al proporcionar una dirección a los contratos inteligentes, puedes enviarla como una cadena y posteriormente validar la entrada como un Addr. El Addr sirve como una envoltura para una cadena simple, ofreciendo valiosas funciones de utilidad como la validación de direcciones a través de la validación de cadenas.

También existe una representación más infrecuente de una dirección, denominada Dirección Canónica, que es la representación binaria utilizada internamente en la cadena de bloques. Esta representación puede utilizarse para todas las búsquedas de almacenamiento, y su formato puede convertirse en múltiples tipos de direcciones de cadena.

Para entender mejor las direcciones canónicas, podemos pensar en la transición de Bitcoin de la codificación Base58 a Bech32, junto con SegWit: una vez que cambia la codificación, el message.signer perdería el acceso a su propia cuenta. Las direcciones canónicas nos proporcionan un identificador estable con el que trabajar.

Nombres

Podemos considerar los nombres como una forma de dirección, aunque una que requiere una consulta de contrato (con acceso al almacenamiento) para resolverse. No puede resolverse simplemente llamando a una función pura.

Last updated