本发明涉及区块链技术领域,尤其涉及一种区块链上交易的方法及装置。
背景技术:
当智能合约置于区块链上后,一个必须考虑的问题是对权限的管理问题。智能合约本身就是在区块链网络上运行的一串代码,因此智能合约里有很多应用程序编程接口(Application Programming Interface,API)。如何管理哪个API能在何时能被哪个用户使用是一个在区块链领域常被提及的问题。其中一个主流的解决方案是把用户权限写在被证书认证机构(Certification Authority,CA)认证过的数字证书里面,然后发给用户。当用户要对一个智能合约发起交易时,该用户会把认签过的交易及证书一起发给智能合约,智能合约会核对证书上的权限来决定是否继续运行。
然而,用户权限不是永恒不变的,在公钥基础设施(Public Key Infrastructure,PKI)体系中,证书的吊销列表会存储在一个中心管制系统中,如果区块链上的节点要验证一个证书是否有权限(验证证书的目的是确定是否准许某项交易的执行),区块链上的节点必须通过一个可信的机制从CA那里查询这个证书是否被吊销,这就使得每个交易发生时,均需要通过中心管制系统中得到最新证书吊销列表,以确定交易相关方是否具备交易的权限,使得交易操作繁琐、系统开销大。
技术实现要素:
本发明的目的在于提供一种区块链上交易的方法及装置,旨在解决区块链上的交易操作繁琐、系统开销大的问题。
为实现上述目的,本发明提供一种区块链上交易的方法,所述区块链上交易的方法包括:
S1,当证书认证机构将证书吊销清单发布到区块链上后,所述区块链同步所述证书吊销清单至所述区块链的各个节点;
S2,当所述节点上的智能合约接收到携带交易参数的交易请求后,访问所述区块链上的权限吊销系统,基于所述权限吊销系统、所述交易参数及所述节点上的证书吊销清单对所述交易请求的权限进行验证,根据验证结果响应或拒绝响应所述交易请求。
优选地,所述步骤S2包括:
S21,通过所述权限吊销系统对所述交易参数进行解析;
S22,当解析得到证书信息及证书权限时,分析所述证书信息是否属于所述证书吊销清单中的已吊销证书信息,以对所述交易请求的权限进行验证;
S23,若所述证书信息属于所述证书吊销清单中的已吊销证书信息,则拒绝响应所述交易请求;
S24,若所述证书信息属于所述证书吊销清单中的未吊销证书信息,则响应所述交易请求。
优选地,所述证书吊销清单中还记录有未吊销证书信息对应的各分权限是否被吊销的信息,则所述步骤S24还包括:
S241,将未吊销证书信息对应的各分权限分别与所述证书吊销清单中各未吊销证书信息对应的证书权限进行比对;
S242,若有分权限未被吊销,则响应所述交易请求;
S243,若各分权限均被吊销,则拒绝响应所述交易请求。
优选地,所述步骤S21之后,还包括:
若解析后未得到所述证书权限,则拒绝响应所述交易请求。
为实现上述目的,本发明还提供一种区块链上交易的装置,所述区块链上交易的装置包括:
同步模块,用于当证书认证机构将证书吊销清单发布到区块链上后,所述区块链同步所述证书吊销清单至所述区块链的各个节点;
交易模块,用于当所述节点上的智能合约接收到携带交易参数的交易请求后,访问所述区块链上的权限吊销系统,基于所述权限吊销系统、所述交易参数及所述节点上的证书吊销清单对所述交易请求的权限进行验证,根据验证结果响应或拒绝响应所述交易请求。
优选地,所述交易模块包括:
访问单元,用于通过所述权限吊销系统对所述交易参数进行解析;
验证单元,用于当解析得到证书信息及证书权限时,分析所述证书信息是否属于所述证书吊销清单中的已吊销证书信息,以对所述交易请求的权限进行验证;
第一处理单元,用于若所述证书信息属于所述证书吊销清单中的已吊销证书信息,则拒绝响应所述交易请求;
第二处理单元,用于若所述证书信息属于所述证书吊销清单中的未吊销证书信息,则响应所述交易请求。
优选地,所述证书吊销清单中还记录有未吊销证书信息对应的各分权限是否被吊销的信息,所述第二处理单元还包括:
比对子单元,用于将未吊销证书信息对应的各分权限分别与所述证书吊销清单中各未吊销证书信息对应的证书权限进行比对;
第三处理子单元,用于若有分权限未被吊销,则响应所述交易请求;
第四处理子单元,用于若各分权限均被吊销,则拒绝响应所述交易请求。
优选地,所述交易模块进一步包括:第五处理单元,用于若解析后未得到所述证书权限,则拒绝响应所述交易请求。
本发明的有益效果是:本发明的证书吊销清单发布到区块链后,区块链将其同步至区块链的各个节点,即将证书吊销清单直接存储在区块链上,当智能合约接收到交易请求时,可以直接在区块链上实时获取证书吊销清单,根据所访问的权限吊销系统、交易请求中携带的交易参数与证书吊销清单对该交易请求的权限进行验证,不需要通过一个可信的机制从CA中查询交易的权限,使得交易操作简便快捷,减轻系统开销。
附图说明
图1为本发明区块链上交易的方法一实施例的流程示意图;
图2为图1所示步骤S2的细化流程示意图;
图3为图2所示步骤S24的细化流程示意图;
图4为本发明区块链上交易的装置一实施例的结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,图1为本发明区块链上交易的方法一实施例的流程示意图,该区块链上交易的方法包括以下步骤:
步骤S1,当证书认证机构将证书吊销清单发布到区块链上后,所述区块链同步所述证书吊销清单至所述区块链的各个节点;
区块链(Blockchain)是由一串使用密码学方法产生的数据块组成的,每个区块都包含了上一个区块的哈希值(hash),从创始区块(genesis block)开始连接到当前区块,形成块链。区块链也是由节点参与的分布式数据库系统,本质上是一个去中心化的数据库账本,记载所有的交易记录,以比特币的区块链为例,每一个参与交易者都是区块网络的节点,每个节点都有一份完整的公共账簿备份,上面记载着自比特币诞生以来所有的交易信息。任何一个节点发起交易行为都需要将相关信息传递到区块网络中的每一个节点,从而所有节点上的账簿都能验证这一笔交易行为并准确更新。此外,账簿是分区块存储的,随着交易的增加,新的数据块会附加到已存在的链上,形成链状结构。
当证书认证机构将证书吊销清单发布到区块链上后,区块链可以利用自身的对等(Peer-to-peer,P2P)网络及共识算法将证书吊销清单同步到区块链的各个节点上,即将证书吊销清单传播至区块链的各个节点上。其中,证书吊销清单中保存有被证书认证机构吊销的各个已吊销证书信息及未被吊销的未吊销证书信息,如果证书信息已经被吊销,则没有权限执行对应的智能合约,即没有权限进行交易,如果证书信息未被吊销,即证书吊销清单中没有该证书信息,则有权限执行对应的智能合约,即有权限进行交易。
另外,证书吊销清单中的已吊销证书信息可能会发生变化,此时,证书认证机构会发布一携带更新后的证书吊销清单至区块链,区块链再将存储的证书吊销清单替换为更新后的证书吊销清单,或者根据更新后的证书吊销清单更改存储的证书吊销清单。
步骤S2,当所述节点上的智能合约接收到携带交易参数的交易请求后,访问所述区块链上的权限吊销系统,基于所述权限吊销系统、所述交易参数及所述节点上的证书吊销清单对所述交易请求的权限进行验证,根据验证结果响应或拒绝响应所述交易请求。
本实施例中,区块链上的每个节点都会存储运行区块链上的智能合约,一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。当一个携带交易参数的交易请求传到区块链的节点上时,这个交易参数会被记录到该节点对应的事务记录上并同时传给与该交易参数对应的智能合约去运行,并由该交易参数对应的智能合约上的代码对智能合约的自身数据进行更新。
其中,交易参数包括证书信息及对应的证书权限,证书信息包括证书颁发机构、证书序列号、证书有效期、证书所有者的用户信息等。
当节点上的智能合约接收到携带交易参数的交易请求后,通过访问区块链上的权限吊销系统以获取交易参数中的证书信息及对应的证书权限,但该交易参数中有可能有证书权限也有可能没有证书权限。权限吊销系统用于处理相关的权限事宜,例如权限吊销系统可以执行对交易参数进行解析等。在对交易请求的权限进行验证时,如果能够从交易参数中获取到证书信息及证书权限,则将证书信息与智能合约对应的节点上的证书吊销清单中的已吊销证书信息进行比对,以验证该证书信息是否为已吊销证书信息,如果该证书信息是已吊销证书信息,则该交易请求无权限进行交易,如果该证书信息不是已吊销证书信息,则该交易请求有权限进行交易。
与现有技术相比,本实施例的证书吊销清单发布到区块链后,区块链将其同步至区块链的各个节点,即将证书吊销清单直接存储在区块链上,当智能合约接收到交易请求时,可以从直接在区块链上实时获取证书吊销清单,根据所访问的权限吊销系统、交易请求中携带的交易参数与证书吊销清单对该交易请求的权限进行验证,不需要通过一个可信的机制从CA中查询交易的权限,使得交易操作简便快捷,减轻系统开销。
在一优选的实施例中,如图2所示,在上述图1的实施例的基础上,上述步骤S2进一步包括:
S21,通过所述权限吊销系统对所述交易参数进行解析;
S22,当解析得到证书信息及证书权限时,分析所述证书信息是否属于所述证书吊销清单中的已吊销证书信息,以对所述交易请求的权限进行验证;
S23,若所述证书信息属于所述证书吊销清单中的已吊销证书信息,则拒绝响应所述交易请求;
S24,若所述证书信息属于所述证书吊销清单中的未吊销证书信息,则响应所述交易请求。
本实施例中,如果区块链的节点上运行或存储的智能合约接收到携带交易参数的交易请求后,可以通过预先确定的地址访问该区块链链上的权限吊销系统以对该交易请求的权限进行校验,具体地,在访问该区块链链上的权限吊销系统时,由权限吊销系统对交易参数进行解析,如果解析得到证书信息但未解析得到证书权限,则说明该交易请求无权限进行交易,智能合约拒绝该交易请求;如果解析得到证书信息及证书权限,则进一步分析证书信息是否属于证书吊销清单中的已吊销证书信息,具体地,可以将证书信息与证书吊销清单中的已吊销证书信息一一进行比对,以确定该证书信息是否属于吊销清单中的已吊销证书信息。若证书信息属于证书吊销清单中的已吊销证书信息,则该交易请求无权限进行交易,智能合约拒绝响应该交易请求;如果证书信息不属于证书吊销清单中的已吊销证书信息,则该交易请求有权限进行交易,智能合约响应该交易请求。
另外,如果从交易参数中只能解析得到证书信息,但解析后未能够得到证书权限,则该交易请求也无权限进行交易。
本实施例在对交易请求的权限进行验证时,通过访问区块链上的权限吊销系统,由权限吊销系统对交易参数进行解析,在解析得到证书信息及证书权限时,通过分析证书信息是否属于证书吊销清单中的已吊销证书信息来对交易请求的权限进行验证,能够提高交易数据处理的速率。
在一优选的实施例中,如图3所示,在上述图2的实施例的基础上,证书吊销清单中还可以记录有未吊销证书信息对应的各分权限是否被吊销的信息,在该实施例中,若检测到所述证书信息不属于所述证书吊销清单中的已吊销证书信息,则所述步骤S24还可以进一步包括如下步骤:
步骤S241,将未吊销证书信息对应的各分权限分别与所述证书吊销清单中各未吊销证书信息对应的证书权限进行比对,确定所述分权限是否均已被吊销。若是,则进入步骤S242,否则,执行步骤S243。
步骤S242,响应所述交易请求。
步骤S243,拒绝响应所述交易请求。
本实施例中,证书吊销清单中记录有未吊销证书信息对应的各分权限是否被吊销的信息,即记录各分权限已吊销或者未吊销的信息。
本实施例中,一个证书信息对应多个分权限,为了使得用户在部分分权限被吊销后,还可以通过证书信息在区块链上执行其他证书权限事务,本实施例在证书吊销清单中记录了证书信息下对应的各分权限是否被吊销的信息,如果证书信息未被吊销,则进一步将未吊销证书信息对应的各分权限分别与证书吊销清单中各未吊销证书信息对应的证书权限进行比对,若有分权限未吊销,则响应交易请求,若各分权限均已吊销,则拒绝响应交易请求。
如图4所示,图4为本发明区块链上交易的装置一实施例的结构示意图,该区块链上交易的装置包括:
同步模块101,用于当证书认证机构将证书吊销清单发布到区块链上后,所述区块链同步所述证书吊销清单至所述区块链的各个节点;
区块链(Blockchain)是由一串使用密码学方法产生的数据块组成的,每个区块都包含了上一个区块的哈希值(hash),从创始区块(genesis block)开始连接到当前区块,形成块链。区块链也是由节点参与的分布式数据库系统,本质上是一个去中心化的数据库账本,记载所有的交易记录,以比特币的区块链为例,每一个参与交易者都是区块网络的节点,每个节点都有一份完整的公共账簿备份,上面记载着自比特币诞生以来所有的交易信息。任何一个节点发起交易行为都需要将相关信息传递到区块网络中的每一个节点,从而所有节点上的账簿都能验证这一笔交易行为并准确更新。此外,账簿是分区块存储的,随着交易的增加,新的数据块会附加到已存在的链上,形成链状结构。
当证书认证机构将证书吊销清单发布到区块链上后,区块链可以利用自身的对等(Peer-to-peer,P2P)网络及共识算法将证书吊销清单同步到区块链的各个节点上,即将证书吊销清单传播至区块链的各个节点上。其中,证书吊销清单中保存有被证书认证机构吊销的各个已吊销证书信息及未被吊销的未吊销证书信息,如果证书信息已经被吊销,则没有权限执行对应的智能合约,即没有权限进行交易,如果证书信息未被吊销,即证书吊销清单中没有该证书信息,则有权限执行对应的智能合约,即有权限进行交易。
另外,证书吊销清单中的已吊销证书信息可能会发生变化,此时,证书认证机构会发布一携带更新后的证书吊销清单至区块链,区块链再将存储的证书吊销清单替换为更新后的证书吊销清单,或者根据更新后的证书吊销清单更改存储的证书吊销清单。
交易模块102,用于当所述节点上的智能合约接收到携带交易参数的交易请求后,访问所述区块链上的权限吊销系统,基于所述权限吊销系统、所述交易参数及所述节点上的证书吊销清单对所述交易请求的权限进行验证,根据验证结果响应或拒绝响应所述交易请求。
本实施例中,区块链上的每个节点都会存储运行区块链上的智能合约,一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。当一个携带交易参数的交易请求传到区块链的节点上时,这个交易参数会被记录到该节点对应的事务记录上并同时传给与该交易参数对应的智能合约去运行,并由该交易参数对应的智能合约上的代码对智能合约的自身数据进行更新。
其中,交易参数包括证书信息及对应的证书权限,证书信息包括证书颁发机构、证书序列号、证书有效期、证书所有者的用户信息等。
当节点上的智能合约接收到携带交易参数的交易请求后,通过访问区块链上的权限吊销系统以获取交易参数中的证书信息及对应的证书权限,但该交易参数中有可能有证书权限也有可能没有证书权限,权限吊销系统用于处理相关的权限事宜,例如权限吊销系统可以执行对交易参数进行解析等。在对交易请求的权限进行验证时,如果能够从交易参数中获取到证书信息及证书权限,则将证书信息与智能合约对应的节点上的证书吊销清单中的已吊销证书信息进行比对,以验证该证书信息是否为已吊销证书信息,如果该证书信息是已吊销证书信息,则该交易请求无权限进行交易,如果该证书信息不是已吊销证书信息,则该交易请求有权限进行交易。
在一优选的实施例中,在上述图4的实施例的基础上,上述交易模块102进一步包括:
访问单元,用于通过所述权限吊销系统对所述交易参数进行解析;
验证单元,用于当解析得到证书信息及证书权限时,分析所述证书信息是否属于所述证书吊销清单中的已吊销证书信息,以对所述交易请求的权限进行验证;
第一处理单元,用于若所述证书信息属于所述证书吊销清单中的已吊销证书信息,则拒绝响应所述交易请求;
第二处理单元,用于若所述证书信息属于所述证书吊销清单中的未吊销证书信息,则响应所述交易请求。
本实施例中,如果区块链的节点上运行或存储的智能合约接收到携带交易参数的交易请求后,可以通过预先确定的地址访问该区块链链上的权限吊销系统以对该交易请求的权限进行校验,具体地,在访问该区块链链上的权限吊销系统时,由权限吊销系统对交易参数进行解析,如果解析得到证书信息但未解析得到证书权限,则说明该交易请求无权限进行交易,智能合约拒绝该交易请求;如果解析得到证书信息及证书权限,则进一步分析证书信息是否属于证书吊销清单中的已吊销证书信息,具体地,可以将证书信息与证书吊销清单中的已吊销证书信息一一进行比对,以确定该证书信息是否属于吊销清单中的已吊销证书信息。若证书信息属于证书吊销清单中的已吊销证书信息,则该交易请求无权限进行交易,智能合约拒绝响应该交易请求;如果证书信息不属于证书吊销清单中的已吊销证书信息,则该交易请求有权限进行交易,智能合约响应该交易请求。
另外,如果从交易参数中只能解析得到证书信息,但解析后未能够得到证书权限,则该交易请求也无权限进行交易。
本实施例在对交易请求的权限进行验证时,通过访问区块链上的权限吊销系统,由权限吊销系统对交易参数进行解析,在解析得到证书信息及证书权限时,通过分析证书信息是否属于证书吊销清单中的已吊销证书信息来对交易请求的权限进行验证,能够提高交易数据处理的速率。
在一优选的实施例中,在上述的实施例的基础上,证书吊销清单中还记录有未吊销证书信息对应的各分权限是否被吊销的信息,若所述证书信息属于未吊销证书信息,所述第二处理单元包括:
比对子单元,用于将未吊销证书信息对应的各分权限分别与所述证书吊销清单中各未吊销证书信息对应的证书权限进行比对;
第三处理子单元,用于若有分权限未吊销,则响应所述交易请求;
第四处理子单元,用于若各分权限均已吊销,则拒绝响应所述交易请求。
本实施例中,一个证书信息对应多个分权限,为了使得用户在部分分权限被吊销后,还可以通过证书信息在区块链上执行其他证书权限事务,本实施例在证书吊销清单中记录了证书信息下对应的各分权限是否被吊销的信息,如果证书信息未被吊销,则进一步将未吊销证书信息对应的各分权限分别与证书吊销清单中各未吊销证书信息对应的证书权限进行比对,若有分权限未吊销,则响应交易请求,若各分权限均已吊销,则拒绝响应交易请求。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。