发明内容
本发明解决的技术问题:有鉴于此,本发明提供一种现金机具金标在线评测的方法,能够解决人民银行远程在线、非现场监管辖内商业银行现金收支是否记录冠字号码、是否全额清分和现金机具是否符合金标的问题,合规监管货币鉴别与假币收缴,严禁假币流通,确保人民币的信誉度和整洁度;支持大额现金存取要同时记录冠字号码和客户信息(KYC)。
技术方案:为了解决上述技术问题,本发明采用的技术方案如下:
一种现金机具金标在线评测系统,包括现金机具、商业银行监管前置机、冠字号码FSN采集模块、冠字号码FSN评测模块和评测管理模块,所述现金机具用以识别并生成流水纸币对应的冠字号码FSN数据,所述商业银行监管前置机与现金机具连接,以接收并转发所述现金机具生成的冠字号码FSN数据,所述冠字号码FSN采集模块从商业银行监管前置机获取所述冠字号码FSN数据,并将获取的冠字号码FSN数据发送至冠字号码FSN评测模块,所述冠字号码FSN评测模块对所述冠字号码FSN数据依次进行解析和对比评测,并生成评测结果,所述冠字号码FSN评测模块将评测结果发送至商业银行监管前置机,所述商业银行监管前置机将评测结果发送至评测管理模块。
进一步的,所述冠字号码FSN数据包括冠字号码图像数据和冠字号码字符数据,所述冠字号码FSN评测模块基于光学字符识别从冠字号码图像数据中提取冠字号码字符数据,并将其提取的冠字号码字符数据与冠字号码FSN数据中的冠字号码字符数据进行对比,以对现金机具进行评测。
进一步的,所述冠字号码FSN采集模块和冠字号码FSN评测模块设置在网络终端上或定制集成为可移动的装置,以在线上或线下对接现金机具。
进一步的,所述商业银行监管前置机配置为人民银行和商业银行联盟链上的节点,以将所述现金机具输出的冠字号码FSN数据实时同步上链存证。
进一步的,所述商业银行监管前置机将现金机具的机器编号、评测的时间戳、哈希指针、冠字号码FSN评测模块生成的评测结果以及现金机具所在银行的金融机构编号生成评测区块,确保数据链条不可篡改。
进一步的,所述评测管理模块可通过区块链浏览器访问,以查询和追踪辖内银行任何一台现金机具的评测结果。
进一步的,所述评测管理模块支持自动生成辖内银行现金机具评测列表,并对接中心化系统。
进一步的,所述商业银行监管前置机对接商业银行交易系统,以使收支每张纸币的冠字号码和客户信息自动关联。
进一步的,所述现金机具包括点钞机、清分机和ATM机。
有益效果:与现有技术相比,本发明具有以下优点:
本发明创新了人民银行穿透式合规监管现金机具的模式,提高了监管工作效率,普查现金机具金标达标率,倒逼现金机具厂商提高产品质量;在线评测现金机具,实现货币鉴别和假币收缴合规监管网络全覆盖,不留盲区和死角,确保假币“零容忍”,不让不宜流通的残损券再流通,保证人民币整洁度,让民众对人民币满意度进一步提升。支持大额现金存取同步记录冠字号码和客户信息(KYC),预防和打击洗钱、贩毒等违法犯罪行为。
具体实施方式
下面结合具体实施例,进一步阐明本发明,实施例在以本发明技术方案为前提下进行实施,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围。
如图1和2所示,本发明实施例提供了一种现金机具金标在线评测系统,该系统包括现金机具1、商业银行监管前置机2、冠字号码FSN采集模块3、冠字号码FSN评测模块4和评测管理模块5。其中,现金机具1包括点钞机、清分机和ATM机。现金机具1在交易或工作过程中,对通过现金机具1的流水纸币进行识别,并生与成流水纸币对应的冠字号码FSN数据。现有的现金机具1直接将冠字号码FSN数据直接上传到所属商业银行的冠字号码系统里的,所以商业银行的冠字号码数据是信息孤岛,也没有对现金机具1的性能进行评测,这就无法验证现金机具1是否合格。为了实现对现金机具1进行评测,将商业银行监管前置机2与现金机具1连接,商业银行监管前置机2的功能相当于一个数据网关的作用,商业银行监管前置机2可以接收并转发现金机具1生成的冠字号码FSN数据,商业银行监管前置机2将冠字号码FSN数据转发给冠字号码FSN采集模块3,冠字号码FSN采集模块3进一步将冠字号码FSN数据发送给冠字号码FSN评测模块4,冠字号码FSN评测模块4对冠字号码FSN数据依次进行解析和对比评测,并生成评测结果,冠字号码FSN评测模块4将评测结果发送至商业银行监管前置机2,商业银行监管前置机2将评测结果发送至评测管理模块5。进而,相关工作人员可通过访问评测管理模块5来查询和追踪辖内银行任何一台现金机具1的评测结果。
冠字号码FSN数据包括冠字号码图像数据和冠字号码字符数据,冠字号码FSN评测模块3基于光学字符识别(OCR)从冠字号码图像数据中重新提取冠字号码字符数据,并将其提取的冠字号码字符数据与现金机具1生成的冠字号码FSN数据中的冠字号码字符数据进行对比,进而对现金机具1进行评测。具体的,冠字号码FSN评测模块是从冠字号码识别率、假币识别率以及残损币识别率等多维度评测现金机具的金标测试参数是否达标。
本发明实施例的冠字号码FSN采集模块3和冠字号码FSN评测模块4即可以设置在网络终端上,也可将冠字号码FSN采集模块3和冠字号码FSN评测模块4安装商业银行监管前置机2上,从而在线上对接多种类型的现金机具1。也可以将冠字号码FSN采集模块3和冠字号码FSN评测模块4定制集成为可移动的装置,从而可在线下对接多种类型的现金机具1。
还可将商业银行监管前置机2配置为人民银行和商业银行联盟链上的节点,进而将现金机具1输出的冠字号码FSN数据实时同步上链存证。商业银行监管前置机2可以将现金机具1的机器编号、评测的时间戳、哈希指针、冠字号码FSN评测模块生成的评测结果以及现金机具1所在银行的金融机构编号生成评测区块,确保数据链条不可篡改。
本发明实施例的评测管理模块5可通过区块链浏览器访问,以查询和追踪辖内银行任何一台现金机具1的评测结果。评测管理模块5还可支持自动生成辖内银行现金机具1的评测列表,并对接人民银行的中心化系统。
为了保持商业银行交易系统的现有功能,还可将商业银行监管前置机2还可以对接商业银行交易系统,具体的,商业银行监管前置机2可以把接收的冠字号码FSN数据转发给商业银行冠字号码系统里,商业银行交易系统可自动从商业银行冠字号码系统里调取冠字号码FSN数据,进而使收支的每张纸币的冠字号码和客户信息(身份证号码、银行卡号等)自动关联。
本发明涉及的相关技术包括:OCR、FSN数据格式、区块、时间戳和哈希指针,现分别对其进行概念以及如何在本发明中进行实施进行阐述。
OCR(Optical Character Recognition,光学字符识别):是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。
FSN数据格式:
1)U盘冠字号码文件命名
1.美元:USDGZHM.FSN
2.欧元:EURGZHM.FSN
3.英镑:GBPGZHM.FSN
4.人民币:CNYGZHM.FSN
5.日元:JPYGZHM.FSN
6.澳元:AUDGZHM.FSN
7.港元:HKDGZHM.FSN
8.新里拉:TLGZHM.FSN
9.加元:CADGZHM.FSN
10.卢布:RUBGZHM.FSN
11.韩元:KRWGZHM.FSN
可根据需要扩充。
2)U盘冠字号码文件由两部分构成:文件头和文件记录内容。
以下内容涉及到数据结构和算法的段落,为描述清晰,以C语言结构和语法进行说明。其中Uint16表示16位无符号整数,Uint32表示32位无符号整数。
1.文件头结构:
typedefstruct{
Uint16 HeadStart[4];
Uint16 HeadString[6];
Uint32 Counter;
Uint16 HeadEnd[4];
}
文件头结构说明:
HeadStart由4个16比特无符号数据组成,内容为十进制数,分别是20,10,7,26;
HeadString由6个16比特无符号数据组成,内容为
HeadString[0]=0
HeadString[1]=1
HeadString[2]=0x2E或0x2D
0x2E表示该U盘数据记录包含图像序列号,0x2D表示不包含图像序列号
HeadString[3]='S',大写字符S
HeadString[4]='N',大写字符N
HeadString[5]=‘o’,小写字符o
Counter为32比特无符号数值,记录当前冠字号码的记录数。当向冠字号码文件写入新号码记录时必须更改此数。否则,Counter与实际的记录个数不符,U盘数据将会被认为为非法文件。
HeadEnd由4个16比特无符号数据组成,内容为十进制数,数值分别是0,1,2,3。
2.文件记录结构:
文件记录结构说明:
Date和Time为机器点一把钞时,机器开始点验钞的时间:
指定年月日的日期数据的产生算法为:Date=((Year-1980)<<9)+(Month<<5)+Day
其中:Year为年份,大于等于1980;Month为月份;Day为日;
指定时分秒的时间数据产生算法为:Time=(Hour<<11)+(Minute<<5)+(Second>>1)
其中:0≤Hour<24,0≤Minute<60,0≤Second<60
tfFlag真假币标志,0为假币或可疑币,1为真币,2为残币(清分机适用),3为旧币(清分机适用);
ErrorCode表示最多3组假币特征码(特征码有12种,分别为1,2,3,4,5,6,7,8,9,10,11,12),真币时填0;如果只有一组特征码,把特征码填在ErrorCode[0],则其余两组填0;如果有两组特征码,把特征码填在ErrorCode[0]和ErrorCode[1],剩余的一组填0;
MoneyFlag币种标志,最多4位大写ASCII英文字母,不足4位的其余位填0:
USD:美元
EUR:欧元
GBP:英镑
CNY:人民币
JPY:日元
AUD:澳元
HKD:港元
TL:新里拉
CAD:加元
RUB:卢布
KRW:韩元
可根据需要扩充。
例:美元的填写方法为:MoneyFlag[0]='U',MoneyFlag[1]='S',MoneyFlag[2]='D',MoneyFlag[3]=0。
新里拉的填写方法为:MoneyFlag[0]='T',MoneyFlag[1]='L',MoneyFlag[2]=0,MoneyFlag[3]=0。
Ver年版或版本号标志;人民币用作年版标志,值填0,1,2,分别代表1990,1999,2005三个年版,可根据实际情况扩充;其余币种填9999(表示不考虑年版);
Valuta币值,最大币值为50000;
CharNUM冠字号码字符数,指明存储在数组SNo的号码个数;
SNo存放识别的冠字号码,每个数组元素存放一位号码(ASCII字符),最多12位,不足12位的其余位填0;
例:SNo[0]=‘T’,SNo[1]=‘J’,SNo[2]=‘0’,SNo[3]=1’,SNo[4]=‘2’,
SNo[5]=‘3’,SNo[6]=‘4’,SNo[7]=‘5’,SNo[8]=6’,SNo[9]=‘7’,
SNo[10]=0,SNo[11]=0;
MachineSNo机具编号,必须为24位,每个数组元素存放一位ASCII字符,不足24位的其余位填0;
具体编码规则为:BOC年/公司缩写/机型编号
年:2位
公司缩写:≤4位
机型编号:≤13位(厂家自行规定)
例如:BOC12/ABCD/EFG05000101的填写方法为:
MachineSNo[0]=‘B’
MachineSNo[1]=‘O’
MachineSNo[2]=‘C’
MachineSNo[3]=‘1’
MachineSNo[4]=‘2’
MachineSNo[5]=‘/’
MachineSNo[6]=‘A’
MachineSNo[7]=‘B’
MachineSNo[8]=‘C’
MachineSNo[9]=‘D’
MachineSNo[10]=‘/’
MachineSNo[11]=‘E’
MachineSNo[12]=‘F’
MachineSNo[13]=‘G’
MachineSNo[14]=‘0’
MachineSNo[15]=‘5’
MachineSNo[16]=‘0’
MachineSNo[17]=‘0’
MachineSNo[18]=‘0’
MachineSNo[19]=‘1’
MachineSNo[20]=‘0’
MachineSNo[21]=‘1’
MachineSNo[22]=0
MachineSNo[23]=0
机型编号及保留字1修订:
目前各机具厂商多将该字段设为“机型”和“编号”两部分信息的组合,如某A类点钞机“2108A13060001”,其中的前5位“2108A”为机型,后8位“13060001”为编号,即机型和编号为{13字符:5字符+8字符}组合规则。
各机具厂商应在向上位机传输信息中,标明设备类别,并标明机型和编号的组合规则,以便冠字号码处理系统将机型和编号信息分开存储,可利用“Unit16Reserve1//保留字1”,Uint16 Reserve1的分配定义如下:
其中
Machine_Type:0为未定义,1为清分机具,2为存取款一体机,3为点钞机,4为取款机,5为兑换机具。
Money_Type:0为未定义,1为自动柜员机配钞券,2为一般完整券,3为可疑券。
ImageSNo图像冠字号码,它是一个数据结构TImageSNo;TImageSNo定义如下:
1)单个图像号码,最多32行,每行最多32bit
typedefstruct{
Uint32 Data[32];//图像冠字号码点阵数据
}TImgSNoData;//单个图像号码结构
2)图像冠字号码结构,最多12位号码
3)详细描述单个图像号码结构TImgSNoData的图像点阵布局
TImgSNoData中每个元素Data[i]为32比特数据,分别代表图像号码中的一列点阵数据,最高位bit31代表第0行的像素,次高位bit30代表第1行的像素,依次类推,bit0最低位代表第31行的像素;即:
因此,元素Data[0]表示第0列点阵数据,
元素Data[1]表示第1列点阵数据,
元素Data[i]表示第i列点阵数据,0≤i≤31
元素Data[31]表示第31列点阵数据。
注1:不包含图像序列号的U盘文件的文件记录结构无TImageSNoImageSNo;
注2:MachineSNo机具编号,为24位
三、FSN文件导出方式
冠字号码记录设备生成的FSN文件应采用SFTP格式向外导出。
标黑处为对《关于推进假币专项治理工作的指导意见》(银发[2013]14号)《银行现金处理设备冠字号码查询管理数据格式》及《关于进一步做好假币专项治理工作的通知》(银发[2013]197号)补充的部分。
区块(Block):
区块由区块头(Block Header)与该区块所包含的交易列表组成。区块是在区块链网络上承载交易数据的数据包,是一种被标记上时间戳和之前一个区块的哈希值的数据结构,区块经过网络的共识机制验证并确认区块中的交易。
父块(Parent Block)是指区块的前一个区块,区块链通过在区块头记录区块以及父块的哈希值来在时间上排序。
区块头记录当前区块的元信息,包含当前版本号、父块的哈希值、时间戳、随机数、MerkleRoot的哈希值等数据。此外,区块体的数据记录通过MerkleTree的哈希过程生成唯一的MerkleRoot记录于区块头。
时间戳:
区块链通过时间戳保证每个区块依次顺序相连。时间戳使区块链上每一笔数据都具有时间标记。简单来说,时间戳证明了区块链上什么时候发生了什么事情,且任何人无法篡改。时间戳在区块链中扮演公证人的角色。
哈希指针:
哈希指针是一种数据结构,确切地说,是一个指向数据存储位置的指针,同时也是位置数据的哈希值。跟普通的指针相比,哈希指针不但可以告诉你存储的位置,并且还可以验证数据没有被篡改过。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。