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

多方协同隐私保护的区块链托管交易方法及系统与流程

2022-06-02 13:23:59 来源:中国专利 TAG:


1.本发明涉及区块链托管支付技术,具体涉及多方协同隐私保护的区块链托管交 易方法及系统。


背景技术:

2.通过构建地址链的交易图谱进行去匿名化,由此暴露用户的真实身份已是常见 的网络攻击手段。如果任何一个链接地址都可以映射到一个用户的真实身份,那么所 有涉及该链接地址的过去和未来的事务都可以与该用户相关联,从而损害了诚信用 户的匿名性。
3.通过引入第三方将满足固定金额条件的用户交易进行混合,依托第三方服务器 来完成混淆过程;coinjoin和coinshuffle则不需要第三方的参与,而是由所有参与 者生成一笔共同创建的交易,只有每个参与者都完成对交易的独立签名才能生效,属 于去中心化的混币方案,不同点在于coinshuffle在交易环节中设计有指责过程,能 够从失败的交易中识别出不诚实参与者,规避coinjoin协议上易产生的dos攻击。 以上混币协议都存在一个共同的隐私保护缺陷,即需要向第三方或共同的参与者公 开自身的签名,攻击者可以根据相同签名者的具体输入地址通过聚合分析来追踪到 用户的真实身份,甚至在有些场合为了交易方便,用户会直接将自身签名作为身份特 征公布在网站上。
4.另一种隐私保护模式是由可信第三方提供数字币托管服务,托管中心提供存款 凭证,授用户委托向其他交易方支付数字币,由第三方平台向用户提供担保不泄露其 签名、交易地址和商品订单等信息。相比上述混币技术,如托管钱包、托管交易平台 等服务不需要组织多方用户同时参与,避免出现协商困难、多次协商不一致的情况发 生,使得交易更为灵活,同时完全隔绝对地址链的追踪。但是这种服务方式同样需要 用户向第三方机构提供标识身份信息的签名,导致服务器很容易成为攻击者的目标, 仍然存在用户隐私被泄露的风险。


技术实现要素:

