一种在区块链上提供特定证书的注册服务的方法与流程

文档序号:16361753发布日期:2018-12-22 08:12阅读:159来源:国知局

本发明涉及区块链应用领域,具体而言,涉及一种在区块链上提供特定证书的注册服务的方法。

背景技术

块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。由于使用分布式核算和存储,不存在中心化的硬件或管理机构,任意节点的权利和义务都是均等的,系统中的数据块由整个系统中具有维护功能的节点来共同维护。系统是开放的,除了交易各方的私有信息被加密外,区块链的数据对所有人公开,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。区块链采用基于协商一致的规范和协议(比如一套公开透明的算法)使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据,使得对“人”的信任改成了对机器的信任,任何人为的干预不起作用。一旦信息经过验证并添加至区块链,就会永久的存储起来,除非能够同时控制住系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。由于节点之间的交换遵循固定的算法,其数据交互是无需信任的(区块链中的程序规则会自行判断活动是否有效),因此交易对手无须通过公开身份的方式让对方对自己产生信任,对信用的累积非常有帮助。

区块链作为新一代计算机系统,其实际应用中的亟待处理的实际问题还有很多未提出具体的解决方案。



技术实现要素:

本发明提出了一种在区块链上提供特定证书的注册服务的方法,其中所述特定智能合约是能够被编译成在至少一个计算设备上可执行的至少一个特定字节代码的至少一个源代码,如果在执行时满足特定条件,则其被配置为执行预定过程,并且其中关于执行结果的完整性通过从计算设备输出的一致性来验证,其特征在于,所述方法包括使用中间服务器执行以下步骤:

(a)基于特定用户的用户设备的特定公钥、作为特定用户的个人信息的哈希值的、以及包括关于该特定用户的一个或多个有效性条件的获取,执行或支持其他设备执行特定证书,以执行创建与有效性条件对应的特定智能合约的过程,以及获取编译特定智能合约的至少一个特定字节码;

(b)如果获取了特定字节码,则执行或支持另一设备执行过程注册特定公钥,特定字节码作为具有私有区块链数据库的特定证书的信息;

(c)执行或支持另一个设备执行设置特定状态;

(d)如果满足私有区块链数据库中区块链的第n个块的一个或多个锚定条件,则执行或支持另一个设备执行获取特定代表性哈希值的过程或者通过使用特定散列值计算其处理值,并将其对应的至少一个相邻散列值记录在具有特定散列值的第n个块中,其中,通过使用特定公钥计算特定散列值,特定字节代码,并且其中相邻散列值包括通过使用至少一个关联公钥计算的至少一个第一关联散列值中的至少一个,并且至少一个第二关联的h通过使用至少一个消息数据计算的灰值,该消息数据包括与至少一个相关证书的批准相对应的批准信息或其处理值,或者与撤销相关证书相对应的撤销请求信息或其处理值,其中相关证书由至少一个关联事务的至少一个定位符、消息数据的至少一个签名值,以及至少一个第三关联散列值组成。

具体实施方式

为了使得本发明的目的、技术方案及优点更加清楚明白,以下结合其实施例,对本发明进行进一步详细说明;应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。对于本领域技术人员而言,在查阅以下详细描述之后,本实施例的其它系统、方法和/或特征将变得显而易见。旨在所有此类附加的系统、方法、特征和优点都包括在本说明书内、包括在本发明的范围内,并且受所附权利要求书的保护。在以下详细描述描述了所公开的实施例的另外的特征,并且这些特征根据以下将详细描述将是显而易见的。

实施例一。

一种在区块链上提供特定证书的注册服务的方法,其中所述特定智能合约是能够被编译成在至少一个计算设备上可执行的至少一个特定字节代码的至少一个源代码,如果在执行时满足特定条件,则其被配置为执行预定过程,并且其中关于执行结果的完整性通过从计算设备输出的一致性来验证,其特征在于,所述方法包括使用中间服务器执行以下步骤:

(a)基于特定用户的用户设备的特定公钥、作为特定用户的个人信息的哈希值的、以及包括关于该特定用户的一个或多个有效性条件的获取,执行或支持其他设备执行特定证书,以执行创建与有效性条件对应的特定智能合约的过程,以及获取编译特定智能合约的至少一个特定字节码;

