请选择 进入手机版 | 继续访问电脑版
开启辅助访问
链路首页链路财经目前收录 币种 : 4908 交易所 : 310钱包 : 17 24H 交易量 : $10,840,162,179 总市值 : $130,972,275,060
2018
12/07
23:30
分享
评论
  • 点击蓝字

    关注我们

    大家好,欢迎来到《王毅带你认知区块链》第十一讲,今天咱们继续区块链3.0落地趋势系列,本节课给大家带来的是存证和溯源的设计。 好,下面咱们开始吧。

    /01/

    存证

    1.1技术分析


    首先要说的是存证设计,存证说简单来说就是比对前后的hash值的过程,hash发生了变化证明整个文件就被修改过了。涉及到的技术是分布式文件存储IPFS和区块链网络,下面我们分别说一下。

    大家知道区块链网络存的是交易,并且交易都会存在各个区块中。然而区块是有大小的,所以一个区块存的交易数量也是有限制的。区块链的区块本身都不会很大(大概8K到10M之间这个量级吧),这就注定,每一笔交易不会特别大(最佳范围是100K以内),所以我们用区块链存结构化数据(最简单的场景就是什么人、什么时间、操作了什么事情)一般就几K,是完全可以打包到一笔交易中的(若结构化数据很大,分多笔存储也是可以的)。

    而非结构化数据(比如图片、视频等等)一般都要经过IPFS换算成几K的hash后存到区块链中。大文件分片后文件会得到一个几K大小的hash值,当基于这个hash提取文件的时候,IPFS首选会有一个分布式hash对照表,然后再去相应的节点拉取所有分片,最后组合成一部完整的文件。

    我们所说的存证一般要比对两个hash值,一个是IPFS换算的非结构化数据的hash值,一个是上传到区块链中的交易hash值(俗称txhash,tx就是我们说的交易的英文缩写)。IPFS换算的hash保障了非结构化数据是否被篡改过(比如一份合同是不是被篡改过,通过hash变化就可以比对出来),而上链的txhash可以查询操作指纹(类似于文件溯源),也就是所有的记录:什么人、什么时间,做了什么事情等等。

    另外多补充一下关于IPFS与区块链的耦合问题。其实对于90%以上的场景,IPFS仅仅用来解决了非结构化数据上链的问题。其实,IPFS还可以纵向切分结构化数据。继续打比方,比如我记录一个结构化数据,其中有七个字段,分别是:1(姓名)、2(年龄)、3(性别)、4(身高)、5(转账金额)、6(转账状态)、7(接收者)。为了保障数据的安全,我们惯用的做法是把这7个字段统一打包后,打散分片到不同的服务器上,这是最简单的思路。其实,还可以这样玩:我可以把1/3/5字段打一个包、2/4/6字段打一个包、7字段单独打一个包,再把三个包分片到不同的服务器上,就会分别形成三个子hash,这样能看1/3/5或者2/4/6或者7字段的用户得到对应的子hash就可以了;再延伸一下,为了安全,还可以进一步设定子三个子hash必须拼凑到一起才可以看到7个字段的数据。这样,一个单纯的IPFS就可以玩出很多类似“授权”和“数据更安全”的花样出来!

    好,说完了技术,我们继续说我们的存证设计,其实通过以上的分析大家只需知道,存证比对的是hash值,而hash值需要比对两个hash,第一是经过IPFS换算后的hash,第二是上区块链网络的交易hash,也就是txhash。这是存证设计精髓要考虑的地方,不但你知道,还要让你的用户知道,接下来我们说一下设计方案。

     

    1.2存证可感知


    大家想一下存证一般要经过哪些步骤?主流步骤包括上传、下载、前后hash比对,当然还要加入token的概念,数据的上传和下载可以把激励机制也加入进去。

    1.2.1数据上传

    数据上传分三步,一是申请授权,持有相应通证的人才有权利上传文件,二是上传到分布式存储系统,也就是我们的IPFS系统,三是上链,也就是区块链网络系统。涉及到的角色除了上传者和下载者之外,还有审核员,存证的使用场景大多也是联盟链的形式,所以审核员对用户的权限控制还是需要的。

    我们可以进一步细分,具有权限的用户上传文件时可以设置文件的安全标记、密级、访问价格、访问控制规则等等。

    其中安全标记由两部分组成,一部分是属于用户的信息,这个信息是通过通证平台反馈的用户属性来自动生成的,也就是从链上获取之后,客户端自动设置的;还有一部分是用户通过客户端提供的界面自己配置的。类似于我们的身份信息。

    密级是安全等级,还有访问价格大家都了解,不再解释。

    访问控制规则,也就是文件的访问控制权限,可以由用户通过客户端提供的界面进行自行配置,配好以后,平台提供接口生成合约,合约要先请安全管理员进行验签,再部署到链上。

    在数据上传的过程中要给用户展现两个数据,一个是传入到IPFS中的文件hash,一个是最终上传到区块链中的txhash。

    数据上传的时候,我们也可以做的更专业,用U顿的方式,我们可以把身份信息,比如姓名、公私钥经过对称加密后存入到U盾中,每次操作上传文件的时候需要U盾先解密身份文件,解密成功后,才允许上传等等。

    1.2.2数据下载

    下面说一下数据的下载,大家可能觉得下载简单,直接付token下载就可以了。其实在我们的实际落地中,下载的时候也是要有一层授权的过程,授权通过之后,才可以支付通证进行下载,另外会给上传者反馈下载的字段信息,下载本身也是一笔交易,下载的交易hash也会记录到区块链中。

    数据下载这个模块的设计中要注意前后hash 的比对,上面我们说到,上传者传完之后会得到两个hash,那么下载者下载后,会得到一个经过IPFS换算后的文件hash,这个hash与上传者的文件hash要进行比对,才会有存证的意义

    这个场景在这里延伸说一下,比如用户A上传了一份资料,分别得到IPFS换算后的文件hashA和上链的交易txhash,B用户审核通过后,在今天的5点付费购买了下载权限,这时候就要反馈一个购买当时的IPFS文件hash,但是B临时有事情不能下载,B用户第二天再去下载的时候,要展示B下载的IPFS的最终hashB和原始的hashA比对,若A用户在B用户购买后进行过文件的修改,那也叫修改了。

    大家知道,区块链不能删除数据只能更新数据,这样我们从区块链整个链条中可以查询到A上传数据,B购买数据,A修改数据,B下载数据,B比对数据前后不一致留言存证篡改,根据规则,A擅自修改数据得到处罚等等。当然实际中,A想修改数据一般也是要经过审核才可以,这个在根据具体规则修订。

     

    1.3总结一下


    前面说了很多,其实用户可感知的区块链过程是很少的,我们一定要做到区块链产品的可感知,那么他们感知的过程就是IPFS中的hash展示和上链的hash展示,第一个hash用来前后比对,是文件存证的核心,第二个hash用来记录整个过程

    另外可感知的产品,一定不要忘记区块链浏览器,我们从中的任何交易hash均可以去浏览器中查询交易历史,这一部分不再多说

    关于存证还需要补充一点,很多时候我们还有第三方监管机构的存在,而我们常用的方法是给第三方监管机构配置相应权限的节点即可,它可以通过节点查询链中的所有数据。

     

    存证就讲到这里,关于IPFS的分片存储机制我讲的并不多,大家若感兴趣,后续我可以单独拿出一节课深入讲解分布式文件存储技术。下面我们讲一下溯源。

    /02/

    溯源

    区块链溯源的本质简单来说就一句话:保障上链的数据源头也要是分布式的。打个比方,比如我们借助区块链溯源养鸡,白皮书里面完全可以大谈阔谈整只鸡的命运是如何一步步记录到链上去的,但我们若刨根问底,你就会发现这类溯源最大的问题,那就是鸡出生后,数据谁上链?若这只鸡从出生就定位是一只纯正的柴鸡,谁说了算呢?目前基本是养鸡场说了算,也就是说,数据的源头还是中心化的养鸡场,若源头造假,区块链是溯源不到的!总结来话:区块链可以溯源,但不能保障数据源头造假的问题。若数据源头无法保障也是分布式去中心的,那么,这个溯源就是伪命题。

    源头是分布式的太难了,没有其他方式吗?

    答案是有的,在实际的落地中,把数据上链的操作归到具体的机构或者人的身上。让每个环节特定的人或机构做担保,用户买到放心的产品后,反过来授予这些担保方更高的信誉度;同样,若这些中间环节的担保方作假,他的作假信息也会上链,永不可篡改,作恶成本对担保方来讲是极高的,也同样在一定程度上保障了溯源的意义。

    另外要注意,溯源就要涉及到实物与链交互的问题,目前性价比很高的交互形式有大概三种:二维码、射频芯片和智能家居(智能家居天生具备联网功能),而二维码和射频芯片的破坏和更换问题也是实物溯源要考虑的。

    接下来补充一点,区块链溯源可以,但是要抓核心数据溯源。大家不要想象成,我要溯源就是溯源产品的每一个环节,我们只溯源核心环节就足够,例如在红酒溯源中,红酒的品质很大程度取决于其产地和加工。所以,我们把红酒的溯源体系分为产品信息、产地溯源、生产加工溯源、检验报告四个方面,而这四个方面也要再继续细分哪些数据值得上链进行溯源的问题等等。区块链的承载能力是有限的,最终能上链的数据也是有限的。甚至我们的溯源也分针对C端用户的溯源信息和针对B端用户的溯源信息之分,这就要深入到你的用户中,了解到他们对于你的产品最想知道的信息是哪些,从而保障这些信息的真实性即可。

    就如我们若结合智能家居做事情,智能家居每时每刻产生的数据太多了,不可能数据全部上链进行交互的,一定要有一个数据筛选的智能合约控制上链的数据价值,另外要注意区块链不能每时每刻反馈数据结果,区块链按照一个个的生成机制决定了它存储的交易一般是串行而不是并行,也就是经过审核确认的数据要排队入链,这就是我们说的TPS并发量,目前业界公认的TPS是1000-10000之间,数据再多就得排队,但是排队归排队,数据是不会丢的,只是入链的时间会晚,这就要求我们做产品的时候,最好是每天固定一个时间点更新前一天的数据,就如各类挖矿产品一样,都是每天固定一个时间点更新前一天的数据,这就要求若对数据时时查询有需求的场景来说,区块链并不合适!

    /03/

    结尾

    区块链3.0的落地趋势本次就分享到这里,下周为大家准备了清结算领域的应用,咱们下周五见!

    往期课程

       延伸阅读


    • end •

    本期文章 | 王  毅

    本期编辑 | 靳亚峰


    祝你晚安早安午安心安


    你可以上哪儿找我?


     | 欢迎转发到朋友圈 | 

    币须说

    让更多优秀的内容发光

主题帖 33 关注 0 粉丝 0
情感指数

链路大数据分析置信度 10.56 %

TA的主题帖
主题相关
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表