O que é um esquema Commit-Reveal em Blockchain?

iniciantes11/22/2023, 6:46:03 PM
Aprenda sobre o método Commit-Reveal, uma inovação em blockchain que melhora a privacidade e a segurança em transações digitais descentralizadas.

A tecnologia Blockchain traz abordagens inovadoras para alcançar consenso, segurança e privacidade. Uma dessas inovações é o esquema commit-reveal, um protocolo criptográfico que aumenta a privacidade e a segurança dos usuários do blockchain. Ao navegar neste curso, você revelará as camadas de confiança, transparência e inovação que o esquema Commit-Reveal traz para o domínio digital descentralizado. Cada módulo deste artigo é meticulosamente elaborado para fornecer uma compreensão completa do esquema Commit-Reveal, sua implementação e seu impacto no cenário do blockchain.

O que é Blockchain?

Em sua essência, um blockchain é como um livro-razão digital com uma peculiaridade. Ao contrário dos livros-razão tradicionais, é descentralizado, o que significa que nenhuma entidade tem controle sobre todo o blockchain e é acessível a qualquer pessoa que faça parte de sua rede. Cada ‘bloco’ em uma blockchain carrega uma lista de transações. Depois que um bloco é preenchido com transações, um novo bloco é formado, criando uma 'cadeia' de blocos conectada - daí o nome 'blockchain'.

Uma das características brilhantes do blockchain é a ênfase na confiança e na transparência. Qualquer pessoa na rede tem acesso e pode visualizar todas as transações em um blockchain. Esta abertura desencoraja a desonestidade e promove a confiança entre a comunidade. Você deve estar se perguntando: como isso atinge tal nível de transparência? A resposta está em seus mecanismos de consenso e princípios criptográficos únicos, nos quais nos aprofundaremos à medida que avançamos neste curso.

Introdução ao esquema Commit-Reveal

Agora que você tem uma ideia do que é blockchain, vamos apresentar um sabor especial a ele - o esquema Commit-Reveal. É como um show de mágica onde um mágico (o usuário) primeiro se compromete com um determinado ato sem revelá-lo ao público (a rede) e depois, numa fase posterior, revela o ato. Em termos de blockchain, este é um processo de duas etapas: a ‘Fase de Confirmação’ e a ‘Fase de Revelação’.

Na fase de confirmação, um usuário envia uma versão com hash de suas informações para o blockchain. Esta versão com hash é como uma versão embaralhada da informação original que oculta o conteúdo real. A mágica da função hash é que ela é uma jornada só de ida; você não pode desembaralhar o hash de volta à sua forma original, mantendo assim a informação em segredo por enquanto. Depois vem a Fase de Revelação, onde o usuário revela a informação original, que é então verificada pela rede fazendo hash novamente e comparando-a com o hash confirmado inicial, se corresponder, voila! A rede confirma a revelação e o truque de mágica está completo.

Através do esquema Commit-Reveal, as redes blockchain podem atingir um novo nível de envolvimento em aplicações como leilões, sistemas de votação e muito mais, que exploraremos em detalhes nos próximos módulos.

A fase de confirmação

À medida que navegamos nas profundezas do esquema Commit-Reveal, nossa primeira parada é a 'Fase Commit'. Nesta fase, os usuários “comprometem-se” com um determinado valor, mas o fazem de uma forma que mantém o valor real em segredo. Imagine que você tem um número secreto em mente, mas em vez de contar a todos o que é, você o coloca em uma caixa trancada e mostra a todos. Eles sabem que você tem um número, mas não sabem qual é. É disso que se trata o comprometimento no blockchain!

Agora, como guardamos nosso valor secreto? No mundo blockchain, usamos algo chamado função hash para fazer isso. Uma função hash é como um liquidificador mágico. Você insere seu valor secreto e ele exibe uma versão embaralhada dele, conhecida como hash. Este hash é único; mesmo uma pequena alteração no valor original cria um hash totalmente diferente. A beleza disso é que é um processo unilateral - uma vez que o valor é hash, não há uma maneira fácil de descobrir o valor original do hash. Assim, quando os usuários comprometem seu valor, o que eles realmente fazem é compartilhar o hash de seu valor com todos no blockchain.

