Buy Crypto
Markets
Spot
FuturesBTC
Earn
Event Center
More
0-Fee Fest
Hash Poseidon: ¿Qué es el hash Poseidon?Poseidon Hash es una función hash criptográfica diseñada para ser eficiente en sistemas de pruebas de conocimiento cero y otras aplicaciones blockchain que utilizan circuitos Hash Poseidon: ¿Qué es el hash Poseidon?Poseidon Hash es una función hash criptográfica diseñada para ser eficiente en sistemas de pruebas de conocimiento cero y otras aplicaciones blockchain que utilizan circuitos

Hash Poseidon

2026/10/13 16:46
#Advanced
Humanity
H$0.05752+4.16%
ELYSIA
EL$0.00154-1.53%
PX
PX$0.0109-4.38%
Cardano
ADA$0.2132+0.18%
ZKsync
ZK$0.012581-4.58%

¿Qué es el hash Poseidon?

Poseidon Hash es una función hash criptográfica diseñada para ser eficiente en sistemas de pruebas de conocimiento cero y otras aplicaciones blockchain que utilizan circuitos aritméticos sobre cuerpos finitos.

En el ámbito cripto, Poseidon es conocido sobre todo como un hash compatible con ZK, ya que puede calcularse con menos restricciones de circuito que muchas funciones hash tradicionales cuando se utiliza en SNARK, STARK, Bulletproofs y sistemas de prueba relacionados.

Una función hash criptográfica recibe datos de entrada y genera una salida de tamaño fijo que debería ser difícil de invertir, de hacer colisionar y de predecir sin calcular correctamente la función.

Poseidon se diferencia de las funciones hash de propósito general, como SHA-256 o SHA-3, porque se basa en operaciones aritméticas más baratas de demostrar en circuitos de conocimiento cero.

El artículo sobre Poseidon presentado en USENIX Security 2021 explica que Poseidon funciona de forma nativa con elementos de cuerpos finitos y que, en los contextos estudiados, puede utilizar muchas menos restricciones por bit de mensaje que Pedersen Hash.

Poseidon se utiliza habitualmente en árboles de Merkle, compromisos, nullifiers, actualizaciones de estado privado, estructuras de datos compatibles con pruebas y aplicaciones blockchain en las que el cálculo del hash debe realizarse dentro de un circuito de prueba.

Poseidon Hash no es un token, wallet, mecanismo de consenso, producto de exchange ni algoritmo de minería.

La forma más sencilla de entender Poseidon Hash es que se trata de una función hash diseñada para el entorno matemático que utilizan las pruebas de conocimiento cero, en lugar de para el hashing convencional realizado únicamente por la CPU.

Por qué importa Poseidon Hash en el sector cripto

Poseidon Hash importa porque muchos sistemas cripto necesitan demostrar que unos datos se han procesado correctamente mediante hashing sin revelar los datos privados.

Las pruebas de conocimiento cero son útiles en blockchain porque permiten demostrar hechos sobre saldos, identidades, transacciones, pertenencia o cálculos sin exponer públicamente todos los detalles.

Sin embargo, cada operación dentro de una prueba de conocimiento cero tiene un coste.

Si una función hash es costosa dentro de un circuito, la prueba puede volverse más lenta, grande, costosa o poco práctica para los usuarios.

Las funciones hash tradicionales, como SHA-256 y Keccak, gozan de una gran confianza y se utilizan ampliamente, pero dependen en gran medida de operaciones bit a bit que pueden ser costosas de representar en muchos sistemas de pruebas aritméticas.

Poseidon se creó para resolver este problema mediante operaciones que se adaptan de forma natural a los cuerpos finitos, como sumas, multiplicaciones, S-boxes de tipo exponencial y mezcla de matrices.

Por eso, Poseidon resulta útil para transacciones que preservan la privacidad, ZK rollups, pruebas de identidad, computación verificable, contratos inteligentes privados y sistemas de escalado basados en pruebas.

Para los desarrolladores cripto, Poseidon puede reducir el coste de generación de pruebas cuando el hashing representa una parte importante del circuito.

Para los usuarios, esto puede contribuir a que las aplicaciones de privacidad y escalado sean más rápidas, baratas y prácticas.

Cómo funciona Poseidon Hash

Poseidon suele describirse como una función hash basada en una construcción sponge formada por una permutación sobre un cuerpo primo.

Una construcción sponge absorbe los datos de entrada en un estado interno y después extrae una salida hash.

El estado interno está formado por elementos de un cuerpo, no por bytes ordinarios.

Los elementos de un cuerpo son números de un cuerpo matemático finito, el mismo tipo de entorno que utilizan muchos circuitos de pruebas ZK.

Poseidon aplica una secuencia de rondas a este estado interno.

Por lo general, cada ronda combina constantes de ronda, operaciones no lineales de S-box y mezcla lineal mediante una matriz MDS o una estructura de matrices optimizada.

La especificación de Poseidon de Filecoin describe parámetros como el cuerpo primo, el nivel de seguridad, el tamaño del estado, el exponente de la S-box, las rondas completas y parciales, las constantes de ronda y la matriz MDS.

En las rondas completas, la S-box se aplica a todos los elementos del estado.

