¿Qué es un esquema de compromiso-revelación en la Cadena de bloques? (2025)

Principiante11/22/2023, 6:46:03 PM
Explora la evolución de 2025 de los esquemas de Compromiso-Revelación en la Cadena de bloques, con una reducción en la sobrecarga computacional, aplicaciones entre cadenas, protocolos de seguridad mejorados, creciente adopción empresarial e integraciones innovadoras de IA que fortalecen aún más la privacidad y la seguridad en las transacciones descentralizadas.

Actualizaciones de 2025 sobre esquemas de compromiso-revelación

El esquema de Compromiso-Revelación continúa evolucionando en 2025 con varios avances significativos que mejoran su utilidad y eficiencia en las aplicaciones de cadena de bloques. Los siguientes desarrollos representan la vanguardia de esta tecnología:

Métodos de Implementación Avanzados

Las innovaciones recientes se han centrado en reducir la sobrecarga computacional de los esquemas tradicionales de Compromiso-Revelación. Los algoritmos optimizados ahora permiten una verificación más rápida mientras se mantiene la integridad de la seguridad. Estas mejoras han llevado a una mayor adopción en varias plataformas de cadena de bloques más allá de Ethereum, incluidas las soluciones de Capa 2 que se benefician de:

  • Costos de gas reducidos para operaciones de compromiso-revelación
  • Tiempos de confirmación más cortos entre las fases de compromiso y revelación
  • Protección de la privacidad mejorada a través de técnicas criptográficas mejoradas

Aplicaciones de cadena cruzada

El paradigma de Compromiso-Revelación se ha expandido para facilitar operaciones seguras entre cadenas, permitiendo que los compromisos en una cadena de bloques sean revelados y verificados en otra. Este avance en la interoperabilidad permite:

  • Transferencias de activos seguras entre diferentes cadenas de bloques
  • Mecanismos de votación entre cadenas con privacidad mejorada
  • Sistemas de subastas de múltiples cadenas con un acceso al mercado más amplio

Mejoras de seguridad

La investigación en 2025 ha abordado las vulnerabilidades anteriores en las implementaciones de Comprometer-Revelar:

Adopción Empresarial

El sector empresarial muestra un interés creciente en los esquemas de Compromiso-Revelación para aplicaciones comerciales:

  • Los sistemas de gestión de la cadena de suministro utilizan el método de compromiso-revelación para los procesos de licitación sellada.
  • Las instituciones financieras implementan el esquema para sistemas de liquidación privados.
  • Las organizaciones de atención médica utilizan el compromiso-revelación para compartir datos sensibles mientras mantienen la privacidad del paciente.

Integración con sistemas de IA

Quizás el desarrollo más emocionante es la integración de esquemas de Compromiso-Revelación con inteligencia artificial:

  • Mercados de predicción de IA donde los modelos se comprometen a predicciones antes de que ocurran los eventos
  • Sistemas de aprendizaje automático descentralizados que protegen los datos de entrenamiento a través de commit-reveal
  • Oráculos que proporcionan aleatoriedad verificable a través de procesos de compromiso-revelación colaborativos entre nodos de IA

Estos avances demuestran cómo el esquema de Compromiso-Revelación continúa sirviendo como un mecanismo fundamental para las aplicaciones de cadena de bloques que requieren equidad, transparencia y seguridad. A medida que la tecnología madura, su implementación se vuelve más eficiente y adaptable, abriendo nuevas posibilidades para los sistemas descentralizados en diversas industrias. El desarrollo continuo de este protocolo destaca el compromiso de la comunidad de cadena de bloques para crear soluciones robustas para los desafíos de privacidad y seguridad en entornos distribuidos.

La tecnología de la Cadena de bloques trae enfoques innovadores para lograr consenso, seguridad y privacidad. Una de estas innovaciones es el esquema de compromiso-revelación, un protocolo criptográfico que mejora la privacidad y la seguridad para los usuarios de la Cadena de bloques. A medida que navegas por este curso, desvelarás las capas de confianza, transparencia e innovación que el esquema de Compromiso-Revelación aporta al dominio digital descentralizado. Cada módulo de este artículo está meticulosamente diseñado para proporcionar una comprensión completa del esquema de Compromiso-Revelación, su implementación y su impacto en el paisaje de la Cadena de bloques.

¿Qué es la Cadena de bloques?

En su núcleo, una cadena de bloques es como un libro de contabilidad digital con un giro. A diferencia de los libros de contabilidad tradicionales, es descentralizada, lo que significa que ninguna entidad única tiene control sobre toda la cadena de bloques, y es accesible para cualquiera que forme parte de su red. Cada ‘Bloquear’ en una cadena de bloques lleva una lista de transacciones. Una vez que un Bloquear se llena de transacciones, se forma un nuevo Bloquear, creando una ‘cadena’ de Bloquear conectados - de ahí el nombre, ‘cadena de bloques.’