A fase de revelação

Depois do suspense construído na Fase de Comprometimento, é hora da grande revelação! A Fase de Revelação é onde os valores comprometidos são finalmente revelados a todos os participantes do blockchain. Voltando à nossa analogia da caixa trancada, este é o momento em que a caixa é aberta e todos podem ver qual número você escondeu. No mundo do blockchain, a revelação é um processo simples, mas crucial, que proporciona transparência e justiça em diversas aplicações.

Quando um usuário revela seu valor comprometido, a rede pode facilmente verificar sua autenticidade fazendo hash do valor revelado e comparando-o com o hash original compartilhado durante a fase de confirmação. Se os hashes corresponderem, isso confirma que o usuário não mudou de ideia no meio do caminho. Este processo de verificação simples, mas poderoso, ajuda a manter um ambiente confiável onde todos cumprem as regras. É como ter um árbitro num jogo, garantindo que todos os jogadores cumpram os termos acordados.

Implementando Commit-Reveal em Contratos Inteligentes

Agora que desvendamos a magia do esquema Commit-Reveal, vamos ver como ele ganha vida no mundo blockchain por meio de contratos inteligentes. Um contrato inteligente é como um contrato tradicional, mas é digital e autoexecutável. Imagine um robô imparcial que garanta automaticamente que todas as partes cumpram seus acordos, e você terá a ideia de um contrato inteligente. É a ferramenta que pega a ideia teórica do Commit-Reveal e a torna prática no mundo digital. Implementar um esquema Commit-Reveal por meio de um contrato inteligente é como coreografar uma dança onde cada passo segue um ritmo definido. Vamos percorrer essa coreografia passo a passo.

Criando o contrato

Comece criando um contrato inteligente em uma plataforma blockchain como Ethereum. Este contrato terá as regras de compromisso para o esquema Commit-Reveal codificadas nele.

A função de confirmação

Projete uma função de commit dentro do contrato inteligente. Esta função permitirá que os usuários enviem seus valores hash (a fase de commit) ao contrato.

Armazenando Valores Confirmados

À medida que os usuários comprometem seus valores, o contrato inteligente armazenará esses hashes de forma segura no blockchain, aguardando a fase de revelação.

A função de revelação

A seguir, dentro do contrato inteligente, crie uma função de revelação. Quando chegar a hora, esta função permitirá aos usuários revelar seus valores originais.

Verificação e validação

Após a revelação, o contrato inteligente verificará os valores revelados, fazendo hash deles e comparando-os com os hashes inicialmente comprometidos. Se tudo corresponder, a revelação é validada.

Finalização

Depois que todas as revelações forem coletadas e verificadas, o contrato inteligente pode executar automaticamente as próximas etapas, seja a contagem de votos, a determinação dos vencedores do leilão ou qualquer outra ação específica do aplicativo.

Auditoria e Teste

Antes de implantar, teste minuciosamente o contrato inteligente para garantir que ele funcione conforme planejado e esteja protegido contra possíveis explorações. Através destas etapas, o contrato inteligente orquestra a dança Commit-Reveal, garantindo um processo justo e transparente.

Exemplo de código

// Identificador de licença SPDX: solidez do pragma do MIT 

 ^0.8.0; 

 contratos CommitReveal { 

 struct Commit {

    bytes32 hash;

    bool revealed;

}



mapeamento (endereço => Commit) commits públicos; 

 mapeamento (endereço => uint256) valores revelados públicos; 



 // A função commit permite que os usuários enviem seus valores hash 

 function commit(bytes32 _hash) public {

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

    commits[msg.sender].hash = _hash;

}



// A função revelador permite que os usuários revelem seus valores originais 

 function revelado(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;

}



// Um exemplo de função de finalização que pode contabilizar votos 

 function tallyVotes() public view return (uint256) { 

 uint256 totalVotes = 0; 

 para (endereço endereço = endereço(0); endereço < endereço(-1); endereço++) { 

 if (commits[addr].revealed) {

            totalVotes += revealedValues[addr];

        }

    }

    return totalVotes; 

 } 



 // Uma função para auditar o estado do contrato (apenas um exemplo, não prático para grandes conjuntos de dados) 

 function audit() public view return (mapping(address => uint256) memory) {

    return revealedValues;

}

 }