5.为了解决上述各种数字币混淆协议存在的隐私保护缺陷,本发明提供多方协同 隐私保护的区块链托管交易方法及系统。本发明的托管交易能够实现对用户签名消 息的隐藏,在不破坏整体签名有效性状态下完成交易过程,用户身份对第三方服务机 构及代理人均是透明的。
6.为实现上述目的,本发明设计的多方协同隐私保护的区块链托管交易方法,该方 法具体包括:
7.用户节点拟定代理签名者的选择条件,向托管中心匿名发送多方协同签名请求;
8.托管中心从数据库中提取满足条件的签名公钥和身份标识,生成托管交易的随 机参数,向用户节点回传所有能够执行协同签名的签名公钥列表、身份标识列表和随 机参数;
9.用户节点广播包含签名公钥列表和身份标识列表的代理签名服务请求;
10.网络节点在确认代理签名服务请求中包含有自身的签名公钥和身份标识后,在 允许提供服务的情况下向用户节点回传接受服务请求消息,消息中包含服务提供者 的收款地址;
11.用户节点将所有服务提供者的收款地址和本地选定的主控地址添加到第一地址 列表,并发送给各服务提供者;
12.服务提供者确认第一地址列表中包含自身的收款地址后,利用自身的签名私钥 对第一地址列表签名后回传给用户节点;
13.用户节点生成本地签名私钥对第一地址列表的签名,在验证接收的各签名均合 法后,将所有签名求和获得门限签名,向托管中心匿名发送包含门限签名的匿名存款 请求;
14.托管中心验证门限签名合法后,向用户节点发送存款承诺,存款承诺中包含由托 管中心对第一地址列表的签名;
15.用户节点利用主控地址和随机参数生成一次性随机地址,将一次性随机地址作 为付款地址向托管中心指定的公共存款地址转款;
16.托管中心利用第一地址列表中各地址与随机参数生成第二地址列表,判断如果 第二地址列表中包含有已付款的一次性随机地址,则向用户节点发送存款凭证,并向 参与签名的所有服务提供者指定的收款地址支付服务费,该服务费从一次性随机地 址的已转款金额中扣除。
17.进一步优选地,所述代理签名者的选择步骤为:托管中心采用布隆过滤器存储所 有合法签名公钥的比特向量,用户节点以比特向量为特征从布隆过滤器中提取符合 要求的签名公钥和对应的身份标识作为代理签名者。
18.进一步优选地,托管中心采用椭圆曲线门限签名算法为每个网络节点i分发签名 公私钥对(b
pk,i
,b
sk,i
),其中签名私钥b
sk,i
=f(idi),签名公钥b
pk,i
=b
sk,i
g,idi为网 络节点i的身份标识,f()为签名私钥生成算法,g表示椭圆曲线的基点;
19.根据多方协同签名请求生成随机因子rc,进一步计算得到随机参数rc=rcg,并 对签名公钥列表、身份标识列表和随机参数签名后发送给用户节点。
20.进一步优选地,在验证托管中心的签名合法后,用户节点在本地生成加密公私钥 对(a
pk,u
,a
sk,u
),将加密公钥a
pk,u
添加到代理签名服务请求,并通过签名后广播到网 络。
21.进一步优选地,网络节点i生成接受服务请求消息的步骤为:在验证用户节点的 签名合法后,生成随机数di,计算随机点值di=dig,以用户节点的加密公钥a
pk,u
对 本地选择的收款地址和随机点值加密,将生成的地址密文添加到接受服务请求消息, 并通过签名后发送给用户节点。
22.进一步优选地,用户节点收到接受服务请求消息后,还包括执行的步骤为:在验 证网络节点的签名合法后,利用加密私钥a
sk,u
对地址密文解密后获得网络节点的收 款地址和随机点值,从合法签名中选取门限t-1个网络节点作为服务提供者,进一 步计算点值du=dug,余数k
t
=μmodp;在本地生成主 控公私钥地址对(α
pk
,α
sk
)和临时公私钥地址对(β
pk
,β
sk
),将所有服务提供者的收款 地址和主控公钥地址α
pk
添加到第一地址列表,将余数k
t
、第一地址列表、所有签名 者的身份标识列表和临时公钥地址
用户节点发送存款凭证,并向参与签名的所有服务提供者指定的收款地址支付服务 费,该服务费从一次性随机地址的已转款金额中扣除;
39.数据存储模块,用于存储网络节点的签名公钥、身份标识和区块链交易数据;
40.用户节点具体包括:
41.第一地址列表生成模块,用于将所有服务提供者的收款地址和本地选定的主控 地址添加到第一地址列表;
42.签名模块,生成本地签名私钥对第一地址列表的签名,将所有签名分量求和获得 门限签名,对向服务提供者发送的数据进行签名;
43.验签模块,验证托管中心或服务提供者的签名真伪;
44.付款地址生成模块,利用主控地址和随机参数生成一次性随机地址,将一次性随 机地址作为付款地址向托管中心指定的公共存款地址转款;
45.服务提供者具体包括:
46.参数交换模块,在允许提供服务的情况下向用户节点回传接受服务请求消息,消 息中包含服务提供者的收款地址;
47.签名模块,利用自身的签名私钥对第一地址列表签名得到签名分量;
48.验签模块,验证用户节点的签名真伪。
49.本发明的区块链托管交易方法及系统有益效果:
50.用户节点向托管中心发起存款请求,托管中心为其分配合法注册的代理签名服 务提供者的签名公钥和身份信息,通过协商由服务提供者向用户节点提供自身签名 分量,聚合包含用户自身签名在内不少于门限数量的签名分量能够得到具有协同保 护特性的门限签名,使得用户节点的独立签名完全隐藏在门限签名内,且门限系统与 原系统生成的签名不可区分,在保证签名有效性验证功能下避免用户节点的个人签 名直接暴露给托管中心,数字币输入地址与签名者身份无法被关联,完全实现用户匿 名化;同时对于最多能够联合不足门限数量节点的攻击者来说,伪造出新消息合法签 名的概率接近为零,相比于传统的独立签名具有更强的安全性。
51.托管中心采用布隆过滤器记录网络节点的合法签名公钥,用户节点可将本地签 名特征相同的签名公钥为条件挑选相应的代理签名者,用户节点签名公钥会包含在 托管中心提供的签名公钥列表中,进一步降低用户节点身份的分析难度,同时避免托 管中心主动提供大量的恶意签名者用以筛选出用户的真实签名标识,根据需求也可 以拟定其他选择条件或执行二次选择,使得门限签名对象具有高随机性。
52.由于用户节点与托管中心是在第一地址列表公布前协商的先验参数,并在第一 地址列表公布后由主控地址与先验参数生成的随机地址作为用户节点的转款地址, 服务提供者通过追溯地址列表中的各地址只能判断哪些属于收款地址(有数字币流 入),但无法获知用户节点转款地址,即便联合其他所有服务提供者共享自身的收款 地址也仅能筛选出主控地址,因先验参数对外是保密的,故无法计算得到用户节点的 转款地址。
53.本发明还通过设置问责机制,如果交易过程中发生违约事件,托管中心、用户节 点和服务提供者均能够提供并公示各自拥有的证据,结合上链的已有交易能够验证 证据的真伪,辨识出不诚实对象,以维护网络环境安全稳定。
附图说明
54.图1为本发明的多方协同隐私保护的区块链托管交易方法流程图;
55.图2为本发明中利用布隆过滤器存储并选择签名公钥的示意图;
56.图3为本发明的多方协同隐私保护的区块链托管交易系统结构图。
具体实施方式
57.下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
58.本发明采用门限签名算法将群体签名密钥被所有合法注册成员所共享,并将公 有秘密以私钥分片的形式分发给所有网络成员,由多个群成员同时为用户节点提出 的某项存款转托服务请求签名,并在用户节点聚合获得具有多方协同保护效果的门 限签名。托管中心无法判断服务请求的请求者主体是哪一个签名者,但始终能够验证 门限签名的真伪。为了激励更多的诚实节点能够提供代理签名服务,可以向服务提供 者按存款比例或一定数额支付数字币作为报酬,形成良性交易模式。
59.一个标准的(t,n)门限签名系统对一个由一组签名者负责的消息进行签名,对于 n个人共同参与的门限签名系统,每个人获得唯一的密钥分享,签名方案被设计要求 当签名的人数至少达到门限值t个后,才能生成合法的门限签名,签名效果与单独使 用共享密钥的签名结果是不可区分的,具有同等有效性。
60.设(t,n)分布式门限签名算法表示为ts={tgenkey,tsign,verify},则有:
61.tgenkey分布式密钥生成算法:算法由n个参与者参与,输入一系列安全参数, 输出私钥序列(x1,x2,...xn)和对应的公钥序列(y1,y2,...yn),参与者i通过秘密方式被 分发到私钥分片xi和公钥分片yi。其中序列(x1,x2,...xn)构成x的(t,n)门限秘密分享, 因此所有参与者能够共同生成群私钥x的签名结果,利用对应的群公钥y能够验证门 限签名的合法性。
62.tsign分布式签名算法:输入消息m和序列(x1,x2,...x
t
),输出门限签名σ= tsign(m,(x1,x2,...x
t
)),该签名σ与群私钥签名sign(m,x)等价。
63.verify签名验证算法:verify(m,y,σ)

