区块链背景下江西省公共图书馆通借通还服务实践研究*
2022-11-11张小燕
张小燕
(江西省图书馆,江西 南昌 330038)
1 引言
近年来,随着区块链技术的兴起,各地公共图书馆为了提供更便捷的服务,不断尝试将区块链技术应用到图书馆创新服务中。“区块链”技术有效提高了图书馆信息收集的多样性、传播的广泛性和存储的安全性,可以说它给公共图书馆读者服务工作带来了创新性的变革[1]。“区块链”技术使公共图书馆真正成为多中心、安全存储和高效率的信息中心,解决了传统图书馆技术中无法解决的很多难题。目前,针对区块链技术,公共图书馆已在知识产权保护、馆藏资源管理、馆际信息共享、数字阅读推广、文献采购管理等方面展开较多研究[2]。
江西省搭建了以江西省图书馆为中心,联合江西省内市级、区(县)级图书馆的互通互联、资源共享和一证通行、通借通还平台,凡持有借书证的读者,可以在任意一个成员馆检索、借阅馆藏图书,也可以在任意一个成员馆进行还书,极大地方便了读者,实现了资源共享。但是,在实践运营中面临技术难题,如:数据有被篡改、误操作、泄漏的风险;江西省图书馆在并发请求、联合查询、实时同步中数据运算方面压力大等。因此,本文就江西省公共图书馆通借通还服务现状进行总结和分析,再结合区块链的技术特性,提出利用区块链技术优化江西省公共图书馆通借通还服务的策略。
2 区块链的产生、发展及在图书馆的应用
区块链技术进入公众的视野是从中本聪发布的比特币白皮书开始的。区块链就像互联网一样,未来将会与人们的生活息息相关。区别于以信息交互为主的互联网,区块链的本质是一个嵌合了模型的分布链式数据库,具有泛中心化、透明开源、防篡改、可追溯的技术特性[3]。在国务院印发的《“十三五”国家信息化规划》中,区块链作为革新型的技术被纳入了国家行动计划[4]。2019年10月24日,中共中央政治局就区块链技术发展现状和趋势进行了第十八次集体学习。习近平总书记在主持学习时强调,区块链技术的集成应用在新的技术革新和产业变革中起着重要作用。我们要把区块链作为核心技术自主创新的重要突破口,明确主攻方向,加大投入力度,着力攻克一批关键核心技术,加快推动区块链技术和产业创新发展[5]。
陕西省图书馆在采集数字阅读资源之初便利用区块链分布式网络自定义映射规则和关联规则,设计了数字阅读资源采集路径[6]。该做法不仅能确保图书馆采集的数字阅读资源属性具有较高的一致性,而且有效解决了原始数字阅读资源波动大、不平滑、非线性等共性问题。
中国国家图书馆依托区块链分布式网络的权限管理功能,让著作权主体自主划定数字阅读资源采集的权限边界,并全流程跟踪数字阅读资源版权变更情况。另外,还打造了基于区块链分布式网络的版权鉴定平台,可智能过滤存在版权争议与版权瑕疵的数字阅读资源[7]。
在实践层面,浙江省公共图书馆率先开展了基于区块链网架构建设,浙江省图书馆拟运用区块链技术开发浙江省公共图书馆文献通借通还平台,优化文献通借通还、读者借阅信息查询、前端服务页面、移动服务整合、物流管理、大数据收集展示等业务功能。浙江省各级公共图书馆拟利用区块链技术使异构系统通过数据接口共同实现人工服务和RFID设备完成文献通借通还业务功能。
3 江西省公共图书馆通借通还服务平台建设情况
江西省公共图书馆通借通还服务平台软件采用C/S+B/S架构和中间件技术,不限制接入用户数量,支持各种操作系统平台(Windows 2000或2003以上、Linux、AIX、Solaris、Unix 等),采用Oracle 数据库作为数据库管理平台,数据库结构数据接口完全开放,将文献共享联盟所有成员馆馆藏加入统一检索数据库,数据高速存取安全可靠。该平台拥有人性化的操作界面,完善的安全机制,功能强大,统计快速准确。该平台功能包括通借通还事务处理、流通参数设置、财经库维护、通借通还财经史、互借库维护、通借通还日志查询、通借通还财经统计、通借通还分类统计等。
读者通过江西省公共图书馆通借通还平台,可查询和借阅到江西省内成员馆的纸质图书文献,从而实现江西省内公共图书馆纸质图书文献的共享。江西省公共图书馆通借通还服务平台拥有统一的查询界面,能实现纸质图书文献的多种获取方式。若是读者身处的图书馆已有该纸质图书文献,读者可以直接从本图书馆获取相应的纸质图书文献;若是读者身处的图书馆无此纸质图书文献,读者可以通过江西省公共图书馆通借通还服务平台从江西省内其他公共图书馆进行获取。
4 江西省公共图书馆通借通还服务存在的技术层面问题
在政策和管理层面,江西省公共图书馆通借通还服务平台还存在以下问题:各地区财政支持有限、图书馆发展不均衡;各成员馆管理机制、服务标准不完善;现有的物流配送模式制约;文献满足率低等。本文仅从技术层面探讨制约平台发展的瓶颈问题。
江西省公共图书馆通借通还服务系统采用的是数据中台的模式,江西省图书馆是中心馆,是通借通还服务数据中心,定时同步各成员馆的读者数据、书目数据、流通数据。江西省各成员馆通过互联互通虚拟网(IPsec VPN)与江西省图书馆建立连接,实现通借通还的数据交互。现在的通借通还服务系统存在数据安全有风险、成员馆对中心馆的依赖性强、江西省图书馆数据中心运算压力大等问题。
4.1 通借通还服务平台数据安全存在风险
目前,江西省公共图书馆通借通还服务系统数据容易被篡改、容易被误操作和容灾能力低、信息容易被泄漏。江西省公共图书馆通借通还服务系统数据高度集中,一旦系统遭受入侵和攻击,发生了数据集、数据内容的篡改,就会导致系统性错误,从而危害江西全省公共图书馆通借通还业务的正常开展。即便存有副本,也只能恢复到备份前的流通数据,而备份时间节点后的流通数据则无法恢复。馆员在工作中可能有误操作行为,这会令业务数据出现偏差。通借通还服务系统每天都有着大量的数据交互和业务往来,在这些流通过程中并非所有的操作都是自动完成的,很多地方需要人工干预,如重置密码、污损处理等。人工干预使得误操作的发生难以避免,所谓再精密的仪器也有失灵的时候,更何况是人呢?馆员有时可能误删数据,有时可能多插入字符,更为可怕的是馆员常常意识不到自己的误操作行为,而致使错误数据被掩盖和保存。随着时间流逝误操作的排查难度也更高,对业务数据的准确性构成威胁。目前的江西省公共图书馆通借通还服务系统只支持业务数据的集中存储和备份,无法做到即时的异地远程备份。若灾害发生时,可能会导致通借通还服务的中断和失效,严重的造成大量核心数据的丢失,造成难以挽回的损害。目前的江西省公共图书馆通借通还服务系统采用的数据加密方式是统一的,各成员馆均可调用数据库表单,也就是说数据库对所有成员馆开放且共享的。然而,这一方式有可能会造成读者信息的泄漏,如果不法分子通过任意成员馆获取了该数据加密算法或读取权限,则可轻易盗取中台存储的读者数据,造成身份信息的泄露。
4.2 成员馆对中心馆的依赖性强
江西省公共图书馆通借通还服务系统的成员馆对中心馆存在存储依赖、验证依赖、功能拓展依赖等问题。由于江西省公共图书馆通借通还服务系统主要核心数据资源都存储在中心馆,成员馆对数据的增删改查权限皆受制于中心馆数据库,且必须以中心馆的数据为标准数据,不论中心馆的数据是否可信或混杂脏数据,皆无条件地认可,这即是存储依赖的局限性。当通借通还流通过程中,中心馆发生了设备损毁、宕机、断电、断网、阻塞等突发情况,被迫中断服务,那么各成员馆的通借通还服务将陷入停滞,必须等待与中心馆的连接恢复才能重新运作。即便是A 馆与B 馆读者之间的借阅操作,都必须得到中心馆的验证方能完成,A 馆是无权独自验证B 馆读者证信息的,这即是验证依赖。成员馆有时会因业务发展的需要,而对通借通还系统的功能进行拓展,如大数据分析应用、Web 接口调用等。这可能涉及数据库表字段的增减、表结构的修改、数据库视图的建立。然而,目前的江西省公共图书馆通借通还服务系统无法满足各成员馆差异化的功能需求,只能使用统一的数据库结构以保证数据读取的稳定和效率。
4.3 江西省图书馆作为数据中心运算压力大
江西省图书馆作为数据中心,存在成员馆并发请求压力大、联合查询压力大、定时同步压力大的问题。江西省公共图书馆通借通还服务系统所有成员馆有着庞大的读者数据,通借通还业务开展时产生的实时数据,通过各成员馆的验证请求汇聚到单一的数据中台端口。因此,江西省图书馆服务端承受着大量的并发压力,需要同时处理、响应多个任务。作为数据存储的中心,江西省图书馆为各成员馆读者提供联合查询的服务。随着通借通还服务的推进,越来越多的读者开始使用通借通还系统,这将使得流通表单数据量倍增。然而,现行的关系数据库单表长度是有限的,跨表查询更是会占用大量的资源,同时庞大的读者基数也对ODBC 连接池上限构成挑战。每一次文献流通操作,都要向图书馆自动化业务系统进行写入。为减轻数据中台实时响应的压力,读者数据、书目数据采用的是定时同步方式。因而新办证的读者往往不能即时享受通借通还服务,需等待办证所属馆数据同步至中心馆方能享受该服务;新入藏的文献也无法及时同步数据。若将现有系统改为实时同步模式,则会增加江西省图书馆数据中台服务器的运算压力。
5 基于区块链技术的优化策略
5.1 搭建支持权限角色划分的通借通还联盟链,以增加数据冗余及解决数据安全问题
选择搭建联盟链,而没有选择非公有链或私有链,主要有以下三点考虑:
一是因为流通数据的副本越多越安全,参与共识的节点越多区块链网络被破坏的风险越低,在这点上私有链是无法与联盟链模式相媲美的。
二是联盟链的执行效率较公有链更高,由于公有链没有准入门槛,其出块需要耗费大量的算力和时间成本,如比特币所采用的PoW 机制平均出块时间为10 分钟,而主流的联盟链架构大多采用 PBFT 机 制(如 Hyperledger Fabric、FISCO BCOS),出块效率更高。加之创建节点需要获得许可,出现恶意节点的概率更低,可以节省一部分共识的成本。
三是联盟链具有良好的拓展性。诚如阮冈纳赞所言“图书馆是一个生长的有机体”,通借通还业务也是在不断发展和改进中。笔者认为使用区块链的初衷是为了准确保存流通记录,但不能为了数据安全而禁锢了借阅系统的发展。选用联盟链可以在运行的过程中适时地调整区块链的网络和节点配置以满足业务需求,这是公有链所不具备的。
为了制定行之高效的记账机制,通借通还联盟链必须支持权限和角色的划分。在省域范围内开展通借通还,江西省图书馆是起核心作用的,体现在创建、连接、协调、维护4个方面,是业务的管理者,其他馆作为成员馆加入。一些成员馆经费充裕、人才齐备,一些成员馆却条件有限,捉荆见肘。因此,部署联盟链不能一概而论,应当量力而行地给予各成员馆不同的权限和角色选择。以Hyperledger Fabric 架构为例,省级图书馆必须扮演 CA(Certificate Authority)、Orderer、Endorser、Committer 等4 种节点角色,市级图书馆则必须搭建Endorser、Committer 两种服务,县级图书馆只需要参与记账即可,有条件可以建立Endorser 节点,通借通还联盟链Peer节点权限角色划分具体如图1所示。
图1 通借通还Fabric联盟链节点权限角色划分示意
5.2 开放对本地化验证和应用的支持,提高成员馆自主度
采用“数字证书+签名+时间戳”的本地验证方式。在中心化的通借通还系统中,A馆读者去B馆借书,需要得到中心馆服务器的验证方可进行,而联盟链通过本地化的验证方式达到去中心化的目的。在本地完成对图书流通记录的验证就需要用到“数字证书”“数字签名”“时间戳”这三件利器。
数字签名可以验证一条流通记录的创建者身份,也可以验证流通记录的完整和准确。
数字证书由CA 节点颁发,采用.X509 标准格式,用以验证流通记录的创建者所提供的公钥是否真实,以及创建者的权限角色信息。
时间戳用于记录每笔图书流通交易的时间,区分流通交易的先后顺序,防止重放攻击的发生。
有了这三件利器,读者A 去B 馆借书就不用再去中心馆服务器求证了,只需要核对读者A 提供的数字签名、数字证书,并为该笔流通记录盖上时间戳放在流通记录的内容中,这样一笔合法的流通记录就产生了。若以T代表该笔流通交易,H代表哈希函数,则其生成过程可以表述如下:
流通记录的本地验证有两个步骤:一是用数字签名验证数据的完整性,使用读者A 的公钥解密签名(加密时用的是私钥),也就是非对称加密技术,只要解密后的哈希值与流通记录全文哈希值相符则验证通过;二是验证读者A的数字证书,同样是用读者A 颁证机构的公钥解密证书的签名,若与证书全文哈希值相符则验证通过。
为了减小通借通还成员馆对中心馆的依赖,提高成员馆在通借通还联盟中的自主度,开放联盟链对本地化应用的支持十分必要。联盟链的智能合约提供SDK 或API 调用方法,成员馆开发的本地化借阅应用可以通过中间件的方式调用SDK与API,从而实现对账本的访问(如图2所示)。由于区块链的共识过程耗时较长,如果采用同步调用的方式势必会造成糟糕的用户体验。因此,建议采用异步调用的方式提交流通交易。实际上本地化App 访问的并不一定是本地节点的账本,很有可能访问的是邻近成员馆的账本数据。Fabric架构下成员馆的Peer 节点处于同一联盟链通道中,借阅客户端发起的预备案请求会在通道内广播,如联合书目查询请求就是由客户端SDK 发起调用通道内 QSCC(Query System Chaincode)实现的。
图2 本地化应用调用链上代码示意
5.3 建立以市级为单位的链上组织,为省级节点分摊算力
联盟链的链上组织是有一到多个具备许可授权的机构,为各授权机构颁发数字证书。通借通还联盟链有省、市、县三级,若所有的许可颁证都由省级节点完成,明显有违区块链去中心化的理念,也使得省级节点承担了更多的压力。因此,市级图书馆须作为本市通借通还组织的管理者,承担CA认证和MSP(Membership Service Provider)功能。这也正好契合了一些城区通借通还以及总分馆的业务需要,毕竟地区内流通更为频繁。
6 结语
本文研究了公共图书馆区块链技术的应用情况,总结分析了江西省公共图书馆通借通还服务存在的技术难点,提出了解决江西省公共图书馆通借通还服务发展技术瓶颈的策略,以期为公共图书馆通借通还服务的优化提供一些参考方案。区块链技术在图书馆的数字资源建设、智慧化服务方面也能发挥巨大作用,后期还有待对区块链技术在图书馆其他服务中的应用做深入研究。