¿Qué es un esquema de compromiso-revelación en Blockchain?

Principiante11/22/2023, 6:46:03 PM
Conozca el método Commit-Reveal, una innovación blockchain que mejora la privacidad y la seguridad en transacciones digitales descentralizadas.

La tecnología Blockchain aporta enfoques innovadores para lograr consenso, seguridad y privacidad. Una de esas innovaciones es el esquema de confirmación-revelación, un protocolo criptográfico que mejora la privacidad y la seguridad de los usuarios de blockchain. A medida que navegue por este curso, descubrirá las capas de confianza, transparencia e innovación que el esquema Commit-Reveal aporta al dominio digital descentralizado. Cada módulo de este artículo está meticulosamente diseñado para proporcionar una comprensión completa del esquema Commit-Reveal, su implementación y su impacto en el panorama de blockchain.

¿Qué es la cadena de bloques?

En esencia, una cadena de bloques es como un libro de contabilidad digital con un giro. A diferencia de los libros de contabilidad tradicionales, está descentralizado, lo que significa que ninguna entidad tiene control sobre toda la cadena de bloques y es accesible para cualquiera que forme parte de su red. Cada 'bloque' en una cadena de bloques lleva una lista de transacciones. Una vez que un bloque se llena con transacciones, se forma un nuevo bloque, creando una "cadena" conectada de bloques, de ahí el nombre "cadena de bloques".

Una de las características brillantes de blockchain 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 desalienta la deshonestidad y fomenta la confianza entre la comunidad. Quizás se pregunte cómo se logra tal nivel de transparencia. La respuesta está en sus mecanismos de consenso únicos y principios criptográficos, en los que profundizaremos a medida que avancemos en este curso.

Introducción al esquema de compromiso-revelación

Ahora que tiene una idea de lo que es blockchain, le presentaremos un sabor especial: el esquema Commit-Reveal. Es como un espectáculo de magia donde un mago (el usuario) primero se compromete a realizar un acto determinado sin revelarlo a la audiencia (la red) y luego, en una etapa posterior, revela el acto. En términos de blockchain, este es un proceso de dos pasos: la 'Fase de Compromiso' y la 'Fase de Revelación'.

En la fase de confirmación, 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 codificada de la información original que oculta el contenido real. La magia de la función hash es que es un viaje de ida; no se puede descifrar el hash a su forma original, manteniendo así la información en secreto por el momento. Luego viene la fase de revelación, donde el usuario revela la información original, que luego la red verifica hachándola nuevamente y comparándola con el hash confirmado inicial si coincide, ¡listo! La red confirma la revelación y el truco de magia está completo.

A través del esquema Commit-Reveal, las redes blockchain 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 hacia las profundidades del esquema Compromiso-Revelación, nuestra primera parada es la "Fase de Compromiso". En esta fase, los usuarios "se comprometen" con un determinado 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 guardas en una caja cerrada con llave y se lo muestras a todos. Saben que tienes un número, pero no saben cuál es. ¡De eso se trata comprometerse en blockchain!

Ahora bien, ¿cómo guardamos bajo llave nuestro valor secreto? En el mundo blockchain, usamos algo llamado función hash para hacer esto. Una función hash es como una licuadora mágica. Usted ingresa su valor secreto y escupe una versión codificada, conocida como hash. Este hash es único; incluso un pequeño cambio en el valor original crea un hash tremendamente diferente. Lo bueno de esto es que es un proceso unidireccional: una vez que se aplica el hash al valor, no hay una manera fácil de determinar 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 del suspenso generado en la fase de compromiso, ¡es hora de la gran revelación! La fase de revelación es donde los valores comprometidos finalmente se revelan 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ía escondido. En el mundo blockchain, la revelación 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 aplicando hash al valor revelado y comparándolo con el hash original compartido durante la fase de confirmación. Si los hashes coinciden, confirma que el usuario no ha cambiado de opinión a mitad de camino. Este proceso de verificación simple pero poderoso ayuda a mantener un ambiente de confianza donde todos siguen las reglas. Es como tener un árbitro en un juego, asegurándose de que todos los jugadores cumplan los términos acordados.

