如何用区块链进行存在性证明
扫描二维码
随时随地手机看文章
前一段传闻以太坊创世人VB车祸身亡的谣言,VB用一种区块链高度块的证明方式很有意思的回应了他还存在的证明,这是一种典型的存在性证明方式,今天聊聊如何用区块链进行存在性证明
如果了解区块链原理后,你可以很轻松的理解如何用区块链进行存在性证明,上图VB手拿最新以太坊区块链高度和地址,再配以他的图片很好的证明了他于区块生成后的那个时点的存活证明,其实这并不新鲜,以往我们很多时候用的是发行量大的报纸和真人照片进行存在性证明。
其实区块链和报纸在存在性证明上有很多相似之处,主要有三点:
首先是数据篡改困难,如果把当日的报纸看成一个节点,那么区块链和报纸一样有着巨大的数量,如果要篡改需要重新发行巨大的数量的节点(这点和修改所有节点区块数据一样具有很大的难度);
其次,报纸和区块链一样具有天然的时序性,报纸都会有当天的发行时间,区块链一样具有时序性,区块的生成时间会被记录;
第三,具有公开验证方式,你可以买一张当日的报纸进行时间验证,区块链可以通过浏览区块信息进行验证。
但是,秉承着深入探索的精神,你也会发现这种拍照方式的两个存在性证明的主要限制:
1、真实性和存在性,首先照片中只能证明图片中的人于区块生成后的时间点存活,但是不能证明这就是VB本人;这张图片是我在Twitter上的截屏,我们之所以相信这是VB本人,是因为他用他的账号发了这张图,这是我们信任中心化用户系统的结果。所以不应割裂的看待真实性和存在性。
2、应用范围限制,这种拍照基于时序的点的证明方式只能证明时序点以后的情况,也就是常说的后向时间点、有时我们需要证明该时间点以前的事情,或者证明一个时间段内的事情。
对于前项时间点证明有一个具体的例子,比如一项专利发明在保密期内,里面重要的数学公式处于保密状态不便于公布,如果出现异议,双方都可以找到创世区块的时间点进行证明,就无法判定了,一般来讲我们需要标记一个唯一的值,进行前向时间点证明,简单来讲就是我们可以把公式进行hash,然后将其写入区块链一个特殊交易中并取得这个地址,那么就不怕这个公式泄露了,对于任何其他人公布的发明时间,我们都可以提出更早的时间点证明。
所以归纳一下关于时间点证明不外乎三个方式:
1、前向时间证明:证明更早的时间点拥有某些数据
2、后向时间证明:证明在某个时间点之后拥有数据
3、时间段证明:结合1,2两点的方式完成时间段证明
具体是用区块链的是现实方式比较简单,因为类似比特币、以太坊等都有一个block meta信息段,可以写入少量的hash数据,你可以构造一个带blockmeta的交易信息,将需要的证明hash永久写入区块进行前向时间证明(以前的所谓比特币刻字就是这个原理),当然你也可以开下脑洞,通过hash值构造特殊的私钥,并通过私钥产生公钥地址,随便往这个公钥发送一个数据,并公布这个公钥的交易,需要证明时,只需要使用私钥进行验证该公钥地址,以证明那个时间点的数据。
其实,今天我想讨论的是第一个关于真实性和存在性的问题,通过刚才的介绍我们知道,区块链实现时间点的存在性证明很容易。而基于时间点的存在性和真实性证明可以用于数字存证,进行版权、专利、数据等的存证有重要商业意义,对于论文、图片、音乐、视频等数据可以通过SVD(奇异值分解)进行数字水印,抽取数据特征值,哪怕是抄袭者修改了部分数据,也可以通过SVD进行真实性验证。
而对于人的活体真实性证明是最有意思的,有一个典型的应用场景,就是养老金的发放,现在广泛采用的是让老人与当日报纸拍照,然后进行人工验证,这种方法效率比较低下,存在人工审核漏洞,所以存在有很多老人去世后,大量的持续冒领养老金的情况,这里面有造假、人员腐败等多种问题。
我能想到的就是结合基于区块链用户系统并通过硬件采集活体指纹和虹膜的方式进行电子化的活体真实性证明,目前活体指纹和虹膜识别技术比较成熟了是比较好的方式,而活体面部识别技术由于人的活动可以枚举,比如点头、眨眼、张嘴、摇头,只需要录播这几个过程就可以伪造,我自己拍摄过枚举视频通过另一部手机回放,成功骗过支付宝的视频验证,造假成本非常低,这不是最好的方式。
我能想到的比较有限,还希望高人多指点,相信结合去中心化的系统与硬件技术可以构造一个比较理想的授信任的认真实性和存在性证明系统