基于账户模型的隐私交易方法、装置及相关设备
文献发布时间:2023-06-19 09:52:39
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于账户模型的隐私交易方 法、装置及相关设备。
背景技术
当前出现了一种以以太坊为代表的基于账户(Account)模型的隐私保护 区块链系统,Account模型是一种有状态模型,在区块链中的每一个区块上都 有一个全局的世界状态,这个状态是全局的,对应着区块链上所有的账户余 额,每一笔交易或智能合约的调用对账户余额的改变都会导致这个全局世界 状态的更新。
由于当前被广泛使用的以门罗币、零币等为代表的未花费的交易输出模 型(Unspent Transaction Output,UTXO)的隐私保护区块链系统无法兼容账 户模型,且基于账户模型的隐私保护区块链系统中的隐私交易方法存在账单 尺寸过大,运算负担较重,使区块链系统运行和检验效率低的问题,导致现 有的基于账户模型的隐私保护区块链系统难以大规模推广应用。
因此,亟需一种实现更高效率的隐私交易方式,以完成基于账户模型的 隐私保护区块链系统所进行的交易。
发明内容
有鉴于此,本发明实施例提供一种基于账户模型的隐私交易方法、装置 及相关设备,以实现更高效率完成基于账户模型的隐私保护区块链系统所进 行的交易的目的。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面公开了一种基于账户模型的隐私交易方法,所述 方法包括:
第一交易账户基于向第二交易账户发起的转账金额s,确定转账金额承诺 e、第一合法性证明π
所述第一交易账户基于所述第二交易账户的第二公钥PK
所述第一交易账户利用与所述第二交易账户之间的共享密钥k对所述转 账金额s和混淆元z加密,得到第一交易密文ct,所述混淆元
所述第一交易账户基于自己的第一私钥SK
其中,所述第一交易账户基于区块链系统的公共参数
可选的,所述第一交易账户基于自己的第一私钥SK
所述第一交易账户基于自己的第一私钥SK
可选的,还包括:
所述第一交易账户计算第一验证手续费的上限值t
将所述第一验证手续费的上限值t
本发明实施例第二方面公开了一种基于账户模型的隐私交易方法,所述 方法包括:
第二交易账户基于第二公钥PK
所述第二交易账户计算第一交易账单tx
所述第二交易账户利用与所述第一交易账户之间的共享密钥k解析所述 第一交易账单中的第一交易密文ct,并验证所述第一交易密文ct对应的转账金 额承诺e是否成立;
若成立,所述第二交易账户从所述链上获取N-1个第二转账金额承诺, 其中,所述N-1个第二转账金额承诺与所述第一转账金额承诺e不同,N的取 值为大于等于2的正整数;
所述第二交易账户集合所述N-1个第二转账金额承诺与所述第一转账金 额承诺e,以及N个转账金额承诺所对应的转账公钥,得到金额承诺集合 E={e
所述第二交易账户将所述第一交易密文ct中的转账金额s加入原始账户 金额中,得到第二交易账户更新金额v
所述第二交易账户根据所述第二交易账户交易后的状态d
所述第二交易账户根据所述转账公钥集合L
所述第二交易账户基于所述第二私钥SK
其中,所述第二交易账户基于区块链系统的公共参数
可选的,所述第二交易账户基于第二消费公钥PK
所述第二交易账户基于第二消费公钥PK
若存在,则确定该转账公钥PK
可选的,还包括:
所述第二交易账户计算第二验证手续费的上限值t
将所述第二验证手续费的上限值t
输出所述第二交易账户交易后的状态d
本发明实施例第三方案公开了一种基于账户模型的隐私交易方法,所述 方法包括:
交易验证方接收第一交易账户发起的第一交易账单tx
所述交易验证方接收第二交易账户接受的第二交易账单tx
所述交易验证方验证所述第二交易账单tx
若是,确定所述第二交易账单tx
若否,检验所述第三合法性证明π
若均为是,使所述第二交易账单tx
本发明实施例第四方面公开了一种基于账户模型的隐私交易装置,所述 装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的基 于账户模型的隐私交易程序,所述隐私交易程序被所述处理器执行时实现所 述基于账户模型的隐私交易方法。
本发明实施例第五方面公开了一种计算机可读存储介质,所述计算机可 读存储介质上存储有基于账户模型的隐私交易程序,所述隐私交易程序可被 一个或者多个处理器执行,以实现如本发明实施例第一方面公开的所述基于 账户模型的隐私交易方法。
本发明实施例第六方面公开一种计算机程序产品,包括计算机指令,当 其在计算机上运行时,使得计算机可以执行上述本发明实施例第一方面公开 的所述基于账户模型的隐私交易方法。
基于上述本发明实施例提供的一种基于账户模型的隐私交易方法、装置 及相关设备,该方法包括:通过使第一交易账户基于向第二交易账户发起的 转账金额,确定转账金额承诺、第一合法性证明、第一交易账户交易后的状 态和第一交易账户余额对应的第二合法性证明;并基于第二交易账户的第二 公钥计算得到转账金额承诺的转账公钥,利用与第二交易账户之间的共享密 钥对转账金额和混淆元加密,得到第一交易密文,并基于第一交易账户的第 一私钥进行签名,最终生成第一交易账单,并在第一交易账单通过交易验证方验证后上链。在本方案中,使用共享密钥对转账金额进行加密,减小账单 尺寸,降低运算负担,在不需要匿名交易的情况下,保持转账金额的隐私性, 更高效率的实现基于账户模型的隐私保护区块链系统所进行的隐私交易。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不 付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种基于账户模型的隐私交易方法的流程图;
图2为本发明实施例提供的得到转账公钥的流程图;
图3为本发明实施例提供的另一种基于账户模型的隐私交易方法的流程 图;
图4为本发明实施例提供的第二交易账户确定第一交易账单的流程图;
图5为本发明实施例提供的第一交易账户向交易验证方支付佣金的流程 图;
图6为本发明实施例提供的第二交易账户向交易验证方支付佣金的流程 图;
图7为本发明实施例提供的第一交易账户的结构框图;
图8为本发明实施例提供的第二交易账户的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及 实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施 例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领 域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都 属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、 “第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特 定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以 便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。 此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他 的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备 不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对 于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的, 而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数 量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该 特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领 域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实 现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之 内。
为了方便理解,以下对本发明实施例中出现的术语进行解释说明:
消息(Message):任意长度的比特串。
UTXO:当前区块链上已确认但未花费的数字货币,即未花费的一笔钱。
URTXO(Unreceived transaction output):当前区块链上已确认但未被接 收的数字货币,即未被任何账户接收的一笔钱。
双花(Double spending):区块链上的不忠实用户对一笔钱交易进行两次 花费。
非对称加密算法(Asymmetric encryption system):是基于加密、解密过 程中计算复杂度的非对称性来保证安全的一类算法。在非对称加密系统中, 加密方要生成私公钥对,并将私钥自己保留,公钥可以发送给对方。
数字签名(Digital signature):是一种非对称密码的一个分支,当用户生 成公私钥对时,自己保留私钥,对任意要发送至区块链的消息,用户使用私 钥签名,验证者使用公钥即可验证签名的合法性,数字签名实现了身份的认 证和数据完整性的验证。
Pedersen承诺(Pedersen commitment):对于数量或者金额a,使用离散 对数问题的结构,将a绑定在承诺Com=g
区间证明(Range proof):给出某个金额数量属于指定的区间,而不透露 具体金额信息的零知识证明体系。
Bulletproofs:零知识证明框架,可以用于实现区间证明,证明尺寸小、 验证速度快,在门罗币等区块链系统上应用广泛,但是无法提供监管功能。
承诺证明(Commitment proof):对于承诺Com=g
环签名(Ring signature):是一种特殊的数字签名方案,签名者使用自己 和其用户的公钥生成一个公钥集合,然后用自己的私钥进行签名,验证者在 验证签名的合法性后,只能知道该签名来自公钥集合的某个用户,但无法得 知该用户的具体身份,实现了签名者的身份隐私保护。
可链接环签名(Linkable ring signature):是一种特殊的环签名方案,用户 在进行环签名时要提供一个标签信息,当用户进行非法签名或双花等非法交 易时,通过比对交易标签就可以判断是否是非法签名或双花交易,实现了安 全的交易保障。
由背景技术可知,目前以门罗币、零币等为代表的未花费的UTXO模型 的隐私保护区块链系统无法兼容账户模型,并且基于账户模型的隐私保护区 块链系统中的隐私交易方法存在账单尺寸过大,运算负担较重,使区块链系 统运行和检验效率低的问题。
因此,本发明实施例提供一种基于账户模型的隐私交易方法、装置及相 关设备,通过在第一交易账户和第二交易账户进行隐私交易的过程中,使用 共享密钥对转账金额进行加密,从而减小账单尺寸,以降低运算负担。
参见图1,示出了本发明实施例提供的一种基于账户模型的隐私交易方法 的流程图,该隐私交易方法适用于第一交易账户,该隐私交易方法包括:
步骤S101:第一交易账户基于向第二交易账户发起的转账金额s,确定 转账金额承诺e、第一合法性证明π
需要说明的是,区块链系统预先确定椭圆曲线群
也就是说,第一交易账户生成第一私钥SK
第二交易账户生成第二私钥SK
其中,
可以理解的是,上述各个交易账户所生成的公钥可作为长期地址,并且 生成长期地址的方式并不仅包括上述方式,也可以通过哈希等方式由公钥生 成长期地址。
在具体实现步骤S101的过程中,第一交易账户和第二交易账户进行交易, 即第一交易账户需向第二交易账户进行转账操作。
需要说明的是,第一交易账户和第二交易账户在进行转账操作后,各自 的账户状态都会发生相应的变化,也就是由账户初始状态变化为账户交易后 的状态。第一交易账户的账户初始状态为
进一步需要说明的是,第一交易账户和第二交易账户的账户状态可以被 全网获取和查看,但是只能看到隐私承诺,无法看到具体的金额,第一交易 账户和第二交易账户中的金额信息为隐私承诺状态,例如,上述所述的c
第一交易账户在转账的过程中,根据需要向第二交易账户转账的金额s, 确定转账金额承诺e=g
需要说明的是,第一合法性证明π
第一交易账户交易后的第一交易账户余额u
步骤S102:第一交易账户基于第二交易账户的第二公钥PK
由前述内容可知,各个交易账户确定各自账户的公钥,在具体实现步骤 S102的过程中,第一交易账户随机生成混淆元
步骤S103:第一交易账户利用与第二交易账户之间的共享密钥k对转账 金额s和混淆元z加密,得到第一交易密文ct。
需要说明的是,混淆元
步骤S104:第一交易账户基于自己的第一私钥SK
在具体实现步骤S104的过程中,第一交易账户在生成对应的交易账单时, 需利用自己的第一私钥SK
在进行签名的过程中,对于第一查询私钥a
也就是说,第一交易账户基于自己的第一私钥SK
第一交易账户生成第一交易账单tx
校验验证方的验证方式为:对于第一交易账户发送的第一交易账单tx
本发明实施例提供的一种基于账户模型的隐私交易方法、通过第一交易 账户基于向第二交易账户发起的转账金额,确定转账金额承诺、第一合法性 证明、第一交易账户交易后的状态和第一交易账户余额对应的第二合法性证 明;并基于第二交易账户的第二公钥计算得到转账金额承诺的转账公钥,利用 与第二交易账户之间的共享密钥对转账金额和混淆元加密,得到第一交易密 文,并基于第一交易账户的第一私钥进行签名,最终生成第一交易账单,并 在第一交易账单通过交易验证方验证后上链。在本方案中,使用共享密钥对 转账金额进行加密,减小账单尺寸,降低运算负担,在不需要匿名交易的情 况下,保持转账金额的隐私性,更高效率的实现基于账户模型的隐私保护区 块链系统所进行的隐私交易。
上述本发明实施例图1步骤S102中涉及的得到转账公钥PK
步骤S201:第一交易账户随机生成混淆元r。
在具体实现步骤S201的过程中,混淆元
步骤S202:第一交易账户基于混淆元r和第二交易账户的第二公钥PK
在具体实现步骤S202的过程中,第一交易账户计算R=g
在本发明实施例中,第一交易账户根据混淆元和第二公钥计算转账公钥, 基于自己的第一私钥对转账公钥、第一交易密文、第一合法性证明和第二合 法性证明进行签名,最终生成第一交易账单。从而可以减小账单尺寸,降低 运算负担,在不需要匿名交易的情况下,保持转账金额的隐私性,更高效率 的实现基于账户模型的隐私保护区块链系统所进行的隐私交易。
参见图3,示出了本发明实施例提供的另一种基于账户模型的隐私交易方 法的流程图,该隐私交易方法适用于第二交易账户,该隐私交易方法包括:
步骤S301:第二交易账户基于第二公钥PK
需要说明的是,区块链系统上存在多个转账金额承诺,第二交易账户需 要从区块链系统上的多个转账金额承诺中确是否有其他用户向自身账户转 账。
在具体实现步骤S301的过程中,第二交易账户基于第二公钥PK
第二交易账户具体确定是否存在给自身账户的转账的方式为:第二交易 账户利用第二公钥PK
步骤S302:第二交易账户计算第一交易账单tx
在具体实现步骤S302的过程中,第二交易账户计算第一交易账单tx
步骤S303:第二交易账户利用与第一交易账户之间的共享密钥k解析第 一交易账单中的第一交易密文ct,并验证第一交易密文ct对应的转账金额承诺 e是否成立。若成立,执行步骤S304。若不成立,则结束。
在具体实现步骤S303的过程中,第二交易账户根据共享密钥k,解析第 一交易密文ct,即计算Dec
步骤S304:第二交易账户从链上获取N-1个第二转账金额承诺。
在步骤S304中,第二交易账户从链上获取的N-1个第二转账金额承诺区 别于第一转账金额承诺e。也就是说,N-1个第二转账金额承诺与第一转账金 额承诺e不同,是不属于第二交易账户自己的转账金额承诺。
其中,N的取值为大于等于2的正整数。
在执行步骤S304的过程中,第二交易账户从所有已经上链的URTXO集 合中,也就是转账金额承诺集合中再选取N-1个区别于第一转账金额承诺e的 第二转账金额承诺。
需要说明的是,第二交易账户选择N-1个区别于第一转账金额承诺e的第 二转账金额承诺是用于进行混淆的。具体体现在,第二交易账户可以对外证 明接收了N个金额中的一个,但是外界并不能确定第二交易账户到底获取的 是N个金额中的哪一个,从而在接收者层面进一步实现针对交易双方的隐私 保护。
步骤S305:第二交易账户集合N-1个第二转账金额承诺与第一转账金额 承诺e,以及N个转账金额承诺所对应的转账公钥,得到金额承诺集合 E={e
在步骤S305中,
需要说明的是,第二交易账户只知道第一转账金额承诺
步骤S306:第二交易账户将第一交易密文ct中的转账金额s加入账户余额 中,得到第二交易账户余额v
在具体实现步骤S306的过程中,第二交易账户接收第一交易密文ct中的 转账金额s后,也就是第二交易账户将该转账金额s加入自身的账户余额后, 第二交易账户的账户余额v
基于此,第二交易账户采样随机数
需要说明的是,第三合法性证明π
步骤S307:所述第二交易账户根据所述第二交易账户交易后的状态d
在步骤S307中,具体计算得到的集合
将集合L展开为:
需要说明的是,在集合中
也就是说,第二交易账户更新的状态中包含的金额v
步骤S308:第二交易账户根据所述转账公钥集合L
在步骤S308中,交易消息μ包含金额承诺集合E等资金信息,也包含第 二交易账户自己交易前的状态d
在步骤S308中,输出的签名
环签名私钥SK
需要说明的是,第二交易账户只知道第一转账金额承诺
假设所进行的是双环签名,也就是第二交易账户收一笔钱,需要做一个 和双环签名,也就是对两个环进行可链接双环签名。
步骤S309:第二交易账户基于第二私钥SK
在具体实现步骤S309的过程中,第二交易账户利用自身对应的第二私钥 SK
执行步骤S309之后得到的第二交易账单tx
首先,交易验证方接收第二交易账户接受的第二交易账单tx
若是,则判断该交易为双收交易,也就是说第二交易账户的输出有异常, 确定第二交易账单tx
若否,检验第二交易账单tx
最后,若均通过验证或检验,即第三合法性证明π
需要说明的是,交易验证方能够确定第二交易账户拥有集合
需要说明的是,第二交易账户在确定第一交易账户向自己转账之后,可 以选择立即接收转账金额,也可以选择暂时不接收,同时可以在同一区块中 先花钱再收钱,或者在同一区块中先收钱再花钱,实现灵活调整收钱和花钱 的方式。
在本发明实施例中,第二交易账户确定第一交易账单,计算第一交易账 单中的转账金额承诺的转账私钥,并计算得到第二交易账户余额、第二交易 账户交易后的状态和第三合法性证明,并采用获取链上的N-1个区别于第一 转账金额承诺e的第二转账金额承诺是用于进行混淆,使得最终签名的第二交 易账单中的金额并不能为除自身以外的账户确定。在接收者层面进一步实现 针对交易双方的隐私保护。
上述本发明实施例图3步骤S301中涉及的第二交易账户确定第一交易账 单的过程,参见图4,示出了本发明实施例提供的第二交易账户确定第一交易 账单的流程图,包括以下步骤:
步骤S401:第二交易账户基于第二公钥PK
在具体实现步骤S401的过程中,第二交易账户利用第二公钥PK
具体证明
由上述本发明实施例图1步骤S101和步骤S102的内容可知,
则
步骤S402:获取转账公钥PK
在本发明实施例中,第二交易账户计算并确定
需要说明的是,上述本发明实施例图1至图4中示出的内容,是在第一 交易账户和第二交易账户不向交易验证方支付手续费的情况下执行交易。优 选的,第一交易账户和第二交易账户也可以在向交易验证方支付手续费的情 况下执行交易。第一交易账户和第二交易账户分别向与自己相关的交易信息 验证行为支付一定奖励,也就是说,第一交易账户向交易验证方支付花钱账 单(向第二交易账户的转钱账单)的验证费用,第二交易账户向交易验证方 支付收钱账单(接收第一交易账户的转钱账单)的验证费用,具体内容可参 见下述图5和图6。
参见图5,示出了本发明实施例提供的第一交易账户向交易验证方支付佣 金的流程图,包括以下步骤:
步骤S501:第一交易账户计算第一验证手续费的上限值t
需要说明的是,验证承诺
步骤S502:将第一验证手续费的上限值t
在具体实现步骤S502的过程中,从第一交易账户余额u
需要说明的是,在更新第一交易账户交易后的状态时,可以由第一交易 账户自身进行更新,也可以由交易验证方更新第一交易账户交易后的状态, 在此不做具体限定。
优选的,上述从第一交易账户的余额中所扣除的为手续费的上限值,可 以理解的是,交易验证方的收费标准可能比该手续费的上限值低。也就是说, 交易验证方扣除手续费的上限值后,会向第一交易账户返回一部分手续费, 第一交易账户接收交易验证方反馈的验证手续费余额,将验证手续费余额存 储至第一交易账户余额u
参见图6,示出了本发明实施例提供的第二交易账户向交易验证方支付佣 金的流程图,包括以下步骤:
步骤S601:第二交易账户计算第二验证手续费的上限值t
需要说明的是,验证承诺
步骤S602:将第二验证手续费的上限值t
在具体实现步骤S602的过程中,从第二交易账户余额v
需要说明的是,在更新第二交易账户交易后的状态时,可以由第二交易 账户自身进行更新,也可以由交易验证方更新第二交易账户交易后的状态, 在此不做具体限定。
优选的,第二交易账户接收交易验证方反馈的验证手续费余额,将验证 手续费余额存储至第二交易账户余额v
步骤S603:输出第二交易账户交易后的状态d
结合上述图5和图6中示出的内容,交易验证方在进行验证交易时,交 易验证方分别验证c
优选的,交易验证方也可将部分验证手续费退回给第一交易账户和第二 交易账户,部分验证手续费的具体退回方式,可以选择明文的方式或者选择 承诺+明文的方式将部分验证手续费退回,在此不做具体限定。
通过上述所示出的内容可知,第一交易账户和第二交易账户在区块链系 统上的任何节点都可追溯到第一交易账户和第二交易账户发生交易,但是通 过上述各个实施例示出的内容可对交易金额进行隐藏,也就是说,除交易双 方外的其它节点无法获取任何有关交易金额的信息,从而实现了交易金额隐 藏的功能。
与上述本发明实施例提供的一种基于账户模型的隐私交易方法相对应, 参见图7,本发明实施例还提供了第一交易账户的结构框图,第一交易账户包 括:确定单元701、计算单元702、加密单元703和处理单元704。
确定单元701,用于基于向第二交易账户发起的转账金额s,确定转账金 额承诺e、第一合法性证明π
计算单元702,用于基于第二交易账户的第二公钥PK
在具体实现中,计算单元702具体用于:随机生成混淆元r,混淆元
加密单元703,用于第一交易账户利用与第二交易账户之间的共享密钥k 对转账金额s和混淆元z加密,得到第一交易密文ct,混淆元
处理单元704,用于基于自己的第一私钥SK
其中,第一交易账户基于区块链系统的公共参数
在具体实现步骤S704的过程中,处理单元704具体用于:基于自己的第 一私钥SK
优选的,结合图7示出的内容,第一交易账户还包括:
支付单元,用于计算第一验证手续费的上限值t
优选的,支付单元还用于接收交易验证方反馈的验证手续费余额,将验 证手续费余额存储至第一交易账户余额u
在本发明实施例中,第一交易账户基于向第二交易账户发起的转账金额, 确定转账金额承诺、第一合法性证明、第一交易账户交易后的状态和第一交 易账户余额对应的第二合法性证明;并基于第二交易账户的第二公钥计算得 到转账金额承诺的转账公钥,并利用与第二交易账户之间的共享密钥对转账 金额和混淆元加密,得到第一交易密文,再基于自己的第一私钥对转账公钥、 第一交易密文、第一合法性证明和第二合法性证明进行签名,最终生成第一 交易账单。从而减小账单尺寸,降低运算负担,在不需要匿名交易的情况下, 保持转账金额的隐私性,更高效率的实现基于账户模型的隐私保护区块链系 统所进行的隐私交易。
与上述本发明实施例提供的一种基于账户模型的隐私交易方法相对应, 参见图8,本发明实施例还提供了第二交易账户的结构框图,第二交易账户包 括:查询单元801、第一计算单元802、解析单元803、获取单元804、集合 单元805、添加单元806、第二计算单元807、环签名单元808和处理单元809。
查询单元801,用于基于第二公钥PK
在具体实现中,查询单元801具体用于:基于第二公钥PK
第一计算单元802,具体用于计算第一交易账单tx
解析单元803,用于利用与第一交易账户之间的共享密钥k解析第一交易 账单中的第一交易密文ct,并验证第一交易密文ct对应的转账金额承诺e是否 成立。若成立,执行处理单元804。
获取单元804,用于从链上获取N-1个第二转账金额承诺。
获取单元804从链上获取的N-1个第二转账金额承诺区别于第一转账金 额承诺e。也就是说,N-1个第二转账金额承诺与第一转账金额承诺e不同, 是不属于第二交易账户自己的转账金额承诺。
集合单元805,用于集合N-1个第二转账金额承诺与第一转账金额承诺e, 以及N个转账金额承诺所对应的转账公钥,得到金额承诺集合E={e
添加单元806,用于将第一交易密文ct中的转账金额s加入账户余额中, 得到第二交易账户余额v
第二计算单元807,用于根据第二交易账户交易后的状态d
环签名单元808,用于根据转账公钥集合L
处理单元809,用于基于第二私钥SK
优选的,结合图8示出的内容,第二交易账户还包括:
支付单元,用于计算第二验证手续费的上限值t
优选的,支付单元还用于接收交易验证方反馈的验证手续费余额,将验 证手续费余额存储至第二交易账户余额v
在本发明实施例中,第二交易账户确定第一交易账单,计算第一交易账 单中的转账金额承诺的转账私钥,并计算得到第二交易账户余额、第二交易 账户交易后的状态和第三合法性证明,并采用获取链上的N-1个区别于第一 转账金额承诺e的第二转账金额承诺是用于进行混淆,使得最终签名的第二交 易账单中的金额并不能为除自身以外的账户确定。在接收者层面进一步实现 针对交易双方的隐私保护。
与上述本发明实施例提供的一种基于账户模型的隐私交易方法相对应, 本发明实施例还提供一种基于账户模型的隐私交易系统,该隐私交易系统包 括:交易验证方、第一交易账户和第二交易账户。
需要说明的是,交易验证方的执行原理,可参见上述方法实施例中的内 容,第一交易账户的执行原理可参见上述本发明实施例图7中的内容,第二 交易账户的执行原理可参见上述本发明实施例图8中的内容。
本发明实施例还提供了一种基于账户模型的隐私交易装置,该装置包括 存储器和处理器,存储器上存储有可在处理器上运行的基于账户模型的隐私 交易程序,隐私交易程序被处理器执行时实现如上述基于账户模型的隐私交 易方法。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质 上存储有基于账户模型的隐私交易程序,隐私交易程序可被一个或者多个处 理器执行,以实现如上述基于账户模型的隐私交易方法。
本发明实施例还提供一种计算机程序产品,包括计算机指令,当其在计 算机上运行时,使得计算机可以执行上述基于账户模型的隐私交易方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意 组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形 式实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同 相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同 之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例, 所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描 述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元 可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可 以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。 可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目 的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示 例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现, 为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性 地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行, 取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定 的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本 发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用 本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易 见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下, 在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例, 而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
- 基于账户模型的隐私交易方法、装置及相关设备
- 基于区块链的供应链交易隐私保护系统、方法及相关设备