一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

区块链交易方法及装置与流程

2021-11-25 02:54:00 来源:中国专利 TAG:


1.本说明书一个或多个实施例涉及区块链领域,尤其涉及一种区块链交易方法及装置。


背景技术:

2.区块链技术(也被称之为,分布式账本技术)是一种去中心化的分布式数据库技术,具有去中心化、公开透明、不可篡改、可信任等多种特点,适用于诸多对数据可靠性具有高需求的应用场景中。在区块链技术中,可以通过面向用户提供智能合约(smart contract)的功能,以支持用户在区块链网络中创建并调用一些复杂的逻辑。所谓智能合约是在区块链上可以被交易触发执行的程序。一笔智能合约调用交易被发送到区块链网络后,各节点设备均可以在搭载的虚拟机中执行这笔交易。智能合约可以以规定的方式在区块链网络中每个节点独立的执行,所有执行记录和数据都保存在区块链上,所以当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。
3.对于区块链上部署的智能合约来说,通常无法直接与链外实体进行交互;例如,智能合约在调用完成后,通常无法将智能合约的调用结果,点对点的发送给智能合约的调用发起方。智能合约在调用的过程中产生的调用结果,通常都会以事件(event)的形式,记录到调用该智能合约的那笔交易的交易日志(transaction logs),在节点设备的存储空间中进行存储。而需要与智能合约进行交互的链外实体,则可以通过监听节点设备的存储空间中存储的上述交易日志的方式,来获取智能合约的调用结果。相关技术中,为了数据的安全,可以使用调用发起方的对称密钥对调用智能合约生成的调用结果进行加密,进而调用发起方便可以通过事件监听机制对获取的调用结果进行解密。


技术实现要素:

4.有鉴于此,本说明书一个或多个实施例提供一种区块链交易方法及装置。
5.为实现上述目的,本说明书一个或多个实施例提供技术方案如下:根据本说明书一个或多个实施例的第一方面,提出了一种区块链交易方法,应用于区块链系统,所述方法包括:接收用于调用智能合约的区块链交易,所述智能合约包含业务处理逻辑和数据授权逻辑;执行所述业务处理逻辑以处理所述区块链交易所指示的业务处理需求,并生成相应的业务处理结果;以及,执行所述数据授权逻辑以确定出数据授权对象和所述业务处理结果中分别对应于各个数据授权对象的目标授权数据,并分别通过各个数据授权对象的身份公钥对相应的目标授权数据进行加密处理,以针对所述目标授权数据的至少一部分进行加密;保存所述区块链交易对应的交易回执,所述交易回执中包含分别对应于各个数据授权对象的加密处理后的目标授权数据。
6.根据本说明书一个或多个实施例的第二方面,提出了一种区块链交易方法,应用于业务服务器,所述方法包括:响应于接收到的业务处理请求,向区块链系统提交用于调用智能合约的区块链交易,使所述区块链系统执行所述智能合约包含的业务处理逻辑和数据授权逻辑;其中,所述业务处理逻辑用于处理所述区块链交易所指示的业务处理需求,并生成相应的业务处理结果,以及,所述数据授权逻辑用于确定出数据授权对象和所述业务处理结果中分别对应于各个数据授权对象的目标授权数据,并分别通过各个数据授权对象的身份公钥对相应的目标授权数据进行加密处理,以针对所述目标授权数据的至少一部分进行加密;从所述区块链系统处获取所述区块链交易对应的交易回执,所述交易回执中包含分别对应于各个数据授权对象的加密处理后的目标授权数据。
7.根据本说明书一个或多个实施例的第三方面,提出了一种区块链交易装置,应用于区块链系统,所述装置包括:接收单元,用于接收用于调用智能合约的区块链交易,所述智能合约包含业务处理逻辑和数据授权逻辑;执行单元,用于执行所述业务处理逻辑以处理所述区块链交易所指示的业务处理需求,并生成相应的业务处理结果;以及,执行所述数据授权逻辑以确定出数据授权对象和所述业务处理结果中分别对应于各个数据授权对象的目标授权数据,并分别通过各个数据授权对象的身份公钥对相应的目标授权数据进行加密处理,以针对所述目标授权数据的至少一部分进行加密;存储单元,用于保存所述区块链交易对应的交易回执,所述交易回执中包含分别对应于各个数据授权对象的加密处理后的目标授权数据。
8.根据本说明书一个或多个实施例的第四方面,提出了一种区块链交易装置,应用于业务服务器,所述装置包括:提交单元,响应于接收到的业务处理请求,向区块链系统提交用于调用智能合约的区块链交易,使所述区块链系统执行所述智能合约包含的业务处理逻辑和数据授权逻辑;其中,所述业务处理逻辑用于处理所述区块链交易所指示的业务处理需求,并生成相应的业务处理结果,以及,所述数据授权逻辑用于确定出数据授权对象和所述业务处理结果中分别对应于各个数据授权对象的目标授权数据,并分别通过各个数据授权对象的身份公钥对相应的目标授权数据进行加密处理,以针对所述目标授权数据的至少一部分进行加密;获取单元,用于从所述区块链系统处获取所述区块链交易对应的交易回执,所述交易回执中包含分别对应于各个数据授权对象的加密处理后的目标授权数据。
9.根据本说明书一个或多个实施例的第五方面,提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现如上述第一方面的实施例中所述的方法。
10.根据本说明书一个或多个实施例的第六方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述第一方面的实施例中所述方法的
步骤。
附图说明
11.图1是本说明书一示例性实施例示出的一种区块链交易方法的流程图。
12.图2是本说明书一示例性实施例示出的另一种区块链交易方法的流程图。
13.图3是本说明书示出的一种网络环境的示意图。
14.图4是本说明书一示例性实施例示出的一种区块链交易方法的交互图。
15.图5是一示例性实施例提供的一种设备的结构示意图。
16.图6是一示例性实施例提供的一种区块链交易装置的框图。
17.图7是一示例性实施例提供的另一种区块链交易装置的框图。
具体实施方式
18.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
19.需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
20.相关技术中,参与方向区块链系统提供对称密钥。例如,参与方可以与区块链系统协商确定该对称密钥,或者由参与方将该对称密钥加密传输至区块链系统等。相应的,针对该参与方所提交的交易,区块链系统可以通过上述对称密钥对该交易执行后得到的结果数据进行加密。在此种加密方式下,只有发起交易的参与方才持有上述对称密钥,其他参与方即使从区块链节点处获取了结果数据,由于没有上述对称密钥,也无法对结果数据进行解密。如果其他参与方想要获取明文形式的结果数据,便只能向发起交易的参与方获取对称密钥或者明文形式的结果数据,相当于由发起交易的参与方向其他参与方提供中心化的数据授权服务,效率低下,消耗资源较多。本说明书提供一种区块链交易方案,用以解决相关技术中的上述问题。
21.参考图1,为本说明书一示例性实施例示出的一种区块链交易方法的流程图,下面结合图1对上述区块链交易方法的步骤进行详细描述。
22.步骤102,区块链系统接收用于调用智能合约的区块链交易,所述智能合约包含业务处理逻辑和数据授权逻辑。
23.区块链系统接收到的区块链交易可以调用部署于区块链系统中的智能合约。区块链交易的from字段用于记录发起交易的参与方的账户地址。当该区块链交易用于调用智能合约时,该区块链交易的to字段用于记录被调用的智能合约的地址,且该区块链交易的data字段用于记录需要调用的方法和所需传入的参数(即入参)。本说明书中的区块链交
易,其to字段包含所需调用的上述智能合约的地址,且data字段包含分别对应于上述业务处理逻辑和数据授权逻辑的方法,以及用于上述业务处理逻辑和/或数据授权逻辑的入参。
24.在一些场景中,区块链系统包括相关技术中的区块链网络,该区块链网络由多个区块链节点所构成。任一参与方可以主动生成区块链交易,并将区块链交易提交至该区块链系统,譬如具体可以提交至该区块链系统中的某一区块链节点。或者,任一参与方可以向业务服务器发起业务处理请求,使得业务服务器基于该业务处理请求生成区块链交易,并将区块链交易提交至区块链系统。在另一些场景中,区块链系统包括上述的区块链网络和baas(blockchain as a service,区块链即服务)服务器,使得上述的任一参与方或业务服务器只需要向baas服务器发起请求,即可由该baas服务器生成相应的区块链交易,并将区块链交易提交至区块链系统。
25.出于隐私交易的需求,上述的区块链交易可以为经过加密后的交易密文。基于区块链技术的特性,区块链系统中用于存储区块链数据的所有区块链节点都会获得并存储通过共识的区块链交易,具体是将该区块链交易添加至某一区块中,并对该区块进行存储。因此,通过采用上述的交易密文作为区块链交易,使得区块链节点仅会存储该交易密文,对于未持有相关密钥的对象而言,即便获得该交易密文也无法获知其所含的交易内容,故而实现了隐私保护。
26.在隐私交易的场景下,可以通过结合tee(trusted execution environment,可信执行环境)技术以进一步提升安全性与私密性。tee是基于cpu硬件的安全扩展,且与外部完全隔离的可信执行环境。包括intel sgx,amd sev在内的商用tee也都提供了内存加密技术,将可信硬件限定在cpu内部,总线和内存的数据均是密文防止恶意用户进行窥探。例如,英特尔的软件保护扩展(sgx)等tee技术隔离了代码执行、远程证明、安全配置、数据的安全存储以及用于执行代码的可信路径。在tee中运行的应用程序受到安全保护,几乎不可能被第三方访问。
27.以intel sgx技术为例,sgx提供了围圈(enclave,也称为飞地),即内存中一个加密的可信执行区域,由cpu保护数据不被窃取。以第一区块链节点采用支持sgx的cpu为例, 利用新增的处理器指令,在内存中可以分配一部分区域epc(enclave page cache,围圈页面缓存或飞地页面缓存),通过cpu内的加密引擎mee(memory encryption engine)对其中的数据进行加密。epc中加密的内容只有进入cpu后才会被解密成明文。因此,在sgx中,用户可以不信任操作系统vmm (virtual machine monitor,虚拟机监控器)、甚至bios (basic input output system,基本输入输出系统),只需要信任cpu便能确保隐私数据不会泄漏。实际应用中,可以将隐私数据加密后以密文形式传递至围圈中,并通过远程证明将对应的密钥也传入围圈。然后,在cpu的加密保护下利用数据进行运算,结果会以密文形式返回。这种模式下,既可以利用强大的计算力,又不用担心数据泄漏。
28.因此,通过在区块链系统中部署tee,使得交易密文只有在tee内才会被解密为相应的交易明文。除了区块链交易之外,智能合约在部署时也可以使用加密后的合约代码进行部署,使得加密后的合约代码只有tee内才会被解密和执行,可以避免无关对象查看智能合约的代码逻辑。
29.相关技术中所采用的任意加密算法均可以用于本说明书中,以将该交易明文加密为上述的交易密文,或者将交易密文解密为相应的交易明文。例如,可以采用对称加密算
法、非对称加密算法或数字信封算法等。其中,对称加密算法,例如可以包括des算法,3des算法,tdea算法,blowfish算法,rc5算法,idea算法等;非对称加密算法,例如可以包括rsa、elgamal、背包算法、rabin、d

