区块链商用案例:网间结算联盟链建设实战
导读:
“近日,中国移动与中国联通在构建跨运营商区块链公共基础设施建设上取得重大突破,双方共同建设的“结算链”正式投入商用,于 7 月 8 日成功利用结算链实现广东、辽宁、宁夏、河南、河北 5 省运营商网间业务结算出账。结算链首次运行结果显示,业务耗时平均减少 60%,预计每年节约人力运营成本可达千万余元。”
摘自:《通信世界网》(CWW)-中国移动与中国联通联合打造通信行业首个大规模区块链结算网络
01
网间结算的业务特点和难点
网间结算是对运营商用户之间的通信行为进行的费用结算,包含语音、短信、彩信业务结算。运营商通过采集各自互通网元上的话单,按照工信部规定的结算规则,进行结算批价,出具对账交换表。三方交换对账表确认无误后出具正式结算报表,进行财务结算。如果出现差异,三方需各自约定抽取详单数据比对,核查问题,问题核查清楚后,再重新输出对账交换表进行比对、确认,输出正式结算报表后进行财务结算。
用常规的系统方式实现上面的网间结算对账流程,需要将数据存储到数据库中,但数据不论存放在哪个运营商的数据库中,都存在数据被篡改的风险。因此需要一套可信任、不可篡改的技术来帮助三方完成网间结算对账业务,这恰好是区块链技术的特长。
02
区块链科普
什么是区块链?
区块链,就是一个又一个区块组成的链条。每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条。这个链条被保存在所有的服务器中,只要整个系统中有一台服务器可以工作,整条区块链就是安全的。这些服务器在区块链系统中被称为节点,它们为整个区块链系统提供存储空间和算力支持。如果要修改区块链中的信息,必须征得半数以上节点的同意并修改所有节点中的信息,而这些节点通常掌握在不同的主体手中,因此篡改区块链中的信息是一件极其困难的事。相比于传统模式,区块链所记录的信息更加真实可靠,可以帮助解决人们互不信任的问题。
区块链架构设计图
分析 1:
由此,运营商三方的网间结算业务适合使用区块链技术进行优化和提升,通过区块链技术的特点能够帮助各方更高效、安全地完成网间业务结算,在传统支撑模式的瓶颈处获得突破,形成更加良好的业务效果。
区块链技术可以分为:公有链、私有链和联盟链。
公有链,是全公开的区块链,所有人都可以作为网络中的一个节点,不需要任何人给予权限或授权。私有链,是指整个区块链上的所有写入权限仅掌握在一个组织手里,而读取权限可以根据情况对外开放或者任意进行限制。
联盟链,是一种多中心化或者部分去中心化的区块链。联盟链账本上的数据与公有链的完全公开是不同的,只有联盟成员节点才可以访问,并且链上的读写权限、参与记账规则等操作也需要由联盟成员节点共同决定。一般来说联盟链的交易性能比公有链快,但要比私有链慢。
几类区块链技术对比
分析 2:
通过对比发现,联盟链技术最适用于解决运营商之间的网间结算对账业务问题。和公有链的全公开特性、私有链的单组织管控特性不同,联盟链技术可实现运营商三方共同参与管理区块链,在保障数据隐私、安全的同时,交易成本低、交易速度快的技术特性又能降低投入成本、保障业务性能要求。
03
网间结算 + 区块链
网间结算业务流程主要由四个关键点组成,其分别为交换报表提交、交换报表对账、对账数据审核、财务报账数据生成,参与业务流程的各个环节均涉及大量的业务数据。
网间结算业务流程
智能合约是传统合约的数字化版本,在区块链网络上针对满足条件的节点自动执行。它具有内容公开透明、内容不可篡改、永久运行几大特点。依据联盟链的技术特点,可使用智能合约实现四个环节的核心业务功能,使用区块存储技术来保存每个环节的关键过程数据:
网间结算联盟链解决方案
交换报表提交:运营商三方各自将交换报表提交,智能合约将加密后的数据上传到区块链中。
交换报表对账:提交成功交换报表后,会触发智能合约根据账期(月份)、省份、业务等关键字进行对账,并将对账结果数据加密后上传到区块链中。
对账数据审核:对账有差异的数据需要人工线下确认重新对账,对账无差异的数据经过审批后,自动生成确认数据上传到区块链中。
财务报账数据生成:智能合约获取确认数据,生成最终的支付报账报表数据并上链。
04
应用实战要点
区块链研发流程和传统研发流程类似,但是又有些许不同,以下从需求分析、方案设计、功能研发、联调测试四个阶段进行展开介绍:
需求分析
区块链需求分析和传统需求分析方法类似,需要找相关干系人调研业务逻辑,约定功能点输出需求分析说明书。区块链需求分析不同之处在于,需要在业务流程中挖掘业务动作和业务数据,这些业务动作大部分会在设计阶段按智能合约函数功能进行设计实现,而业务数据则会在设计阶段的模型设计工作中,设计成符合区块数据的数据结构,以便后续存储到区块链中。
业务流程识别业务动作、业务数据方法图
如上图所示,从业务流程识别出业务动作、业务数据主要通过两个步骤完成:首先根据流程中识别出哪些是业务数据、哪些是业务动作;其次业务数据依据业务内容填充对应的业务属性,业务动作则以函数出入参和函数逻辑方式进行结构定义。
方案设计
区块链的设计方案的主要工作是定义需要上链的区块数据结构,以及智能合约的出入参和逻辑定义,将这两部分整合成能指导开发测试工作的设计文档。
上链区块数据结构设计时,先要识别数据是否适合上链,以什么形式上链,再设计其区块数据结构。如大文件(如果必须要上链可选用哈希上链方式)和大量冗余重复这种数据不建议上链,可上链的数据包括有价值的数据(如积分、票据)、有共享需求的数据(企业的征信数据)、需要协同处理的数据(如运营商网间对账结果)。上链方式依据不同数据场景进行选择,有哈希上链(将原数据计算出哈希值后进行上链,适用于大文件场景)、数据格式化上链(数据按 json 或者 xml 等格式格式化后上链,适用于业务对象场景)、加密后上链(采用对称加密方式,只有持有私钥的节点方能解密,适用于敏感数据场景)。
智能合约设计时内容包含入参、出参以及智能合约逻辑。区别于传统函数设计,智能合约逻辑不能太复杂,因为智能合约包含了有关交易的所有信息,只要满足条件后所有节点都可以执行,太复杂会影响总体性能。
功能研发
区块链的研发工作主要包含上链数据业务逻辑研发,以及智能合约研发。不同区块链平台对开发语言也有所不同,需要针对性进行技术储备,如 C++语言多用于比特币(BTC)、莱特币(LTC)平台,Go 语言多用于以太坊 ETH(用于联盟链或私有链)、超级账本 fabric(用于联盟链或私有链)平台。此外,建议区块链研发工作由单独研发小组负责,这样可以避免后续代码统一管理,明确每个智能合约接口人可在后续提升联调效率。
联调测试
联调测试主要包含智能合约的功能点验证、节点交易同步等,以下举例说明:
智能合约测试时,先验证各种变量类型、语法表达式、控制接口等合约结构,在区块链平台是否都能跑通;再验证某些安全场景下,能否冻结或者销毁合约,使之不能再被调用执行。
节点交易同步,验证客户端发送到某个节点的交易,是否能正常同步到其他节点去。在没有交易时,还需要验证节点状态是否有正常同步到其他节点。
05
结语
自 2019 年区块链上升为国家战略部署重要内容以来,区块链技术及其产业实现快速发展。作为新基建之一,区块链技术成为我国数字政府建设与数字经济发展过程中重要的基础设施。
“联盟链”基于智能合约,将结算数据、结算公参和结算规则加密上链,为结算各方提供结算信息安全共享、账单数据加密交换、自动对账、数据确权与结算等服务,使交易过程实时留痕并可追溯,确保了结算过程的透明化,提升了结算的安全性与可信度。
版权声明: 本文为 InfoQ 作者【鲸品堂】的原创文章。
原文链接:【http://xie.infoq.cn/article/c3c62d174b253106636322b5f】。文章转载请联系作者。
评论