O que é um esquema de compromisso no universo cripto?
Um esquema de compromisso é um método criptográfico que permite a alguém fixar um valor sem revelá-lo até decidir divulgá-lo posteriormente.No universo cripto, um esquema de compromisso costuma ser usado quando uma blockchain, um contrato inteligente, uma carteira ou um sistema de conhecimento zero precisa comprovar que os dados existiam em determinada forma, sem revelar esses dados imediatamente.A maneira mais simples de entender um esquema de compromisso é imaginá-lo como colocar uma mensagem secreta dentro de uma caixa trancada.Outras pessoas conseguem ver a caixa trancada, mas não conseguem ler a mensagem dentro dela.Mais tarde, quem criou a caixa pode abri-la e comprovar que a mensagem é a mesma que havia colocado ali antes.Essa ideia é importante porque muitos sistemas blockchain precisam tanto de privacidade quanto de responsabilização.Um usuário pode precisar provar que uma transação segue as regras sem revelar todos os detalhes dela.Um protocolo pode precisar provar que os dados foram incluídos em um bloco sem obrigar todos os usuários a baixar todos esses dados.Um aplicativo descentralizado pode precisar comprovar que um usuário fez uma escolha antes de um prazo sem revelar essa escolha antes da fase de revelação.Um esquema de compromisso ajuda a alcançar esses objetivos ao combinar duas propriedades fundamentais: ocultação e vinculação.Ocultação significa que o compromisso não deve revelar o valor secreto antes de ser aberto.Vinculação significa que quem criou o compromisso não deve conseguir alterar o valor oculto depois de sua criação.Por que os esquemas de compromisso são importantes para as criptomoedas
Os esquemas de compromisso fazem parte da base criptográfica de muitos sistemas cripto avançados.Eles ajudam as blockchains a oferecer privacidade, escalabilidade, ordenação justa, sistemas de prova, disponibilidade de dados e fluxos de trabalho seguros com contratos inteligentes.Sem esquemas de compromisso, muitos projetos cripto precisariam revelar dados demais on-chain.Revelar dados demais pode prejudicar a privacidade dos usuários, aumentar os requisitos de armazenamento e facilitar a manipulação de alguns aplicativos.Os compromissos permitem que um sistema publique um valor criptográfico curto em vez de todos os dados ocultos.Esse valor curto pode funcionar como uma impressão digital dos dados ocultos.Qualquer pessoa pode armazenar e verificar essa impressão digital posteriormente, mas ela não deve revelar, por si só, o segredo original.Esse projeto é especialmente útil em blockchains públicas, pois elas são transparentes por padrão.A transparência é útil para auditoria, mas pode criar problemas de privacidade quando os usuários precisam proteger saldos, estratégias, ofertas, votos, identidades ou detalhes de transações.Os esquemas de compromisso ajudam os sistemas cripto a manter dados importantes em sigilo e, ao mesmo tempo, permitir sua verificação.Os recursos do NIST sobre criptografia com proteção de privacidade incluem esquemas de compromisso entre as ferramentas usadas nessa área.
Isso importa para o universo cripto porque a criptografia com proteção de privacidade ajuda os usuários a comprovar fatos sobre dados sem expor mais informações do que o necessário.Como funciona um esquema de compromisso
Um esquema de compromisso básico tem duas etapas principais: comprometer e revelar.Na etapa de compromisso, o usuário escolhe um valor secreto e cria um compromisso com base nele.O compromisso é então publicado, armazenado ou enviado a outra parte.Nesse momento, outras pessoas podem ver o compromisso, mas não devem conseguir descobrir o valor secreto a partir dele.Na etapa de revelação, o usuário compartilha o valor original e quaisquer dados adicionais necessários para abrir o compromisso e verificá-lo.Em seguida, outras pessoas verificam se o valor revelado corresponde ao compromisso anterior.Se a verificação for bem-sucedida, a revelação é aceita.Se a verificação falhar, o sistema rejeita a revelação porque o usuário está tentando abrir o compromisso com um valor diferente.Em linguagem simples, um compromisso baseado em hash pode ser expresso assim: compromisso = hash do valor secreto mais um número aleatório.Dependendo do projeto, esse número aleatório costuma ser chamado de nonce, salt, fator de ocultação ou aleatoriedade.O número aleatório é importante porque valores simples às vezes podem ser adivinhados.Por exemplo, se o valor secreto for apenas “sim” ou “não”, alguém pode calcular o hash das duas respostas possíveis e compará-los com o compromisso publicado.Adicionar uma aleatoriedade forte torna as tentativas de adivinhação muito mais difíceis.Quando o usuário revela o valor secreto e a aleatoriedade, qualquer pessoa pode recalcular o hash e verificar se ele corresponde ao compromisso publicado.As duas propriedades principais: ocultação e vinculação
Ocultação significa que um compromisso não deve vazar o valor oculto antes da fase de revelação.Se o compromisso ocultar os dados corretamente, os observadores não devem conseguir olhar para ele e descobrir os dados comprometidos.Essa propriedade protege a privacidade em aplicativos cripto.Por exemplo, um trader pode querer se comprometer com uma oferta sigilosa sem revelar o preço da oferta antes do fim do leilão.Um usuário de carteira pode querer provar que pertence a um grupo sem revelar exatamente de qual membro se trata.Um protocolo pode querer provar que os dados de uma transação foram comprometidos sem armazenar todos os dados permanentemente em um contrato inteligente.Vinculação significa que um compromisso não pode ser aberto com dois valores diferentes.Se o compromisso tiver vinculação adequada, seu criador não poderá se comprometer com um valor e depois revelar outro valor que também passe pela verificação.Essa propriedade favorece a justiça e a integridade.Por exemplo, um usuário em um sistema de votação com compromisso e revelação não deve conseguir mudar seu voto depois de ver como os outros votaram.Um participante de um processo de geração de números aleatórios não deve conseguir alterar sua seed comprometida depois de ver as seeds dos outros participantes.Um sistema de prova não deve permitir que o provador altere os dados ocultos depois que o compromisso já tiver sido aceito.Um bom esquema de compromisso é projetado para que a ocultação e a vinculação funcionem em conjunto.Se a ocultação for fraca, informações privadas podem vazar.Se a vinculação for fraca, o compromisso pode não ser confiável.Esquemas de compromisso e funções hash
Muitos esquemas de compromisso simples usam funções hash criptográficas.Uma função hash criptográfica recebe uma entrada e produz uma saída de tamanho fixo que parece aleatória.No universo cripto, as funções hash são amplamente usadas em cabeçalhos de blocos, identificadores de transações, árvores de Merkle, sistemas de endereços e verificações de integridade de dados.O NIST FIPS 180-4 Secure Hash Standard descreve algoritmos hash seguros aprovados para gerar resumos de mensagens.
Em um compromisso baseado em hash, o usuário geralmente combina os dados secretos com um valor aleatório e aplica hash à entrada combinada.O hash resultante se torna o compromisso.O valor aleatório ajuda a proteger segredos de baixa entropia contra tentativas de adivinhação por força bruta.Baixa entropia significa que o segredo tem poucas possibilidades.Um voto oculto, um número pequeno ou uma frase previsível podem ter baixa entropia se nenhuma aleatoriedade for adicionada.Os compromissos baseados em hash são populares porque são simples, rápidos e fáceis de verificar.No entanto, precisam ser projetados com cuidado.O sistema deve definir como os valores são codificados, quanta aleatoriedade é necessária, qual função hash é usada e como a verificação lida com entradas inválidas.Uma codificação inadequada pode gerar confusão quando entradas diferentes produzem a mesma mensagem interpretada.Aleatoriedade fraca pode permitir que invasores adivinhem o valor oculto.Funções hash desatualizadas podem reduzir a segurança ao longo do tempo.Esquemas de compromisso e provas de conhecimento zero
Os esquemas de compromisso estão estreitamente ligados às provas de conhecimento zero.Uma prova de conhecimento zero permite que uma parte prove que uma afirmação é verdadeira sem revelar as informações privadas que a sustentam.O guia da ethereum.org sobre provas de conhecimento zero explica como essa tecnologia pode verificar computações e contribuir para a escalabilidade e a privacidade de blockchains.
Em muitos sistemas de conhecimento zero, os compromissos são usados para fixar dados privados testemunha antes ou durante o processo de prova.A testemunha é a informação privada que permite provar uma afirmação.Por exemplo, um usuário pode provar que conhece uma chave secreta, tem fundos suficientes ou atende a uma regra sem revelar a chave secreta, o saldo exato ou o caminho privado da transação.O compromisso permite que o sistema faça referência a dados ocultos de maneira estável.Em seguida, a prova demonstra que os dados comprometidos atendem à condição exigida.Isso permite a verificação sem a divulgação completa.No universo cripto, esse padrão pode ajudar a viabilizar pagamentos privados, declarações privadas de identidade, saldos protegidos, transferências confidenciais e verificação de rollups.O compromisso não é toda a prova de conhecimento zero, mas costuma ser um dos componentes que a tornam possível.Esquemas de compromisso e árvores de Merkle
Uma árvore de Merkle é uma estrutura de dados que usa hashes para se comprometer com muitos dados de uma só vez.O hash no topo de uma árvore de Merkle é chamado de raiz de Merkle.A raiz de Merkle funciona como um compromisso com todos os dados da árvore.Se até mesmo um item da árvore mudar, a raiz também deverá mudar.Isso torna as árvores de Merkle úteis para blockchains, pois um bloco pode se comprometer com muitas transações usando uma única raiz compacta.Mais tarde, um usuário pode provar que uma transação específica foi incluída na árvore fornecendo uma prova de Merkle.O verificador não precisa baixar todas as transações da árvore para conferir a prova.Isso permite uma verificação eficiente.Compromissos de Merkle são comuns no universo cripto porque são simples, transparentes e compatíveis com muitos projetos de blockchain.São usados em provas de inclusão de transações, compromissos de estado de contas, raízes de estado de rollups, verificação de bridges e provas de pertencimento voltadas à privacidade.Em um sistema de privacidade, uma raiz de Merkle pode se comprometer com um grande conjunto de notas, identidades ou depósitos válidos.Assim, um usuário pode provar que seu item pertence ao conjunto sem revelar todos os detalhes privados.Compromissos polinomiais e a escalabilidade moderna de blockchain
Um compromisso polinomial é um tipo mais avançado de esquema de compromisso.Ele permite que um provador se comprometa com um polinômio e, posteriormente, prove que o polinômio tem determinado valor em um ponto específico.Isso pode parecer abstrato, mas é muito útil na escalabilidade moderna de blockchain e nos sistemas de conhecimento zero.Muitos sistemas de prova convertem computações em relações polinomiais.Se essas relações polinomiais puderem ser comprometidas e verificadas com eficiência, o sistema poderá verificar grandes computações com provas menores.Os compromissos KZG são um tipo conhecido de compromisso polinomial usado em pesquisas e projetos de protocolos blockchain.A especificação de consenso do Ethereum para compromissos polinomiais define as operações de compromisso KZG usadas nas especificações do protocolo Deneb.
A especificação EIP-4844 inclui compromissos KZG para blobs, que são objetos de dados usados para permitir que rollups publiquem dados com mais eficiência.
Esse é um dos principais motivos pelos quais os esquemas de compromisso são importantes para além da privacidade.Eles também ajudam blockchains a escalar ao facilitar a verificação de que dados ou computações foram processados corretamente.Uma blockchain nem sempre precisa colocar todos os detalhes diretamente na camada de execução mais custosa.Em vez disso, pode publicar compromissos e provas que permitem aos usuários e validadores verificar afirmações importantes com mais eficiência.Compromissos de Pedersen no universo cripto
Um compromisso de Pedersen é um esquema de compromisso baseado em criptografia de curva elíptica.Ele é bastante discutido no universo cripto porque pode ocultar valores e, ao mesmo tempo, permitir operações matemáticas úteis com os valores comprometidos.Uma característica importante dos compromissos de Pedersen é que eles podem ser homomórficos.Homomórfico significa que, em alguns casos, os compromissos podem ser combinados de uma forma que corresponde às operações feitas com os valores ocultos.Por exemplo, dois compromissos com valores ocultos podem ser combinados para formar um compromisso com a soma desses valores.Essa propriedade é útil em projetos de transações confidenciais.Um sistema de transações confidenciais pode precisar provar que as entradas são iguais às saídas sem revelar os valores exatos transferidos.Compromissos do tipo Pedersen podem ajudar a tornar isso possível quando combinados com provas de intervalo e outras verificações criptográficas.Uma prova de intervalo é usada para demonstrar que um número oculto está dentro de um intervalo válido.Isso é importante porque um sistema que oculta valores ainda precisa impedir valores inválidos, como quantias negativas ou a criação impossível de tokens.Os compromissos de Pedersen são poderosos, mas exigem parâmetros escolhidos com cuidado e uma implementação segura.Sistemas de curva elíptica também precisam de regras seguras para mapear dados em pontos da curva.O padrão RFC 9380 sobre hashing em curvas elípticas descreve métodos para aplicar hash a dados em curvas elípticas em protocolos criptográficos.
Esquemas de compromisso e revelação em contratos inteligentes
Um esquema de compromisso e revelação é uma aplicação prática dos esquemas de compromisso em aplicativos blockchain.Normalmente, ele tem duas fases.Na fase de compromisso, os usuários enviam compromissos referentes às suas escolhas.Na fase de revelação, os usuários revelam as escolhas originais e a aleatoriedade usada para criar os compromissos.O contrato inteligente verifica se cada revelação corresponde ao compromisso anterior.Esse padrão pode reduzir comportamentos injustos em jogos, votações, leilões, ferramentas de governança e processos de geração de números aleatórios.Por exemplo, um leilão com ofertas sigilosas pode pedir primeiro que os participantes se comprometam com suas ofertas.Depois do fim do prazo para os compromissos, começa a fase de revelação.Os participantes revelam suas ofertas.Isso ajuda a impedir que outros participantes copiem ou aumentem ligeiramente uma oferta visível durante a fase de compromisso.Um jogo em blockchain pode usar compromisso e revelação para impedir que os jogadores mudem suas jogadas depois de ver a jogada de outro participante.Uma ferramenta de governança pode usar compromisso e revelação para reduzir a influência dos primeiros votos, embora isso, por si só, não resolva todos os problemas de governança.Os projetos de compromisso e revelação precisam lidar com usuários que se comprometem, mas se recusam a revelar.Muitos sistemas usam prazos, depósitos, penalidades ou regras alternativas para lidar com revelações ausentes.Um esquema de compromisso e revelação só é seguro se as escolhas ocultas tiverem aleatoriedade suficiente e as regras de revelação forem definidas com clareza.Esquemas de compromisso e disponibilidade de dados
Disponibilidade de dados significa que os dados necessários para verificar ou reconstruir o estado de uma blockchain estão realmente disponíveis para usuários ou validadores.Os esquemas de compromisso podem ajudar a provar que os dados estão vinculados a um bloco, lote ou atualização de rollup.No entanto, um compromisso, por si só, nem sempre prova que todos conseguem baixar os dados completos.Um compromisso pode provar que determinado dado corresponde a determinada impressão digital.Não garante automaticamente que o público conseguirá acessar todos os dados com facilidade.Por isso, os sistemas de disponibilidade de dados costumam combinar compromissos com amostragem, codificação de apagamento, distribuição peer-to-peer e regras de verificação.Em sistemas de rollup, os compromissos podem apontar para lotes de transações ou atualizações de estado.Assim, usuários e validadores podem verificar se os dados comprometidos sustentam a transição de estado declarada.Com o crescimento da escalabilidade de blockchain, a diferença entre compromisso de dados e disponibilidade de dados se torna muito importante.Um sistema pode saber que os dados foram comprometidos, mas os usuários ainda precisam de maneiras de confirmar que uma quantidade suficiente deles pode ser recuperada.Sistemas avançados de compromisso são uma parte desse projeto mais amplo de escalabilidade.Exemplo de esquema de compromisso em um leilão cripto
Imagine um leilão cripto em que três usuários querem fazer ofertas por um ativo digital.Se todas as ofertas forem exibidas imediatamente, os participantes que chegarem depois poderão ter uma vantagem injusta.Um esquema de compromisso pode tornar o leilão mais justo.Durante a fase de compromisso, cada participante escolhe o valor da oferta e um segredo aleatório.Cada participante calcula o hash do valor da oferta junto com o segredo aleatório.Cada participante envia apenas o compromisso resultante ao contrato inteligente.O contrato armazena os compromissos, mas ainda não conhece os valores das ofertas.Quando termina a fase de compromisso, começa a fase de revelação.Cada participante envia o valor original da oferta e o segredo aleatório.O contrato inteligente calcula o hash das informações reveladas e o compara com o compromisso armazenado.Se os valores corresponderem, a oferta é válida.Se os valores não corresponderem, a oferta é rejeitada.Esse processo ajuda a provar que cada participante com uma oferta válida a escolheu antes da fase de revelação.Também ajuda a impedir que os participantes alterem suas ofertas depois de ver as ofertas reveladas por outros.A mesma ideia geral pode ser usada em votações privadas, jogos blockchain, jogadas de estratégia sigilosas, rodadas de alocação de tokens e alguns protocolos de aleatoriedade.Tipos comuns de esquemas de compromisso
Um compromisso baseado em hash usa uma função hash criptográfica para se comprometer com um valor e uma aleatoriedade.Esse tipo é simples e útil em muitos sistemas de compromisso e revelação em contratos inteligentes.Um compromisso de Pedersen usa matemática de curvas elípticas e pode permitir cálculos com valores ocultos em alguns projetos.Esse tipo é importante em pesquisas sobre transações confidenciais e sistemas cripto voltados à privacidade.Um compromisso de Merkle se compromete com muitos valores usando uma árvore de hashes.Esse tipo é comum em blockchains porque permite provas de inclusão eficientes.Um compromisso vetorial se compromete com uma lista de valores e permite provas sobre posições específicas dessa lista.Esse tipo pode permitir verificações compactas quando um sistema precisa provar fatos sobre partes de um conjunto de dados maior.Um compromisso polinomial se compromete com um polinômio e permite provas eficientes sobre avaliações desse polinômio.Esse tipo é importante em sistemas de provas de conhecimento zero e projetos modernos de escalabilidade blockchain.Cada tipo envolve diferentes compromissos.Alguns são mais fáceis de implementar.Alguns produzem provas menores.Alguns oferecem recursos de privacidade mais robustos.Alguns exigem pressupostos de configuração confiável ou operações criptográficas mais complexas.A melhor escolha depende do aplicativo, do modelo de segurança, dos requisitos de desempenho e do ambiente de implementação.Riscos de segurança e erros de implementação
Um esquema de compromisso pode falhar se o valor secreto for fácil de adivinhar.Isso é comum quando os usuários se comprometem com escolhas pequenas, como sim, não, um, dois ou três, sem adicionar uma aleatoriedade forte.Um esquema de compromisso também pode falhar se o valor aleatório for reutilizado.Em algumas construções, a reutilização da aleatoriedade pode revelar padrões ou enfraquecer a ocultação.Um esquema pode falhar se o formato de codificação não estiver claro.Por exemplo, entradas diferentes podem ser interpretadas da mesma maneira se o sistema não separar os campos com segurança.Um esquema pode falhar se usar primitivas criptográficas fracas.Funções hash antigas, curvas inseguras ou códigos mal revisados podem reduzir a segurança.Um sistema de compromisso e revelação pode falhar na camada do aplicativo se os usuários se beneficiarem ao se recusar a revelar.Por isso, os contratos inteligentes frequentemente precisam de penalidades, depósitos ou regras claras para prazos expirados.Um sistema de conhecimento zero pode falhar se o esquema de compromisso não corresponder aos pressupostos do sistema de prova.Os componentes criptográficos não devem ser substituídos de forma descuidada, pois pequenas alterações no projeto podem criar vulnerabilidades graves.Esquemas de compromisso seguros exigem projeto cuidadoso, revisão por pares, testes e documentação clara.Esquema de compromisso vs. criptografia
Um esquema de compromisso não é o mesmo que criptografia.A criptografia é projetada para que alguém com a chave correta possa descriptografar e ler a mensagem oculta.Um esquema de compromisso é projetado para fixar um valor que poderá ser revelado e verificado posteriormente.A criptografia se concentra na comunicação confidencial.O compromisso se concentra em promessas ocultas, mas vinculantes.Na criptografia, o remetente pode querer que o destinatário leia a mensagem imediatamente, desde que tenha a chave.Em um esquema de compromisso, normalmente o destinatário não deve descobrir o valor comprometido até a etapa de revelação.Alguns sistemas usam criptografia e compromissos em conjunto.Por exemplo, um protocolo pode criptografar dados privados para usuários selecionados e, ao mesmo tempo, publicar um compromisso que permita a todos verificar que os dados não foram alterados.Entender a diferença ajuda a evitar erros de projeto em aplicativos cripto.Um hash, por si só, nem sempre é um compromisso seguro.A criptografia, por si só, nem sempre oferece um compromisso vinculante.A ferramenta adequada depende de o sistema precisar de sigilo, verificação posterior ou ambos.Esquema de compromisso vs. assinatura digital
Um esquema de compromisso também é diferente de uma assinatura digital.Uma assinatura digital prova que uma mensagem foi aprovada pelo detentor de uma chave privada.Um esquema de compromisso prova que um valor oculto foi fixado anteriormente e revelado corretamente depois.As assinaturas tratam principalmente de autenticidade e autorização.Os compromissos tratam principalmente de ocultação e vinculação.Em carteiras cripto, as assinaturas digitais são usadas para autorizar transações.Em contratos inteligentes, os compromissos podem ser usados para ocultar escolhas, valores ou dados até uma etapa posterior.Uma assinatura de um compromisso pode combinar as duas ideias.Por exemplo, um usuário pode assinar um compromisso para provar que ele veio do endereço de sua carteira.Mais tarde, o usuário pode revelar o valor comprometido e provar que o compromisso assinado corresponde à revelação.Essa combinação é comum em aplicativos blockchain porque identidade, tempo, sigilo e verificação frequentemente precisam funcionar em conjunto.Benefícios dos esquemas de compromisso
Os esquemas de compromisso melhoram a privacidade ao permitir que os usuários ocultem informações sensíveis até que sua divulgação seja necessária.Melhoram a justiça ao impedir que os usuários alterem escolhas ocultas depois de ver as ações de outras pessoas.Melhoram a escalabilidade ao permitir que os sistemas verifiquem compromissos compactos em vez de processar todos os dados em cada contexto.Melhoram a capacidade de auditoria porque os dados revelados podem ser comparados com compromissos anteriores.Melhoram o projeto de contratos inteligentes porque permitem fluxos de trabalho em várias etapas, com fases claras de compromisso e revelação.Melhoram os sistemas de conhecimento zero porque permitem fazer referência a dados privados sem expô-los.Esses benefícios tornam os esquemas de compromisso úteis em muitos casos de uso cripto.Eles aparecem em protocolos de privacidade, rollups, jogos blockchain, leilões sigilosos, sistemas de identidade descentralizada, provas de estado e projetos criptográficos de votação.À medida que os aplicativos cripto se tornam mais avançados, os esquemas de compromisso se tornam mais importantes para equilibrar abertura e privacidade.Limitações dos esquemas de compromisso
Um esquema de compromisso não torna automaticamente um sistema privado.Metadados, horários, atividade da carteira, valores das transações, comportamento da rede e padrões de revelação ainda podem vazar informações.Um esquema de compromisso também não torna automaticamente um protocolo justo.Os usuários ainda podem se recusar a revelar, atrasar a revelação ou explorar regras de prazo frágeis.Um esquema de compromisso não garante, por si só, a disponibilidade de dados.Pode provar que os dados correspondem a um compromisso, mas talvez não prove que todos os dados possam ser recuperados com facilidade.Um esquema de compromisso não protege os usuários contra a lógica defeituosa de contratos inteligentes.Se o contrato verificar a revelação incorretamente, o compromisso pode não oferecer a segurança pretendida.Um esquema de compromisso não elimina a necessidade de aleatoriedade segura.A aleatoriedade fraca é uma das formas mais comuns de enfraquecer um compromisso.Os compromissos são poderosos, mas precisam ser usados como parte de um projeto de protocolo completo.Perguntas frequentes
O que é um esquema de compromisso em termos simples?
Um esquema de compromisso é uma maneira de fixar agora um valor secreto e provar mais tarde que ele não foi alterado.Quais são as duas propriedades principais de um esquema de compromisso?
As duas propriedades principais são ocultação e vinculação.A ocultação mantém o valor secreto antes da revelação, enquanto a vinculação impede que o criador altere o valor depois de se comprometer.Como os esquemas de compromisso são usados no universo cripto?
Eles são usados em provas de conhecimento zero, sistemas de compromisso e revelação em contratos inteligentes, árvores de Merkle, compromissos de dados de rollups, transações confidenciais, leilões sigilosos e aplicativos voltados à privacidade.Um hash é um esquema de compromisso?
Um hash pode ser usado para criar um esquema de compromisso simples, mas o projeto deve incluir aleatoriedade forte e regras claras de codificação.Por que um compromisso precisa de aleatoriedade?
A aleatoriedade impede que invasores adivinhem o valor oculto calculando o hash de respostas prováveis e comparando-o com o compromisso.O que é um esquema de compromisso e revelação?
Um esquema de compromisso e revelação é um processo em duas etapas no qual os usuários primeiro publicam compromissos e depois revelam os valores correspondentes.O que é um compromisso polinomial?
Um compromisso polinomial permite que um provador se comprometa com um polinômio e, mais tarde, prove afirmações sobre ele sem revelar o polinômio inteiro.Os esquemas de compromisso são usados apenas para privacidade?
Não. Os esquemas de compromisso também favorecem a escalabilidade, a justiça, a integridade dos dados, a verificação de provas e os fluxos de trabalho de contratos inteligentes.Um esquema de compromisso pode ser quebrado?
Sim. Um esquema de compromisso pode ser enfraquecido por aleatoriedade inadequada, funções hash fracas, parâmetros inseguros, codificação pouco clara ou lógica defeituosa de contratos inteligentes.Um esquema de compromisso é o mesmo que criptografia?
Não. A criptografia oculta uma mensagem para que ela possa ser descriptografada com uma chave, enquanto um esquema de compromisso fixa um valor para que ele possa ser verificado quando for revelado posteriormente.Conclusão
Um esquema de compromisso é uma ferramenta criptográfica fundamental que permite aos sistemas cripto ocultar informações e, ao mesmo tempo, fixá-las no lugar.Ele oferece aos aplicativos blockchain uma maneira de equilibrar privacidade, justiça e verificação.A ideia principal é simples: comprometer agora, revelar depois e permitir que outras pessoas verifiquem se o valor revelado corresponde ao compromisso original.Essa ideia simples sustenta muitas tecnologias cripto importantes, incluindo provas de conhecimento zero, raízes de Merkle, fluxos de compromisso e revelação em contratos inteligentes, projetos de transações confidenciais e compromissos polinomiais para escalabilidade.Um esquema de compromisso seguro deve oferecer tanto ocultação quanto vinculação.Ele deve ocultar o valor comprometido antes da revelação e impedir que seu criador o altere depois.Desenvolvedores e usuários também devem compreender os limites dos compromissos, pois eles não resolvem automaticamente todos os problemas de privacidade, justiça ou disponibilidade de dados.Quando projetados corretamente, os esquemas de compromisso tornam os sistemas blockchain mais flexíveis, privados e confiáveis, sem eliminar a capacidade de verificar afirmações importantes.Você também pode gostar
HOT
Criptomoedas que estão em alta atualmente e ganhando atenção significativa do mercado
TOP volume
As criptomoedas com o maior volume de negociação
Recém-adicionados
Criptomoedas listadas recentemente que estão disponíveis para negociação

