骨髓配型管理方法及区块链系统与流程

文档序号:29632932发布日期:2022-04-13 16:25阅读:169来源:国知局
骨髓配型管理方法及区块链系统与流程

1.本发明涉及区块链技术领域,具体涉及一种骨髓配型管理方法及区块链系统。


背景技术:

2.目前,骨髓配型主要采用数据库统一管理的方式。捐赠者用户和受捐者用户在骨髓配型系统中进行注册后,捐赠者用户和受捐者用户的身份信息、配型信息都存储在数据库当中,由系统进行配型。然而,当前存在虚假用户注册、盗取或篡改用户的注册信息等问题,使得骨髓配型的安全性无法得到保障。


技术实现要素:

3.为此,本发明提供一种骨髓配型管理方法及区块链系统,以解决现有技术中骨髓配型的安全性无法得到保障的问题。
4.为了实现上述目的,第一方面,本发明提供一种骨髓配型管理方法,所述方法用于区块链系统,所述区块链系统包括多个用户节点、运营商节点,其中,所述用户节点包括捐赠节点和受捐节点;所述方法包括:
5.所述用户节点将所述用户节点对应的第一用户注册信息广播至所述区块链系统,其中,所述第一用户注册信息包括:根据所述运营商节点的公钥对所述用户节点对应的用户的身份信息和联系信息进行加密所得到的第一加密信息、所述用户节点的用户标识和所述用户节点的公钥;
6.所述运营商节点接收并保存所述第一用户注册信息,使用自身的私钥解密所述第一加密信息,得到所述联系信息;
7.所述运营商节点根据所述联系信息向所述用户节点发送携带第二加密信息的验证短信,其中,所述第二加密信息根据所述第一用户注册信息中的所述用户节点的公钥,对所述运营商节点生成的随机挑战数串进行加密生成;
8.所述用户节点接收并获取所述验证短信中的所述第二加密信息,并根据自身的私钥解密所述第二加密信息,得到所述随机挑战数串,在所述第一用户注册信息中添加所述随机挑战数串,得到第二用户注册信息,并将所述第二用户注册信息广播至所述区块链系统;
9.所述运营商节点接收所述第二用户注册信息,使用自身的私钥解密所述第一加密信息,得到所述身份信息和所述联系信息,并利用运营商用户数据库中的数据对所述身份信息和所述联系信息进行验证,若验证通过,对所述第二用户注册信息中的所述随机挑战数串进行验证,若验证通过,将保存的所述第一用户注册信息广播至所述区块链系统;
10.所述区块链系统中的各个节点接收所述第一用户注册信息,并对所述第一用户注册信息进行验证,若验证通过,则将所述第一用户注册信息记入区块链账本。
11.在一些示例中,所述利用运营商用户数据库中的数据对所述身份信息和所述联系信息进行验证包括:
12.所述运营商节点在所述运营商用户数据库查找与所述联系信息中的电话号码相匹配的电话号码;
13.所述运营商节点获取与查到的所述相匹配的电话号码相关联的用户信息,验证所述用户信息与所述身份信息是否一致,若是,则确定所述身份信息和所述联系信息验证通过。
14.在一些示例中,所述对所述第二用户注册信息中的所述随机挑战数串进行验证包括:
15.所述运营商节点根据接收到所述第二用户注册信息的时间与预设时间阈值的比较结果,确定所述第二用户注册信息是否有效;
16.若是,验证发送的随机挑战数串与接收的随机挑战数串的一致性,若一致性验证通过,则确定所述随机挑战数串验证通过。
17.在一些示例中,所述区块链系统还包括创始节点;针对所述用户节点为捐赠节点的情况,所述若验证通过,则将所述第一用户注册信息记入区块链账本之后,所述方法包括:
18.所述捐赠节点获取创始节点的公钥,并根据所述创始节点的公钥对自身的所述联系信息进行加密,得到第三加密信息;
19.所述捐赠节点将其对应的捐赠者的预设个数基因点位信息,按照预设规则进行排序;
20.所述捐赠节点通过哈希计算,将排序后的所述预设个数基因点位信息生成捐赠基因标识;
21.所述捐赠节点根据自身的用户标识、所述捐赠基因标识、所述第三加密信息生成捐赠信息,并广播至所述区块链系统;
22.所述区块链系统中的各个节点接收所述捐赠信息,并对所述捐赠信息进行验证,若验证通过,则将所述捐赠信息记入区块链账本。
23.在一些示例中,所述区块链系统还包括时间戳节点;针对所述用户节点为受捐节点的情况,所述若验证通过,则将所述第一用户注册信息记入区块链账本之后,所述方法包括:
24.所述受捐节点将其对应的受捐者的预设个数基因点位信息,按照预设规则进行排序;
25.所述受捐节点通过哈希计算,将排序后的所述受捐者的预设个数基因点位信息生成受捐基因标识;
26.所述受捐节点同步所述区块链系统的、完整的区块链账本,并在所述区块链账本中查找是否存在与自身的所述受捐基因标识相匹配的所述捐赠信息;
27.若是,所述受捐节点向所述创始节点发送包含相匹配的所述捐赠信息的查询请求;
28.所述创始节点获取接收到的所述查询请求中包含的所述捐赠信息中的所述第三加密信息,并根据自身的私钥解密所述第三加密信息,得到所述捐赠节点的联系信息;
29.所述创始节点通过所述捐赠节点的所述联系信息,向所述捐赠节点发送匹配成功通知;
30.其中,针对所述受捐节点首次发送所述查询请求的情况,所述受捐节点向所述创始节点发送包含相匹配的所述捐赠信息的查询请求包括:
31.所述受捐节点向所述时间戳节点发送所述查询请求;
32.所述时间戳节点接收所述查询请求,并将接收到所述查询请求的第一时间加入所述捐赠信息,并将加入所述第一时间后的捐赠信息发送给所述创始节点。
33.在一些示例中,所述区块链系统还包括创始节点,所述创始节点存储有所述运营商节点的用户标识和公钥;所述用户节点将所述用户节点对应的第一用户注册信息广播至所述区块链系统之前,所述方法包括:
34.所述用户节点获取存储在所述创始节点中的所述运营商节点的用户标识和公钥,并根据所述运营商节点的公钥对所述用户节点对应的用户的身份信息和联系信息进行加密,得到所述第一加密信息;
35.所述用户节点通过哈希计算,根据所述身份信息生成所述用户标识;
36.所述用户节点根据自身的公钥、所述用户标识、所述第一加密信息生成所述用户节点的第一用户注册信息。
37.在一些示例中,所述区块链系统中的各个节点接收所述第一用户注册信息,并对所述第一用户注册信息进行验证包括:
38.所述区块链系统中的各个节点接收所述第一用户注册信息,并获取其中的所述用户标识;
39.所述区块链系统中的各个节点在区块链账本中查询是否有与当前接收的所述用户标识相匹配的历史用户标识;
40.若否,则确定验证通过。
41.第二方面,本发明提供一种区块链系统,所述区块链系统应用于骨髓配型管理,所述区块链系统包括多个用户节点、运营商节点,其中,所述用户节点包括捐赠节点和受捐节点;其中,
42.所述用户节点用于将所述用户节点对应的第一用户注册信息广播至所述区块链系统,其中,所述第一用户注册信息包括:根据所述运营商节点的公钥对所述用户节点对应的用户的身份信息和联系信息进行加密所得到的第一加密信息、所述用户节点的用户标识和所述用户节点的公钥;
43.所述运营商节点用于接收并保存所述第一用户注册信息,使用自身的私钥解密所述第一加密信息,得到所述联系信息;
44.所述运营商节点还用于根据所述联系信息向所述用户节点发送携带第二加密信息的验证短信,其中,所述第二加密信息根据所述第一用户注册信息中的所述用户节点的公钥,对所述运营商节点生成的随机挑战数串进行加密生成;
45.所述用户节点还用于接收并获取所述验证短信中的所述第二加密信息,并根据自身的私钥解密所述第二加密信息,得到所述随机挑战数串,在所述第一用户注册信息中添加所述随机挑战数串,得到第二用户注册信息,并将所述第二用户注册信息广播至所述区块链系统;
46.所述运营商节点还用于接收所述第二用户注册信息,使用自身的私钥解密所述第一加密信息,得到所述身份信息和所述联系信息,并利用运营商用户数据库中的数据对所
述身份信息和所述联系信息进行验证,若验证通过,对所述第二用户注册信息中的所述随机挑战数串进行验证,若验证通过,将保存的所述第一用户注册信息广播至所述区块链系统;
47.所述区块链系统中的各个节点用于接收所述第一用户注册信息,并对所述第一用户注册信息进行验证,若验证通过,则将所述第一用户注册信息记入区块链账本。
48.第三方面,本发明提供一种电子设备,包括:
49.至少一个处理器;以及
50.与所述至少一个处理器通信连接的存储器;其中,
51.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的方法。
52.第四方面,本发明提供一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行上述的方法。
53.本发明至少具有如下优点:
54.本发明实施例所提供的骨髓配型管理方法及区块链系统,通过使用运营商的公钥加密用户的身份信息和联系信息得到第一加密信息,再将包含第一加密信息的第一用户注册信息发给运营商节点,使运营商节点用自身的私钥解密第一加密信息获得用户的身份信息和联系信息,根据用户节点的公钥加密随机挑战数串生成第二加密信息,再根据获取到的联系信息将第二加密信息通过验证短信的方式发送给用户节点,用户节点接收验证短信后根据自身私钥解密第二加密信息获得随机挑战数串,再将随机挑战数串加入第一用户注册信息得到第二用户注册信息并发送给运营商节点,运营商节点通过自身私钥解密第一用户注册信息得到身份信息和联系信息,对其进行验证,以确定用户节点非虚假用户,再对得到的随机挑战数串进行验证,以确定用户节点可以真实接收到验证短信,并且发给用户节点的数据没有被篡改,并且,用户节点和运营商之间的传输的每一步都需要采用二者中的一者的公钥加密,从而能够进一步保证数据没有被篡改,进而保证骨髓配型的安全性。
附图说明
55.附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。
56.图1为本发明实施例一提供的骨髓配型管理方法的流程示意图;
57.图2为本发明实施例二提供的骨髓配型管理方法的流程示意图;
58.图3为本发明实施例二提供的骨髓配型管理方法的部分步骤的流程示意图;
59.图4为本发明提供的区块链系统的系统结构图;
60.图5为本发明提供的电子设备的结构示意图。
具体实施方式
61.为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
62.可以理解的是,此处描述的具体实施例和附图仅仅用于解释本发明,而非对本发明的限定。
63.可以理解的是,在不冲突的情况下,本发明中的各实施例及实施例中的各特征可相互组合。
64.可以理解的是,为便于描述,本发明的附图中仅示出了与本发明相关的部分,而与本发明无关的部分未在附图中示出。
65.可以理解的是,本发明的实施例中所涉及的每个单元、模块可仅对应一个实体结构,也可由多个实体结构组成,或者,多个单元、模块也可集成为一个实体结构。
66.可以理解的是,在不冲突的情况下,本发明的流程图和框图中所标注的功能、步骤可按照不同于附图中所标注的顺序发生。
67.可以理解的是,本发明的流程图和框图中,示出了按照本发明各实施例的系统、装置、设备、方法的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可代表一个单元、模块、程序段、代码,其包含用于实现规定的功能的可执行指令。而且,框图和流程图中的每个方框或方框的组合,可用实现规定的功能的基于硬件的系统实现,也可用硬件与计算机指令的组合来实现。
68.可以理解的是,本发明实施例中所涉及的单元、模块可通过软件的方式实现,也可通过硬件的方式来实现,例如单元、模块可位于处理器中。
69.实施例一、
70.参见图1,图1示出实施例一提供的骨髓配型管理方法的流程图。
71.本实施例提供一种骨髓配型管理方法,该方法用于区块链系统,区块链系统包括多个用户节点、运营商节点、创始节点、时间戳节点,其中,用户节点包括捐赠节点和受捐节点。其中,用户节点即用户对应的区块链节点,用户可以通过终端(如手机)接入区块链系统,成为用户节点;运营商节点为给用户提供网络服务的供应商对应的区块链节点,运营商节点的运营商用户数据库中保存有各个用户的联系信息;创始节点为区块链系统的第一个区块,创始节点中记录有创始节点的公钥和标识,以及运营商节点的公钥和标识;时间戳节点为用于为信息打上时间戳的节点,其具体可以是一个服务器,可以根据接收信息的时间为信息打上时间戳。其中,用户节点的用户包括受捐者和捐赠者,受捐者对应的用户节点为受捐节点,捐赠者对应的用户节点为捐赠节点。该方法包括以下步骤:
72.s110、用户节点将用户节点对应的第一用户注册信息广播至区块链系统,其中,第一用户注册信息包括:根据运营商节点的公钥对用户节点对应的用户的身份信息和联系信息进行加密所得到的第一加密信息、用户节点的用户标识和用户节点的公钥。
73.若要进行骨髓配型,每个用户(捐赠者或受捐者)都需要在区块链系统上进行注册,也即用户通过终端接入区块链系统,称为区块链系统的一个用户节点,用户节点将用户节点对应的第一用户注册信息广播至区块链系统,区块链系统中的其他节点接收到第一用户注册信息后,先不将第一注册信息记录到新区块中,待运营商节点对第一用户注册信息进行真实性验证且验证通过后,各个节点再将第一用户注册信息记录到新区块,进而记录到区块链账本中。其中,第一用户注册信息包括用户节点对应的用户的身份信息和联系信息、用户节点的用户标识和用户节点的公钥,进一步地,为了保证用户的身份信息和联系信息的隐私安全性,用户节点可以对身份信息和联系信息进行加密,生成第一加密信息,相应地,第一用户注册信息包括第一加密信息、用户节点的用户标识和用户节点的公钥。进一步地,用户在生成第一加密信息之前,需要获取存储在创始节点中的运营商节点的用户标识
和公钥,具体采用以下方式获取:
74.子步骤一、用户节点向创始节点发送第一获取请求。
75.子步骤二、创始节点接收到第一获取请求后,向用户节点发送存储在创始节点中的运营商节点的公钥和用户标识。
76.之后,用户节点接收运营商节点的公钥和用户标识,并使用运营商节点的公钥对用户的身份信息和联系信息进行加密,得到的第一加密信息。
77.需要说明的是,用户节点接入区块链系统后,只需要同步区块链系统的区块链账本的创始区块(即第一个区块),无需同步完整的区块链账本,从而能够节省用户节点的存储空间。
78.s120、运营商节点接收并保存第一用户注册信息,使用自身的私钥解密第一加密信息,得到联系信息。
79.运营商节点接收并保存第一用户注册信息,获取第一用户注册信息中的第一加密信息,由于第一加密信息采用运营商节点的公钥进行加密,因此运营商节点可以用运营商节点的私钥对第一加密信息进行解密,得到第一加密信息中的用户的联系信息和身份信息。采用运营商节点的公钥对用户的联系信息和身份信息进行加密,能够保证联系信息和身份信息的隐私安全,防止信息被篡改,并且运营商节点本身存储有自身的私钥,无需获取其他信息即可使用自身的私钥进行解密,从而减少了数据传输量。
80.s130、运营商节点根据联系信息向用户节点发送携带第二加密信息的验证短信,其中,第二加密信息根据第一用户注册信息中的用户节点的公钥,对运营商节点生成的随机挑战数串进行加密生成。
81.其中,用户节点的联系信息至少包括用户的电话号码,还可以包括用户的联系地址。运营商节点解密第一加密信息获得用户的联系信息后,获取联系信息中的电话号码,再根据联系信息中的电话号码,向用户节点发送携带第二加密信息的验证短信。其中,第二加密信息采用以下方式生成:
82.子步骤一、运营商节点采用预设算法生成随机挑战数串。
83.其中,预设算法可以为任何随机数生成算法,例如:平方取中法、梅森旋转算法线性同余算法等。
84.子步骤二、运营商节点获取自身保存的第一用户注册信息中的用户节点的公钥,使用用户节点的公钥对随机挑战数串加密,得到第二加密信息。
85.需要说明的是,采用验证短信的方式,由于验证短信通过运营商的移动交换网的信令通道进行发送,安全性较高,相较于使用互联网的方式,具有更高的安全性,以避免数据被篡改或拦截。
86.s140、用户节点接收并获取验证短信中的第二加密信息,并根据自身的私钥解密第二加密信息,得到随机挑战数串,在第一用户注册信息中添加随机挑战数串,得到第二用户注册信息,并将第二用户注册信息广播至区块链系统。
87.用户节点通过验证短信接收到第二加密信息,由于第二加密信息采用用户节点的公钥进行加密,因此用户节点可以用用户节点的私钥对第二加密信息进行解密,得到第二加密信息中的随机挑战数串。采用用户节点的公钥对随机挑战数串进行加密,能够保证随机挑战数串的传输安全,防止随机挑战数串被篡改,并且用户节点本身存储有自身的私钥,
无需获取其他信息即可使用自身的私钥进行解密,从而减少了数据传输量。
88.用户节点得到随机挑战数串,再将随机挑战数串添加进第一用户注册信息,得到第二用户注册信息,也即第二用户注册信息包括:第一加密信息、用户节点的用户标识、用户节点的公钥和随机挑战数串,用户节点将第二用户注册信息广播至区块链系统。区块链系统中的其他节点接收到第二用户注册信息后,先不进行记录,待运营商节点对第二用户注册信息进行真实性验证。
89.s150、运营商节点接收第二用户注册信息,使用自身的私钥解密第一加密信息,得到身份信息和联系信息,并利用运营商用户数据库中的数据对身份信息和联系信息进行验证,若验证通过,对第二用户注册信息中的随机挑战数串进行验证,若验证通过,将保存的第一用户注册信息广播至区块链系统。
90.运营商节点接收第二用户注册信息,第二用户注册信息中包括第一加密信息,由于第一加密信息采用运营商节点的公钥进行加密,因此运营商节点可以用运营商节点的私钥对第一加密信息进行解密,得到第一加密信息中的用户的联系信息和身份信息,利用运营商用户数据库中的数据对身份信息和联系信息进行验证,以确定联系信息和/或身份信息的真实性,进一步确定用户节点的真实性,以避免虚假注册;并且,对第二用户注册信息中的随机挑战数串进行验证,以保证发给用户节点的随机挑战数串能够被用户节点真实接收到,且没有被篡改,进一步确定用户的真实性和传输的安全性。若经过双重验证,确定用户节点真实可靠,则运营商节点将在s120保存的第一用户注册信息广播至区块链系统,以使区块链系统中的各个节点保存。
91.在一些示例中,在本次广播中,为了标识本次广播的第一用户注册信息为通过运营商节点验证后的第一用户注册信息,运营商节点可以在第一用户注册信息中加入验证标识。
92.s160、区块链系统中的各个节点接收第一用户注册信息,并对第一用户注册信息进行验证,若验证通过,则将第一用户注册信息记入区块链账本。
93.区块链系统中的各个节点(包括其他用户节点、运营商节点、创始节点)接收第一用户注册信息,对第一用户注册信息进行验证,并获取第一用户注册信息中用户的用户标识,查找自身存储的区块链账本中是否有与当前接收到用户标识相同的历史用户标识,若没有与当前接收到用户标识相同的历史用户标识,则确定验证通过,将第一用户注册信息记入区块链账本。每个人的配型信息是固定的,因此只允许注册一次,对于已存在的用户注册(历史用户标识),不允许进行第二次注册,通过验证区块链账本中是否有与当前接收到用户标识相同的历史用户标识,能够保证一个用户节点只能注册一次,从而能够防止大量的重复注册或恶意的注册攻击。
94.在一些示例中,在运营商节点在第一用户注册信息中加入验证标识的情况下,s160中区块链系统中的各个节点接收第一用户注册信息包括:区块链系统中的各个节点接收第一用户注册信息,并验证其中是否包括验证标识,若包括验证标识,再对第一用户注册信息进行验证,若不包括验证标识,则不进行保存。
95.需要说明的是,无论用户节点为受捐者对应的受捐节点,或捐赠者对应的捐赠节点,均可采用上述方式注册到区块链系统。
96.本实施例所提供的骨髓配型管理,通过使用运营商的公钥加密用户的身份信息和
联系信息得到第一加密信息,再将包含第一加密信息的第一用户注册信息发给运营商节点,使运营商节点用自身的私钥解密第一加密信息获得用户的身份信息和联系信息,根据用户节点的公钥加密随机挑战数串生成第二加密信息,再根据获取到的联系信息将第二加密信息通过验证短信的方式发送给用户节点,用户节点接收验证短信后根据自身私钥解密第二加密信息获得随机挑战数串,再将随机挑战数串加入第一用户注册信息得到第二用户注册信息并发送给运营商节点,运营商节点通过自身私钥解密第一用户注册信息得到身份信息和联系信息,对其进行验证,以确定用户节点非虚假用户,再对得到的随机挑战数串进行验证,以确定用户节点可以真实接收到验证短信,并且发给用户节点的数据没有被篡改,并且,用户节点和运营商之间的传输的每一步都需要采用二者中的一者的公钥加密,从而能够进一步保证数据没有被篡改,进而保证骨髓配型的安全性。
97.实施例二、
98.参见图2,图2示出实施例二提供的骨髓配型管理方法的流程图。
99.本实施例提供一种骨髓配型管理方法,该方法应用于区块链系统,区块链系统包括多个用户节点、运营商节点、创始节点、时间戳节点,其中,用户节点包括捐赠节点和受捐节点。其中,创始节点为区块链系统的第一个区块,创始节点中记录有创始节点的公钥和标识,以及运营商节点的公钥和标识。该方法包括以下步骤:
100.s210、用户节点获取存储在创始节点中的运营商节点的用户标识和公钥,并根据运营商节点的公钥对用户节点对应的用户的身份信息和联系信息进行加密,得到第一加密信息。
101.其中,用户节点获取存储在创始节点中的运营商节点的用户标识和公钥包括:
102.子步骤一、用户节点向创始节点发送第一获取请求。
103.子步骤二、创始节点接收到第一获取请求后,向用户节点发送存储在创始节点中的运营商节点的公钥和用户标识。
104.其中,身份信息包括用户的身份证号、姓名、性别中的至少一者;联系信息至少包括用户的电话号码,还可以包括用户的联系地址,对身份信息和联系信息进行加密,能够保证身份信息和联系信息的隐私安全。
105.s220、用户节点通过哈希计算,根据身份信息生成用户标识。
106.具体地,用户节点通过预设的哈希算法,使用身份信息中的身份证号进行哈希计算以生成哈希值,并将哈希值作为该用户节点的用户标识,由于身份证号具有唯一性,所以采用这种方式生成的用户标识也具有唯一性。
107.s230、用户节点根据自身的公钥、用户标识、第一加密信息生成用户节点的第一用户注册信息。
108.s240、用户节点将用户节点对应的第一用户注册信息广播至区块链系统。
109.其中,s240具体包括:用户节点使用自身的私钥对第一用户注册信息进行签名,再将签名后的第一用户注册信息广播至区块链系统。区块链系统中的其他节点接收到第一用户注册信息后,先不将第一注册信息记录到新区块中,待运营商节点对第一用户注册信息进行真实性验证且验证通过后,各个节点再将第一用户注册信息记录到新区块,进而记录到区块链账本中。
110.s250、运营商节点接收并保存第一用户注册信息,使用自身的私钥解密第一加密
信息,得到联系信息。
111.具体地,s250中运营商节点接收并保存第一用户注册信息具体包括:运营商节点接收第一用户注册信息,获取其中的用户节点的公钥,并使用用户节点的公钥对第一用户注册信息的签名进行验证,若验证通过(即公钥和私钥匹配成功),则保存第一用户注册信息。
112.进一步地,运营商节点获取第一用户注册信息中的第一加密信息,由于第一加密信息采用运营商节点的公钥进行加密,因此运营商节点可以用运营商节点的私钥对第一加密信息进行解密,得到第一加密信息中的用户的联系信息和身份信息。采用运营商节点的公钥对用户的联系信息和身份信息进行加密,能够保证联系信息和身份信息的隐私安全,防止信息被篡改,并且运营商节点本身存储有自身的私钥,无需获取其他信息即可使用自身的私钥进行解密,从而减少了数据传输量。
113.s260、运营商节点根据联系信息向用户节点发送携带第二加密信息的验证短信,其中,第二加密信息根据第一用户注册信息中的用户节点的公钥,对运营商节点生成的随机挑战数串进行加密生成。
114.具体地,运营商节点解密第一加密信息获得用户的联系信息后,获取联系信息中的电话号码,再根据联系信息中的电话号码,向用户节点发送携带第二加密信息的验证短信。其中,第二加密信息采用以下方式生成:
115.子步骤一、运营商节点采用预设算法生成随机挑战数串。
116.其中,预设算法可以为任何随机数生成算法,例如:平方取中法、梅森旋转算法线性同余算法等。
117.子步骤二、运营商节点获取自身保存的第一用户注册信息中的用户节点的公钥,使用用户节点的公钥对随机挑战数串加密,得到第二加密信息。
118.本步骤中采用验证短信的方式,由于验证短信通过运营商的移动交换网的信令通道进行发送,安全性较高,相较于使用互联网的方式,具有更高的安全性,以避免数据被篡改或拦截。
119.s270、用户节点接收并获取验证短信中的第二加密信息,并根据自身的私钥解密第二加密信息,得到随机挑战数串,在第一用户注册信息中添加随机挑战数串,得到第二用户注册信息,并将第二用户注册信息广播至区块链系统。
120.用户节点通过验证短信接收到第二加密信息,由于第二加密信息采用用户节点的公钥进行加密,因此用户节点可以用用户节点的私钥对第二加密信息进行解密,得到第二加密信息中的随机挑战数串。采用用户节点的公钥对随机挑战数串进行加密,能够保证随机挑战数串的传输安全,防止随机挑战数串被篡改,并且用户节点本身存储有自身的私钥,无需获取其他信息即可使用自身的私钥进行解密,从而减少了数据传输量。
121.用户节点得到随机挑战数串,再将随机挑战数串添加进第一用户注册信息,得到第二用户注册信息,也即第二用户注册信息包括:第一加密信息、用户节点的用户标识、用户节点的公钥和随机挑战数串,用户节点将第二用户注册信息广播至区块链系统。
122.进一步地,s270中用户节点将第二用户注册信息广播至区块链系统包括:用户节点使用自身的私钥对第二用户注册信息进行签名,再将签名后的第二用户注册信息广播至区块链系统。区块链系统中的其他节点接收到第二用户注册信息后,先不进行记录,待运营
商节点对第二用户注册信息进行真实性验证。
123.s280、运营商节点接收第二用户注册信息,使用自身的私钥解密第一加密信息,得到身份信息和联系信息。
124.具体地,s280中运营商节点接收第二用户注册信息具体包括:运营商节点接收第二用户注册信息,获取其中的用户节点的公钥,并使用用户节点的公钥对第二用户注册信息的签名进行验证,若公钥和私钥匹配成功,则确定验证通过。
125.进一步地,运营商节点获取第二用户注册信息中的第一加密信息,由于第一加密信息采用运营商节点的公钥进行加密,因此运营商节点可以用运营商节点的私钥对第一加密信息进行解密,得到第一加密信息中的用户的联系信息和身份信息。
126.s281、运营商节点在运营商用户数据库查找与联系信息中的电话号码相匹配的电话号码。
127.具体地,运营商用户数据库用于存储注册在运营商网络中的用户,接收到用户节点的联系信息后,获取联系信息中的电话号码,再在运营商用户数据查找与联系信息中的电话号码相同的、存储在运营商用户数据库中的电话号码。
128.s282、运营商节点获取与查到的相匹配的电话号码相关联的用户信息,验证用户信息与身份信息是否一致,若是,则确定身份信息和联系信息验证通过。
129.具体地,查找到与联系信息中的电话号码相同的、存储在运营商用户数据库中的电话号码,获取与该电话号码相关联的用户信息,换言之,获取该电话号码对应的用户的用户信息,并确定该用户信息与用户节点的身份信息是否一致,具体地,可以比对该用户信息中的身份证号与用户节点的身份信息中的身份证号是否一致,进一步地,还可以比对该用户信息中的联系地址与用户节点的身份信息中的联系地址是否一致,以确定身份信息和/或联系信息的真实性,进一步确定用户节点的真实性,以避免虚假注册,若一致,则确定身份信息和联系信息验证通过。
130.s283、运营商节点根据接收到第二用户注册信息的时间与预设时间阈值的比较结果,确定第二用户注册信息是否有效。
131.具体地,运营商节点中设置有预设时间阈值,该时间阈值表示运营商节点在s260中发送携带随机挑战数串的验证短信,到s280中接收携带随机挑战数串的第二用户注册信息的时间间隔,为了保证接收到的第二用户注册信息的安全性和可靠性,需要限制收发的间隔时间,因此,运营商节点在s280中接收第二注册信息后,根据s260中发送验证短信的时间,得出收发时间间隔,再比较收发时间间隔与预设时间阈值,若收发时间间隔小于或等于预设时间阈值,则确定第二用户注册信息有效。
132.s284、若是,验证发送的随机挑战数串与接收的随机挑战数串的一致性,若一致性验证通过,则确定随机挑战数串验证通过。
133.具体地,运营商节点对第二用户注册信息中的随机挑战数串进行验证,具体地,可以比较s360中发送端随机挑战数串,与s280中接收的随机挑战数串是否一直,若一致,则确定随机挑战数串验证通过,以保证发给用户节点的随机挑战数串能够被用户节点真实接收到,且没有被篡改,进一步确定用户的真实性和传输的安全性。若经过三重验证,确定用户节点真实可靠,则运营商节点将在s120保存的第一用户注册信息广播至区块链系统,以使区块链系统中的各个节点保存第一用户注册信息。
134.s285、将保存的第一用户注册信息广播至区块链系统。
135.在一些示例中,为了进一步保证第一用户注册信息的可靠性,在s270用户节点对第一用户注册信息进行一次签名的情况下,s285包括:运营商节点使用运营商节点的私钥对第一用户注册信息进行二次签名,再将二次签名后的第一用户注册信息广播至区块链系统。
136.在一些示例中,在本次广播中,为了标识本次广播的第一用户注册信息为通过运营商节点验证后的第一用户注册信息,运营商节点可以在第一用户注册信息中加入验证标识。
137.其中,s280-s285为实施例一中s150的一种实现方式;s281和s282为s150中利用运营商用户数据库中的数据对身份信息和联系信息进行验证的具体步骤;s283和s284为s150中对第二用户注册信息中的随机挑战数串进行验证的步骤,s150还有其他实现方式,在此不做限定。
138.s290、区块链系统中的各个节点接收第一用户注册信息,并获取其中的用户标识。
139.具体地,区块链系统中的各个节点接收第一用户注册信息,获取第一用户注册信息中用户节点的用户标识。
140.在一些示例中,在s270用户节点对第一用户注册信息进行一次签名,且s285运营商节点对第一用户注册信息进行二次签名的情况下,s290中区块链系统中的各个节点接收第一用户注册信息包括:
141.子步骤一、区块链系统中的各个节点由创始节点中获取运营商节点的公钥,使用该公钥对第一用户注册信息进行一次验证(对应运营商节点的私钥签名)。
142.子步骤二、若验证通过,从第一用户注册信息中获取用户节点的公钥,使用该公钥对第一用户注册信息进行二次验证(对应用户节点的私钥签名),若验证通过,则确定第一用户注册信息的签名验证通过,执行获取其中的用户标识。
143.s291、区块链系统中的各个节点在区块链账本中查询是否有与当前接收的用户标识相匹配的历史用户标识。
144.若没有与当前接收到用户相匹配的用户标识,则确定第一用户注册信息验证通过。区块链系统中的各个节点查找自身存储的区块链账本中是否有与当前接收到用户标识相同的历史用户标识,若没有与当前接收到用户标识相同的历史用户标识,则确定验证通过,将第一用户注册信息记入区块链账本。每个人的配型信息是固定的,因此只允许注册一次,对于已存在的用户注册(历史用户标识),不允许进行第二次注册,通过验证区块链账本中是否有与当前接收到用户标识相同的历史用户标识,能够保证一个用户节点只能注册一次,从而能够防止大量的重复注册或恶意的注册攻击。
145.s292、区块链系统中的各个节点将第一用户注册信息记入区块链账本。
146.区块链系统中的各个节点将第一用户注册信息记入区块链账本,具体地,包括把该用户节点的用户标识、用户标识和公钥的对应关系写入新区块,进而写入区块链账本中,该用户标识成为历史用户标识。
147.其中,s290-s292为实施例一中s160的一种实现方式,s290和s291为s160中对第一用户注册信息进行验证的具体步骤,s160还有其他实现方式,在此不做限定。
148.需要说明的是,无论用户节点为受捐者对应的受捐节点,或捐赠者对应的捐赠节
点,均可采用上述方式注册到区块链系统。上述步骤针对用户节点的注册过程,上述步骤的各个信息均采用保密方式存储,不对外展示,以保护用户的隐私性。而对于受捐者对应的受捐节点和捐赠者对于的捐赠节点的配型信息,采用下列步骤进行录入:
149.参见图3,图3中s310-s314示出在用户节点为捐赠节点的情况下,本方法在s292之后的流程图。针对用户节点为捐赠节点的情况,s292之后,该方法还包括:
150.s310、捐赠节点获取创始节点的公钥,并根据创始节点的公钥对自身的联系信息进行加密,得到第三加密信息。
151.其中,捐赠节点获取创始节点的公钥包括:
152.子步骤一、用户节点向创始节点发送第二获取请求。
153.子步骤二、创始节点接收到第二获取请求后,向用户节点发送创始节点的公钥。
154.捐赠节点获取到创始节点的公钥后,根据创始节点的公钥对自身的联系信息进行加密,得到第三加密信息,此处仅加密联系信息而不加密身份信息,以在配型成功后对捐赠者的身份信息保密。
155.s311、捐赠节点将其对应的捐赠者的预设个数基因点位信息,按照预设规则进行排序。
156.其中,捐赠者的配型信息不仅与基因点位信息有关,还与其排序相关,因此,获取到捐赠者的预设个数基因点位信息后,先按照预设规则将基因点位信息排序,其中,预设个数可以根据需要设置,例如为10个。
157.s312、捐赠节点通过哈希计算,将排序后的预设个数基因点位信息生成捐赠基因标识。
158.其中,捐赠节点按照预设的哈希算法,对排序后的预设个数基因点位信息进行哈希计算生成哈希值,并将该哈希值作为捐赠节点的捐赠基因标识。此处通过哈希算法将预设个数基因点位信息,而非直接存储,能够有效保护捐赠者的基因信息。
159.s313、捐赠节点根据自身的用户标识、捐赠基因标识、第三加密信息生成捐赠信息,并广播至区块链系统。
160.在一些示例中,s313包括:捐赠节点根据捐赠节点的用户标识、捐赠基因标识、第三加密信息生成捐赠信息,并用捐赠节点的私钥进行签名,将签名后的捐赠信息广播至区块链系统。
161.s314、区块链系统中的各个节点接收捐赠信息,并对捐赠信息进行验证,若验证通过,则将捐赠信息记入区块链账本。
162.区块链系统中的各个节点获取捐赠节点的公钥,对捐赠信息的签名进行验证,若验证通过,则将捐赠信息记入区块链账本。捐赠节点根据上述步骤成功录入自己的捐赠信息后,无需实时同步区块链系统的账本信息,可以进行离线,后续若配型成功,将会通过捐赠节点的联系信息通知捐赠者。
163.继续参见图3,图3中s320-s325示出在用户节点为受捐节点的情况下,本方法在s292之后的流程图。
164.针对用户节点为受捐节点的情况,s292之后,该方法还包括:
165.s320、受捐节点将其对应的受捐者的预设个数基因点位信息,按照预设规则进行排序。
166.其中,受捐者的配型信息不仅与基因点位信息有关,还与其排序相关,因此,获取到受捐者的预设个数基因点位信息后,先按照预设规则将基因点位信息排序,其中,预设个数可以根据需要设置,例如为10个。需要说明的是,s311中捐赠节点的排序规则与本步骤受捐节点的排序规则一致,以保证捐赠者和受捐者的基因点位信息按照相同的规则进行排序。
167.s321、受捐节点通过哈希计算,将排序后的受捐者的预设个数基因点位信息生成受捐基因标识。
168.其中,受捐节点按照预设的哈希算法,对排序后的受捐者的预设个数基因点位信息进行哈希计算生成哈希值,并将该哈希值作为受捐节点的受捐基因标识。此处通过哈希算法将预设个数基因点位信息,而非直接存储,能够有效保护受捐者的基因信息。需要说明的是,s312中的哈希算法与本步骤中的哈希算法一致,以保证捐赠者和受捐者的基因点位信息的哈希计算按照相同的算法进行。
169.s322、受捐节点同步区块链系统的、完整的区块链账本,并在区块链账本中查找是否存在与自身的受捐基因标识相匹配的捐赠信息。
170.在进行完上述捐赠节点的捐赠信息录入,和生成受捐节点的受捐基因标识后,可以进行配型步骤。具体地,受捐节点同步区块链系统的、完整的区块链账本,完整的区块链账本记录有各个捐赠节点的捐赠信息,捐赠信息中包括每个捐赠节点的捐赠基因标识,在区块链账本中查找是否存在与自身的受捐基因标识相匹配的捐赠基因标识,以进行骨髓配型。
171.s323、若是,受捐节点向创始节点发送包含相匹配的捐赠信息的查询请求。
172.若查找到与受捐节点的受捐基因标识相匹配的捐赠基因标识,确定该捐赠基因标识对应的捐赠信息,并生成包含相匹配的捐赠信息(包括捐赠节点的用户标识、捐赠基因标识、第三加密信息)的查询请求,用受捐节点的私钥对查询请求签名后发送至创始节点。
173.其中,针对受捐节点首次发送查询请求的情况,s323包括:
174.子步骤一、受捐节点向时间戳节点发送查询请求。
175.子步骤二、时间戳节点接收查询请求,并将接收到查询请求的第一时间加入捐赠信息,并将加入第一时间后的捐赠信息发送给创始节点。
176.时间戳节点会记录受捐节点首次发送查询请求的时间,并给查询请求打上时间戳(第一时间),以保证若存在多个配型成功的受捐节点,可以以时间戳的时间分配多个配型成功的受捐者的优先级,即第一时间越早优先级越高。
177.s324、创始节点获取接收到的查询请求中包含的捐赠信息中的第三加密信息,并根据自身的私钥解密第三加密信息,得到捐赠节点的联系信息。
178.其中,创始节点接收到查询请求后,通过受捐节点的用户标识(携带在查询请求中)在区块链账本中查询到与受捐节点的用户标识对应的受捐节点的公钥,使用公钥对查询请求的签名信息进行验证,若验证通过,则获取捐赠信息中的第三加密信息,由于第三加密信息采用创始节点的公钥进行加密,因此创始节点根据创始节点自身的公钥解密第三加密信息,得到捐赠节点的联系信息。
179.s325、创始节点通过捐赠节点的联系信息,向捐赠节点发送匹配成功通知。
180.其中,创始节点通过捐赠节点的联系信息的电话号码,向捐赠节点发送匹配成功
通知,具体可以通过短信或电话方式发送匹配成功通知。
181.继续参见图3,图3中s410-s430示出骨髓配型协商过程,在s325或s314之后,该方法包括以下步骤:
182.s410、捐赠节点与受捐节点进行报价协商。
183.其中,s410包括以下步骤:
184.子步骤一、捐赠节点响应匹配成功通知,接入区块链系统,将经过自身私钥签名后的同意捐赠通知广播至区块链系统,其中,同意捐赠通知包含捐赠报价。
185.子步骤二、与同意捐赠信息对应的患者节点接收同意捐赠通知,并获取其中的捐赠报价,若接受捐赠报价,则将经过自身私钥签名后的同意报价通知广播至区块链系统,并根据捐赠报价向捐赠节点进行转账。
186.s420、捐赠节点与受捐节点进行体检信息确认。
187.其中,s420包括以下步骤:
188.子步骤一、捐赠节点获取捐赠者的体检信息,对体检信息进行加密处理,并使用自身的私钥对加密后的体检信息进行签名,将经过签名的体检信息广播至区块链系统。
189.其中,捐赠节点对体检信息进行加密处理包括:将体检信息中捐赠者的身份信息和联系信息去除;获取受捐节点的公钥,并使用受捐节点的公钥加密体检信息。
190.子步骤二、受捐节点接收体检信息,并使用自身的公钥对体检信息的签名进行验证,若验证通过,对体检信息进行解密。
191.其中,受捐节点对体检信息进行解密包括:使用受捐节点的私钥解密体检信息。若确认体检信息合规(符合医学需求),则执行后续签约步骤。
192.s430、捐赠节点与受捐节点进行捐赠合约签约。
193.其中,s430包括以下步骤:
194.子步骤一、受捐节点生成智能合约,并使用自身的私钥签名后发送给捐赠节点。
195.其中,智能合约包括:捐赠节点的用户标识、受捐节点的用户标识、捐赠报价、违约时长、转账时限。智能合约的条款包括:捐赠节点需要转入区块链系统的公共账户的违约金额、违约条件、转账条件。
196.其中,违约金额为预设倍数的捐赠报价,预设倍数可以自定,例如为十倍。违约条件例如为:在受捐节点对应的受捐者的入仓时长大于预设的违约时长后,若接收到捐赠节点发送的拒绝捐赠发起通知,则确认捐赠节点触发违约条件;若捐赠节点触发违约条件,则将违约金额转入受捐节点的账户。其中,入仓时长为受捐者入仓开始大化疗清随的时长,违约时长为可接受违约的受捐者入仓开始大化疗清随的时长。
197.转账条件例如为:若捐赠节点对应的捐赠者上传捐赠证明后的等待支付时长大于转账时限,则确定触发转账条件。在完成捐赠手术后,捐赠者会获得捐赠证明,则受捐节点应当根据捐赠报价向捐赠节点转账,其中设置一定转账时限,若等待支持时长大于转账时限,则将受捐节点按照捐赠报价转入区块链系统的公共账户的金额自动转入捐赠节点的账户。
198.子步骤二、捐赠节点接收智能合约并对智能合约的条款进行确认,若同意条款,则使用自身的私钥对智能合约进行二次签名并广播至区块链系统,并按照智能合约中的违约金额向区块链系统的公共账户转账。
199.子步骤三、区块链中的各个节点接收智能合约,根据智能合约中的捐赠节点的用户标识和受捐节点的用户标识获取二者的公钥,对智能合约的二次签名分别进行验证,若验证通过,则获取智能合约的条款,共同执行智能合约。
200.其中,共同执行智能合约包括:若确定捐赠节点触发违约条件,则将违约金额转入受捐节点的账户,和/或,若确定受捐节点触发,则将受捐节点按照捐赠报价转入区块链系统的公共账户的金额转入捐赠节点的账户。
201.需要说明的是,受捐节点可以在子步骤一发送智能合约时,将捐赠报价对应的金额转入区块链的公共账户,也可以在子步骤二之后,接收到二次签名的智能合约(即确认捐赠节点同意捐赠)后,将捐赠报价对应的金额转入区块链的公共账户。
202.需要说明的是,捐赠节点对应的捐赠者在完成捐赠手术,获得捐赠证明后,需要把捐赠证明发送给捐赠节点,捐赠节点再根据自身的私钥对捐赠证明进行签名后广播至区块链系统,以使区块链系统中的各个节点根据接收到捐赠证明的时间,确定等待支付时长。其中,捐赠证明包括捐赠骨髓手术记录单和干细胞抽取记录单中的至少一者。
203.本领域技术人员可灵活调整上述各个步骤的执行顺序,并且,可以将上述各个步骤拆分为更多的步骤,或合并为更少的步骤,还可以针对其中的部分步骤进行删减。并且,上述实施例一与实施例二可相互结合,本发明对此不做限定。
204.本实施例所提供的骨髓配型管理方法,通过使用运营商的公钥加密用户的身份信息和联系信息得到第一加密信息,再将包含第一加密信息的第一用户注册信息发给运营商节点,使运营商节点用自身的私钥解密第一加密信息获得用户的身份信息和联系信息,根据用户节点的公钥加密随机挑战数串生成第二加密信息,再根据获取到的联系信息将第二加密信息通过验证短信的方式发送给用户节点,用户节点接收验证短信后根据自身私钥解密第二加密信息获得随机挑战数串,再将随机挑战数串加入第一用户注册信息得到第二用户注册信息并发送给运营商节点,运营商节点通过自身私钥解密第一用户注册信息得到身份信息和联系信息,对其进行验证,以确定用户节点非虚假用户,再对得到的随机挑战数串进行验证,以确定发给用户节点的数据没有被篡改,且对收发随机挑战数串的时间进行确认,以保证接收到点随机挑战数串的可靠性,并且用户节点和运营商之间的传输的每一步都需要采用二者中的一者的公钥加密,从而能够进一步保证数据没有被篡改,进而保证骨髓配型的安全性。并且,对捐赠者和受捐者的基因点位信息进行保护,将其经过哈希化后在进行配型,且保护捐赠者的身份信息,进一步保证了骨髓配型的安全性。
205.实施例三、
206.参见图4,图4示出本实施例的一种区块链系统的系统架构图。
207.本实施例提供一种区块链系统,区块链系统应用于骨髓配型管理,区块链系统包括多个用户节点01、运营商节点02、创始节点03、时间戳节点04,其中,用户节点01包括捐赠节点和受捐节点。
208.其中,用户节点用于将用户节点对应的第一用户注册信息广播至区块链系统,其中,第一用户注册信息包括:根据运营商节点的公钥对用户节点对应的用户的身份信息和联系信息进行加密所得到的第一加密信息、用户节点的用户标识和用户节点的公钥;
209.运营商节点用于接收并保存第一用户注册信息,使用自身的私钥解密第一加密信息,得到联系信息;
210.运营商节点还用于根据联系信息向用户节点发送携带第二加密信息的验证短信,其中,第二加密信息根据第一用户注册信息中的用户节点的公钥,对运营商节点生成的随机挑战数串进行加密生成;
211.用户节点还用于接收并获取验证短信中的第二加密信息,并根据自身的私钥解密第二加密信息,得到随机挑战数串,在第一用户注册信息中添加随机挑战数串,得到第二用户注册信息,并将第二用户注册信息广播至区块链系统;
212.运营商节点还用于接收第二用户注册信息,使用自身的私钥解密第一加密信息,得到身份信息和联系信息,并利用运营商用户数据库中的数据对身份信息和联系信息进行验证,若验证通过,对第二用户注册信息中的随机挑战数串进行验证,若验证通过,将保存的第一用户注册信息广播至区块链系统;
213.区块链系统中的各个节点用于接收第一用户注册信息,并对第一用户注册信息进行验证,若验证通过,则将第一用户注册信息记入区块链账本。
214.在一些示例中,运营商节点还用于在运营商用户数据库查找与联系信息中的电话号码相匹配的电话号码。
215.运营商节点还用于获取与查到的相匹配的电话号码相关联的用户信息,验证用户信息与身份信息是否一致,若是,则确定身份信息和联系信息验证通过。
216.在一些示例中,运营商节点还用于根据接收到第二用户注册信息的时间与预设时间阈值的比较结果,确定第二用户注册信息是否有效。
217.若是,验证发送的随机挑战数串与接收的随机挑战数串的一致性,若一致性验证通过,则确定随机挑战数串验证通过。
218.在一些示例中,区块链系统还包括创始节点。针对用户节点为捐赠节点的情况,捐赠节点用于获取创始节点的公钥,并根据创始节点的公钥对自身的联系信息进行加密,得到第三加密信息。
219.捐赠节点还用于将其对应的捐赠者的预设个数基因点位信息,按照预设规则进行排序。
220.捐赠节点还用于通过哈希计算,将排序后的预设个数基因点位信息生成捐赠基因标识。
221.捐赠节点还用于根据自身的用户标识、捐赠基因标识、第三加密信息生成捐赠信息,并广播至区块链系统。
222.区块链系统中的各个节点用于接收捐赠信息,并对捐赠信息进行验证,若验证通过,则将捐赠信息记入区块链账本。
223.在一些示例中,区块链系统还包括时间戳节点。针对用户节点为受捐节点的情况,受捐节点用于将其对应的受捐者的预设个数基因点位信息,按照预设规则进行排序。
224.受捐节点还用于通过哈希计算,将排序后的受捐者的预设个数基因点位信息生成受捐基因标识。
225.受捐节点还用于同步区块链系统的、完整的区块链账本,并在区块链账本中查找是否存在与自身的受捐基因标识相匹配的捐赠信息。
226.若是,受捐节点还用于向创始节点发送包含相匹配的捐赠信息的查询请求。
227.创始节点用于获取接收到的查询请求中包含的捐赠信息中的第三加密信息,并根
据自身的私钥解密第三加密信息,得到捐赠节点的联系信息。
228.创始节点还用于通过捐赠节点的联系信息,向捐赠节点发送匹配成功通知。
229.其中,针对受捐节点首次发送查询请求的情况,受捐节点还用于向时间戳节点发送查询请求。
230.时间戳节点用于接收查询请求,并将接收到查询请求的第一时间加入捐赠信息,并将加入第一时间后的捐赠信息发送给创始节点。
231.在一些示例中,创始节点存储有运营商节点的运营商节点的用户标识和公钥。用户节点还用于获取存储在创始节点中的运营商节点的用户标识和公钥,并根据运营商节点的公钥对用户节点对应的用户的身份信息和联系信息进行加密,得到第一加密信息。
232.用户节点还用于通过哈希计算,根据身份信息生成用户标识。
233.用户节点还用于根据自身的公钥、用户标识、第一加密信息生成用户节点的第一用户注册信息。
234.在一些示例中,区块链系统中的各个节点用于接收第一用户注册信息,并获取其中的用户标识。
235.区块链系统中的各个节点还用于在区块链账本中查询是否有与当前接收的用户标识相匹配的历史用户标识。
236.若否,则确定验证通过。
237.本实施例所提供的区块链系统,通过使用运营商的公钥加密用户的身份信息和联系信息得到第一加密信息,再将包含第一加密信息的第一用户注册信息发给运营商节点,使运营商节点用自身的私钥解密第一加密信息获得用户的身份信息和联系信息,根据用户节点的公钥加密随机挑战数串生成第二加密信息,再根据获取到的联系信息将第二加密信息通过验证短信的方式发送给用户节点,用户节点接收验证短信后根据自身私钥解密第二加密信息获得随机挑战数串,再将随机挑战数串加入第一用户注册信息得到第二用户注册信息并发送给运营商节点,运营商节点通过自身私钥解密第一用户注册信息得到身份信息和联系信息,对其进行验证,以确定用户节点非虚假用户,再对得到的随机挑战数串进行验证,以确定发给用户节点的数据没有被篡改,并且用户节点和运营商之间的传输的每一步都需要采用二者中的一者的公钥加密,从而能够进一步保证数据没有被篡改,进而保证骨髓配型的安全性。
238.实施例四、
239.本发明提供一种电子设备,包括:
240.至少一个处理器。以及
241.与至少一个处理器通信连接的存储器。其中,
242.存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的骨髓配型管理方法。
243.本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
244.参见图5,图5示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还
可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
245.如图5所示,设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序,来执行各种适当的动作和处理。在ram 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom 802以及ram 803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
246.设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等。输出单元807,例如各种类型的显示器、扬声器等。存储单元808,例如磁盘、光盘等。以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
247.计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如骨髓配型管理方法。例如,在一些实施例中,骨髓配型管理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到ram 803并由计算单元801执行时,可以执行上文描述的骨髓配型管理方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行骨髓配型管理方法。
248.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
249.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
250.实施例五、
251.本发明提供一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行根据上述的方法。
252.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供
指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
253.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器)。以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互。例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈)。并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
254.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
255.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
256.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
257.可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1