(b)如果获取了特定字节码,则执行或支持另一设备执行过程注册特定公钥,特定字节码作为具有私有区块链数据库的特定证书的信息;

(c)执行或支持另一个设备执行设置特定状态;

(d)如果满足私有区块链数据库中区块链的第n个块的一个或多个锚定条件,则执行或支持另一个设备执行获取特定代表性哈希值的过程或者通过使用特定散列值计算其处理值,并将其对应的至少一个相邻散列值记录在具有特定散列值的第n个块中,其中,通过使用特定公钥计算特定散列值,特定字节代码,并且其中相邻散列值包括通过使用至少一个关联公钥计算的至少一个第一关联散列值中的至少一个,并且至少一个第二关联的h通过使用至少一个消息数据计算的灰值,该消息数据包括与至少一个相关证书的批准相对应的批准信息或其处理值,或者与撤销相关证书相对应的撤销请求信息或其处理值,其中相关证书由至少一个关联事务的至少一个定位符、消息数据的至少一个签名值,以及至少一个第三关联散列值组成。

实施例二。

一种用于基于特定智能合约提供特定证书的注册服务的方法,其中所述特定智能合约是能够被编译成在至少一个计算设备上可执行的至少一个特定字节代码的至少一个源代码,如果在执行时满足特定条件,则其被配置为执行预定过程,并且其中关于执行结果的完整性通过从计算设备输出的一致性来验证,包括以下步骤:(a)中间服务器,如果(i)对应于特定用户的用户设备的特定公钥puba,(ii)作为特定用户的个人信息的哈希值的idhasha,以及(iii)包括关于该特定用户的一个或多个有效性条件的vcerta。获取,执行或支持其他设备执行特定证书,以执行创建与有效性条件对应的特定智能合约sc(vcerta)的过程,以及获取编译特定智能合约的至少一个特定字节码bc(sc(vcerta))的过程;(b)中间服务器,如果获取了特定字节码,则执行或支持另一设备执行过程注册特定公钥puba,idhasha和特定字节码bc(sc(vcerta))作为具有私有区块链数据库的特定证书的信息,以及获取privtxida作为特定证书的参考信息的过程,这是一个特定证书的参考信息。私有区块链数据库中特定证书信息的定位器;(c)中间服务器,如果获取privtxida,则执行或支持另一个设备执行设置特定状态s(sc(vcerta))的过程。特定智能合约sc(vcerta)作为初始状态,以及用sdb注册privtxida和特定状态s(sc(vcerta))的过程;(d)中间服务器,如果满足私有区块链数据库中区块链的第n个块的一个或多个锚定条件,则执行或支持另一个设备执行(i)获取特定代表性哈希值的过程或者,通过使用特定散列值计算其处理值,并将其对应的至少一个相邻散列值记录在具有特定散列值的第n个块中,其中,通过使用特定公钥puba计算特定散列值,idhasha和特定字节代码bc(sc(vcerta)),并且其中相邻散列值包括(i)通过使用至少一个关联公钥计算的至少一个第一关联散列值中的至少一个,至少一个idhash_others这是至少一个其他用户的个人信息的哈希值和至少一个关联的字节码,其中编译了至少一个相关的智能合约,(ii)至少一个第二关联的h通过使用(ii-1)至少一个消息数据计算的灰值,该消息数据包括与至少一个相关证书的批准相对应的批准信息或其处理值,或者与撤销相关证书相对应的撤销请求信息或其处理值,其中相关证书由至少一个privtxid_others引用,该privtxid_others是至少一个关联事务的至少一个定位符,(ii-2)消息数据的至少一个签名值,以及(ii-3)privtxid_others,(iii)sdb或sdb的所有变体的至少一个第三关联散列值,其中(iii-1)sdb的所有变化包括所有智能合约的所有状态的所有相应变化,并且对应于差异在完成第n个块时sdb的状态与私有区块链数据库中区块链的第(n-1)个块完成时sdb的状态之间,(iii-2)统计数据所有privtxids都可以识别sdb的es,它们代表关于它们在第n个块中记录其相应的所有事务的位置的所有相应位置信息,并且(iii-3)sdb包括关于特定状态和至少一个相关状态的信息。相关的智能合约,以及(ii)使用公共区块链数据库注册特定代表性散列值或其处理值的过程。

