微众银行张开翔:银行是强监管行业,联盟链是最好选择(附全文)

他提出微众银行“3+2”联盟链技术路径主张。

微众银行张开翔:银行是强监管行业,联盟链是最好选择(附全文)

刺猬财经APP(www.ciweicaijing.com)一线报道,12月20日,在由CSDN主办的「2019中国区块链开发者大会」上,微众银行区块链首席架构师张开翔发表题为《微众区块链开源技术探索和社区生态建设》的主题演讲。

张开翔提出微众银行“3+2”的联盟链技术路径主张。“3”指合规、安全、稳定;“2”指易用友好及高性能。

“银行做任何一个事情都要合规,我们是强监管行业,选择兼顾创新和稳定的路线 ,区块链分联盟链和私链,私链没太大意思,公链做不了,联盟链是最合适的选择。”张开翔表示,微众银行做到合规、安全和稳定这三点,才能满足金融业务以及产业对区块链的需求,再加分项才是必须很好用且性能很高。他强调,微众银行先做“3”即合规、安全、稳定,再做易用友好及高性能。

以下为演讲全文:

非常感谢CSDN的邀请,跟回家了一样,我工作了20年,注册CSDN是19年,2000、2001年我刚毕业,一无所有,一个人到深圳 ,只有CSDN的论坛和朋友帮我度过职业生涯起步的那几年,我在那里学习、认识了很多朋友,对于我来说,CSDN就是我的通信交友网站,当时的很多朋友现在还在保持联系,CSDN的氛围真的非常好 。时间过得很快,有些东西变了,但有些东西还没变,我还是个程序员,还是搞技术的,头发跟20年前差不多,是作为程序员非常成功的一件事情。

题目非常长,总结起来是三句话:我来自微众银行,我在搞技术,我开源了。微众银行是中国第一家互联网银行,完全是线上服务,没有线下网点,我们的科技人员占了银行人数一半以上,这在金融业是很少的,而且金融业像我这样出来不穿西装的也不多,这是微众银行的一个特点。

因为业务在线上服务小微个人普惠的企业,所以有大量场景,贷款、车、保险,我们要连接各种各样的生态合作伙伴,金融科技、技术开源、开放生态是我们必然的选择。用区块链就是理所当然了,这个过程很长,我研究区块链是从2015年开始的,我之前在腾讯工作差不多10年,微众是腾讯投资的,敖萌老师是我们的股东。

2015年到现在做了很多事情,首先做了底层平台WeCross,联盟链平台,目前相当可用了,但刚才老师说到,讲区块链意义不大,因为大家都在看这个技术怎么落地应用,所以在应用和底层之间构建一个桥梁 ,我们发布了很多开源的方案,有一系列解决方案,消息协作是面向物联网的,5G将是一个趋势和潮流,那么物联网怎么上链?要解决一系列设备适配、消息传输、分布式网络、安全问题,提供一个event基于事件消息的框架解决物联网的问题。中间件怎么理解?底层是黑盒子,如果做到连文科生都用区块链,用鼠标和键盘操作交互式网页。程序员接区块链,可以写一个API和SDK,通过接口接入,解决门槛的问题。跨链也是个趋势。基于底层和一系列方案,我们支撑各种各样的业务应用。

今年我在全国出差大概100天,讲了无数场,讲很多趋势、政策、应用的东西,今天好好讲讲技术、讲讲开源 。

开源不是把代码丢出去就完事的事情,它是个生态,开源里有各种各样的人、需求、诉求,引用经典的马斯洛需求层次的理论,人要活着、要吃好、要生存,对开源项目来说要稳定、高性能、功能全、文档可读,这是最基本的。另外,安全感,如果你离开开源,持续是不投入的,没有人保底的,生产是不活跃的,用户没有安全感,用了这个东西半年后还能不能用?另外,生态,如果开源社区不活跃,有人问问题,没有人回答,那它肯定有问题。我为什么当时在CSDN混了那么长时间?首先,我在CSDN上可以搜到问题,我问的问题、发了帖,一定有人答,每个板非常热闹。生态需要活跃的、热烈 的、能够互助的生态,这个生态是互相尊重的,因为我技术贡献而得到尊重,而不是技术贡献给我钱,当然,给我钱也可以,但是开发者更看重精神上的东西。做了产业商业一定要有回馈,否则不可持续。