Una de las características destacadas de la cadena de bloques es su énfasis en la confianza y la transparencia. Cualquier persona en la red tiene acceso y puede ver cada transacción en una cadena de bloques. Esta apertura desanima la deshonestidad y fomenta la confianza entre la comunidad. Podrías estar preguntándote, ¿cómo logra un nivel de transparencia tan alto? La respuesta radica en sus mecanismos de consenso únicos y principios criptográficos, que exploraremos a medida que avancemos en este curso.

Introducción al esquema de compromiso-revelación

Ahora que has tenido un vistazo de lo que es la cadena de bloques, introduzcamos un sabor especial: el esquema de Compromiso-Revelación. Es como un espectáculo de magia donde un mago (el usuario) primero se compromete a un cierto acto sin revelarlo a la audiencia (la red) y luego, en una etapa posterior, desvela el acto. En términos de cadena de bloques, este es un proceso de dos pasos: la ‘Fase de Compromiso’ y la ‘Fase de Revelación’.

En la Fase de Compromiso, un usuario envía una versión hash de su información a la cadena de bloques. Esta versión hash es como una versión desordenada de la información original que oculta el contenido real. La magia de la función hash es que es un viaje unidireccional; no puedes desordenar el hash de vuelta a su forma original, manteniendo así la información secreta por el momento. Luego llega la Fase de Revelación, donde el usuario revela la información original, que luego es verificada por la red al calcular su hash nuevamente y compararlo con el hash comprometido inicial; si coincide, ¡voilà! La red confirma la revelación, y el truco mágico está completo.

A través del esquema de Compromiso-Revelación, las cadenas de bloques pueden alcanzar un nuevo nivel de participación en aplicaciones como subastas, sistemas de votación y más, que exploraremos en detalle en los próximos módulos.

La Fase de Compromiso

A medida que navegamos en las profundidades del esquema de Compromiso-Revelación, nuestra primera parada es la ‘Fase de Compromiso.’ En esta fase, los usuarios "se comprometen" a un cierto valor, pero lo hacen de una manera que mantiene el valor real en secreto. Imagina que tienes un número secreto en mente, pero en lugar de decirle a todos cuál es, lo pones en una caja cerrada y se la muestras a todos. Saben que tienes un número, pero no saben cuál es. ¡Eso es de lo que se trata el compromiso en la cadena de bloques!

Ahora, ¿cómo bloqueamos nuestro valor secreto? En el mundo de la cadena de bloques, usamos algo llamado función hash para hacer esto. Una función hash es como una licuadora mágica. Introduces tu valor secreto, y te da una versión revuelta de él, conocida como un hash. Este hash es único; incluso un pequeño cambio en el valor original crea un hash completamente diferente. La belleza de esto es que es un proceso unidireccional: una vez que el valor se ha bloqueado, no hay una forma fácil de descubrir el valor original a partir del hash. Entonces, cuando los usuarios comprometen su valor, lo que realmente están haciendo es compartir el hash de su valor con todos en la cadena de bloques.

La Fase de Revelación

¡Después de la tensión acumulada en la Fase de Compromiso, es hora de la gran revelación! La Fase de Revelación es donde los valores comprometidos finalmente se desvelan a todos los participantes en la cadena de bloques. Volviendo a nuestra analogía de la caja cerrada, este es el momento en que se abre la caja, y todos pueden ver qué número habías escondido. En el mundo de la cadena de bloques, revelar es un proceso sencillo pero crucial que proporciona transparencia y equidad en diversas aplicaciones.

Cuando un usuario revela su valor comprometido, la red puede verificar fácilmente su autenticidad mediante el hashing del valor revelado y comparándolo con el hash original compartido durante la Fase de Compromiso. Si los hashes coinciden, se confirma que el usuario no ha cambiado de opinión en el transcurso. Este proceso de verificación simple pero poderoso ayuda a mantener un entorno de confianza donde todos juegan según las reglas. Es como tener un árbitro en un juego, asegurando que todos los jugadores cumplan con los términos acordados.

Implementando Commit-Reveal en Contratos Inteligentes

