中钞张一锋:开放许可链是推动区块链大范围应用的路径选择

142 阅读11分钟


本文来自中钞区块链技术研究院院长张一锋在微众银行首届FinTech Day区块链分论坛上的演讲,演讲题目:《区块链与分布式身份》


张一锋提出,开放许可链(公众联盟链)是当前阶段推动区块链更大范围应用的路径选择,而分布式身份是区块链能大规模应用的重要基础设施。


演讲内容概要:

  1. 区块链应该怎么走?

  2. 区块链有什么用?

  3. 区块链下一步的关键是什么?


我们先简单回顾一下这十年区块链的发展历程


2008年以来,区块链技术逐渐转向社会经济的多领域应用。但实质上,真正区块链应用的大规模的社会尝试,其实是在2015年底的企业区块链或者说联盟链的兴起之后。同时我们也可喜地看到,2017年之后,国内涌现出一批以FISCO BCOS为代表的开源联盟链的项目。


我把这十年来的区块链项目放到一个简化的坐标系中,X轴代表共识节点是否采用许可准入的模式,Y轴代表区块链是否允许开放接入。在这个坐标系中,传统上的公链项目在第二象限,常见的联盟链项目在第四象限。



我认可这么一个观点,就是传统公链,或者称非许可链,很可能在未来带来更大的颠覆性价值,但客观地说,今天的非许可链,无论在性能、隐私安全等技术方面并不满足大规模商用的要求,即使在激励模型方面,也远谈不上成熟。


这两年,联盟链的实践,从技术层面来讲,相比以前更成熟一些,应用落地也更务实一点,但也碰到一些问题。


有个冷笑话,说联盟链,你们都还不是联盟,怎么上链?笑话归笑话,确实反应了联盟链项目落地过程中的一个窘境:本来是期望通过区块链实现多主体间的去信任协作,结果实际上却必须先有了信任合作,才开始谈共同建设区块链项目。所以今天的大部分联盟链项目,实现的都只是封闭场景下的业务。


下一步区块链发展的路径往哪里走?


我觉得Public Permissioned Blockchain这个方向值得重视。我们同事翻译成开放许可链,微众银行之前把它叫做公众联盟链。开放和许可,并不矛盾。在现有计算机及网络条件下,挑选少量经过许可的节点进行共识记账,是提高区块链性能,解决隐私保护等安全问题的比较务实可行的路径。


但是封闭的单一场景的区块链应用,很大程度上又牺牲了区块链天然具备的多主体去信任连接、分布式协作的优势,所以开放许可链有可能是当前阶段推动区块链更大范围应用的一种选择。


开放许可链。许可,容易理解,开放,究竟指的是什么含义?


我觉得第一层是数据开放,一个区块链应用的数据如果是孤立的,则很难带来更大的价值。


第二层是应用开放,多应用聚合在一个区块链生态里,更容易发生业务和价值的叠加效益。


第三层是节点接入的开放,这里指的是见证节点,共识节点是经许可挑选的。


当然这一点有时候有争议,即是否应该允许见证节点的无许可接入,可以探讨,或者通过实践去探索利弊。但是,开放许可链的潜在价值,已经被越来越多的机构重视。


区块链究竟有什么用?


封闭体系下单一应用的联盟链有时候容易带来一个错觉:区块链很多时候仍然可以被中心化系统替代。区块链究竟带来了什么?我概括为免信任的分布式协作,或者有时候是弱信任的分布式协作。



大家一谈分布式系统,经常会想到阿里云、腾讯云。中国最大的分布式金融产品,其实是人民币纸钞,10亿人分布式持有,无数线下场景支持分布式使用……


现实社会中,集中和分布是天然存在的两种形态,数字世界也会一样,区块链的出现,不过是其中一种典型的分布式基础技术设施。


区块链的出现,使得在数字世界里,我们有可能进行一些弱信任甚至是去信任的分布式协作,而不是传统上的建立信任之后的同步协作关系。区块链,把同步的信任关系解耦,把同步的协作模式结构,解耦后的分布式协作,可以大大推动数字世界的新业务创新的出现。


简单举几个例子来阐述。


第一个是商业银行的电子合同存证。



商业银行和个人客户签订纸质合同,一式多联,出现纠纷的时候各持一联去打官司。互联网上怎么办?区块链出现之前,商业银行在签订电子合同的同时,可以把电子合同同步到司法机构进行保全,出现纠纷时在线取证。


区块链出现以后,保全和取证两个环节被解耦,保全时只需要把电子合同的哈希值上传到区块链,而不需要直接与司法机关同步;当将来出现纠纷的时候,银行可以把自己保存的电子合同,与在区块链上存证的哈希值提交到司法机关,司法机关可以通过区块链进行验证和取证。


我们分析一下这个案例,第一,它实现了空间上的异步协作;第二,它实现了时间上的异步协作;第三,在信息上,在实现有效存证的过程中,又不需要过度披露电子合同内容等商业机密。这是我想说的区块链如何建立分布式协作。


第二个例子,数据流转。



比如,涉及不同政府部门间数据协作的电子政务,需要多个部门业务在线协同。以前的模式,往往需要我们把不同的系统相互对接、同步的协作模式。


