一种基于哈希锁定的去中心化安全交易方法技术

技术编号:36533905 阅读:15 留言:0更新日期:2023-02-01 16:18
本发明专利技术请求保护一种基于哈希锁定的去中心化安全交易方法,包括以下步骤:通过商品交易合约执行储值卡注册交易,将提供储值卡的商家的第一公钥和储值卡金额记录到商品交易合约中;用户通过商品交易合约执行储值卡购买交易;生成资金锁定交易Tx0和赎回交易Tx0′

【技术实现步骤摘要】
一种基于哈希锁定的去中心化安全交易方法


[0001]本专利技术涉及区块链
,具体涉及一种基于哈希锁定的去中心化安全 交易方法。

技术介绍

[0002]区块链是一种具有去中心化、不可篡改、多方共同维护等特点的分布式账 本。账本的任何改动都会通过协议广播给网络中的每个节点,通过共识机制使 得每个节点储存的账本保持一致。区块链由数据层、共识激励层、交易层、网 络层四大部分组成。在交易层中,每个节点都有交易地址。
[0003]UTXO(Unspent Transaction Output)即未花费的交易输出,是一种基于交 易的记账方式。采用UTXO记账,一笔交易的输出就是另一笔交易的输入,转 账是将资金从输入地址移至输出地址。资金的交易由交易输入和交易输出组成, 每笔交易都要花费一笔输入,产生一笔输出,而其所产生的输出,就是未花费 过的交易输出,也就是UTXO。
[0004]随着区块链网络的快速发展,区块链系统性能逐渐称为制约区块链发展的 因素。传统区块链吞吐量小,难以处理金融交易下的高频小额支付。交易方需 要为每一笔交易支付手续费,使得交易成本高昂。通过链下的方式进行交易时, 难以同时确保交易双方的账户安全。
[0005]CN109462588B,一种基于区块链的去中心化数据交易方法及系统,该 方法包括:第一客户端生成购买请求,将购买请求发送至智能合约;第一客 户端从代理节点下载加密的数据和加密的第二密钥;第一客户端利用与第一 公钥对应的第一私钥解密加密的第二密钥得到第二密钥,并利用第二密钥解 密加密的数据得到数据。由于无论是存储节点中的数据还是由存储节点下载 到代理节点中的数据均为加密的数据,所以无论是存储节点还是代理节点, 均无法访问到原始数据。第一客户端(即买家)通过代理节点下载加密的数据, 并在本地解密,同时密钥的传输采用非对称加密,因此整个过程只有买家和 卖家(即第二客户端)能访问到原始数据,以此避免了数据的泄露。该专利中加 密数据是通过卖家提供的第二密钥加密,买家下过一个订单后即可获得卖家的 第二密钥,有可能使得买家可以解锁未购买的同一卖家加密的其它数据,造成 卖家的损失;本专利技术中每笔交易需要经过交易双方验证并签名,并且还设置了 随机数和交易的哈希摘要作为交易的认可凭证,通过多重机制保证了交易的真 实性和安全性。

技术实现思路

[0006]本专利技术旨在解决以上现有技术的问题。提出了一种基于哈希锁定的去中心化 安全交易方法。本专利技术的技术方案如下:
[0007]一种基于哈希锁定的去中心化安全交易方法,区块链上配置有商品交易合 约,其交易方法包括以下步骤:
[0008]S11:通过商品交易合约执行储值卡注册交易,将提供储值卡的商家A的第 一公钥
PubKey1和储值卡金额M记录到商品交易合约中,以供参与储值卡交易的 各用户端;
[0009]S12:用户B通过商品交易合约执行储值卡购买交易;
[0010]S13:生成一笔储值卡金额M的资金锁定交易Tx0和一笔该资金的赎回交易 Tx0′
,将Tx0发布至区块链网络:
[0011]S14:通过商品交易合约购买金额为m1的第一件商品,生成支付交易Tx1和 Tx1′
,交易双方分别对Tx1和Tx1′
进行签名,并记录到商品交易合约中:
[0012]S15:通过商品交易合约购买金额为m2的第二件商品,生成支付交易Tx2和 Tx2′
,交易双方分别对Tx2和Tx2′
进行签名,并记录到商品交易合约中:
[0013]S16:通过商品交易合约购买金额为m
k
的第k件商品,生成支付交易Tx
k
和 Tx
k

,交易双方分别对Tx
k
和Tx
k