En las rondas parciales, la S-box se aplica solo a una parte del estado, lo que reduce el coste con el objetivo de mantener la seguridad.

Tras suficientes rondas, se utiliza el estado final para generar la salida hash.

¿Qué hace que Poseidon sea compatible con ZK?

Poseidon es compatible con ZK porque sus operaciones se expresan de forma económica en circuitos aritméticos.

Muchos sistemas de pruebas de conocimiento cero representan los cálculos mediante restricciones sobre un cuerpo finito.

Las sumas y multiplicaciones sencillas en ese cuerpo suelen ser mucho menos costosas que las rotaciones a nivel de bits, los XOR bit a bit y la lógica booleana.

SHA-256 es excelente para muchos usos de blockchain, pero no se diseñó para minimizar las restricciones de los circuitos aritméticos.

Poseidon se diseñó desde el principio teniendo en cuenta esas restricciones.

Esto significa que, en muchos sistemas ZK, un árbol de Merkle basado en Poseidon puede ser mucho menos costoso de demostrar que otro construido con una función hash menos compatible con los circuitos.

Por tanto, Poseidon puede reducir el tiempo de generación de pruebas, el uso de memoria y, en ocasiones, el coste de verificación on-chain, según el sistema de pruebas y la implementación.

Un análisis de referencia de 2024 sobre funciones hash compatibles con ZK y sistemas de pruebas SNARK observó que Poseidon y Poseidon2 ofrecían buenos resultados en tiempo de ejecución y consumo de memoria en los circuitos de árboles de Merkle probados.

El valor práctico de Poseidon depende del cuerpo, el lenguaje del circuito, el conjunto de parámetros, el sistema de pruebas, la calidad de la implementación y las hipótesis de seguridad.

Su potencia radica en que se adapta al entorno de pruebas ZK, en lugar de funcionar en contra de él.

Poseidon Hash y cuerpos finitos

Un cuerpo finito es un sistema matemático con un número fijo de elementos en el que la suma, la resta, la multiplicación y la división siguen unas reglas controladas.

Muchos sistemas de pruebas ZK realizan cálculos sobre cuerpos finitos porque sus ecuaciones de prueba se basan en la aritmética de cuerpos.

Poseidon recibe elementos de un cuerpo como entrada y genera un elemento de un cuerpo como salida.

Esto difiere de una función hash típica orientada a bytes, que trata los datos como cadenas binarias.

La documentación de Poseidon para Circom explica que la construcción sponge de Poseidon recibe entradas de un cuerpo primo y genera un único elemento de salida del mismo cuerpo.

Para los desarrolladores, esto significa que, a menudo, los datos deben codificarse cuidadosamente antes de aplicarles Poseidon.

Puede que sea necesario convertir una dirección de wallet, un ID de token, una cantidad, un nonce o un mensaje en uno o varios elementos válidos del cuerpo.

Si dos sistemas codifican los mismos datos de forma distinta, pueden generar hashes Poseidon diferentes aunque utilicen el mismo algoritmo de alto nivel.

Por eso, la elección del cuerpo, la codificación, la separación de dominios y la selección de parámetros son aspectos esenciales en los sistemas cripto basados en Poseidon.

Poseidon Hash y árboles de Merkle

Los árboles de Merkle son uno de los usos más habituales de Poseidon Hash en el sector cripto.

Un árbol de Merkle combina múltiples datos en un hash raíz que posteriormente permite demostrar la pertenencia de forma eficiente.

En una aplicación ZK, un usuario puede demostrar que una nota, compromiso de identidad, registro de saldo o entrada de una lista de permitidos está incluido en un árbol de Merkle sin revelar todas sus entradas.

Si cada nivel del árbol utiliza una función hash tradicional costosa dentro de los circuitos, la prueba se encarece.

Si todos los niveles utilizan Poseidon, a menudo se puede generar la misma prueba de pertenencia a menor coste.

Por eso, Poseidon se utiliza con frecuencia en sistemas de transacciones privadas, sistemas de identidad, conjuntos de nullifiers, árboles de estado y estructuras de prueba relacionadas con rollups.

El hash de un árbol de Merkle debe ser resistente a colisiones, ya que, en la práctica, dos hojas o rutas distintas no deberían generar la misma raíz en ningún ataque.

Por tanto, la seguridad de Poseidon afecta directamente a la protección de los compromisos, las pruebas de pertenencia y las afirmaciones sobre el estado de los activos.

Los desarrolladores no deben cambiar a la ligera los parámetros de Poseidon dentro de árboles de Merkle, porque todos los participantes deben utilizar exactamente la misma función hash para verificar la misma raíz.

Poseidon Hash y compromisos

Un compromiso permite a un usuario fijar un valor sin revelarlo de inmediato.

En el sector cripto, los compromisos se utilizan en transferencias privadas, sistemas de identidad, ofertas selladas, votaciones, esquemas de nullifiers y estados privados de contratos inteligentes.

Poseidon puede calcular compromisos dentro de circuitos ZK, ya que el usuario puede demostrar que conoce datos privados que generan un compromiso público al aplicarles hashing.

Por ejemplo, un usuario puede mantener en privado un valor secreto y una sal, y publicar únicamente el resultado del hash Poseidon.