Explicação:

  • Criando o contrato: O contrato CommitReveal é criado.
  • A função Commit: A função commit aceita um valor hash (_hash) e o armazena no endereço do remetente.
  • Armazenando Valores Confirmados: Os valores hash são armazenados em um mapeamento chamado commits.
  • A função Revelar: A função revelar permite que os usuários enviem seu valor original (_value) e um salt (_salt). Ele verifica se o hash destes corresponde ao hash inicialmente confirmado.
  • Verificação e Validação: Isso é feito na função de revelação comparando hashes.
  • Finalização: A função tallyVotes é um exemplo simplificado de como você pode contabilizar votos. Ele itera por todos os endereços possíveis (impraticável para grandes conjuntos de dados) e soma os valores revelados.
  • Auditoria e Teste: A função de auditoria é um exemplo muito simplista de como você pode verificar o estado do contrato.

Este é um exemplo muito simplificado e carece de muitas considerações práticas necessárias para um sistema de produção (como evitar transbordamentos, otimizar o uso de gás, gerenciar grandes conjuntos de dados e adicionar controle de acesso adequado). A função de finalização, em particular, é impraticável devido à iteração em todos os endereços possíveis e necessitaria de um design diferente num cenário do mundo real. Este código pretende ser um ponto de partida e uma ferramenta educacional, não uma solução pronta para produção.

Casos de uso do esquema Commit-Reveal em Blockchain

Aprimorando plataformas de leilão

Os leilões online são uma das aplicações essenciais do esquema Commit-Reveal. Para evitar que outros utilizem os valores das propostas como alavancagem, os participantes podem enviar as suas propostas secretamente durante a fase de compromisso. Terminado o período de licitações, entra em ação a fase de revelação, permitindo que os participantes divulguem seus lances. O lance válido mais alto é determinado, garantindo um processo de leilão justo e competitivo.

Criando Sistemas de Votação Justos

Os sistemas de votação podem beneficiar significativamente do esquema Commit-Reveal, especialmente em cenários que exigem anonimato e honestidade dos eleitores. Nesta configuração, durante as eleições ou qualquer evento de votação, os eleitores comprometem-se com as suas escolhas na fase de commit sem revelá-las a terceiros, garantindo a integridade e o sigilo dos votos. Terminado o período de votação, começa a fase de revelação, permitindo que os eleitores divulguem seus votos. Estes são então computados para determinar o resultado, promovendo um processo de votação justo e transparente.

Contratos de licitação selada

Nos contratos de licitação selada, os licitantes apresentam suas propostas ocultas usando o esquema Commit-Reveal. Este processo garante que nenhum dos licitantes conheça os valores das propostas dos outros, promovendo uma concorrência leal. Após o período de apresentação de propostas, ocorre a fase de revelação e o contrato é adjudicado ao licitante qualificado com a melhor oferta.

Cenários de jogo

O esquema Commit-Reveal encontra uma aplicação divertida em cenários de jogo, como uma versão digital de Pedra, Papel e Tesoura. Os jogadores cometem suas escolhas sem revelá-las, garantindo um jogo justo. Assim que ambos os jogadores se comprometerem, segue-se a fase de revelação, determinando o vencedor com base nas escolhas feitas.

Mitigando problemas iniciais

Em ambientes blockchain, o front-running é uma preocupação onde atores mal-intencionados poderiam potencialmente se beneficiar do conhecimento de transações pendentes. O esquema Commit-Reveal ajuda a mitigar esses problemas, ocultando inicialmente os detalhes da transação. Quando chega a fase de revelação, é tarde demais para que atores mal-intencionados atuem com base nas informações, preservando assim a integridade da transação.

Arquiteturas de confirmação e revelação de baixa latência