h、ecc (椭圆曲线加密算法)等。
30.当采用对称加密算法时,上述的参与方、业务服务器或baas服务器等作为加密方,可以预先与区块链节点处的tee进行协商以确定出对称密钥,则该加密方使用该对称密钥对交易明文进行加密生成交易密文后,tee使用相同的对称密钥将交易密文解密为相应的交易明文。除了协商的方式之外,也可以由譬如kms(key management server,密钥管理服务器)向加密方和tee分配上述的对称密钥;或者,还可以通过其他方式确定出上述的对称密钥。
31.当采用非对称加密算法时,tee可以维护一组非对称密钥对,加密方可以使用非对称密钥对中的公钥对交易明文进行加密以得到上述的交易密文,而tee可以使用其中的私钥对交易密文进行加密以得到相应的交易明文。上述的非对称密钥对可以为tee的身份密钥对,譬如可以由kms在确定该tee通过远程认证后所分配,且各个区块链节点处的tee具有相同的身份密钥对。或者,上述的非对称密钥对可以为上述区块链交易所调用的智能合约对应的合约密钥对,从而实现了合约级别的交易加解密。
32.数字信封算法是将对称加密与非对称加密相结合的一种加密算法。与上述非对称加密的情况类似,在使用数字信封算法时,所采用的非对称密钥对也可以为tee的身份密钥对或者智能合约对应的密钥对。具体而言,加密方可以自行生成一对称密钥,并通过该对称密钥将交易明文加密生成交易密文,并且使用上述的非对称密钥对中的公钥加密上述的对称密钥以生成密钥密文。加密方将交易密文与密钥密文均提交至区块链网络,进一步的,当上述非对称密钥对为tee的身份密钥对时,区块链网络在tee内首先使用tee身份密钥对中的私钥解密收到的密钥密文,以得到明文形式的对称密钥,再利用该对称密钥解密收到的交易密文,从而获取交易明文;当上述非对称密钥对是智能合约对应的合约密钥对时,区块链网络首先确定区块链交易调用的智能合约,进而调用此智能合约对应的合约私钥解密收到的密钥密文,以得到明文形式的对称密钥,再利用该对称密钥解密收到的交易密文,从而获取交易明文。数字信封算法可以兼顾对称加密算法的高效与非对称加密算法的高安全性。
33.对于非对称加密或数字信封算法的场景而言,所涉及的私钥可以采用明文的形式维护在tee内,也可以在tee内将该私钥加密之后存储至tee外部,且针对该私钥进行加密的密钥仅由tee持有,故而能够保证足够的安全性。那么,即便智能合约的数量很多、相应的合约私钥的数量也很多,但是通过将这些合约私钥都加密后存储至tee外部,可以避免占用tee的内存空间,也可以防止tee的内存空间不足而影响其正常运行。在针对合约私钥进行加密存储时,可以将加密后的合约私钥存储至相应智能合约的合约账户中。相应地,当区块链交易调用该智能合约时,区块链网络可以从该智能合约的合约账户中读取加密后的合约私钥,并在tee内解密得到明文的合约私钥。
34.步骤104,执行所述业务处理逻辑以处理所述区块链交易所指示的业务处理需求,并生成相应的业务处理结果;以及,执行所述数据授权逻辑以确定出数据授权对象和所述业务处理结果中分别对应于各个数据授权对象的目标授权数据,并分别通过各个数据授权对象的身份公钥对相应的目标授权数据进行加密处理,以针对所述目标授权数据的至少一
部分进行加密。
35.本说明书中的智能合约中至少包含两类逻辑,业务处理逻辑以及数据授权逻辑。如果在上文中“隐私交易”的场景下,区块链系统执行业务处理逻辑和数据授权逻辑的过程均在tee中进行。如前文所述,业务处理逻辑和数据授权逻辑对应的合约代码均可以被加密后部署在区块链系统中,使得只有区块链交易调用该业务处理逻辑和数据授权逻辑时,相应的合约代码才会被载入tee中进行解密,并在tee内执行解密后的合约代码,使得无关人员无法获知该业务处理逻辑和数据授权逻辑的具体内容。进一步地,还可以限制对业务处理逻辑和数据授权逻辑的调用权限,譬如权限管理信息可以被记录在相应的智能合约的合约账户中,使得区块链系统接收到调用该业务处理逻辑和数据授权逻辑的区块链交易时,可以根据合约账户中记录的权限管理信息确定是否允许调用,并在允许调用的情况下分别执行该业务处理逻辑和数据授权逻辑,且在不允许调用的情况下终止执行区块链交易。
36.针对业务处理逻辑,区块链系统中的区块链节点可以从区块链交易中解析出业务处理需求,进而执行业务处理逻辑对业务处理需求进行处理以得出业务处理结果。业务处理逻辑用于实现预先定义的业务,比如从区块链中读取符合条件的区块或历史交易,再比如从世界状态中读取符合条件的账户数据,又比如对区块链交易传入的参数进行计算,等等,本说明书并不对此进行限制。业务处理结果可以是以交易回执(receipt)的形式,存储到区块中组织形成的收据树中。数据授权对象可以从区块中查找上述区块链交易对应的交易回执,并从该交易回执中获取自身所需的业务处理结果。
37.数据授权逻辑用于针对确定出的每个数据授权对象生成目标授权数据,以及对目标授权数据的至少一部分进行加密处理。当想要获得业务处理结果的数据授权对象为多个时,区块链网络通过数据授权逻辑,可以确定出数据授权对象并生成针对每个授权对象的目标授权数据,进一步的,分别使用各个数据授权对象对应的公钥加密至少一部分的目标授权数据。每个授权对象获取到区块后,可以使用自身对应的私钥对交易回执进行解密,进而获取到自身所需的目标授权数据。每个数据授权方对应的目标授权数据的内容可以相同也可以不同,上述目标授权数据是基于业务处理结果生成的,每份目标授权数据可以包含一部分或者全部的业务处理结果,每个数据授权对象对应的目标授权数据的具体内容由数据授权逻辑确定。考虑到可能会存在数据授权对象需要对目标授权数据的部分进行公开,在加密时,区块链网络可以选择对目标授权数据的部分进行加密。
38.数据授权对象可以是动态的,譬如由数据授权逻辑根据上述区块链交易中的交易字段所确定。因此,对于不同的区块链交易而言,数据授权逻辑所确定出的数据授权对象可能不同。例如,区块链交易的交易发起方字段,即from字段,用于记录发起交易的参与方的账户地址,数据授权逻辑可以将从from字段中读取到的地址作为数据授权对象。再例如,当发起交易的参与方希望将自身之外的任意对象配置为数据授权对象时,可以将该任意对象添加至区块链交易的交易数据字段,即data字段;相应的,数据授权逻辑可以将区块链交易的data字段中记载的对象作为数据授权对象。当区块链交易采用其他格式时,还可能包含其他类型的交易字段,数据授权逻辑可以从这些交易字段中读取数据授权对象。实际上,数据授权逻辑可以从区块链交易的一个或多个字段中确定数据授权对象,本说明书并不对此进行限制。
39.数据授权对象可以是静态的,譬如数据授权逻辑中可以预先定义有一个或多个对
象,数据授权逻辑可以直接将这些对象作为数据授权对象。此时,不同区块链交易调用该数据授权逻辑时,该数据授权逻辑基于上述静态方式所确定出的数据授权对象相同。
40.当然,数据授权逻辑可以仅采用上述的动态方式或静态方式来确定数据授权对象,也可以同时采用上述的动态方式和静态方式来确定数据授权对象,本说明书并不对此进行限制。在一些场景中,区块链交易中可以在data字段包含相应的入参,以指示数据授权逻辑采用何种方式来确定数据授权对象。在另一些场景中,数据授权逻辑采用的方式已经在其代码中固化,无需区块链交易进行指示。
41.步骤106,保存所述区块链交易对应的交易回执,所述交易回执中包含分别对应于各个数据授权对象的加密处理后目标授权数据。
42.上述区块链交易执行智能合约,即执行上述业务处理逻辑以及数据授权逻辑后生成的经过加密处理后的目标授权数据被记录于交易回执中。上述交易回执存储于收据树中,并被收录于此交易所在的区块中。通过向区块链系统发送拉块请求,区块链系统可以响应于上述拉块请求返回上述交易所处的区块。相应地,数据授权对象可以从该区块中查找并获得所需的加密处理后的目标授权数据。拉块请求可以由前文所述的业务服务器向区块链系统发起。或者,拉块请求可以由数据授权对象直接向区块链系统发起。拉块请求的发起方式,与前文所述的区块链交易的提交方式类似,此处不再赘述。
43.在一种情况下,数据授权对象可以通过交易哈希查询目标交易所在的区块。每个交易的交易哈希被打包在区块的blocknumber中,如果数据授权对象需要查找某个交易,可以在拉块请求中携带有此交易的哈希,区块链系统接收到拉块请求后,可以利用交易哈希查询哪个区块的blocknumber中含有此交易的哈希,并将确定出的区块返回至数据授权对象。
44.在另一种情况下,数据授权对象也可以通过区块高度确定发送拉块请求的时机。例如,数据授权对象可以定期通过区块链服务向区块链系统查询区块高度,当此次区块链系统返回的区块高度相比于上一次返回的区块高度增加时,向区块链系统发送拉块请求,以获取增加的区块中的数据。
45.在一实施例中,各个数据授权对象通过拉块请求获取到的是区块中的全部数据,数据授权对象可以对区块中的全部密文数据逐个进行解密,直至获取到自身对应的授权数据。
46.在另一实施例中,区块链系统在生成加密处理的目标授权数据时,可以为每份授权数据添加明文的描述信息,此描述信息可以包括此授权数据的身份信息。在某个数据授权对象在获取到区块中的全部数据后,可以通过上述身份信息确定此数据授权方对应的目标授权数据,再针对性的对确定出的目标授权数据中的密文部分进行解密,而无需对其他目标授权数据中的密文部分进行解密,以此节省数据授权对象的计算资源。上述身份信息可以表现为多种形式,例如授权对象的身份id、授权对象的身份公钥、授权对象的身份id的哈希值和/或授权对象的身份公钥的哈希值。当上述身份信息为授权对象的身份id的哈希值或授权对象的身份公钥的哈希值时,数据授权对象可以首先将自身的身份id或者身份公钥进行哈希计算,并将得出的结果与各个目标授权数据的身份信息中记载的身份id的哈希值或身份公钥的哈希值比较,进而对匹配成功的目标授权信息进行解密。值得说明的是,如果拉块请求是由业务服务器向区块链系统发起,那么在目标授权数据没有被添加明文描述
信息的情况下,业务服务器需要向数据授权对象返回拉块所得的区块中的全部数据;如果目标授权数据添加了明文的描述信息,业务服务器可以同样将区块中的全部数据返回至数据授权方,也可以根据上述描述信息将目标授权数据返回至相应的数据授权对象。
47.本说明书中在智能合约中写入业务处理逻辑和数据授权逻辑,并利用非对称加密技术,针对不同的数据授权方生成加密的目标授权数据,并且各个目标授权数据可以不同。由于每份目标授权数据由相应授权方的身份公钥加密,每个数据授权方无需获取到相同的密钥,只需要利用自身的身份私钥解密就可获取目标授权数据,节省了数据处理资源的同时实现了向特定的数据授权方提供个性化的授权数据的功能。
48.参考图2,为本说明书一示例性实施例示出的另一种区块链交易方法的流程图,上述方法应用于业务服务器,可以包括以下步骤:步骤202,响应于接收到的业务处理请求,向区块链系统提交用于调用智能合约的区块链交易,使所述区块链系统执行所述智能合约包含的业务处理逻辑和数据授权逻辑;其中,所述业务处理逻辑用于处理所述区块链交易所指示的业务处理需求,并生成相应的业务处理结果,以及,所述数据授权逻辑用于确定出数据授权对象和所述业务处理结果中分别对应于各个数据授权对象的目标授权数据,并分别通过各个数据授权对象的身份公钥对相应的目标授权数据进行加密处理,以针对所述目标授权数据的至少一部分进行加密;步骤204,从所述区块链系统处获取所述区块链交易对应的交易回执,所述交易回执中包含分别对应于各个数据授权对象的加密处理后的目标授权数据。
49.上述步骤的详细实施例参考上文的相关描述,本说明书在此不再赘述。
50.图3是本说明书示出的一种网络环境的示意图,本说明书提供的区块链交易方法可以应用于图3所示的网络环境中。
51.在货品交易的场景下,在如图3所示的网络环境中,数据授权对象可以包括货品的需求方301、货品的供应方302、手续费管理方303以及监管方304,其中,需求方301和供应方302通过业务服务器305发送业务请求至平台服务器306,而手续费管理方303和监管方304可以直接与平台服务器306进行交互。平台服务器306中提供的区块链服务可以实现直接与区块链网络307进行交互的功能。
52.在一种实施方式中,区块链网络307可以维护一个或多个区块链(例如,公有区块链、私有区块链、联盟区块链等),并包括用于承载上述一个或多个区块链的多个区块链节点;例如,如图3中示出的区块链节点1、区块链节点2、区块链节点3、区块链节点4、区块链节点i等可以共同承载一个或者多个区块链。各个区块链系统包含的区块链之间,以及各个区块链系统之间,还可以进行跨链的数据访问。区块链节点可以是物理设备,也可以是在服务器或者服务器集群中实现的虚拟设备;例如,区块链节点设备可以是服务器集群中的一台物理主机,也可以是基于虚拟化技术对服务器或者服务器集群搭载的硬件资源进行虚拟化后,创建的虚拟机。每个区块链节点之间,可以通过各种类型的通信方法(比如tcp/ip)连接在一起形成网络,来承载一个或者多个区块链。
53.图3所示的各种设备可以通过各种通信网络进行连接。其中,上述通信网络可以包括有线和/或无线通信网络;例如,可以是基于运营商提供的有线接入网络或者无线接入网络(比如移动蜂窝网络)实现的局域网(local area network,lan)、广域网(wide area network,wan)、因特网或其组合。
54.在一种实施方式中,平台服务器306可以包括用于提供区块链即服务的baas平台。baas平台可以通过为区块链上发生的活动(诸如订阅和通知、用户验证、数据库管理和远程更新),提供预先编写的软件的方式,面向与baas平台连接的客户端侧计算设备,提供简单易用,一键部署,快速验证,灵活可定制的区块链服务,进而可以加速区块链业务应用开发、测试、上线,助力各行业区块链商业应用场景的落地。例如,在一个例子中,与baas平台可以提供诸如mq(message queue,消息队列)服务之类的软件;与baas平台连接的客户端侧计算设备,可以订阅baas平台连接的区块链系统中某一区块链上部署的智能合约,在触发执行后在区块链上产生的合约事件;而baas平台可以监听该智能合约在触发执行后在区块链上产生的事件,再基于mq服务相关的软件,将该合约事件以通知消息的形式添加到消息队列中,使得订阅该消息队列的客户端侧计算设备,能够得到与上述合约事件相关的通知。
55.在一种实施方式中,baas平台还可以提供基于区块链技术的企业级平台服务,以帮助企业级客户构建安全且稳定的区块链环境,并轻松管理区块链的部署、操作、维护和开发。例如,在一个例子中,baas平台可以基于云技术实现丰富的安全策略和多租户的隔离环境、基于芯片加密技术来提供高级的安全保护、基于高度可靠的数据存储,提供可以快速扩展,而不会中断的端到端的高可用性服务;在另一个例子中,还可以提供增强的管理功能,以帮助客户构建企业级区块链网络环境;以及,还可以为标准区块链应用和数据提供本地支持,支持例如hyperledger fabric和enterprise ethereum

