一种许可链隐私交易方法与流程

文档序号:13667025阅读:304来源:国知局
一种许可链隐私交易方法与流程

本发明涉及一种许可链隐私交易方法



背景技术:

区块链最早作为比特币的底层技术而广为人知。比特币的概念在2008年诞生,2014年以后人们将其底层剥离出来的区块链技术,进行改造,增加新特性后,可作为基础设施适用于更多的应用场景。这时诞生了很多类似于比特币网络的,任何节点无须任何许可便可以随时加入或者脱离网络的区块链项目,我们称之为公有链项目。

世界上各大金融机构开始关注区块链技术,并且在分析后认为区块链技术有可能在金融各个领域中发挥减少成本、增加效率的作用。在金融领域的场景中,因为无法直接使用性能较为低下、数据透明公开、全网记账的公有链技术,所以在2016年就出现了大量不局限于金融行业、各种以许可链为基础的区块链项目。随着时间的发展,由比特币起源的,作为许可链的区块链技术与作为公有链的区块链技术各自独立地发展出了新的特点。

在许可链的业务需求中,无法像比特币一样让所有的交易参与方都看到所有的交易数据,对于数据隐私保护的要求是毋庸置疑的。目前在传统解决方案中我们一般使用物理隔离的方法,即交易数据只保存在相关参与方各自的物理空间里。但是区块链技术带来的优势正是交易的参与方使用“达成共识的同一个账本”,如何在保证“同一个账本”的前提下,保护交易数据隐私呢?

hyperledger(超级账本)的fabric架构中,一方面是利用pki技术来对交易方身份与交易数据进行加密,另一方面是利用节点对交易数据的访问控制,实现交易数据的权限隔离。从加密层面上具体来说就是通过注册,交易两级安全证书体系及交易证书序号随机生成来实现交易方的身份隐私保护。通过对智能合约的名称、内容、交易内容、交易的执行状态实施多级加密,仅有交易相关方拥有解密所需密钥来实现交易内容的隐私保护。

但是fabric中的交易发起者使用不同的tcert(交易证书)对应的私钥对交易进行签名,利用交易接收者的交易证书中的公钥作为交易目标地址。为了实现交易的隐私性,对于不同的交易需要使用不同的证书,证书量大,本地存储空间高。此外,还需要tca作为基础架构支持,tca负载重。对审计节点而言,其需要利用不同的tcertowner_encryptkey解密证书中的信息aes_encrypttcertowner_encryptkey(tcertindex为常数),只有当解密后的常数正确时,才能确认交易的接收者,计算量大。

quorum是由摩根大通创建的“企业区块链”平台,现在是公有链领域的一部分,允许银行、企业或个人组织为自己创建一个私有版本的以太坊网络。quorum网络的参与者可以秘密地进行交易,所以没有人能够看到谁在和谁交易以及交易的内容,但仍然能够享有分布式区块链系统的数据完整性和信息安全优势。

quorum最初有两个主要特征。quorumchain替代以太坊工作量证明共识机制,消除了对能源密集的“挖矿”的需求,由以太坊联合创始人jeffwilcke建立。constellation则是quorum的隐私引擎,是由j.p.morgan在内部开发的。

constellation通过允许智能合约被加密并分发给交易的直接参与者发挥作用。虽然其他几个许可链平台使用点对点或“off-chain”商业逻辑,但quorum将加密智能合约的散列值(区块链术语称其为“数字指纹”)发布到所有人共享的区块链上,因此所有人都可以验证整个系统的完整性,且不用窥探每项敏感交易的内部工作。

quorum网络的隐私引擎中的消息交互显得过于冗余,不够高效,需要进行进一步的精简和改进。



技术实现要素:

本发明的目的在于针对现有技术的不足,提供一种许可链隐私交易方法。

本发明的目的是通过以下技术方案实现的:一种许可链隐私交易方法,该方法包括:

(1)用户通过json-rpc发送的隐私交易;所述隐私交易中包含交易参与方公钥,以及交易参与方的回应时间阈值;

(2)主节点接收来自用户通过json-rpc发送的隐私交易,根据隐私交易中包含的交易参与方公钥确定参与方节点,通过在系统启动时读取系统配置信息确定监控节点;然后对隐私交易进行对称加密,并根据交易参与方公钥对隐私交易的对称钥匙进行非对称加密;最后将包含有加密后的隐私交易、加密后的钥匙,以及nonce随机数的打包信息发送到参与方节点和监控节点;