Arquiteturas mais recentes, como F3B, evoluíram para reduzir a sobrecarga associada aos esquemas tradicionais de Commit-Reveal. F3B minimiza a gravação de dados no blockchain, oferecendo uma arquitetura Commit-and-Reveal de baixa latência. Este desenvolvimento é notável porque significa a otimização e inovação contínuas nos esquemas Commit-Reveal, tornando-os mais eficientes para aplicações do mundo real.

Geração de números aleatórios

Em ambientes blockchain, a geração de números aleatórios pode ser um desafio devido à natureza determinística dos protocolos blockchain. O esquema Commit-Reveal serve como uma alternativa descentralizada para geração de números aleatórios na blockchain Ethereum. Por exemplo, Randao, uma implementação RNG Commit-Reveal, utiliza feeds de dados públicos e incentiva a participação na geração de números aleatórios.

Conclusão

À medida que esta interessante visão do esquema Commit-Reveal chega ao fim, é importante considerar como este mecanismo simples, mas poderoso, ajuda a construir confiança e abertura em aplicações blockchain. Demos uma espiada em como a tecnologia blockchain pode mudar muitos campos, tornando os leilões justos, os sistemas de votação honestos e os cenários dos jogos mais criativos, entre outras coisas, com o esquema Commit-Reveal. A jornada não termina aqui; a natureza em constante evolução da tecnologia blockchain apresenta novos horizontes a explorar. Munido do conhecimento adquirido neste curso, você estará bem posicionado para se aprofundar no blockchain, explorar suas infinitas possibilidades e contribuir para moldar um futuro digital transparente, justo e descentralizado.

Autor: Piero
Tradutor: Cedar
Revisores: Matheus、Edward、Ashley He
* As informações não pretendem ser e não constituem aconselhamento financeiro ou qualquer outra recomendação de qualquer tipo oferecida ou endossada pela Gate.io.
* Este artigo não pode ser reproduzido, transmitido ou copiado sem referência à Gate.io. A contravenção é uma violação da Lei de Direitos Autorais e pode estar sujeita a ação legal.

O que é um esquema Commit-Reveal em Blockchain?

iniciantes11/22/2023, 6:46:03 PM
Aprenda sobre o método Commit-Reveal, uma inovação em blockchain que melhora a privacidade e a segurança em transações digitais descentralizadas.

A tecnologia Blockchain traz abordagens inovadoras para alcançar consenso, segurança e privacidade. Uma dessas inovações é o esquema commit-reveal, um protocolo criptográfico que aumenta a privacidade e a segurança dos usuários do blockchain. Ao navegar neste curso, você revelará as camadas de confiança, transparência e inovação que o esquema Commit-Reveal traz para o domínio digital descentralizado. Cada módulo deste artigo é meticulosamente elaborado para fornecer uma compreensão completa do esquema Commit-Reveal, sua implementação e seu impacto no cenário do blockchain.

O que é Blockchain?

Em sua essência, um blockchain é como um livro-razão digital com uma peculiaridade. Ao contrário dos livros-razão tradicionais, é descentralizado, o que significa que nenhuma entidade tem controle sobre todo o blockchain e é acessível a qualquer pessoa que faça parte de sua rede. Cada ‘bloco’ em uma blockchain carrega uma lista de transações. Depois que um bloco é preenchido com transações, um novo bloco é formado, criando uma 'cadeia' de blocos conectada - daí o nome 'blockchain'.

Uma das características brilhantes do blockchain é a ênfase na confiança e na transparência. Qualquer pessoa na rede tem acesso e pode visualizar todas as transações em um blockchain. Esta abertura desencoraja a desonestidade e promove a confiança entre a comunidade. Você deve estar se perguntando: como isso atinge tal nível de transparência? A resposta está em seus mecanismos de consenso e princípios criptográficos únicos, nos quais nos aprofundaremos à medida que avançamos neste curso.

Introdução ao esquema Commit-Reveal