银行做任何一个事情都要合规,我们是强监管行业,选择兼顾创新和稳定的路线 ,区块链分联盟链和私链,私链没太大意思,公链做不了,联盟链是最合适的选择。我们做到合规、安全和稳定这三点,才能满足金融业务以及产业对区块链的需求,在加分项是必须很好用且性能很高,我们先做下面的三个,再做上面的两个。

怎么理解加分项以及开源软件的体验?我比喻一下,作为开源软件初创者、第一作者,就像父母对孩子一样,孩子长大了,他把孩子送出去,管不了他的一生。开源也一样,只要发布代码到github上,这个项目就不是你自己的,它是社区的,对这个孩子的要求是没有护送他一生,但是可以要求他稍微穿得好一代,待人接物礼貌一点,有问必答、有责任感,这是做人的基本要素。所以区块链开源软件首先做到代码风格很幽雅,我曾经被人吐槽过,2017年人说很烂,现在看来确实很烂,但是我们把它做到幽雅,有代码风格的检查,有20多万的文档。程序员写代码很嗨,写文档很痛苦,我们招了一个谷歌的博士,一看这个太垃圾了,又重新了一版,它是一种风格。所谓手感就是你操作起来爽不爽,每个输入是不是立刻有反馈,你的搭建过程是不是愉快,用起来是不是很顺畅 ,开发体验、调试体验是不是好,这是对开发者的尊重,是基本要求。

我们思考这个事情时有个角度是从角色出发,我2005年CSDN上发的一片文章是“从角色出发”,说明我们从2005年到现在没有什么长进。当时建立软件的一套世界观,因为软件是给人用的,开源软件尤其区块链牵扯无数角色,要为这些角色打造上手的东西,从安装到最后的审计结束。我们的一个架构师发明了“15分钟原则”,如果一个开发者从接触到你的开源软件,15分钟还没拉完这个软件安装跑起来,这个用户可能就会流失。然后它要快速能够学习,要有文档,开发起来很方便,维护起来不那么痛苦,至少不要影响夜生活,否则每天晚上报警就麻烦了。

除了易用好用外,区块链还有很多诉求:

1.节点数多。现阶段联盟链能建起100多节点的网络就了不起了,但是未来联盟链是要遍布全国甚至全球的,上千上万的节点都是有可能的,目前比特币的节点是上万的,所以我们要解决规模问题。

2.数据量大。之前区块链是探索阶段、起步期,流量不太大,很多人不关注数据量,但目前越来越多应用跑了一年两年,很多伙伴已经遇到了数据量的瓶颈或者挑战。我们提供了大量的守规矩和策略,使得数据可以按照时间分割、按照用户分片,解决数据量的容量问题。

3.带宽要声。很多做分布式网络的痛点,带宽贵,买2兆和买10兆价格差多少,专线更贵,如果分布式网络要频繁 的同步这些区块交易等等信息,消耗的就是带宽,影响性能最严重的一个环节也是带宽,所以要极致的优化协议包,同步频率以及同步内容,为用户省带宽。

4.保护隐私,这是毋庸置疑的。

我们怎么优化?有两个方向,一个是ScaleUP,就是把机器的CPU、内存、硬盘跑满,但是一个机器能跑的是有限的。如果做到服务海量用户,ScaleOUT是一定要做到的,就是平行扩容 。区块链架构的性能优化跟其他优化没有什么区别,我们2018年做了一次代码,我们内部有些争议,有些路线的磋商有,些人说重构 就好了,我些处女座的架构师看不下去,要把它重写,最后我们有个妥协,就是重用原来大量的模块,但是把它解耦、模块化,接口编程,同步的、虚拟机的、共识的都是模块,再把这些模块组合起来,拒绝意大利面条式编程,做到隔离、低耦合、高内聚,基于模块化架构做并行化,一个个小积木放那是高内聚,可以在多线程多进程跑,我可以给它加各种各样的策略,非常容易的组合起来,做到交易并行计算、共识并行处理、网络并行传输和编解码。最后一点,把数据高速缓存起来,区块链有个特点,数据一旦生成就不会再改历史数据,它只会新增,我就有很多办法把历史数据,它如果是热点的,比如刚刚产生的仓单或者存证,放在内存里。这要有些策略和技巧,怎么识别哪些是热的、冷的,怎么做RIU、怎么分配大小。这个策略可以从1000提到1万。