Implementación de compromiso-revelación en contratos inteligentes

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

Creando el contrato

Comience creando un contrato inteligente en una plataforma blockchain como Ethereum. Este contrato tendrá codificadas las reglas de enfrentamiento para el esquema Compromiso-Revelación.

La función de compromiso

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

Almacenamiento de valores comprometidos

A medida que los usuarios confirman sus valores, el contrato inteligente almacenará estos hashes de forma segura en la cadena de bloques, en espera de la fase de revelación.

La función de revelación

A continuación, dentro del contrato inteligente, cree 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 revelarse, el contrato inteligente verificará los valores revelados aplicando hashes y comparándolos con los hashes comprometidos inicialmente. Si todo coincide, se valida la revelación.

Finalización

Una vez que se recopilan y verifican todas las revelaciones, el contrato inteligente puede ejecutar automáticamente los siguientes pasos, ya sea contar votos, determinar los ganadores de la subasta o cualquier otra acción específica de la aplicación.

Auditoría y pruebas

Antes de implementarlo, pruebe exhaustivamente el contrato inteligente para asegurarse de que funcione según lo previsto y esté a salvo de posibles vulnerabilidades. A través de estos pasos, el contrato inteligente orquesta el baile Compromiso-Revelación, asegurando un proceso justo y transparente.

Ejemplo de código

// Identificador de licencia SPDX: solidez pragma MIT 

 ^0.8.0; 

 contrato CommitReveal { 

 struct Commit {

    bytes32 hash;

    bool revealed;

}



mapeo (dirección => Confirmar) confirmaciones públicas; 

 mapeo (dirección => uint256) valores revelados públicos; 



 // La función de confirmación permite a los usuarios enviar sus valores hash 

 function commit(bytes32 _hash) public {

    require(commits[msg.sender].hash == 0, "Already committed");

    commits[msg.sender].hash = _hash;

}



// La función de revelación permite a los usuarios revelar sus valores originales 

 function reveló(uint256 _value, string Memory _salt) public {

    require(commits[msg.sender].revealed == false, "Already revealed");

    require(keccak256(abi.encodePacked(_value, _salt)) == commits[msg.sender].hash, "Hashes don't match");

    commits[msg.sender].revealed = true;

    revealedValues[msg.sender] = _value;

}



// Un ejemplo de función de finalización que podría contar votos 

 function tallyVotes() public view return (uint256) { 

 uint256 totalVotes = 0; 

 para (dirección dirección = dirección (0); dirección < dirección (-1); dirección ++) { 

 si (comprueba [dirección]. revelado) {

            totalVotes += revealedValues[addr];

        }

    }

    devolver totalVotes; 

 } 



 // Una función para auditar el estado del contrato (solo un ejemplo, no práctico para conjuntos de datos grandes) 

 función audit() devuelve la vista pública (mapping(address => uint256) memoria) {

    return revealedValues;

}

 }

Explicación:

  • Creación del contrato: se crea el contrato CommitReveal.
  • La función de confirmación: la función de confirmación acepta un valor hash (_hash) y lo almacena en la dirección del remitente.
  • Almacenamiento de valores confirmados: los valores hash se almacenan en una asignación llamada confirmaciones.
  • La función de revelación: la función de revelación permite a los usuarios enviar su valor original (_value) y una sal (_salt). Comprueba que el hash de estos coincida con el hash comprometido inicialmente.
  • Verificación y Validación: Esto se realiza dentro de la función de revelación comparando hashes.
  • Finalización: La función tallyVotes es un ejemplo simplificado de cómo se pueden contar los votos. Itera a través de todas las direcciones posibles (poco práctico para grandes conjuntos de datos) y suma los valores revelados.
  • Auditoría y pruebas: la función de auditoría es un ejemplo muy simplista de cómo se puede verificar el estado del contrato.