Ahora que hemos desentrañado la magia del esquema de Compromiso-Revelación, veamos cómo cobra vida en el mundo de la cadena de bloques a través de contratos inteligentes. Un contrato inteligente es como un contrato tradicional, pero es digital y autoejecutable. Imagina un robot imparcial que garantiza automáticamente que todas las partes cumplan con sus acuerdos, y tienes la idea de un contrato inteligente. Es la herramienta que toma la idea teórica de Compromiso-Revelación y la hace práctica en el ámbito digital. Implementar un esquema de Compromiso-Revelación a través de un contrato inteligente es como coreografiar un baile donde cada paso sigue un ritmo establecido. Vamos a recorrer esta coreografía paso a paso.

Creando El Contrato

Comienza creando un contrato inteligente en una cadena de bloques como Ethereum. Este contrato tendrá las reglas de participación para el esquema de Comprometer-Revelar codificadas en él.

La Función de Compromiso

Diseñar una función de compromiso dentro del contrato inteligente. Esta función permitirá a los usuarios enviar sus valores hash (la fase de compromiso) al contrato.

Almacenando Valores Comprometidos

A medida que los usuarios comprometen sus valores, el contrato inteligente almacenará estos hash de forma segura en la Cadena de bloques, esperando la fase de revelación.

La Función de Revelar

A continuación, dentro del contrato inteligente, crea una función de revelación. Cuando llegue el momento, esta función permitirá a los usuarios revelar sus valores originales.

Verificación y Validación

Al revelar, el contrato inteligente verificará los valores revelados al hasharlos y compararlos con los hashes inicialmente comprometidos. Si todo coincide, la revelación se valida.

Finalización

Una vez que se hayan recopilado y verificado todas las revelaciones, el contrato inteligente puede ejecutar automáticamente los siguientes pasos, ya sea contando votos, determinando ganadores de subastas o cualquier otra acción específica de la aplicación.

Auditoría y Pruebas

Antes de implementar, prueba a fondo el contrato inteligente para asegurarte de que opere como se pretende y esté seguro de posibles exploits. A través de estos pasos, el contrato inteligente orquesta el baile de Compromiso-Revelación, asegurando un proceso justo y transparente.

Ejemplo de código

// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract CommitReveal {struct Commit {    bytes32 hash;    bool revealed;}mapping(address => Commit) public commits;mapping(address => uint256) public revealedValues;// La función commit permite a los usuarios enviar sus valores hashfunction commit(bytes32 _hash) public {    require(commits[msg.sender].hash == 0, "Ya comprometido");    commits[msg.sender].hash = _hash;}// La función reveal permite a los usuarios revelar sus valores originalesfunction reveal(uint256 _value, string memory _salt) public {    require(commits[msg.sender].revealed == false, "Ya revelado");    require(keccak256(abi.encodePacked(_value, _salt)) == commits[msg.sender].hash, "Los hashes no coinciden");    commits[msg.sender].revealed = true;    revealedValues[msg.sender] = _value;}// Una función de finalización de ejemplo que podría contar votosfunction tallyVotes() public view returns (uint256) {    uint256 totalVotes = 0;    for (address addr = address(0); addr < address(-1); addr++) {        if (commits[addr].revealed) {            totalVotes += revealedValues[addr];        }    }    return totalVotes;}// Una función para auditar el estado del contrato (solo un ejemplo, no práctico para grandes conjuntos de datos)function audit() public view returns (mapping(address => uint256) memory) {    return revealedValues;} }

Explicación:

  • Creando el contrato: El contrato CommitReveal se crea.
  • La Función de Confirmación: La función de commit acepta un valor hash (_hash) y lo almacena contra la dirección del remitente.
  • Almacenando Valores Comprometidos:Los valores hash se almacenan en un mapeo llamado commits.
  • La Función de Revelar: La función de revelación permite a los usuarios enviar su valor original (_value) y una sal (_salt). Verifica que el hash de estos coincida con el hash comprometido inicialmente.
  • Verificación y Validación: Esto se hace dentro de la función de revelación al comparar hashes.
  • Finalización: La función tallyVotes es un ejemplo simplificado de cómo podrías contar votos. Itera a través de todas las direcciones posibles (impráctico para conjuntos de datos grandes) y suma los valores revelados.
  • Auditoría y Pruebas:La función de auditoría es un ejemplo muy simplista de cómo podrías verificar el estado del contrato.

Este es un ejemplo muy simplificado y carece de muchas consideraciones prácticas que necesitarías para un sistema de producción (como prevenir desbordamientos, optimizar el uso de gas, gestionar grandes conjuntos de datos y agregar un control de acceso adecuado). La función de finalización, en particular, es impráctica debido a la iteración sobre todas las direcciones posibles y necesitaría un diseño diferente en un escenario del mundo real. Este código está destinado como un punto de partida y herramienta educativa, no como una solución lista para producción.

Casos de uso del esquema de compromiso-revelación en Cadena de bloques