进行签名,并记录到商品交易合约中:
[0014]S17:生成一笔商品购买结算交易Tx
n
,将资金M解锁,结束双方交易。
[0015]进一步的,所述步骤S12用户B通过商品交易合约执行储值卡购买交易, 具体包括:
[0016]获取储值卡金额M;
[0017]获取商家A的第一公钥PubKey1;
[0018]购买交易执行成功时将用户B的第二公钥PubKey2记录到商品交易合约中。
[0019]进一步的,所述步骤S13:生成一笔储值卡金额M的资金锁定交易Tx0和一笔 该资金的赎回交易Tx0′
,将Tx0发布至区块链网络,具体包括:
[0020]通过SHA256算法,将商家A的第一公钥和用户B的第二公钥进行两次哈希 运算,得到一个多方签名地址P2Address=Hash(Hash(PubKey1+PubKey2));
[0021]用户B生成一笔资金锁定交易Tx0,将用户B的地址作为输入,把金额M转 入多方签名地址P2Address,余额(Y

M)转入用户B的地址;
[0022]随后,用户B生成一笔该资金的赎回交易Tx0′
,将多方签名地址P2Address作 为输入,把金额M转入用户B的地址,金额0转入商家A的地址;
[0023]用户B把交易Tx0′
发送给商家A,商家A确认交易内容无误后对该交易进行 数字签名,生成SigA(Tx0′
),而后将签名SigA(Tx0′
)发送给用户B;
[0024]至此,用户B已有商家A对赎回交易Tx0′
的数字签名,只要用户B加上自己 对Tx0′
的数字签名,将交易及双方的数字签名一并发布至区块链网络,赎回交易 Tx0′
执行成功,即可将资金M解锁,被锁定在多方签名地址中的资金M将全部转 回至用户B的地址中;
[0025]该赎回交易用于防止用户B将储值卡资金M锁定后商家A消失,以至于无法 得到商家A的签名使得资金M被永久锁定在多方签名地址P2Address中;
[0026]用户B在确保收到SigA(Tx0′
)后,对锁定交易Tx0进行数字签名,生成 SigB(Tx0),执行锁定交易Tx0,将锁定交易Tx0发布至区块链网络,交易执行成 功后,资金M将从用户B的地址转入多方签名地址P2Address中;
[0027]由于该地址是由商家A和用户B两方的公钥组成的多方签名地址,所以转入 该地址的资金必须同时提供A、B双方的数字签名才能使用。
[0028]进一步的,所述S14通过商品交易合约购买金额为m1的第一件商品,生成 支付交易Tx1和Tx1′
,交易双方分别对Tx1和Tx1′
进行签名,并记录到商品交易合 约中,具体包括:
[0029]用户B通过商品交易合约购买金额为m1的商品;
[0030]用户B生成一笔支付交易Tx1,将多方签名地址P2Address作为输入,把金 额m1转入商家A的地址,金额(M

m1)转入用户B的地址;...

【技术保护点】

【技术特征摘要】
1.一种基于哈希锁定的去中心化安全交易方法,区块链上配置有商品交易合约,其特征在于,交易方法包括以下步骤:S11:通过商品交易合约执行储值卡注册交易,将提供储值卡的商家A的第一公钥PubKey1和储值卡金额M记录到商品交易合约中,以供参与储值卡交易的各用户端;S12:用户B通过商品交易合约执行储值卡购买交易;S13:生成一笔储值卡金额M的资金锁定交易Tx0和一笔该资金的赎回交易Tx0′
,将Tx0发布至区块链网络:S14:通过商品交易合约购买金额为m1的第一件商品,生成支付交易Tx1和Tx1′
,交易双方分别对Tx1和Tx1′
进行签名,并记录到商品交易合约中:S15:通过商品交易合约购买金额为m2的第二件商品,生成支付交易Tx2和Tx2′
,交易双方分别对Tx2和Tx2′
进行签名,并记录到商品交易合约中:S16:通过商品交易合约购买金额为m
k
的第k件商品,生成支付交易Tx
k
和Tx
k

,交易双方分别对Tx
k
和Tx
k

