5月26日,微众银行区块链携全栈技术体系亮相贵阳数博会,并斩获领先科技成果奖。从年开始布局区块链,微众银行区块链已推出多项开源区块链技术,其首席架构师张开翔将从区块链发展娓娓道来,详细阐述对微众银行区块链技术体系研究工作和人才培养的思考。“区块链其实也可以很简单”,下面一起学习下吧!
几年前,区块链技术堪称原始,开发者近乎在“赤手空拳”构建区块链应用:部署底层平台、写合约,期间还要面对诸多的技术细节、技术难题,踏入各种前人没有踩过的坑,调试和运营也都可谓艰难。这种种体验犹如走在羊肠小道上,泥泞且未知。
为产业趟平技术门槛,提升应用体验,降低运营成本,拓展领域边界,让开发者们便捷且放心地运用技术去创造价值,加速区块链的产业应用,一直是我们的目标。万物之始,大道至简,为了达成目标,我们坚信得首先有个“大道”,还是能敞开来走的那种。
微众银行区块链团队于年投入区块链的技术攻关,并在年把成果全面向产业开源。至今,已经正式发布了超过10个主要区块链开源项目,参与多项国际国内的标准编写,提交了大量的专利申请。
近年来,得益于我国对科技创新研究的大力支持,包括新基建、数据要素、隐私保护和碳中和等国策或国家倡议,数字化技术的提升和产业创新加速推动。
同时,来自开源社区的支持鼓励、优化建议、共创共建,技术研究的方向亦愈发清晰、迭代敏捷。诸多技术项目都是从社区收到了诉求、碰撞出灵感后发起,且由社区共同开发代码、维护周边工具、编撰技术和用户文档,共同铸就了微众银行区块链丰富的社区技术生态。
经过多年的共同努力后,我们认为,领域技术已经趋于成熟,开发者的“高速公路”已经铺就。
领域发展趋势
近年来,随着区块链应用加速落地,我们看到一些明显的趋势:
区块链应用的规模和地域范围不断在扩大,国家级区块链网络贯通各省市,技术架构多元化,业务形态更为复杂,治理模型更加多变……单层单链的区块链网络已经难以为继。
许多运行在生产环境中的区块链应用承载着海量的请求,而且由于区块链数据只增不减,日积月累,存储容量日渐逼近硬件上限,需要对数据进行拆分、迁移和备份。同时,开发者对海量数据的管理、分析、灾备方案也有着强烈的需求。
在与实体产业结合时,区块链和既有的IT系统有着不同的系统架构,且不同产业有着不同的业务逻辑、数据维度和安全合规要求。如何清晰地识别链上链下边界,让区块链和原有IT系统各司其职,又无缝结合,解决业务痛点,是每个开发者都在思考的问题。
随着区块链应用走近大众的生活,人、机构和物联网的标识如何定义?个人数据如何管理?人们在和区块链交互时如何得到良好的体验,同时又实现隐私保护?……等等这些问题的背后,折射的都是数据成为生产要素时代的痛点。
总之,网络规模越来越大,数据越来越海量,场景越来越丰富,用户对于友善的区块链应用体验的呼声必将越来越大。这些趋势印证着区块链在数字化进程中的应用深度和广度日益增加,同时,也对技术提出了更高的要求。
把技术基本面先做扎实
让我们先回到原点。从一开始,我们就坚定地选择了联盟链方向。毫无疑问,区块链作为基础设施,首先要“可信可靠”,也就是要保证合规、安全和系统的稳定。
合规,意味着在技术上首先要去除虚拟代币,采用许可加入模式,支持KYC(KnowYourCustomer:了解你的客户),并提供监管接口和审计机制,以符合相应行业的监管审计要求。
安全,是很多行业的命脉,其中包括系统安全、合约安全、数据安全、隐私安全。我们以金融级安全为准绳,在网络、存储和运行环境进行了大量的安全加固,如在年实现了高等级的存储加密;在合约安全方面,实现开发期和在线运行时的静态/动态检测;在隐私计算方面,提供场景化的、有针对性的数据隐私保护方案。
当真正要把技术用于生产环境,稳定性至关重要,如金融级的稳定是要求“5个9”,也就是99.%的可用,相当于7*24小时运行,几乎不能停机,且能在线维护升级,应对各种内外部的故障,满足苛刻的的RPO(恢复点)和RTO(恢复时间目标)要求。
合规、安全、稳定是“基本面”,是不容妥协且必须达到的要求。这也要求我们必须埋头深耕关键核心技术,包括密码学、共识算法、智能合约、分布式网络等,用过硬的技术能力给出保障。从这几年广泛的应用情况来看,我们的开源项目在基本面上经受住了考验。
同时,FISCOBCOS以及相关组件实现了全面国产化,全栈支持国产硬件、操作系统和国密算法。
在“基本面”稳固的基础上,高性能、易用性、扩展性、可持续性则是重要的“加分项”,也是开源软件是否广受欢迎的关键所在。只有得到社区的认可和支持,技术才能真正落地,形成共建和快速进化的健康可持续生态。
既要跑得快,也要行得远
经过卓有成效的优化,FISCOBCOS底层的单链TPS已经达到万级,且可以无限平行扩展,足以满足大规模应用的需求。“区块链速度慢”这个说法已经成为过去式。
但性能并不等于“跑个分”这么简单,系统不能只是跑得快,还要跑得稳,行得远,要保证这些,当务之急是要正视数据容量问题。
区块链上的数据以链式存在,只增不减,而金融等行业要求数据保留多年甚至永久保存,这必然给存储带来巨大压力。如今,有的社区开发者的应用在线上运行了几年,产生了数以亿计甚至百亿计的数据,最初配置的硬盘面临容量瓶颈。
数据膨胀问题不像功能和性能问题那么显性,但它就像“房间里的大象”,总是要面对的。我们必须从存储体系上彻底解决这个问题。
同时,数据量越大,意味着链上蕴含的价值越多,就越值得去挖掘。开发者们也希望有更加便捷、直观、高效、安全的方法来处理这些宝贵的数据,比如查询链上都有谁部署了哪些合约,每个合约有多少交易调用,还有诸如多维度交叉分析、丰富的报表统计、商业智能建模、监管和反洗钱支持等。必须有对数据进行复杂的范围查询和计算的方案。
年我们开始分析这个问题时,认为区块链节点本身应聚焦于达成共识、保证交易的及时性和事务一致性上。在链上增加复杂数据处理能力,即使技术上可行,但并不是最优方案,因为这样会将计算和存储的开销和链上节点耦合绑定,难以扩展。
所以,能否链上链下结合来解决这些问题呢?
首先,我们大幅优化了链上状态的数据结构,链数据存储开销呈现数量级的锐减。在投入同等存储硬件的前提下,系统可持续运行的时间更长。经测算,一般的账目和存证业务,在中高强度的业务流量下,配置4T的硬盘足以保存5~10年的数据。
其次,我们引入分布式存储体系,将链上数据完整地同步到链下,依托容量易于扩展的网络存储设备、关系型数据库、数据仓库等技术,在链下建立区块链数据镜像。
这样一来,就可以使用成熟的数据维护工具进行数据的迁移、冷备等操作。区块链网络扩容时,新节点可以快速同步数据,我们也可以从数据镜像里批量提取数据构建快照,快速恢复出新节点。
既然链下数据是完整的,那么我们可以考虑剪裁节点里的历史数据,只保留需要频繁访问的新数据,当应用或链上计算验证流程需要访问到历史数据时,定向到链下去查询,这个过程对数据访问方是完全透明的。数据冷热分离、无缝存取,这样一来,容量和访问的问题就完全无忧了。
对数据进行复杂的分析、多维度联合查询时,我们可以结合关系型数据库、专业的大数据平台、搜索服务器、AI分析引擎等,对链下数据进行联合检索、建模、批处理。
值得一提的是,数据在链下处理,和是否“中心化”无关,因为所有链上的参与者都可以基于自己部署的节点,独立地导出和处理数据,并不依赖于其他人,整体上还是多中心的分布式协作形态。
通过架构解耦和融合多种技术,我们在链上链下建立起分布式存储体系,兼顾了链上交易的分布式实时性和事务性,也解决了数据容量和大数据处理的问题。
为了简化开发者的数据操作,社区发布了一系列开源项目,包括数据仓库、数据导出、数据迁移、数据分析等组件,开发者可以根据自己的需求和资源投入情况灵活组合使用。
至此,解决数据容量问题就像把大象装到冰箱里一样的简单:下载开源工具、对接区块链、运行起来,然后去喝杯咖啡,随后数据源源不断地入库,完整的数据视图呈现在眼前,犹如百川归海、海阔任鱼跃。
尊重数据,全面隐私保护
和社区交流讨论业务如何引入区块链时,隐私问题是高频问题:个人的数据能不能上链?企业A和企业B的账目来往,是否对其他企业可见?如果可见,是否会泄露商业机密?
区块链的分布式账本模型强调对等合作,数据共享,且数据可全程追溯,这也意味着如果业务将所有数据放到链上,且链上数据被无差别访问,可能会带来隐私泄露的问题。如果因为“上链”就泄露注册用户数、业务量、利润率等关键信息,是许多商业场景不能接受的。
区块链的公开透明和隐私保护并不矛盾。现实世界里本来就是有一些信息是公共公开的,另有一些则是要受到保护的。隐私数据在得到用户授权同意的前提下,才会在受控的范围内被查看和使用。
不同的场景里数据的维度、交换过程、敏感性和监管要求千差万别,我们认为不太可能有单一的策略解决所有的问题,我们需要建立的是立体化的,可灵活组合定制的技术和管理体系。
整体思路分为隔离、控制、隐私计算这几部分。
隔离是指数据是否要上链?以什么形态上链?怎么上链?隔离的策略比较直观,上链的本来就是应该多方可见的公共数据,或者只将数据的HASH上链,明文存在链下。另外,FISCOBCOS单链多群组架构为开发者提供了账本级的隔离策略,仅加入到群组的参与者可访问特定范围的账本数据。
控制指采用精细的准入机制和角色权限模型,网络和数据访问均经过准入审核,操作过程可全程追溯,结果可审计监管,保证可管可控。这就要求从网络、存储、交易处理流程、合约引擎、应用的设计均预置控制点,针对不同的场景和需求提供可定制的策略,以及高效易用的操作接口。
隐私计算则是采用多种密码学算法,一方面,帮助用户用证明代替明文,选择性披露自己的信息,避免隐私信息被越权采集;另一方面,跨机构用联合计算代替数据共享,实现数据可用不可见的效果。
WeDPR是我们面向隐私计算的一整套数据隐私保护方案的总称,WeDPR的主旨,对数据和用户数据主权的“Defence、Protect、Respect”。
WeDPR提供诸多底层算法、多语言的开发包、可视化的隐私计算平台体验,实现了诸如联邦学习、安全多方计算、同态加密、零知识证明、选择性披露等算法。功能上,可以满足隐私保护要求;性能上,对不同算法针对性地进行了大量的优化,运行时拥有毫秒级的响应能力,足以满足千万乃至亿级的数据量规模。
组合多种隐私保护策略,我们可以满足多变的业务流程,针对性地保护身份、资产、交易、行为数据、文件集等。为了便于理解,我们针对匿名投票、安全支付、隐秘竞拍、联合营销和联合风控等典型的场景,都给出了开源的应用参考实现。
近年,数据成为生产要素,相关立法陆续出台,无论是面向个人的APP还是B端后台服务,只要是与数据相关的事务,都面临着更严格、更全面的隐私保护规制,既往那种粗放的数据收集和使用流程已经不再适用。
我们必须尊重用户数据权益,合理合规地使用数据,通过创新的模式使数据流动起来,满足安全存储、可信传输、协同生产的需求,实现产权可界定、价值可存储可评估可流通,深挖数据价值,最终释放数据生产力。
拓展区块链的边界
如果把区块链业务比作用户在路上看到的风景,把区块链应用整体架构看作是一辆智能汽车,那么区块链的底层平台相当于“底盘”。在高性能、稳定、安全的底盘之上,还需要人机交互、智能辅助、云网互联等诸多能力,这样这辆车才能与驾驶员顺畅地交互,带领乘客到更多的地方,拓展技术
和应用的边界。
灵活的账本形态:FISCOBCOS已经成为被广泛采用的区块链底层平台,配套了控制台、SDK、浏览器等一系列基本工具,本身已经具备了强大的可用性。
尤其在FISCOBCOS2.0的群组特性发布后,开发者可以像组建聊天群一样,只需一次部署,然后根据业务协作关系,在不同机构间动态创建分布式账本。
对于伙伴众多、合作关系多变的机构来说,群组特性拓展了账本的形态,精准地解决了重复建链的痛点问题,提升了建设效率,降低了人力物力成本。
分布式身份体系:目前分布式身份体系在金融、政务、公共事务等领域广受