La documentación de Mina sobre entradas privadas y funciones hash muestra cómo se utiliza Poseidon para aplicar hashing a entradas de un cuerpo y mantener privadas las entradas secretas en un ejemplo de zkApp.

Este patrón es habitual porque una prueba puede demostrar que el usuario conoce los datos ocultos sin revelarlos on-chain.

Sin embargo, la seguridad de los compromisos depende de la entropía de las entradas, el uso de sales, la separación de dominios y la implementación.

Si el valor comprometido es fácil de adivinar, un atacante puede aplicar hashing a valores probables y comparar los resultados.

Las sales aleatorias y una codificación de entradas bien diseñada ayudan a reducir este riesgo.

Poseidon Hash y nullifiers

Un nullifier es un valor que se utiliza para impedir el doble gasto o el uso repetido sin revelar la nota privada o identidad original.

En los sistemas cripto centrados en la privacidad, un usuario puede demostrar que posee una nota privada válida y revelar un nullifier para indicar que esa nota ya se ha gastado.

Poseidon puede utilizarse para derivar nullifiers dentro de un circuito porque permite aplicar hashing de forma eficiente a los datos secretos de una nota.

El sistema público comprueba que el nullifier no se haya utilizado antes.

La prueba privada demuestra que el nullifier se ha derivado correctamente a partir de un secreto válido.

Esto permite bloquear el doble gasto y preservar la privacidad del compromiso original.

Si el hashing de los nullifiers es débil, un sistema de privacidad puede volverse vulnerable al doble uso, a ataques de vinculabilidad o a falsificaciones.

Si la codificación de los nullifiers es inconsistente, los usuarios pueden generar pruebas no válidas o actualizaciones de estado incompatibles.

Poseidon resulta útil en este ámbito porque la lógica de los nullifiers y compromisos puede requerir muchas operaciones hash repetidas dentro de los circuitos de prueba.

Poseidon Hash y ZK rollups

Los ZK rollups utilizan pruebas de conocimiento cero o de validez para demostrar que los lotes de transacciones ejecutados off-chain se han procesado correctamente.

Los rollups suelen necesitar funciones hash para árboles de estado y de cuentas, compromisos de transacciones, nullifiers, agregación de pruebas y compromisos de datos.

Poseidon puede reducir el coste de estas operaciones intensivas en hashing dentro del sistema de pruebas.

La EIP-5988 de Ethereum propuso un precompilado de Poseidon para mejorar la interoperabilidad entre la EVM y los ZK rollups o rollups de validez.

En la página de la EIP disponible actualmente, la EIP-5988 figura como Stagnant y no se ha convertido en un precompilado activo de la mainnet de Ethereum.

Esto importa porque, si la capa base no admite Poseidon de forma nativa, es posible que los contratos tengan que verificarlo mediante lógica personalizada más costosa o utilizar otras vías de verificación de pruebas.

Un precompilado nativo podría abaratar algunos patrones de interoperabilidad ZK, pero también requeriría una selección cuidadosa de parámetros y una revisión de seguridad.

Por tanto, el papel de Poseidon en los rollups es tanto técnico como relacionado con el ecosistema.

Poseidon Hash frente a SHA-256

Poseidon y SHA-256 son funciones hash criptográficas, pero están optimizadas para entornos distintos.

SHA-256 se utiliza ampliamente en Bitcoin, firmas digitales, integridad de archivos y muchos sistemas de seguridad de propósito general.

SHA-256 es una función madura, ampliamente estudiada y eficiente en hardware convencional.

Poseidon es más reciente y está optimizado para la aritmética de cuerpos finitos dentro de sistemas de pruebas ZK.

Cuando una blockchain necesita un hash de propósito general fuera de un circuito de prueba, SHA-256 o SHA-3 pueden ser opciones más conocidas.

Cuando un circuito ZK necesita demostrar muchas operaciones hash, Poseidon puede ser mucho menos costoso.

Esto no significa que Poseidon sea automáticamente mejor que SHA-256 para todos los usos.

Significa que Poseidon puede ser más adecuado para mejorar la eficiencia de los circuitos ZK si el sistema se ha diseñado en torno a sus parámetros e hipótesis de seguridad.

Un sistema cripto bien diseñado elige la función hash que mejor se adapta al modelo de amenazas, las necesidades de compatibilidad, los requisitos de rendimiento y las exigencias de madurez.

Poseidon Hash frente a Keccak y SHA-3

Keccak y SHA-3 son diseños de funciones hash basados en sponge que se utilizan en numerosas aplicaciones criptográficas.

La norma FIPS 202 del NIST especifica la familia SHA-3 y las funciones de salida extensible SHAKE basadas en Keccak.

Keccak es importante en el sector cripto porque varios sistemas blockchain utilizan hashing de tipo Keccak para direcciones, datos de transacciones, registros y operaciones de contratos inteligentes.

Poseidon también utiliza un enfoque similar a sponge, pero está construido sobre cuerpos finitos y se ha diseñado para sistemas de prueba, no para hashing general orientado a bytes.

Keccak y SHA-3 están más estandarizados y son más maduros para el uso criptográfico general.