Mejorando las plataformas de subastas

Las subastas en línea son una de las aplicaciones esenciales del esquema de Compromiso-Revelación. Para evitar que otros utilicen los montos de las ofertas como palanca, los participantes pueden presentar sus ofertas de manera encubierta durante la fase de compromiso. Cuando concluye el período de oferta, comienza la fase de revelación, permitiendo a los participantes divulgar sus ofertas. Se determina la oferta válida más alta, asegurando un proceso de subasta justo y competitivo.

Creando sistemas de votación justos

Los sistemas de votación pueden beneficiarse significativamente del esquema de Compromiso-Revelación, especialmente en escenarios que exigen anonimato y honestidad por parte de los votantes. En esta configuración, durante las elecciones o cualquier evento de votación, los votantes se comprometen a sus elecciones en la fase de compromiso sin revelarlas a otros, asegurando la integridad y el secreto de los votos. Una vez que concluye el período de votación, comienza la fase de revelación, permitiendo a los votantes divulgar sus votos. Estos se cuentan para determinar el resultado, promoviendo un proceso de votación justo y transparente.

Contratos de oferta sellada

En los contratos de oferta sellada, los licitadores presentan sus ofertas de forma oculta utilizando el esquema de Compromiso-Revelación. Este proceso garantiza que ninguno de los licitadores conozca los montos de las ofertas de los demás, fomentando una competencia justa. Después del período de presentación de ofertas, se lleva a cabo la fase de revelación, y el contrato se otorga al licitador calificado con la mejor oferta.

Escenarios de juego

El esquema de Compromiso-Revelación encuentra una aplicación divertida en escenarios de juego, como una versión digital de Piedra, Papel y Tijeras. Los jugadores comprometen sus elecciones sin revelarlas, asegurando un juego justo. Una vez que ambos jugadores han comprometido, sigue la fase de revelación, determinando al ganador en función de las elecciones realizadas.

Mitigando problemas de Bloquear anticipado

En entornos de cadena de bloques, el front-running es una preocupación donde actores maliciosos podrían beneficiarse potencialmente del conocimiento de transacciones pendientes. El esquema Commit-Reveal ayuda a mitigar tales problemas al ocultar inicialmente los detalles de la transacción. Para cuando llega la fase de revelación, ya es demasiado tarde para que los actores maliciosos actúen sobre la información, preservando así la integridad de la transacción.

Arquitecturas de compromiso y revelación de baja latencia

Nuevas arquitecturas como F3B han evolucionado para reducir la sobrecarga asociado con esquemas tradicionales de Compromiso-Revelación. F3B minimiza la escritura de datos en la cadena de bloques, ofreciendo una arquitectura de Compromiso y Revelación de baja latencia. Este desarrollo es notable ya que significa la continua optimización e innovación en los esquemas de Compromiso-Revelación, haciéndolos más eficientes para aplicaciones del mundo real.

Generación de Números Aleatorios

En entornos de cadena de bloques, generar números aleatorios puede ser un desafío debido a la naturaleza determinista de los protocolos de cadena de bloques. El esquema Commit-Reveal sirve como una alternativa descentralizada para generar números aleatorios en la cadena de bloques de Ethereum. Por ejemplo, Randao, una implementación de RNG Commit-Reveal, utiliza fuentes de datos públicas e incentiva la participación en la generación de números aleatorios.

Conclusión

A medida que esta interesante mirada al esquema Commit-Reveal llega a su fin, es importante considerar cómo este mecanismo simple pero poderoso ayuda a construir confianza y apertura en las aplicaciones de cadena de bloques. Tuvimos un vistazo de cómo la tecnología de cadena de bloques podría cambiar muchos campos al hacer que las subastas sean justas, los sistemas de votación honestos y los escenarios de juegos más creativos, entre otras cosas, con el esquema Commit-Reveal. El viaje no termina aquí; la naturaleza en constante evolución de la tecnología de cadena de bloques presenta nuevos horizontes por explorar. Armado con el conocimiento adquirido a través de este curso, está bien posicionado para profundizar en la cadena de bloques, explorar sus infinitas posibilidades y contribuir a dar forma a un futuro digital transparente, justo y descentralizado.

Autor: Piero
Traductor: Cedar
Revisor(es): Matheus、Edward、Ashley He
* La información no pretende ser ni constituye un consejo financiero ni ninguna otra recomendación de ningún tipo ofrecida o respaldada por Gate.
* Este artículo no se puede reproducir, transmitir ni copiar sin hacer referencia a Gate. La contravención es una infracción de la Ley de derechos de autor y puede estar sujeta a acciones legales.