Este es un ejemplo muy simplificado y carece de muchas consideraciones prácticas que necesitaría para un sistema de producción (como prevenir desbordamientos, optimizar el uso de gas, administrar grandes conjuntos de datos y agregar un control de acceso adecuado). La función de finalización, en particular, no es prá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 pretende ser un punto de partida y una herramienta educativa, no una solución lista para producción.

Casos de uso del esquema de compromiso-revelación en Blockchain

Mejora de las plataformas de subastas

Las subastas en línea son una de las aplicaciones por excelencia del esquema Commit-Reveal. Para evitar que otros utilicen los montos de las ofertas como palanca, los participantes pueden presentar sus ofertas de forma encubierta durante la fase de compromiso. Cuando concluye el período de licitación, comienza la fase de revelación, que permite a los participantes revelar sus ofertas. Se determina la oferta válida más alta, lo que garantiza un proceso de subasta justo y competitivo.

Creando sistemas de votación justos

Los sistemas de votación pueden beneficiarse significativamente del esquema 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 con sus elecciones en la fase de confirmación sin revelarlas a otros, lo que garantiza la integridad y el secreto de los votos. Una vez que concluye el período de votación, comienza la fase de revelación, que permite a los votantes revelar sus votos. Luego 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 Compromiso-Revelación. Este proceso garantiza que ninguno de los postores 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 produce la fase de revelación y el contrato se adjudica al postor calificado con la mejor oferta.

Escenarios de juego

El esquema Commit-Reveal encuentra una aplicación divertida en escenarios del juego, como una versión digital de Piedra, Papel y Tijera. Los jugadores comprometen sus elecciones sin revelarlas, lo que garantiza un juego justo. Una vez que ambos jugadores se han comprometido, sigue la fase de revelación, en la que se determina el ganador en función de las decisiones tomadas.

Mitigar los problemas iniciales

En entornos blockchain, la ejecución anticipada es una preocupación en la que los actores maliciosos podrían beneficiarse del conocimiento de las transacciones pendientes. El esquema Commit-Reveal ayuda a mitigar estos problemas al ocultar inicialmente los detalles de la transacción. 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 confirmación y revelación de baja latencia

Las arquitecturas más nuevas como F3B han evolucionado para reducir la sobrecarga asociada con los esquemas tradicionales Commit-Reveal. F3B minimiza la escritura de datos en la cadena de bloques y ofrece una arquitectura de confirmación y revelación de baja latencia. Este desarrollo es notable ya que significa la optimización e innovación continuas en los esquemas Commit-Reveal, haciéndolos más eficientes para aplicaciones del mundo real.

Generación de números aleatorios

En entornos blockchain, generar números aleatorios puede ser un desafío debido a la naturaleza determinista de los protocolos blockchain. El esquema Commit-Reveal sirve como una alternativa descentralizada para generar números aleatorios en la cadena de bloques Ethereum. Por ejemplo, Randao, una implementación de Commit-Reveal RNG, utiliza fuentes de datos públicos 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 generar confianza y apertura en las aplicaciones blockchain. Echamos un vistazo a cómo la tecnología blockchain podría cambiar muchos campos al hacer que las subastas sean justas, los sistemas de votación honestos y los escenarios de juego 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 blockchain presenta nuevos horizontes para explorar. Armado con el conocimiento adquirido a través de este curso, estará 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.

作者: Piero
譯者: Cedar
審校: Matheus、Edward、Ashley He
* 投資有風險,入市須謹慎。本文不作為 Gate.io 提供的投資理財建議或其他任何類型的建議。
* 在未提及 Gate.io 的情況下,複製、傳播或抄襲本文將違反《版權法》,Gate.io 有權追究其法律責任。

