CN112418853A - 基于区块链的交易数据加密方法及装置 - Google Patents

基于区块链的交易数据加密方法及装置 Download PDF

Info

Publication number
CN112418853A
CN112418853A CN202011001460.8A CN202011001460A CN112418853A CN 112418853 A CN112418853 A CN 112418853A CN 202011001460 A CN202011001460 A CN 202011001460A CN 112418853 A CN112418853 A CN 112418853A
Authority
CN
China
Prior art keywords
transaction
transaction data
encryption
blockchain
encrypted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011001460.8A
Other languages
English (en)
Inventor
张翘楚
李华敬
王鑫
张鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202011001460.8A priority Critical patent/CN112418853A/zh
Publication of CN112418853A publication Critical patent/CN112418853A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本申请公开了一种基于区块链的交易数据加密方法、装置。该方法包括:接收交易发起方发起的交易请求,所述交易请求中携带有交易接收方的公钥;根据所述交易请求中携带的公钥的数量确定加密方式,所述加密方式包括加密算法及加密密钥;通过加密模块并采用所述确定的加密方式对交易数据进行加密,得到加密后的交易数据;广播所述加密后的交易数据,以通过矿工将所述加密后的交易数据上传至区块链。本申请可以提供交易数据的安全性和保密性。

Description