¿Qué es un esquema de compromiso-revelación en la Cadena de bloques? (2025)

Principiante11/22/2023, 6:46:03 PM
Explora la evolución de 2025 de los esquemas de Compromiso-Revelación en la Cadena de bloques, con una reducción en la sobrecarga computacional, aplicaciones entre cadenas, protocolos de seguridad mejorados, creciente adopción empresarial e integraciones innovadoras de IA que fortalecen aún más la privacidad y la seguridad en las transacciones descentralizadas.

Actualizaciones de 2025 sobre esquemas de compromiso-revelación

El esquema de Compromiso-Revelación continúa evolucionando en 2025 con varios avances significativos que mejoran su utilidad y eficiencia en las aplicaciones de cadena de bloques. Los siguientes desarrollos representan la vanguardia de esta tecnología:

Métodos de Implementación Avanzados

Las innovaciones recientes se han centrado en reducir la sobrecarga computacional de los esquemas tradicionales de Compromiso-Revelación. Los algoritmos optimizados ahora permiten una verificación más rápida mientras se mantiene la integridad de la seguridad. Estas mejoras han llevado a una mayor adopción en varias plataformas de cadena de bloques más allá de Ethereum, incluidas las soluciones de Capa 2 que se benefician de:

  • Costos de gas reducidos para operaciones de compromiso-revelación
  • Tiempos de confirmación más cortos entre las fases de compromiso y revelación
  • Protección de la privacidad mejorada a través de técnicas criptográficas mejoradas

Aplicaciones de cadena cruzada

El paradigma de Compromiso-Revelación se ha expandido para facilitar operaciones seguras entre cadenas, permitiendo que los compromisos en una cadena de bloques sean revelados y verificados en otra. Este avance en la interoperabilidad permite:

  • Transferencias de activos seguras entre diferentes cadenas de bloques
  • Mecanismos de votación entre cadenas con privacidad mejorada
  • Sistemas de subastas de múltiples cadenas con un acceso al mercado más amplio

Mejoras de seguridad

La investigación en 2025 ha abordado las vulnerabilidades anteriores en las implementaciones de Comprometer-Revelar:

Adopción Empresarial

El sector empresarial muestra un interés creciente en los esquemas de Compromiso-Revelación para aplicaciones comerciales:

  • Los sistemas de gestión de la cadena de suministro utilizan el método de compromiso-revelación para los procesos de licitación sellada.
  • Las instituciones financieras implementan el esquema para sistemas de liquidación privados.
  • Las organizaciones de atención médica utilizan el compromiso-revelación para compartir datos sensibles mientras mantienen la privacidad del paciente.

Integración con sistemas de IA

Quizás el desarrollo más emocionante es la integración de esquemas de Compromiso-Revelación con inteligencia artificial:

  • Mercados de predicción de IA donde los modelos se comprometen a predicciones antes de que ocurran los eventos
  • Sistemas de aprendizaje automático descentralizados que protegen los datos de entrenamiento a través de commit-reveal
  • Oráculos que proporcionan aleatoriedad verificable a través de procesos de compromiso-revelación colaborativos entre nodos de IA

Estos avances demuestran cómo el esquema de Compromiso-Revelación continúa sirviendo como un mecanismo fundamental para las aplicaciones de cadena de bloques que requieren equidad, transparencia y seguridad. A medida que la tecnología madura, su implementación se vuelve más eficiente y adaptable, abriendo nuevas posibilidades para los sistemas descentralizados en diversas industrias. El desarrollo continuo de este protocolo destaca el compromiso de la comunidad de cadena de bloques para crear soluciones robustas para los desafíos de privacidad y seguridad en entornos distribuidos.

La tecnología de la Cadena de bloques trae enfoques innovadores para lograr consenso, seguridad y privacidad. Una de estas innovaciones es el esquema de compromiso-revelación, un protocolo criptográfico que mejora la privacidad y la seguridad para los usuarios de la Cadena de bloques. A medida que navegas por este curso, desvelarás las capas de confianza, transparencia e innovación que el esquema de Compromiso-Revelación aporta al dominio digital descentralizado. Cada módulo de este artículo está meticulosamente diseñado para proporcionar una comprensión completa del esquema de Compromiso-Revelación, su implementación y su impacto en el paisaje de la Cadena de bloques.

¿Qué es la Cadena de bloques?

En su núcleo, una cadena de bloques es como un libro de contabilidad digital con un giro. A diferencia de los libros de contabilidad tradicionales, es descentralizada, lo que significa que ninguna entidad única tiene control sobre toda la cadena de bloques, y es accesible para cualquiera que forme parte de su red. Cada ‘Bloquear’ en una cadena de bloques lleva una lista de transacciones. Una vez que un Bloquear se llena de transacciones, se forma un nuevo Bloquear, creando una ‘cadena’ de Bloquear conectados - de ahí el nombre, ‘cadena de bloques.’

