CN112464282A - 基于区块链的账户交易信息生成、处理的方法和装置 - Google Patents

基于区块链的账户交易信息生成、处理的方法和装置 Download PDF

Info

Publication number
CN112464282A
CN112464282A CN202011402524.5A CN202011402524A CN112464282A CN 112464282 A CN112464282 A CN 112464282A CN 202011402524 A CN202011402524 A CN 202011402524A CN 112464282 A CN112464282 A CN 112464282A
Authority
CN
China
Prior art keywords
transaction
address
amount
information
participating
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
CN202011402524.5A
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.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
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 China Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CN202011402524.5A priority Critical patent/CN112464282A/zh
Publication of CN112464282A publication Critical patent/CN112464282A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6263Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
    • 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/383Anonymous user system

Abstract

本发明公开了基于区块链的账户交易信息生成、处理的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:在交易发起的情况下,确定账户信息,账户信息包括发送地址、接收地址以及参与地址群;其中,参与地址群中包括至少一个交易发起时确定的参与地址;确定交易额信息,交易额信息包括发送地址的输入额、接收地址的输出额、以及参与地址群中每个参与地址的输入额和输出额,发送地址的输入额与每个参与地址的输入额之和,等于接收地址的输出额与每个参与地址的输出额之和;根据交易时间戳和账户信息、交易额信息,生成初始的交易信息。该实施方式解决了账户模型下区块链上交易信息的隐私安全性问题。

Description