(3)参与方节点接收到该box信息,并进行解密操作;如果解密成功,则对该隐私交易进行签名,并将该签名信息包裹在ack消息中返回给主节点;否则返回nack消息;

(4)若主节点在隐私交易规定的回应时间阈值内仅收集到所有参与方节点的ack消息,则将填充了所有signature的隐私交易广播到出去,用于交易的共识;否则终止该隐私交易的执行。

本发明的有益效果在于:本发明不但执行效率高,容易部署使用,同时也能在实现隐私交易的同时达到监管的目的。

附图说明

图1为本发明对隐私交易的可见性示意图;

图2为隐私交易执行流程图;

图3为状态访问控制示意图。

具体实施方式

本发明中许可链由多种节点组成,普通的公开交易由所有的节点参与交易的共识(包括对交易的执行顺序和执行结果进行共识)和执行;但是对于隐私交易,所有许可链节点参与其在交易块中的排序共识,而隐私交易的执行只发生在参与方节点,同时交易的执行结果也只对参与方可见。同时,由于许可链的特殊定位,一般需要有监管者的角色,负责监管和参与所有交易(包括所有的公开交易和隐私交易)的执行。本发明通过以下4种节点实现隐私交易的执行:

(1)监管节点:该节点会参与所有隐私交易的执行和状态保存。同时许可链对该节点的获知是在系统startup时候,通过读取系统静态配置实现,后续该配置也可以视业务需求实现对动态配置的支持。因为每笔隐私交易的参与方都可能是许可链所有节点的一个子集,但是监管节点必须是该子集的一员,除非在系统启动的时候,没有配置监管节点。

(2)主节点:首先接收到来自用户隐私交易内容的节点为该笔交易的主节点,该节点负责进行隐私交易的加密、分发、接收反馈信息等操作来推动隐私交易的执行。任何参与隐私交易的节点都可以作为主节点,包括监管节点,选择权由用户控制。

(3)参与方节点:参与方节点负责隐私交易的执行、和主节点的交互以及本节点私有状态的维护。

(4)非参与节点(无关方):非参与节点不参与隐私交易的执行,但是参与隐私交易在交易块中的共识。

如图3所示,在运行节点上存在双状态,公开状态(publicstate)和隐私状态(privatestate),当需要执行的交易为公开交易时,则其会读取或改变公开状态中的数据进行交易的执行;因此,公开交易的执行状态最终会写入到块中,然后由所有的许可链节点对其进行共识。当需要执行的交易为隐私交易时,则按照如下步骤执行:

step1:用户指定主节点,并通过json-rpc向主节点发送隐私交易;所述隐私交易中包含交易参与方公钥,以及交易参与方的回应时间阈值,回应时间阈值一般通过块高度来限制;

step2:主节点在接收到来自用户通过json-rpc发送的隐私交易后,对隐私交易进行对称加密,并根据交易参与方公钥对隐私交易的对称钥匙进行非对称加密;最后将包含有加密后的隐私交易、加密后的钥匙,以及nonce随机数的打包信息发送到参与方节点和监控节点;其中的参与方节点由隐私交易信息中的参与方公钥指定,而监控节点为系统启动时通过读取配置信息获取;

step3:当其他参与方节点接收到该box信息之后,进行解密操作,如果解密成功,则对该隐私交易进行签名,并将该签名信息包裹在ack消息中返回给主节点;否则返回nack消息;

step4:主节点会一直等待收集所有参与方的ack消息,若主节点在隐私交易规定的回应时间阈值内收集到所有参与方节点的ack消息,则将填充了所有signature的隐私交易广播出去,以便非参与节点生成block,用于交易的共识;否则终止该隐私交易的执行。

如果收到来自于参与节点的nack消息,则终止该隐私交易的执行,同时抛出异常信息(因为正常情况接收方不会解密失败);

如果自发送该笔交易,在回应时间阈值(通过blocklimit来控制)内没有收集到所有的ack消息,则终止该笔交易的执行;

在本发明所公开的隐私交易方法中,隐私交易的执行状态只对参与节点可见,并不能对隐私状态进行共识。同时公开交易不能访问隐私状态,公开交易的执行不会影响到隐私状态账户中的数据;而隐私交易可以对公开状态进行读取操作,但是不能对公开状态进行写入操作。

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