Una de las características destacadas de la cadena de bloques es su énfasis en la confianza y la transparencia. Cualquier persona en la red tiene acceso y puede ver cada transacción en una cadena de bloques. Esta apertura desanima la deshonestidad y fomenta la confianza entre la comunidad. Podrías estar preguntándote, ¿cómo logra un nivel de transparencia tan alto? La respuesta radica en sus mecanismos de consenso únicos y principios criptográficos, que exploraremos a medida que avancemos en este curso.

Introducción al esquema de compromiso-revelación

Ahora que has tenido un vistazo de lo que es la cadena de bloques, introduzcamos un sabor especial: el esquema de Compromiso-Revelación. Es como un espectáculo de magia donde un mago (el usuario) primero se compromete a un cierto acto sin revelarlo a la audiencia (la red) y luego, en una etapa posterior, desvela el acto. En términos de cadena de bloques, este es un proceso de dos pasos: la ‘Fase de Compromiso’ y la ‘Fase de Revelación’.

En la Fase de Compromiso, un usuario envía una versión hash de su información a la cadena de bloques. Esta versión hash es como una versión desordenada de la información original que oculta el contenido real. La magia de la función hash es que es un viaje unidireccional; no puedes desordenar el hash de vuelta a su forma original, manteniendo así la información secreta por el momento. Luego llega la Fase de Revelación, donde el usuario revela la información original, que luego es verificada por la red al calcular su hash nuevamente y compararlo con el hash comprometido inicial; si coincide, ¡voilà! La red confirma la revelación, y el truco mágico está completo.

A través del esquema de Compromiso-Revelación, las cadenas de bloques pueden alcanzar un nuevo nivel de participación en aplicaciones como subastas, sistemas de votación y más, que exploraremos en detalle en los próximos módulos.

La Fase de Compromiso

A medida que navegamos en las profundidades del esquema de Compromiso-Revelación, nuestra primera parada es la ‘Fase de Compromiso.’ En esta fase, los usuarios "se comprometen" a un cierto valor, pero lo hacen de una manera que mantiene el valor real en secreto. Imagina que tienes un número secreto en mente, pero en lugar de decirle a todos cuál es, lo pones en una caja cerrada y se la muestras a todos. Saben que tienes un número, pero no saben cuál es. ¡Eso es de lo que se trata el compromiso en la cadena de bloques!

Ahora, ¿cómo bloqueamos nuestro valor secreto? En el mundo de la cadena de bloques, usamos algo llamado función hash para hacer esto. Una función hash es como una licuadora mágica. Introduces tu valor secreto, y te da una versión revuelta de él, conocida como un hash. Este hash es único; incluso un pequeño cambio en el valor original crea un hash completamente diferente. La belleza de esto es que es un proceso unidireccional: una vez que el valor se ha bloqueado, no hay una forma fácil de descubrir el valor original a partir del hash. Entonces, cuando los usuarios comprometen su valor, lo que realmente están haciendo es compartir el hash de su valor con todos en la cadena de bloques.

La Fase de Revelación

¡Después de la tensión acumulada en la Fase de Compromiso, es hora de la gran revelación! La Fase de Revelación es donde los valores comprometidos finalmente se desvelan a todos los participantes en la cadena de bloques. Volviendo a nuestra analogía de la caja cerrada, este es el momento en que se abre la caja, y todos pueden ver qué número habías escondido. En el mundo de la cadena de bloques, revelar es un proceso sencillo pero crucial que proporciona transparencia y equidad en diversas aplicaciones.

Cuando un usuario revela su valor comprometido, la red puede verificar fácilmente su autenticidad mediante el hashing del valor revelado y comparándolo con el hash original compartido durante la Fase de Compromiso. Si los hashes coinciden, se confirma que el usuario no ha cambiado de opinión en el transcurso. Este proceso de verificación simple pero poderoso ayuda a mantener un entorno de confianza donde todos juegan según las reglas. Es como tener un árbitro en un juego, asegurando que todos los jugadores cumplan con los términos acordados.

Implementando Commit-Reveal en Contratos Inteligentes