Poseidon está más especializado en circuitos ZK y computación verificable.

La página del proyecto de funciones hash del NIST enumera algoritmos hash aprobados, como las familias SHA-2 y SHA-3; no debe describirse Poseidon como un sustituto general aprobado por el NIST para estas normas.

Los desarrolladores no deben utilizar Poseidon solo porque parezca moderno.

Deben utilizarlo cuando la aplicación realmente se beneficie de la eficiencia de los circuitos aritméticos y disponga de una implementación revisada.

Poseidon Hash frente a Pedersen Hash

Pedersen Hash se ha utilizado en varios sistemas de privacidad y ZK porque ofrece propiedades algebraicas útiles y puede ser eficiente en algunos contextos de curvas elípticas.

Poseidon se diseñó para ser más eficiente que Pedersen Hash en muchos casos de uso de circuitos aritméticos.

El artículo de USENIX sobre Poseidon informa de que, en los contextos estudiados, Poseidon puede utilizar muchas menos restricciones por bit de mensaje que Pedersen Hash.

Este es uno de los principales motivos por los que Poseidon se hizo popular en sistemas ZK que requieren muchas operaciones hash.

Sin embargo, Pedersen Hash y Poseidon tienen estructuras, hipótesis y requisitos de implementación distintos.

Un proyecto no debería sustituir una por otra sin comprobar la compatibilidad, las pruebas de seguridad, la elección de parámetros y el historial de auditoría.

Los sistemas antiguos pueden seguir utilizando Pedersen Hash porque cambiar una función hash puede romper los compromisos, las raíces de Merkle y la verificación de pruebas existentes.

Los sistemas más recientes pueden elegir Poseidon cuando la eficiencia de los circuitos es un objetivo fundamental del diseño.

La mejor opción depende de qué valore más el sistema: la madurez, la compatibilidad, el coste de los circuitos o la flexibilidad de actualización.

Poseidon Hash frente a MiMC y Rescue

MiMC, Rescue y Poseidon son ejemplos de funciones hash diseñadas para facilitar la aritmetización en sistemas de prueba.

MiMC utiliza una estructura sencilla y se ha empleado en investigaciones e implementaciones ZK.

Rescue también se diseñó para aplicar hashing orientado a la aritmetización.

Poseidon se popularizó porque ofrece un buen rendimiento en muchos contextos prácticos de circuitos y admite distintas configuraciones de cuerpos finitos.

El análisis de referencia de 2024 sobre hashes compatibles con ZK situó a Poseidon y Poseidon2 entre los que mejor rendimiento ofrecieron en la configuración y las fases de prueba analizadas.

Esto no significa que Poseidon siempre sea la mejor opción en todos los circuitos, sistemas de prueba, cuerpos o entornos de hardware.

El rendimiento puede variar en función de la aridad, el tamaño del cuerpo, las restricciones, el lenguaje de implementación, el compilador, el backend de pruebas y la cadena de destino.

Un equipo centrado en la seguridad debe comparar varias opciones en lugar de asumir que un hash compatible con ZK siempre es mejor.

Poseidon es importante porque se ha estudiado y utilizado ampliamente, no porque todas las alternativas hayan quedado obsoletas.

Poseidon Hash y Poseidon2

Poseidon2 es una versión posterior optimizada de Poseidon, diseñada para mejorar el rendimiento y mantener el mismo objetivo general de facilitar el hashing compatible con ZK.

El artículo sobre Poseidon2 lo presenta como una versión más rápida de la función hash Poseidon.

Los proyectos ZK actuales pueden evaluar Poseidon2 cuando necesitan reducir el coste de generación de pruebas, acelerar el hashing de árboles de Merkle o mejorar la eficiencia en stacks de pruebas más recientes.

Poseidon2 no vuelve obsoleta cualquier implementación existente de Poseidon.

Los sistemas existentes pueden depender de los parámetros del Poseidon original para mantener la compatibilidad con antiguas raíces de Merkle, pruebas, contratos, wallets o compromisos de estado.

Pasar de Poseidon a Poseidon2 es una migración de protocolo, no un simple cambio de implementación de software.

En los nuevos diseños, puede ser conveniente estudiar Poseidon2 junto con el Poseidon original y otros hashes compatibles con ZK.

En los diseños existentes, la compatibilidad y el historial de auditoría pueden importar más que la velocidad bruta.

Un protocolo cripto debe documentar claramente si utiliza Poseidon, Poseidon2 u otra variante, ya que unos nombres parecidos pueden generar salidas distintas.

Parámetros de Poseidon Hash

Poseidon no es una única función universal que genere siempre la misma salida para todas las blockchains.

Es una familia de instancias hash definidas mediante parámetros.

Entre los parámetros importantes se encuentran el módulo del cuerpo primo, el nivel de seguridad, la anchura del estado, la tasa, la capacidad, el exponente de la S-box, el número de rondas completas y parciales, las constantes de ronda y la matriz MDS.

La página de la EIP-5988 enumera parámetros como el módulo del cuerpo primo, el nivel de seguridad, el exponente de la S-box, la tasa de entrada, el tamaño del estado, las rondas completas y parciales y la codificación de entrada.