基于区块链的交易数据加密方法及装置
技术领域
本申请涉及区块链技术领域,尤其涉及一种基于区块链的交易数据加密方法、装置。
背景技术
区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,用于存储区块链网络上所有用户的账户,公共账本位于存储区块上任何节点可见,从而保证其不可伪造和篡改。
现有的区块链技术,用户的交易数据没有经过加密直接存储在区块上,导致用户交易数据中的敏感信息完全暴露在所有节点上,比如用户在发起转账交易时,交易信息中的交易金额也是完全公开的。这种方式在实现了区块链去中心化、信息不可篡改的基本功能外,用户的账户隐私完暴露在区块链的所有节点上。
发明内容
有鉴于此,现提供一种基于区块链的交易数据加密方法、装置、计算机设备及计算机可读存储介质,以解决现有技术中交易数据中的隐私数据暴露在区块链的所有节点上的问题。
本申请提供了一种基于区块链的交易数据加密方法,包括:
接收交易发起方发起的交易请求,所述交易请求中携带有交易接收方的公钥;
根据所述交易请求中携带的公钥的数量确定加密方式,所述加密方式包括加密算法及加密密钥;
通过加密模块并采用所述确定的加密方式对交易数据进行加密,得到加密后的交易数据;
广播所述加密后的交易数据,以通过矿工将所述加密后的交易数据上传至区块链。
可选地,所述根据所述交易请求中携带的公钥的数量确定加密方式包括:
在所述交易请求中携带有一个公钥时,确定所述加密算法为预设的非对称加密算法,及确定所述加密密钥为所述交易请求中携带的公钥;
在所述交易请求中携带有至少两个公钥时,确定所述加密算法为预设的属性加密算法,及确定所述加密密钥为所述交易请求中携带的至少两个公钥组成的集合。
可选地,所述交易请求中还携带有交易类型信息,所述根据所述交易请求中携带的公钥的数量确定加密方式的步骤之前,还包括:
根据所述交易类型信息确定所述交易发起方发起的交易是否为私密交易;
若所述交易发起方发起的交易为私密交易,则执行所述根据所述交易请求中携带的公钥的数量确定加密方式的步骤。
可选地,所述基于区块链的交易数据加密方法还包括:
对所述加密后的交易数据进行哈希运算,得到哈希值;
所述广播所述加密后的交易数据,以通过矿工将所述加密后的交易数据上传至区块链的步骤包括:
广播所述加密后的交易数据和所述哈希值,以通过矿工将所述加密后的交易数据和所述哈希值上传至区块链。
可选地,所述基于区块链的交易数据加密方法还包括:
在检测到所述区块链中包含有新的交易时,判断用户是否为交易接收方;
若所述用户为交易接收方,则从所述区块链中获取所述新的交易对应的第一交易数据,所述第一交易数据为经过加密后的交易数据;
通过所述加密模块,并使用所述用户对应的私钥对所述第一交易数据进行解密,得到交易数据。
可选地,所述判断用户是否为交易接收方包括:
从所述区块链中获取所述新的交易中包含的交易接收方地址;
判断所述新的交易中包含的交易接收方地址与所述用户对应的地址是否相同,其中,若地址相同,则判定所述用户为交易接收方。
可选地,所述通过加密模块,并使用所述用户对应的私钥对所述第一交易数据进行解密,得到交易数据的步骤之前,还包括:
从所述区块链中获取所述新的交易对应的哈希值;
对所述第一交易数据进行哈希运算,得到第一哈希值;
判断所述第一哈希值与所述新的交易对应的哈希值是否相同;
若相同,则执行通过加密模块,并使用所述用户对应的私钥对所述第一交易数据进行解密,得到交易数据的步骤。
本申请还提供了一种基于区块链的交易数据加密装置,包括:
接收模块,用于接收交易发起方发起的交易请求,所述交易请求中携带有交易接收方的公钥;
确定模块,用于根据所述交易请求中携带的公钥的数量确定加密方式,所述加密方式包括加密算法及加密密钥;
加密模块,用于通过加密模块并采用所述确定的加密方式对交易数据进行加密,得到加密后的交易数据;
广播模块,用于广播所述加密后的交易数据,以通过矿工将所述加密后的交易数据上传至区块链。
本申请还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
上述技术方案的有益效果:
本申请实施例中,通过接收交易发起方发起的交易请求,所述交易请求中携带有交易接收方的公钥;根据所述交易请求中携带的公钥的数量确定加密方式,所述加密方式包括加密算法及加密密钥;通过加密模块并采用所述确定的加密方式对交易数据进行加密,得到加密后的交易数据;广播所述加密后的交易数据,以通过矿工将所述加密后的交易数据上传至区块链。在本申请实施例中,通过采用交易接收方的密钥对交易数据进行加密,保证交易数据在区块链上只有交易接收方可见,提高了交易数据的安全性和保密性。
附图说明
图1为本申请实施例的交易过程示意图;
图2为本申请所述的基于区块链的交易数据加密方法的一种实施例的流程图;
图3为本申请根据所述交易请求中携带的公钥的数量确定加密方式的步骤细化流程图;
图4为本申请所述的基于区块链的交易数据加密方法的另一种实施例的流程图;
图5为本申请判断用户是否为交易接收方的步骤细化流程图;
图6为本申请所述的基于区块链的交易数据加密装置的一种实施例的程序模块图;
图7为本申请实施例提供的执行基于区块链的交易数据加密方法的计算机设备的硬件结构示意图。
具体实施方式
以下结合附图与具体实施例进一步阐述本申请的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
图1示意性示出了根据本申请实施例的交易过程示意图。在示例性的实施例中,在用户需要进行交易时,由交易发起节点发起交易,然后将交易数据通过本地的加密模块进行加密,在完成对交易数据的加密之后,加密模块将加密后的交易数据返回给交易发起节点,交易发起节点将该加密后的交易数据进行广播,以通过矿工将加密后的交易数据上传至区块链中,即实现交易上链。之后,交易接收节点可以从区块链中获取加密后的交易数据,并在获取到加密后的交易数据后,将其传给本地的加密模块,以通过本地的加密模块对加密后的交易数据进行解密,得到交易数据。
需要说明的是,区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
参阅图2,其为本申请一实施例的基于区块链的交易数据加密方法的流程示意图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备为执行主体进行示例性描述,在本实施例中,该计算机设备作为交易发起节点。从图中可以看出,本实施例中所提供的基于区块链的交易数据加密方法包括:
步骤S20、接收交易发起方发起的交易请求,所述交易请求中携带有交易接收方的公钥。
具体地,当用户需要进行交易时,交易发起方可以通过交易发起节点发起交易,并在发起交易时,交易发起方可以在交易中添加交易接收方的公钥。在本实施例中,当交易接收方需要和一个交易接收方a进行交易时,则可以在交易中添加交易接收方a的公钥;当交易接收方需要和多个交易接收方进行交易时,比如,需要和交易接收方a与交易接收方b进行交易,则可以在交易中添加交易接收方a与交易接收方b的公钥。
交易发起方在完成交易接收方的公钥添加之后,可以触发一个交易请求,其中,交易发起方可以点击预设控件的方式来触发交易请求,比如,点击“转账”控件来触发一个交易请求。
需要说明的是,本实施例中的交易接收方可以为真实的与交易发起方进行交易的用户,也可以为需要对交易发起方发起的交易进行监管的用户。
步骤S21,根据所述交易请求中携带的公钥的数量确定加密方式,所述加密方式包括加密算法及加密密钥。
具体地,交易请求中携带的公钥的数量不同,对交易数据进行加密的加密方式不同。
示例的,参照图3,所述根据所述交易请求中携带的公钥的数量确定加密方式,所述加密方式包括加密算法及加密密钥包括:
步骤S30,在所述交易请求中携带有一个公钥时,确定所述加密算法为预设的非对称加密算法,及确定所述加密密钥为所述交易请求中携带的公钥。
具体地,当交易请求中只携带有一个公钥时,则可以采用预设的非对称加密算法对交易数据进行加密,并将所述交易请求中携带的公钥作为对该交易数据进行加密的加密密钥。
需要说明的是,非对称加密算法是一种密钥的保密方法。非对称加密算法需要两个密钥,分别为公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将公钥公开,需要向甲方发送信息的其他角色(乙方)使用该密钥(甲方的公钥)对机密信息进行加密后再发送给甲方;甲方再用自己私钥对加密后的信息进行解密。甲方想要回复乙方时正好相反,使用乙方的公钥对数据进行加密,同理,乙方使用自己的私钥来进行解密。
在本实施例中,该预设的非对称加密算法可以为RSA算法、Elgamal算法、DSA(Digital Signature Algorithm,数字签名算法)、ECC(椭圆曲线加密算法)算法等。
步骤S31,在所述交易请求中携带有至少两个公钥时,确定所述加密算法为预设的属性加密算法,及确定所述加密密钥为所述交易请求中携带的至少两个公钥组成的集合。
具体地,当交易请求中携带有至少两个公钥时,则可以采用预设的属性加密算法对交易数据进行加密,并将所述交易请求中携带的至少两个公钥组成的集合作为对该交易数据进行加密的加密密钥。比如,交易请求中携带有公钥A与公钥B,则可以将{公钥A,公钥B}的集合作为加密密钥。
其中,属性加密算法(ABE),又称模糊的基于身份的加密算法。ABE与以前的公钥加密方案,如RSA和身份基加密最大的不同点就是,ABE实现了一对多的加解密。不需要像身份加密一样,每次解密都必须知道接收者的身份信息,在ABE中它把身份标识被看做是一系列的属性。当用户拥有的属性超过加密者所描述的预设门槛时,用户是可以解密的。但这种基于预设门槛的方案不具有通用性。因为在语义上无法表述一个普遍通用的情景。
基于属性加密主要分为两大类:密文策略的属性加密(CP-ABE)和密钥策略的属性加密(KP-ABE)。在本实施例中,该属性加密算法为CP-ABE。
可以理解的是,本实施例中将{公钥A,公钥B}的集合作为加密密钥,相当于是设定{公钥A,公钥B}的集合为该预设的属性加密算法的属性,在具体进行加密时,可以设定策略为具有公钥A或公钥B的交易接收方可以对交易数据进行解密。
本实施例中通过在存在多个交易接收方使用ABE对交易数据进行加密,从而可以实现一人对多人交易的需求,并保证交易数据的保密性。
在一示例性的实施方式中,所述交易请求中除了携带有交易接收方的公钥,还可以携带有交易类型信息,所述交易类型信息为用于表示当前交易是私密交易还是公开交易的信息。其中,若所述交易类型信息为私密交易,则表明当前交易需要使用加密模块进行加密,若所述交易类型信息为公开交易,则表明当前交易不需要通过加密模块进行加密。
由于当前交易可能为私密交易也可能为公开交易,因此,在本实施例中,在根据所述交易请求中携带的公钥的数量确定加密方式的步骤之前,还需要根据所述交易类型信息确定所述交易发起方发起的交易是否为私密交易,当确定交易为私密交易时,才会根据所述交易请求中携带的公钥的数量确定加密方式。在确定交易为公开交易时,无需通过加密模块对交易数据进行加密,从而可以节省加密的时间。
步骤S22,通过加密模块并采用所述确定的加密方式对交易数据进行加密,得到加密后的交易数据。
具体地,所述加密模块为部署在计算机设备中本地的模块,该加密模块不开放端口与其他外部节点进行通信,因此,该加密模块的安全性很高,甚至可以离线完成加解密过程。
在本实施例中,当交易请求中只携带公钥A时,所述加密模块会采用预设的非对称加密算法,并将该公钥A作为加密密钥对交易数据进行加密,比如加密模块采用RSA算法,并将公钥A作为加密密钥对交易数据进行加密。当交易请求中携带公钥A和公钥B时,所述加密模块会采用ABE,并将集合{公钥A,公钥B}作为加密密钥对交易数据进行加密。
需要说明的是,本实施例中的加密数据可以包括交易双方账户地址(也可为多方账户信息)、交易额度(如100、10000或333等)、货币类型(如美元、欧元、人民币或虚拟货币)、以及交易时间等信息。
可以理解的是,在本实施例中,当加密模块对交易数据进行加密时,也可以仅仅对交易数据中的敏感数据进行加密,比如,只对交易数据中的交易额度,在本实施例中不作限定。
步骤S23,广播所述加密后的交易数据,以通过矿工将所述加密后的交易数据上传至区块链。
具体地,在得到加密后的交易数据后,需要对加密后的交易数据进行广播,以便矿工可以对加密后的交易数据进行打包并上传至区块链中,实现交易数据上链。
其中,矿工指的是在区块链中尝试创建新的区块添加到区块链上的机器,同时矿工也指代为在区块链中尝试创建新的区块并添加到区块链上的软件。
在本实施例中,该区块链可以为公有区块链、联盟(行业)区块链或私有区块链,在本实施例中,所述区块链优选为以太坊区块链,其中,以太坊区块链是一个开源的有智能合约功能的公共区块链平台。
本申请实施例中,通过接收交易发起方发起的交易请求,所述交易请求中携带有交易接收方的公钥;根据所述交易请求中携带的公钥的数量确定加密方式,所述加密方式包括加密算法及加密密钥;通过加密模块并采用所述确定的加密方式对交易数据进行加密,得到加密后的交易数据;广播所述加密后的交易数据,以通过矿工将所述加密后的交易数据上传至区块链。在本申请实施例中,通过采用交易接收方的密钥对交易数据进行加密,保证交易数据在区块链上只有交易接收方可见,提高了交易数据的安全性和保密性。此外,本实施例中的进行私密交易时,无需部署智能合约,简化了私密交易发起的过程,提供区块链上各节点间私密交易的渠道,在保证区块链数据安全、透明、不可篡改且可溯源的基础上提升了交易相关方信息的私密性和交易的安全性。
在一示例性的实施方式中,所述基于区块链的交易数据加密方法还包括:
对所述加密后的交易数据进行哈希运算,得到哈希值。
具体地,为了增强交易数据的安全性,在本实施例中,当得到加密后的交易数据后,可以进一步采用预设的哈希算法对加密后的交易数据进行哈希运算,以得到对应的哈希值。
其中,所述哈希算法可以为安全散列算法(Secure Hash Algorithm,缩写为SHA)、MD5信息摘要算法(比如,MD5算法)等。
可以理解的是,可以采用所述加密模块对加密后的交易数据进行哈希运算,也可以采用其他加密模块对加密后的交易数据进行哈希运算,在本实施例中不作限定。
在本实施例中,当对加密后的交易数据进行哈希运算时,相应的,所述广播所述加密后的交易数据,以通过矿工将所述加密后的交易数据上传至区块链的步骤包括:
广播所述加密后的交易数据和所述哈希值,以通过矿工将所述加密后的交易数据和所述哈希值上传至区块链。
具体地,在对加密后的交易数据进行广播时,需要同时将该哈希值进行广播,以便通过矿工可以将所述加密后的交易数据和所述哈希值进行打包并上传至区块链。
本实施例中,通过对加密后的交易数据进行哈希运算得到哈希值,以便交易接收方在接收到该加密后的交易数据后,可以先对该加密后的交易数据进行哈希运算得到哈希值,然后,将得到的哈希值与该加密后的交易数据一块上传至区块链中的哈希值进行比较,以判定交易数据是否发生篡改或丢失。其中,在两个哈希值相同时,则表明交易数据没有发生篡改或丢失;当两个哈希值不相同时,则表明交易数据发生篡改或丢失。
在一示例性的实施方式中,参照图4,为本申请另一实施例的基于区块链的交易数据加密方法的流程示意图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面仍以计算机设备为执行主体进行示例性描述,在本实施例中,该计算机设备作为交易接收节点。从图中可以看出,本实施例中所提供的基于区块链的交易数据加密方法包括:
步骤S40,在检测到所述区块链中包含有新的交易时,判断用户是否为交易接收方。
具体地,可以启动一个定时任务来定时检测区块链中是否存在新的交易,比如,每隔5分钟检测区块链中是否有新的交易。
在本实施例中,在检测到区块链中存在新的交易时,可以判断用户是否为该新的交易的交易接收方。
在一示例性的实施方式中,参阅图5,所述判断用户是否为交易接收方包括:
步骤S50,从所述区块链中获取所述新的交易中包含的交易接收方地址;
步骤S51,判断所述新的交易中包含的交易接收方地址与所述用户对应的地址是否相同,其中,若地址相同,则判定所述用户为交易接收方。
具体地,由于区块链中每笔交易的交易数据中都包含有交易接收方的地址字段,因此,在检测到区块链中包含有新的交易时,可以获取该新的交易的交易数据中的交易接收方的地址字段,以从该地址字段中获取交易接收方地址。
在获取到交易接收方地址后,可以将该交易接收方地址与该用户对应的地址进行比较,以确定两个地址是否相同,若两个地址不同,则判定所述用户不是交易接收方;若两个地址相同,则判定所述用户是交易接收方。
需要说明的是,所述用户为运行在计算机设备上的交易节点。
步骤S41,若所述用户为交易接收方,则从所述区块链中获取所述新的交易对应的第一交易数据,所述第一交易数据为经过加密后的交易数据。
步骤S42,通过所述加密模块,并使用所述用户对应的私钥对所述第一交易数据进行解密,得到交易数据。
具体地,当用户为交易接收方时,则可以从所述区块链中获取所述新的交易对应的第一交易数据,然后通过本地的加密模块,并使用所述用户对应的私钥对该第一交易数据进行解密,从而得到交易数据。其中,该第一交易数据预先通过所述加密模块,并使用交易发起方的公钥对交易数据进行加密后得到的,所述私钥是与该交易发起方的公钥相对应的。
当用户不是交易接收方时,由于不具有对应的私钥,因此,及时通过所述加密模块,并使用所述用户对应的私钥对所述第一交易数据进行解密,也会因为私钥不对应而解密失败。
在一示例性的实施方式中,当区块链中的每一笔交易具有表征该交易是否被篡改或丢失的哈希值时,则在通过加密模块,并使用所述用户对应的私钥对所述第一交易数据进行解密,得到交易数据的步骤之前,还包括:从所述区块链中获取所述新的交易对应的哈希值;对所述第一交易数据进行哈希运算,得到第一哈希值;判断所述第一哈希值与所述新的交易对应的哈希值是否相同;若相同,则通过加密模块,并使用所述用户对应的私钥对所述第一交易数据进行解密,得到交易数据。
具体地,为了确定从区块链中获取到新的交易是没有发生篡改或者丢失的交易,则在获取到该新的交易时,可以同时从区块链中获取该新的交易对应的哈希值,然后对第一交易数据进行哈希运算,得到第一哈希值,其中,可以采用所述加密模块对第一交易数据进行哈希运算,也可以使用其他模块对第一交易数据进行哈希运算。在得到第一哈希值之后,即可以将该第一哈希值与新的交易对应的哈希值进行比较,若两个哈希值相同,则表明该新的交易没有发生篡改或者丢失,可以通过加密模块,并使用所述用户对应的私钥对所述第一交易数据进行解密,得到交易数据;若两个哈希值不同,则表明该新的交易发生篡改或者丢失,则无需对第一交易数据进行解密,可以通知交易发起方其发起的交易发生篡改或者丢失,若其重新发起交易。
参阅图6所示,是本申请基于区块链的交易数据加密装置60一实施例的程序模块图。
本实施例中,所述基于区块链的交易数据加密装置60包括一系列的存储于存储器上的计算机程序指令,当该计算机程序指令被处理器执行时,可以实现本申请各实施例的基于区块链的交易数据加密功能。在一些实施例中,基于该计算机程序指令各部分所实现的特定的操作,基于区块链的交易数据加密装置60可以被划分为一个或多个模块。例如,在图5中,所述基于区块链的交易数据加密装置60可以被分割成接收模块61、确定模块62、加密模块63、广播模块64。其中:
接收模块61,用于接收交易发起方发起的交易请求,所述交易请求中携带有交易接收方的公钥。
确定模块62,用于根据所述交易请求中携带的公钥的数量确定加密方式,所述加密方式包括加密算法及加密密钥。
在一示例性的实施方式中,确定模块62,还用于在所述交易请求中携带有一个公钥时,确定所述加密算法为预设的非对称加密算法,及确定所述加密密钥为所述交易请求中携带的公钥;在所述交易请求中携带有至少两个公钥时,确定所述加密算法为预设的属性加密算法,及确定所述加密密钥为所述交易请求中携带的至少两个公钥组成的集合。
加密模块63,用于通过加密模块并采用所述确定的加密方式对交易数据进行加密,得到加密后的交易数据。
广播模块64,用于广播所述加密后的交易数据,以通过矿工将所述加密后的交易数据上传至区块链。
在一示例性的实施方式中,所述交易请求中还携带有交易类型信息,确定模块62,还用于根据所述交易类型信息确定所述交易发起方发起的交易是否为私密交易。其中,若所述交易发起方发起的交易为私密交易,则确定模块62还会根据所述交易请求中携带的公钥的数量确定加密方式。
在一示例性的实施方式中,基于区块链的交易数据加密装置60还包括哈希模块。
所述哈希模块,用于对所述加密后的交易数据进行哈希运算,得到哈希值。
广播模块64,还用于广播所述加密后的交易数据和所述哈希值,以通过矿工将所述加密后的交易数据和所述哈希值上传至区块链。
在一示例性的实施方式中,基于区块链的交易数据加密装置60还包括检测模块、交易获取模块及解密模块。
检测模块,用于在检测到所述区块链中包含有新的交易时,判断用户是否为交易接收方。
交易获取模块,用于若所述用户为交易接收方,则从所述区块链中获取所述新的交易对应的第一交易数据,所述第一交易数据为经过加密后的交易数据。
解密模块,用于通过所述加密模块,并使用所述用户对应的私钥对所述第一交易数据进行解密,得到交易数据。
在一示例性的实施方式中,检测模块,还用于从所述区块链中获取所述新的交易中包含的交易接收方地址;判断所述新的交易中包含的交易接收方地址与所述用户对应的地址是否相同,其中,若地址相同,则判定所述用户为交易接收方。
在一示例性的实施方式中,所述哈希模块,还用于从所述区块链中获取所述新的交易对应的哈希值;对所述第一交易数据进行哈希运算,得到第一哈希值;判断所述第一哈希值与所述新的交易对应的哈希值是否相同。
解密模块,还用于若第一哈希值与所述新的交易对应的哈希值相同,则通过加密模块,并使用所述用户对应的私钥对所述第一交易数据进行解密,得到交易数据。
本申请实施例中,通过接收交易发起方发起的交易请求,所述交易请求中携带有交易接收方的公钥;根据所述交易请求中携带的公钥的数量确定加密方式,所述加密方式包括加密算法及加密密钥;通过加密模块并采用所述确定的加密方式对交易数据进行加密,得到加密后的交易数据;广播所述加密后的交易数据,以通过矿工将所述加密后的交易数据上传至区块链。在本申请实施例中,通过采用交易接收方的密钥对交易数据进行加密,保证交易数据在区块链上只有交易接收方可见,提高了交易数据的安全性和保密性。此外,本实施例中的进行私密交易时,无需部署智能合约,简化了私密交易发起的过程,提供区块链上各节点间私密交易的渠道,在保证区块链数据安全、透明、不可篡改且可溯源的基础上提升了交易相关方信息的私密性和交易的安全性。
图7示意性示出了根据本申请实施例的适于实现基于区块链的交易数据加密方法的计算机设备7的硬件架构示意图。本实施例中,计算机设备7是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图7所示,计算机设备7至少包括但不限于:可通过系统总线相互通信链接存储器120、处理器121、网络接口123。其中:
存储器120至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器120可以是计算机设备7的内部存储模块,例如该计算机设备7的硬盘或内存。在另一些实施例中,存储器120也可以是计算机设备7的外部存储设备,例如该计算机设备7上配备的插接式硬盘,智能存储卡(SmartMedia Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器120还可以既包括计算机设备7的内部存储模块也包括其外部存储设备。本实施例中,存储器120通常用于存储安装于计算机设备7的操作系统和各类应用软件,例如基于区块链的交易数据加密方法的程序代码等。此外,存储器120还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器121在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其它数据处理芯片。该处理器121通常用于控制计算机设备7的总体操作,例如执行与计算机设备7进行数据交互或者通信相关的控制和处理等。本实施例中,处理器121用于运行存储器120中存储的程序代码或者处理数据。
网络接口123可包括无线网络接口或有线网络接口,该网络接口123通常用于在计算机设备7与其它计算机设备之间建立通信链接。例如,网络接口123用于通过网络将计算机设备7与外部终端相连,在计算机设备7与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(GlobalSystem of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code DivisionMultiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图7仅示出了具有部件120~122的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器120中的基于区块链的交易数据加密方法可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器121)所执行,以完成本申请。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的基于区块链的交易数据加密方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的基于区块链的交易数据加密方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要筛选出其中的部分或者全部模块来实现本申请实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种基于区块链的交易数据加密方法,其特征在于,包括:
接收交易发起方发起的交易请求,所述交易请求中携带有交易接收方的公钥;
根据所述交易请求中携带的公钥的数量确定加密方式,所述加密方式包括加密算法及加密密钥;
通过加密模块并采用所述确定的加密方式对交易数据进行加密,得到加密后的交易数据;
广播所述加密后的交易数据,以通过矿工将所述加密后的交易数据上传至区块链。
2.根据权利要求1所述的基于区块链的交易数据加密方法,其特征在于,所述根据所述交易请求中携带的公钥的数量确定加密方式包括:
在所述交易请求中携带有一个公钥时,确定所述加密算法为预设的非对称加密算法,及确定所述加密密钥为所述交易请求中携带的公钥;
在所述交易请求中携带有至少两个公钥时,确定所述加密算法为预设的属性加密算法,及确定所述加密密钥为所述交易请求中携带的至少两个公钥组成的集合。
3.根据权利要求1所述的基于区块链的交易数据加密方法,其特征在于,所述交易请求中还携带有交易类型信息,所述根据所述交易请求中携带的公钥的数量确定加密方式的步骤之前,还包括:
根据所述交易类型信息确定所述交易发起方发起的交易是否为私密交易;
若所述交易发起方发起的交易为私密交易,则执行所述根据所述交易请求中携带的公钥的数量确定加密方式的步骤。
4.根据权利要求1所述的基于区块链的交易数据加密方法,其特征在于,所述基于区块链的交易数据加密方法还包括:
对所述加密后的交易数据进行哈希运算,得到哈希值;
所述广播所述加密后的交易数据,以通过矿工将所述加密后的交易数据上传至区块链的步骤包括:
广播所述加密后的交易数据和所述哈希值,以通过矿工将所述加密后的交易数据和所述哈希值上传至区块链。
5.根据权利要求1至4任一项所述的基于区块链的交易数据加密方法,其特征在于,所述基于区块链的交易数据加密方法还包括:
在检测到所述区块链中包含有新的交易时,判断用户是否为交易接收方;
若所述用户为交易接收方,则从所述区块链中获取所述新的交易对应的第一交易数据,所述第一交易数据为经过加密后的交易数据;
通过所述加密模块,并使用所述用户对应的私钥对所述第一交易数据进行解密,得到交易数据。
6.根据权利要求5所述的基于区块链的交易数据加密方法,其特征在于,所述判断用户是否为交易接收方包括:
从所述区块链中获取所述新的交易中包含的交易接收方地址;
判断所述新的交易中包含的交易接收方地址与所述用户对应的地址是否相同,其中,若地址相同,则判定所述用户为交易接收方。
7.根据权利要求5所述的基于区块链的交易数据加密方法,其特征在于,所述通过加密模块,并使用所述用户对应的私钥对所述第一交易数据进行解密,得到交易数据的步骤之前,还包括:
从所述区块链中获取所述新的交易对应的哈希值;
对所述第一交易数据进行哈希运算,得到第一哈希值;
判断所述第一哈希值与所述新的交易对应的哈希值是否相同;
若相同,则执行通过加密模块,并使用所述用户对应的私钥对所述第一交易数据进行解密,得到交易数据的步骤。
8.一种基于区块链的交易数据加密装置,其特征在于,包括:
接收模块,用于接收交易发起方发起的交易请求,所述交易请求中携带有交易接收方的公钥;
确定模块,用于根据所述交易请求中携带的公钥的数量确定加密方式,所述加密方式包括加密算法及加密密钥;
加密模块,用于通过加密模块并采用所述确定的加密方式对交易数据进行加密,得到加密后的交易数据;
广播模块,用于广播所述加密后的交易数据,以通过矿工将所述加密后的交易数据上传至区块链。
9.一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的基于区块链的交易数据加密方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述的基于区块链的交易数据加密方法的步骤。
CN202011001460.8A 2020-09-22 2020-09-22 基于区块链的交易数据加密方法及装置 Pending CN112418853A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011001460.8A CN112418853A (zh) 2020-09-22 2020-09-22 基于区块链的交易数据加密方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011001460.8A CN112418853A (zh) 2020-09-22 2020-09-22 基于区块链的交易数据加密方法及装置

Publications (1)

Publication Number Publication Date
CN112418853A true CN112418853A (zh) 2021-02-26

Family

ID=74854036

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011001460.8A Pending CN112418853A (zh) 2020-09-22 2020-09-22 基于区块链的交易数据加密方法及装置

Country Status (1)

Country Link
CN (1) CN112418853A (zh)

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103166958A (zh) * 2013-02-26 2013-06-19 深圳创维数字技术股份有限公司 一种文件的保护方法及系统
CN104253694A (zh) * 2014-09-27 2014-12-31 杭州电子科技大学 一种用于网络数据传输的保密方法
CN104734857A (zh) * 2015-03-25 2015-06-24 南京邮电大学 一种无双线性对的多接收者混合签密算法
CN106911704A (zh) * 2017-03-13 2017-06-30 北京轻信科技有限公司 一种基于区块链的加密解密方法
CN107689947A (zh) * 2016-08-05 2018-02-13 华为国际有限公司 一种数据处理的方法和装置
CN108200079A (zh) * 2018-01-19 2018-06-22 深圳四方精创资讯股份有限公司 基于对称和非对称混合加密的区块链隐私保护方法及装置
CN108924167A (zh) * 2018-09-06 2018-11-30 贵阳信息技术研究院(中科院软件所贵阳分部) 一种基于区块链的无法篡改的网络出题和答题方法
CN109064324A (zh) * 2018-06-15 2018-12-21 重庆金融资产交易所有限责任公司 基于联盟链的交易方法、电子装置及可读存储介质
CN109102270A (zh) * 2018-07-24 2018-12-28 深圳前海益链网络科技有限公司 区块链数字Token的交易验证方法、计算机设备和存储介质
CN109559122A (zh) * 2018-12-07 2019-04-02 北京瑞卓喜投科技发展有限公司 区块链数据传输方法及区块链数据传输系统
CN109981584A (zh) * 2019-02-26 2019-07-05 符安文 一种基于区块链的分布式社交方法
CN110009346A (zh) * 2019-03-11 2019-07-12 巍乾全球技术有限责任公司 用于拆分和恢复密钥的方法、程序产品、存储介质和系统
CN110570313A (zh) * 2019-09-27 2019-12-13 深圳市网心科技有限公司 基于区块链的数据交易方法、数据交易装置及系统
CN110650010A (zh) * 2019-09-24 2020-01-03 支付宝(杭州)信息技术有限公司 一种非对称密钥中的私钥生成和使用方法、装置和设备

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103166958A (zh) * 2013-02-26 2013-06-19 深圳创维数字技术股份有限公司 一种文件的保护方法及系统
CN104253694A (zh) * 2014-09-27 2014-12-31 杭州电子科技大学 一种用于网络数据传输的保密方法
CN104734857A (zh) * 2015-03-25 2015-06-24 南京邮电大学 一种无双线性对的多接收者混合签密算法
CN107689947A (zh) * 2016-08-05 2018-02-13 华为国际有限公司 一种数据处理的方法和装置
CN106911704A (zh) * 2017-03-13 2017-06-30 北京轻信科技有限公司 一种基于区块链的加密解密方法
CN108200079A (zh) * 2018-01-19 2018-06-22 深圳四方精创资讯股份有限公司 基于对称和非对称混合加密的区块链隐私保护方法及装置
CN109064324A (zh) * 2018-06-15 2018-12-21 重庆金融资产交易所有限责任公司 基于联盟链的交易方法、电子装置及可读存储介质
CN109102270A (zh) * 2018-07-24 2018-12-28 深圳前海益链网络科技有限公司 区块链数字Token的交易验证方法、计算机设备和存储介质
CN108924167A (zh) * 2018-09-06 2018-11-30 贵阳信息技术研究院(中科院软件所贵阳分部) 一种基于区块链的无法篡改的网络出题和答题方法
CN109559122A (zh) * 2018-12-07 2019-04-02 北京瑞卓喜投科技发展有限公司 区块链数据传输方法及区块链数据传输系统
CN109981584A (zh) * 2019-02-26 2019-07-05 符安文 一种基于区块链的分布式社交方法
CN110009346A (zh) * 2019-03-11 2019-07-12 巍乾全球技术有限责任公司 用于拆分和恢复密钥的方法、程序产品、存储介质和系统
CN110650010A (zh) * 2019-09-24 2020-01-03 支付宝(杭州)信息技术有限公司 一种非对称密钥中的私钥生成和使用方法、装置和设备
CN110570313A (zh) * 2019-09-27 2019-12-13 深圳市网心科技有限公司 基于区块链的数据交易方法、数据交易装置及系统

Similar Documents

Publication Publication Date Title
CN112637166B (zh) 一种数据传输方法、装置、终端及存储介质
CN108833091B (zh) 一种日志文件的加密方法、解密方法及装置
CN112491812B (zh) 区块链一体机的哈希更新方法及装置
CN104836784B (zh) 一种信息处理方法、客户端和服务器
CN110661748B (zh) 一种日志的加密方法、解密方法及装置
CN107920052B (zh) 一种加密方法及智能装置
CN109034796A (zh) 基于联盟链的交易监管方法、电子装置及可读存储介质
CN112866228A (zh) 一种控制web系统越权访问的方法和装置
CN111294203B (zh) 信息传输方法
CN105227680A (zh) 一种智能设备文件下载有效性控制方法
US11930110B2 (en) System and method for key recovery and verification in blockchain based networks
CN110380859B (zh) 基于非对称密钥池对和dh协议的量子通信服务站身份认证方法和系统
CN111585995B (zh) 安全风控信息传输、处理方法、装置、计算机设备及存储介质
CN111404892B (zh) 数据监管方法、装置和服务器
CN117240625A (zh) 一种涉及防篡改的数据处理方法、装置及电子设备
CN113849797B (zh) 数据安全漏洞的修复方法、装置、设备及存储介质
CN112231754B (zh) 一种电力边缘计算节点配置信息监控方法、系统及存储介质
CN104506552B (zh) 一种信息系统安全监控及访问控制方法
CN112769789A (zh) 一种加密通信方法及系统
CN112418853A (zh) 基于区块链的交易数据加密方法及装置
CN114745115A (zh) 一种信息传输方法、装置、计算机设备及存储介质
CN116155483A (zh) 区块链签名机安全设计方法及签名机
CN114172664A (zh) 数据加密、数据解密方法、装置、电子设备及存储介质
CN114065170A (zh) 平台身份证书的获取方法、装置和服务器
CN112039921A (zh) 用于停车访问的验证方法、停车用户终端和节点服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20210226

RJ01 Rejection of invention patent application after publication