区块链相对于传统文件存储
节省中介交易成本 由于区块链使用的是去中心化分布式存储结构,所以在彼此之间并没有互信的基础上也可以使用规模比较大的协作工具,因此在很多传统中心化领域当中都可以使用区块链服务,并且去处理原来交由中介机构去处理的一些交易,从而降低中介交易造成的成本
数据内容不可篡改
在使用传统分布式存储的时候可以会遭遇数据被追求和篡改的问题,一旦数据信息被伪造就会给客户造成严重的损失。但是,区块链具有有效的控制和预防机制,所以,使用区块链技术就能解决数据被追踪和篡改的问题为数据信息的防伪提供了良好的技术支持
良好的安全信任机制
因为传统的分布式存储是由中心化数据中心去收集数据信息的,所以在存储以及使用中就会存在比较严重的缺陷。但是区块链技术就可以建立网络信任共识,由此能够有效解决传统存储中存在的核心缺陷,从而可以建立一套良好的安全信任机制让企业在使用区块链技术的时候会更加的放心
区块链在存证方面的技术优势
完整性保障 – 防篡改安全性存储 – 区块链+云储存采用哈希、电子签名、可信时间戳技术,从数学上和技术上保护电子数据
隐私性保护 – 可不上传源文档可信云加密存储电子数据,并和其他关键数据指纹一同存储在区块链中,确保数据安全可信
时序性严格 – 可信时间用户可以在不上传原文件的情况下,仅上传数据指纹,充分保护商业秘密和个人隐私
由国家授时中心授时,并根据区块链的时序不可逆性,确保存证的时间可信
如何进行区块链存证
中本聪在比特币中使用了默克尔树的方式对交易的验证进行简化,基本原理是将单条交易Hash,再将两条交易的Hash组合后在进行Hash,经过几次同样的过程后形成一个根Hash,存于区块头中。这样,任何树上任何一笔交易被更改,都会造成根的不同。做数据的存证时,采用同样的方式,将文件Hash以默克尔树的形式组织,最后将根Hash写入比特币的一个可以提供80字节空间的OP_Return这个区域中。相当于将数据存证于一笔不可篡改的交易中,从而完成了存证的过程。
这个过程我们称为锚定,其实是将存证链条锚定到了比特币上
我们可以开发了一个妥善可用的锚定程序,并且在数据锚定到区块链之后,还可以实现数据的快速检索、验证等。
存证业务逻辑图
原件通过取证生成证件记录,被用户创建并提交到PTN的。通过散列和编码信息,用户可以确保记录的隐私性。如果编码或隐藏数据是不必要的话,那么记录可以替换成为纯文本。通过记录一份文档的一段哈希值,PTN可以提供基本的发布证明。稍后, 人们可以生成文档的哈希值, 并和之前链块记录的哈希值进行比对, 来判断文档是否是当初发布的那个版本
PTN企业级存证解决方案
存证的复杂应用意味着我们需要一个企业级的存证,这个存证应该有如下特征:
当锚定的交易被取消,仍然能再次进行锚定存证的数据的原始关系必须被记录和保留,原始数据的版本能够保留数据能够便捷的检索交易的吞吐量和速度达到要求能控进行隐私和权限控制
区块链技术是什么
传统互联网是信息互联网,区块链是价值互联网,区块链也被认为是互联网的下半场,到底何为区块链呢?
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,区块链是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术
可以用区块链的一些领域可以是:
▪ 智能合约
▪ 证券交易
▪ 电子商务
▪ 物联网
▪社交通讯
▪ 文件存储
▪ 存在性证明
▪ 身份验证
▪ 股权众筹
案例
6月28日,杭州互联网法院对一起侵害作品信息网络传播权纠纷案进行公开宣判,首次对采用区块链技术存证的电子数据法律效力予以确认,并明确了区块链电子存证的审查判断方法 ,该案也因此成为全国首例区块链存证案,而存证又是业内公认的区块链最容易落地的应用场景证件记录是被用户创建并提交到PalletOne底层链的。通过散列和编码信息,用户可以确保记录的隐私性。如果编码或隐藏数据是不必要的话,那么记录可以替换成为纯文本。通过记录一份文档的一段哈希值,PTN可以提供基本的发布证明。稍后, 人们可以生成文档的哈希值, 并和之前链块记录的哈希值进行比对, 来判断文档是否是当初发布的那个版本。
PalletOne存证接口
1.创建存证交易
{"jsonrpc":"2.0","method":"wallet_createProofOfExistenceTx","params":["P13cyZpJb9ZTVFCQNNSVg4emh6CjeHsahpp","lktest","附加信息","123456","1"],"id":1}
参数定义
P13cyZpJb9ZTVFCQNNSVg4emh6CjeHsahpp 区块链地址lktest maindata 字段(可根据maindata进行查询本次存证结果,不可为空)附加信息 extradata 字段123456 reference 存证的引用标识符(可根据reference 进行查询本次存证结果,可为空)1 区块链地址解锁密码
返回结果
{"jsonrpc": "2.0","id": 1,"result": "0x50060e936c4a5f4b36d95fe918a4f853934ab08a5a4cec82b0b31e6c26075d4d"}result为 这笔交易的哈希值(transactionHash)
2. 查询存证信息
根据交易的哈希值查询存证结果
{"jsonrpc":"2.0","method":"wallet_getFileInfoByTxid","params":["0x50060e936c4a5f4b36d95fe918a4f853934ab08a5a4cec82b0b31e6c26075d4d"],"id":1}
参数定义
0x50060e936c4a5f4b36d95fe918a4f853934ab08a5a4cec82b0b31e6c26075d4d 交易哈希值
根据MainData字段查询存证结果
{"jsonrpc":"2.0","method":"wallet_getProofOfExistencesByMaindata","params":["lktest"],"id":1}
参数定义
lktest maindata字段
根据Reference字段查询存证结果
{"jsonrpc":"2.0","method":"wallet_getProofOfExistencesByRef","params":["123456"],"id":1}
参数定义
123456 reference 存证的引用标识符
以上查询存证返回结果格式相同
格式为
{"jsonrpc": "2.0","id": 1,"result": [{"creator": "P13cyZpJb9ZTVFCQNNSVg4emh6CjeHsahpp","main_data": "lktest","extra_data": "附加信息","reference": "123456","unit_index": 65,"tx_id": "0x50060e936c4a5f4b36d95fe918a4f853934ab08a5a4cec82b0b31e6c26075d4d","unit_hash": "0x178a3701aa5548649a73ad3d56bdc055986340877340fcd050b2d4011964a711","timestamp": "-06-01T03:57:30-05:00"}]}
参数定义
creator 存证发起的区块链地址main_data maindata字段extra_data 附加字段unit_index 区块高度tx_id 交易哈希值unithash 区块哈希值unitindex 区块高度timestamp 时间戳备注:如果用户多次进行上链可返回每次上链区块信息内容