Agora que você tem uma ideia do que é blockchain, vamos apresentar um sabor especial a ele - o esquema Commit-Reveal. É como um show de mágica onde um mágico (o usuário) primeiro se compromete com um determinado ato sem revelá-lo ao público (a rede) e depois, numa fase posterior, revela o ato. Em termos de blockchain, este é um processo de duas etapas: a ‘Fase de Confirmação’ e a ‘Fase de Revelação’.

Na fase de confirmação, um usuário envia uma versão com hash de suas informações para o blockchain. Esta versão com hash é como uma versão embaralhada da informação original que oculta o conteúdo real. A mágica da função hash é que ela é uma jornada só de ida; você não pode desembaralhar o hash de volta à sua forma original, mantendo assim a informação em segredo por enquanto. Depois vem a Fase de Revelação, onde o usuário revela a informação original, que é então verificada pela rede fazendo hash novamente e comparando-a com o hash confirmado inicial, se corresponder, voila! A rede confirma a revelação e o truque de mágica está completo.

Através do esquema Commit-Reveal, as redes blockchain podem atingir um novo nível de envolvimento em aplicações como leilões, sistemas de votação e muito mais, que exploraremos em detalhes nos próximos módulos.

A fase de confirmação

À medida que navegamos nas profundezas do esquema Commit-Reveal, nossa primeira parada é a 'Fase Commit'. Nesta fase, os usuários “comprometem-se” com um determinado valor, mas o fazem de uma forma que mantém o valor real em segredo. Imagine que você tem um número secreto em mente, mas em vez de contar a todos o que é, você o coloca em uma caixa trancada e mostra a todos. Eles sabem que você tem um número, mas não sabem qual é. É disso que se trata o comprometimento no blockchain!

Agora, como guardamos nosso valor secreto? No mundo blockchain, usamos algo chamado função hash para fazer isso. Uma função hash é como um liquidificador mágico. Você insere seu valor secreto e ele exibe uma versão embaralhada dele, conhecida como hash. Este hash é único; mesmo uma pequena alteração no valor original cria um hash totalmente diferente. A beleza disso é que é um processo unilateral - uma vez que o valor é hash, não há uma maneira fácil de descobrir o valor original do hash. Assim, quando os usuários comprometem seu valor, o que eles realmente fazem é compartilhar o hash de seu valor com todos no blockchain.

A fase de revelação

Depois do suspense construído na Fase de Comprometimento, é hora da grande revelação! A Fase de Revelação é onde os valores comprometidos são finalmente revelados a todos os participantes do blockchain. Voltando à nossa analogia da caixa trancada, este é o momento em que a caixa é aberta e todos podem ver qual número você escondeu. No mundo do blockchain, a revelação é um processo simples, mas crucial, que proporciona transparência e justiça em diversas aplicações.

Quando um usuário revela seu valor comprometido, a rede pode facilmente verificar sua autenticidade fazendo hash do valor revelado e comparando-o com o hash original compartilhado durante a fase de confirmação. Se os hashes corresponderem, isso confirma que o usuário não mudou de ideia no meio do caminho. Este processo de verificação simples, mas poderoso, ajuda a manter um ambiente confiável onde todos cumprem as regras. É como ter um árbitro num jogo, garantindo que todos os jogadores cumpram os termos acordados.

Implementando Commit-Reveal em Contratos Inteligentes

Agora que desvendamos a magia do esquema Commit-Reveal, vamos ver como ele ganha vida no mundo blockchain por meio de contratos inteligentes. Um contrato inteligente é como um contrato tradicional, mas é digital e autoexecutável. Imagine um robô imparcial que garanta automaticamente que todas as partes cumpram seus acordos, e você terá a ideia de um contrato inteligente. É a ferramenta que pega a ideia teórica do Commit-Reveal e a torna prática no mundo digital. Implementar um esquema Commit-Reveal por meio de um contrato inteligente é como coreografar uma dança onde cada passo segue um ritmo definido. Vamos percorrer essa coreografia passo a passo.

Criando o contrato

Comece criando um contrato inteligente em uma plataforma blockchain como Ethereum. Este contrato terá as regras de compromisso para o esquema Commit-Reveal codificadas nele.

A função de confirmação