b,输入消息m、门限签名σ和群公钥y, 输出一个布尔变量b,当布尔变量b返回true时表明σ为有效签名,返回false时 表明σ的签名无效。
64.如图1所示,本发明提供的一种多方协同隐私保护的区块链托管交易方法,该 方法具体执行以下步骤:
65.步骤1)用户节点拟定代理签名者的选择条件,向托管中心匿名发送多方协同签 名请求;
66.步骤2)托管中心从数据库中提取满足条件的签名公钥和身份标识,生成托管交 易的随机参数,向用户节点回传所有能够执行协同签名的签名公钥列表、身份标识列 表和随机参数;
67.步骤3)用户节点广播包含签名公钥列表和身份标识列表的代理签名服务请求;
68.步骤4)网络节点在确认代理签名服务请求中包含有自身的签名公钥和身份标识 后,在允许提供服务的情况下向用户节点回传接受服务请求消息,消息中包含服务提 供者的收款地址;
首先判断等式b
pk,i
=b
sk,i
g和是否成立,在确认相等时表明公私钥 分片(b
pk,i
,b
sk,i
)互为有效参数,且与盲化参数序列、自身的身份标识idi正确关联, 即公私钥分片(b
pk,i
,b
sk,i
)适用于盲化的门限签名算法。然后判断公私钥分片 (b
pk,i
,b
sk,i
)是否在托管中心公开的椭圆曲线上,在确认的情况下最终确定(b
pk,i
,b
sk,i
) 为有效的签名公私钥对,并存储到本地;否则如果验证不正确,则拒绝使用(b
pk,i
,b
sk,i
) 提供代理签名服务,并向托管中心反馈错误消息。
88.当有用户需要向托管中心请求存款时,需向托管中心匿名发送多方协同签名请 求,请求消息中包含用户节点拟定代理签名者的选择条件。除此之外,所述多方协同 签名请求中还包括本次托管交易标识、预存款金额、结算方式等基本信息。本实施例 在系统中采用布隆过滤器筛选用符合用户条件的各个签名公钥。托管中心采用布隆 过滤器存储所有合法签名公钥的哈希值。
89.通过一组哈希函数将签名公钥压缩映射并存储为空间向量中的一个点。如果输 入数据对应的点存在,则表示该数据可能在集合中;反之,则表示该数据一定不在集 合中。如图2所示,形式上布隆过滤器由一个基于m位的比特向量d=(d1,d2,...dm) 和一系列哈希函数h=(hash1,hash2,...hashk)组成,k<m。比特向量的初始值全 部置为0,任意输入数据经过哈希运算后得到值在[1,m]内的哈希值序列(h1,h2,...hk), 将每个哈希值hi映射到比特向量d=(d1,d2,...dm)对应位上并置为1,完成该输入数 据的比特向量记录。
[0090]
用户节点可将与本地签名公钥具有相近特征值的对象作为选择条件,确定签名 代理者身份。假设用户节点的签名公钥可表示为比特向量然 后提取部分组成新的比特向量将其作为条件 发送给托管中心,托管中心筛选符合代理签名资格的签名公钥对应的比特向量必须 包含d
′u,即代理者签名公钥与用户签名公钥满足相同特征d
′u,且由托管中心发送的 签名公钥列表中也必然包含用户自身的签名公钥。
[0091]
托管中心c从数据库中提取满足上述条件的签名公私钥对(b
pk,i
,b
sk,i
)和身份标 识idi,然后收集所有签名公钥b
pk,i
获得签名公钥列表,列表中包含不少于门限值t个 签名公钥,如果数量不足t个,则需要向用户节点反馈相关消息,由用户节点重新设 定条件执行二次选择。
[0092]
同时,托管中心c还根据用户节点发送的多方协同签名请求生成一个随机因子rc, 进一步计算得到随机参数rc=rcg,该随机参数rc作为先验参数参与一次性随机地址 协商,当出现争议时,如果用户节点已经按协商过的随机地址向托管中心转款,通过 交换的随机参数rc能够提供证明。以托管中心身份对上述签名公钥列表list
pk
、身份 标识列表list
id
和随机参数rc签名σc=sign((list
pk
,list
id
,rc),c
sk
),其中c
sk
表示托 管中心签名私钥,在网络公布有对应的签名公钥c
pk
。最后将签名σc和被签名的数据 一起发送给用户节点。
[0093]
用户节点收到签名σc后,利用签名公钥c
pk
验证其有效性 verify((list
pk
,list
id
,rc),c
pk
,σc),在确认签名有效后,用户节点u在本地生成加密公 私钥对(a
pk,u
,a
sk,u
),将加密公钥a
pk,u
添加到代理签名服务请求,用于加密数据,对 加密公钥a
pk,u
、签名公钥列表list
pk
和身份标识列表list
id
签名得到σ
u1
= sign((list
pk
,list
id
,a
pk,u
),u
sk
),其中u
sk
表示用户节点的签名私钥,并公布对应的签 名公钥u
pk
,将签名σ
u1
和被签名的数据添加到代理签名
服务请求后广播到网络。
[0094]
网络节点i在收到代理签名服务请求消息后,首先利用签名公钥u
pk
验证签名σ
u1
有效性verify((list
pk
,list
id
,a
pk,u
),u
pk
,σ
u1
),在确认签名有效后,判断自身的签名公 钥b
pk,i
和身份标识idi是否包含在签名公钥列表list
pk
和身份标识列表list
id
中,如果 不包含则终止操作,如果包含则进一步确定是否允许为用户节点提供本次签名服务, 在允许提供服务的情况下向用户节点回传接受服务请求消息,消息中包含自身的收 款地址,该收款地址通过用户节点提供的加密公钥a
pk,u
进行加密。同时为执行本次 签名服务生成随机数di,计算随机点值di=dig,并同样利用用户节点的加密公钥 a
pk,u
对随机点值di进行加密,然后利用本地存储的签名私钥b
sk,i
对加密的收款地址和 随机点值di签名σi=sign(m,b
sk,i
),m表示密文,将密文m、签名σi添加到接受服务 请求消息后发送给用户节点。
[0095]
用户节点根据接收到的接受服务请求消息,首先验证签名σi的有效性 verify(m,b
pk,i
,σi),在确认签名有效后,利用加密私钥a
sk,u
解密密文,获得对应的收 款地址和随机点值di,从这些合法签名中选取t-1个网络节点作为服务提供者,进 一步计算点值其中随机点值du=dug,du表示用户节点 在本地生成的随机数,余数k
t
=μmodp;在本地生成主控公私钥地址对(α
pk
,α
sk
)和 临时公私钥地址对(β
pk
,β
sk
),将已选中的所有服务提供者的收款地址和主控公钥地 址α
pk
添加到第一地址列表list1,从身份标识列表list
id
中提取所有签名者的身份标 识重新组成一个身份标识列表list