基于区块链的账户交易信息生成、处理的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及基于区块链的账户交易信息生成、处理的方法和装置。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain)本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
区块链技术作为价值网络建设的基础设施,以分布式系统、密码学、博弈论为理论基础,通过巧妙的技术设计可以在多个领域为多方协作提供信任基础。它构建一种持续增长的、按序整理成区块的链式数据结构,通过网络中多个节点共同参与数据的计算和记录,并且互相验证其信息的有效性,从而保证数据的安全流动及存储。由于有效性证明的存在,任何人可验证交易数据的完整性,因此区块的内容难以被第三方篡改。
由于保障了数据的有序性与完整性,因此区块链适合作为账本记录交易流水。在区块链系统中,各节点间维持的是一致的公共账本,此账本记录了系统中每个节点的相关信息,节点间通过一定的共识机制对公共账本进行操作。在共享账本的情况下,网络中的所有用户都可以获取所有存储信息,包括区块和交易。通过交易数据,任何人都可以获取某个账户地址的金额以及追踪资金流向。
在实现本发明过程中,现有技术中至少存在如下问题:
针对数据安全性的问题,目前虽然区块链提供了假名特性,但并不是完全匿名,仍然存在暴露账户拥有者身份的可能,一旦真实的账户信息被泄露,交易将失去匿名效果,数据隐私安全将被破坏。
发明内容
有鉴于此,本发明实施例提供一种基于区块链的账户交易信息生成、处理的方法和装置,能够通过参与地址群对交易方以及交易金额的保密,使得在区块链的账户模型下同时实现隐私数据的保护和交易双方的隐藏,解决了账户模型下区块链上交易信息的隐私安全性问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种基于区块链的账户交易信息生成的方法。
本发明实施例的基于区块链的账户交易信息生成的方法包括:在交易发起的情况下,确定账户信息,所述账户信息包括发送地址、接收地址以及参与地址群;其中,所述参与地址群中包括至少一个交易发起时确定的参与地址;确定交易额信息,所述交易额信息包括所述发送地址的输入额、所述接收地址的输出额、以及所述参与地址群中每个参与地址的输入额和输出额,所述发送地址的输入额与每个参与地址的输入额之和,等于所述接收地址的输出额与每个参与地址的输出额之和;确定交易时间戳,以及根据所述交易时间戳和账户信息、交易额信息,生成初始的交易信息。
可选地,确定所述交易额信息的步骤,包括:根据所述发送地址的实际输入额以及中间费用,确定所述发送地址的输入额;将所述实际输入额确定为所述接收地址的输出额;根据所述中间费用,确定所述参与地址群中每个参与地址的输入额和输出额,其中,所述发送地址的输入额与每个参与地址的输入额之和,等于所述接收地址的输出额与每个参与地址的输出额之和。
可选地,根据所述中间费用,确定所述参与地址群中每个参与地址的输入额和输出额,的步骤,包括:确定所述参与地址群中每个参与地址的个数N;产生N个第一随机数,以及确定所述N个第一随机数的总和;在所述参与地址群中每个参与地址的输入额为零的情况下,根据所述N个第一随机数中每个第一随机数与所述总和的比值,将所述中间费用分配给所述参与地址群中的N个参与地址,以确定所述参与地址群中每个参与地址的输出额。
可选地,在确定交易时间戳,以及根据所述交易时间戳和账户信息、交易额信息,生成初始的交易信息之前,还包括:确定加密公钥群,所述加密公钥群由区块链中记账节点的公钥群、所述发送地址的公钥、所述输出地址的公钥构成;根据所述加密公钥群,对所述交易额信息进行加密,得到加密后的交易额信息,使得根据所述账户信息以及加密后的交易额信息,生成加密的交易信息。
可选地,根据所述加密公钥群,对所述交易额信息进行加密,得到加密后的交易额信息的步骤,包括:针对所述发送地址的输入额、所述接收地址的输出额、以及所述参与地址群中每个参与地址的输入额和输出额,分别产生第二随机数;根据所述加密公钥群以及所述第二随机数,对所述发送地址的输入额、所述接收地址的输出额、以及所述参与地址群中每个参与地址的输入额和输出额进行加密。
可选地,在确定交易时间戳,以及根据所述交易时间戳和账户信息、交易额信息,生成初始的交易信息的步骤包括:根据所述发送地址的私钥以及所述参与地址群的公钥,构建环签名;确定交易时间戳,以及根据所述交易时间戳和账户信息、交易额信息、环签名,生成环签名的交易信息。
可选地,所述中间费用根据所述实际输入额以及预设系数确定。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种基于区块链的账户交易信息处理的方法。
本发明实施例的基于区块链的账户交易信息处理的方法包括:在接收到交易信息后,验证所述交易信息中发送地址、接收地址是否正确以及交易时间戳是否正常;
在验证通过的情况下,将所述交易信息广播至其他普通节点,以进行共识验证投票;
将共识验证通过的交易打包至准区块中,并且基于区块高度记录表,更新在途交易账户状态表;其中,所述区块高度记录表中记录有每个地址最新一笔作为发送方参与交易的区块高度;所述在途交易账户状态表中记录有地址参与交易时的账户状态,所述账户状态包括区块高度和交易时间;
针对所述准区块中的每笔交易,验证其在所述在途交易账户状态表中记录的区块高度与其在所述区块高度记录表中记录的区块高度一致的情况下,将所准区块内的交易进行入账操作,以及更新所述区块高度记录表以及所述在途交易账户状态表。
可选地,在将所准区块内的交易进行入账操作之前,还包括:记账节点在接收准区块后,用私钥解密各交易的发送地址的输入额和所述接收地址的输出额,以及验证所述输入额与输出额是否相等;若不相等则返回验证失败,删除该交易在所述在途交易账户状态信息表中的账户信息,并且反馈该交易处理结束。
可选地,将所准区块内的交易进行入账操作的步骤包括:针对区块高度验证一致的交易,根据其在准区块中的发送地址分组,组内按照交易在所述在途交易状态信息中的账户状态进行排序;根据所述分组以及排序的结果,对组内的交易依次进行入账。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种基于区块链的账户交易信息生成的装置。
本发明实施例的基于区块链的账户交易信息生成的装置包括:
第一确定模块,用于在交易发起的情况下,确定账户信息,所述账户信息包括发送地址、接收地址以及参与地址群;其中,所述参与地址群中包括至少一个交易发起时确定的参与地址;
第二确定模块,用于确定交易额信息,所述交易额信息包括所述发送地址的输入额、所述接收地址的输出额、以及所述参与地址群中每个参与地址的输入额和输出额,所述发送地址的输入额与每个参与地址的输入额之和,等于所述接收地址的输出额与每个参与地址的输出额之和;
生成模块,用于确定交易时间戳,以及根据所述交易时间戳和账户信息、交易额信息,生成初始的交易信息
可选地,所述第二确定模块还用于,根据所述发送地址的实际输入额以及中间费用,确定所述发送地址的输入额;将所述实际输入额确定为所述接收地址的输出额;根据所述中间费用,确定所述参与地址群中每个参与地址的输入额和输出额,其中,所述发送地址的输入额与每个参与地址的输入额之和,等于所述接收地址的输出额与每个参与地址的输出额之和。
可选地,所述第二确定模块还用于,确定所述参与地址群中每个参与地址的个数N;产生N个第一随机数,以及确定所述N个第一随机数的总和;在所述参与地址群中每个参与地址的输入额为零的情况下,根据所述N个第一随机数中每个第一随机数与所述总和的比值,将所述中间费用分配给所述参与地址群中的N个参与地址,以确定所述参与地址群中每个参与地址的输出额。
可选地,还包括加密模块,用于确定加密公钥群,所述加密公钥群由区块链中记账节点的公钥群、所述发送地址的公钥、所述输出地址的公钥构成;根据所述加密公钥群,对所述交易额信息进行加密,得到加密后的交易额信息,使得根据所述账户信息以及加密后的交易额信息,生成加密的交易信息。
可选地,所述加密模块还用于,针对所述发送地址的输入额、所述接收地址的输出额、以及所述参与地址群中每个参与地址的输入额和输出额,分别产生第二随机数;根据所述加密公钥群以及所述第二随机数,对所述发送地址的输入额、所述接收地址的输出额、以及所述参与地址群中每个参与地址的输入额和输出额进行加密。
可选地,所述生成模块还用于,根据所述发送地址的私钥以及所述参与地址群的公钥,构建环签名;确定交易时间戳,以及根据所述交易时间戳和账户信息、交易额信息、环签名,生成环签名的交易信息。
可选地,所述中间费用根据所述实际输入额以及预设系数确定。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种基于区块链的账户交易信息处理的装置。
本发明实施例的基于区块链的账户交易信息处理的装置包括:
交易验证模块,用于在接收到交易信息后,验证所述交易信息中发送地址、接收地址是否正确以及交易时间戳是否正常;在验证通过的情况下,将所述交易信息广播至其他普通节点,以进行共识验证投票;将共识验证通过的交易打包至准区块中,并且基于区块高度记录表,更新在途交易账户状态表;其中,所述区块高度记录表中记录有每个地址最新一笔作为发送方参与交易的区块高度;所述在途交易账户状态表中记录有地址参与交易时的账户状态,所述账户状态包括区块高度和交易时间;
交易入账模块,用于针对所述准区块中的每笔交易,验证其在所述在途交易账户状态表中记录的区块高度与其在所述区块高度记录表中记录的区块高度一致的情况下,将所准区块内的交易进行入账操作,以及更新所述区块高度记录表以及所述在途交易账户状态表。
可选地,还包括额度验证模块,用于记账节点在接收准区块后,用私钥解密各交易的发送地址的输入额和所述接收地址的输出额,以及验证所述输入额与输出额是否相等;若不相等则返回验证失败,删除该交易在所述在途交易账户状态信息表中的账户信息,并且反馈该交易处理结束。
可选地,所述交易入账模块还用于,针对区块高度验证一致的交易,根据其在准区块中的发送地址分组,组内按照交易在所述在途交易状态信息中的账户状态进行排序;根据所述分组以及排序的结果,对组内的交易依次进行入账
为实现上述目的,根据本发明实施例的再一个方面,提供了一种基于区块链的账户交易信息处理的系统。
本发明实施例的基于区块链的账户交易信息处理的系统包括:
区块高度记录表,用于记录每个地址最新一笔作为发送方参与交易的区块高度;
在途交易账户状态表,用于记录地址参与交易时的账户状态,所述账户状态包括区块高度和交易时间;
交易生成模块,用于在交易发起的情况下,确定账户信息,所述账户信息包括发送地址、接收地址以及参与地址群;其中,所述参与地址群中包括至少一个交易发起时确定的参与地址;确定交易额信息,所述交易额信息包括所述发送地址的输入额、所述接收地址的输出额、以及所述参与地址群中每个参与地址的输入额和输出额,所述发送地址的输入额与每个参与地址的输入额之和,等于所述接收地址的输出额与每个参与地址的输出额之和;确定交易时间戳,以及根据所述交易时间戳和账户信息、交易额信息,生成初始的交易信息;
普通节点,用于在接收到交易信息后,验证所述交易信息中发送地址、接收地址是否正确以及交易时间戳是否正常;在验证通过的情况下,将所述交易信息广播至其他普通节点,以进行共识验证投票;将共识验证通过的交易打包至准区块中,并将所述准区块发送至记账节点;
记账节点:用于针对所述准区块中的每笔交易,验证其在所述在途交易账户状态表中记录的区块高度与其在所述区块高度记录表中记录的区块高度一致的情况下,将所准区块内的交易进行入账操作;
更新模块,用于更新所述区块高度记录表以及所述在途交易账户状态表。
为实现上述目的,根据本发明实施例的再一个方面,提供了一种电子设备。
本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一项的基于区块链的账户交易信息生成、处理的方法。
为实现上述目的,根据本发明实施例的再一个方面,提供了一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现上述任一项的基于区块链的账户交易信息生成、处理的方法。
上述发明中的一个实施例具有如下优点或有益效果:用户创建交易时,可随机选择账户地址组成参与地址群参与交易。并且,交易组成过程中,确保发送地址的输入额与每个参与地址的输入额之和,等于所述接收地址的输出额与每个参与地址的输出额之和,即使在真实的账户信息被泄露的情况下,由于无法获知参与地址群以及每个参与地址的输入额、输出额,所以通过参与地址群对交易方以及交易金额的保密,使得在区块链的账户模型下同时实现隐私数据的保护和交易双方的隐藏,解决了账户模型下区块链上交易信息的隐私安全性问题。进一步,通过引入参与地址群的方式,还避免了交易集中性,实现了交易的分散构成。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的基于区块链的账户交易信息生成的方法的主要流程的示意图;
图2是根据本发明实施例的交易生成过程的示意图;
图3是根据本发明实施例的基于区块链的账户交易信息处理的方法的主要流程的示意图;
图4是根据本发明实施例的基于区块链的账户交易信息处理的系统的主要模块的示意图;
图5a是根据本发明实施例的基于区块链的账户交易信息处理的系统实现的示意图;
图5b是根据本发明实施例的交易生成的示意图;
图6是根据本发明实施例的生成的交易组成的示意图;
图7是根据本发明实施例的普通节点处理流程的示意图;
图8是根据本发明实施例的记账节点处理流程的示意图;
图9是根据本发明实施例的基于区块链的账户交易信息生成的装置的主要模块的示意图;
图10是根据本发明实施例的基于区块链的账户交易信息处理的装置的主要模块的示意图;
图11是本发明实施例可以应用于其中的示例性系统架构图;
图12是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本发明实施例中,部分术语的解释如下:
交易:交易是区块链系统中基本功能之一,交易是由区块链系统的账户主动发起的;
发送地址:交易发送方的地址称为发送地址;
接收地址:交易接收方的地址称为接收地址;
参与地址群:网络中为了实现交易参与方的隐藏,而在交易发起时随机选择的地址组;
输入地址:由发送地址及参与地址群组成的交易地址组;
输出地址:由接收地址及参与地址群组成的交易地址组;
区块高度:区块高度是区块链接在主链的个数,也就是连接在区块链上的块数。区块高度是区块的标示符,但并不是唯一的标识符。
图1是根据本发明实施例的基于区块链的账户交易信息生成的方法的主要流程的示意图,如图1所示,本发明实施例的基于区块链的账户交易信息生成的方法主要包括:
步骤S101:在交易发起的情况下,确定账户信息,账户信息包括发送地址、接收地址以及参与地址群;其中,参与地址群中包括至少一个交易发起时确定的参与地址。用户创建交易时,可随机选择账户地址(参与地址)组成参与地址群参与交易。例如,交易发起用户随机选取网络中的N个参与地址参与本次交易,N表示个数,取值为正整数,这N个参与地址组成参与地址群。
步骤S102:确定交易额信息,交易额信息包括发送地址的输入额、接收地址的输出额、以及参与地址群中每个参与地址的输入额和输出额,发送地址的输入额与每个参与地址的输入额之和,等于接收地址的输出额与每个参与地址的输出额之和。
步骤S103:确定交易时间戳,以及根据交易时间戳和账户信息、交易额信息,生成初始的交易信息。
根据本发明实施例,用户创建交易时,可随机选择账户地址组成参与地址群参与交易。并且,交易组成过程中,确保发送地址的输入额与每个参与地址的输入额之和,等于接收地址的输出额与每个参与地址的输出额之和,即使在真实的账户信息被泄露的情况下,由于无法获知参与地址群以及每个参与地址的输入额、输出额,所以通过参与地址群对交易方以及交易金额的保密,使得在区块链的账户模型下同时实现隐私数据的保护和交易双方的隐藏,解决了账户模型下区块链上交易信息的隐私安全性问题。进一步,通过引入参与地址群的方式,还避免了交易集中性,实现了交易的分散构成。
图2是根据本发明实施例的交易生成过程的示意图,如图2所示,本发明实施例的交易生成过程主要包括:
步骤S201:根据发送地址的实际输入额以及中间费用,确定发送地址的输入额。其中,中间费用根据实际输入额以及预设系数确定。在本发明实施例中,该中间费用可理解为交易手续费、交易服务费等。
步骤S202:将实际输入额确定为接收地址的输出额。
步骤S203:根据中间费用,确定参与地址群中每个参与地址的输入额和输出额,其中,发送地址的输入额与每个参与地址的输入额之和,等于接收地址的输出额与每个参与地址的输出额之和。在本发明实施例中,根据中间费用,确定参与地址群中每个参与地址的输入额和输出额的步骤包括:
步骤S2031:确定参与地址群中每个参与地址的个数N;
步骤S2032:产生N个第一随机数,以及确定N个第一随机数的总和;
步骤S2033:在参与地址群中每个参与地址的输入额为零的情况下,根据N个第一随机数中每个第一随机数与总和的比值,将中间费用分配给参与地址群中的N个参与地址,以确定参与地址群中每个参与地址的输出额。在本发明实施例中,交易创建时,参与地址群中各个参与地址的输出额使用随机方式分配,以进一步提升数据的隐藏性。例如实际输入额为M,则中间费用为0.05M,参与地址群有N个地址,参与地址群的输入额为0。N个参与地址的金额分配过程如下:
a产生N个随机数,记为r1,r2...rn;
b计算随机数总和rm=r1+r2+...+rn;
c计算各参与地址的输出数额:
参与地址1输出额m1=r1/rm*0.05M
参与地址2输出额m2=r2/rm*0.05M
......
参与地址n输出额mn=rn/rm*0.05M
根据本发明的另一实施例,在确定交易时间戳,以及根据交易时间戳和账户信息、交易额信息,生成初始的交易信息之前,可对交易输入额,输出额使用记账节点的公钥、发送地址的公钥以及接收地址的公钥构成加密公钥群进行加密。具体的,确定加密公钥群,加密公钥群由区块链中记账节点的公钥群、发送地址的公钥、输出地址的公钥构成。根据加密公钥群,对交易额信息进行加密,得到加密后的交易额信息,使得根据账户信息以及加密后的交易额信息,生成加密的交易信息。
优选的,根据加密公钥群,对交易额信息进行加密,得到加密后的交易额信息的过程中,针对发送地址的输入额、接收地址的输出额、以及参与地址群中每个参与地址的输入额和输出额,分别产生第二随机数。根据加密公钥群以及第二随机数,对发送地址的输入额、接收地址的输出额、以及参与地址群中每个参与地址的输入额和输出额进行加密。
例如,对于发送地址的输入额:实际输入额为M,加入随机数r00后,使用加密公钥群加密得到D(1M+r00);
参与地址1输入额:0,加入随机数r10,使用加密公钥群加密得到D(0+r10);
参与地址2输入额:0,加入随机数r20,使用加密公钥群加密得到D(0+r20);
......
参与地址N输入额:0,加入随机数rn0,使用加密公钥群加密得到D(0+rn0);
对于接收地址输出额:M,加入随机数r01,使用加密公钥群加密得到D(M+r01);
参与地址1输出额:m1,加入随机数r11,使用加密公钥群加密得到D(m1+r11);
参与地址2输出额:m2,加入随机数r21,使用加密公钥群加密得到D(m2+r21);
......
参与地址N输出额:mn,加入随机数rn1,使用加密公钥群加密得到D(mn+rn1)。
在确定交易时间戳,以及根据交易时间戳和账户信息、交易额信息,生成初始的交易信息的过程中,还可根据发送地址的私钥以及参与地址群的公钥,构建环签名。以及,确定交易时间戳,以及根据交易时间戳和账户信息、交易额信息、环签名,生成环签名的交易信息。
图3是根据本发明实施例的基于区块链的账户交易信息处理的方法的主要流程的示意图,如图3所示,本发明实施例的基于区块链的账户交易信息处理的方法主要包括:
步骤S301:在接收到交易信息后,验证交易信息中发送地址、接收地址是否正确以及交易时间戳是否正常。
步骤S302:在验证通过的情况下,将交易信息广播至其他普通节点,以进行共识验证投票。该验证通过是指验证的每项信息都是正确或正常的,如有一项信息不正确或不正常的,则认为验证不通过。在验证不通过的情况下,交易停止,在本发明实施例中,还可进一步反馈验证不通过的提示信息。
步骤S303:将共识验证通过的交易打包至准区块中,并且基于区块高度记录表,更新在途交易账户状态表;其中,区块高度记录表中记录有每个地址最新一笔作为发送方参与交易的区块高度;在途交易账户状态表中记录有地址参与交易时的账户状态,账户状态包括区块高度和交易时间。
步骤S304:针对准区块中的每笔交易,验证其在在途交易账户状态表中记录的区块高度与其在区块高度记录表中记录的区块高度一致的情况下,将所准区块内的交易进行入账操作,以及更新区块高度记录表以及在途交易账户状态表。
根据本发明实施例,提出了一种基于账户状态的交易隐私保护方案,实现了账户模型下的隐私保护交易,达到了同时隐藏交易参与方与交易细节的效果。以及,通过引入账户状态的方式,解决了账户模型下交易一致性的问题,提升了交易的速度。进一步,通过引入参与地址群的方式,避免了交易集中性,实现了交易的分散构成。
优选的,在将所准区块内的交易进行入账操作之前,记账节点在接收准区块后,用私钥解密各交易的发送地址的输入额和接收地址的输出额,以及验证输入额与输出额是否相等。若不相等则返回验证失败,删除该交易在在途交易账户状态信息表中的账户信息,并且反馈该交易处理结束。
优选的,将所准区块内的交易进行入账操作的过程中,针对区块高度验证一致的交易,根据其在准区块中的发送地址分组,组内按照交易在在途交易状态信息中的账户状态进行排序。根据分组以及排序的结果,对组内的交易依次进行入账。
图4是根据本发明实施例的基于区块链的账户交易信息处理的系统的主要模块的示意图,如图4所示,本发明实施例的基于区块链的账户交易信息处理的系统400包括区块高度记录表401、在途交易账户状态表402、交易生成模块403、普通节点404、记账节点405和更新模块406。
区块高度记录表401,用于记录每个地址最新一笔作为发送方参与交易的区块高度。
在途交易账户状态表402,用于记录地址参与交易时的账户状态,账户状态包括区块高度和交易时间。
交易生成模块403,用于在交易发起的情况下,确定账户信息,账户信息包括发送地址、接收地址以及参与地址群;其中,参与地址群中包括至少一个交易发起时确定的参与地址;确定交易额信息,交易额信息包括发送地址的输入额、接收地址的输出额、以及参与地址群中每个参与地址的输入额和输出额,发送地址的输入额与每个参与地址的输入额之和,等于接收地址的输出额与每个参与地址的输出额之和;确定交易时间戳,以及根据交易时间戳和账户信息、交易额信息,生成初始的交易信息。
普通节点404,用于在接收到交易信息后,验证交易信息中发送地址、接收地址是否正确以及交易时间戳是否正常;在验证通过的情况下,将交易信息广播至其他普通节点,以进行共识验证投票;将共识验证通过的交易打包至准区块中,并将准区块发送至记账节点。
记账节点405,用于针对准区块中的每笔交易,验证其在在途交易账户状态表中记录的区块高度与其在区块高度记录表中记录的区块高度一致的情况下,将所准区块内的交易进行入账操作。
更新模块406,更新区块高度记录表以及在途交易账户状态表。
根据本发明实施例,提供一种区块链交易隐私保护方案,通过参与地址群,实现了账户模型下的隐私保护交易,达到了同时隐藏交易参与方与交易细节的效果,用于解决账户模型下区块链上交易信息的隐私安全性问题。以及,通过引入账户状态的方式,解决了账户模型下交易一致性的问题,提升了交易的速度。进一步,通过引入参与地址群的方式,避免了交易集中性,实现了交易的分散构成。
目前,为了解决区块链隐私保护的问题,隐私货币的概念被提出,如零币、门罗币等,通过零知识证明、环签名等技术实现交易的不可追踪性,提供了强隐私保护特性。其中,零币通过Zk-Snark(零知识简洁的非交互知识论证)实现交易双方身份和交易金额的保密,确保交易的不可追踪性和不可链接性。门罗币基于CryptoNote协议,通过可链接环签名隐藏交易发起方的身份以确保交易的不可追踪性,通过类似Diffie-Hellman密钥交换协议的方式混淆地址以隐藏交易接收方的身份,确保交易的不可链接性,并通过Bulletproofs或Borromean协议实现交易金额的保密。此外,在联盟链的应用中,基于加密算法对交易细节及详细信息加密,也在一定程度上实现了交易隐私保护。
零币在比特币的基础上,利用零知识证明的技术提供完整的身份隐私保护和交易内容隐私保护,实现了交易双方身份和交易金额的保密,确保交易的不可追踪性和不可链接性。由于零知识证明属于复杂的密码学协议,其引入将会大幅影响性能,这也是ZCash系统未能大幅推广的重要原因。此外,ZCash基于比特币的UTXO交易模型,其设计思路不能解决账户模型下交易隐私保护的问题。
门罗币基于CryptoNote协议,采用UTXO交易模型,通过引入临时交易地址和环签名的方式,达到隐藏交易双方身份的效果。在账户模型下,用户只有一个交易地址,参与交易则涉及账户余额的变动,因此该方案不能实现账户模型下的隐私交易。
通过引入签名算法的方式,可以实现交易细节及交易金额的隐藏,但无法解决交易参与方隐藏的问题。
综上,现有的区块链隐私保护方案中,没有一种方案能在账户模型下同时实现隐私数据的保护和交易双方的隐藏。
图5a是根据本发明实施例的基于区块链的账户交易信息处理的系统实现的示意图,图5b是根据本发明实施例的交易生成的示意图,图6是根据本发明实施例的生成的交易组成的示意图;图7是根据本发明实施例的普通节点处理流程的示意图;图8是根据本发明实施例的记账节点处理流程的示意图。
区块链网络采用账户模型,用户可通过账户地址参与网络交易,在本发明实施例中,全网保存账户地址的高度信息表,用以记录每个账户地址最新一笔作为发送方参与交易的区块高度记录,例如下表1。
表1高度信息表
地址 高度
Address1 1
Address2 1
Address3 2
...... ......
账户地址参与交易时,可通过在途交易账户状态表记录账户状态,帮助交易的处理和完成,例如下表2,交易hash表示区块头内容。
表2在途交易账户状态表
唯一标识 账户状态
交易hash1-发送地址 区块链高度-时间
交易hash1-参与地址1 区块链高度-时间
交易hash1-参与地址2 区块链高度-时间
交易hash1-参与地址3 区块链高度-时间
...... ......
交易hash2-发送地址 区块链高度-时间
交易hash2-参与地址1 区块链高度-时间
...... ......
区块链交易主要由输入地址、输入额、输出地址、输出额以及交易发生的时间戳组成。本方案采用环签名算法,用户公钥在网络中是公开的,所有用户都能获得。区块链网络中节点分为普通节点和记账节点,在网络初始化过程中,可随机选定K个节点作为记账节点,进行全网交易的入账。区块链网络中所有节点拥有自身的公私钥对,公钥在全网公开,普通节点进行交易本身验证,记账节点验证交易金额并保证同一个账户交易的一致性,最终完成交易入账操作。区块链网络中的用户通过普通节点生成账户公私钥对及对应的唯一账户地址,公钥在网络中公开。
如图5a所示,本发明实施例的基于区块链的账户交易信息处理的系统实现的步骤,主要包括:
步骤S501:交易生成。如图5b所示,该交易生成的步骤包括:
步骤S5011:交易发起用户随机选取网络中的N个账户地址。在本发明实施例中,这N个账户地址及其公钥群成参与地址群,交易发送方的地址称为发送地址,交易接收方地址称为接收地址。
步骤S5012:确定交易组成,其中交易组成包括输入地址、原始输入额、输出地址和原始输出额。
输入地址:参与地址群和发送地址共同组成交易的输入地址。
原始输入额:发送地址的输入额=实际输入额+中间费用,在本发明实施例中,中间费用为交易手续费,由实际输入额和预设系数确定,在预设系数假设为0.05的情况下,中间费用=实际输入额*0.05。交易手续费是为了完成交易方隐藏设计的,将按随机方式分配给参与地址群中的每个地址,参与地址群的原始输入额默认为0。
输出地址:参与地址群和接收地址共同组成交易的输出地址。
原始输出额:接收地址的输出额为发送地址的实际输入额。参与地址的输出额按随机方式确定,在参与地址群的原始输入额默认为0的情况下,所有参与地址的总额为中间费用,即为实际输入额*0.05。例如实际输入额为M,则交易手续费总额为0.05M,参与地址群有N个地址。金额分配过程如下:
a产生N个随机数,记为r1,r2...rn;
b计算随机数总和rm=r1+r2+...+rn;
c计算各参与地址的输出数额:
参与地址1输出额m1=r1/rm*0.05M
参与地址2输出额m2=r2/rm*0.05M
......
参与地址n输出额mn=rn/rm*0.05M
交易时间戳:交易构建时的时间。
步骤S5013:对额度信息进行加密。对上述原始输入额、原始输出额加密。在本发明实施例中共,可加入随机数,通过记账节点的公钥群、发送地址公钥、输出地址公钥构成加密公钥群,以及可使用1/(K+2)的多重加密方式对原始输入额、原始输出额进行加密。记账节点、发送方、接收方可使用自身私钥解密,可查看上述原始的输入额、输出额。
对于输入额加密,包括:
发送地址输入额:实际输入额为M,加入随机数r00后,使用加密公钥群加密得到D(1M+r00);
参与地址1输入额:0,加入随机数r10,使用加密公钥群加密得到D(0+r10);
参与地址2输入额:0,加入随机数r20,使用加密公钥群加密得到D(0+r20);
......
参与地址N输入额:0,加入随机数rn0,使用加密公钥群加密得到D(0+rn0)。
对于输出额加密,包括:接收地址输出额:M,加入随机数r01,使用加密公钥群加密得到D(M+r01);
参与地址1输出额:m1,加入随机数r11,使用加密公钥群加密得到D(m1+r11);
参与地址2输出额:m2,加入随机数r21,使用加密公钥群加密得到D(m2+r21);
......
参与地址N输出额:mn,加入随机数rn1,使用加密公钥群加密得到D(mn+rn1)。
步骤S5014:对交易进行签名。在本发明实施例中,可采用环签名算法,使用参与地址群的账户公钥和发送方地址私钥,对交易信息进行签名,得到如图6所示的交易组成。
步骤S502:根据生成的交易,进行交易处理。其中,该交易处理过程主要包括如图7所示的普通节点处理流程以及如图8所示的记账节点处理流程。
如图7所示,普通节点处理流程主要包括:
步骤S701:接收交易。用户将生成好的交易发送至网络中的普通节点处,开始进行交易处理。
步骤S702:普通节点收到交易信息后,进行交易验证。具体的,验证交易的输入地址和输出内容是否正确,检查交易的时间戳是否正常,验证交易的签名(例如交易的环签名)是否有效。若有一项验证不通过,则进行步骤S706。若验证通过,则进行步骤S703。
步骤S703:将交易广播至其他普通节点,开始进行共识验证投票。
步骤S704:共识通过的交易将被打包至准区块中,根据区块高度记录表查询各地址的最新交易区块高度记录,并将交易中发送地址及参与地址群的账户状态记录在在途交易账户状态表中,账户信息主要包括:
交易hash-发送地址:区块链高度-时间
交易hash-参与地址1:区块链高度-时间
交易hash:参与地址2:区块链高度-时间
......
交易hash:参与地址N:区块链高度-时间
步骤S705:普通节点将打包好的区块发送至记账节点进行入账。由于记账节点有多个,因此一般随机发送至某个记账节点处。
步骤S706:返回验证失败,交易被丢弃,处理结束。
记账节点收到打包好的区块,开始进行入账验证。由于普通节点已经进行了交易验证,因此记账节点只进行交易金额的验证以及同一账户在多笔交易中的处理。账本中各账户地址的金额使用该账户公钥、所有记账节点公钥加密存储,用户及各记账节点可使用私钥解密地址中的金额信息。如图8所示,记账节点处理流程主要包括:
步骤S801:对输入额、输出额进行验证。具体的,记账节点用私钥解密各交易的输入额、输出额,验证输入额与输出额是否相等,若不相等则进行步骤S806。若输入,输出额相等,则进入入账验证阶段。
步骤S802:对交易的账户状态进行校验。在区块中,查询每笔交易发送地址对应最新的区块高度,若交易的在途交易账户状态中的发送地址区块链高度不等于发送地址最新区块高度Hnew,则说明该发送地址的状态已经发生改变,该笔交易将被丢弃,则进行步骤S806。若交易在途账户交易状态中的区块链高度对于发送地址最新区块高度,则将该交易状态验证通过。
步骤S803:对于账户状态验证通过的交易,在区块中按发送地址分组,以及组内按照在途交易状态信息表中的区块高度和时间由小到大排序,准备入账。
步骤S804:根据分组结果以及组内排序,进行入账操作。在本发明实施例中,区块内交易按分组及组内交易顺序依次入账,入账过程如下:
a查询发送地址的账户金额,并使用记账节点私钥解密得到解密后的发送地址的账户金额,记为Amount;
b交易中发送地址的实际输入额,记为M;
c验证Amount-1.05M>=0是否成立,若不成立,则该进行步骤S806,该交易处理结束;若成立,则开始更新相关地址账户金额与地址高度信息。
d发送地址金额及高度信息更新。计算发送地址待更新实际金额Tol=Amount-1.05M,使用账户公钥和所有记账节点公钥加密得到D(Tol),更新发送地址金额为D(Tol)。
更新区块高度记录表中的地址高度记录:发送地址:Hnew。其中,只有发送地址账户进行账户地址的高度更新,参与地址群及接收地址的账户地址不进行高度更新操作。
e输出地址更新。查询输出地址中各账户地址金额,并使用记账节点私钥解密得到原始金额,分别记为K0,K1......KN。
查询参与地址1账户金额记为K0,更新接收地址账户金额D(K0+M);
查询参与地址1账户金额记为K1,更新参与地址1账户金额K1+m1;
查询参与地址2账户金额记为K2,更新参与地址2账户金额K2+m2;
......
查询参与地址N账户金额记为KN,更新参与地址N账户金额KN+mn;
步骤S805:更新完成后删除在途账户交易状态中该交易的记录信息。
依次处理区块中交易入账完成后,按照最终入账交易重新计算区块头内容,入账最终区块内容,同时返回交易结果及最新区块给普通节点进行账本同步。
步骤S806:返回验证失败,删除该交易的在途交易账户状态信息,该交易处理结束。
根据本发明实施例,用户账户地址及公钥在网络公开,用户创建交易时,可随机选择账户地址组成参与地址群参与交易。以及,交易创建时,参与地址群输出金额可通过随机方式分配,可操作性强、提升了隐蔽性。交易输入过程中,输出金额可使用记账节点的公钥、发送地址的公钥和接收地址的公钥构成加密公钥群进行加密。交易通过发送地址的私钥、参与地址群的公钥构建环签名。网络中普通节点进行交易验证及共识出块,网络中保存账户高度信息,共识出块的交易将记录在途交易账户状态中,公共账本中的账户金额使用账户地址的公钥、记账节点的公钥加密存储。记账节点进行交易输入,输出额验证,同时检测交易的在途交易账户状态信息中的高度信息是否与账户高度信息一致。验证通过的交易按照发送地址分组,组内按照在途交易账户状态信息中的区块高度+时间由小到大排序。交易依次入账,发送地址金额应大于等于交易输入额,更新发送地址金额,账户高度信息,接收地址金额,参与地址群金额,并使用地址的公钥、记账节点的公钥加密存储各账户金额。记账节点更新区块内容,并计算区块头信息,发送区块给普通节点进行区块同步。本发明实施例的以上方案不仅提升了数据安全性以及隐蔽性,还便于数据隐藏的情况下参数方获取到数据。
图9是根据本发明实施例的基于区块链的账户交易信息生成的装置的主要模块的示意图,如图9所示,本发明实施例的基于区块链的账户交易信息生成的装置900包括第一确定模块901、第二确定模块902和生成模块903。
第一确定模块901用于,在交易发起的情况下,确定账户信息,账户信息包括发送地址、接收地址以及参与地址群;其中,参与地址群中包括至少一个交易发起时确定的参与地址。
第二确定模块902用于,确定交易额信息,交易额信息包括发送地址的输入额、接收地址的输出额、以及参与地址群中每个参与地址的输入额和输出额,发送地址的输入额与每个参与地址的输入额之和,等于接收地址的输出额与每个参与地址的输出额之和。
生成模块903用于,确定交易时间戳,以及根据交易时间戳和账户信息、交易额信息,生成初始的交易信息。
优选的,第二确定模块还用于,根据发送地址的实际输入额以及中间费用,确定发送地址的输入额;将实际输入额确定为接收地址的输出额;根据中间费用,确定参与地址群中每个参与地址的输入额和输出额,其中,发送地址的输入额与每个参与地址的输入额之和,等于接收地址的输出额与每个参与地址的输出额之和。
优选的,第二确定模块还用于,确定参与地址群中每个参与地址的个数N;产生N个第一随机数,以及确定N个第一随机数的总和;在参与地址群中每个参与地址的输入额为零的情况下,根据N个第一随机数中每个第一随机数与总和的比值,将中间费用分配给参与地址群中的N个参与地址,以确定参与地址群中每个参与地址的输出额。
优选的,本发明实施例基于区块链的账户交易信息生成的装置还包括加密模块,用于确定加密公钥群,加密公钥群由区块链中记账节点的公钥群、发送地址的公钥、输出地址的公钥构成;根据加密公钥群,对交易额信息进行加密,得到加密后的交易额信息,使得根据账户信息以及加密后的交易额信息,生成加密的交易信息。
优选的,加密模块还用于,针对发送地址的输入额、接收地址的输出额、以及参与地址群中每个参与地址的输入额和输出额,分别产生第二随机数;根据加密公钥群以及第二随机数,对发送地址的输入额、接收地址的输出额、以及参与地址群中每个参与地址的输入额和输出额进行加密。
优选的,生成模块还用于,根据发送地址的私钥以及参与地址群的公钥,构建环签名;确定交易时间戳,以及根据交易时间戳和账户信息、交易额信息、环签名,生成环签名的交易信息。
优选的,中间费用根据实际输入额以及预设系数确定。
根据本发明实施例,用户创建交易时,可随机选择账户地址组成参与地址群参与交易。并且,通过参与地址群对交易方以及交易金额的保密,使得在区块链的账户模型下同时实现隐私数据的保护和交易双方的隐藏,解决了账户模型下区块链上交易信息的隐私安全性问题。进一步,通过引入参与地址群的方式,避免了交易集中性,实现了交易的分散构成。
图10是根据本发明实施例的基于区块链的账户交易信息处理的装置的主要模块的示意图,如图10所示,本发明实施例的基于区块链的账户交易信息处理的装置1000包括交易验证模块1001、交易入账模块1002。
交易验证模块1001,用于在接收到交易信息后,验证交易信息中发送地址、接收地址是否正确以及交易时间戳是否正常;在验证通过的情况下,将交易信息广播至其他普通节点,以进行共识验证投票;将共识验证通过的交易打包至准区块中,并且基于区块高度记录表,更新在途交易账户状态表;其中,区块高度记录表中记录有每个地址最新一笔作为发送方参与交易的区块高度;在途交易账户状态表中记录有地址参与交易时的账户状态,账户状态包括区块高度和交易时间。
交易入账模块1002,用于针对准区块中的每笔交易,验证其在在途交易账户状态表中记录的区块高度与其在区块高度记录表中记录的区块高度一致的情况下,将所准区块内的交易进行入账操作,以及更新区块高度记录表以及在途交易账户状态表。
优选的,本发明实施例基于区块链的账户交易信息处理的装置还包括额度验证模块,用于记账节点在接收准区块后,用私钥解密各交易的发送地址的输入额和接收地址的输出额,以及验证输入额与输出额是否相等;若不相等则返回验证失败,删除该交易在在途交易账户状态信息表中的账户信息,并且反馈该交易处理结束。
优选的,交易入账模块还用于,针对区块高度验证一致的交易,根据其在准区块中的发送地址分组,组内按照交易在在途交易状态信息中的账户状态进行排序;根据分组以及排序的结果,对组内的交易依次进行入账。
根据本发明实施例,提供一种区块链交易隐私保护方案,通过参与地址群,实现了账户模型下的隐私保护交易,达到了同时隐藏交易参与方与交易细节的效果,用于解决账户模型下区块链上交易信息的隐私安全性问题。以及,通过引入账户状态的方式,解决了账户模型下交易一致性的问题,提升了交易的速度。进一步,通过引入参与地址群的方式,避免了交易集中性,实现了交易的分散构成。
图11示出了可以应用本发明实施例的基于区块链的账户交易信息生成、处理的方法或基于区块链的账户交易信息生成、处理的装置的示例性系统架构1100。
如图11所示,系统架构1100可以包括终端设备1101、1102、1103,网络1104和服务器1105。网络1104用以在终端设备1101、1102、1103和服务器1105之间提供通信链路的介质。网络1104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备1101、1102、1103通过网络1104与服务器1105交互,以接收或发送消息等。终端设备1101、1102、1103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备1101、1102、1103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器1105可以是提供各种服务的服务器,例如对用户利用终端设备1101、1102、1103所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果反馈给终端设备。
需要说明的是,本发明实施例所提供的基于区块链的账户交易信息生成、处理的方法一般由服务器1105执行,相应地,基于区块链的账户交易信息生成、处理的装置一般设置于服务器1105中。
应该理解,图11中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图12,其示出了适于用来实现本发明实施例的终端设备的计算机系统1200的结构示意图。图12示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图12所示,计算机系统1200包括中央处理单元(CPU)1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储部分1208加载到随机访问存储器(RAM)1203中的程序而执行各种适当的动作和处理。在RAM 1203中,还存储有系统1200操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
以下部件连接至I/O接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理单元(CPU)1201执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括第一确定模块、第二确定模块和生成模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如生成模块还可以被描述为“确定交易时间戳,以及根据交易时间戳和账户信息、交易额信息,生成初始的交易信息的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:在交易发起的情况下,确定账户信息,账户信息包括发送地址、接收地址以及参与地址群;其中,参与地址群中包括至少一个交易发起时确定的参与地址;确定交易额信息,交易额信息包括发送地址的输入额、接收地址的输出额、以及参与地址群中每个参与地址的输入额和输出额,发送地址的输入额与每个参与地址的输入额之和,等于接收地址的输出额与每个参与地址的输出额之和;确定交易时间戳,以及根据交易时间戳和账户信息、交易额信息,生成初始的交易信息。
根据本发明实施例的技术方案,用户创建交易时,可随机选择账户地址组成参与地址群参与交易。并且,交易组成过程中,确保发送地址的输入额与每个参与地址的输入额之和,等于接收地址的输出额与每个参与地址的输出额之和,即使在真实的账户信息被泄露的情况下,由于无法获知参与地址群以及每个参与地址的输入额、输出额,所以通过参与地址群对交易方以及交易金额的保密,使得在区块链的账户模型下同时实现隐私数据的保护和交易双方的隐藏,解决了账户模型下区块链上交易信息的隐私安全性问题。进一步,通过引入参与地址群的方式,还避免了交易集中性,实现了交易的分散构成。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (15)

