12月20日,在由CSDN主办的「2019中国区块链开发者大会」上,微众银行区块链首席架构师张开翔发表题为《微众区块链开源技术探索和社区生态建设》的主题演讲。
张开翔提出微众银行“3+2”的联盟链技术路径主张。“3”指合规、安全、稳定;“2”指易用友好及高性能。
“银行做任何一个事情都要合规,我们是强监管行业,选择兼顾创新和稳定的路线,区块链分联盟链和私链,私链没太大意思,公链做不了,联盟链是最合适的选择。”张开翔表示,微众银行做到合规、安全和稳定这三点,才能满足金融业务以及产业对区块链的需求,再加分项才是必须很好用且性能很高。他强调,微众银行先做“3”即合规、安全、稳定,再做易用友好及高性能。
以下为演讲全文:
非常感谢CSDN的邀请,跟回家了一样,我工作了20年,注册CSDN是19年,2000、2001年我刚毕业,一无所有,一个人到深圳,只有CSDN的论坛和朋友帮我度过职业生涯起步的那几年,我在那里学习、认识了很多朋友,对于我来说,CSDN就是我的通信交友网站,当时的很多朋友现在还在保持联系,CSDN的氛围真的非常好。时间过得很快,有些东西变了,但有些东西还没变,我还是个程序员,还是搞技术的,头发跟20年前差不多,是作为程序员非常成功的一件事情。
题目非常长,总结起来是三句话:我来自微众银行,我在搞技术,我开源了。微众银行是中国第一家互联网银行,完全是线上服务,没有线下网点,我们的科技人员占了银行人数一半以上,这在金融业是很少的,而且金融业像我这样出来不穿西装的也不多,这是微众银行的一个特点。
因为业务在线上服务小微个人普惠的企业,所以有大量场景,贷款、车、保险,我们要连接各种各样的生态合作伙伴,金融科技、技术开源、开放生态是我们必然的选择。用区块链就是理所当然了,这个过程很长,我研究区块链是从2015年开始的,我之前在腾讯工作差不多10年,微众是腾讯投资的,敖萌老师是我们的股东。
声音 | 微众银行赵振华:区块链跨链和隐私保护问题有望半年内解决:金色财经报道,微众银行区块链资深专家赵振华在火讯Talk栏目接受采访时表示,公有链的特点并不适应企业级应用,联盟链才是最优选择。首先,企业之间发生业务相互都是认识的,身份可以识别,比如均为合法登记的企业,发生的业务是企业的经营范围,所以联盟链需要准入机制,在组成链之前相互身份经过验证,在链上通过数字证书识别身份;其次,企业的业务数据通常包含企业的敏感信息,企业客户的隐私信息等,这些数据是不可能公开共享,而只能和业务相关方共用。最后,企业借助于联盟链,协作会更加紧密,所以有助于企业快速把自己的产品和服务销售出去转化成收益,这才是正确的激励方式。此外,赵振华认为,区块链目前亟待解决的问题有两个,一个是跨链,另一个是隐私保护,相信半年内也会有很好的解决方案。[2019/11/26]
2015年到现在做了很多事情,首先做了底层平台WeCross,联盟链平台,目前相当可用了,但刚才老师说到,讲区块链意义不大,因为大家都在看这个技术怎么落地应用,所以在应用和底层之间构建一个桥梁,我们发布了很多开源的方案,有一系列解决方案,消息协作是面向物联网的,5G将是一个趋势和潮流,那么物联网怎么上链?要解决一系列设备适配、消息传输、分布式网络、安全问题,提供一个event基于事件消息的框架解决物联网的问题。中间件怎么理解?底层是黑盒子,如果做到连文科生都用区块链,用鼠标和键盘操作交互式网页。程序员接区块链,可以写一个API和SDK,通过接口接入,解决门槛的问题。跨链也是个趋势。基于底层和一系列方案,我们支撑各种各样的业务应用。
今年我在全国出差大概100天,讲了无数场,讲很多趋势、政策、应用的东西,今天好好讲讲技术、讲讲开源。
开源不是把代码丢出去就完事的事情,它是个生态,开源里有各种各样的人、需求、诉求,引用经典的马斯洛需求层次的理论,人要活着、要吃好、要生存,对开源项目来说要稳定、高性能、功能全、文档可读,这是最基本的。另外,安全感,如果你离开开源,持续是不投入的,没有人保底的,生产是不活跃的,用户没有安全感,用了这个东西半年后还能不能用?另外,生态,如果开源社区不活跃,有人问问题,没有人回答,那它肯定有问题。我为什么当时在CSDN混了那么长时间?首先,我在CSDN上可以搜到问题,我问的问题、发了帖,一定有人答,每个板非常热闹。生态需要活跃的、热烈的、能够互助的生态,这个生态是互相尊重的,因为我技术贡献而得到尊重,而不是技术贡献给我钱,当然,给我钱也可以,但是开发者更看重精神上的东西。做了产业商业一定要有回馈,否则不可持续。
声音 | 微众银行张开翔:区块链主要解决信息、信任和信用问题,不包括炒币:微众银行区块链首席架构师张开翔接受采访时表示,区块链能够解决三个阶段的问题:信息、信任、信用,而炒币并不在业务之内。此外,他还称:“我不认为现有的虚拟代币交易模式是好的隐私模式,它只是看起来匿名,匿名仅仅是隐私的一个维度。举一个例子,以太坊上面所有的交易,流水都在链上可查的,而你愿意把你的银行交易流水拿出来给别人看吗?可能有些人在上面进行投机的话,他们认为没关系。但是如果做合规的业务,希望商业价值可持续,链上有真正跟你身家性命有关的数据,你还是要全面保证你的隐私和安全的。其实公众并不怎么在乎你用不用区块链,他只在乎这个系统、这个业务有没有给我带来好处,如果各种关系于国计民生的垂直领域的应用,通过App、H5网页,或者微信小程序的方式,触达公众,让大家用起来,能给大家带来愉悦、便利、实惠,那其实就是服务于公众了,我们把这个形态,称为公众联盟链。”[2019/11/14]
银行做任何一个事情都要合规,我们是强监管行业,选择兼顾创新和稳定的路线,区块链分联盟链和私链,私链没太大意思,公链做不了,联盟链是最合适的选择。我们做到合规、安全和稳定这三点,才能满足金融业务以及产业对区块链的需求,在加分项是必须很好用且性能很高,我们先做下面的三个,再做上面的两个。
怎么理解加分项以及开源软件的体验?我比喻一下,作为开源软件初创者、第一作者,就像父母对孩子一样,孩子长大了,他把孩子送出去,管不了他的一生。开源也一样,只要发布代码到github上,这个项目就不是你自己的,它是社区的,对这个孩子的要求是没有护送他一生,但是可以要求他稍微穿得好一代,待人接物礼貌一点,有问必答、有责任感,这是做人的基本要素。所以区块链开源软件首先做到代码风格很幽雅,我曾经被人吐槽过,2017年人说很烂,现在看来确实很烂,但是我们把它做到幽雅,有代码风格的检查,有20多万的文档。程序员写代码很嗨,写文档很痛苦,我们招了一个谷歌的博士,一看这个太垃圾了,又重新了一版,它是一种风格。所谓手感就是你操作起来爽不爽,每个输入是不是立刻有反馈,你的搭建过程是不是愉快,用起来是不是很顺畅,开发体验、调试体验是不是好,这是对开发者的尊重,是基本要求。
动态 | 微众银行联合精友科技发布国内首款区块链汽车数据库:10月18日,由精友科技举办的第一届保险科技创新精英大会在江苏无锡举办。在大会上,微众银行与精友科技达成战略合作,双方将依托区块链技术,整合多方资源打造国内首款区块链汽车数据库,进一步推动汽车行业无障碍合作与数据共享。[2019/10/18]
我们思考这个事情时有个角度是从角色出发,我2005年CSDN上发的一片文章是“从角色出发”,说明我们从2005年到现在没有什么长进。当时建立软件的一套世界观,因为软件是给人用的,开源软件尤其区块链牵扯无数角色,要为这些角色打造上手的东西,从安装到最后的审计结束。我们的一个架构师发明了“15分钟原则”,如果一个开发者从接触到你的开源软件,15分钟还没拉完这个软件安装跑起来,这个用户可能就会流失。然后它要快速能够学习,要有文档,开发起来很方便,维护起来不那么痛苦,至少不要影响夜生活,否则每天晚上报警就麻烦了。
除了易用好用外,区块链还有很多诉求:
1.节点数多。现阶段联盟链能建起100多节点的网络就了不起了,但是未来联盟链是要遍布全国甚至全球的,上千上万的节点都是有可能的,目前比特币的节点是上万的,所以我们要解决规模问题。
2.数据量大。之前区块链是探索阶段、起步期,流量不太大,很多人不关注数据量,但目前越来越多应用跑了一年两年,很多伙伴已经遇到了数据量的瓶颈或者挑战。我们提供了大量的守规矩和策略,使得数据可以按照时间分割、按照用户分片,解决数据量的容量问题。
3.带宽要声。很多做分布式网络的痛点,带宽贵,买2兆和买10兆价格差多少,专线更贵,如果分布式网络要频繁的同步这些区块交易等等信息,消耗的就是带宽,影响性能最严重的一个环节也是带宽,所以要极致的优化协议包,同步频率以及同步内容,为用户省带宽。
4.保护隐私,这是毋庸置疑的。
我们怎么优化?有两个方向,一个是ScaleUP,就是把机器的CPU、内存、硬盘跑满,但是一个机器能跑的是有限的。如果做到服务海量用户,ScaleOUT是一定要做到的,就是平行扩容。区块链架构的性能优化跟其他优化没有什么区别,我们2018年做了一次代码,我们内部有些争议,有些路线的磋商有,些人说重构就好了,我些处女座的架构师看不下去,要把它重写,最后我们有个妥协,就是重用原来大量的模块,但是把它解耦、模块化,接口编程,同步的、虚拟机的、共识的都是模块,再把这些模块组合起来,拒绝意大利面条式编程,做到隔离、低耦合、高内聚,基于模块化架构做并行化,一个个小积木放那是高内聚,可以在多线程多进程跑,我可以给它加各种各样的策略,非常容易的组合起来,做到交易并行计算、共识并行处理、网络并行传输和编解码。最后一点,把数据高速缓存起来,区块链有个特点,数据一旦生成就不会再改历史数据,它只会新增,我就有很多办法把历史数据,它如果是热点的,比如刚刚产生的仓单或者存证,放在内存里。这要有些策略和技巧,怎么识别哪些是热的、冷的,怎么做RIU、怎么分配大小。这个策略可以从1000提到1万。
CSE成为全球首个批准接收比特币定向增发的股票交易所:据雅虎财经以及纳斯达克等新闻报道,“加拿大著名证券交易所CSE批准了CK区块链集团(代码CSE:CK)通过比特币定向增发股票的申请。CK区块链集团已于2017年12月29日完成比特币定向增发股票的融资,这使得CSE成为了全球首个批准比特币定向增发的正规股票交易所,同时CK区块链集团也成为了首个完成比特币定向增发的上市公司。”加拿大继拥有全球第一部比特币提款机和完成全球第一个区块链反收购项目之后,再次获得了另一个区块链行业内世界第一的称号。[2018/1/16]
但是这还不够,区块链指标很苛刻,受带宽等影响很严重,我们给自己提了很严苛的要求,我们要求交易具备极强的事务性,一旦产生完成就不会再回滚、不会再分岔,而且我们强调一定是单链的性能,智能合约跑业务逻辑的性能,它不是空跑的、不是多链的。今天下午有人讲百万TPS。我强调的是单链做并发而且正确,如果结果是错的就没有意义,尤其金融的帐。所以单链保持快速响应、正确、稳妥的情况下,我们做到接近3万TPS,目前来看还可以够用,我们一般不会双十一瞬间十几二十万的TPS相比,区块链的意义是多方共识的核心的、高价值的交易。金融里中等或者高负载的业务大概是一两千左右TPS,这跟我以前在腾讯业务做得完全不一样,腾讯业务上线有千万用户,在线几十万TPS。
跟腾讯对比一下海量服务架构,互联网公司有什么不一样,腾讯如果面向千万级、亿级用户怎么做?很简单,分散、分片、分表,把架构分分层,用各种中间件和框架把用户的请求、路由分发、负载均衡到不同的服务上,每个服务是无状态的,每个服务只做一件事情,服务和服务间不用校验互相的信任性,因为这些服务都在一个公司内部,这是典型的一个互联网的架构,如果各位现在有做网站、做APP的,这套应该都是比较熟悉的,我自己做这套东西差不多10年。但是在做区块链时,你的观念就要变了,因为在之前模型里你是对公司内部系统编程的,无论分多少层,它都在公司内部,但是区块链每个节点都跑在不同的机构、不同的主体、不同的地域、不同的业务里,你写个开源软件或者区块链软件,当你把它发布出去,它真的不是你的,它跑在别人的机房里,你想跟它要个日志,它不会给你,你只有通过信任判断、连接判断、状态判断这个网络是不是活着,而且每个节点可能存了全量数据,比特币、以太坊都是这样子的,大家参与共识,它有自己的配置。
微众银行:用区块链构建分布式商业:在中国北京国际科技产业博览会上,微众银行科技创新产品部副总经理范瑞彬称,微众银行已研发了两大开源底层平台。其一是联合万向控股、矩阵元推出BCOS,该平台在2017年7月完全开源,并被工信部标准院牵头成立的分布式应用账本开源社区纳为三大项目之一。随后,微众银行又联合金链盟开源工作组的多家机构共同研发并完全开源了BCOS的金融分支版本——FISCO BCOS,进一步促进国内金融区块链生态圈的形成。[2018/5/21]
如果我想模仿互联网公司的海量服务的分散、丰富的架构怎么办?那只能是多链。我是一个机构,我接入了一个业务,一条链跑满了,性能不够了,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.善良规范。为什么我们要坚持合规?因为我们做的事情都是关于国计民生、服务实体领域的,关系到别人身家性命的事情。
谢谢大家!
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。