Como usar o mecanismo de criptografia assimétrica para criptografar dados antes de enviar para parceiros ou registrar em Blockchain

Os endereços de nossas carteiras EthereumBitcoin (e seus forks) são gerados a partir de chaves privadas usando algoritmo de Curva Elíptica. E consequentemente também são geradas as chaves públicas.

Entretanto, por falta de bibliotecas ou ferramentas simples, poucas pessoas utilizam o mecanismo de criptografiaassimétrica para criptografar dados antes de enviar dados a parceiros de negócios ou de registrar em Blockchain. Mesmo já possuindo chave privada e pública que são a base do endereço da sua carteira.

Criptografia assimétrica é algo que utilizamos diariamente ao navegar pela internet com HTTPS (TLS). Nós enviamosdados criptografados aos servidores, criptografando-os utilizando a chave publica desses servidores. Só quem tem a chave privada, o servidor, pode descriptografar. E o vice-versa. Contudo o algoritmo utilizado é o RSA, diferente do utilizado pelo Bitcoin e Ethereum (Curva Elíptica).

Então, como utilizar o mesmo algoritmo do Bitcoin e ter a mesma segurança para que somente o destinatário, ou nós mesmos, possamos descriptografar os dados que enviamos e talvez registramos em Blockchain?

Para isso desenvolvi uma biblioteca de código aberto chamada EC Crypto. Utilizando recursos disponíveis no Ethereum e na Decred é possível criar aplicações que com a chave pública do endereço da carteira do destinatário é possível encriptar um dado e somente o dono da carteira com sua chave privada poderá descriptografar.
Desse modo, com essa biblioteca e aplicativos que serão gerados a partir dela, qualquer pessoa poderá enviar ou registrar dados de maneira segura no Blockchain.