1.一种基于区块链的账户交易信息生成的方法,其特征在于,包括:
在交易发起的情况下,确定账户信息,所述账户信息包括发送地址、接收地址以及参与地址群;其中,所述参与地址群中包括至少一个交易发起时确定的参与地址;
确定交易额信息,所述交易额信息包括所述发送地址的输入额、所述接收地址的输出额、以及所述参与地址群中每个参与地址的输入额和输出额,所述发送地址的输入额与每个参与地址的输入额之和,等于所述接收地址的输出额与每个参与地址的输出额之和;
确定交易时间戳,以及根据所述交易时间戳和账户信息、交易额信息,生成初始的交易信息。
2.根据权利要求1所述的方法,其特征在于,确定所述交易额信息的步骤,包括:
根据所述发送地址的实际输入额以及中间费用,确定所述发送地址的输入额;
将所述实际输入额确定为所述接收地址的输出额;
根据所述中间费用,确定所述参与地址群中每个参与地址的输入额和输出额,其中,所述发送地址的输入额与每个参与地址的输入额之和,等于所述接收地址的输出额与每个参与地址的输出额之和。
3.根据权利要求2所述的方法,其特征在于,根据所述中间费用,确定所述参与地址群中每个参与地址的输入额和输出额,的步骤,包括:
确定所述参与地址群中每个参与地址的个数N;
产生N个第一随机数,以及确定所述N个第一随机数的总和;
在所述参与地址群中每个参与地址的输入额为零的情况下,根据所述N个第一随机数中每个第一随机数与所述总和的比值,将所述中间费用分配给所述参与地址群中的N个参与地址,以确定所述参与地址群中每个参与地址的输出额。
4.根据权利要求1所述的方法,其特征在于,在确定交易时间戳,以及根据所述交易时间戳和账户信息、交易额信息,生成初始的交易信息之前,还包括:
确定加密公钥群,所述加密公钥群由区块链中记账节点的公钥群、所述发送地址的公钥、所述输出地址的公钥构成;
根据所述加密公钥群,对所述交易额信息进行加密,得到加密后的交易额信息,使得根据所述账户信息以及加密后的交易额信息,生成加密的交易信息。
5.根据权利要求4所述的方法,其特征在于,所述根据所述加密公钥群,对所述交易额信息进行加密,得到加密后的交易额信息,包括:
针对所述发送地址的输入额、所述接收地址的输出额、以及所述参与地址群中每个参与地址的输入额和输出额,分别产生第二随机数;
根据所述加密公钥群以及所述第二随机数,对所述发送地址的输入额、所述接收地址的输出额、以及所述参与地址群中每个参与地址的输入额和输出额进行加密。
6.根据权利要求1-5任一项所述的方法,其特征在于,在确定交易时间戳,以及根据所述交易时间戳和账户信息、交易额信息,生成初始的交易信息的步骤包括:
根据所述发送地址的私钥以及所述参与地址群的公钥,构建环签名;
确定交易时间戳,以及根据所述交易时间戳和账户信息、交易额信息、环签名,生成环签名的交易信息。
7.根据权利要求2或3所述的方法,其特征在于,所述中间费用根据所述实际输入额以及预设系数确定。
8.一种基于区块链的账户交易信息处理的方法,其特征在于,包括:
在接收到交易信息后,验证所述交易信息中发送地址、接收地址是否正确以及交易时间戳是否正常;
在验证通过的情况下,将所述交易信息广播至其他普通节点,以进行共识验证投票;
将共识验证通过的交易打包至准区块中,并且基于区块高度记录表,更新在途交易账户状态表;其中,所述区块高度记录表中记录有每个地址最新一笔作为发送方参与交易的区块高度;所述在途交易账户状态表中记录有地址参与交易时的账户状态,所述账户状态包括区块高度和交易时间;
针对所述准区块中的每笔交易,验证其在所述在途交易账户状态表中记录的区块高度与其在所述区块高度记录表中记录的区块高度一致的情况下,将所准区块内的交易进行入账操作,以及更新所述区块高度记录表以及所述在途交易账户状态表。
9.根据权利要求8所述的方法,其特征在于,在将所准区块内的交易进行入账操作之前,还包括:
记账节点在接收准区块后,用私钥解密各交易的发送地址的输入额和所述接收地址的输出额,以及验证所述输入额与输出额是否相等;
若不相等则返回验证失败,删除该交易在所述在途交易账户状态信息表中的账户信息,并且反馈该交易处理结束。
10.根据权利要求8所述的方法,其特征在于,将所准区块内的交易进行入账操作的步骤包括:
针对区块高度验证一致的交易,根据其在准区块中的发送地址分组,组内按照交易在所述在途交易状态信息中的账户状态进行排序;
根据所述分组以及排序的结果,对组内的交易依次进行入账。
11.一种基于区块链的账户交易信息生成的装置,其特征在于,包括:
第一确定模块,用于在交易发起的情况下,确定账户信息,所述账户信息包括发送地址、接收地址以及参与地址群;其中,所述参与地址群中包括至少一个交易发起时确定的参与地址;
第二确定模块,用于确定交易额信息,所述交易额信息包括所述发送地址的输入额、所述接收地址的输出额、以及所述参与地址群中每个参与地址的输入额和输出额,所述发送地址的输入额与每个参与地址的输入额之和,等于所述接收地址的输出额与每个参与地址的输出额之和;
生成模块,用于确定交易时间戳,以及根据所述交易时间戳和账户信息、交易额信息,生成初始的交易信息。
12.一种基于区块链的账户交易信息处理的装置,其特征在于,包括:
交易验证模块,用于在接收到交易信息后,验证所述交易信息中发送地址、接收地址是否正确以及交易时间戳是否正常;在验证通过的情况下,将所述交易信息广播至其他普通节点,以进行共识验证投票;将共识验证通过的交易打包至准区块中,并且基于区块高度记录表,更新在途交易账户状态表;其中,所述区块高度记录表中记录有每个地址最新一笔作为发送方参与交易的区块高度;所述在途交易账户状态表中记录有地址参与交易时的账户状态,所述账户状态包括区块高度和交易时间;
交易入账模块,用于针对所述准区块中的每笔交易,验证其在所述在途交易账户状态表中记录的区块高度与其在所述区块高度记录表中记录的区块高度一致的情况下,将所准区块内的交易进行入账操作,以及更新所述区块高度记录表以及所述在途交易账户状态表。
13.一种基于区块链的账户交易信息处理的系统,其特征在于,包括:
区块高度记录表,用于记录每个地址最新一笔作为发送方参与交易的区块高度;
在途交易账户状态表,用于记录地址参与交易时的账户状态,所述账户状态包括区块高度和交易时间;
交易生成模块,用于在交易发起的情况下,确定账户信息,所述账户信息包括发送地址、接收地址以及参与地址群;其中,所述参与地址群中包括至少一个交易发起时确定的参与地址;确定交易额信息,所述交易额信息包括所述发送地址的输入额、所述接收地址的输出额、以及所述参与地址群中每个参与地址的输入额和输出额,所述发送地址的输入额与每个参与地址的输入额之和,等于所述接收地址的输出额与每个参与地址的输出额之和;确定交易时间戳,以及根据所述交易时间戳和账户信息、交易额信息,生成初始的交易信息;
普通节点,用于在接收到交易信息后,验证所述交易信息中发送地址、接收地址是否正确以及交易时间戳是否正常;在验证通过的情况下,将所述交易信息广播至其他普通节点,以进行共识验证投票;将共识验证通过的交易打包至准区块中,并将所述准区块发送至记账节点;
记账节点:用于针对所述准区块中的每笔交易,验证其在所述在途交易账户状态表中记录的区块高度与其在所述区块高度记录表中记录的区块高度一致的情况下,将所准区块内的交易进行入账操作;
更新模块,用于更新所述区块高度记录表以及所述在途交易账户状态表。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7、8-10中任一所述的方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7、8-10中任一所述的方法。
CN202011402524.5A 2020-12-02 2020-12-02 基于区块链的账户交易信息生成、处理的方法和装置 Pending CN112464282A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011402524.5A CN112464282A (zh) 2020-12-02 2020-12-02 基于区块链的账户交易信息生成、处理的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011402524.5A CN112464282A (zh) 2020-12-02 2020-12-02 基于区块链的账户交易信息生成、处理的方法和装置