但是这还不够,区块链指标很苛刻,受带宽等影响很严重,我们给自己提了很严苛的要求,我们要求交易具备极强的事务性,一旦 产生完成就不会再回滚、不会再分岔,而且我们强调一定是单链的性能,智能合约跑业务逻辑的性能,它不是空跑的、不是多链的。今天下午有人讲百万TPS。我强调的是单链做并发而且正确,如果结果是错的就没有意义,尤其金融的帐。所以单链保持快速响应、正确、稳妥的情况下,我们做到接近3万TPS,目前来看还可以够用,我们一般不会双十一瞬间十几二十万的TPS相比,区块链的意义是多方共识的核心的、高价值的交易。金融里中等或者高负载的业务大概是一两千左右TPS,这跟我以前在腾讯业务做得完全不一样,腾讯业务上线有千万用户,在线几十万TPS。

跟腾讯对比一下海量服务架构,互联网公司有什么不一样,腾讯如果面向千万级、亿级用户怎么做?很简单,分散、分片、分表,把架构分分层,用各种中间件和框架把用户的请求、路由分发、负载均衡到不同的服务上,每个服务是无状态的,每个服务只做一件事情,服务和服务间不用校验互相的信任性,因为这些服务都在一个公司内部,这是典型的一个互联网的架构,如果各位现在有做网站、做APP的,这套应该都是比较熟悉的,我自己做这套东西差不多10年。但是在做区块链时,你的观念就要变了,因为在之前模型里你是对公司内部系统编程的,无论分多少层,它都在公司内部,但是区块链每个节点都跑在不同的机构、不同的主体、不同的地域、不同的业务里,你写个开源软件或者区块链软件,当你把它发布出去,它真的不是你的,它跑在别人的机房里,你想跟它要个日志,它不会给你,你只有通过信任判断、连接判断、状态判断这个网络是不是活着,而且每个节点可能存了全量数据,比特币、以太坊 都是这样子的,大家参与共识,它有自己的配置。

如果我想模仿互联网公司的海量服务的分散、丰富的架构怎么办?那只能是多链。我是一个机构,我接入了一个业务,一条链跑满了,性能不够了,TPS1万还是不够,那我就再建一条链变成2万,有1000条就变成TPS1000万了。但问题在于一定会占用 大量资源,每个区块链节点都会存所有的少于,这其实是个很严重的问题,它可能在一开始看起来还挺美的。运维也挺头疼的,每条都要占用大量网络单口,要开黑白名单,要负责安全策略,都挺头疼的。

我们现在的研究方向是在灵活 上灵活 分解,能够分解、分组。目前区块链有行业通常说的Layer2,侧链是很好的方案,但是未来物联网接进来了,物联网有很强的地域特性,现在物联网强调边缘计算,一个小区、一个加油站附近都是边缘,数据要在这里面要达成共识,然后再上到上面一层。所以我要考虑怎么能够把区块链上这些记帐者数据同步,网络新型或者网络结构灵活组合在一个地域、一个场景里面。

在商业场还有一个挑战,就是A跟B交易帮为了让C知道,这是商业隐私的挑战,是非常常见的诉求。现在我们有个群组架构,做到像拉群一样组建商业关系,大家都在联盟里参与业务,但是交易只跟其中一些人相关,可以通过链上存在拉个小群把这个交易做了,也可以在链上全局的验证,它也是基于我们架构优化,所有的软件做到模块化、高内聚、易耦合才能灵活组合一系列分层分组的关系。商业协作是非常复杂的,不是做个APP那么简单,商业的节奏有利益纠葛、利益搏弈点,极其复杂。

当有了分片、分组、分链的架构之后,在未来一定有个诉求叫“跨链”,这条链做存证,那条链做供应链,供应链的仓单要在这条链做存证,怎么办?跨链。跨链基础逻辑是让这条链相信那条链,同步那条链所有的状态信息、交易信息等是否存在和是否正确,我可以用SPV、权限控制等算法来证明它,还有一些零知识证明等方法。链和链之间的信任是信任的平方,做到跨链的组件是很好用的,它抽象接口,大家只要符合接口就可以对接起来。