id
,所述的签名者包括用户节点和已选中的所有服 务提供者,对余数k
t
、第一地址列表list1、身份标识列表list

id
和临时公钥地址β
pk
执 行签名σ
u2
=sign((k
t
,list1,list

id
,β
pk
),u
sk
),然后将签名σ
u2
和被签名的数据发送给 每一个选定的服务提供者。
[0096]
网络节点i在收到签名σ
u2
和数据消息后,首先利用签名公钥u
pk
验证其有效性 verify((k
t
,list1,list

id
,β
pk
),u
pk
,σ
u2
),在确认签名有效后,令代签名的消息m=k
t
|| list1||β
pk
,计算消息的哈希值h=hash(m),然后利用本地的签名私钥b
sk,i
生成关 于哈希值h的签名分量σi=(di hk
tbsk,i
qi)modp,通过lagrange插值公式计算得到 中间值j≠i,与本地节点共同参与服务的身份标识idj来自于身份 标识列表list

id
。最后将签名分量σi和被签名数据绑定后发送给用户节点。
[0097]
用户节点接收到某个服务提供者的签名分量σi后,验证签名分量σi是否合法,如 果通过计算σig-di=σig-dig=(di hk
tbsk,i
qi)g-dig=hk
tbsk,i
qig= hk
tbpk,i
qi,则表明签名分量σi合法,否则表明签名分量σi不合法;在确认每个签名分 量σi都合法后,将t个签名分量聚合,计算得到门限签名其中σu表 示用户节点在本地生成的签名分量,即σu=(du hktuskqu)modp,量,即σu=(du hktuskqu)modp,j≠u。只有将不少于t个签名者的签名分量σi聚集在一起才能计算出 此时被签名的数据仍然是消息m,由于门限签名的数 据不含有任意签名者的身份标识idi,因此不论是服务提供者还是用户本身,它们的 身份信息对托管中心都是透明的,托管中心只能获知与身份不关联的地址列表,用于 验证收款或向外支付服务费。
[0098]
另外,用户节点在本地生成一次性随机地址p
pk
=hash(α
sk
rc)g β
pk
,及对应 的私钥p
sk
=hash(α
sk
rc)g β
sk
,将一次性随机地址p
pk
作为用户节点向托管中心转 款的地址。将
门限签名σ
t
和被签名数据添加到匿名存款请求后发送给托管中心。除此 之外匿名存款请求中还包括本次托管交易标识、约定存款金额和结算方式等基本信 息。
[0099]
托管中心接收到门限签名σ
t
后,首先通过群公钥b
pk
进行验证门限签名σ
t
是否合 法,计算σ
t
g-hk
tbpk
=(μ

,ω

),k