¿Qué es un esquema de compromiso-revelación en Blockchain?

Principiante11/22/2023, 6:46:03 PM
Conozca el método Commit-Reveal, una innovación blockchain que mejora la privacidad y la seguridad en transacciones digitales descentralizadas.

La tecnología Blockchain aporta enfoques innovadores para lograr consenso, seguridad y privacidad. Una de esas innovaciones es el esquema de confirmación-revelación, un protocolo criptográfico que mejora la privacidad y la seguridad de los usuarios de blockchain. A medida que navegue por este curso, descubrirá las capas de confianza, transparencia e innovación que el esquema Commit-Reveal aporta al dominio digital descentralizado. Cada módulo de este artículo está meticulosamente diseñado para proporcionar una comprensión completa del esquema Commit-Reveal, su implementación y su impacto en el panorama de blockchain.

¿Qué es la cadena de bloques?

En esencia, una cadena de bloques es como un libro de contabilidad digital con un giro. A diferencia de los libros de contabilidad tradicionales, está descentralizado, lo que significa que ninguna entidad tiene control sobre toda la cadena de bloques y es accesible para cualquiera que forme parte de su red. Cada 'bloque' en una cadena de bloques lleva una lista de transacciones. Una vez que un bloque se llena con transacciones, se forma un nuevo bloque, creando una "cadena" conectada de bloques, de ahí el nombre "cadena de bloques".

Una de las características brillantes de blockchain 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 desalienta la deshonestidad y fomenta la confianza entre la comunidad. Quizás se pregunte cómo se logra tal nivel de transparencia. La respuesta está en sus mecanismos de consenso únicos y principios criptográficos, en los que profundizaremos a medida que avancemos en este curso.

Introducción al esquema de compromiso-revelación

Ahora que tiene una idea de lo que es blockchain, le presentaremos un sabor especial: el esquema Commit-Reveal. Es como un espectáculo de magia donde un mago (el usuario) primero se compromete a realizar un acto determinado sin revelarlo a la audiencia (la red) y luego, en una etapa posterior, revela el acto. En términos de blockchain, este es un proceso de dos pasos: la 'Fase de Compromiso' y la 'Fase de Revelación'.

En la fase de confirmación, 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 codificada de la información original que oculta el contenido real. La magia de la función hash es que es un viaje de ida; no se puede descifrar el hash a su forma original, manteniendo así la información en secreto por el momento. Luego viene la fase de revelación, donde el usuario revela la información original, que luego la red verifica hachándola nuevamente y comparándola con el hash confirmado inicial si coincide, ¡listo! La red confirma la revelación y el truco de magia está completo.

A través del esquema Commit-Reveal, las redes blockchain 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 hacia las profundidades del esquema Compromiso-Revelación, nuestra primera parada es la "Fase de Compromiso". En esta fase, los usuarios "se comprometen" con un determinado 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 guardas en una caja cerrada con llave y se lo muestras a todos. Saben que tienes un número, pero no saben cuál es. ¡De eso se trata comprometerse en blockchain!

Ahora bien, ¿cómo guardamos bajo llave nuestro valor secreto? En el mundo blockchain, usamos algo llamado función hash para hacer esto. Una función hash es como una licuadora mágica. Usted ingresa su valor secreto y escupe una versión codificada, conocida como hash. Este hash es único; incluso un pequeño cambio en el valor original crea un hash tremendamente diferente. Lo bueno de esto es que es un proceso unidireccional: una vez que se aplica el hash al valor, no hay una manera fácil de determinar 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 del suspenso generado en la fase de compromiso, ¡es hora de la gran revelación! La fase de revelación es donde los valores comprometidos finalmente se revelan 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ía escondido. En el mundo blockchain, la revelación 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 aplicando hash al valor revelado y comparándolo con el hash original compartido durante la fase de confirmación. Si los hashes coinciden, confirma que el usuario no ha cambiado de opinión a mitad de camino. Este proceso de verificación simple pero poderoso ayuda a mantener un ambiente de confianza donde todos siguen las reglas. Es como tener un árbitro en un juego, asegurándose de que todos los jugadores cumplan los términos acordados.