回到隐私问题,我是谁、我住哪、我手机号是哪里,这是我的资产信息,我每天做了多少笔交易,这个在比特币上是完全公开的。大家想想,拿你的银行流水去办一个事,你想不想让别人知道你的流水?希望不希望它对你做出一个行为画像?这是每天现在商业社会都在做的事情。隐私的保护不仅仅是个技术问题,它是一个管理问题,它是一系列的策略和管理的手段的组合。

我们针对隐私的方面是独立的模块,它可以跟区块链有关,也可以不跟区块链有关,只要是多方写作,一定会遇到严峻 的隐私问题。欧洲GDPR(音译),大量网络服务、商业服务都会面临问题。我们的目标是利用一系列的数据组合、数据加密、签名以及零知识证明,做到身份可以加密、帐可以加密,加密后可以运算,总额是一样的,必须是可验证的。A投票给了某某,零知识证明就是在不透露他的身份和他投票 给谁的前提下,认证他这个投票是有效的,其实是一个算法游戏。评估的不仅仅是性能,而是评估它是否有事先设定,有可能有一个长老掌握了密钥,他需要不需要交互、它可不可以硬件加速。打造一套透明可信、合规可管、易用可控、集成友好的隐私保护策略,支持大量场景。

区块链包括共识、网络连接、身份帐户,每一块我们都完全开放开源,希望跟行业合作伙伴一起对接,区块链自己做没意义,开源是基本,互联互通形成一个大生态才是未来。既然有这么多因素,怎么来学习呢?这是内部给员工的一张图:往下沉可能就成为技术专家,研究细节的技术问题,算法、数学、编译器、计算机体系,我们内部有这样一组做底层的是属于技术专家;区块链一定要在商业应用起来,所以要有些人能写智能合约,理解商业流程,理解金融里的会计、支付等等这些知识,更重要的是它应该懂搏弈论、懂社会学、懂经济学,这才是能够解决商业问题的最重要的因素;语言呢?大家都是开发者,什么语言最好?黑客世界比较容易选择新的语言,rust、给、和Haskell,我们还有C++。

前面有那么多框框,怎么选?这是我给创业公司做的一个版图,有开源软件的前提下做区块链应用非常简单,3天就可以做出来,投入的人力精力更多是业务,里面有AI、有物联网,只有解决这些业务流程,生成的数据锚定在区块链上,只是写个智能合约,调一下SDK的问题。

这是最近写的文章给业界新人,你要做区块链,首先,是个合格的程序员或者合格的同时管理员,然后学习一些区块链特有的知识,在百度或者开源文档都可以学到。最近几篇文章是关于科普的,感谢区块链大本营头条发布,区块链世界里不能信什么?我深入剖析了信任从哪来,你不能信任,你必须验证才能信任。再一篇是进阶必读,把里面的秘密都列出来了,可以坐地起飞的去学习区块链。

这是我们这两年一直做的事情,我今年出差接近100天,我们的团队遍布12个城市,给全国高校以及产业讲课超过400课时,面对面人数超过1小时的实操和原理课程 ,不包括20分钟和半小时的,超过了5000人。我们很用心做事情,线上线下。现在真的找回了在CSDN抢分的感觉,当微信群里用户抛出一个问题,我比我的同事先一步回答问题很开心,因为我要证明现在我还能写代码、懂技术。如果从头开发区块链底层以及一系列配套的东西可能需要3年,这是一个客观的数字,因为我真的做了3、4年,从2015年到现在,包括研究、开源。目前只要用一个开源软件,可以把时间缩短3年到3天,有更多时间去获得市场机会,去做运营,去做优化。

我们这几年做了很多应用,取得了一些成绩,加入了国家队信息中心,中国第一个国产自主安全可控的区块链平台,支撑这个国家队的网络运营。他们有团队懂工业、税务、版权、农业,只需要有区块链支持,我们一起打造区块链生态。我作为银行员工、银行从业人事,才有机会发掘金融服务,不会直接从开源软件直接争取,生态发展起来对大家都有意义。

总结起来:

1.技术过硬。区块链也是这样的。

2.广泛开源 。广结善源,把生态做大。

3.善良规范。为什么我们要坚持合规?因为我们做的事情都是关于国计民生、服务实体领域的,关系到别人身家性命的事情。

谢谢大家!

本文来自,仅作分享,存在异议请联系平台删除。本文观点不代表刺猬财经 - 刺猬区块链资讯站立场。

(0)
上一篇 2019年12月20日 下午8:50
下一篇 2019年12月20日 下午10:40

相关推荐