Encryption (side quest)

/assets/learn-with-ethereum/screenshot_10.png
click here to edit this workflow on eth.build

disclaimer: Todos esses blocos ja são conhecidos portando não vou reexplica-los, se quiser revisar veja o primeiro post da série.

O legal desse workflow é pra notar algo, o endereço gerado pelo KEY PAIR. Se você notar, o address são os 42 últimos caracteres da hash da public key.

Encrypt a message

/assets/learn-with-ethereum/screenshot_11.png
click here to edit this workflow on eth.build

O bloco ENCRYPT é o bloco que consegue criptografar uma mensagem usando uma public key, ele recebe como parâmetro a public key e a message. Semelhante ao funcionamento da criptografia PGP.

Parâmetros usados:

Public Key: 0x5eed5fa3a67696c334762bb4823e585e2ee579aba3558d9955296d6c04541b426078dbd48d74af1fd0c72aa1a05147cf17be6b60bdbed6ba19b08ec28445b0ca

Message: hello word this is alice for alice

E devolve a mensagem criptografada: 0xabc62f77ba4447a16825e10764687a9902f5bc3c03dab4660dacc1ced1a311665b713113d0ad029e7f174d0c3439b11ebafaacaebbddc897c17f67c8ee3a3d4e8fe861cef74897931e7a09e253fb553a0e0032e55ce503e405b6089505e1529456e684b98150c7a48e7115897c4ceb572e174ead1f60b75a153ed832a5abdda3bc

Decrypt a message

/assets/learn-with-ethereum/screenshot_12.png
click here to edit this workflow on eth.build

O bloco DECRYPT, como o próprio nome diz, faz o inverso do bloco ENCRYPT. Ele recebe como parâmetro a private key e encrypted (a mensagem criptografada no bloco ENCRYPT).

Private Key usada: 0x9c0257114eb9399a2985f8e75dad7600c5d89fe3824ffa99ec1c3eb8bf3b0501

Este bloco devolve como retorno a mensagem inicial descriptografada ("hello word this is alice for alice").

Full Encrypt/Decrypt Workflow

/assets/learn-with-ethereum/screenshot_13.png
click here to edit this workflow on eth.build

Publish/Subscribe messages

/assets/learn-with-ethereum/screenshot_14.png
click here to edit this workflow on eth.build

O bloco PUBLISH serve pra enviar uma determinada mensagem em uma rede, tipo um canal IRC (no caso a rede padrão é network.eth.build). E o bloco SUBSCRIBE é o bloco que recebe a mensagem. A cada envio no PUBLISH o SUBSCRIBE recebe automaticamente, de qualquer um que enviar uma mensagem.

Encrypt messages on the network

/assets/learn-with-ethereum/screenshot_15.png
click here to edit this workflow on eth.build

Aqui podemos combinar os blocos ENCRYPT e PUBLISH para enviarmos uma mensagem criptografada na rede. E depois obtermos a mensagem criptografada com o SUBSCRIBE: 0xf0565fb9b8d0ce71b5886c71dfad9803020bd4e8329e66b63b93703283f6e6dbae5c181458a166966a5a70bedc96f3f3ad52261ab619ee312ff5979af11cc4f0eeb0c9af9baeb6b3dd66af72c97a371482066a5cd40e11bf24d4f469416b27831c03189b3e07b3c5a8044ca95392b1d5c9

Decrypt messages on the network

/assets/learn-with-ethereum/screenshot_16.png
click here to edit this workflow on eth.build

Combinando o workflow anterior com o bloco DECRYPT conseguimos descriptografar a mensagem enviada na rede.


referências

Austin Griffith: https://www.youtube.com/playlist?list=PLJz1HruEnenCXH7KW7wBCEBnBLOVkiqIi