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

文档序号:33118974发布日期:2023-02-01 03:20阅读:24来源:国知局
一种基于哈希锁定的去中心化安全交易方法

1.本发明涉及区块链技术领域,具体涉及一种基于哈希锁定的去中心化安全 交易方法。


背景技术:

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


技术实现要素:

6.本发明旨在解决以上现有技术的问题。提出了一种基于哈希锁定的去中心化 安全交易方法。本发明的技术方案如下:
7.一种基于哈希锁定的去中心化安全交易方法,区块链上配置有商品交易合 约,其交易方法包括以下步骤:
8.s11:通过商品交易合约执行储值卡注册交易,将提供储值卡的商家a的第 一公钥
pubkey1和储值卡金额m记录到商品交易合约中,以供参与储值卡交易的 各用户端;
9.s12:用户b通过商品交易合约执行储值卡购买交易;
10.s13:生成一笔储值卡金额m的资金锁定交易tx0和一笔该资金的赎回交易 tx0′
,将tx0发布至区块链网络:
11.s14:通过商品交易合约购买金额为m1的第一件商品,生成支付交易tx1和 tx1′
,交易双方分别对tx1和tx1′
进行签名,并记录到商品交易合约中:
12.s15:通过商品交易合约购买金额为m2的第二件商品,生成支付交易tx2和 tx2′
,交易双方分别对tx2和tx2′
进行签名,并记录到商品交易合约中:
13.s16:通过商品交易合约购买金额为mk的第k件商品,生成支付交易txk和 txk′
,交易双方分别对txk和txk′
进行签名,并记录到商品交易合约中:
14.s17:生成一笔商品购买结算交易txn,将资金m解锁,结束双方交易。
15.进一步的,所述步骤s12用户b通过商品交易合约执行储值卡购买交易, 具体包括:
16.获取储值卡金额m;
17.获取商家a的第一公钥pubkey1;
18.购买交易执行成功时将用户b的第二公钥pubkey2记录到商品交易合约中。
19.进一步的,所述步骤s13:生成一笔储值卡金额m的资金锁定交易tx0和一笔 该资金的赎回交易tx0′
,将tx0发布至区块链网络,具体包括:
20.通过sha256算法,将商家a的第一公钥和用户b的第二公钥进行两次哈希 运算,得到一个多方签名地址p2address=hash(hash(pubkey1+pubkey2));
21.用户b生成一笔资金锁定交易tx0,将用户b的地址作为输入,把金额m转 入多方签名地址p2address,余额(y-m)转入用户b的地址;
22.随后,用户b生成一笔该资金的赎回交易tx0′
,将多方签名地址p2address作 为输入,把金额m转入用户b的地址,金额0转入商家a的地址;
23.用户b把交易tx0′
发送给商家a,商家a确认交易内容无误后对该交易进行 数字签名,生成siga(tx0′
),而后将签名siga(tx0′
)发送给用户b;
24.至此,用户b已有商家a对赎回交易tx0′
的数字签名,只要用户b加上自己 对tx0′
的数字签名,将交易及双方的数字签名一并发布至区块链网络,赎回交易 tx0′
执行成功,即可将资金m解锁,被锁定在多方签名地址中的资金m将全部转 回至用户b的地址中;
25.该赎回交易用于防止用户b将储值卡资金m锁定后商家a消失,以至于无法 得到商家a的签名使得资金m被永久锁定在多方签名地址p2address中;
26.用户b在确保收到siga(tx0′
)后,对锁定交易tx0进行数字签名,生成 sigb(tx0),执行锁定交易tx0,将锁定交易tx0发布至区块链网络,交易执行成 功后,资金m将从用户b的地址转入多方签名地址p2address中;
27.由于该地址是由商家a和用户b两方的公钥组成的多方签名地址,所以转入 该地址的资金必须同时提供a、b双方的数字签名才能使用。
28.进一步的,所述s14通过商品交易合约购买金额为m1的第一件商品,生成 支付交易tx1和tx1′
,交易双方分别对tx1和tx1′
进行签名,并记录到商品交易合 约中,具体包括:
29.用户b通过商品交易合约购买金额为m1的商品;
30.用户b生成一笔支付交易tx1,将多方签名地址p2address作为输入,把金 额m1转入商家a的地址,金额(m-m1)转入用户b的地址;
31.用户b对支付交易tx1进行数字签名,生成sigb(tx1);
32.用户b生成包括支付交易和数字签名的支付交易信息 msgb1(tx1,sigb(tx1)),将支付交易信息msgb1发送给商家a;
33.商家a对msgb1进行验证,查验其中的交易内容是否正确以及数字签名是 否来自用户b;
34.验证通过后生成一个随机数keya1,将随机数keya1与交易tx1的哈希摘要 hash(tx1)记录到商品交易合约中;
35.商家a对支付交易tx1进行复制,得到交易tx1′
,此交易将多方签名地址 p2address作为输入,把金额m1转入商家a的地址,金额(m-m1)转入用户b 的地址;
36.商家a对支付交易tx1′
进行数字签名,生成siga(tx1′
);
37.商家a生成包括支付交易和数字签名的支付交易信息 msga1(tx1′
,siga(tx1′
)),将支付交易信息msga1发送给用户b;
38.用户b对msga1进行验证,查验其中的交易内容是否正确以及数字签名是 否来自商家a;
39.验证通过后生成一个随机数keyb1,将随机数keyb1与交易tx1′
的哈希摘要 hash(tx1′
)记录到商品交易合约中。
40.进一步的,所述步骤s15:通过商品交易合约购买金额为m2的第二件商品, 生成支付交易tx2和tx2′
,交易双方分别对tx2和tx2′
进行签名,并记录到商品交 易合约中,具体包括:
41.用户b通过商品交易合约购买金额为m2的商品;
42.用户b生成一笔支付交易tx2,将多方签名地址p2address作为输入,把金 额(m1+m2)转入商家a的地址,金额(m-(m1+m2))转入用户b的地址;
43.用户b对支付交易tx2进行数字签名,生成sigb(tx2);
44.用户b生成包括支付交易和数字签名的支付交易信息 msgb2(tx2,sigb(tx2)),将支付交易信息msgb2发送给商家a;
45.商家a对msgb2进行验证,查验其中的交易内容是否正确以及数字签名是 否来自用户b;
46.验证通过后生成一个随机数keya2,将随机数keya2与交易tx2的哈希摘要 hash(tx2)记录到商品交易合约中;
47.商家a对支付交易tx2进行复制,得到交易tx2′
,此交易将多方签名地址 p2address作为输入,把金额(m1+m2)转入商家a的地址,金额(m-(m1+ m2))转入用户b的地址;
48.商家a对支付交易tx2′
进行数字签名,生成siga(tx2′
);
49.商家a生成包括支付交易和数字签名的支付交易信息 msga2(tx2′
,siga(tx2′
)),将支付交易信息msga2发送给用户b;
50.用户b对msga2进行验证,查验其中的交易内容是否正确以及数字签名是 否来自商家a;
51.验证通过后生成一个随机数keyb2,将随机数keyb2与交易tx2′
的哈希摘要 hash
(tx2′
)记录到商品交易合约中。
52.进一步的,所述步骤s16:通过商品交易合约购买金额为mk的第k件商品, 生成支付交易txk和txk′
,交易双方分别对txk和txk′
进行签名,并记录到商品 交易合约中,具体包括:
53.用户b通过商品交易合约购买金额为mk的商品;
54.用户b生成一笔支付交易txk,将多方签名地址p2address作为输入,把购 买的k件商品的总金额(m1+m2+

+mk)转入商家a的地址,金额 (m-(m1+m2+

+mk))转入用户b的地址;
55.用户b对支付交易txk进行数字签名,生成sigb(txk);
56.用户b生成包括支付交易和数字签名的支付交易信息 msgbk(txk,sigb(txk)),将支付交易信息msgbk发送给商家a;
57.商家a对msgbk进行验证,查验其中的交易内容是否正确以及数字签名是 否来自用户b;
58.验证通过后生成一个随机数keyak,将随机数keyak与交易txk的哈希摘要 hash(txk)记录到商品交易合约中;
59.商家a对支付交易txk进行复制,得到交易txk′
,此交易将多方签名地址 p2address作为输入,把金额(m1+m2+

+mk)转入商家a的地址,金额 (m-(m1+m2+

+mk))转入用户b的地址;
60.商家a对支付交易txk′
进行数字签名,生成siga(txk′
);
61.商家a生成包括支付交易和数字签名的支付交易信息 msgak(txk′
,siga(txk′
)),将支付交易信息msgak发送给用户b;
62.用户b对msgak进行验证,查验其中的交易内容是否正确以及数字签名是 否来自商家a;
63.验证通过后生成一个随机数keybk,将随机数keybk与交易txk′
的哈希摘要hash(txk′
)记录到商品交易合约中。
64.进一步的,所述步骤s17:生成一笔商品购买结算交易txn,将资金m解锁, 结束双方交易,具体包括:
65.a、b双方其中任意一方想终止双方之间的交易,可以通过商品交易合约发 起商品购买结算交易txn;
66.当用户b想终止双方之间的交易时,此时用户b依次向商家购买了k件商品;
67.用户b对最新的一笔支付交易txk′
进行数字签名,生成sigb(txk′
);
68.用户b通过商品交易合约生成商品购买结算交易txn,将商品购买结算信息 msgbn(txk′
,siga(txk′
),sigb(txk′
),keybk)发送至商品交易合约;
69.商品交易合约对商品购买结算信息msgbn中包含的txk′
进行哈希运算后与 存储在合约中用户b的最新支付交易哈希hash(txk′
)进行对比,看是否一致;
70.如果一致则说明交易未被篡改,否则说明交易被篡改,认定用户b作假;
71.如果验证通过,依次检查siga(txk′
)是否是商家a的签名,sigb(txk′
)是 否是用户b的签名,keybk是否与合约中存储的随机数一致;
72.如果都验证通过,说明用户b提交的支付交易为最新的未被篡改的支付交 易;
73.执行商品购买结算交易txn,将其发布至区块链网络;
74.资金m从多方签名地址解锁,根据支付交易txk′
内容,金额(m1+m2+

+ mk)转入商家a的地址,金额(m-(m1+m2+

+mk))转入用户b的地址;
75.商家a与用户b之间的交易结束。
76.进一步的,当商家a想终止双方之间的交易时,此时用户b依次向商家购 买了k件商品;
77.商家a对最新的一笔支付交易txk进行数字签名,生成siga(txk);
78.商家a通过商品交易合约生成商品购买结算交易txn,将商品购买结算信息 msgan(txk,siga(txk),sigb(txk),keyak)发送至商品交易合约;
79.商品交易合约对商品购买结算信息msgan中包含的txk进行哈希运算后与 存储在合约中用户b的最新支付交易哈希hash(txk)进行对比,看是否一致;
80.如果一致则说明交易未被篡改,否则说明交易被篡改,认定商家a作假;
81.如果验证通过,依次检查siga(txk)是否是商家a的签名,sigb(txk)是否 是用户b的签名,keyak是否与合约中存储的随机数一致;
82.如果都验证通过,说明商家a提交的支付交易为最新的未被篡改的支付交 易;
83.执行商品购买结算交易txn,将其发布至区块链网络;
84.资金m从多方签名地址解锁,根据支付交易txk内容,金额(m1+m2+

+ mk)转入商家a的地址,金额(m-(m1+m2+

+mk))转入用户b的地址;
85.商家a与用户b之间的交易结束。
86.本发明的优点及有益效果如下:
87.在本发明中,对方需为每笔未兑现的交易进行数字签名,如果某一方想提 前终止交易,均可将签名的交易发布至区块链网络兑现资金,使交易方可以进 行更灵活的交易;本发明将资金锁定在多方签名地址中,并为每笔有效交易生 成一个随机数和哈希摘要,作为交易的认可凭证记录到商品交易合约中,由于 另一方无法获取到随机数,交易内容一旦发生变化,哈希摘要就会变化,使得 交易方无法通过伪造交易,有效防止某一方发生欺诈行为,使得不受信的双方 也可进行安全交易。
附图说明
88.图1是本发明提供优选实施例一种基于哈希锁定的去中心化安全交易方法流程 图。
具体实施方式
89.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、 详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
90.本发明解决上述技术问题的技术方案是:
91.本发明期望提供一种在区块链网络交易时减少交易手续费、同时可以保护 交易双方利益的去中心化安全交易方法。
92.本发明提供一种适用于区块链节点的基于哈希锁定的去中心化安全交易方 法,区块链上配置有商品交易合约,该方法包括:
93.通过商品交易合约执行储值卡注册交易,将提供储值卡的商家a的第一公 钥
pubkey1和储值卡金额m记录到商品交易合约中,以供参与储值卡交易的各用 户端;
94.通过商品交易合约执行储值卡购买交易,购买交易执行成功时将用户b的第 二公钥pubkey2记录到商品交易合约中;
95.生成一笔储值卡金额m的资金锁定交易tx0和一笔该资金的赎回交易tx0′
, 将tx0发布至区块链网络:
96.计算得到一个多方签名地址p2address;
97.用户b生成一笔资金锁定交易tx0,将用户b的资金m锁定在多方签名地 址中;
98.随后,用户b生成一笔该资金的赎回交易tx0′
,商家a对赎回交易签名,该 交易可将资金从多方签名地址赎回至用户b的地址;
99.用户b在收到商家a对赎回交易的签名后,对锁定交易tx0进行数字签名并 将其发布至区块链网络,交易执行成功后,资金m将从用户b的地址转入多方 签名地址p2address中;
100.通过商品交易合约购买金额为m1的第一件商品,生成支付交易tx1和tx1′
, 交易双方分别对tx1和tx1′
进行签名,并记录到商品交易合约中:
101.用户b通过商品交易合约购买金额为m1的商品;
102.用户b生成一笔支付交易tx1并进行签名,通过多方签名地址中的资金对商 品进行支付;商家a认可交易tx1后将生成此笔交易的哈希摘要与对应的随机数 记录到商品交易合约中,作为商家a对交易tx1的认可凭证;
103.商家a生成支付交易tx1的副本tx1′
并进行签名,用户b认可交易tx1′
后将 生成此笔交易的哈希摘要与对应的随机数记录到商品交易合约中,作为用户b 对交易tx1′
的认可凭证;
104.用户b每次购买商品后,都采用同样的方式对商品进行支付,在此不再赘 述;
105.a、b双方其中任意一方想终止双方之间的交易,可以通过商品交易合约发 起商品购买结算交易txn;
106.例如用户b想终止双方之间的交易,此时用户b依次向商家购买了k件商品;
107.用户b对最新的一笔支付交易txk′
进行数字签名,生成商品购买结算信息 发送至商品交易合约;
108.商品交易合约对商品购买结算信息包含的结算信息进行一一验证,看是否 正确;
109.验证通过后执行商品购买结算交易txn,将其发布至区块链网络;
110.资金m从多方签名地址解锁,用户b购买的所有商品金额转入商家a的地 址,余额转入用户b的地址;
111.商家a与用户b之间的交易结束。
112.优选的实施方式如下:
113.图1为本发明一实施例提供的一种基于哈希锁定的去中心化安全交易方法的 流程图。
114.如图1所示,在本实施例中,本发明提供一种适用于区块链节点的基于哈希 锁定的去中心化安全交易方法,区块链上配置有商品交易合约,商家a与用户b 通过商品交易合约进行去中心化安全交易,商家a在交易之前的账户余额为x, 用户b在交易之前的账户余额为y,该方法包括:
115.s11:通过商品交易合约执行储值卡注册交易,将提供储值卡的商家a的第 一公钥pubkey1和储值卡金额m记录到商品交易合约中,以供参与储值卡交易的 各用户端;
116.s12:用户b通过商品交易合约执行储值卡购买交易;
117.获取储值卡金额m;
118.获取商家a的第一公钥pubkey1;
119.购买交易执行成功时将用户b的第二公钥pubkey2记录到商品交易合约中;
120.s13:生成一笔储值卡金额m的资金锁定交易tx0和一笔该资金的赎回交易 tx0′
,将tx0发布至区块链网络:
121.通过sha256算法,将商家a的第一公钥和用户b的第二公钥进行两次哈希 运算,得到一个多方签名地址p2address=hash(hash(pubkey1+pubkey2));
122.用户b生成一笔资金锁定交易tx0,将用户b的地址作为输入,把金额m转 入多方签名地址p2address,余额(y-m)转入用户b的地址;
123.随后,用户b生成一笔该资金的赎回交易tx0′
,将多方签名地址p2address作 为输入,把金额m转入用户b的地址,金额0转入商家a的地址;
124.用户b把交易tx0′
发送给商家a,商家a确认交易内容无误后对该交易进行 数字签名,生成siga(tx0′
),而后将签名siga(tx0′
)发送给用户b;
125.至此,用户b已有商家a对赎回交易tx0′
的数字签名,只要用户b加上自己 对tx0′
的数字签名,将交易及双方的数字签名一并发布至区块链网络,赎回交易 tx0′
执行成功,即可将资金m解锁,被锁定在多方签名地址中的资金m将全部转 回至用户b的地址中;
126.该赎回交易用于防止用户b将储值卡资金m锁定后商家a消失,以至于无法 得到商家a的签名使得资金m被永久锁定在多方签名地址p2address中;
127.用户b在确保收到siga(tx0′
)后,对锁定交易tx0进行数字签名,生成 sigb(tx0),执行锁定交易tx0,将锁定交易tx0发布至区块链网络,交易执行成 功后,资金m将从用户b的地址转入多方签名地址p2address中;
128.由于该地址是由商家a和用户b两方的公钥组成的多方签名地址,所以转入 该地址的资金必须同时提供a、b双方的数字签名才能使用;
129.s14:通过商品交易合约购买金额为m1的第一件商品,生成支付交易tx1和 tx1′
,交易双方分别对tx1和tx1′
进行签名,并记录到商品交易合约中:
130.用户b通过商品交易合约购买金额为m1的商品;
131.用户b生成一笔支付交易tx1,将多方签名地址p2address作为输入,把金 额m1转入商家a的地址,金额(m-m1)转入用户b的地址;
132.用户b对支付交易tx1进行数字签名,生成sigb(tx1);
133.用户b生成包括支付交易和数字签名的支付交易信息 msgb1(tx1,sigb(tx1)),将支付交易信息msgb1发送给商家a;
134.商家a对msgb1进行验证,查验其中的交易内容是否正确以及数字签名是 否来自用户b;
135.验证通过后生成一个随机数keya1,将随机数keya1与交易tx1的哈希摘要 hash(tx1)记录到商品交易合约中;
136.商家a对支付交易tx1进行复制,得到交易tx1′
,此交易将多方签名地址 p2address
作为输入,把金额m1转入商家a的地址,金额(m-m1)转入用户b 的地址;
137.商家a对支付交易tx1′
进行数字签名,生成siga(tx1′
);
138.商家a生成包括支付交易和数字签名的支付交易信息 msga1(tx1′
,siga(tx1′
)),将支付交易信息msga1发送给用户b;
139.用户b对msga1进行验证,查验其中的交易内容是否正确以及数字签名是 否来自商家a;
140.验证通过后生成一个随机数keyb1,将随机数keyb1与交易tx1′
的哈希摘要 hash(tx1′
)记录到商品交易合约中;
141.s15:通过商品交易合约购买金额为m2的第二件商品,生成支付交易tx2和 tx2′
,交易双方分别对tx2和tx2′
进行签名,并记录到商品交易合约中:
142.用户b通过商品交易合约购买金额为m2的商品;
143.用户b生成一笔支付交易tx2,将多方签名地址p2address作为输入,把金 额(m1+m2)转入商家a的地址,金额(m-(m1+m2))转入用户b的地址;
144.用户b对支付交易tx2进行数字签名,生成sigb(tx2);
145.用户b生成包括支付交易和数字签名的支付交易信息 msgb2(tx2,sigb(tx2)),将支付交易信息msgb2发送给商家a;
146.商家a对msgb2进行验证,查验其中的交易内容是否正确以及数字签名是 否来自用户b;
147.验证通过后生成一个随机数keya2,将随机数keya2与交易tx2的哈希摘要 hash(tx2)记录到商品交易合约中;
148.商家a对支付交易tx2进行复制,得到交易tx2′
,此交易将多方签名地址 p2address作为输入,把金额(m1+m2)转入商家a的地址,金额(m-(m1+ m2))转入用户b的地址;
149.商家a对支付交易tx2′
进行数字签名,生成siga(tx2′
);
150.商家a生成包括支付交易和数字签名的支付交易信息 msga2(tx2′
,siga(tx2′
)),将支付交易信息msga2发送给用户b;
151.用户b对msga2进行验证,查验其中的交易内容是否正确以及数字签名是 否来自商家a;
152.验证通过后生成一个随机数keyb2,将随机数keyb2与交易tx2′
的哈希摘要 hash(tx2′
)记录到商品交易合约中;
153.s16:通过商品交易合约购买金额为mk的第k件商品,生成支付交易txk和 txk′
,交易双方分别对txk和txk′
进行签名,并记录到商品交易合约中:
154.用户b通过商品交易合约购买金额为mk的商品;
155.用户b生成一笔支付交易txk,将多方签名地址p2address作为输入,把购 买的k件商品的总金额(m1+m2+

+mk)转入商家a的地址,金额 (m-(m1+m2+

+mk))转入用户b的地址;
156.用户b对支付交易txk进行数字签名,生成sigb(txk);
157.用户b生成包括支付交易和数字签名的支付交易信息 msgbk(txk,sigb(txk)),将支付交易信息msgbk发送给商家a;
158.商家a对msgbk进行验证,查验其中的交易内容是否正确以及数字签名是 否来自用户b;
159.验证通过后生成一个随机数keyak,将随机数keyak与交易txk的哈希摘要 hash(txk)记录到商品交易合约中;
160.商家a对支付交易txk进行复制,得到交易txk′
,此交易将多方签名地址 p2address作为输入,把金额(m1+m2+

+mk)转入商家a的地址,金额 (m-(m1+m2+

+mk))转入用户b的地址;
161.商家a对支付交易txk′
进行数字签名,生成siga(txk′
);
162.商家a生成包括支付交易和数字签名的支付交易信息 msgak(txk′
,siga(txk′
)),将支付交易信息msgak发送给用户b;
163.用户b对msgak进行验证,查验其中的交易内容是否正确以及数字签名是 否来自商家a;
164.验证通过后生成一个随机数keybk,将随机数keybk与交易txk′
的哈希摘要hash(txk′
)记录到商品交易合约中;
165.s17:生成一笔商品购买结算交易txn,将资金m解锁,结束双方交易:
166.a、b双方其中任意一方想终止双方之间的交易,可以通过商品交易合约发 起商品购买结算交易txn;
167.例如用户b想终止双方之间的交易,此时用户b依次向商家购买了k件商品;
168.用户b对最新的一笔支付交易txk′
进行数字签名,生成sigb(txk′
);
169.用户b通过商品交易合约生成商品购买结算交易txn,将商品购买结算信息 msgbn(txk′
,siga(txk′
),sigb(txk′
),keybk)发送至商品交易合约;
170.商品交易合约对商品购买结算信息msgbn中包含的txk′
进行哈希运算后与 存储在合约中用户b的最新支付交易哈希hash(txk′
)进行对比,看是否一致;
171.如果一致则说明交易未被篡改,否则说明交易被篡改,认定用户b作假;
172.如果验证通过,依次检查siga(txk′
)是否是商家a的签名,sigb(txk′
)是 否是用户b的签名,keybk是否与合约中存储的随机数一致;
173.如果都验证通过,说明用户b提交的支付交易为最新的未被篡改的支付交 易;
174.执行商品购买结算交易txn,将其发布至区块链网络;
175.资金m从多方签名地址解锁,根据支付交易txk′
内容,金额(m1+m2+

+ mk)转入商家a的地址,金额(m-(m1+m2+

+mk))转入用户b的地址;
176.商家a与用户b之间的交易结束。
177.进一步的,如果商家a想终止双方之间的交易,此时用户b依次向商家购 买了k件商品;
178.商家a对最新的一笔支付交易txk进行数字签名,生成siga(txk);
179.商家a通过商品交易合约生成商品购买结算交易txn,将商品购买结算信息 msgan(txk,siga(txk),sigb(txk),keyak)发送至商品交易合约;
180.商品交易合约对商品购买结算信息msgan中包含的txk进行哈希运算后与 存储在合约中用户b的最新支付交易哈希hash(txk)进行对比,看是否一致;
181.如果一致则说明交易未被篡改,否则说明交易被篡改,认定商家a作假;
182.如果验证通过,依次检查siga(txk)是否是商家a的签名,sigb(txk)是否 是用户b的签名,keyak是否与合约中存储的随机数一致;
183.如果都验证通过,说明商家a提交的支付交易为最新的未被篡改的支付交 易;
184.执行商品购买结算交易txn,将其发布至区块链网络;
185.资金m从多方签名地址解锁,根据支付交易txk内容,金额(m1+m2+

+ mk)转入商家a的地址,金额(m-(m1+m2+

+mk))转入用户b的地址;
186.商家a与用户b之间的交易结束。
187.区块链是一种按照时间顺序来将数据区块顺序相连组合而成的链式数据结 构,并且以密码学方式保证数据区块不可篡改和不可伪造。区块链中的每个区 块通过包括该区块链中紧接其之前的前一个区块的加密散列而链接到该前一个 区块。每个区块还包括时间戳、该区块的加密哈希以及一个或多个交易。对已 经被区块链网络的节点验证的交易进行哈希处理并形成merkle树。在merkle 树中,对叶节点处的数据进行哈希处理,并且针对merkle树的每个分支,在该 分支的根处级联该分支的所有哈希值。针对merkle树执行上述处理,直到整个 merkle树的根节点。merkle树的根节点存储代表该merkle树中的所有数据的 哈希值。当一个哈希值声称是merkle树中存储的交易时,可以通过判断该哈希 值是否与merkle树的结构一致来进行快速验证。
188.区块链网络是用于管理、更新和维护一个或多个区块链结构的计算节点网 络。在本说明书中,区块链网络可以包括公有区块链网络、私有区块链网络或 联盟区块链网络。
189.在公有区块链网络中,共识过程由共识网络的节点控制。例如,在公有区 块链网络中可以存在成千上万个实体协作处理,每个实体操作该公有区块链网 络中的至少一个节点。因此,公有区块链网络可以被认为是参与实体的公有网 络。在一些示例中,大多数实体(节点)必须按序对每个区块进行签名,并且 将签名后的区块添加到区块链网络的区块链中。公有区块链网络的示例可以包 括特定对等支付网络。
190.公有区块链网络支持公有交易。公有交易在公有区块链网络内的所有节点 之间共享,并且存储在全局区块链中。全局区块链是指跨所有节点复制的区块 链。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络内实现 共识协议。共识协议的示例包括但不限于:工作量证明(pow,proof-of-work), 权益证明(pos,proof-of-stake)和权威证明(poa,proof-of-authority)。
191.私有区块链网络被提供来用于特定实体。私有区块链网络中的各个节点的 读写权限被严格控制。因此,私有区块链网络通常也称为许可网络,其对允许 谁参与网络以及的网络参与水平(例如,仅在某些交易情形下)进行限制。在 私有区块链网络中,可以使用各种类型的访问控制机制(例如,现有参与方对 添加新实体进行投票,监管机构控制许可等)。
192.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实 体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。 具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、 智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制 台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
193.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任 何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序 的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、 静态随机存取存储器
(sram)、动态随机存取存储器(dram)、其他类型的随机存 取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快 闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其 他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定, 计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据 信号和载波。
194.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖 非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅 包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过 程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包 括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者 设备中还存在另外的相同要素。
195.以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范 围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或 修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1