Los distintos proyectos pueden elegir diferentes parámetros de Poseidon según el cuerpo, el sistema de pruebas, el nivel de seguridad y los requisitos de rendimiento.

Esta flexibilidad es útil, pero también puede entrañar riesgos.

Si dos sistemas afirman utilizar Poseidon, pero eligen parámetros distintos, una misma entrada puede generar hashes diferentes.

Si un sistema elige parámetros débiles, las hipótesis de seguridad pueden dejar de cumplirse.

Los desarrolladores deben utilizar conjuntos de parámetros revisados y vectores de prueba, en lugar de inventar parámetros sin el debido cuidado.

Separación de dominios en Poseidon Hash

La separación de dominios consiste en garantizar que la misma función hash no se reutilice accidentalmente para dos fines distintos de una forma que genere ambigüedad o riesgo de ataque.

Por ejemplo, un protocolo puede utilizar Poseidon para hojas de Merkle, nodos internos de Merkle, compromisos, nullifiers e identificadores de cuentas.

Si las entradas no se separan mediante etiquetas, prefijos, reglas de aridad o una codificación estructurada, distintos tipos de datos pueden generar el mismo formato de hash.

Esto puede dar lugar a un comportamiento confuso o inseguro.

La separación de dominios ayuda a garantizar que un hash utilizado para un propósito no se confunda con otro empleado para un fin distinto.

En los sistemas Poseidon, la separación de dominios puede consistir en añadir una etiqueta de dominio al estado, utilizar constantes distintas, emplear una aridad diferente o usar un formato de entrada estructurado.

El método exacto debe definirse en la especificación del protocolo.

Los desarrolladores no deben confiar en comentarios informales o suposiciones de la interfaz para separar dominios.

Cuando Poseidon protege activos, el formato de entrada debe ser preciso y verificable.

Propiedades de seguridad de Poseidon Hash

Poseidon pretende ofrecer propiedades habituales de las funciones hash criptográficas, como resistencia a colisiones, resistencia a la preimagen y resistencia a una segunda preimagen para los parámetros elegidos.

La resistencia a colisiones significa que debería ser computacionalmente inviable encontrar dos entradas distintas con la misma salida.

La resistencia a la preimagen significa que debería ser computacionalmente inviable encontrar una entrada que genere una salida determinada.

La resistencia a una segunda preimagen significa que debería ser computacionalmente inviable encontrar una segunda entrada que coincida con el hash de una entrada conocida.

La referencia del NIST sobre funciones hash describe estas propiedades como características esperadas de las funciones hash aprobadas, aunque Poseidon no figura como hash de propósito general aprobado por el NIST.

En Poseidon, estas propiedades dependen de la correcta selección de parámetros, una implementación adecuada, una codificación segura y la resistencia a los ataques algebraicos.

La iniciativa de criptoanálisis de Poseidon describe Poseidon y Poseidon2 como funciones hash para computación verificable y destaca que su seguridad sigue siendo objeto de investigación.

Esto es positivo, ya que los nuevos diseños criptográficos necesitan un examen público antes de que se confíe en ellos para sistemas de gran valor.

Los usuarios deben considerar Poseidon una función importante y ampliamente utilizada, aunque más reciente que las funciones hash tradicionales, algunas de las cuales llevan décadas en uso.

Riesgos del uso de Poseidon Hash

El primer riesgo es elegir parámetros incorrectos.

Un conjunto de parámetros débil o no estándar puede reducir el margen de seguridad o romper la compatibilidad con otros sistemas.

El segundo riesgo son los errores de implementación.

Un pequeño error en las constantes de ronda, la reducción del cuerpo, el relleno, la anchura del estado o la multiplicación de matrices puede generar hashes incorrectos y pruebas no válidas.

El tercer riesgo es la ambigüedad de codificación.

Distintas formas de empaquetar bytes en elementos del cuerpo pueden generar hashes diferentes o colisiones inseguras en la capa de aplicación.

El cuarto riesgo es una separación de dominios insuficiente.

Los hashes de compromisos, nodos de Merkle y nullifiers no deben mezclarse sin etiquetas o estructuras claras.

El quinto riesgo es utilizar Poseidon en exceso fuera del entorno para el que se diseñó.

Poseidon destaca como función hash compatible con pruebas para circuitos de cuerpos finitos, no como sustituto universal de todas las funciones hash tradicionales.

El sexto riesgo es el de madurez, ya que Poseidon es más reciente que SHA-2, SHA-3 y Keccak.

Poseidon Hash en contratos inteligentes

Los contratos inteligentes pueden interactuar con Poseidon de varias maneras.

Un contrato puede verificar una prueba en cuyo circuito off-chain se haya utilizado Poseidon.

Un contrato puede almacenar raíces de Merkle basadas en Poseidon y comprobar resultados de pruebas que dependan de dichas raíces.

Un contrato puede llamar directamente a una implementación de Poseidon si la plataforma ofrece una opción lo bastante económica.

En las cadenas basadas en EVM, calcular Poseidon directamente en un contrato puede ser costoso si no hay un precompilado nativo o soporte de opcodes optimizados.

Por eso, la EIP-5988 propuso un precompilado de Poseidon para Ethereum, aunque actualmente la página de la propuesta aparece marcada como Stagnant.