Publications (1)

Publication Number Publication Date
CN112464282A true CN112464282A (zh) 2021-03-09

Family

ID=74806511

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011402524.5A Pending CN112464282A (zh) 2020-12-02 2020-12-02 基于区块链的账户交易信息生成、处理的方法和装置

Country Status (1)

Country Link
CN (1) CN112464282A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113506104A (zh) * 2021-05-07 2021-10-15 杭州宇链科技有限公司 一种软硬件结合的签名生成、验证方式和系统
CN116433340A (zh) * 2023-06-15 2023-07-14 西南石油大学 支持隐私保护的智慧能源交易方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180349896A1 (en) * 2017-06-05 2018-12-06 Mastercard International Incorporated Method and system for anonymization of electronic transactions via blockchain
US20190173872A1 (en) * 2017-12-04 2019-06-06 Mastercard International Incorporated Method and system for trustworthiness using digital certificates
CN109859047A (zh) * 2019-01-31 2019-06-07 北京瑞卓喜投科技发展有限公司 一种区块链更新方法和区块链更新系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180349896A1 (en) * 2017-06-05 2018-12-06 Mastercard International Incorporated Method and system for anonymization of electronic transactions via blockchain
US20190173872A1 (en) * 2017-12-04 2019-06-06 Mastercard International Incorporated Method and system for trustworthiness using digital certificates
CN109859047A (zh) * 2019-01-31 2019-06-07 北京瑞卓喜投科技发展有限公司 一种区块链更新方法和区块链更新系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113506104A (zh) * 2021-05-07 2021-10-15 杭州宇链科技有限公司 一种软硬件结合的签名生成、验证方式和系统
CN113506104B (zh) * 2021-05-07 2024-03-01 杭州宇链科技有限公司 一种软硬件结合的签名生成、验证方式和系统
CN116433340A (zh) * 2023-06-15 2023-07-14 西南石油大学 支持隐私保护的智慧能源交易方法
CN116433340B (zh) * 2023-06-15 2023-09-15 西南石油大学 支持隐私保护的智慧能源交易方法