在本实施例中还包括步骤:(e)如果特定公钥puba,idhasha和特定字节码bc(sc(vcerta))向私有区块链数据库注册,则中间服务器,执行或支持另一设备执行将privtxida和指示注册的响应发送到某个服务器的过程,从而指示某个服务器向用户设备发送指示注册特定证书的完成消息,其中完成消息包括privtxida。

在步骤(a)中,中间服务器执行或支持另一个设备执行(a1)确认特定公钥puba及其处理值是否被注册的过程;(a2)如果注册了特定公钥puba及其处理值,则发送指示从用户设备获取的特定公钥puba已经注册的消息。其中,idhasha是个人信息的散列值,包括特定用户的姓名,出生日期,联系信息和电子邮件地址中的至少一个。其中,特定证书的有效性条件vcerta基于(i)关于特定用户的特征的信息,(ii)使用特定证书时的天气信息的至少一部分(iii)使用特定证书时的日期信息,(iv)关于允许使用特定证书的至少一个人的信息,以及(v)关于特定证书的预定使用次数的信息。其中,在步骤(d)中,锚定条件包括以下中的至少一个:(i)获取或生成特定数量的特定散列值和相邻散列值的条件,(ii)经过一定时间的条件,(iii)在私有区块链数据库中创建第n个块的条件,以及(iv)具有至少一个服务特征的条件。其中,当在私有区块链数据库中创建第n个块时,中间服务器记录或支持另一个设备以在第n个块的块头中记录sdb头部哈希值,并且其中,sdb报头散列值是通过使用关于sdb的状态或sdb的所有变化的信息计算的散列值。

其中,在(d)的步骤,在以下条件下:(i)从其叶节点包括通过使用所有公钥计算的散列值的merkle树生成证书代表散列值,所有个人信息散列值和所有字节代码,以及(ii)消息代表散列值是从merkle树生成的,其叶子节点包括通过使用(ii-1)所有消息数据计算的散列值,所有消息数据包括所有批准信息或其对应的处理值。所有证书的批准,或所有撤销请求信息或与所有证书撤销相对应的处理值,所有证书的所有证书,由所有交易的所有定位者(ii-2)引用所有消息数据的所有签名值,以及(ii-3)所有定位器,以及(iii)证书代表散列值和消息代表散列值进一步记录在第n个块的块头中,中间server注册或支持另一个设备向公共区块链数据库注册sdb报头哈希值,证书代表哈希值和消息代表事务哈希值或其处理值,其中所有公钥包括特定公钥puba和相关联公钥,用作计算记录在第n个块中的哈希值的元素,其中所有个人信息哈希值包括idhasha和idhash_others,它们用作计算记录在第n个块中的哈希值的元素其中所有字节码包括特定字节码bc(sc(vcerta))和相关字节码,它们用作计算记录在第n个块中的散列值的元素,并且其中所有定位器包括privtxida和第n个块中的privtxid_others。

在(d)的步骤,在条件下从merkle树生成私有代表散列值的条件,其叶节点包括(i)通过使用所有公钥计算的散列值,所有个人信息散列值和所有字节代码,以及(ii)通过使用(ii-1)所有消息数据计算的散列值,所述消息数据包括与所有证书的批准相对应的所有批准信息或其处理值,或者所有撤销请求信息或其处理的对应于所有证书的撤销的值,所有交易的所有定位符引用的所有证书(ii-2)所有消息数据的所有签名值,以及(ii-3)所有定位符,以及(iii)私有代表散列值进一步记录在第n个块的块头中,中间服务器注册或支持另一个设备来注册sdb头散列值,私有代表散列值或其处理后的值使用公共区块链数据库,其中所有公钥包括特定公钥puba和相关公钥,它们用作计算记录在第n个块中的哈希值的元素,其中所有个人信息哈希值包括idhasha和idhash_others,用作计算记录在第n个块中的散列值的元素,其中所有字节代码包括特定字节代码bc(sc(vcerta))和相关字节代码,它们用作元素用于计算记录在第n个块中的哈希值,并且其中所有定位符包括第n个块中的privtxida和privtxid_others。