Implementación de compromiso-revelación en contratos inteligentes

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

Creando el contrato

Comience creando un contrato inteligente en una plataforma blockchain como Ethereum. Este contrato tendrá codificadas las reglas de enfrentamiento para el esquema Compromiso-Revelación.

La función de compromiso

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

Almacenamiento de valores comprometidos

A medida que los usuarios confirman sus valores, el contrato inteligente almacenará estos hashes de forma segura en la cadena de bloques, en espera de la fase de revelación.

La función de revelación

A continuación, dentro del contrato inteligente, cree 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 revelarse, el contrato inteligente verificará los valores revelados aplicando hashes y comparándolos con los hashes comprometidos inicialmente. Si todo coincide, se valida la revelación.

Finalización

Una vez que se recopilan y verifican todas las revelaciones, el contrato inteligente puede ejecutar automáticamente los siguientes pasos, ya sea contar votos, determinar los ganadores de la subasta o cualquier otra acción específica de la aplicación.

Auditoría y pruebas

Antes de implementarlo, pruebe exhaustivamente el contrato inteligente para asegurarse de que funcione según lo previsto y esté a salvo de posibles vulnerabilidades. A través de estos pasos, el contrato inteligente orquesta el baile Compromiso-Revelación, asegurando un proceso justo y transparente.

Ejemplo de código

// Identificador de licencia SPDX: solidez pragma MIT 

 ^0.8.0; 

 contrato CommitReveal { 

 struct Commit {

    bytes32 hash;

    bool revealed;

}



mapeo (dirección => Confirmar) confirmaciones públicas; 

 mapeo (dirección => uint256) valores revelados públicos; 



 // La función de confirmación permite a los usuarios enviar sus valores hash 

 function commit(bytes32 _hash) public {

    require(commits[msg.sender].hash == 0, "Already committed");

    commits[msg.sender].hash = _hash;

}



// La función de revelación permite a los usuarios revelar sus valores originales 

 function reveló(uint256 _value, string Memory _salt) public {

    require(commits[msg.sender].revealed == false, "Already revealed");

    require(keccak256(abi.encodePacked(_value, _salt)) == commits[msg.sender].hash, "Hashes don't match");

    commits[msg.sender].revealed = true;

    revealedValues[msg.sender] = _value;

}



// Un ejemplo de función de finalización que podría contar votos 

 function tallyVotes() public view return (uint256) { 

 uint256 totalVotes = 0; 

 para (dirección dirección = dirección (0); dirección < dirección (-1); dirección ++) { 

 si (comprueba [dirección]. revelado) {

            totalVotes += revealedValues[addr];

        }

    }

    devolver totalVotes; 

 } 



 // Una función para auditar el estado del contrato (solo un ejemplo, no práctico para conjuntos de datos grandes) 

 función audit() devuelve la vista pública (mapping(address => uint256) memoria) {

    return revealedValues;

}

 }

Explicación:

  • Creación del contrato: se crea el contrato CommitReveal.
  • La función de confirmación: la función de confirmación acepta un valor hash (_hash) y lo almacena en la dirección del remitente.
  • Almacenamiento de valores confirmados: los valores hash se almacenan en una asignación llamada confirmaciones.
  • La función de revelación: la función de revelación permite a los usuarios enviar su valor original (_value) y una sal (_salt). Comprueba que el hash de estos coincida con el hash comprometido inicialmente.
  • Verificación y Validación: Esto se realiza dentro de la función de revelación comparando hashes.
  • Finalización: La función tallyVotes es un ejemplo simplificado de cómo se pueden contar los votos. Itera a través de todas las direcciones posibles (poco práctico para grandes conjuntos de datos) y suma los valores revelados.
  • Auditoría y pruebas: la función de auditoría es un ejemplo muy simplista de cómo se puede verificar el estado del contrato.