Similar Documents

Publication Publication Date Title
TWI725124B (zh) 決定用於資訊的安全交換的共同私密,及階層化的決定性加密金鑰
JP2022003536A (ja) デジタルコンテンツの制御及び配信のためのブロックチェーンにより実施される方法
CN110011781B (zh) 用于交易金额加密且支持零知识证明的同态加密方法和介质
CN110601816B (zh) 一种区块链系统中轻量级节点控制方法及装置
CN110020541B (zh) 一种基于区块链的隐私保护的声誉评价方法及系统
CN111566988A (zh) 跨越以无信任或无交易员方式操作的群组执行计算任务的计算机实现的系统和方法
US20210344500A1 (en) Computer-implemented system and method for transferring access to digital resource
CN111342955B (zh) 一种通信方法及其设备、计算机存储介质
JP2018093434A (ja) トランザクション管理方法、トランザクション管理プログラム及びトランザクション管理装置
CN110336779B (zh) 一种区块链的构建方法、装置和电子设备
US20230308287A1 (en) Threshold signatures
CN112464282A (zh) 基于区块链的账户交易信息生成、处理的方法和装置
CN112073196A (zh) 业务数据处理方法、装置、电子设备及存储介质
WO2023072504A1 (en) Threshold signature scheme
CN115396115A (zh) 区块链数据隐私保护方法、装置、设备及可读存储介质
CN111079190A (zh) 区块链供应链交易隐藏动态监管系统及方法
CN115705601A (zh) 数据处理方法、装置、计算机设备及存储介质
KR20230002941A (ko) 비밀 공유를 갖는 (ec)dsa 임계값 서명
KR20200020559A (ko) 하이브리드블록체인 이용한 존재증명 방법
CN114514550A (zh) 将请求分区成区块链的交易
CN113746621B (zh) 一种基于区块链技术的多链架构信息共享系统
CN116232578A (zh) 一种融合量子密钥分发的多方协同签名系统、方法及设备
WO2023016729A1 (en) Generating digital signature shares
CN115361196A (zh) 一种基于区块链网络的业务交互方法
CN113342802A (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