Direcciones de Ergo
24 de julio de 2019

En el artículo de hoy, echaremos un vistazo más de cerca al formato de las direcciones de Ergo. Además de eso, vamos a explicar cómo funcionan específicamente y qué las hace preferibles a otros tipos de direcciones de blockchain.
Comencemos desde el principio.
En el momento en que instalas cualquier billetera de criptomonedas, automáticamente creas una dirección con ella. Hablando de manera muy general, puedes comparar una billetera con una cuenta bancaria tradicional y una dirección con el número de cuenta correspondiente.
Es precisamente una de estas direcciones alfanuméricas la que se necesita para enviar dinero de la persona A a la persona B, recibir dinero o retirar tus recompensas de minería.
Si quieres comenzar a usar la billetera de Ergo y profundizar en sus funciones, consulta el siguiente enlace.
Ahora, ¿qué son exactamente las direcciones?
Las direcciones son cadenas cortas que corresponden a ciertos scripts y se utilizan para proteger una caja (este post que el desarrollador principal kushti publicó en nuestro foro explica muy bien qué es una "caja").
A diferencia de una representación binaria (codificada en hex) de un script, una dirección de Ergo utiliza una codificación Base58 y, por lo tanto, tiene algunas características muy útiles que la representación binaria no ofrece:
- La integridad de una dirección se puede verificar fácilmente a través de un checksum integrado (que es un "dato de tamaño pequeño derivado de un bloque de datos digitales con el propósito de detectar errores que pueden haberse introducido durante su transmisión o almacenamiento", según Wikipedia).
- Un prefijo de la dirección te muestra la red y el tipo de dirección. En particular, el prefijo de la red evita que envíes tokens de mainnet a la dirección de testnet por error.
- La dirección utiliza una codificación (es decir, Base58 como se mencionó) que evita caracteres que se parecen y es amigable para hacer doble clic y también para saltos de línea en correos electrónicos.
- Una dirección codifica el tipo de red, el tipo de dirección, el checksum y suficiente información para corresponder con scripts particulares.
Veamos el byte de prefijo que contiene información sobre los tipos de red y dirección:
Los tipos de red posibles son:
- Mainnet - 0x00
- Testnet - 0x10
Los tipos de dirección son (semántica descrita a continuación):
- 0x01 - Dirección Pay-to-PublicKey(P2PK)
- 0x02 - Pay-to-Script-Hash(P2SH)
- 0x03 - Pay-to-Script(P2S)
Para un tipo de dirección, formamos los bytes de contenido de la siguiente manera:
- P2PK - clave pública serializada (comprimida)
- P2SH - primeros 192 bits del hash Blake2b256 de los bytes de script serializados
- P2S - script serializado (¡aquí es donde van las recompensas de minería!)
Por ejemplo, enviar 10 Ergs a una dirección P2PK generalmente significa que una transacción correspondiente
contendrá una caja en la que 10 Ergs están bloqueados por una clave pública codificada en la dirección P2PK. De manera similar,
en el caso de una dirección P2S, la caja estará bloqueada por un script codificado en la dirección. En el caso más complicado de un
script P2SH, la caja estará protegida por un script predefinido especial que toma los primeros 192 bits del valor hash Blake2b256
para un script que debería ser mostrado por una entrada que gaste la caja.
Aquí hay un ejemplo de cómo se verán las direcciones particulares en la testnet:
- 3 - P2PK (3WvsT2Gm4EpsM9Pg18PdY6XyhNNMqXDsvJTbbf6ihLvAmSb7u5RN)
- ? - P2SH (rbcrmKEYduUvADj9Ts3dSVSG27h54pgrq5fPuwB)
- ? - P2S (Ms7smJwLGbUAjuWQ)
Y aquí es cómo se ven en nuestra mainnet:
- 9 - P2PK (9fRAWhdxEsTcdb8PhGNrZfwqa65zfkuYHAMmkQLcic1gdLSV5vA)
- ? - P2SH (8UApt8czfFVuTgQmMwtsRBZ4nfWquNiSwCWUjMg)
- ? - P2S (4MQyML64GnzMxZgm, BxKBaHkvrTvLZrDcZjcsxsF7aSsrN73ijeFZXtbj4CXZHHcvBtqSxQ)
En resumen:
- Byte de prefijo = tipo de red + tipo de dirección (por ejemplo, el script P2S en la testnet comienza con 0x13 antes de Base58)
- checksum = leftmost_4_bytes (blake2b256 (byte de prefijo || bytes de contenido))
- dirección = byte de prefijo || bytes de contenido || checksum
Si algo de esto despertó tu interés, eres muy bienvenido a unirte a nuestra comunidad y hacer más preguntas en nuestro canal de telegram y/o foro.
¡Nos vemos allí!
Share post
13 de agosto de 2025
12 de agosto de 2025
9 de julio de 2025
12 de mayo de 2025

9 de febrero de 2022

8 de febrero de 2022

5 de febrero de 2022

1 de febrero de 2022

27 de enero de 2022

20 de enero de 2022

18 de enero de 2022

6 de enero de 2022

4 de enero de 2022

30 de diciembre de 2021

28 de diciembre de 2021

23 de diciembre de 2021