Ahora que hemos desentrañado la magia del esquema de Compromiso-Revelación, veamos cómo cobra vida en el mundo de la cadena de bloques a través de contratos inteligentes. Un contrato inteligente es como un contrato tradicional, pero es digital y autoejecutable. Imagina un robot imparcial que garantiza automáticamente que todas las partes cumplan con sus acuerdos, y tienes la idea de un contrato inteligente. Es la herramienta que toma la idea teórica de Compromiso-Revelación y la hace práctica en el ámbito digital. Implementar un esquema de Compromiso-Revelación a través de un contrato inteligente es como coreografiar un baile donde cada paso sigue un ritmo establecido. Vamos a recorrer esta coreografía paso a paso.

Creando El Contrato

Comienza creando un contrato inteligente en una cadena de bloques como Ethereum. Este contrato tendrá las reglas de participación para el esquema de Comprometer-Revelar codificadas en él.

La Función de Compromiso

Diseñar una función de compromiso dentro del contrato inteligente. Esta función permitirá a los usuarios enviar sus valores hash (la fase de compromiso) al contrato.

Almacenando Valores Comprometidos

A medida que los usuarios comprometen sus valores, el contrato inteligente almacenará estos hash de forma segura en la Cadena de bloques, esperando la fase de revelación.

La Función de Revelar

A continuación, dentro del contrato inteligente, crea una función de revelación. Cuando llegue el momento, esta función permitirá a los usuarios revelar sus valores originales.

Verificación y Validación

Al revelar, el contrato inteligente verificará los valores revelados al hasharlos y compararlos con los hashes inicialmente comprometidos. Si todo coincide, la revelación se valida.

Finalización

Una vez que se hayan recopilado y verificado todas las revelaciones, el contrato inteligente puede ejecutar automáticamente los siguientes pasos, ya sea contando votos, determinando ganadores de subastas o cualquier otra acción específica de la aplicación.

Auditoría y Pruebas

Antes de implementar, prueba a fondo el contrato inteligente para asegurarte de que opere como se pretende y esté seguro de posibles exploits. A través de estos pasos, el contrato inteligente orquesta el baile de Compromiso-Revelación, asegurando un proceso justo y transparente.

Ejemplo de código

// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract CommitReveal {struct Commit {    bytes32 hash;    bool revealed;}mapping(address => Commit) public commits;mapping(address => uint256) public revealedValues;// La función commit permite a los usuarios enviar sus valores hashfunction commit(bytes32 _hash) public {    require(commits[msg.sender].hash == 0, "Ya comprometido");    commits[msg.sender].hash = _hash;}// La función reveal permite a los usuarios revelar sus valores originalesfunction reveal(uint256 _value, string memory _salt) public {    require(commits[msg.sender].revealed == false, "Ya revelado");    require(keccak256(abi.encodePacked(_value, _salt)) == commits[msg.sender].hash, "Los hashes no coinciden");    commits[msg.sender].revealed = true;    revealedValues[msg.sender] = _value;}// Una función de finalización de ejemplo que podría contar votosfunction tallyVotes() public view returns (uint256) {    uint256 totalVotes = 0;    for (address addr = address(0); addr < address(-1); addr++) {        if (commits[addr].revealed) {            totalVotes += revealedValues[addr];        }    }    return totalVotes;}// Una función para auditar el estado del contrato (solo un ejemplo, no práctico para grandes conjuntos de datos)function audit() public view returns (mapping(address => uint256) memory) {    return revealedValues;} }

Explicación:

  • Creando el contrato: El contrato CommitReveal se crea.
  • La Función de Confirmación: La función de commit acepta un valor hash (_hash) y lo almacena contra la dirección del remitente.
  • Almacenando Valores Comprometidos:Los valores hash se almacenan en un mapeo llamado commits.
  • La Función de Revelar: La función de revelación permite a los usuarios enviar su valor original (_value) y una sal (_salt). Verifica que el hash de estos coincida con el hash comprometido inicialmente.
  • Verificación y Validación: Esto se hace dentro de la función de revelación al comparar hashes.
  • Finalización: La función tallyVotes es un ejemplo simplificado de cómo podrías contar votos. Itera a través de todas las direcciones posibles (impráctico para conjuntos de datos grandes) y suma los valores revelados.
  • Auditoría y Pruebas:La función de auditoría es un ejemplo muy simplista de cómo podrías verificar el estado del contrato.

Este es un ejemplo muy simplificado y carece de muchas consideraciones prácticas que necesitarías para un sistema de producción (como prevenir desbordamientos, optimizar el uso de gas, gestionar grandes conjuntos de datos y agregar un control de acceso adecuado). La función de finalización, en particular, es impráctica debido a la iteración sobre todas las direcciones posibles y necesitaría un diseño diferente en un escenario del mundo real. Este código está destinado como un punto de partida y herramienta educativa, no como una solución lista para producción.

Casos de uso del esquema de compromiso-revelación en Cadena de bloques

Mejorando las plataformas de subastas