Projete uma função de commit dentro do contrato inteligente. Esta função permitirá que os usuários enviem seus valores hash (a fase de commit) ao contrato.

Armazenando Valores Confirmados

À medida que os usuários comprometem seus valores, o contrato inteligente armazenará esses hashes de forma segura no blockchain, aguardando a fase de revelação.

A função de revelação

A seguir, dentro do contrato inteligente, crie uma função de revelação. Quando chegar a hora, esta função permitirá aos usuários revelar seus valores originais.

Verificação e validação

Após a revelação, o contrato inteligente verificará os valores revelados, fazendo hash deles e comparando-os com os hashes inicialmente comprometidos. Se tudo corresponder, a revelação é validada.

Finalização

Depois que todas as revelações forem coletadas e verificadas, o contrato inteligente pode executar automaticamente as próximas etapas, seja a contagem de votos, a determinação dos vencedores do leilão ou qualquer outra ação específica do aplicativo.

Auditoria e Teste

Antes de implantar, teste minuciosamente o contrato inteligente para garantir que ele funcione conforme planejado e esteja protegido contra possíveis explorações. Através destas etapas, o contrato inteligente orquestra a dança Commit-Reveal, garantindo um processo justo e transparente.

Exemplo de código

// Identificador de licença SPDX: solidez do pragma do MIT 

 ^0.8.0; 

 contratos CommitReveal { 

 struct Commit {

    bytes32 hash;

    bool revealed;

}



mapeamento (endereço => Commit) commits públicos; 

 mapeamento (endereço => uint256) valores revelados públicos; 



 // A função commit permite que os usuários enviem seus valores hash 

 function commit(bytes32 _hash) public {

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

    commits[msg.sender].hash = _hash;

}



// A função revelador permite que os usuários revelem seus valores originais 

 function revelado(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;

}



// Um exemplo de função de finalização que pode contabilizar votos 

 function tallyVotes() public view return (uint256) { 

 uint256 totalVotes = 0; 

 para (endereço endereço = endereço(0); endereço < endereço(-1); endereço++) { 

 if (commits[addr].revealed) {

            totalVotes += revealedValues[addr];

        }

    }

    return totalVotes; 

 } 



 // Uma função para auditar o estado do contrato (apenas um exemplo, não prático para grandes conjuntos de dados) 

 function audit() public view return (mapping(address => uint256) memory) {

    return revealedValues;

}

 }

Explicação:

  • Criando o contrato: O contrato CommitReveal é criado.
  • A função Commit: A função commit aceita um valor hash (_hash) e o armazena no endereço do remetente.
  • Armazenando Valores Confirmados: Os valores hash são armazenados em um mapeamento chamado commits.
  • A função Revelar: A função revelar permite que os usuários enviem seu valor original (_value) e um salt (_salt). Ele verifica se o hash destes corresponde ao hash inicialmente confirmado.
  • Verificação e Validação: Isso é feito na função de revelação comparando hashes.
  • Finalização: A função tallyVotes é um exemplo simplificado de como você pode contabilizar votos. Ele itera por todos os endereços possíveis (impraticável para grandes conjuntos de dados) e soma os valores revelados.
  • Auditoria e Teste: A função de auditoria é um exemplo muito simplista de como você pode verificar o estado do contrato.

Este é um exemplo muito simplificado e carece de muitas considerações práticas necessárias para um sistema de produção (como evitar transbordamentos, otimizar o uso de gás, gerenciar grandes conjuntos de dados e adicionar controle de acesso adequado). A função de finalização, em particular, é impraticável devido à iteração em todos os endereços possíveis e necessitaria de um design diferente num cenário do mundo real. Este código pretende ser um ponto de partida e uma ferramenta educacional, não uma solução pronta para produção.

Casos de uso do esquema Commit-Reveal em Blockchain

Aprimorando plataformas de leilão

Os leilões online são uma das aplicações essenciais do esquema Commit-Reveal. Para evitar que outros utilizem os valores das propostas como alavancagem, os participantes podem enviar as suas propostas secretamente durante a fase de compromisso. Terminado o período de licitações, entra em ação a fase de revelação, permitindo que os participantes divulguem seus lances. O lance válido mais alto é determinado, garantindo um processo de leilão justo e competitivo.