区块链分布式协作模型下,每个政府部门都只需要把数据签发给具体办理业务的个人主体,个人把最终汇总的数据提交给办事机构处理,办事机构通过区块链验证个人所提交数据的真实性,而不需要多政府部门间进行在线的同步协作。


就好像在计算机出现之前,我们一个个政府部门挨个去开证明盖章,最后拿着一摞盖章证明到办事机构去处理。这也是现实世界里的分布式,区块链帮助我们用新的数字化技术,重构了分布式协作模式。


区块链大规模应用前的重要基础设施——分布式身份


如今,真正的区块链用户数量上还很有限。所以,区块链技术真要大规模应用,有一个重要的问题是绕不过去的,就是分布式身份。


在今天的数字世界,并没有一项基础设施让我们个人可以去管理自己的身份,区块链的出现,是否能帮助我们推动这新的基础设施的构建?分布式身份要解决哪几个问题?


  • 第一个是自主控制,允许个人能自主管理自己的身份,而不是依赖于应用方。


  • 第二是可移植,个人可以携带自己的身份,从一处漫游到另一处。


  • 第三是分布式认证,认证的过程不需要依赖于提供身份的应用方。



整个分布式身份体系的技术基础是DPKI,分布式PKI。DPKI并不是抛弃了PKI,而是在PKI的基础上前进了一步。利用区块链的能力,弥补PKI在生态组建过程中柔性不足的缺点。


以往我们谈互联网身份,往往谈的是身份认证。身份其实有两部分含义,一个是身,一个是份。身,指的是一个人对应的ID标识。份,指的是人的各种属性,比如是男的,是公司员工,这些都需要第三方来证明。


所以在分布式身份信任模型中,有几个不同角色,图中间是个人,左侧是发证方Issuer,就是为某一个人身份属性做背书的机构,右侧是验证方Verifier。以往发证方往往同时要提供在线的证明验证服务,这属于同步式协作。



在分布式身份信任模型中,发证归发证,验证归验证,也就是说验证不再依赖于发证方。


举个例子,国内这几年马拉松很流行,但你要证明你某一次的马拉松成绩,只能依赖于官网查询,官网不在了,你的成绩也就消失了。


在分布式身份模型下,所有的验证都可以是异步的,马拉松主办方签发了你的成绩后,你就可以不再依赖于官网而可以出示可被验证的成绩证明。这就是分布式身份新的信任模型。


而整个分布式身份框架,大致上可分为四层,最底下是区块链,第二是通讯层,第三层是可验凭证,第四层是治理层。



特别要讲讲匿名凭证体系。这里介绍的是IBM在英国的实验室发布的IdMix密码算法,一套基于非交互零知识证明的密码算法。



互联网上经常需要一些身份信息的验证,比如说网游要验证玩家大于18岁,如果靠填身分证号码,又带来个人信息的过度披露。比较好的办法是我们只提供给网游一个大于18岁的身份证明。


匿名凭证体系可以支持,公安机关给个人签发一个身份证明,个人根据业务需要自主生成部分身份属性的证明,如年龄区间证明,如住所省份证明,我们只拿着这个部分属性的证明给验证方,真正实现个人对身份的自主控制。


凯文凯利曾预言,在整个社会的数字化进程中,现实世界中的很多对象都将被映射到数字世界中,产生数字孪生对象。


这个数字孪生对象可能90%的属性跟现实世界里的原对象都是同构的,只有10%不太一样。但正是这10%,构成了未来几十年,大部分数字创新的源头。匿名身份凭证可能就是数字身份与现实世界中的身份不一样的那10%。


最后做个总结,这一波数字化的社会化大进程中,我们需要拥有一种开放的心态,去迎接新的技术,拥抱新的改变。


获取演讲PPT可在【FISCO BCOS开源社区】公众号后台回复:分布式身份



FISCO BCOS是完全开源的联盟区块链底层技术平台,由金融区块链合作联盟(深圳)(简称金链盟)成立开源工作组通力打造。开源工作组成员包括博彦科技、华为、深证通、神州数码、四方精创、腾讯、微众银行、亦笔科技和越秀金科等金链盟成员机构。

代码仓库:github.com/FISCO-BCOS


我们鼓励机构成员、开发者等社区伙伴参与开源共建事业,有你在一起,会更了不起。多样参与方式:

1 进入微信社群,随时随地与圈内最活跃、最顶尖的团队畅聊技术话题(进群请添加小助手微信,微信ID:fiscobcosfan);

2 订阅我们的公众号:【FISCO BCOS开源社区】,我们为你准备了开发资料库、最新FISCO BCOS动态、活动、大赛等信息;

3 来Meetup与开发团队面对面交流,FISCO BCOS正在全国举办巡回Meetup,深圳、北京、上海、成都……欢迎您公众号在菜单栏【找活动】中找到附近的Meetup,前往结识技术大咖,畅聊硬核技术;

4 参与代码贡献,您可以在Github提交Issue进行问题交流,欢迎向FISCO BCOS提交Pull Request,包括但不限于文档修改、修复发现的bug、提交新的功能特性。


代码贡献指引:

https://github.com/FISCO-BCOS/FISCO-BCOS/blob/master/docs/CONTRIBUTING_CN.md