Las subastas en línea son una de las aplicaciones esenciales del esquema de Compromiso-Revelación. Para evitar que otros utilicen los montos de las ofertas como palanca, los participantes pueden presentar sus ofertas de manera encubierta durante la fase de compromiso. Cuando concluye el período de oferta, comienza la fase de revelación, permitiendo a los participantes divulgar sus ofertas. Se determina la oferta válida más alta, asegurando un proceso de subasta justo y competitivo.

Creando sistemas de votación justos

Los sistemas de votación pueden beneficiarse significativamente del esquema de Compromiso-Revelación, especialmente en escenarios que exigen anonimato y honestidad por parte de los votantes. En esta configuración, durante las elecciones o cualquier evento de votación, los votantes se comprometen a sus elecciones en la fase de compromiso sin revelarlas a otros, asegurando la integridad y el secreto de los votos. Una vez que concluye el período de votación, comienza la fase de revelación, permitiendo a los votantes divulgar sus votos. Estos se cuentan para determinar el resultado, promoviendo un proceso de votación justo y transparente.

Contratos de oferta sellada

En los contratos de oferta sellada, los licitadores presentan sus ofertas de forma oculta utilizando el esquema de Compromiso-Revelación. Este proceso garantiza que ninguno de los licitadores conozca los montos de las ofertas de los demás, fomentando una competencia justa. Después del período de presentación de ofertas, se lleva a cabo la fase de revelación, y el contrato se otorga al licitador calificado con la mejor oferta.

Escenarios de juego

El esquema de Compromiso-Revelación encuentra una aplicación divertida en escenarios de juego, como una versión digital de Piedra, Papel y Tijeras. Los jugadores comprometen sus elecciones sin revelarlas, asegurando un juego justo. Una vez que ambos jugadores han comprometido, sigue la fase de revelación, determinando al ganador en función de las elecciones realizadas.

Mitigando problemas de Bloquear anticipado

En entornos de cadena de bloques, el front-running es una preocupación donde actores maliciosos podrían beneficiarse potencialmente del conocimiento de transacciones pendientes. El esquema Commit-Reveal ayuda a mitigar tales problemas al ocultar inicialmente los detalles de la transacción. Para cuando llega la fase de revelación, ya es demasiado tarde para que los actores maliciosos actúen sobre la información, preservando así la integridad de la transacción.

Arquitecturas de compromiso y revelación de baja latencia

Nuevas arquitecturas como F3B han evolucionado para reducir la sobrecarga asociado con esquemas tradicionales de Compromiso-Revelación. F3B minimiza la escritura de datos en la cadena de bloques, ofreciendo una arquitectura de Compromiso y Revelación de baja latencia. Este desarrollo es notable ya que significa la continua optimización e innovación en los esquemas de Compromiso-Revelación, haciéndolos más eficientes para aplicaciones del mundo real.

Generación de Números Aleatorios

En entornos de cadena de bloques, generar números aleatorios puede ser un desafío debido a la naturaleza determinista de los protocolos de cadena de bloques. El esquema Commit-Reveal sirve como una alternativa descentralizada para generar números aleatorios en la cadena de bloques de Ethereum. Por ejemplo, Randao, una implementación de RNG Commit-Reveal, utiliza fuentes de datos públicas e incentiva la participación en la generación de números aleatorios.

Conclusión

A medida que esta interesante mirada al esquema Commit-Reveal llega a su fin, es importante considerar cómo este mecanismo simple pero poderoso ayuda a construir confianza y apertura en las aplicaciones de cadena de bloques. Tuvimos un vistazo de cómo la tecnología de cadena de bloques podría cambiar muchos campos al hacer que las subastas sean justas, los sistemas de votación honestos y los escenarios de juegos más creativos, entre otras cosas, con el esquema Commit-Reveal. El viaje no termina aquí; la naturaleza en constante evolución de la tecnología de cadena de bloques presenta nuevos horizontes por explorar. Armado con el conocimiento adquirido a través de este curso, está bien posicionado para profundizar en la cadena de bloques, explorar sus infinitas posibilidades y contribuir a dar forma a un futuro digital transparente, justo y descentralizado.

Autor: Piero
Traductor: Cedar
Revisor(es): Matheus、Edward、Ashley He
* La información no pretende ser ni constituye un consejo financiero ni ninguna otra recomendación de ningún tipo ofrecida o respaldada por Gate.
* Este artículo no se puede reproducir, transmitir ni copiar sin hacer referencia a Gate. La contravención es una infracción de la Ley de derechos de autor y puede estar sujeta a acciones legales.
Empieza ahora
¡Registrarse y recibe un bono de
$100
!