Sin un recurso nativo, los desarrolladores suelen mantener el cálculo de Poseidon dentro del circuito ZK y verificar la prueba on-chain, en lugar de volver a calcular on-chain cada hash.

Algunos sistemas que no utilizan EVM o están diseñados específicamente para ZK ofrecen un soporte más directo para el hashing basado en cuerpos.

Antes de decidir dónde debe ejecutarse Poseidon, los desarrolladores deben evaluar el gas, el coste de las pruebas y de la verificación, y las hipótesis de seguridad.

La arquitectura más barata no siempre es la más segura.

Poseidon Hash en wallets y aplicaciones para usuarios

Las wallets y las aplicaciones para usuarios pueden utilizar Poseidon de forma indirecta, aunque los usuarios nunca vean la palabra Poseidon.

Una wallet de privacidad puede utilizar Poseidon para crear compromisos o nullifiers.

Una aplicación de identidad ZK puede utilizar Poseidon para aplicar hashing a atributos privados y crear un compromiso compatible con pruebas.

Un juego o una aplicación social que utilice pruebas ZK puede emplear Poseidon para crear compromisos de movimientos, puntuaciones, credenciales o permisos privados.

Es posible que un usuario solo vea una solicitud de transacción, mientras que la aplicación crea los hashes Poseidon en segundo plano.

Esto plantea un reto de experiencia de usuario, ya que los usuarios no pueden comprobar fácilmente si las entradas del hash son correctas.

Siempre que sea posible, las wallets deben mostrar claramente el significado de la transacción en lugar de elementos de un cuerpo sin procesar.

Los desarrolladores deben evitar pedir a los usuarios que confíen en hashes sin explicación al firmar transacciones que mueven activos.

Poseidon puede proteger la privacidad, pero un diseño deficiente de la wallet puede seguir exponiendo a los usuarios al phishing o a aprobaciones maliciosas.

Poseidon Hash e interoperabilidad

La interoperabilidad es difícil porque existen muchos conjuntos posibles de parámetros de Poseidon.

Dos sistemas pueden admitir Poseidon y seguir siendo incompatibles si utilizan cuerpos, anchuras de estado, números de rondas, matrices MDS, reglas de relleno o etiquetas de dominio distintas.

Esto importa en bridges, rollups, wallets, clientes ligeros, agregadores de pruebas y sistemas de identidad entre cadenas.

Si una cadena verifica una raíz Poseidon generada por otra, ambas deben utilizar exactamente la misma instancia hash.

Si una wallet genera un compromiso para un protocolo, debe emplear la misma codificación que el verificador.

Si un circuito de prueba y un contrato inteligente discrepan en un solo parámetro, la verificación puede fallar o volverse insegura.

La interoperabilidad requiere especificaciones formales, vectores de prueba, bibliotecas auditadas y nombres de parámetros versionados.

Los proyectos deben evitar afirmar que son «compatibles con Poseidon» sin especificar a qué instancia de Poseidon se refieren.

En el sector cripto, la precisión importa porque una diferencia de un solo bit puede separar una prueba válida de una no válida.

Poseidon Hash y auditorías

Auditar un sistema basado en Poseidon requiere una revisión tanto criptográfica como de la aplicación.

El auditor debe comprobar que el proyecto utiliza un conjunto de parámetros de Poseidon conocido y revisado.

Debe comprobar que los resultados de la implementación coinciden con vectores de prueba de confianza.

Debe comprobar que la codificación de entrada no es ambigua y no puede confundirse entre distintos dominios.

Debe comprobar que los elementos del cuerpo se someten a comprobaciones de rango cuando sea necesario.

Debe comprobar que el circuito y el código off-chain utilizan la misma instancia de hash.

Debe comprobar que los compromisos, nullifiers y nodos del árbol de Merkle utilizan una separación de dominios segura.

Debe comprobar que las actualizaciones no cambian silenciosamente la función hash ni rompen el estado anterior.

En los sistemas de gran valor, es importante contar con una revisión criptográfica independiente, ya que una revisión genérica del código puede no detectar usos indebidos sutiles del hash.

Una implementación correcta de Poseidon solo es segura si se utiliza correctamente en el protocolo completo.

Ventajas de Poseidon Hash

La primera ventaja de Poseidon Hash es que reduce el coste de los circuitos en muchas aplicaciones de hashing ZK.

La segunda es su compatibilidad nativa con la aritmética de cuerpos finitos utilizada por muchos sistemas de pruebas.

La tercera es su utilidad para árboles de Merkle, compromisos, nullifiers y sistemas de estado privado.

La cuarta es su flexibilidad para distintos cuerpos y sistemas de pruebas.

La quinta es que puede hacer más prácticas las aplicaciones cripto que preservan la privacidad.

La sexta es que reduce la carga de generación de pruebas cuando las operaciones hash representan la mayor parte del circuito.

La séptima es que permite diseñar ZK rollups y pruebas de validez más eficientes.

La octava es que facilita comprometerse con entradas privadas sin revelarlas on-chain.

La novena es que permite a los desarrolladores crear estructuras de datos compatibles con pruebas que resultarían más costosas con hashes tradicionales.

