实现文档的防篡改、透明、可追溯等功能
更新日期:2020-10-30     来源:互联网天地   作者:王升  浏览次数:171
核心提示:对于以太坊而言,开发者可以在以太坊上开发属于自己的智能合约。以太坊的账户可以分为两种,一种存有智能合约的账户叫合约账户。相应地,由密钥控制的

对于以太坊而言,开发者可以在以太坊上开发属于自己的智能合约。以太坊的账户可以分为两种,一种存有智能合约的账户叫合约账户。相应地,由密钥控制的账户称为外部账户。要运行一次智能合约,应由外部账户对合约账户发起一次交易,从而启动合约账户中的代码。

在本系统中智能合约利用solidity语言编写,并在以太坊智能合约在线编译网站Remix上完成编写与编译。

2.3 IPFS分布式存储

IPFS是全称为Inter Planetary File System,即星际文件系统,是一个点对点的分布式文件存储和分享的协议。IPFS基于内容寻址,将信息保存到IPFS节点中,IPFS系统将返回该信息的唯一哈希值,哈希值与信息内容一一对应,即使改变了一比特也会得到完全不同的哈希值。当IPFS被请求一个哈希时,它会找到该文件的节点取回文件。并且当其他用户上传相同的文件时,会因为具有相同的哈希值而上传失败,这样便可以大大节约存储空间。而IPFS Desktop是一个由IPFS官方孵化出来的应用项目,可以帮我们自动创建本地web服务。

3系统设计

3.1 系统架构的设计

为了实现文档的防篡改、透明、可追溯等功能,采用区块链技术与IPFS分布式存储相结合来完成本系统。该系统将文档首先上传到IPFS中,之后IPFS返回一个哈希值,再将哈希值存储到以太坊区块链中,区块链执行完智能合约后将执行结果打包成区块。在前端界面,通过文件命名和区块高度对存储到哈希值进行描述和编号排序。每当用户希望查看文件是否遭到篡改或验证时,可以通过将hash放到IPFS中进行文件查阅。