在步骤(d)中,中间服务器执行或支持另一设备执行(i)通过将特定散列值分配给其叶节点来创建至少一个merkle树的过程,以及(ii)如果满足锚定条件,则通过使用特定叶节点的特定散列值和分配给至少一个其他叶的至少一个散列值计算的特定代表散列值或其处理值来注册的过程与具有公共区块链数据库的特定叶节点对应的节点。其中,如果所述merkle树是链中链接的两个或更多个merkle树中的第一树,则分配包括文本,数字或符号的消息数据的散列值或其处理值。到merkle树的第一个叶节点。其中,如果满足锚定条件,则(x1)中间服务器通过使用(i)特定散列值和(ii)分配的散列值来计算或支持另一设备来计算中间值。到特定叶节点的兄弟节点,然后分配或支持另一个设备将中间值的哈希值分配给特定叶节点的父节点,(x2)中间服务器,如果父节点是根节点merkle树的节点,注册或支持另一个设备将公共区块链数据库的中间值的哈希值注册为特定的代表性哈希值,并且(x3)中间服务器,如果父节点不是根节点,通过将中间值的散列值视为特定散列值并将父节点视为特定叶节点,重复或支持另一设备重复从(x1)到(x3)的步骤。其中,如果即使满足锚定条件也没有向特定叶节点的兄弟节点分配散列值,则中间服务器分配或支持另一个设备以向兄弟分配特定散列值。然后,节点执行或支持另一个设备执行(x1)到(x3)的步骤。

如果所述中间服务器将所述特定散列值和所述至少一个相邻散列值存储在第一数据结构中,然后存储和管理与所述第一数据结构形式相同的第二数据结构。第一数据结构和第二数据结构以链的形式连接。如果第一数据结构和第二数据结构是merkle树,则将第一数据结构的根值或根值的哈希值分配给第二数据结构的第一叶节点。数据结构。如果在(a),(b)和(c)的步骤期间没有从用户设备获取信息,则在步骤(d)中,如果锚定,则在满足条件的情况下,中间服务器执行或支持另一设备通过将某些消息数据分配给第一和第二节点来执行创建merkle树的过程,以及将merkle树的根值或其处理后的值注册到的过程。

虽然上面已经参考各种实施例描述了本发明,但是应当理解,在不脱离本发明的范围的情况下,可以进行许多改变和修改。也就是说上面讨论的方法,系统和设备是示例。各种配置可以适当地省略,替换或添加各种过程或组件。例如,在替代配置中,可以以与所描述的顺序不同的顺序执行方法,和/或可以添加,省略和/或组合各种阶段。而且,关于某些配置描述的特征可以以各种其他配置组合。可以以类似的方式组合配置的不同方面和元素。此外,技术发展,因此,许多元素是示例,并不限制本公开或权利要求的范围。

在说明书中给出了具体细节以提供对包括实现的示例性配置的透彻理解。然而,可以在没有这些具体细节的情况下实践配置例如,已经示出了众所周知的电路,过程,算法,结构和技术而没有不必要的细节,以避免模糊配置。该描述仅提供示例配置,并且不限制权利要求的范围,适用性或配置。相反,前面对配置的描述将为本领域技术人员提供用于实现所描述的技术的使能描述。在不脱离本公开的精神或范围的情况下,可以对元件的功能和布置进行各种改变。

此外,尽管每个操作可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。另外,可以重新排列操作的顺序。一个过程可能有其他步骤。此外,可以通过硬件,软件,固件,中间件,微代码,硬件描述语言或其任何组合来实现方法的示例。当在软件,固件,中间件或微代码中实现时,用于执行必要任务的程序代码或代码段可以存储在诸如存储介质的非暂时性计算机可读介质中,并通过处理器执行所描述的任务。

综上,其旨在上述详细描述被认为是例示性的而非限制性的,并且应当理解,以下权利要求(包括所有等同物)旨在限定本发明的精神和范围。以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1