La décima es que Poseidon ha recibido una atención considerable en el ecosistema ZK, con estudios, análisis comparativos y trabajo de implementación.

Limitaciones de Poseidon Hash

La primera limitación es que Poseidon es más reciente que funciones hash tradicionales como SHA-256, SHA-3 y Keccak.

La segunda es que Poseidon depende de los parámetros, por lo que distintas implementaciones pueden no coincidir.

La tercera es que Poseidon no constituye un sustituto general de SHA-2 o SHA-3 aprobado por el NIST.

La cuarta es que una codificación deficiente puede generar riesgos en la capa de aplicación aunque el diseño de la función hash sea sólido.

La quinta es que el soporte en contratos inteligentes puede ser costoso o no estar disponible sin un precompilado nativo.

La sexta es que la interoperabilidad del ecosistema puede ser difícil porque los distintos sistemas pueden elegir cuerpos y parámetros diferentes.

La séptima es que el criptoanálisis sigue activo, por lo que los equipos deben seguir las nuevas investigaciones y alertas de seguridad.

La octava es que las mejoras de eficiencia de Poseidon dependen del sistema de pruebas y del diseño del circuito.

La novena es que los desarrolladores sin experiencia pueden utilizar Poseidon de forma incorrecta al copiar constantes, cambiar la aridad u omitir los vectores de prueba.

La décima es que Poseidon no protege a los usuarios del phishing, los contratos maliciosos, las wallets comprometidas ni una tokenomics deficiente.

Buenas prácticas para desarrolladores

Utiliza bibliotecas de Poseidon auditadas en lugar de escribir una implementación nueva desde cero.

Elige un conjunto de parámetros revisado que se ajuste al cuerpo y al sistema de pruebas del protocolo.

Publica los parámetros exactos, las etiquetas de dominio, la aridad, las reglas de relleno y los vectores de prueba.

Aplica la separación de dominios a distintos usos, como hojas y nodos internos, compromisos, nullifiers y hashes de mensajes.

Asegúrate de que el código off-chain, el código del circuito y la lógica de verificación on-chain utilicen la misma instancia de Poseidon.

Comprueba el rango de las entradas cuando el circuito espere elementos de un cuerpo procedentes de datos codificados en bytes.

Compara Poseidon con otras opciones en el circuito real en lugar de basarte únicamente en afirmaciones generales.

Planifica cuidadosamente las migraciones, ya que cambiar la función hash puede invalidar raíces de Merkle y compromisos antiguos.

Supervisa las actualizaciones de criptoanálisis y las revisiones de seguridad, especialmente en protocolos de gran valor.

Documenta claramente si un sistema utiliza Poseidon, Poseidon2 u otro hash compatible con ZK.

Buenas prácticas para usuarios

Ten en cuenta que Poseidon suele ser una herramienta criptográfica que funciona en segundo plano, no algo con lo que los usuarios interactúen directamente.

Utiliza aplicaciones con auditorías claras, documentación pública y flujos de uso de wallets fiables.

No des por sentado que un proyecto es seguro solo porque afirma utilizar Poseidon.

Comprueba si el proyecto explica cómo protege los datos privados, los compromisos, los nullifiers y las raíces de Merkle.

Desconfía de aplicaciones desconocidas que soliciten firmas o aprobaciones y oculten la finalidad de la transacción.

Recuerda que una función hash sólida no corrige contratos inteligentes débiles ni prácticas de custodia inseguras.

No reutilices secretos débiles en sistemas de compromisos, ya que los atacantes podrían adivinar entradas con poca entropía.

Utiliza sales aleatorias cuando el diseño de la aplicación requiera compromisos con sal.

Sigue las indicaciones oficiales de la wallet y del protocolo al actualizar entre versiones de hash o sistemas de pruebas.

Considera los sistemas de privacidad como elementos críticos para la seguridad y evita utilizar herramientas experimentales con activos de gran valor, salvo que comprendas claramente los riesgos.

Malentendidos habituales sobre Poseidon Hash

Un malentendido consiste en creer que Poseidon es una versión más rápida de SHA-256 para cualquier finalidad.

Poseidon suele ser más rápido en el contexto de las restricciones de los circuitos ZK, pero no necesariamente funciona como hash general de CPU para todas las aplicaciones.

Otro malentendido es creer que todas las implementaciones de Poseidon son compatibles.

Los distintos cuerpos, constantes, anchuras de estado, rondas, codificaciones y etiquetas de dominio pueden generar salidas diferentes.

Otro malentendido es pensar que Poseidon garantiza por sí solo la privacidad de un sistema.

Poseidon puede ser compatible con herramientas de privacidad, pero esta también depende del diseño del circuito, la gestión de metadatos, el comportamiento de la wallet, los conjuntos de anonimato y la lógica del contrato inteligente.

Otro malentendido es pensar que Poseidon está libre de riesgo porque muchos sistemas ZK lo utilizan.

Poseidon es útil y se ha estudiado ampliamente, pero es más reciente que las funciones hash tradicionales y debe utilizarse con parámetros cuidadosamente elegidos y auditorías.

Otro malentendido es creer que los usuarios deben comparar manualmente los hashes Poseidon para verificar la seguridad.

