中国领先的IT技术网站
|
|

2.5 公证防伪溯源

《白话区块链》第2章区块链应用发展,在本章中,由于限于篇幅,我们不能一一介绍所有的应用场景。作为一名技术人员,真切地期望一种好的技术思想能够对社会的生产发展以及人们的生活带来促进作用。本节为大家介绍公证防伪溯源。

作者:蒋勇/文延/嘉文来源:机械工业出版社|2017-11-24 14:07

开发者大赛路演 | 12月16日,技术创新,北京不见不散


2.5 公证防伪溯源

区块链技术在公证防伪方面的应用主要是利用区块链技术独特的merkel tree数据结构防止篡改,区块数据可溯源、非对称加密数字签名这些技术共同组成分布式点对点公证存证防伪网络及数据。我们按照图例标号来跟踪分析一个现有中心化认证公证系统的部署模式:

1)用户1向公权认证中心提交材料,申请认证证书;

2)经过审查,公证中心发放证书,用户1获得认证;

3)用户1想要跟用户2进行交易,用户2需要跟公证中心申请用户1提出的证明;

4)公证中心确认用户1的证书;

5)用户2要向用户3提出交易请求,交易中用到的来自用户1的证书被传递,用户3再次向公证中心请求确认证书,以此类推,公权公证中心是一个完全集中式的证书发放和验证机构。

在这个集中式的公权公证中心模式中,好处也是显而易见的:大家都相信由政府背书的专业机构,但是,这也可能存在风险,那就是:

单点灾难(single point failure),当这个集中式的公权公证中心出现状况的时候,全网瘫痪,大家无法获得证书服务;

在处理海量证书的时候,中央式的系统也会由于中央处理能力不足而造成拥堵而变得性能下降;

中央公证中心的安全性要求非常高,如果存在安全隐患,很容易遭到拒绝服务攻击(Denial of Service, DoS),甚至多台机器发起的分布式拒绝服务攻击(Distributed Denial of Service,DDoS)。

很直接的一个性能优化的解决方案就是对系统进行分布式改造,提高性能和安全性,降低被攻击而导致瘫痪的风险。区块链技术作为一种分布式计算形式,其实也可以在改造现有集中式系统的过程中逐步摸索或实施的。

现在我们来尝试着对一个集中式的公权公证中心进行分布式改造。

针对每一个用户,我们单独分配一个计算资源单独处理,一个单位一个处理单元。

在每一个处理单元的计算资源(可以是单独一台计算机)增加一个证书同步单元(模块),负责将每一个处理单元的证书进行同步,每一个处理单元都可以在同步后拿到任何单位管理的证书。

这样,处理单元和同步单元模式可以扩散,从一个单一的中心,根据性能需要分化成多个中心,然后再在中心间进行证书数据同步;

这样原来单一中心的公权属性依然集中在认证中心,继续行使其本来应该承担的不可取代的政府或法律职能;

证书分发、处理、同步的功能性功能被剥离出认证中心;

对证书进行分布式账本技术改造,证书作为共享账本在各个单位之间产生、流转、校验。

注意,共享账本改造很关键,需要我们做三件事:

1)用加密函数对证书进行数字加密(采用国际认可的SHA256或中国的加密算法SM2);

2)证书数据结构采用merkle tree来存储证书数据,保证任何改动的证书都会自动变成无效;

3)对证书进行非对称数字签名,数字签名根据证书的申请人、所有权人、发放方、校验方进行公钥/私钥的密钥管理。

经过旨在提高计算和处理性能,防止DoS/DDoS的分布式计算模式改造,再加上加密分布式账本技术改造,我们就实现了一个集中式系统的“区块链技术”改造,这样形成下面描述的基于区块链计算模型的公权公证系统。我们先说可能出现的劣势,那就是:对用来进行证书校验的密码计算要求高,如果密码被破解,全网证书(账本)就会容易被篡改;对用来进行证书同步的点对点证书通信协议的性能要求高,因为本质上分布式改造是将风险和性能同时分散到各个节点中去了。当然新系统的优势是非常明显的:

1)证书数据由于公钥/私钥非对称数字签名使得数据来源和权益清晰,证书内容及其真实性得到来自源头的保证;

2)证书内容在产生或修改的瞬间,就已经全网无差别地被同步并通知;

3)任何证书的改动及其改动过程都记录在案,而且可以溯源;

4)任何证书的校验都可以通过签发及确认者的公钥完成,不再需要中间方参与;

5)分布式签证校验系统导致可以完全不需要信任第三方的存在和干预,系统自动完成;

6)公证网络参与方平权,系统自治;

7)原公证中心(公证处)功能职能弱化,可以逐渐变成一个象征性的法律主体,更适合做其法律专职工作,法律意志体现的效率得以提高,意义更大。

我们再进一步看一个类似存证通的区块链公证存证防伪系统的具体实现过程,以及一些核心技术原理。这个系统的理念在于所有被认为有价值的数据,包括私有数据和公共数据,都可以存证公证并防伪。

如下图,系统从数据开始,自上而下进入系统,到达系统最底层然后从左到右完成证书签发再回到系统向上分发返回给请求用户。

1)以事件为导向,当数据发生变化时向系统发出存证、公证、防伪识别等请求。

2)外部事件的请求是分布式的,可以有多种数据源,确保系统的高可用性;当外部请求进入平台后,平台根据事件所请求的数据的变化,抓取变化特征值,将特征值的元数据进行哈希函数加密(SHA256)。到目前为止,区块链技术中只有通过哈希函数加密的或者使用类似同级加密强度的加密函数,才能保证数据的不可篡改性,否则都会留下安全隐患。

3)采集了数据变化事件的特征值的加密信息,按照一定逻辑和循序组成数据块上链,可以是多链结构或者单链结构,完成上链存证编码过程。

4)对需要上链的事件数据进行压缩。

5)将需要上链的数据通过事务(交易)写入底层区块链构架。

6)区块链数据写入并给出数字证书。

7)平台(可以是去中心化的)拿到证书,向证书请求者进行查询或发放。

我们一直以来介绍了很多区块链的技术应用,大部分我们看到的都是去中心化模式的。但是需要强调的一点是:在实际公证防伪存证或者溯源等区块链系统中,区块链的应用并不一定完全是彻底去中心化模式的。因为通常分布式系统的构架是很复杂的,平台访问层和底层数据存储层一般都是松耦合的。不一定完全是绑定在一起的,也就是说,在存储层使用区块链技术构架做物理账本存储时,平台或者分布式账本(存证)的访问方式可以是集中式或去中心化模式,整个系统也是使用了区块链技术的,也具备区块链技术很多优良特性。这样的区块链系统我们常常称为“存储层区块链应用”。

当然,也有去中心化理想主义者认为这种类型的区块链应用只是非常简单的几个节点,属于私有链模式,在内部网络内实验用,而且只用到了区块链最少的一个应用——分布式数据物理存储,可溯源、不可篡改的属性,也戏称这样的区块链应用为“伪区块链”应用。因为这样的区块链没有在整体上多节点来构建基于区块链的价值网络。在区块链技术应用的探索中,我们听到2017年某银行曾经尝试过一个共识节点的区块链银行核心业务系统,某银行用Fabric做了小于10个共识节点的区块链银行托收系统,某银行也在私有链上尝试了少量节点概念验证的PoC区块链信用证项目。这些私有链方面的区块链应用项目的尝试,也是中国金融业在区块链技术应用上相对大胆的尝试。哪怕有些用到的只是区块链技术公证防伪溯源能力。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月最赞

读 书 +更多

精通Spring 2.0

本书是关于Spring 2.0的权威教程,是Java/Java EE开发者必备的参考书。本书详尽系统地介绍了Java EE的基础知识、Spring 2.0的各种功能,以...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× 51CTO学院双十二活动