Este es un ejemplo muy simplificado y carece de muchas consideraciones prácticas que necesitaría para un sistema de producción (como prevenir desbordamientos, optimizar el uso de gas, administrar grandes conjuntos de datos y agregar un control de acceso adecuado). La función de finalización, en particular, no es prá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 pretende ser un punto de partida y una herramienta educativa, no una solución lista para producción.

Casos de uso del esquema de compromiso-revelación en Blockchain

Mejora de las plataformas de subastas

Las subastas en línea son una de las aplicaciones por excelencia del esquema Commit-Reveal. Para evitar que otros utilicen los montos de las ofertas como palanca, los participantes pueden presentar sus ofertas de forma encubierta durante la fase de compromiso. Cuando concluye el período de licitación, comienza la fase de revelación, que permite a los participantes revelar sus ofertas. Se determina la oferta válida más alta, lo que garantiza un proceso de subasta justo y competitivo.

Creando sistemas de votación justos

Los sistemas de votación pueden beneficiarse significativamente del esquema 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 con sus elecciones en la fase de confirmación sin revelarlas a otros, lo que garantiza la integridad y el secreto de los votos. Una vez que concluye el período de votación, comienza la fase de revelación, que permite a los votantes revelar sus votos. Luego 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 Compromiso-Revelación. Este proceso garantiza que ninguno de los postores 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 produce la fase de revelación y el contrato se adjudica al postor calificado con la mejor oferta.

Escenarios de juego

El esquema Commit-Reveal encuentra una aplicación divertida en escenarios del juego, como una versión digital de Piedra, Papel y Tijera. Los jugadores comprometen sus elecciones sin revelarlas, lo que garantiza un juego justo. Una vez que ambos jugadores se han comprometido, sigue la fase de revelación, en la que se determina el ganador en función de las decisiones tomadas.

Mitigar los problemas iniciales

En entornos blockchain, la ejecución anticipada es una preocupación en la que los actores maliciosos podrían beneficiarse del conocimiento de las transacciones pendientes. El esquema Commit-Reveal ayuda a mitigar estos problemas al ocultar inicialmente los detalles de la transacción. 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 confirmación y revelación de baja latencia

Las arquitecturas más nuevas como F3B han evolucionado para reducir la sobrecarga asociada con los esquemas tradicionales Commit-Reveal. F3B minimiza la escritura de datos en la cadena de bloques y ofrece una arquitectura de confirmación y revelación de baja latencia. Este desarrollo es notable ya que significa la optimización e innovación continuas en los esquemas Commit-Reveal, haciéndolos más eficientes para aplicaciones del mundo real.

Generación de números aleatorios

En entornos blockchain, generar números aleatorios puede ser un desafío debido a la naturaleza determinista de los protocolos blockchain. El esquema Commit-Reveal sirve como una alternativa descentralizada para generar números aleatorios en la cadena de bloques Ethereum. Por ejemplo, Randao, una implementación de Commit-Reveal RNG, utiliza fuentes de datos públicos 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 generar confianza y apertura en las aplicaciones blockchain. Echamos un vistazo a cómo la tecnología blockchain podría cambiar muchos campos al hacer que las subastas sean justas, los sistemas de votación honestos y los escenarios de juego 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 blockchain presenta nuevos horizontes para explorar. Armado con el conocimiento adquirido a través de este curso, estará 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.

作者: Piero
譯者: Cedar
審校: Matheus、Edward、Ashley He
* 投資有風險,入市須謹慎。本文不作為 Gate.io 提供的投資理財建議或其他任何類型的建議。
* 在未提及 Gate.io 的情況下,複製、傳播或抄襲本文將違反《版權法》,Gate.io 有權追究其法律責任。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!