Faça com que Alice gere e publique um hash SHA-256 de sua ação.
SHA-256 é um algoritmo computacionalmente seguro (para aproximação razoável) que converte uma determinada string em uma hash hexadecimal ininteligível. Existem implementações on-line que irão computar o SHA256 para você, por exemplo, aqui .
A ideia é esta:
- Alice decide sua ação - diga: "Eu lancei Bola de fogo para Bob"
- Alice registra em particular esse texto exato
- Alice insere esse texto em um gerador SHA256, produzindo um amontoado sem sentido de caracteres - A0FC4543FDBA266006F1F9FA818183710A8C5CA80613DA109B8A9DBA194DEC4E
- Alice anuncia publicamente: "Planejei uma ação; sua SHA-256 é A0FC4543FDBA266006F1F9FA818183710A8C5CA80613DA109B8A9DBA194DEC4E"
Agora, Bob não sabe dizer o que Alice planejou porque o SHA-256 não é reversível; não há como voltar do hash para a ação.
Mais tarde, quando Alice revela seu plano, ela dá o texto exato que ela preparou anteriormente. Se Bob não confiar nela, ele pode simplesmente repetir a criptografia SHA-256 e verificar se as assinaturas correspondem.
Se Alice suspeitar que Bob pode adivinhar sua ação, então ela pode tornar as coisas mais difíceis adicionando um componente extra e irrelevante à ação antes de computar o SHA-256. Por exemplo, se Alice registra, assina e depois revela "Eu lancei Bola de fogo para Bob (pistache)", então Bob não seria capaz de adivinhar e verificar a ação sem também adivinhar o extra "(pistache)". Isso é conhecido como "nonce".