如何加密保护EOS上的信息-徽乐汇

区块链是一种分布式账簿,每个数据块都是公开的,每个人都可以看到。如果想在区块链上加密消息,特别是在EOS上加密消息会怎样?

我们可以加入NuCypher。NuCypher通过去中心化管理再加密服务帮助DAPP开发者在公共区块链上存储、共享和管理私有数据。

下面是工作原理:

Alice有一些敏感数据,她希望能够委托访问这些数据。

Alice使用自己的公钥对数据进行加密,并将其存储在云中或分散存储中。

Alice委托Bob访问。这些数据是按鲍勃的存储键修改的。

Bob下载数据并使用私钥解密。

保护EOS上的消息

我们将从这样一个场景开始:Alice和Bob都可以访问私钥,Alice希望将敏感数据发送给Bob,并利用NuCypher参考实现Umbral参考实现 (裂键阈值代理重新加密)。

让我们首先在EOS上构建一个消息队列智能契约。

构建一个名为messages的表,其中包含uint64_t msg_id、account_name from、account_name to、string ciphertext和string capsule。msg_id是主键。

提供了两个操作:sendmsg和deletemsg。 sendmsg需要account_name from、account_name to、msg_id, ciphertext and capsule。  Ciphertext 是加密的信息,capsule是Umbral中的概念,用pyUmbral生成的。 deletemsg基本上获取一个msg_id,验证给定的to account_name,然后删除记录。

如何加密保护EOS上的信息-徽乐汇
如何加密保护EOS上的信息-徽乐汇

编译:

如何加密保护EOS上的信息-徽乐汇

创建帐户上传智能合同:

如何加密保护EOS上的信息-徽乐汇

创建测试alice和bob帐户:

如何加密保护EOS上的信息-徽乐汇

让我们继续构建一个客户端来加密或者解密信息并与智能合约进行交互。

  1. 生成私钥并写入文件。
如何加密保护EOS上的信息-徽乐汇

2.构造一个解析器

如何加密保护EOS上的信息-徽乐汇

3.读取私钥文件

如何加密保护EOS上的信息-徽乐汇

3.把信息加密并发送

如何加密保护EOS上的信息-徽乐汇

3.从messages表读取,如果要匹配read_msg_to,解密一条信息,然后删除。

如何加密保护EOS上的信息-徽乐汇

4. 默认值

如何加密保护EOS上的信息-徽乐汇

把它们打包并测试一下!

如何加密保护EOS上的信息-徽乐汇

检查messages列表

如何加密保护EOS上的信息-徽乐汇

我们来读取一下加密信息

如何加密保护EOS上的信息-徽乐汇

检查messages表,那信息已经看不到了

如何加密保护EOS上的信息-徽乐汇

我们探索了如何在EOS上保护消息。接下来,我们可以在Alice和Bob有自己的密钥的情况下工作,或者发送给多个用户。