具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。
其中,去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者(也可称为区块链中的节点)可以读取链上的数据记录、参与交易、以及竞争新区块的记账权等。而且,各节点可自由加入或者退出网络,并进行相关操作。
私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,其对节点具有严格限制且节点数量较少。这种类型的区块链更适合于特定机构内部使用。
联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;节点通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
基于区块链的基本特性,区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。
对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备对收到的交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
其中,区块链中支持的共识算法可以包括:
第一类共识算法,即节点设备需要争夺每一轮的记账周期的记账权的共识算法;例如,工作量证明(Proof of Work,POW)、股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake,DPOS)等共识算法;
第二类共识算法,即预先为每一轮记账周期选举记账节点(不需要争夺记账权)的共识算法;例如,实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)等共识算法。
在采用第一类共识算法的区块链网络中,争夺记账权的节点设备,都可以在接收到交易后执行该笔交易。争夺记账权的节点设备中可能有一个节点设备在本轮争夺记账权的过程中胜出,成为记账节点。记账节点可以将收到的交易与其它交易一起打包以生成最新区块,并将生成的最新区块或者该最新区块的区块头发送至其它节点设备进行共识。
在采用第二类共识算法的区块链网络中,具有记账权的节点设备在本轮记账前已经商定好。因此,节点设备在接收到交易后,如果自身不是本轮的记账节点,则可以将该交易发送至记账节点。对于本轮的记账节点,在将该交易与其它交易一起打包以生成最新区块的过程中或者之前,可以执行该交易。记账节点在生成最新区块后,可以将该最新区块或者该最新区块的区块头发送至其它节点设备进行共识。
如上所述,无论区块链采用以上示出的哪种共识算法,本轮的记账节点都可以将接收到的交易打包以生成最新区块,并将生成的最新区块或者该最新区块的区块头发送至其它节点设备进行共识验证。如果其它节点设备接收到最新区块或者该最新区块的区块头后,经验证没有问题,可以将该最新区块追加到原有的区块链末尾,从而完成区块链的记账过程。其它节点验证记账节点发来的新的区块或区块头的过程中,也可以执行该区块中的包含的交易。
在实际应用中,不论是公有链、私有链还是联盟链,都可能提供智能合约(smartcontract)的功能。区块链上的智能合约是在区块链上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑。以太坊作为一个可编程区块链,其核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,通过它可以实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,EVM直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”),所以部署在区块链上的智能合约可以是字节码。
如图1所示,Bob将一笔包含创建智能合约信息的交易(transaction)发送到以太坊网络后,各节点均可以在EVM中执行这笔交易。其中,图1中交易的From字段用于记录发起创建智能合约的账户的地址,交易的Data字段的字段值保存的合约代码可以是字节码,交易的To字段的字段值为一个null(空)的账户。当节点间通过共识机制达成一致后,这个智能合约成功创建,后续用户可以调用这个智能合约。
智能合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址;比如,图1中各节点中的“0x68e12cf284…”就代表了创建的这个合约账户的地址;合约代码(Code)和账户存储(Storage)将保存在该合约账户的账户存储中。智能合约的行为由合约代码控制,而智能合约的账户存储则保存了合约的状态。换句话说,智能合约使得区块链上产生包含合约代码和账户存储的虚拟账户。
前述提到,包含创建智能合约的交易的Data字段保存的可以是该智能合约的字节码。字节码由一连串的字节组成,每一字节可以标识一个操作。基于开发效率、可读性等多方面考虑,开发者可以不直接书写字节码,而是选择一门高级语言编写智能合约代码。例如,高级语言可以采用诸如Solidity、Serpent、LLL语言等。对于采用高级语言编写的智能合约代码,可以经过编译器编译,生成可以部署到区块链上的字节码。
以Solidity语言为例,用其编写的合约代码与面向对象编程语言中的类(Class)很相似,在一个合约中可以声明多种成员,包括状态变量、函数、函数修改器、事件等。状态变量是永久存储在智能合约的账户存储(Storage)字段中的值,用于保存合约的状态。
如图2所示,仍以以太坊为例,Bob将一笔包含调用智能合约信息的交易发送到以太坊网络后,各节点均可以在EVM中执行这笔交易。其中,图2中交易的From字段用于记录发起调用智能合约的账户的地址,To字段用于记录被调用的智能合约的地址,交易的Data字段用于记录调用智能合约的方法和参数。调用智能合约后,合约账户的账户状态可能改变。后续,某个客户端可以通过接入的区块链节点(例如图2中的节点1)查看合约账户的账户状态。
智能合约可以以规定的方式在区块链网络中每个节点独立的执行,所有执行记录和数据都保存在区块链上,所以当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。
创建智能合约和调用智能合约的示意图如图3所示。以太坊中要创建一个智能合约,需要经过编写智能合约、变成字节码、部署到区块链等过程。以太坊中调用智能合约,是发起一笔指向智能合约地址的交易,各个节点的EVM可以分别执行该交易,将智能合约代码分布式的运行在以太坊网络中每个节点的虚拟机中。
智能合约的事件机制,是智能合约与链外实体进行交互的一种方式。对于区块链上部署的智能合约来说,通常无法直接与链外实体进行交互;例如,智能合约在调用完成后,通常无法将智能合约的调用结果,点对点的发送给智能合约的调用发起方。
智能合约在调用的过程中产生的调用结果(包括中间结果和最终的调用结果),通常都会以事件(event)的形式,记录到调用该智能合约的那笔交易的交易日志(transaction logs),在节点设备的存储空间中进行存储。而需要与智能合约进行交互的链外实体,则可以通过监听节点设备的存储空间中存储的上述交易日志的方式,来获取智能合约的调用结果;
例如,以以太坊为例,交易日志最终会作为调用该智能合约的那笔交易笔交易的收据(receipt)的一部分内容,存储在以上描述的MPT收据树中。而与智能合约进行交互的链外实体,可以监听节点设备的存储空间中存储的MPT收据树上的交易收据,并从监听到的交易收据中,来获取智能合约生成的事件。
在跨链场景下,多个区块链可以通过跨链中继实现跨链对接。
其中,跨链中继,可以通过桥接接口与多个区块链分别进行对接,并基于实现的数据搬运逻辑,完成该多个区块链之间的跨链数据同步。
在实现上述跨链中继时所采用的跨链技术,在本说明书中不进行特别限定;例如,在实际应用中,可以通过侧链技术、公证人技术等跨链机制,将多个区块链连接起来。
当多个区块链通过跨链中继实现对接之后,区块链之间就可以去读取并认证其它区块链上的数据,也可以通过跨链中继去调用其它区块链上部署的智能合约。
需要说明的是,跨链中继仅用于多个区块链之间搬运数据,并不需要对搬运的数据进行持久化存储,也不需要维护所搬运的数据的数据状态。在实际应用中,跨链中继可以配置在其所连接的多个区块链之外的设备、节点或平台等处,也可以配置在其所连接的多个区块链的节点设备上,在本说明书中不进行特别限定。
区块链上部署的智能合约,通常只能引用区块链上存储的数据内容;而在实际应用中,对基于智能合约技术实现的一些复杂的业务场景,智能合约可能还需要引用一些链外的数据实体上的外部数据。
在这种场景下,区块链上部署的智能合约,可以通过Oracle预言机,来引用链外的数据实体上的数据,进而实现智能合约与真实世界的数据实体之间的数据交互。其中,链外的数据实体,可以包括诸如部署在链外的中心化的服务器或者数据中心,等等。
需要说明的是,跨链中继用于连接两个区块链,而Oracle预言机用于连接区块链与链外的数据实体,实现区块链与真实世界的数据交互。
在实际应用中,在为区块链上的智能合约部署预言机时,可以先在区块链上部署一个与预言机对应的预言机智能合约;其中,该预言机智能合约用于维护预言机发给区块链上的智能合约的外部数据;例如,预言机发给区块链上的智能合约的外部数据,可以存储在预言机智能合约的账户存储空间中。
当区块链上的目标智能合约被调用时,可以从该预言机智能合约的账户存储空间中,来读取该目标智能合约所需的外部数据,来完成智能合约的调用过程。
需要说明的是,预言机在向区块链上的智能合约发送外部数据时,可以采用主动发送的方式,也可以采用被动发送的方式。
在一种实现方式中,链外的数据实体可以将需要提供给目标智能合约的外部数据,利用预言机的私钥进行签名后,发送给上述预言机智能合约;例如,在时间时,可以采用周期性发送的方式,将签名后的上述外部数据发送给上述预言机智能合约;
而在上述预言机智能合约可以维护预言机的CA证书,在收到链外的数据实体发送的外部数据后,可以使用该CA证书中维护的该预言机的公钥,对该外部数据的签名进行验证,并在验证通过后,将链外的数据实体发送的外部数据在该预言机智能合约的账户存储空间中进行存储。
在另一种实现方式中,当区块链上的目标智能合约被调用时,如果从该预言机智能合约的账户存储空间中,并未读取到该目标智能合约所需的外部数据,此时该预言机智能合约,可以利用智能合约的事件机制,与上述预言机进行交互,并由上述预言机将该目标智能合约所需的外部数据,发送至该预言机智能合约的账户存储空间中。
例如,当区块链上的目标智能合约被调用时,如果从该预言机智能合约的账户存储空间中,并未读取到该目标智能合约所需的外部数据,此时该预言机智能合约,可以生成一个外部数据获取事件,并将该外部数据获取事件记录到调用该智能合约的那笔交易的交易日志中,并将该交易日志存储到节点设备的存储空间;而上述预言机可以监听节点设备的存储空间中存储的该预言机智能合约产生的交易日志,并在监听到交易日志中的外部数据获取事件后,响应监听到的该外部数据获取事件,将上述目标智能合约所需的外部数据,发送给上述预言机智能合约。
请参考图4,图4是本说明书一示例性实施例示出的一种基于区块链的物理印章使用系统的示意图。
在如图4所示的基于区块链的物理印章使用系统中,在该区块链上可以部署智能合约。其中,该智能合约可以包括用于管理物理印章的智能合约代码;具体地,该智能合约的智能合约代码可以包括与使用权限验证逻辑对应的智能合约代码,以及与物理印章使用逻辑对应的智能合约代码,等等。在实际应用中,通过运行该智能合约中与使用权限验证逻辑对应的智能合约代码,可以实现使用权限验证逻辑,对请求使用物理印章的物理印章使用方进行使用权限验证;通过运行该智能合约中与物理印章使用逻辑对应的智能合约代码,可以实现物理印章使用逻辑,使物理印章使用方可以使用物理印章。
需要说明的是,创建和调用智能合约的具体流程可以参考前述智能合约的创建和调用流程,本说明书在此不再赘述。
在具体实现时,用户可以通过与上述区块链中的节点设备耦接的客户端发起用于调用该区块链上部署的上述智能合约的交易。该区块链中的节点设备在接收到该交易时,可以将该交易发送给该区块链中的其他节点设备,以对该交易进行共识处理,并在该交易共识通过后,执行该智能合约中的智能合约代码对应的逻辑,从而使物理印章使用方可以使用物理印章。
在实际应用中,上述客户端可以部署在电子设备上,该电子设备可以是服务器、计算机、手机、平板设备、笔记本电脑、掌上电脑(PDAs,Personal Digital Assistants)等;作为节点设备加入至上述区块链的电子设备也可以是服务器、计算机、手机、平板设备、笔记本电脑、掌上电脑等;本说明书对此不作限制。
请参考图5,图5是本说明书一示例性实施例示出的一种基于区块链的物理印章使用方法的流程图。
结合如图4所示的基于区块链的物理印章使用系统,上述基于区块链的物理印章使用方法可以应用于如图4所示的区块链中的节点设备;该基于区块链的物理印章使用方法可以包括以下步骤:
步骤502,接收与物理印章使用方对应的客户端发送的使用物理印章的智能合约调用交易;
步骤504,响应于所述智能合约调用交易,调用所述智能合约中的智能合约代码对应的使用权限验证逻辑,确定所述物理印章使用方是否具有所述物理印章的使用权限;
步骤506,如果是,则进一步调用所述智能合约中的智能合约代码对应的物理印章使用逻辑,生成与所述物理印章使用方对应的物理印章使用码,以使所述客户端在获取到所述物理印章使用码时,将所述物理印章使用码展示给所述物理印章使用方,由所述物理印章使用方将所述物理印章使用码写入至待签章的文件中的签章区域,并在所述签章区域加盖所述物理印章。
在本实施例中,在上述区块链上可以部署智能合约。需要使用物理印章的用户(称为物理印章使用方)可以通过与该区块链中的节点设备建立连接的客户端发起针对该物理印章使用方需要使用的物理印章的请求;其中,该客户端即为与该物理印章使用方对应的客户端,例如:该物理印章使用方使用其用户账户的账户名和密码登录的客户端。
在一个例子中,与上述物理印章使用方对应的客户端可以将上述请求打包成用于调用上述区块链中部署的上述智能合约的交易(称为智能合约调用交易),并将该智能合约调用交易发送给该区块链中的节点设备。
在另一个例子中,与上述物理印章使用方对应的客户端可以将上述请求直接发送给上述区块链中的节点设备,并由该节点设备将该请求打包成用于调用该区块链上部署的上述智能合约的交易(称为智能合约调用交易)。
在本实施例中,上述区块链中的节点设备可以响应于上述智能合约调用交易,调用部署在该区块链中的上述智能合约中的智能合约代码对应的使用权限验证逻辑,即运行该智能合约中与使用权限验证逻辑对应的智能合约代码,确定上述物理印章使用方是否具有该物理印章使用方需要使用的物理印章的使用权限。
具体地,参考前述的在区块链中持久化存证数据的过程,上述客户端可以将上述智能合约调用交易发布至上述区块链进行存证;在这种情况下,与该客户端对接的该区块链中的节点设备可以先接收到该智能合约调用交易,再将该智能合约调用交易发送给该区块链中的其它节点设备。该区块链中的各台节点设备在接收到该智能合约调用交易时,可以对该智能合约调用交易进行共识处理。在达成共识之后,该区块链中的节点设备可以将该智能合约调用交易打包进区块,在该区块链中进行持久化存证。
对于打包进区块的该智能合约调用交易,该区块链中的节点设备可以响应于该智能合约调用交易,运行上述智能合约中与使用权限验证逻辑对应的智能合约代码,确定上述物理印章使用方是否具有该物理印章使用方需要使用的物理印章的使用权限。
在实际应用中,上述物理印章使用方具体可以代表在工作中需要使用物理印章的国家行政机关、事业单位、社会团体或者企业等;物理印章使用方可以是一个用户,也可以是多个用户组成的用户群体;本说明书对此不作限制。
以一家企业为例,该企业本身可以作为物理印章使用方,使用作为该企业的公章的物理印章。
具体地,该企业可以通过与该区块链中的节点设备建立连接的客户端发起使用该企业的公章的智能合约调用交易,例如:可以从该企业的全体员工中挑选出一名员工作为该企业的代表,通过该客户端发起该智能合约调用交易。该区块链中的节点设备可以响应于该智能合约调用交易,调用该智能合约中的智能合约代码对应的使用权限验证逻辑,确定作为物理印章使用方的该企业是否具有该企业的公章(即该物理印章使用方需要使用的物理印章)的使用权限。
在本实施例中,在确定了上述物理印章使用方具有该物理印章使用方需要使用的物理印章的使用权限的情况下,可以进一步调用上述智能合约中的智能合约代码对应的物理印章使用逻辑,即运行该智能合约中与物理印章使用逻辑对应的智能合约代码,生成与该物理印章使用方对应的物理印章使用码。后续,与该物理印章使用方对应的客户端可以获取到生成的该物理印章使用码,并将该物理印章使用码展示给该物理印章使用方,从而使该物理印章使用方可以将该物理印章使用码写入至待签章的文件中的签章区域,并在该签章区域加盖该物理印章。在这种情况下,加盖的该物理印章可以部分覆盖写入的该物理印章使用码,以防止写入的该物理印章使用码被人为篡改。
以如图6所示的实体文件(例如:打印在白纸上的文件)为例,假设为上述物理印章使用方生成的物理印章使用码为“852456”,则该物理印章使用方在上述客户端输出的用户界面中查看到该物理印章使用码之后,可以在该实体文件中的“签章区域”写入该物理印章使用码,并在“签章区域”加盖上述物理印章。
在示出的一种实施方式中,在生成了与上述物理印章使用方对应的物理印章使用码的情况下,参考前述的智能合约的事件机制,上述智能合约可以生成与该物理印章使用码对应的事件(称为物理印章使用事件);其中,该物理印章使用事件用于指示向物理印章使用方输出物理印章使用码。
在这种情况下,与上述物理印章使用方对应的客户端在获取到上述物理印章使用事件时,可以响应于该物理印章使用事件,将上述物理印章使用码展示给上述物理印章使用方。
具体地,可以将该物理印章使用事件记录至上述智能合约调用交易的交易日志或者上述智能合约的智能合约日志,存储在上述区块链中。上述客户端可以通过对该区块链中存储的该交易日志或者该智能合约日志进行监听,获取到该物理印章使用事件,并响应于该物理印章使用事件,将上述物理印章使用码展示给上述物理印章使用方。或者,上述客户端可以向部署在该区块链中的节点设备中的作为事件通知中心的SDK(SoftwareDevelopment Kit,软件开发工具包)订阅该物理印章使用事件;该SDK在检测到生成了该物理印章使用事件时,可以将该物理印章使用事件发送给该客户端,使该客户端可以获取到该物理印章使用事件,并响应于该物理印章使用事件,将上述物理印章使用码展示给上述物理印章使用方。
为了确定上述物理印章使用方是否具有该物理印章使用方需要使用的物理印章的使用权限,在示出的一种实施方式中,针对任意一个物理印章,可以预先将该物理印章的物理印章信息与该物理印章的合法使用方的身份信息的绑定关系在上述区块链中进行存证。相应地,上述智能合约调用交易还可以包括该物理印章的物理印章信息,以及该物理印章使用方的身份信息。
需要说明的是,上述物理印章信息与合法使用方的身份信息的绑定关系具体可以存储在上述智能合约的合约账户的存储空间中,即可以由该智能合约维护该绑定关系。或者,该绑定关系也可以存储在其他智能合约的合约账户的存储空间中;该智能合约可以通过调用其他智能合约,获取到该绑定关系。
在示出的一种实施方式中,对于某个物理印章使用方而言,该物理印章使用方的身份信息可以包括:该物理印章使用方持有的CA(Certificate Authority)证书中的公钥。
在实际应用中,一方面,不同的物理印章使用方持有不同的CA证书,而不同的CA证书中的公钥和私钥不同;另一方面,通常公钥是可以公开的密钥,私钥则是由用户自己持有的私密的密钥。因此,可以将上述物理印章使用方持有的CA证书中的公钥作为用于指代该物理印章使用方的身份信息。
进一步地,在示出的一种实施方式中,对于某个物理印章使用方而言,该物理印章使用方的身份信息还可以包括以下示出的一个或者多个的组合:该物理印章使用方的身份标识(例如:用户账户的账户名称和密码、人脸信息或指纹信息等);该物理印章使用方的区块链账户标识;该物理印章使用方持有的物理印章的图像信息;等等。也即,可以将唯一指代该物理印章使用方的信息作为该物理印章使用方的身份信息。
在实际应用中,对于某个物理印章而言,该物理印章的物理印章信息可以包括用于唯一表示该物理印章的信息,例如:该物理印章的式样图像;或者,篆刻在该物理印章上的印章编号;等等;该物理印章的合法使用方可以是该物理印章的申领方,也可以是由该物理印章的申领方在成功申领了该物理印章之后,授权了该物理印章的使用权限的使用方;本说明书对此不作限制。
其中,该物理印章的申领方可以是申领该物理印章的用户;可以由技术人员预先将该物理印章的申领方的身份信息与该物理印章的物理印章信息进行绑定,并将绑定关系在上述区块链中进行存证,或者可以用户成功申领了该物理印章之后,将该用户的身份信息与该物理印章的物理印章信息进行绑定,并将绑定关系在上述区块链中进行存证。
具体地,该物理印章的申领方可以将待授权的使用方的身份信息与该物理印章的物理印章信息进行绑定,以向该使用方授权该物理印章的使用权限。
以如图7所示的使用登记界面为例,该物理印章的申领方使用的客户端可以在申领成功之后,向该物理印章的申领方输出该使用登记界面。该物理印章的申领方可以在该使用登记界面中输入被允许使用该物理印章的使用方的身份信息,并在完成输入后,点击该使用登记界面中的“确认”按钮。该客户端在检测到针对该“确认”按钮的点击操作时,可以将该物理印章的申领方输入的身份信息作为该物理印章的合法使用方的身份信息,并将该物理印章的物理印章信息与该物理印章的合法使用方的身份信息的绑定关系发布至上述区块链进行存证。
举例来说,假设区块链中存储的物理印章的物理印章信息与物理印章的合法使用方的身份信息的绑定关系如下表1所示:
表1
后续,如果上述物理印章使用方需要使用的物理印章的物理印章信息(即上述智能合约调用交易中的物理印章信息)为物理印章信息1,则该物理印章的合法使用方的身份信息包括:申领方1(即申领与物理印章信息1对应的物理印章的申领方)的身份信息;如果上述物理印章使用方需要使用的物理印章的物理印章信息(即上述智能合约调用交易中的物理印章信息)为物理印章信息2,则该物理印章的合法使用方的身份信息包括:申领方2(即申领与物理印章信息1对应的物理印章的申领方)的身份信息、使用方2A的身份信息、使用方2B的身份信息;以此类推。
在这种情况下,针对上述物理印章使用方需要使用的物理印章,可以先基于上述区块链中存储的物理印章信息与合法使用方的身份信息的绑定关系,在该绑定关系中查找与上述智能合约调用交易中的该物理印章的物理印章信息绑定的身份信息,并将查找到的该身份信息确定为该物理印章的合法使用方的身份信息;后续,可以基于确定的该物理印章的合法使用方的身份信息,对该智能合约调用交易中的上述物理印章使用方的身份信息进行验证,如果验证通过,则可以确定该物理印章使用方具有该物理印章的使用权限,否则可以确定该物理印章使用方不具有该物理印章的使用权限。
具体地,可以确定该智能合约调用交易中的该物理印章使用方的身份信息是否与任一该物理印章的合法使用方的身份信息匹配;如果是,则可以认为该物理印章使用方的身份信息验证通过;如果该物理印章使用方的身份信息与所有该物理印章的合法使用方的身份信息都不匹配,则可以认为该物理印章使用方的身份信息验证不通过。
如果上述物理印章使用方具有上述物理印章的使用权限,则可以进一步调用上述智能合约中的智能合约代码对应的物理印章使用逻辑,生成与该物理印章使用方对应的物理印章使用码。
然而,如果上述物理印章使用方不具有上述物理印章的使用权限,则可以生成与上述智能合约调用交易中的该物理印章使用方的身份信息对应的物理印章非法使用记录,并将生成的该物理印章非法使用记录发布至上述区块链进行存证;或者,也可以将生成的该物理印章非法使用记录发布至与该区块链跨链对接的另一用于存证司法数据的区块链(称为司法链)进行存证。
其中,该物理印章非法使用记录中可以记载该物理印章使用方的身份信息(即非法使用该物理印章的使用方的身份信息)、该物理印章的物理印章信息、非法使用时刻、非法使用地点(例如:非法使用该物理印章的使用方上传的定位位置信息)等信息;具体可以由技术人员根据实际需求预先设置。
在示出的一种实施方式中,在进一步调用上述智能合约中的智能合约代码对应的物理印章使用逻辑,生成与上述物理印章使用方对应的物理印章使用码之前,可以先调用该智能合约中的智能合约代码对应的使用确认逻辑,指示该物理印章的申领方针对该物理印章进行使用确认,并在获取到该申领方针对该物理印章的使用确认结果之后,调用该智能合约中的智能合约代码对应的物理印章使用逻辑,生成与上述物理印章使用方对应的物理印章使用码。
进一步地,在示出的一种实施方式中,参考前述的智能合约的事件机制,上述智能合约可以生成与上述物理印章的申领方对应的事件(称为使用确认事件);其中,该使用确认事件用于指示该物理印章的申领方对该物理印章进行使用确认。
在这种情况下,与由上述使用确认事件指示的上述申领方对应的客户端在获取到该使用确认事件时,可以响应于该使用确认事件,提示该申领方对上述物理印章进行使用确认,例如:该申领方使用的客户端可以响应于该使用确认事件,将上述物理印章使用方的身份信息和该物理印章的物理印章信息展示给该申领方,由该申领方通过该客户端,基于这些信息对该物理印章进行使用确认。
具体地,可以将该使用确认事件记录至上述智能合约调用交易的交易日志或者上述智能合约的智能合约日志,存储在上述区块链中。与该申领方对应的客户端可以通过对该区块链中存储的该交易日志或者该智能合约日志进行监听,获取到该使用确认事件,并响应于该使用确认事件,提示该申领方对该物理印章进行使用确认。或者,与该申领方对应的客户端可以向部署在该区块链中的节点设备中的作为事件通知中心的SDK订阅该使用确认事件;该SDK在检测到生成了该使用确认事件时,可以将该使用确认事件发送给该客户端,使该客户端可以获取到该使用确认事件,并响应于该使用确认事件,提示该申领方对该物理印章进行使用确认。
在示出的一种实施方式中,在由上述物理印章使用方将上述物理印章使用码写入至待签章的文件中的签章区域,并在该签章区域加盖该物理印章之后,与该物理印章使用方对应的客户端可以调用图像采集装置(例如:该客户端所在的终端设备上搭载的摄像装置;或者,部署在签章环境中的与该客户端保持通信连接的摄像设备;等等),采集与该文件对应的图像信息;其中,该图像信息可以包括该物理印章使用方写入的该物理印章使用码的图像信息,以及加盖的该物理印章的图像信息。后续,该客户端可以将采集到的该图像信息发布至上述区块链进行存证;或者,也可以将采集到的该图像信息发布至与该区块链跨链对接的司法链进行存证。
以如图8所示的图像采集界面为例,与该物理印章使用方对应的客户端可以由该物理印章使用方将该物理印章使用码写入至待签章的文件中的签章区域,并在该签章区域加盖该物理印章之后,向该物理印章使用方输出该图像采集界面。该物理印章使用方可以点击该图像采集界面中的“拍照”按钮,以由该客户端在检测到针对该图像采集界面中的“拍照”按钮的点击操作时,调用与该客户端对应的图像采集装置,采集与该文件对应的图像信息,并将采集到的该图像信息发布至该图像信息发布至上述区块链或者与该区块链跨链对接的司法链进行存证。
需要说明的是,在本实施例中,在进一步调用上述智能合约中的智能合约代码对应的物理印章使用逻辑,生成与上述物理印章使用方对应的物理印章使用码之前,可以先调用该智能合约中的智能合约代码对应的使用审批逻辑,确定与该物理印章使用方需要使用的物理印章对应的至少一个使用审批方,并指示这至少一个使用审批方针对该物理印章进行使用审批;如果这至少一个使用审批方针对该物理印章的使用审批通过,则可以进一步调用该智能合约中的智能合约代码对应的物理印章使用逻辑,生成与上述物理印章使用方对应的物理印章使用码。
其中,确定与该物理印章使用方需要使用的物理印章对应的至少一个使用审批方,并指示这至少一个使用审批方针对该物理印章进行使用审批,以及确定这至少一个使用审批方针对该物理印章的使用审批通过的具体实现方法可以参考如图9所示的实施例,本说明书在此不再赘述。
在上述技术方案中,可以由区块链中的节点设备响应于由物理印章使用方发起的使用物理印章的智能合约调用交易,调用部署在该区块链上的智能合约中的使用权限验证逻辑,确定该物理印章使用方是否具有该物理印章的使用权限,如果是,则可以进一步调用该智能合约中的物理印章使用逻辑,生成与该物理印章使用方对应的物理印章使用码,从而使与该物理印章使用方对应的客户端在获取到该物理印章使用码时,将该物理印章使用码展示给该物理印章使用方,由该物理印章使用方将该物理印章使用码写入至待签章的文件中的签章区域,并在该签章区域加盖该物理印章;
采用这样的方式,由于可以在物理印章使用方每次使用该物理印章时,随机生成一个物理印章使用码,以由该物理印使用方将该物理印章使用码写入至待签章的文件中的签章区域,并在写入的物理印章使用码上加盖物理印章,从而可以避免加盖的物理印章被伪造,保证物理印章使用的安全性和可靠性;此外,由于可以在对物理印章使用方的使用权限验证通过之后,针对物理使用方生成物理印章使用码,以允许该物理使用方使用物理印章,因此可以进一步保证物理印章使用的安全性和可靠性。
请继续参考图4,在如图4所示的基于区块链的物理印章使用系统中,在该区块链上可以部署智能合约。其中,该智能合约可以包括用于管理物理印章的智能合约代码;具体地,该智能合约的智能合约代码可以包括与使用审批逻辑对应的智能合约代码,以及与物理印章使用逻辑对应的智能合约代码,等等。在实际应用中,通过运行该智能合约中与使用审批逻辑对应的智能合约代码,可以实现使用审批逻辑,对物理印章使用方请求使用的物理印章进行使用审批;通过运行该智能合约中与物理印章使用逻辑对应的智能合约代码,可以实现物理印章使用逻辑,使物理印章使用方可以使用物理印章。
请参考图9,图9是本说明书一示例性实施例示出的另一种基于区块链的物理印章使用方法的流程图。
结合如图4所示的基于区块链的物理印章使用系统,上述基于区块链的物理印章使用方法可以应用于如图4所示的区块链中的节点设备;该基于区块链的物理印章使用方法可以包括以下步骤:
步骤902,接收与物理印章使用方对应的客户端发送的使用物理印章的智能合约调用交易;
步骤904,响应于所述智能合约调用交易,调用所述智能合约中的智能合约代码对应的使用审批逻辑,确定与所述物理印章对应的至少一个使用审批方,并指示所述至少一个使用审批方针对所述物理印章进行使用审批;
步骤906,如果所述至少一个使用审批方针对所述物理印章的使用审批通过,进一步调用所述智能合约中的智能合约代码对应的物理印章使用逻辑,生成与所述物理印章使用方对应的物理印章使用码,以使所述客户端在获取到所述物理印章使用码时,将所述物理印章使用码展示给所述物理印章使用方,由所述物理印章使用方将所述物理印章使用码写入至待签章的文件中的签章区域,并在所述签章区域加盖所述物理印章。
在本实施例中,在上述区块链上可以部署智能合约。需要使用物理印章的用户(称为物理印章使用方)可以通过与上述区块链中的节点设备建立连接的客户端发起针对该物理印章使用方需要使用的物理印章的请求;其中,该客户端即为与该物理印章使用方对应的客户端。
在一个例子中,与上述物理印章使用方对应的客户端可以将上述请求打包成用于调用上述区块链中部署的上述智能合约的交易(称为智能合约调用交易),并将该智能合约调用交易发送给该区块链中的节点设备。
在另一个例子中,与上述物理印章使用方对应的客户端可以将上述请求直接发送给上述区块链中的节点设备,并由该节点设备将该请求打包成用于调用该区块链上部署的上述智能合约的交易(称为智能合约调用交易)。
在本实施例中,上述区块链中的节点设备可以响应于上述智能合约调用交易,调用部署在该区块链中的上述智能合约中的智能合约代码对应的使用审批逻辑,即运行该智能合约中与使用审批逻辑对应的智能合约代码,确定与上述物理印章使用方需要使用的物理印章对应的至少一个使用审批方,并指示确定出的至少一个使用审批方针对该物理印章进行使用审批。
具体地,参考前述的在区块链中持久化存证数据的过程,上述客户端可以将上述智能合约调用交易发布至上述区块链进行存证;在这种情况下,与该客户端对接的该区块链中的节点设备可以先接收到该智能合约调用交易,再将该智能合约调用交易发送给该区块链中的其它节点设备。该区块链中的各台节点设备在接收到该智能合约调用交易时,可以对该智能合约调用交易进行共识处理。在达成共识之后,该区块链中的节点设备可以将该智能合约调用交易打包进区块,在该区块链中进行持久化存证。
对于打包进区块的该智能合约调用交易,该区块链中的节点设备可以响应于该智能合约调用交易,运行上述智能合约中与使用审批逻辑对应的智能合约代码,确定与上述物理印章使用方需要使用的物理印章对应的至少一个使用审批方,并指示确定出的至少一个使用审批方针对该物理印章进行使用审批。
在实际应用中,一方面,上述物理印章使用方具体可以代表在工作中需要使用物理印章的国家行政机关、事业单位、社会团体或者企业等;物理印章使用方可以是一个用户,也可以是多个用户组成的用户群体;与上述物理印章使用方需要使用的物理印章对应的使用审批方具体可以是具有该物理印章的审批权限的审批方,使用审批方可以仅有一个,也可以有多个;本说明书对此不作限制。
另一方面,由与上述物理印章对应的使用审批方针对该物理印章进行使用审批,即由该使用审批方确定是否允许上述物理印章使用方使用该物理印章,具体可以包括:由该使用审批方确定该物理印章是否被合理、合法地使用,以及该物理印章使用方是否具有该物理印章的使用权限,等等。
以一家企业为例,该企业本身可以作为物理印章使用方,使用作为该企业的公章的物理印章;在这种情况下,与该物理印章对应的使用审批方可以包括:该企业的全体法人。
具体地,上述企业可以通过与上述区块链中的节点设备建立连接的客户端发起使用该企业的公章的智能合约调用交易,例如:可以从该企业的全体员工中挑选出一名员工作为该企业的代表,通过该客户端发起该智能合约调用交易。该区块链中的节点设备可以响应于该智能合约调用交易,调用该智能合约中的智能合约代码对应的使用审批逻辑,将该企业的全体法人确定为使用审批方,并指示该使用审批方对该企业的公章(即作为物理印章使用方的该企业需要使用的物理印章)进行使用审批。
在本实施例中,在确定了上述至少一个使用审批方针对上述物理印章使用方需要使用的物理印章的使用审批通过的情况下,可以进一步调用上述智能合约中的智能合约代码对应的物理印章使用逻辑,即运行该智能合约中与物理印章使用逻辑对应的智能合约代码,生成与该物理印章使用方对应的物理印章使用码。后续,与该物理印章使用方对应的客户端可以获取到生成的该物理印章使用码,并将该物理印章使用码展示给该物理印章使用方,从而使该物理印章使用方可以将该物理印章使用码写入至待签章的文件中的签章区域,并在该签章区域加盖该物理印章。在这种情况下,加盖的该物理印章可以部分覆盖写入的该物理印章使用码,以防止写入的该物理印章使用码被人为篡改。
以如图6所示的实体文件为例,上述物理印章使用方在上述客户端输出的用户界面中查看到“852456”这一物理印章使用码之后,可以在该实体文件中的“签章区域”写入该物理印章使用码,并在“签章区域”加盖上述物理印章。
在示出的一种实施方式中,在生成了与上述物理印章使用方对应的物理印章使用码的情况下,参考前述的智能合约的事件机制,上述智能合约可以生成与该物理印章使用码对应的事件(称为物理印章使用事件);其中,该物理印章使用事件用于指示向物理印章使用方输出物理印章使用码。
在这种情况下,与上述物理印章使用方对应的客户端在获取到上述物理印章使用事件时,可以响应于该物理印章使用事件,将上述物理印章使用码展示给上述物理印章使用方。
具体地,可以将该物理印章使用事件记录至上述智能合约调用交易的交易日志或者上述智能合约的智能合约日志,存储在上述区块链中。上述客户端可以通过对该区块链中存储的该交易日志或者该智能合约日志进行监听,获取到该物理印章使用事件,并响应于该物理印章使用事件,将上述物理印章使用码展示给上述物理印章使用方。或者,上述客户端可以向部署在该区块链中的节点设备中的作为事件通知中心的SDK(SoftwareDevelopment Kit,软件开发工具包)订阅该物理印章使用事件;该SDK在检测到生成了该物理印章使用事件时,可以将该物理印章使用事件发送给该客户端,使该客户端可以获取到该物理印章使用事件,并响应于该物理印章使用事件,将上述物理印章使用码展示给上述物理印章使用方。
为了使与上述物理印章使用方需要使用的物理印章对应的至少一个使用审批方针对该物理印章进行使用审批,在示出的一种实施方式中,针对任意一个物理印章,可以预先将该物理印章的物理印章信息与该物理印章的至少一个使用审批方的绑定关系在上述区块链中进行存证。相应地,上述智能合约调用交易还可以包括该物理印章的物理印章信息。
在实际应用中,对于某个使用审批方而言,可以由该使用审批方的身份信息指代该使用审批方;在这种情况下,上述区块链中存证的可以是物理印章信息与至少一个使用审批方的身份信息的绑定关系。
需要说明的是,上述物理印章信息与至少一个使用审批方的绑定关系具体可以存储在上述智能合约的合约账户的存储空间中,即可以由该智能合约维护该绑定关系。或者,该绑定关系也可以存储在其他智能合约的合约账户的存储空间中;该智能合约可以通过调用其他智能合约,获取到该绑定关系。
在实际应用中,一方面,对于某个物理印章而言,该物理印章的物理印章信息可以包括用于唯一表示该物理印章的信息,例如:该物理印章的式样图像;或者,篆刻在该物理印章上的印章编号;等等;该物理印章的合法使用方可以是该物理印章的申领方,也可以是由该物理印章的申领方在成功申领了该物理印章之后,授权了该物理印章的使用权限的使用方;本说明书对此不作限制。
另一方面,对于物理印章而言,不同类型的物理印章的使用审批方可以不同;其中,物理印章的类型可以包括:企业公章、财务章、发票章、合同章、法人章等;与各个类型的物理印章对应的使用审批方可以由技术人员根据实际需求预先设置,例如:与企业的公章对应的使用审批方可以包括该企业的全体法人。
举例来说,假设区块链中存储的物理印章的物理印章信息与物理印章的使用审批方的对应关系如下表1所示:
表1
后续,如果上述物理印章使用方需要使用的物理印章的物理印章信息(即上述智能合约调用交易中的物理印章信息)为物理印章信息1,则可以将使用审批方A确定为与该物理印章对应的一个使用审批方;如果上述物理印章使用方需要使用的物理印章的物理印章信息(即上述智能合约调用交易中的物理印章信息)为物理印章信息2,则可以将使用审批方A和使用审批方B确定为与该物理印章对应的两个使用审批方;以此类推。
在这种情况下,针对上述物理印章使用方需要使用的物理印章,可以基于上述区块链中存储的物理印章信息与使用审批方的对应关系,在该对应关系中查找与上述智能合约调用交易中的该物理印章的物理印章信息对应的使用审批方,并将查找到的使用审批方确定为与该物理印章对应的至少一个使用审批方;后续,可以指示确定出的至少一个使用审批方针对该物理印章进行使用审批。
在示出的一种实施方式中,参考前述的智能合约的事件机制,上述智能合约在确定了与上述物理印章使用方需要使用的物理印章对应的至少一个使用审批方的情况下,可以生成与这至少一个使用审批方对应的事件(称为使用审批事件);其中,该使用审批事件用于指示这至少一个使用审批方针对该物理印章进行使用审批。
在这种情况下,对于由上述使用审批事件指示的任意一个使用审批方而言,与该使用审批方对应的客户端在获取到该使用审批事件时,可以响应于该使用审批事件,提示该使用审批方针对上述物理印章进行使用审批,例如:该使用审批方使用的客户端可以响应于该使用审批事件,将上述物理印章使用方的身份信息和该物理印章的物理印章信息展示给该使用审批方,由该使用审批方通过该客户端,基于这些信息针对该物理印章进行使用审批。
具体地,可以将该使用审批事件记录至上述智能合约调用交易的交易日志或者上述智能合约的智能合约日志,存储在上述区块链中。与该使用审批方对应的客户端可以通过对该区块链中存储的该交易日志或者该智能合约日志进行监听,获取到该使用审批事件,并响应于该使用审批事件,提示该使用审批方针对上述物理印章进行使用审批。或者,与该使用审批方对应的客户端可以向部署在该区块链中的节点设备上的作为事件通知中心的SDK订阅该使用审批事件;该SDK在检测到生成了该使用审批事件时,可以将该使用审批事件发送给该客户端,使该客户端可以获取到该使用审批事件,并响应于该使用审批事件,提示该使用审批方针对上述物理印章进行使用审批。
在实际应用中,可以由该使用审批方使用其用户账户的账户名和密码在与该使用审批方对应的客户端上进行登录,并由该客户端或该区块链中的节点设备根据该区块链中存储的用户账户的账户名和密码的对应关系,确定该使用审批方在该客户端上输入的账户名和密码是否合法。如果是,则可以由该客户端响应于获取到的上述使用审批事件,将上述物理印章使用方的身份信息和上述物理印章的物理印章信息展示给该使用审批方,使该使用审批方可以对该物理印章进行使用审批。
在示出的一种实施方式中,可以调用上述智能合约中的智能合约代码对应的使用管理逻辑,即运行该智能合约中与使用管理逻辑对应的智能合约代码,获取与上述物理印章对应的至少一个使用审批方针对该物理印章进行使用审批得到的使用审批结果,并基于获取到的该使用审批结果确定这至少一个使用审批方针对该物理印章的使用审批是否通过。
具体地,对于上述至少一个使用审批方中的任意一个使用审批方而言,该使用审批方在针对该物理印章进行使用审批之后,可以通过Oracle预言机,将得到的使用审批结果发送给上述智能合约。在这种情况下,可以运行该智能合约中与使用管理逻辑对应的智能合约代码,通过该Oracle预言机,接收该使用审批结果,并基于接收到的该使用审批结果确定该使用审批方针对该物理印章的使用审批是否通过。
或者,对于上述至少一个使用审批方中的任意一个使用审批方而言,该使用审批方在针对该物理印章进行使用审批之后,可以将得到的使用审批结果发布至该区块链进行存证。在这种情况下,可以运行该智能合约中与使用管理逻辑对应的智能合约代码,通过对该区块链中存储的数据进行监听,获取该使用审批结果,并基于获取到的该使用审批结果确定该使用审批方针对该物理印章的使用审批是否通过。
举例来说,该使用审批方在针对该物理印章的使用审批通过时,可以生成指示审批通过的使用审批结果,并通过Oracle预言机,将该使用审批结果发送给该智能合约;该智能合约在通过该Oracle预言机,接收到该使用审批结果时,可以确定该使用审批方针对该物理印章的使用审批通过。
在另一个例子中,该使用审批方在针对该物理印章的使用审批不通过时,可以生成指示审批不通过的使用审批结果,并通过Oracle预言机,将该使用审批结果发送给该智能合约;该智能合约在通过该Oracle预言机,接收到该使用审批结果时,可以确定该使用审批方针对该物理印章的使用审批不通过。或者,该使用审批方在针对该物理印章的使用审批不通过时,可以不向该智能合约发送使用审批结果;该智能合约在未接收到由该使用审批方发送的使用审批结果时,可以确定该使用审批方针对该物理印章的使用审批不通过。
进一步地,在示出的一种实施方式中,还可以生成上述至少一个使用审批方针对上述物理印章的使用审批记录,并将生成的该使用审批记录发布至上述区块链进行存证;或者,也可以将生成的该使用审批记录发布至与该区块链跨链对接的司法链进行存证。
需要说明的是,如果与上述物理印章对应的使用审批方有且仅有一个,则可以在该使用审批方针对该物理印章的使用审批通过时,确定与该物理印章对应的至少一个使用审批方针对该物理印章的使用审批通过。如果与上述物理印章对应的使用审批方有多个,则可以在所有使用审批方针对该物理印章的使用审批都通过时,确定与该物理印章对应的至少一个使用审批方针对该物理印章的使用审批通过,或者可以在预设数量的使用审批方针对该物理印章的使用审批都通过时,确定与该物理印章对应的至少一个使用审批方针对该物理印章的使用审批通过;其中,该预设数量可以由技术人员根据实际需求预先设置。
举例来说,假设与该物理印章对应的使用审批方有5个,且由技术人员预先设置了需要3个使用审批方审批通过。在这种情况下,如果这5个使用审批方中的任意3个针对该物理印章的使用审批通过,则可以确定与该物理印章对应的5个使用审批方针对该物理印章的使用审批通过。
在示出的一种实施方式中,在由上述物理印章使用方将上述物理印章使用码写入至待签章的文件中的签章区域,并在该签章区域加盖该物理印章之后,与该物理印章使用方对应的客户端可以调用图像采集装置(例如:该客户端所在的终端设备上搭载的摄像装置;或者,部署在签章环境中的与该客户端保持通信连接的摄像设备;等等),采集与该文件对应的图像信息;其中,该图像信息可以包括该物理印章使用方写入的该物理印章使用码的图像信息,以及加盖的该物理印章的图像信息。后续,该客户端可以将采集到的该图像信息发布至上述区块链进行存证;或者,也可以将采集到的该图像信息发布至与该区块链跨链对接的司法链进行存证。
以如图8所示的图像采集界面为例,与该物理印章使用方对应的客户端可以由该物理印章使用方将该物理印章使用码写入至待签章的文件中的签章区域,并在该签章区域加盖该物理印章之后,向该物理印章使用方输出该图像采集界面。该物理印章使用方可以点击该图像采集界面中的“拍照”按钮,以由该客户端在检测到针对该图像采集界面中的“拍照”按钮的点击操作时,调用与该客户端对应的图像采集装置,采集与该文件对应的图像信息,并将采集到的该图像信息发布至该图像信息发布至上述区块链或者与该区块链跨链对接的司法链进行存证。
需要说明的是,在本实施例中,在调用上述智能合约中的智能合约代码对应的使用审批逻辑,确定与上述物理印章对应的至少一个使用审批方之前,可以先调用该智能合约中的智能合约代码对应的使用权限验证逻辑,确定上述物理印章使用方是否具有该物理印章的使用权限;如果是,则可以进一步调用该智能合约中的智能合约代码对应的使用审批逻辑,确定与该物理印章对应的至少一个使用审批方,并指示确定出的至少一个使用审批方针对该物理印章进行使用审批。
其中,确定该物理印章使用方是否具有该物理印章的使用权限的具体实现方法可以参考如图5所示的实施例,本说明书在此不再赘述。
在上述技术方案中,可以由区块链中的节点设备响应于由物理印章使用方发起的使用物理印章的智能合约调用交易,调用部署在该区块链上的智能合约中的使用审批逻辑,确定与该物理印章对应的至少一个使用审批方,并指示至少一个使用审批方针对该物理印章进行使用审批,如果至少一个使用审批方针对该物理印章的使用审批通过,则可以进一步调用该智能合约中的物理印章使用逻辑,生成与该物理印章使用方对应的物理印章使用码,从而使与该物理印章使用方对应的客户端在获取到该物理印章使用码时,将该物理印章使用码展示给该物理印章使用方,由该物理印章使用方将该物理印章使用码写入至待签章的文件中的签章区域,并在该签章区域加盖该物理印章;
采用这样的方式,由于可以在物理印章使用方每次使用该物理印章时,随机生成一个物理印章使用码,以由该物理印使用方将该物理印章使用码写入至待签章的文件中的签章区域,并在写入的物理印章使用码上加盖物理印章,从而可以避免加盖的物理印章被伪造,保证物理印章使用的安全性和可靠性;此外,由于可以在对物理印章的使用审批通过之后,针对物理使用方生成物理印章使用码,以允许该物理使用方使用该物理印章,因此可以进一步保证物理印章使用的安全性和可靠性。
请参考图10,图10是本说明书一示例性实施例示出的另一种基于区块链的物理印章使用系统的示意图。
在如图10所示的基于区块链的物理印章使用系统中,一方面,Baas(Blockchainas aService)平台可以通过与该区块链中的节点设备耦接,接入该区块链;也即,BaaS平台可以将数据发送给该节点设备,由该节点设备将该数据在该区块链中进行持久化存证。另一方面,在该区块链上可以部署智能合约。其中,该智能合约可以包括用于管理物理印章的智能合约代码;具体地,该智能合约的智能合约代码可以包括与物理印章使用逻辑对应的智能合约代码等。在实际应用中,通过运行该智能合约中与物理印章使用逻辑对应的智能合约代码,可以实现物理印章使用逻辑,使物理印章使用方可以使用物理印章。
需要说明的是,创建和调用智能合约的具体流程可以参考前述智能合约的创建和调用流程,本说明书在此不再赘述。
在具体实现时,用户可以通过与Baas平台建立连接的客户端发起针对该用户需要使用的物理印章的物理印章使用请求。Baas平台在接收到该物理印章使用请求时,可以先确定该用户是否具有该物理印章的使用权限,如果是,再向该区块链中的节点设备发送用于调用该区块链上部署的上述智能合约的交易。该区块链中的节点设备在接收到该交易时,可以将该交易发送给该区块链中的其他节点设备,以对该交易进行共识处理,并在该交易共识通过后,执行该智能合约中的智能合约代码对应的逻辑,从而使物理印章使用方可以使用物理印章。
在实际应用中,上述客户端可以部署在电子设备上,该电子设备可以是服务器、计算机、手机、平板设备、笔记本电脑、掌上电脑(PDAs,Personal Digital Assistants)等;上述Baas平台可以部署在电子设备上,该电子设备可以是服务器、计算机等;作为节点设备加入至上述区块链的电子设备可以是服务器、计算机、手机、平板设备、笔记本电脑、掌上电脑等;本说明书对此不作限制。
请参考图11,图11是本说明书一示例性实施例示出的另一种基于区块链的物理印章使用方法的流程图。
结合如图10所示的基于区块链的物理印章使用系统,上述基于区块链的物理印章使用方法可以应用于如图10所示的Baas平台;该基于区块链的物理印章使用方法可以包括以下步骤:
步骤1101,接收与物理印章使用方对应的客户端发送的针对物理印章的物理印章使用请求;
步骤1102,响应于所述物理印章使用请求,确定所述物理印章使用方是否具有所述物理印章的使用权限;
步骤1103,如果是,则向所述节点设备发送智能合约调用交易,以使所述节点设备响应于所述智能合约调用交易,调用所述智能合约中的智能合约代码对应的物理印章使用逻辑,生成与所述物理印章使用方对应的物理印章使用码,以使所述客户端在获取到所述物理印章使用码时,将所述物理印章使用码展示给所述物理印章使用方,由所述物理印章使用方将所述物理印章使用码写入至待签章的文件中的签章区域,并在所述签章区域加盖所述物理印章。
在示出的一种实施方式中,所述BaaS平台中存储了所述物理印章的物理印章信息与所述物理印章的合法使用方的身份信息的绑定关系;所述物理印章使用请求包括所述物理印章的物理印章信息,以及所述物理印章使用方的身份信息;所述确定所述物理印章使用方是否具有所述物理印章的使用权限,包括:基于所述BaaS平台中存储的与所述物理印章的物理印章信息绑定的所述物理印章的合法使用方的身份信息,对所述物理印章使用请求中的所述物理印章使用方的身份信息进行验证;如果对所述物理印章使用请求中的所述物理印章使用方的身份信息的验证通过,则确定所述物理印章使用方具有所述物理印章的使用权限。
在示出的一种实施方式中,所述方法还包括:如果确定所述物理印章使用方不具有所述物理印章的使用权限,则生成与所述物理印章使用方的身份信息对应的物理印章非法使用记录;将所述数字印章非法使用记录发布至所述区块链进行存证;或者,将所述数字印章非法使用记录发布至与所述区块链跨链对接的司法链进行存证。
在示出的一种实施方式中,所述身份信息包括所述物理印章的合法使用方持有的CA证书中的公钥。
在示出的一种实施方式中,所述身份信息还包括以下示出的一个或者多个的组合:所述物理印章的合法使用方的身份标识;所述物理印章的合法使用方的区块链账户标识;所述物理印章的合法使用方持有的物理印章的图像信息。
在示出的一种实施方式中,所述物理印章的合法使用方为所述物理印章的申领方。
在示出的一种实施方式中,在向所述节点设备发送智能合约调用交易之前,所述方法还包括:指示所述物理印章的申领方针对所述物理印章进行使用确认,并在获取到所述物理印章的申领方针对所述物理印章的使用确认结果之后,进一步向所述节点设备发送智能合约调用交易。
在示出的一种实施方式中,所述方法还包括:接收与物理印章使用方对应的客户端发送的与所述文件对应的图像信息;其中,所述图像信息为所述客户端在由所述物理印章使用方将所述物理印章使用码写入至所述文件中的签章区域,并在所述签章区域加盖所述物理印章之后,调用图像采集装置采集到的与所述文件对应的图像信息;将所述图像信息发布至所述区块链进行存证;或者,将所述图像信息发布至与所述区块链跨链对接的司法链进行存证。
在示出的一种实施方式中,在向所述节点设备发送智能合约调用交易之前,所述方法还包括:确定与所述物理印章对应的至少一个使用审批方,并指示所述至少一个使用审批方针对所述物理印章进行使用审批;如果所述至少一个使用审批方针对所述物理印章的使用审批通过,则向所述节点设备发送智能合约调用交易。
需要说明的是,由上述BaaS平台执行上述步骤1101至1103的具体实现方法可以参考如图5所示的基于区块链的物理印章申领方法中由该区块链中的节点设备执行上述步骤501至503的具体实现方法,本说明书在此不再赘述。
在实际应用中,BaaS平台可以通过向物理印章的申领方发送通知消息,指示该申领方针对该物理印章进行使用确认;该申领方可以将针对该物理印章的使用确认结果发送给BaaS平台,使BaaS平台可以获取到该使用确认结果。
BaaS平台还可以通过向至少一个使用审批方发送通知消息,指示至少一个使用审批方针对上述物理印章进行使用审批;至少一个销毁审批方可以将针对该物理印章的使用审批结果发送给BaaS平台,使BaaS平台可以获取到该使用审批结果。
在上述技术方案中,可以由Baas平台响应于由物理印章使用方发起的物理印章使用请求,确定该物理印章使用方是否具有该物理印章的使用权限,如果是,则可以进一步向区块链中的节点设备发送智能合约调用交易,以由该区块链中的节点设备调用该智能合约中的物理印章使用逻辑,生成与该物理印章使用方对应的物理印章使用码,从而使与该物理印章使用方对应的客户端在获取到该物理印章使用码时,将该物理印章使用码展示给该物理印章使用方,由该物理印章使用方将该物理印章使用码写入至待签章的文件中的签章区域,并在该签章区域加盖该物理印章;
采用这样的方式,由于可以在物理印章使用方每次使用该物理印章时,随机生成一个物理印章使用码,以由该物理印使用方将该物理印章使用码写入至待签章的文件中的签章区域,并在写入的物理印章使用码上加盖物理印章,从而可以避免加盖的物理印章被伪造,保证物理印章使用的安全性和可靠性;此外,由于可以在对物理印章使用方的使用权限验证通过之后,针对物理使用方生成物理印章使用码,以允许该物理使用方使用物理印章,因此可以进一步保证物理印章使用的安全性和可靠性。
请继续参考图10,在具体实现时,用户可以通过与Baas平台建立连接的客户端发起针对该用户需要使用的物理印章的物理印章使用请求。Baas平台在接收到该物理印章使用请求时,可以先确定与该物理印章对应的至少一个使用审批方,并指示至少一个使用审批方针对该物理印章进行使用审批,再在至少一个使用审批方针对该物理印章的使用审批通过时,向该区块链中的节点设备发送用于调用该区块链上部署的上述智能合约的交易。该区块链中的节点设备在接收到该交易时,可以将该交易发送给该区块链中的其他节点设备,以对该交易进行共识处理,并在该交易共识通过后,执行该智能合约中的智能合约代码对应的逻辑,从而使物理印章使用方可以使用物理印章。
请参考图12,图12是本说明书一示例性实施例示出的另一种基于区块链的物理印章使用方法的流程图。
结合如图10所示的基于区块链的物理印章使用系统,上述基于区块链的物理印章使用方法可以应用于如图10所示的Baas平台;该基于区块链的物理印章使用方法可以包括以下步骤:
步骤1201,接收与物理印章使用方对应的客户端发送的针对物理印章的物理印章使用请求;
步骤1202,响应于所述物理印章使用请求,确定与所述物理印章对应的至少一个使用审批方,并指示所述至少一个使用审批方针对所述物理印章进行使用审批;
步骤1203,如果所述至少一个使用审批方针对所述物理印章的使用审批通过,则向所述节点设备发送智能合约调用交易,以使所述节点设备响应于所述智能合约调用交易,调用所述智能合约中的智能合约代码对应的物理印章使用逻辑,生成与所述物理印章使用方对应的物理印章使用码,以使所述客户端在获取到所述物理印章使用码时,将所述物理印章使用码展示给所述物理印章使用方,由所述物理印章使用方将所述物理印章使用码写入至待签章的文件中的签章区域,并在所述签章区域加盖所述物理印章。
在示出的一种实施方式中,所述BaaS平台中存储了所述物理印章的物理印章信息与所述物理印章的至少一个使用审批方的的对应关系;所述物理印章使用请求包括所述物理印章的物理印章信息;所述确定与所述物理印章对应的至少一个使用审批方,包括:基于所述BaaS平台中存储的所述对应关系,将与所述物理印章使用请求中的所述物理印章的物理印章信息对应的所述物理印章的至少一个使用审批方,确定为与所述物理印章对应的至少一个使用审批方。
在示出的一种实施方式中,在向所述节点设备发送智能合约调用交易之前,所述方法还包括:获取所述至少一个使用审批方针对所述物理印章的使用审批结果,并基于所述使用审批结果确定所述至少一个使用审批方针对所述物理印章的使用审批是否通过。
在示出的一种实施方式中,所述方法还包括:生成所述至少一个使用审批方针对所述物理印章的使用审批记录;将所述使用审批记录发布至所述区块链进行存证;或者,将所述使用审批记录发布至与所述区块链跨链对接的司法链进行存证。
在示出的一种实施方式中,所述方法还包括:接收与物理印章使用方对应的客户端发送的与所述文件对应的图像信息;其中,所述图像信息为所述客户端在由所述物理印章使用方将所述物理印章使用码写入至所述文件中的签章区域,并在所述签章区域加盖所述物理印章之后,调用图像采集装置采集到的与所述文件对应的图像信息;将所述图像信息发布至所述区块链进行存证;或者,将所述图像信息发布至与所述区块链跨链对接的司法链进行存证。
在示出的一种实施方式中,在向所述节点设备发送智能合约调用交易之前,所述方法还包括:确定所述物理印章使用方是否具有所述物理印章的使用权限;如果是,则向所述节点设备发送智能合约调用交易。
需要说明的是,由上述BaaS平台执行上述步骤1201至1203的具体实现方法可以参考如图9所示的基于区块链的物理印章申领方法中由该区块链中的节点设备执行上述步骤901至903的具体实现方法,本说明书在此不再赘述。
在实际应用中,BaaS平台可以通过向至少一个使用审批方发送通知消息,指示至少一个使用审批方针对上述物理印章进行使用审批;至少一个销毁审批方可以将针对该物理印章的使用审批结果发送给BaaS平台,使BaaS平台可以获取到该使用审批结果。
在上述技术方案中,可以由Baas平台响应于由物理印章使用方发起的物理印章使用请求,确定与该物理印章对应的至少一个销毁审批方,并指示至少一个销毁审批方针对该物理印章进行销毁审批,如果至少一个销毁审批方针对该物理印章的销毁审批通过,则可以进一步向区块链中的节点设备发送智能合约调用交易,以由该区块链中的节点设备调用该智能合约中的物理印章使用逻辑,生成与该物理印章使用方对应的物理印章使用码,从而使与该物理印章使用方对应的客户端在获取到该物理印章使用码时,将该物理印章使用码展示给该物理印章使用方,由该物理印章使用方将该物理印章使用码写入至待签章的文件中的签章区域,并在该签章区域加盖该物理印章;
采用这样的方式,由于可以在物理印章使用方每次使用该物理印章时,随机生成一个物理印章使用码,以由该物理印使用方将该物理印章使用码写入至待签章的文件中的签章区域,并在写入的物理印章使用码上加盖物理印章,从而可以避免加盖的物理印章被伪造,保证物理印章使用的安全性和可靠性;此外,由于可以在对物理印章的使用审批通过之后,针对物理使用方生成物理印章使用码,以允许该物理使用方使用该物理印章,因此可以进一步保证物理印章使用的安全性和可靠性。
与前述基于区块链的物理印章使用方法的实施例相对应,本说明书还提供了基于区块链的物理印章使用装置的实施例。
本说明书基于区块链的物理印章使用装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图13所示,为本说明书基于区块链的物理印章使用装置所在电子设备的一种硬件结构图,除了图13所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该基于区块链的物理印章使用的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图14,图14是本说明书一示例性实施例示出的一种基于区块链的物理印章使用装置的框图。该基于区块链的物理印章使用装置140可以应用于如图13所示的电子设备,该电子设备可以作为所述区块链中的节点设备;所述区块链中部署了用于管理物理印章的智能合约;该装置140可以包括:
接收模块1401,接收与物理印章使用方对应的客户端发送的使用物理印章的智能合约调用交易;
验证模块1402,响应于所述智能合约调用交易,调用所述智能合约中的智能合约代码对应的使用权限验证逻辑,确定所述物理印章使用方是否具有所述物理印章的使用权限;
使用模块1403,如果是,则进一步调用所述智能合约中的智能合约代码对应的物理印章使用逻辑,生成与所述物理印章使用方对应的物理印章使用码,以使所述客户端在获取到所述物理印章使用码时,将所述物理印章使用码展示给所述物理印章使用方,由所述物理印章使用方将所述物理印章使用码写入至待签章的文件中的签章区域,并在所述签章区域加盖所述物理印章。
请参考图15,图15是本说明书一示例性实施例示出的另一种基于区块链的物理印章使用装置的框图。该基于区块链的物理印章使用装置150可以应用于如图13所示的电子设备,该电子设备可以作为所述区块链中的节点设备;所述区块链中部署了用于管理物理印章的智能合约;该装置150可以包括:
接收模块1501,接收与物理印章使用方对应的客户端发送的使用物理印章的智能合约调用交易;
审批模块1502,响应于所述智能合约调用交易,调用所述智能合约中的智能合约代码对应的使用审批逻辑,确定与所述物理印章对应的至少一个使用审批方,并指示所述至少一个使用审批方针对所述物理印章进行使用审批;
使用模块1503,如果所述至少一个使用审批方针对所述物理印章的使用审批通过,则进一步调用所述智能合约中的智能合约代码对应的物理印章使用逻辑,生成与所述物理印章使用方对应的物理印章使用码,以使所述客户端在获取到所述物理印章使用码时,将所述物理印章使用码展示给所述物理印章使用方,由所述物理印章使用方将所述物理印章使用码写入至待签章的文件中的签章区域,并在所述签章区域加盖所述物理印章。
请参考图16,图16是本说明书一示例性实施例示出的另一种基于区块链的物理印章使用装置的框图。该基于区块链的物理印章使用装置160可以应用于如图13所示的电子设备,该电子设备可以作为与所述区块链中的节点设备对接的Baas平台;所述区块链中部署了用于管理物理印章的智能合约;该装置160可以包括:
接收模块1601,接收与物理印章使用方对应的客户端发送的针对物理印章的物理印章使用请求;
验证模块1602,响应于所述物理印章使用请求,确定所述物理印章使用方是否具有所述物理印章的使用权限;
使用模块1603,如果是,则向所述节点设备发送智能合约调用交易,以使所述节点设备响应于所述智能合约调用交易,调用所述智能合约中的智能合约代码对应的物理印章使用逻辑,生成与所述物理印章使用方对应的物理印章使用码,以使所述客户端在获取到所述物理印章使用码时,将所述物理印章使用码展示给所述物理印章使用方,由所述物理印章使用方将所述物理印章使用码写入至待签章的文件中的签章区域,并在所述签章区域加盖所述物理印章。
请参考图17,图17是本说明书一示例性实施例示出的另一种基于区块链的物理印章使用装置的框图。该基于区块链的物理印章使用装置170可以应用于如图13所示的电子设备,该电子设备可以作为与所述区块链中的节点设备对接的Baas平台;所述区块链中部署了用于管理物理印章的智能合约;该装置170可以包括:
接收模块1701,接收与物理印章使用方对应的客户端发送的针对物理印章的物理印章使用请求;
审批模块1702,响应于所述物理印章使用请求,确定与所述物理印章对应的至少一个使用审批方,并指示所述至少一个使用审批方针对所述物理印章进行使用审批;
使用模块1703,如果所述至少一个使用审批方针对所述物理印章的使用审批通过,则向所述节点设备发送智能合约调用交易,以使所述节点设备响应于所述智能合约调用交易,调用所述智能合约中的智能合约代码对应的物理印章使用逻辑,生成与所述物理印章使用方对应的物理印章使用码,以使所述客户端在获取到所述物理印章使用码时,将所述物理印章使用码展示给所述物理印章使用方,由所述物理印章使用方将所述物理印章使用码写入至待签章的文件中的签章区域,并在所述签章区域加盖所述物理印章。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。