5月26日,微众银行区块链携全栈技术体系亮相贵阳数博会,并斩获领先科技成果奖。从2015年开始布局区块链,微众银行区块链已推出多项开源区块链技术,其首席架构师张开翔将从区块链发展娓娓道来,详细阐述对微众银行区块链技术体系研究工作和人才培养的思考。“区块链其实也可以很简单”,下面一起学习下吧!
几年前,区块链技术堪称原始,开发者近乎在“赤手空拳”构建区块链应用:部署底层平台、写合约,期间还要面对诸多的技术细节、技术难题,踏入各种前人没有踩过的坑,调试和运营也都可谓艰难。这种种体验犹如走在羊肠小道上,泥泞且未知。
为产业趟平技术门槛,提升应用体验,降低运营成本,拓展领域边界,让开发者们便捷且放心地运用技术去创造价值,加速区块链的产业应用,一直是我们的目标。万物之始,大道至简,为了达成目标,我们坚信得首先有个“大道”,还是能敞开来走的那种。
微众银行区块链团队于2015年投入区块链的技术攻关,并在2017年把成果全面向产业开源。至今,已经正式发布了超过10个主要区块链开源项目,参与多项国际国内的标准编写,提交了大量的专利申请。
近年来,得益于我国对科技创新研究的大力支持,包括新基建、数据要素、隐私保护和碳中和等国策或国家倡议,数字化技术的提升和产业创新加速推动。
同时,来自开源社区的支持鼓励、优化建议、共创共建,技术研究的方向亦愈发清晰、迭代敏捷。诸多技术项目都是从社区收到了诉求、碰撞出灵感后发起,且由社区共同开发代码、维护周边工具、编撰技术和用户文档,共同铸就了微众银行区块链丰富的社区技术生态。
经过多年的共同努力后,我们认为,领域技术已经趋于成熟,开发者的“高速公路”已经铺就。
领域发展趋势
近年来,随着区块链应用加速落地,我们看到一些明显的趋势:
区块链应用的规模和地域范围不断在扩大,国家级区块链网络贯通各省市,技术架构多元化,业务形态更为复杂,治理模型更加多变……单层单链的区块链网络已经难以为继。
许多运行在生产环境中的区块链应用承载着海量的请求,而且由于区块链数据只增不减,日积月累,存储容量日渐逼近硬件上限,需要对数据进行拆分、迁移和备份。同时,开发者对海量数据的管理、分析、灾备方案也有着强烈的需求。
在与实体产业结合时,区块链和既有的IT系统有着不同的系统架构,且不同产业有着不同的业务逻辑、数据维度和安全合规要求。如何清晰地识别链上链下边界,让区块链和原有IT系统各司其职,又无缝结合,解决业务痛点,是每个开发者都在思考的问题。
随着区块链应用走近大众的生活,人、机构和物联网的标识如何定义?个人数据如何管理?人们在和区块链交互时如何得到良好的体验,同时又实现隐私保护?…… 等等这些问题的背后,折射的都是数据成为生产要素时代的痛点。
总之,网络规模越来越大,数据越来越海量,场景越来越丰富,用户对于友善的区块链应用体验的呼声必将越来越大。这些趋势印证着区块链在数字化进程中的应用深度和广度日益增加,同时,也对技术提出了更高的要求。
把技术基本面先做扎实
让我们先回到原点。从一开始,我们就坚定地选择了联盟链方向。毫无疑问,区块链作为基础设施,首先要“可信可靠”,也就是要保证合规、安全和系统的稳定。
合规,意味着在技术上首先要去除虚拟代币,采用许可加入模式,支持KYC(Know Your Customer:了解你的客户),并提供监管接口和审计机制,以符合相应行业的监管审计要求。
安全,是很多行业的命脉,其中包括系统安全、合约安全、数据安全、隐私安全。我们以金融级安全为准绳,在网络、存储和运行环境进行了大量的安全加固,如在2016年实现了高等级的存储加密;在合约安全方面,实现开发期和在线运行时的静态/动态检测;在隐私计算方面,提供场景化的、有针对性的数据隐私保护方案。
当真正要把技术用于生产环境,稳定性至关重要,如金融级的稳定是要求“5个9”,也就是99.999%的可用,相当于7*24小时运行,几乎不能停机,且能在线维护升级,应对各种内外部的故障,满足苛刻的的RPO(恢复点)和RTO(恢复时间目标)要求。
合规、安全、稳定是“基本面”,是不容妥协且必须达到的要求。这也要求我们必须埋头深耕关键核心技术,包括密码学、共识算法、智能合约、分布式网络等,用过硬的技术能力给出保障。从这几年广泛的应用情况来看,我们的开源项目在基本面上经受住了考验。
同时,FISCO BCOS以及相关组件实现了全面国产化,全栈支持国产硬件、操作系统和国密算法。
在“基本面”稳固的基础上,高性能、易用性、扩展性、可持续性则是重要的“加分项”,也是开源软件是否广受欢迎的关键所在。只有得到社区的认可和支持,技术才能真正落地,形成共建和快速进化的健康可持续生态。
既要跑得快,也要行得远
经过卓有成效的优化,FISCO BCOS底层的单链TPS已经达到万级,且可以无限平行扩展,足以满足大规模应用的需求。“区块链速度慢”这个说法已经成为过去式。
但性能并不等于“跑个分”这么简单,系统不能只是跑得快,还要跑得稳,行得远,要保证这些,当务之急是要正视数据容量问题。
区块链上的数据以链式存在,只增不减,而金融等行业要求数据保留多年甚至永久保存,这必然给存储带来巨大压力。如今,有的社区开发者的应用在线上运行了几年,产生了数以亿计甚至百亿计的数据,最初配置的硬盘面临容量瓶颈。
数据膨胀问题不像功能和性能问题那么显性,但它就像“房间里的大象”,总是要面对的。我们必须从存储体系上彻底解决这个问题。
同时,数据量越大,意味着链上蕴含的价值越多,就越值得去挖掘。开发者们也希望有更加便捷、直观、高效、安全的方法来处理这些宝贵的数据,比如查询链上都有谁部署了哪些合约,每个合约有多少交易调用,还有诸如多维度交叉分析、丰富的报表统计、商业智能建模、监管和反洗钱支持等。必须有对数据进行复杂的范围查询和计算的方案。
2018年我们开始分析这个问题时,认为区块链节点本身应聚焦于达成共识、保证交易的及时性和事务一致性上。在链上增加复杂数据处理能力,即使技术上可行,但并不是最优方案,因为这样会将计算和存储的开销和链上节点耦合绑定,难以扩展。
所以,能否链上链下结合来解决这些问题呢?
首先,我们大幅优化了链上状态的数据结构,链数据存储开销呈现数量级的锐减。在投入同等存储硬件的前提下,系统可持续运行的时间更长。经测算,一般的账目和存证业务,在中高强度的业务流量下,配置4T的硬盘足以保存5~10年的数据。
其次,我们引入分布式存储体系,将链上数据完整地同步到链下,依托容量易于扩展的网络存储设备、关系型数据库、数据仓库等技术,在链下建立区块链数据镜像。
这样一来,就可以使用成熟的数据维护工具进行数据的迁移、冷备等操作。区块链网络扩容时,新节点可以快速同步数据,我们也可以从数据镜像里批量提取数据构建快照,快速恢复出新节点。
既然链下数据是完整的,那么我们可以考虑剪裁节点里的历史数据,只保留需要频繁访问的新数据,当应用或链上计算验证流程需要访问到历史数据时,定向到链下去查询,这个过程对数据访问方是完全透明的。数据冷热分离、无缝存取,这样一来,容量和访问的问题就完全无忧了。
对数据进行复杂的分析、多维度联合查询时,我们可以结合关系型数据库、专业的大数据平台、搜索服务器、AI分析引擎等,对链下数据进行联合检索、建模、批处理。
值得一提的是,数据在链下处理,和是否“中心化”无关,因为所有链上的参与者都可以基于自己部署的节点,独立地导出和处理数据,并不依赖于其他人,整体上还是多中心的分布式协作形态。
通过架构解耦和融合多种技术,我们在链上链下建立起分布式存储体系,兼顾了链上交易的分布式实时性和事务性,也解决了数据容量和大数据处理的问题。
为了简化开发者的数据操作,社区发布了一系列开源项目,包括数据仓库、数据导出、数据迁移、数据分析等组件,开发者可以根据自己的需求和资源投入情况灵活组合使用。
至此,解决数据容量问题就像把大象装到冰箱里一样的简单:下载开源工具、对接区块链、运行起来,然后去喝杯咖啡,随后数据源源不断地入库,完整的数据视图呈现在眼前,犹如百川归海、海阔任鱼跃。
尊重数据,全面隐私保护
和社区交流讨论业务如何引入区块链时,隐私问题是高频问题:个人的数据能不能上链?企业A和企业B的账目来往,是否对其他企业可见?如果可见,是否会泄露商业机密?
区块链的分布式账本模型强调对等合作,数据共享,且数据可全程追溯,这也意味着如果业务将所有数据放到链上,且链上数据被无差别访问,可能会带来隐私泄露的问题。如果因为“上链”就泄露注册用户数、业务量、利润率等关键信息,是许多商业场景不能接受的。
区块链的公开透明和隐私保护并不矛盾。现实世界里本来就是有一些信息是公共公开的,另有一些则是要受到保护的。隐私数据在得到用户授权同意的前提下,才会在受控的范围内被查看和使用。
不同的场景里数据的维度、交换过程、敏感性和监管要求千差万别,我们认为不太可能有单一的策略解决所有的问题,我们需要建立的是立体化的,可灵活组合定制的技术和管理体系。
整体思路分为隔离、控制、隐私计算这几部分。
隔离是指数据是否要上链?以什么形态上链?怎么上链?隔离的策略比较直观,上链的本来就是应该多方可见的公共数据,或者只将数据的HASH上链,明文存在链下。另外,FISCO BCOS单链多群组架构为开发者提供了账本级的隔离策略,仅加入到群组的参与者可访问特定范围的账本数据。
控制指采用精细的准入机制和角色权限模型,网络和数据访问均经过准入审核,操作过程可全程追溯,结果可审计监管,保证可管可控。这就要求从网络、存储、交易处理流程、合约引擎、应用的设计均预置控制点,针对不同的场景和需求提供可定制的策略,以及高效易用的操作接口。
隐私计算则是采用多种密码学算法,一方面,帮助用户用证明代替明文,选择性披露自己的信息,避免隐私信息被越权采集;另一方面,跨机构用联合计算代替数据共享,实现数据可用不可见的效果。
WeDPR是我们面向隐私计算的一整套数据隐私保护方案的总称,WeDPR的主旨,对数据和用户数据主权的“Defence、Protect、Respect”。
WeDPR提供诸多底层算法、多语言的开发包、可视化的隐私计算平台体验,实现了诸如联邦学习、安全多方计算、同态加密、零知识证明、选择性披露等算法。功能上,可以满足隐私保护要求;性能上,对不同算法针对性地进行了大量的优化,运行时拥有毫秒级的响应能力,足以满足千万乃至亿级的数据量规模。
组合多种隐私保护策略,我们可以满足多变的业务流程,针对性地保护身份、资产、交易、行为数据、文件集等。为了便于理解,我们针对匿名投票、安全支付、隐秘竞拍、联合营销和联合风控等典型的场景,都给出了开源的应用参考实现。
近年,数据成为生产要素,相关立法陆续出台,无论是面向个人的APP还是B端后台服务,只要是与数据相关的事务,都面临着更严格、更全面的隐私保护规制,既往那种粗放的数据收集和使用流程已经不再适用。
我们必须尊重用户数据权益,合理合规地使用数据,通过创新的模式使数据流动起来,满足安全存储、可信传输、协同生产的需求,实现产权可界定、价值可存储可评估可流通,深挖数据价值,最终释放数据生产力。
拓展区块链的边界
如果把区块链业务比作用户在路上看到的风景,把区块链应用整体架构看作是一辆智能汽车,那么区块链的底层平台相当于 “底盘”。在高性能、稳定、安全的底盘之上,还需要人机交互、智能辅助、云网互联等诸多能力,这样这辆车才能与驾驶员顺畅地交互,带领乘客到更多的地方,拓展技术和应用的边界。
灵活的账本形态:FISCO BCOS已经成为被广泛采用的区块链底层平台,配套了控制台、SDK、浏览器等一系列基本工具,本身已经具备了强大的可用性。
尤其在FISCO BCOS 2.0的群组特性发布后,开发者可以像组建聊天群一样,只需一次部署,然后根据业务协作关系,在不同机构间动态创建分布式账本。
对于伙伴众多、合作关系多变的机构来说,群组特性拓展了账本的形态,精准地解决了重复建链的痛点问题,提升了建设效率,降低了人力物力成本。
分布式身份体系:目前分布式身份体系在金融、政务、公共事务等领域广受关注。采用分布式身份体系,可以建立跨机构、跨网络的身份互通,解决链上可信身份和可信凭据分布式互验的问题。把住了身份认证、身份标识的这一道大门,才能安全稳妥地在实体世界和数字化世界之间建立链接。
WeIdentity是符合W3C DID规范的分布式多中心的身份标识协议,完整地实现了分布式身份体系的协议和周边支撑组件。再结合WeEvent分布式消息协作体系,给物联网设备赋予分布式身份和承载其产生的即时消息,可支持物联网、边缘计算和区块链的融合。
广域跨链互联:WeCross跨链方案致力于异构区块链之间互联互通。我们看到,随着业务发展,大型区块链网络和应用的不同建设时期有可能引入不同的区块链底层技术,甚至从规划时就用多种区块链底层平台实现分层、分区域、分业务的链网体系,并不会绑定到某一个底层技术上。
那么,如此庞杂的技术生态中,因底层架构、数据结构、接口协议、安全机制等差异,会带来一系列的问题,比如应用不得不针对每种链去重复开发,不同链上的数据和事务难以无缝对接等。
WeCross面向不同链之间的网络寻址、密码算法、应用接口、事务模型、安全治理进行研究和抽象,提出了“书同文、车同轨”的愿景,本着“最大的共识、可运行的代码”的思路,开放适配多种底层链。
在不同的链实例之间实现合约互调、状态互认、事务保障等一系列的功能,对应用层提供统一的接口,使得应用达成WORA(Write Once,Run Anywhere),区块链应用轻松互联互通,拓展了网络边界。
与现实世界互通:智能合约引擎本身是一个“沙盒”,以屏蔽掉各种不确定性的干扰,保证链上事务的分布式一致性、事务性,比如,用不同节点上的智能合约去调用本机系统时间,由于时钟有可能根据时区、对时的不一致,那么会导致合约计算差异,无法达成一致;同理,链外的随机数、文件系统、网络数据、现实世界里的信息如股价、球赛结果,都无法直接由智能合约调用,智能合约和真实世界存在“隔阂”。
Truora预言机用于打通链上链下的信息通道,预言机服务响应链上合约的调用请求,去采集互联网乃至现实世界的信息,经过密码学校验后,可信可靠地锚定到链上,为链上合约提供统一的数据视图,这样智能合约就能得到一致且确定的链下数据。
Truora预言机拓展了智能合约的边界,可以实现许多有趣、有用的链上链下互动,如基于可验证随机数实现分布式抽奖、基于汇率实现跨境金融业务、基于天气信息实现民生应用等。
智能合约引擎进化:智能合约引擎是区块链的核心,之前的智能合约引擎在复杂的业务面前已经略显力不从心,比如解释型的引擎速度较慢,不能支持较为复杂的数据格式和较深的调用堆栈,且对资产安全没有严格约束,没有原生的跨链和隐私保护指令等,开发人员也面临开发调试不便的痛点,并希望能用自己熟悉的编程语言开发智能合约。
Liquid智能合约项目创新地提出安全(Security)、性能(Performance)、体验(Experience)及定制能力(Customization )的“SPEC”设计规范,为智能合约语言引擎增强运行高效、资产安全、原生支持隐私保护和跨链协同等特性。
同时,Liquid引入了WebAssembly 技术,具备很强的开放性、通用性,有助于持续的将各种流行的编程语言移植成智能合约语言, Liquid还提供友好的开发编译工具,可调式的IDE等,智能合约语言的表现力、开发体验越来越完善。
完善多方协作治理体系:随着应用的开展,协作关系趋于复杂,我们认为除了解决技术问题、满足各种功能需求之外,还需完善治理模型,方能长治久安。多方协作治理着眼于“人、事、规则和流程”,定义区块链相关方各种角色,梳理链上需要多方治理的事务,覆盖区块链上协作规则的讨论、制定、决策、执行的整个过程。
治理这个方向其实包罗万象,非常繁杂纷乱;治理过程也充斥着不同观念的碰撞、不同利益立场和博弈。完全的链上或者链下治理,都有可能是不完整、低效且容易分叉的,需要张弛有度的追求最大共识且务实落地。
在研究治理的历史和未来发展之后,我们结合链上链下的优势,提出立体化的治理策略,从定义治理规则的“元治理”为起点,厘清治理中的角色、权限、事务等定义,描绘治理的架构全貌,实现和开源了多方协作治理系列项目。
这一系列项目提供直观、易用的策略设计和实操工具,实现了诸如多方投票、委员会选举、账户治理、权限管理等常见功能,帮助管理员、运营者以及其他参与方高效、透明地参与到链上事务,完成从构建区块链、业务变更、到系统升级维护等全生命周期的管理。
以上方案都是在探索过程中,根据我们对领域发展的理解,以及社区的讨论和反馈,逐步实现和完善的。每个方案的发布常常能解决一些领域痛点,填补空白,切实地将技术边界拓宽一点,将产业生态发展持续地往前推进。闭门造车显然寸步难行,而基于社区共识的前瞻预判,有助于看到明晰的方向,我们还会继续与社区共建,陆续开发更多的方案,敬请期待。
用的“爽”是开发者的最爱
随着开源项目的发展,代码行数和技术文档字数都以百万计,虽然给到了开发者丰富的选择和汗牛充栋的学习资料库,但是否给开发者又带来了额外的学习和应用成本呢?团队一位架构师有句很受用的总结:“如果用户15分钟内还没有把你的开源项目用起来,他就有可能流失”。
所以,要让用户真正地用起来,仅仅将看似“硬核”的技术组件简单地罗列出来是不够的。开源项目应该是成型和高可用的“产品”,其核心能力过关,又有友好顺畅的交互体验,让开发者几乎无成本、无障碍地用起来,这样才会得到社区关注、认可,形成聚拢效应,吸引更多人一起共建。
我们为每一个开源项目的代码、文档、发行包都提供高速访问渠道,避免开发者在网络环节卡壳;在安装部署时,内置一键脚本和提供可视化部署工具,开发者进行简单配置,即可秒级搭建开发和生产环境。
实际上,开发者的环境千差万别,对开源社区给到的issue反馈,我们会和开发者一起研究解决,以持续覆盖各种环境;WeBASE中间件平台一站式的集成了运营管理台、开发者IDE、快速部署和运维工具、数据报表和审计分析工具等,有着直观的网页和移动端图形化界面,WeBASE使区块链 “看得见、摸得着、用的爽”,发布后深受社区喜爱。这一系列操作,可以保证开发者“无痛”的开启区块链之路。
更进一步,当用户有了一套链环境,开始构建区块链应用时,常常不会只用区块链底层和某一个特定的组件,而会集成多个方案,共同满足业务中的多样需求。
如一个应用需要管理分布式身份,要引入链外的汇率等信息,又需要跨链互联,然后产生的数据需要维护和分析,同时要保护隐私……这里有多种技术互相融合,有多变的协作关系需要治理。
现代软件设计推崇模块化、定制化、可扩展。每个组件本身具有很强的专业性,可独立解决特定的领域问题,又可以和底层以及其他组件一键式组装集成,构成 “套餐”式的区块链方案矩阵。
围绕着区块链底层和WeBASE中间件,各技术组件通过开放接口持续集成,整套体系采用分层松耦合的“微服务”架构,符合“云原生”规范,便于与私有化部署环境、云平台、以及开放网络的架构体系进行整合。
开发者根据自己的需求,基于开源代码、云平台、开放网络,选择一个或多个组件的区块链“套餐”,借助一键式应用开发脚手架,合约模板,应用市场快速构建应用,整体开发过程向“低代码”模式进发,大大加快了技术落地的步骤。
区块链领域的广度包罗万象,深度上直达计算机理论、分布式网络、密码学等知识内核,高度上探商业、哲学、博弈论等境界。区块链呼唤专业性和复合性兼备的人才,这样的人才简直是供不应求。我们在人才教育方面也做了一些努力,包括与主管部门、行业协会、高校、研究所开展系列课程和课题合作;撰写符合工信部人才交流中心、教育部标准的区块链教材课件;和产业机构联合设计开发区块链实训平台,帮助学员一步步的完成课程、进行实践和考证。
更多的时候,我们通过系列文章、沙龙、线上线下的交流,对区块链的思想、技术、学习方法进行多角度、多层次的科普。独木难成林,社区已经出现了诸多热心专业的“布道者”,社区认证培训合作伙伴遍布全国,大家一起共同传播有用有益的知识,桃李满天下,掌握了区块链思维和区块链技术的开发者越来越多。
在历届黑客松、高校技术大赛中,我们看到参赛团队从头搭建环境和设计开发,3天内就可以拿出完成度极高的优秀作品;各行各业的社区合作伙伴们落地应用的速度也越来越快,区块链应用本身的体验越来越好,功能越来越全面,无论是用户还是开发者的满意度越来越高。“黑科技”的应用,不一定是艰深痛苦的开发体验,也可以顺畅愉悦起来。
大道至简,携手同行
硬核的基础能力,丰富的功能组件,友好的易用性,对数据运营和版本兼容的贴心保障,是FISCO BCOS开源社区和微众银行区块链系列开源项目的运作要旨,也是获得社区支持的重要原因。从开源以来,社区已经聚拢了40000名关注者,2000多个机构,已有超过120个应用在各行各业落地运行,活跃的生态,也推动着技术的进化。
前沿技术研究有着许多路径要去探索,每个路径都有着繁杂的细节要研究,还有大量相关技术如物联网、人工智能、5G通信等可以有机融合进来。我们相信,技术和产业发展的未来,很大程度上取决于生态的开放性和成长性,埋头于国产安全可控核心技术研发的同时,我们密切关注社区的现在和将来的需求,和社区诸多开发者合作共建。
目前,社区已经成立了多个SIG(专项兴趣小组),覆盖区块链内核、周边支撑以及应用项目,开发者们每天讨论地热火朝天,一起做有趣、有挑战、利己利人的事情。携手同行,群智涌现,会少走许多弯路,少踩许多坑,奔跑的速度会更快,可用和好用的开源项目会越来越多。
开源之道,归结起来就三句话:技术硬核、友好易用、生态开放。区块链其实也可以很简单!