quorum的主流开源区块链技术,以构建开放且包容的技术生态系统。
56.如图4所示,为本说明书一示例性实施例示出的一种区块链交易方法的交互图,下面结合图3对上述区块链交易方法的交互过程进行详细描述。
57.步骤402,需求方301向平台服务器306发送业务处理请求。
58.参考图3,需求方301可以向平台服务器306发送业务处理请求,在货品交易的场景下,上述业务处理请求可以为下单请求、退款请求等由交易货品流程中的需求方发起的请求。
59.步骤404,平台服务器306生成交易。
60.平台服务器306响应于接收到的业务处理请求生成区块链交易,交易格式中包含的from字段记录有需求方301的账户地址,to字段记录有此交易调用的智能合约的地址,data字段中可以记录供应方的账户地址以及其他的交易参数。
61.步骤406,平台服务器306向区块链网络307提交交易。
62.在隐私交易的场景下,为了保证交易的安全,平台服务器306可以将上述交易加密后生成交易密文,再将密文形式的交易提交至区块链网络307。
63.步骤408,区块链网络307执行智能合约并得到业务处理结果。
64.在隐私交易的场景下,区块链网络307接收到平台服务器306提交的交易后,会将交易读入tee内,并在tee内解密交易密文以得到交易的明文,进而执行上述交易指示的智能合约中包含的业务处理逻辑,并得到业务处理结果。
65.步骤410,区块链网络307针对每个数据授权方各自生成授权数据。
66.本说明书中的智能合约中还包含数据授权逻辑,通过执行数据授权逻辑,区块链网络307可以在tee内从交易的from字段读取到需求方301的信息,从data字段读取到供应方302的信息,并将从上述两个字段中确定的需求方301和供应方302作为数据授权对象;同
时,区块链系统还可以从数据授权逻辑中预先定义的对象中确定其他授权对象,例如手续费管理方303和监管方304。确定数据授权方后,区块链系统还可以通过执行上述数据授权逻辑,针对每个数据授权方生成授权数据。上述授权数据根据业务处理结果生成,各个数据授权方对应的授权数据内容可以不同。例如,需求方301对应的授权数据可以包含订单id、订单状态、供应方id、需求方id、货品id、货品价格、手续费比例、手续费金额;供应方302对应的授权数据可以包含订单id、订单状态、供应方id、需求方id、货品id、货品价格;手续费管理方303对应的授权数据可以包含订单id、货品价格、手续费比例、手续费金额;监管方304对应的授权数据可以包含订单id、供应方id、需求方id。
67.步骤412,区块链网络307加密每个数据授权方的授权数据并添加明文描述信息。
68.在此步骤中,区块链网络307在tee中使用各个数据授权方的身份公钥加密相应的授权数据,上述身份公钥可以由数据授权方提交注册请求至区块链系统时同步至区块链系统的tee中。同时,还可以给每份授权数据添加明文形式的描述信息,例如将相应数据授权方的身份信息添加至描述信息中,以用于表明此份授权数据对应的数据授权方为何。
69.步骤414,区块链网络307将授权数据存储至交易回执中。
70.区块链网络307可以将上述添加了描述信息的密文授权数据存储至交易回执中,上述交易回执被存储在mpt收据树中。
71.步骤416,平台服务器306发起同步区块请求。
72.区块链网络307会将接收到的交易以及交易回执打包至区块中,随着交易的增多,区块的数量也会增加。平台服务器可以按照预设时间从区块链网络307处获取区块高度,并将此次的区块高度和上次的区块高度进行比较,如果区块高度增加,说明区块链上产生了新的区块,此时,平台服务器306可以向区块链网络307发起同步区块请求。
73.步骤418,区块链网络307将区块中的数据同步至平台服务器306处。
74.在此步骤中,区块链网络307相应于上述同步区块请求,获取区块链上产生的新的区块中的全部数据。
75.步骤420,数据授权方向平台服务器306发起拉块请求。
76.在此步骤中,各个授权参与方可以向平台服务器306发起拉块请求,其中,需求方301和供应方302可以通过业务服务器305向平台服务器306发起拉块请求。手续费管理方303以及监管方304可以直接向平台服务器306发起拉块请求。
77.步骤422,平台服务器306返回区块数据。
78.平台服务器306响应于各个数据授权方发起的拉块请求,返回存储的全部区块数据,或者,平台服务器306也可以返回此目标授权方上次发起拉块请求后新获得的区块数据。对于交易的发起方(在图3中为需求方301),由于其可以获得交易哈希,因此交易的发起方可以在发起拉块请求时携带交易哈希,平台服务器306便可以通过交易哈希确定此交易所在的区块并将区块数据返回至平台服务器306。
79.步骤424,数据授权方解密区块数据。
80.由于各个数据授权方通过拉块请求获取到的是区块中的全部数据。每个区块中不仅包含多笔交易对应的数据,还包含各个数据授权方对应的授权数据。为了提升数据授权方获取自身的授权数据的效率,数据授权方可以通过描述信息中记载的身份信息确定交易回执中对应于自身的密文授权数据,再针对性的对确定出的密文授权数据进行解密,以此
节省数据授权方的计算资源,提升获取授权数据的效率。
81.图5是一示例性实施例提供的一种设备的示意结构图。请参考图5,在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
82.请参考图6,区块链交易装置可以应用于如图5所示的设备中,以实现本说明书的技术方案。其中,应用于区块链系统的区块链交易装置可以包括:接收单元602,用于接收用于调用智能合约的区块链交易,所述智能合约包含业务处理逻辑和数据授权逻辑;执行单元604,用于执行所述业务处理逻辑以处理所述区块链交易所指示的业务处理需求,并生成相应的业务处理结果;以及,执行所述数据授权逻辑以确定出数据授权对象和所述业务处理结果中分别对应于各个数据授权对象的目标授权数据,并分别通过各个数据授权对象的身份公钥对相应的目标授权数据进行加密处理,以针对所述目标授权数据的至少一部分进行加密;存储单元606,用于保存所述区块链交易对应的交易回执,所述交易回执中包含分别对应于各个数据授权对象的加密处理后目标授权数据。
83.可选的,接收到的所述区块链交易为经过加密后的交易密文;所述方法还包括:将所述交易密文读入所述区块链系统内部署的可信执行环境中,并在所述可信执行环境中解密所述交易密文以得到明文的所述区块链交易。
84.可选的,所述交易密文由所述智能合约对应的合约公钥进行非对称加密或数字信封加密得到;所述在所述可信执行环境中解密所述交易密文,包括:根据所述智能合约对应的合约私钥,在所述可信执行环境中对所述交易密文进行解密。
85.可选的,所述合约私钥被基于明文维护在所述可信执行环境中;或者,所述合约私钥由所述可信执行环境内维护的对称密钥进行加密后,存储在所述智能合约的合约账户中。
86.可选的,所述执行单元604具体用于:在所述可信执行环境中执行所述业务处理逻辑和所述数据授权逻辑。
87.可选的,所述数据授权对象包括以下至少之一:所述数据授权逻辑从所述区块链交易的交易字段中读取的对象、所述数据授权逻辑中预先定义的对象。
88.可选的,所述数据授权逻辑从所述区块链交易的交易字段中读取的对象,包括以下至少之一:交易发起方字段所描述的对象、交易数据字段所描述的对象。
89.可选的,所述装置还包括:返回单元608,响应于接收到的拉块请求,返回所述区块链交易所处的区块,该区块包含所述交易回执。
90.可选的所述装置还包括:添加单元610,用于为所述加密处理后目标授权数据添加明文描述信息,所述明文描述信息包含相应的数据授权对象的身份标识。
91.可选的,所述身份标识包括:所述授权对象的身份id、所述授权对象的身份公钥、
所述授权对象的身份id的哈希值和/或所述授权对象的身份公钥的哈希值。
92.可选的,不同数据授权对象对应于相同的目标授权数据;或者,不同数据授权对象对应的目标授权数据之间相互独立。
93.请参考图7,应用于业务服务器的区块链交易装置可以包括:提交单元702,响应于接收到的业务处理请求,向区块链系统提交用于调用智能合约的区块链交易,使所述区块链系统执行所述智能合约包含的业务处理逻辑和数据授权逻辑;其中,所述业务处理逻辑用于处理所述区块链交易所指示的业务处理需求,并生成相应的业务处理结果,以及,所述数据授权逻辑用于确定出数据授权对象和所述业务处理结果中分别对应于各个数据授权对象的目标授权数据,并分别通过各个数据授权对象的身份公钥对相应的目标授权数据进行加密处理,以针对所述目标授权数据的至少一部分进行加密;获取单元704,用于从所述区块链系统处获取所述区块链交易对应的交易回执,所述交易回执中包含分别对应于各个数据授权对象的加密处理后的目标授权数据。
94.可选的,所述区块链交易为经过加密后的交易密文;所述交易密文被所述区块链系统读入其内部署的可信执行环境中,并在所述可信执行环境中解密所述交易密文以得到明文的所述区块链交易。
95.可选的,所述业务处理逻辑和所述数据授权逻辑由所述区块链系统在所述可信执行环境中执行。
96.可选的,所述数据授权对象包括以下至少之一:所述数据授权逻辑从所述区块链交易的交易字段中读取的对象、所述数据授权逻辑中预先定义的对象。
97.可选的,所述数据授权逻辑从所述区块链交易的交易字段中读取的对象,包括以下至少之一:交易发起方字段所描述的对象、交易数据字段所描述的对象。
98.可选的,获取单元704具体用于:向所述区块链系统发起拉块请求,以获取所述区块链交易所处的区块,该区块包含所述交易回执。
99.可选的,所述加密处理后的目标授权数据被添加有对应的明文描述信息,所述明文描述信息包含相应的数据授权对象的身份标识;所述装置还包括,区块返回单元706:响应于任一数据授权对象发起的数据获取请求,将所述区块返回至所述任一数据授权对象,或者,根据所述任一数据授权对象的身份标识,向所述任一数据授权对象返回其对应的加密处理后目标授权数据。
100.可选的,所述身份标识包括:所述身份标识包括:所述授权对象的身份id、所述授权对象的身份公钥、所述授权对象的身份id的哈希值和/或所述授权对象的身份公钥的哈希值。
101.可选的,不同数据授权对象对应于相同的目标授权数据;或者,不同数据授权对象对应的目标授权数据之间相互独立。
102.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
103.在一个典型的配置中,计算机包括一个或多个处理器 (cpu)、输入/输出接口、网络接口和内存。
104.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (ram) 和/或非易失性内存等形式,如只读存储器 (rom) 或闪存(flash ram)。内存是计算机可读介质的示例。
105.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (pram)、静态随机存取存储器 (sram)、动态随机存取存储器 (dram)、其他类型的随机存取存储器 (ram)、只读存储器 (rom)、电可擦除可编程只读存储器 (eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器 (cd

rom)、数字多功能光盘 (dvd) 或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
106.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
107.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
108.在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
109.应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
110.以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献