进行签名,并记录到商品交易合约中:S17:生成一笔商品购买结算交易Tx
n
,将资金M解锁,结束双方交易。2.根据权利要求1所述的基于哈希锁定的去中心化安全交易方法,其特征在于,所述步骤S12用户B通过商品交易合约执行储值卡购买交易,具体包括:获取储值卡金额M;获取商家A的第一公钥PubKey1;购买交易执行成功时将用户B的第二公钥PubKey2记录到商品交易合约中。3.根据权利要求1所述的基于哈希锁定的去中心化安全交易方法,其特征在于,所述步骤S13:生成一笔储值卡金额M的资金锁定交易Tx0和一笔该资金的赎回交易Tx0′
,将Tx0发布至区块链网络,具体包括:通过SHA256算法,将商家A的第一公钥和用户B的第二公钥进行两次哈希运算,得到一个多方签名地址P2Address=Hash(Hash(PubKey1+PubKey2));用户B生成一笔资金锁定交易Tx0,将用户B的地址作为输入,把金额M转入多方签名地址P2Address,余额(Y

M)转入用户B的地址;随后,用户B生成一笔该资金的赎回交易Tx0′
,将多方签名地址P2Address作为输入,把金额M转入用户B的地址,金额0转入商家A的地址;用户B把交易Tx0′
发送给商家A,商家A确认交易内容无误后对该交易进行数字签名,生成SigA(Tx0′
),而后将签名SigA(Tx0′
)发送给用户B;至此,用户B已有商家A对赎回交易Tx0′
的数字签名,只要用户B加上自己对Tx0′
的数字签名,将交易及双方的数字签名一并发布至区块链网络,赎回交易Tx0′
执行成功,即可将资金M解锁,被锁定在多方签名地址中的资金M将全部转回至用户B的地址中;该赎回交易用于防止用户B将储值卡资金M锁定后商家A消失,以至于无法得到商家A的签名使得资金M被永久锁定在多方签名地址P2Address中;用户B在确保收到SigA(Tx0′
)后,对锁定交易Tx0进行数字签名,生成SigB(Tx0),执行锁定交易Tx0,将锁定交易Tx0发布至区块链网络,交易执行成功后,资金M将从用户B的地址转入多方签名地址P2Address中;由于该地址是由商家A和用户B两方的公钥组成的多方签名地址,所以转入该地址的资
金必须同时提供A、B双方的数字签名才能使用。4.根据权利要求1所述的基于哈希锁定的去中心化安全交易方法,其特征在于,所述S14通过商品交易合约购买金额为m1的第一件商品,生成支付交易Tx1和Tx1′
,交易双方分别对Tx1和Tx1′
进行签名,并记录到商品交易合约中,具体包括:用户B通过商品交易合约购买金额为m1的商品;用户B生成一笔支付交易Tx1,将多方签名地址P2Address作为输入,把金额m1转入商家A的地址,金额(M

m1)转入用户B的地址;用户B对支付交易Tx1进行数字签名,生成SigB(Tx1);用户B生成包括支付交易和数字签名的支付交易信息MsgB1(Tx1,SigB(Tx1)),将支付交易信息MsgB1发送给商家A;商家A对MsgB1进行验证,查验其中的交易内容是否正确以及数字签名是否来自用户B;验证通过后生成一个随机数KeyA1,将随机数KeyA1与交易Tx1的哈希摘要Hash(Tx1)记录到商品交易合约中;商家A对支付交易Tx1进行复制,得到交易Tx1′
,此交易将多方签名地址P2Address作为输入,把金额m1转入商家A的地址,金额(M

m1)转入用户B的地址;商家A对支付交易Tx1′
进行数字签名,生成SigA(Tx1′
);商家A生成包括支付交易和数字签名的支付交易信息MsgA1(Tx1′
,SigA(Tx1′
)),将支付交易信息MsgA1发送给用户B;用户B对MsgA1进行验证,查验其中的交易内容是否正确以及数字签名是否来自商家A;验证通过后生成一个随机数KeyB1,将随机数KeyB1与交易Tx1′
的哈希摘要Hash(Tx1′
)记录到商品交易合约中。5.根据权利要求1所述的基于哈希锁定的去中心化安全交易方法,其特征在于,所述步骤S15:通过商品交易合约购买金额为m2的第二件商品,生成支付交易Tx2和Tx2′
,交易双方分别对Tx2和Tx2′
进行签名,并记录到商品交易合约中,具体包括:用户B通过商品交易合约购买金额为m2的商品;用户B生成一笔支付交易Tx2,将多方签名地址P2Address作为输入,把金额(m1+m2)转入商家A的地址,金额(M

(m1+m2))转入用户B的地址;用户B对支付交易Tx2进行数字签名,生成SigB(Tx2);用户B生成包括支付交易和数字签名的支付交易信息MsgB2(Tx2,SigB(Tx2)),将支付交易信息MsgB2发送给商家A;商家A对MsgB2进行验证,查验其中的交易内容是否正确以及数字签名是否来自用户B;验证通过后生成一个随机数KeyA2,将随机数KeyA2与交易Tx2的哈希摘要Hash(Tx2)记录到商品交易合约中;商家A对支付交易Tx2进行复制,得到交易Tx2′
,此交易将多方签名地址P2Address作为输入,把金额(m1+m2)转入商家A的地址,金额(M

(m1+m2))转入用户B的地址;商家A对支付交易Tx2′
进行数字签名,生成SigA(Tx2′
);商家A生成包括支付交易和数字签名的支付交易信息MsgA2(Tx2′
,SigA(Tx2′
)),将支付交易信息MsgA2发送给用户B;用户B对MsgA2进行验证,查验其中的交易内容是否正确以及数字签名是否来自商家A;
验证通过后生成一个随机数KeyB2,将随机数KeyB2与交易Tx2′
的哈希摘要Hash(Tx2′
)记录到商品交易合约中。6.根据权利要求1所述的基于哈希锁定的去中心化安全交易...

【专利技术属性】
技术研发人员:王可欣李方伟
申请(专利权)人:重庆移通学院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1