t
=μ

modp,如果k
t
=k

t
则表明门限签名σ
t
合法, 否则表明门限签名σ
t
不合法。在确认门限签名σ
t
合法后,选定存款公私钥地址对 (addr
ipk
,addr
isk
)和付款公私钥地址对(addr
opk
,addr
osk
),存款公钥地址addr
ipk
和 付款公钥地址addr
opk
分别为用户节点存款和向服务提供者支付服务费。
[0100]
上述门限签名验证算法正确性可以通过以下公式推导:
[0101][0102]
然后,将匿名存款请求与多方协同签名请求进行交易标识匹配,找到托管交易标 识一致的多方协同签名请求,提取与该请求关联的随机因子rc,将第一地址列表中各 地址addr
pk,i
与临时公钥地址β
pk
两两组合,生成包含有t个一次性随机地址p
pk,i
的第 二地址列表,p
pk,i
=hash(addr
pk,i
rc)g β
pk
,addr
pk,i
为服务提供者的收款地址或 用户的主控公钥地址α
pk
,因此在托管中心本地能够生成用户节点的付款地址p
pk
= hash(α
pk
rc)g β
pk
=hash(α
sk
rcg)g β
pk
=hash(α
sk
rc)g β
pk
,但只有在此地 址上真实收到数字币后,托管中心才能知晓付款地址p
pk
归匿名用户所拥有,并通过 判断发生转款的地址具体属于哪一个第二地址列表来确定本次转款所属的托管交易。
[0103]
将存款公钥地址addr
ipk
、付款公钥地址addr
opk
、第一地址列表list1、随机参数 rc和临时公钥地址β
pk
一起添加到存款承诺,对存款承诺签名后发送给用户节点。
[0104]
用户节点收到存款承诺,通过验证确为托管中心签名的消息后,且被签名的数据 与本地原始记录的数据一致时,向一次性随机地址p
pk
中注入数字币,该数字币可由 用户的其他钱包存款地址转入,或者由前次交易过程的输出地址转入,,也可以是其 他更为安全的加密币,如零币或门罗币等。在完成货币注入工作后,以一次性随机地 址p
pk
作为本次存款托管交易的输入地址,存款公钥地址addr
ipk
作为输出地址,将数 字币转存给托管中心。
[0105]
当托管中心收到一笔存款后,首先提取所有未完成存款托管交易的第二地址列 表,检索本次存款的货币输入地址属于哪一笔存款托管交易,当某笔存款托管交易的 第二地址列表中记录有实际付款地址p
pk
时,再次提取该存款托管交易中记录的第一 地址列表,从中查找能够生成付款地址p
pk
的地址即为用户节点的主控公钥地址α
pk
, 删除主控公钥地址α
pk
,剩余地址即为参与本次签名的所有服务提供者收款地址,以 付款公钥地址addr
opk
作为交易输入地址,向列表中每个收款地址按存款金额的一定 比例或固定金额支付数字币,作为参与本次代理签名的服务费,该费用由用户承担, 记录于本次托管交易结算单内,同时也可写入托管中心提供给用户节点的存款凭证 内。
[0106]
托管中心收入与支出数字币操作相互独立,将用户存款与服务费结算操作相隔 离,并分别利用addr
ipk
和addr
opk
两个不同的地址实现交易过程,避免交易地址被关 联,防
止用户节点与代理签名者之间的关系被泄露。
[0107]
在完成服务费结算后,托管中心向曾发送过匿名存款请求的匿名用户回传存款 凭证,该存款凭证包含托管中心签名的收款确认函和服务费支付确认函,告知用户本 次托管交易的实际收款金额、收款时间、服务费支付金额、支付时间、每笔子交易的 输入输出地址等信息,子交易包括用户节点向托管中心转入、托管中心向服务提供者 转出数字币的交易。
[0108]
为了保证交易数据的时效性,托管中心与用户节点、用户节点与服务提供者之间 相互交换的消息还可以添加时间戳,签名消息只在预设的时间范围内有效,防止交易 数据被恶意第三方拦截;用户节点在匿名存款请求中添加时间字段,约定在字段中记 录的时长内向托管中心转账时才被判定为有效交易,以托管中心在存款承诺中标记 的时间戳开始计算该时长。
[0109]
当用户需要向其他区块链节点(如商家)付款时,用户节点可以生成支付请求消 息,在该消息中记录商家的收款地址、支付金额、约定的支付时限和设立的智能合约 等重要标的信息,将主控私钥地址α
sk
、随机参数rc、支付请求消息和存款凭证通过 秘密、匿名方式(如利用托管中心的加密公钥加密)发送给托管中心,托管中心利用 主控私钥地址α
sk
和随机参数rc,如果能够生成与存款凭证中记录的存款地址具有相 同值的地址p
pk
=hash(α
sk
rc)g β
pk
,则表明该存款凭证属于匿名用户,对存款凭 证上记载的存款拥有所有权,托管中心作为受托人,按支付请求消息中记录的商家收 款地址代表匿名用户向商家付款,在支付成功后向匿名用户回传支付凭证,支付凭证 中记录有本次支付交易的输入输出地址、支付金额、支付时间及存款余额等主要标的 信息。
[0110]
在本发明提供的另一个实施例中,基于上述托管交易实施方法还包括问责机制。 由于本发明的交易方法由托管中心、用户节点和服务提供者共同实现,任何一方如果 存在违约行为都会导致交易失败。当存在这种违约行为时,通过执行问责过程能够分 析识别出不诚实对象,限制这些不诚实对象再次参与其他交易行为能够提高其他网 络成员忠诚度,约束自身行为。所述的问责机制在发生以下情况时被激活,并执行相 应的问责过程:
[0111]
如果服务提供者拒绝提供代理签名服务,用户节点通过公布服务提供者签名的 接受服务请求消息向服务提供者问责。具体地,向网络成员公布由拒绝者发送的签名 σi=sign(m,b
sk,i
)及被签名数据、加密私钥a
sk,u
、用户节点发送的签名σ
u2
= sign((k
t
,list1,list

id
,β
pk
),u
sk
)及被签名数据,其他交易成员首先验证签名σ
u2
是否 与之前接收的原签名消息一致,在确认一致后验证签名σi有效性,如果无效则表明用 户节点证据不成立,否则利用加密私钥a
sk,u
解密密文m,判断明文中收款地址是否记 录在list1中,如果不存在则表明用户节点证据不成立,否则表明拒绝者未按协议约 定向用户节点提供代理签名服务,为不诚实对象。
[0112]
如果服务提供者未收到服务费,通过公布用户节点签名的第一地址列表和本地 收款地址的验证消息向用户节点问责。具体地,向网络成员公布由用户节点发送的签 名σ
u2
=sign((k
t
,list1,list

id
,β
pk
),u
sk
)及被签名数据、服务提供者自身的收款地址 公私钥对(addr
pk,i
,addr
sk,i
);其他交易成员在验证签名σ
u2
有效的情况下,判断收款 地址公钥addr
pk,i
是否存在于list1中,如果不存在则表明服务提供者证据不成立,否 则进一步验证addr
pk,i
与addr
sk,i
是否互为有效参数,如果参数无效则表明服务提供者 证据不成立,否则
机地址作为付款地址向托管中心指定的公共存款地址转款;
[0129]
服务提供者具体包括:
[0130]
参数交换模块,在允许提供服务的情况下向用户节点回传接受服务请求消息,消 息中包含服务提供者的收款地址;
[0131]
签名模块,利用自身的签名私钥对第一地址列表签名得到签名分量;
[0132]
验签模块,验证用户节点的签名真伪。
[0133]
最后应当说明的是:以上实施例仅用以说明本公开的技术方案而非对其限制,尽 管参照较佳实施例对本公开进行了详细的说明。对于所属领域的技术人员应当理解: 本发明不限于上述示范性实施例的细节,依然可以对本公开的具体实施方式进行修 改或者对部分技术特征进行等同替换;而不脱离本公开技术方案的精神,本发明的范 围由所附权利要求而不是上述说明限定,其均应涵盖在本公开请求保护的技术方案 范围当中。
再多了解一些

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

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

相关文献