Criando Sistemas de Votação Justos

Os sistemas de votação podem beneficiar significativamente do esquema Commit-Reveal, especialmente em cenários que exigem anonimato e honestidade dos eleitores. Nesta configuração, durante as eleições ou qualquer evento de votação, os eleitores comprometem-se com as suas escolhas na fase de commit sem revelá-las a terceiros, garantindo a integridade e o sigilo dos votos. Terminado o período de votação, começa a fase de revelação, permitindo que os eleitores divulguem seus votos. Estes são então computados para determinar o resultado, promovendo um processo de votação justo e transparente.

Contratos de licitação selada

Nos contratos de licitação selada, os licitantes apresentam suas propostas ocultas usando o esquema Commit-Reveal. Este processo garante que nenhum dos licitantes conheça os valores das propostas dos outros, promovendo uma concorrência leal. Após o período de apresentação de propostas, ocorre a fase de revelação e o contrato é adjudicado ao licitante qualificado com a melhor oferta.

Cenários de jogo

O esquema Commit-Reveal encontra uma aplicação divertida em cenários de jogo, como uma versão digital de Pedra, Papel e Tesoura. Os jogadores cometem suas escolhas sem revelá-las, garantindo um jogo justo. Assim que ambos os jogadores se comprometerem, segue-se a fase de revelação, determinando o vencedor com base nas escolhas feitas.

Mitigando problemas iniciais

Em ambientes blockchain, o front-running é uma preocupação onde atores mal-intencionados poderiam potencialmente se beneficiar do conhecimento de transações pendentes. O esquema Commit-Reveal ajuda a mitigar esses problemas, ocultando inicialmente os detalhes da transação. Quando chega a fase de revelação, é tarde demais para que atores mal-intencionados atuem com base nas informações, preservando assim a integridade da transação.

Arquiteturas de confirmação e revelação de baixa latência

Arquiteturas mais recentes, como F3B, evoluíram para reduzir a sobrecarga associada aos esquemas tradicionais de Commit-Reveal. F3B minimiza a gravação de dados no blockchain, oferecendo uma arquitetura Commit-and-Reveal de baixa latência. Este desenvolvimento é notável porque significa a otimização e inovação contínuas nos esquemas Commit-Reveal, tornando-os mais eficientes para aplicações do mundo real.

Geração de números aleatórios

Em ambientes blockchain, a geração de números aleatórios pode ser um desafio devido à natureza determinística dos protocolos blockchain. O esquema Commit-Reveal serve como uma alternativa descentralizada para geração de números aleatórios na blockchain Ethereum. Por exemplo, Randao, uma implementação RNG Commit-Reveal, utiliza feeds de dados públicos e incentiva a participação na geração de números aleatórios.

Conclusão

À medida que esta interessante visão do esquema Commit-Reveal chega ao fim, é importante considerar como este mecanismo simples, mas poderoso, ajuda a construir confiança e abertura em aplicações blockchain. Demos uma espiada em como a tecnologia blockchain pode mudar muitos campos, tornando os leilões justos, os sistemas de votação honestos e os cenários dos jogos mais criativos, entre outras coisas, com o esquema Commit-Reveal. A jornada não termina aqui; a natureza em constante evolução da tecnologia blockchain apresenta novos horizontes a explorar. Munido do conhecimento adquirido neste curso, você estará bem posicionado para se aprofundar no blockchain, explorar suas infinitas possibilidades e contribuir para moldar um futuro digital transparente, justo e descentralizado.

Autor: Piero
Tradutor: Cedar
Revisores: Matheus、Edward、Ashley He
* As informações não pretendem ser e não constituem aconselhamento financeiro ou qualquer outra recomendação de qualquer tipo oferecida ou endossada pela Gate.io.
* Este artigo não pode ser reproduzido, transmitido ou copiado sem referência à Gate.io. A contravenção é uma violação da Lei de Direitos Autorais e pode estar sujeita a ação legal.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!