La mayoría de los usuarios necesitan wallets bien diseñadas y protocolos auditados, no inspeccionar hashes sin procesar.

Preguntas frecuentes

¿Qué significa Poseidon Hash?

Poseidon Hash es una función hash criptográfica diseñada para ser eficiente en sistemas de pruebas de conocimiento cero y circuitos aritméticos de cuerpos finitos.

¿Por qué se dice que Poseidon es compatible con ZK?

Se dice que Poseidon es compatible con ZK porque utiliza operaciones aritméticas que, en muchos circuitos de pruebas de conocimiento cero, son más baratas de representar que las funciones hash tradicionales con muchas operaciones bit a bit.

¿Poseidon Hash es lo mismo que SHA-256?

No. SHA-256 es una función hash tradicional de propósito general, mientras que Poseidon está especializado en el hashing eficiente dentro de sistemas de pruebas ZK.

¿Se utiliza Poseidon Hash en árboles de Merkle?

Sí. Poseidon se utiliza habitualmente en árboles de Merkle de sistemas ZK porque las pruebas de pertenencia a estos árboles suelen requerir muchas operaciones hash repetidas dentro de un circuito.

¿Se utiliza Poseidon Hash para crear compromisos?

Sí. Poseidon puede utilizarse para comprometerse con valores privados y permitir que un usuario demuestre que conoce unas entradas ocultas sin revelarlas.

¿Poseidon Hash está estandarizado por el NIST?

No. Entre las normas generales de hash aprobadas por el NIST figuran las familias SHA-2 y SHA-3, mientras que Poseidon es una función hash especializada y compatible con ZK, no un sustituto general aprobado por el NIST.

¿Qué es Poseidon2?

Poseidon2 es una versión optimizada y más rápida de Poseidon, diseñada para usos similares de hashing compatible con ZK.

¿Se puede utilizar Poseidon Hash en contratos inteligentes?

Sí, pero calcularlo directamente en un contrato inteligente puede ser costoso, salvo que la plataforma ofrezca soporte optimizado, como un precompilado o una función nativa.

¿Por qué Poseidon tiene distintos parámetros?

Poseidon es una familia de instancias hash. Parámetros como el módulo del cuerpo, el tamaño del estado, el exponente de la S-box, las rondas y las constantes deben corresponder al sistema de pruebas y al nivel de seguridad previstos.

¿Dos sistemas Poseidon pueden generar hashes distintos?

Sí. Dos sistemas pueden generar hashes distintos para una misma entrada si utilizan parámetros, cuerpos, codificaciones, reglas de relleno o etiquetas de dominio diferentes.

¿Poseidon Hash es seguro?

Poseidon se ha estudiado ampliamente y se utiliza en sistemas ZK, pero su seguridad depende de los parámetros correctos, una implementación auditada, una codificación segura y el criptoanálisis en curso.

¿Poseidon Hash hace que una aplicación cripto sea privada por sí solo?

No. Poseidon puede contribuir a diseños que preservan la privacidad, pero esta requiere un diseño correcto del circuito, un comportamiento seguro de las wallets, buenos conjuntos de anonimato y una ingeniería cuidadosa del protocolo.

Conclusión

Poseidon Hash es una función hash criptográfica diseñada para la aritmética de cuerpos finitos utilizada por los sistemas de pruebas de conocimiento cero.

Es importante en el sector cripto porque las aplicaciones ZK suelen necesitar aplicar hashing a compromisos, nullifiers, rutas de Merkle, entradas privadas y datos de estado dentro de circuitos de prueba.

En muchos entornos de circuitos, Poseidon puede hacer que estas operaciones sean mucho menos costosas que las funciones hash tradicionales orientadas a operaciones bit a bit.

Esta eficiencia contribuye a las transacciones que preservan la privacidad, los ZK rollups, los sistemas de identidad, los contratos inteligentes compatibles con pruebas y la computación verificable.

Poseidon no es un sustituto universal de SHA-256, Keccak o SHA-3, ya que estas funciones hash tradicionales siguen siendo maduras e importantes para el uso criptográfico general.

La principal ventaja de Poseidon se aprecia cuando es necesario representar el hashing dentro de un sistema de pruebas sobre cuerpos finitos.

Los principales retos prácticos son la selección de parámetros, la corrección de la implementación, la separación de dominios, las reglas de codificación, el soporte en contratos inteligentes y la interoperabilidad del ecosistema.

Los desarrolladores deben utilizar bibliotecas auditadas, publicar vectores de prueba, documentar los parámetros exactos y seguir las investigaciones criptográficas actuales.

Los usuarios deben tener en cuenta que Poseidon suele ser un componente de seguridad invisible y valorar las aplicaciones por la calidad global de sus auditorías, la seguridad de las wallets y el diseño del protocolo.

La forma más sencilla de entender Poseidon Hash es que se trata de una función hash compatible con pruebas, diseñada para hacer que los sistemas cripto de conocimiento cero sean más rápidos y prácticos sin revelar datos privados.
BTC ETFs See $679M in Outflows
BTC ETFs See $679M in OutflowsBTC ETFs See $679M in Outflows
Citi sees BTC at $113K. What do institutions see?