首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在区块链保存私密信息-我的第一个 ETH 智能合约应用

题图:xresch CC0

忙活了一两个星期,终于把自己的第一个区块链 Ethereum 智能合约 Dapp 应用上线了。通过这个应用,我也学习了一下 Ethereum 智能合约的应用,Solidity 语言,和怎么配合其它基础架构(如 MetaMask, IPFS 等)实现一个系统。花了差不多 0.02 个 ETH 部署了智能合约,不知道能不能赚回打赏,哈哈。

这是一个什么应用

它的名字叫 Decentralized Secret Note。我部署在 Github pages 上,域名是 http://www.secret-note.one 。它的作用是让用户可以把他们私密的笔记内容,存储到区块链和分布式的网络上面。

如何做到分布式

笔记内容,保存在 IPFS(一个分布式 Web 架构)上。

笔记名字,和对应的内容在 IPFS 地址的 mapping,都保存在 Ethereum 的智能合约里面。

虽然页面是部署为 Github Pages,但是后端骨架都是在区块链上分布式存储的。其实 Dapp 好像也是可以部署到 IPFS 的,不过这个我还没有研究清楚。

什么数据应该放到区块链

每对区块链公链作出更改,都要耗费一定的手续费(矿工费)。而且,存储大量的数据在区块链里面也是不合适的。所以,我们只能把最关键的数据,存放在区块链里面。而且,数据存储在区块链上,对外界都是公开的。如何在区块链公链上存储私密的内容,一直是值得探讨的话题。

怎么保障内容安全

基于区块链公链直接存储数据的限制,和安全性考虑,智能合约里面我只保存了用户地址,笔记名字,和笔记内容在 IPFS 上面的链接 Hash。

正常情况下,每个用户只能看到自己保存的内容。他和智能合约交互的时候,必须是使用他自己的 Ethereum 地址来获取他的笔记。即便其它人的笔记内容在 IPFS 上的链接 Hash 被泄漏,IPFS 上面的内容也是经过了 SSH 的 Private Key 加密过的。这个私钥只有用户自己才知道,也没有保存在系统任何一个地方。

你可以做什么?

有兴趣的话,可以看我的源代码:https://github.com/kenspirit/secret-note ,提提意见,一起研究。当然,你还可以自己部署一个,连到测试网络,那就不用给 Mainnet 的 Gas,花真正的钱了,Yeah。

欢迎各位币圈大佬打赏。:D

终于不仅仅只是有电子货币而已了

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180123G0W8T700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券