CN109886661A - 跨链数字货币兑换方法、装置、计算机系统及存储介质 - Google Patents
跨链数字货币兑换方法、装置、计算机系统及存储介质 Download PDFInfo
- Publication number
- CN109886661A CN109886661A CN201910040725.6A CN201910040725A CN109886661A CN 109886661 A CN109886661 A CN 109886661A CN 201910040725 A CN201910040725 A CN 201910040725A CN 109886661 A CN109886661 A CN 109886661A
- Authority
- CN
- China
- Prior art keywords
- transaction
- block
- block chain
- node
- chain
- 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
Links
Abstract
本发明提供一种跨链数字货币兑换方法、装置、计算机系统及存储系统,该方法包括:将来自第二区块链上的交易发送方的交易邀约发送至第一区块链上的交易接收方;判断是否接收到兑换指令;从交易接收方在第一区块链上的账户中转出兑换数量的第一货币至交易发送方在第一区块链上的账户地址,生成交易;将交易纳入第一区块链上的第一区块中;生成交易对应的认证数值序列;将区块的第一区块头、认证数值序列以及交易接收方在第二区块链上的账户地址发送至第二区块链;执行第二区块链上的智能合约对交易进行验证,若通过验证,从交易发送方在第二区块链的账户转出第二货币至交易接收方在第二区块链上的账户地址。本发明消除了中心化交易所的垄断经营。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种跨链数字货币兑换方法、装置、计算机系统及存储介质。
背景技术
各类资产的便捷交易、货币的自由流通是现代商业社会的基石。资产交易和货币流通的共同基础都是对于价值、交易双方和交易规则的信任。然而,为了建立信任,尤其是陌生的交易双方之间的信任,对资产可靠性的信任,社会付出的代价相当的高昂,建立了各种中心化的大型组织、以及政府的各类监管机构。通过对大机构及政府的公信力的信任,来实现自由便捷的资产交易。例如,各类股票和大宗商品交易市场、大型商业银行、中央银行、房管局等等。这些组织和机构为了达到信任要求,组织庞大,流程细致复杂,导致运作费用高而效率有限。更重要的是,中心化的组织带来了权力和信息向组织本身的集中,导致组织本身的利益可能和社会利益不一致,或者组织本身的疏忽或者恶意违规操作可能带来后果严重。
发明内容
本发明的目的在于提供一种去中心化的跨链数字货币兑换方法、装置、计算机系统及存储介质,以解决上述现有技术中的问题。
为了实现上述目的,本发明提供一种跨链数字货币兑换方法,包括以下步骤:
S1,将来自第二区块链上的交易发送方的交易邀约发送至第一区块链上的交易接收方,所述交易邀约包含:期望兑换的第一货币的兑换数量、兑换比例以及所述交易发送方在第一区块链上的账户地址;
S2,判断是否接收到所述交易邀约对应的兑换指令,若是,执行步骤S3,所述兑换指令包含所述交易接收方在第二区块链上的账户地址;
S3,从所述交易接收方在第一区块链上的账户中转出所述兑换数量的第一货币至所述交易发送方在第一区块链上的账户地址,从而生成一笔交易;
S4,将所述交易纳入第一区块链上的第一区块中,同时生成所述第一区块对应的Merkle树、区块头和区块体,所述第一区块的区块头记为第一区块头;
S5,基于所述Merkle树,生成所述交易对应的认证数值序列;
S6,将所述第一区块头、所述认证数值序列以及所述交易接收方在第二区块链上的账户地址发送至所述第二区块链;
S7,执行所述第二区块链上的智能合约,所述智能合约包括:根据所述第一区块头、所述认证数值序列对所述交易进行验证,若所述交易通过验证,则按所述兑换比例从所述交易发送方在第二区块链的账户上转出相应的第二货币至所述交易接收方在第二区块链上的账户地址。
进一步地,所述第一区块头包含第一区块的版本号、时间戳、前一区块哈希值、Merkle树根、随机数和目标值。
进一步地,在所述步骤S7中,根据所述第一区块头、所述认证数值序列对所述交易进行验证的步骤如下:
S71,对所述第二区块链当前接收到的所有区块头进行工作量证明验证,若通过工作量证明验证,则存储所述第一区块头,否则,丢弃所述第一区块头;
S72,对所述交易进行支付验证,所述支付验证包括:验证所述认证数值序列是否合法、以及是否存储有所述第一区块头,若两者都是,则表示所述交易通过验证。
进一步地,在所述步骤S71中,采用如下步骤对所述第一区块头进行工作量证明验证:
S711,对所述第一区块头进行双重SHA256运算;
S712,判断所述步骤S711的运算结果是否小于所述第一区块头中的目标值,若小于,表示所述第一区块头通过工作量证明验证。
进一步地,所述步骤S3生成的所述Merkle树为二叉树。
进一步地,所述步骤S5通过如下步骤生成所述交易对应的认证数值序列:
S51,将所述Merkle树中,所述交易对应的节点作为第1个节点;
S52,将所述Merkle树中,所述交易对应的节点的兄弟节点作为第2个节点,并初始化I=3;
S53,将所述Merkle树中,第I-1个节点的父节点的兄弟节点作为第I个节点;
S54,令I=I+1,并返回执行所述步骤S53,直到I=M+1,执行步骤S55,其中M表示所述二叉树的高度;
S55,将所述Merkle树的根节点作为第M+1个节点;
S56,将所述第1个节点至第M+1个节点对应的值按顺序排列,形成所述认证数值序列。
进一步地,在所述步骤S72中,通过如下步骤验证所述认证数值序列是否合法:
S721,初始化J=1,对所述认证数值序列中的第1个数值和第2个数值进行哈希运算,得到第J个哈希结果;
S722,将第J个哈希结果与所述认证数值序列中的第J+2个数值进行哈希运算,得到第J+1个哈希结果;
S723,令J=J+1,并返回执行所述步骤S722,直到J=M-1,执行步骤S724;
S724,判断第M-1个哈希结果与所述认证数值序列中的最后一个数值是否相同,若相同,则表示所述认证数值序列合法。
为了实现上述目的,本发明提供一种跨链数字货币兑换装置,包括:
交易邀约发送模块,用于将来自第二区块链上的交易发送方的交易邀约发送至第一区块链上的交易接收方,所述交易邀约包含:期望兑换的第一货币的兑换数量、兑换比例以及所述交易发送方在第一区块链上的账户地址;
兑换指令接收判断模块,用于判断是否接收到所述交易邀约对应的兑换指令,所述兑换指令包含所述交易接收方在第二区块链上的账户地址;
转账模块,用于在接收到所述兑换指令时,从所述交易接收方在第一区块链上的账户中转出所述兑换数量的第一货币至所述交易发送方在第一区块链上的账户地址,从而生成一笔交易;
区块处理模块,用于将所述交易纳入第一区块链上的第一区块中,同时生成所述区块对应的Merkle树、区块头和区块体,所述第一区块的区块头记为第一区块头;
认证序列生成模块,用于基于所述Merkle树,生成所述交易对应的认证数值序列;
信息发送模块,用于将所述第一区块头、所述认证数值序列以及所述交易接收方在第二区块链上的账户地址发送至所述第二区块链;
智能合约处理模块,用于执行所述第二区块链上的智能合约,所述智能合约包括:根据所述第一区块头、所述认证数值序列对所述交易进行验证,若所述交易通过验证,则按所述兑换比例从所述交易发送方在第二区块链的账户上转出相应的第二货币至所述交易接收方在第二区块链上的账户地址。
进一步地,所述第一区块头包含所述第一区块的版本号、时间戳、前一区块哈希值、Merkle树根、随机数和目标值。
进一步地,所述智能合约处理模块包括:
工作量证明单元,用于对所述第二区块链当前接收到的所有区块头进行工作量证明验证,若通过工作量证明验证,则存储所述第一区块头,否则丢弃所述第一区块头;
支付验证单元,用于对所述交易进行支付验证,所述支付验证包括:验证所述认证数值序列是否合法、以及是否存储有所述第一区块头,若两者都是,则表示所述交易通过验证。
进一步地,所述工作量证明单元包括:
运算子单元,用于对所述第一区块头进行双重SHA256运算;
工作量判断子单元,用于判断所述运算子单元的运算结果是否小于所述第一区块头中的目标值,若小于,判定所述第一区块头通过工作量证明验证。
进一步地,所述区块处理模块生成的所述Merkle树为二叉树。
进一步地,所述认证序列生成模块包括:
第一节点选取单元,用于将所述Merkle树中的所述交易对应的节点作为第1个节点,
第二节点选取单元,用于将所述Merkle树中的所述交易对应的节点的兄弟节点作为第2个节点,并初始化I=3;
第三节点选取单元,用于重复将所述Merkle树中的第I-1个节点的父节点的兄弟节点作为第I个节点,并令I=I+1,直到I=M+1,其中M表示所述二叉树的高度;
第四节点选取单元,用于将所述Merkle树的根节点作为第M+1个节点;
序列生成单元,用于将所述第1个节点至第M+1个节点对应的值按顺序排列,形成所述认证数值序列。
进一步地,所述支付验证单元包括:
第一哈希运算子单元,用于对所述认证数值序列中的第1个数值和第2个数值进行哈希运算,得到第1个哈希结果,初始化J=1;
第二哈希运算子单元,用于重复将第J个哈希结果与所述认证数值序列中的第J+2个数值进行哈希运算,得到第J+1个哈希结果,并令J=J+1,直到J=M-1;
序列判断子单元,用于判断第M-1个哈希结果与所述认证数值序列中的最后一个数值是否相同,若相同,则判定所述认证数值序列合法。
为了实现上述目的,本发明还提供一种计算机系统,其包括多个计算机设备,各计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述多个计算机设备的处理器执行所述计算机程序时共同实现前述方法的步骤。
为了实现上述目的,本发明还提供一种计算机可读存储介质,存储介质上存储有计算机程序,所述存储介质存储的所述计算机程序被处理器执行时实现前述方法的步骤。
通过采用上述技术方案,本发明相对于现有技术具有如下有益效果:
1、本发明使用区块链上的智能合约自动执行兑换逻辑,在执行的过程中,使用工作量证明验证和简单的支付验证,只要判断出一个交易在区块链上的某个区块里出现过,则证明该交易已完成。
2、智能合约的代码和逻辑是公开的,执行过程在数以万计的区块链节点上通过验证,保证了兑换逻辑的公正性,防止了中心化操作的信任危机。
3、自动化的智能合约保证了兑换逻辑的严格正确执行,消除了人工操作的失误。
4、本发明消除了中心化交易所的垄断经营,任何愿意提供兑换服务的个人和组织只要有足够的资金即可以再区块链上部署兑换合约、经营兑换服务,不需要复杂的设定和审批,并且区块链上更多的服务节点保证了兑换服务的可靠性和价格的合理性,避免了中心化节点的单点故障。
附图说明
图1为本发明跨链数字货币兑换方法的一个实施例的流程图;
图1A为本发明生成的Merkle树的一个实施例的结构图;
图2为本发明跨链数字货币兑换装置的一个实施例的结构框图;
图3为本发明中认证序列生成模块的一个实施例的结构框图;
图4为本发明中智能合约处理模块的一个实施例的结构框图;
图5为本发明中工作量证明单元的一个实施例的结构框图;
图6为本发明中支付验证单元的一个实施例的结构框图;
图7为本发明计算机设备的一个实施例的硬件架构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参阅图1,示出了本发明一种跨链数字货币兑换方法,包括以下步骤:
S1,将来自第二区块链上的交易发送方的交易邀约发送至第一区块链上的交易接收方,交易邀约包含:期望兑换的第一货币的兑换数量、兑换比例以及交易发送方在第一区块链上的账户地址。例如,假设A持有C1链上的C1货币,B持有C2链上的C2货币,B向A发送交易邀约,该交易邀约包含以下内容:若A向B在C1链上的账户地址转入数量为X的C1货币,则B将按兑换比例K在C2链上向A转入C2货币。
S2,判断是否接收到所述交易邀约对应的兑换指令,若是,执行步骤S3,该兑换指令包含交易接收方在第二区块链上的账户地址。
S3,从交易接收方在第一区块链上的账户中转出前述兑换数量的第一货币至交易发送方在第一区块链上的账户地址,从而生成一笔交易Tx。
S4,通过记账矿工节点将交易Tx纳入第一区块链上的第一区块中,同时生成第一区块对应的Merkle(默克)树、区块头和区块体,为方便后续表述,第一区块的区块头记为第一区块头。
在区块链中,每个区块都会对应一个Merkle树,其从叶子节点(树的底部)开始,一个叶子节点就是一个交易的哈希(本发明中哈希是指使用双重SHA256哈希)。叶子节点的数量必须是双数,但是并非每个区块都包含了双数的交易。如果一个区块里面的交易数为单数,那么就将最后一个叶子节点复制一份凑成双数。从下往上,两两成对,连接两个节点哈希,将组合哈希作为新的哈希。新的哈希就成为新的树节点。重复该过程,直到仅有一个节点,也就是树根。根哈希将作为整个区块交易的唯一标识,将它保存到区块头,后续用于工作量证明。如图2所示,示出了本实施例生成的一个Merkle树,节点Tx即为交易Tx对应的节点。
众所周知,每个区块包含一个区块体和一个区块头。区块体中含有当前区块保存的所有交易信息。区块头包含对应区块的版本号、时间戳、前一区块哈希值、Merkle树根、随机数和目标值。其中,版本号是指当前区块的版本号;前一区块哈希值是指前一个区块的哈希值,当前区块的哈希值一定比其小;Merkle树根是指当前区块中所有交易构成的Merkle树的根节点的值;时间戳是指当前区块生成的时间;随机数是指为了找到满足目标值所设定的随机数;目标值是当前区块工作量证明的目标值。
S5,基于Merkle树,生成交易对应的认证数值序列,具体过程如下:
S51,将Merkle树中,交易对应的节点作为第1个节点;
S52,将Merkle树中,交易对应的节点的兄弟节点作为第2个节点,并初始化I=3;
S53,将Merkle树中,第I-1个节点的父节点的兄弟节点作为第I个节点;
S54,令I=I+1,并返回执行步骤S53,直到I=M+1,执行步骤S55,其中M表示二叉树的高度;
S55,将Merkle树的根节点作为第M+1个节点;
S56,将第1个节点至第M+1个节点对应的值按顺序排列,形成所述认证数值序列。
以图1A所示的Merkle树为例,树高为4,首先将交易Tx对应的节点Tx作为第一个节点,将节点Tx的的兄弟节点H6作为第二个节点,将H6的父节点H2的兄弟节点H3作为第三个节点,将H3的父节点H0的兄弟节点H1作为第四个节点,将根节点Root作为第5个节点,而后将第1个至第5个节点的值按顺序排列,形成认证数值序列(H6,Tx,H3,H1,Root)。
S6,将第一区块头、认证数值序列以及交易接收方在第二区块链上的账户地址发送至第二区块链。
S7,执行第二区块链上的智能合约,智能合约是指区块链中的应用,是已编码的,可自动运行的业务逻辑。本实施例在执行步骤S1之前,提前将智能合约部署到第二区块链上并公开。
在本发明中,智能合约包括:根据第一区块头、认证数值序列对交易进行验证,若交易通过验证,则按前述兑换比例从交易发送方在第二区块链的账户上转出相应的第二货币至交易接收方在第二区块链上的账户地址。
在本智能合约中,根据第一区块头、认证数值序列对交易进行验证的步骤如下:
S71,对第一区块头进行工作量证明验证,若通过工作量证明验证,则存储第一区块头,否则丢弃第一区块头。工作量证明验证的过程如下:首先对第一区块头进行双重SHA256运算;而后,判断步骤S711的运算结果是否小于第一区块头中的目标值,若小于,表示对应的区块已被后续很多区块引用,其中的交易被篡改的难度非常大,则判定第一区块头通过工作量证明验证。
S72,对交易进行支付验证,支付验证包括:验证认证数值序列是否合法、以及是否存储有第一区块头(即存储的所有区块头中是否有区块头的Merkle树根与第一区块头中的Merkle树根相同,其中,相同表示存储有第一区块头)。若认证数值序列合法且存储有第一区块头,表示交易未被篡改而且已被第一区块链上的矿工节点入账,也就是说确定交易发送方在第一区块链上的账户地址中收到了交易接收方的转账,则判定交易通过验证。
其中,验证认证数值序列是否合法的步骤如下:
S721,初始化J=1,对认证数值序列中的第1个数值和第2个数值进行哈希运算,得到第J个哈希结果;
S722,将第J个哈希结果与认证数值序列中的第J+2个数值进行哈希运算,得到第J+1个哈希结果;
S723,令J=J+1,并返回执行步骤S722,直到J=M-1,执行步骤S724;
S724,判断第M-1个哈希结果与认证数值序列中的最后一个数值是否相同,若相同,表示认证数值序列合法。
例如,以认证数值序列(H6,Tx,H3,H1,Root)为例,首先将H6和Tx进行哈希运算,得到第1个哈希结果;将第1个哈希结果与H3运算,得到第2个哈希结果;将第2个哈希结果与H1运算,得到第3个哈希结果;而后,判定第3个哈希结果与Root是否相同,若相同,判定认证数值序列合法。
实施例二
参阅图2,示出了本发明一种跨链数字货币兑换装置10,包括:
交易邀约发送模块11,用于将来自第二区块链上的交易发送方的交易邀约发送至第一区块链上的交易接收方,交易邀约包含:期望兑换的第一货币的兑换数量、兑换比例以及交易发送方在第一区块链上的账户地址;
兑换指令接收判断模块12,用于判断是否接收到交易邀约对应的兑换指令,该兑换指令包含交易接收方在第二区块链上的账户地址;
转账模块13,用于在兑换指令接收判断模块12接收到兑换指令时,从交易接收方在第一区块链上的账户中转出前述兑换数量的第一货币至交易发送方在第一区块链上的账户地址,从而生成一笔交易;
区块处理模块14,用于将前述交易纳入第一区块链上的一个区块中,同时生成区块对应的Merkle树、区块头和区块体,其中,区块头包含对应区块的版本号、时间戳、前一区块哈希值、Merkle树根、随机数和目标值,区块体中含有当前区块保存的所有交易信息,Merkle树为二叉树,为方便后续描述,第一区块的区块头记为第一区块头;
认证序列生成模块15,用于基于第一区块的Merkle树,生成交易对应的认证数值序列;
信息发送模块16,用于将第一区块头、认证数值序列以及交易接收方在第二区块链上的账户地址发送至第二区块链;
智能合约处理模块17,用于执行第二区块链上的智能合约,智能合约包括:根据第一区块头、认证数值序列对交易进行验证,若交易通过验证,则按前述兑换比例从交易发送方在第二区块链的账户上转出相应的第二货币至交易接收方在第二区块链上的账户地址。
在本实施例中,认证序列生成模块15如图3所示,包括:
第一节点选取单元151,用于将Merkle树中的交易对应的节点作为第1个节点,
第二节点选取单元152,用于将Merkle树中的交易对应的节点的兄弟节点作为第2个节点,并初始化I=3;
第三节点选取单元153,用于重复将Merkle树中的第I-1个节点的父节点的兄弟节点作为第I个节点,并令I=I+1,直到I=M+1,其中M表示二叉树的高度;
第四节点选取单元154,用于将Merkle树的根节点作为第M+1个节点;
序列生成单元155,用于将第1个节点至第M+1个节点对应的值按顺序排列,形成认证数值序列。
在本实施例中,智能合约处理模块17如图4所示,包括:
工作量证明单元171,用于对第一区块头进行工作量证明验证,若通过工作量证明验证,则存储第一区块头,否则,丢弃第一区块头;
支付验证单元172,用于对交易进行支付验证,支付验证包括:验证认证数值序列是否合法、以及是否存储有第一区块头,若两者都是,表示交易通过验证。
在本实施例中,工作量证明单元171如图5所示,包括:
运算子单元1711,用于将第一区块头进行双重SHA256运算;
工作量判断子单元1712,用于判断运算子单元的运算结果是否小于第一区块头中的目标值,若小于,判定第一区块头通过工作量证明验证。
在本实施例中,支付验证单元172如图6所示,包括:
第一哈希运算子单元1721,用于对认证数值序列中的第1个数值和第2个数值进行哈希运算,得到第1个哈希结果,初始化J=1;
第二哈希运算子单元1722,用于重复将第J个哈希结果与认证数值序列中的第J+2个数值进行哈希运算,得到第J+1个哈希结果,并令J=I+1,直到J=M-1;
序列判断子单元1723,用于判断第M-1个哈希结果与认证数值序列中的最后一个数值是否相同,若相同,则判定认证数值序列合法。
实施例三
本实施例还提供一种计算机系统,该计算机系统包括多个计算机设备20,实施例二的跨链数字货币兑换装置10的组成部分可分散于不同的计算机设备20中,计算机设备20可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备20至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器22,如图7所示。需要指出的是,图7仅示出了具有组件21-22的计算机设备20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器21(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备20的内部存储单元,例如该计算机设备20的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备20的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备20的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机系统设备的操作系统和各类应用软件,例如实施例二的灰度发布装置的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备20的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据。本实施例计算机系统的多个计算机设备20的处理器22共同执行计算机程序时实现实施例一的跨链数字货币兑换方法。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例计算机可读存储介质存储实施例二的跨链数字货币兑换装置10,被处理器执行时实现实施例一的跨链数字货币兑换方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种跨链数字货币兑换方法,其特征在于,包括以下步骤:
S1,将来自第二区块链上的交易发送方的交易邀约发送至第一区块链上的交易接收方,所述交易邀约包含:期望兑换的第一货币的兑换数量、兑换比例以及所述交易发送方在第一区块链上的账户地址;
S2,判断是否接收到所述交易邀约对应的兑换指令,若是,执行步骤S3,其中,所述兑换指令包含所述交易接收方在第二区块链上的账户地址;
S3,从所述交易接收方在第一区块链上的账户中转出所述兑换数量的第一货币至所述交易发送方在第一区块链上的账户地址,从而生成一笔交易;
S4,将所述交易纳入第一区块链上的第一区块中,同时生成所述第一区块对应的Merkle树、区块头和区块体,所述第一区块的区块头记为第一区块头;
S5,基于所述Merkle树,生成所述交易对应的认证数值序列;
S6,将所述第一区块头、所述认证数值序列以及所述交易接收方在第二区块链上的账户地址发送至所述第二区块链;
S7,执行所述第二区块链上的智能合约,所述智能合约包括:根据所述第一区块头、所述认证数值序列对所述交易进行验证,若所述交易通过验证,则按所述兑换比例从所述交易发送方在第二区块链的账户上转出相应的第二货币至所述交易接收方在第二区块链上的账户地址。
2.根据权利要求1所述的跨链数字货币兑换方法,其特征在于,所述第一区块头包含所述第一区块的版本号、时间戳、前一区块哈希值、Merkle树根、随机数和目标值。
3.根据权利要求2所述的跨链数字货币兑换方法,其特征在于,在所述步骤S7中,根据所述第一区块头、所述认证数值序列对所述交易进行验证的步骤如下:
S71,对所述第一区块头进行工作量证明验证,若通过工作量证明验证,则存储所述第一区块头,否则丢弃所述第一区块头;
S72,对所述交易进行支付验证,所述支付验证包括:验证所述认证数值序列是否合法、以及是否存储有所述第一区块头,若两者都是,则表示所述交易通过验证。
4.根据权利要求3所述的跨链数字货币兑换方法,其特征在于,在所述步骤S71中,采用如下步骤对所述第一区块头进行工作量证明验证:
S711,对所述第一区块头进行双重SHA256运算;
S712,判断所述步骤S711的运算结果是否小于所述第一区块头中的目标值,若小于,表示所述第一区块头通过工作量证明验证。
5.根据权利要求1所述的跨链数字货币兑换方法,其特征在于,所述步骤S3生成的所述Merkle树为二叉树。
6.根据权利要求5所述的跨链数字货币兑换方法,其特征在于,所述步骤S5通过如下步骤生成所述交易对应的认证数值序列:
S51,将所述Merkle树中,所述交易对应的节点作为第1个节点;
S52,将所述Merkle树中,所述交易对应的节点的兄弟节点作为第2个节点,并初始化I=3;
S53,将所述Merkle树中,第I-1个节点的父节点的兄弟节点作为第I个节点;
S54,令I=I+1,并返回执行所述步骤S53,直到I=M+1,执行步骤S55,其中M表示所述二叉树的高度;
S55,将所述Merkle树的根节点作为第M+1个节点;
S56,将所述第1个节点至第M+1个节点对应的值按顺序排列,形成所述认证数值序列。
7.根据权利要求6所述的跨链数字货币兑换方法,其特征在于,在所述步骤S72中,通过如下步骤验证所述认证数值序列是否合法:
S721,初始化J=1,对所述认证数值序列中的第1个数值和第2个数值进行哈希运算,得到第J个哈希结果;
S722,将第J个哈希结果与所述认证数值序列中的第J+2个数值进行哈希运算,得到第J+1个哈希结果;
S723,令J=J+1,并返回执行所述步骤S722,直到J=M-1,执行步骤S724;
S724,判断第M-1个哈希结果与所述认证数值序列中的最后一个数值是否相同,若相同,则表示所述认证数值序列合法。
8.一种跨链数字货币兑换装置,其特征在于,包括:
交易邀约发送模块,用于将来自第二区块链上的交易发送方的交易邀约发送至第一区块链上的交易接收方,所述交易邀约包含:期望兑换的第一货币的兑换数量、兑换比例以及所述交易发送方在第一区块链上的账户地址;
兑换指令接收判断模块,用于判断是否接收到所述交易邀约对应的兑换指令,所述兑换指令包含所述交易接收方在第二区块链上的账户地址;
转账模块,用于在接收到所述兑换指令时,从所述交易接收方在第一区块链上的账户中转出所述兑换数量的第一货币至所述交易发送方在第一区块链上的账户地址,从而生成一笔交易;
区块处理模块,用于将所述交易纳入第一区块链上的第一区块中,同时生成所述第一区块对应的Merkle树、区块头和区块体,所述第一区块的区块头记为第一区块头;
认证序列生成模块,用于基于所述Merkle树,生成所述交易对应的认证数值序列;
信息发送模块,用于将所述第一区块头、所述认证数值序列以及所述交易接收方在第二区块链上的账户地址发送至所述第二区块链;
智能合约处理模块,用于执行所述第二区块链上的智能合约,所述智能合约包括:根据所述第一区块头、所述认证数值序列对所述交易进行验证,若所述交易通过验证,则按所述兑换比例从所述交易发送方在第二区块链的账户上转出相应的第二货币至所述交易接收方在第二区块链上的账户地址。
9.一种计算机系统,其包括多个计算机设备,各计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述多个计算机设备的处理器执行所述计算机程序时共同实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述存储介质存储的所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910040725.6A CN109886661A (zh) | 2019-01-16 | 2019-01-16 | 跨链数字货币兑换方法、装置、计算机系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910040725.6A CN109886661A (zh) | 2019-01-16 | 2019-01-16 | 跨链数字货币兑换方法、装置、计算机系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109886661A true CN109886661A (zh) | 2019-06-14 |
Family
ID=66926129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910040725.6A Pending CN109886661A (zh) | 2019-01-16 | 2019-01-16 | 跨链数字货币兑换方法、装置、计算机系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109886661A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110298757A (zh) * | 2019-07-05 | 2019-10-01 | 北京艾摩瑞策科技有限公司 | 涉及DPoS的共识方法及其装置 |
CN110706113A (zh) * | 2019-12-13 | 2020-01-17 | 腾讯科技(深圳)有限公司 | 一种跨区块链的数据处理方法、装置、设备及介质 |
CN110930148A (zh) * | 2019-11-22 | 2020-03-27 | 上海欧冶金融信息服务股份有限公司 | 基于token的寄存兑换取回方法及系统 |
CN111010441A (zh) * | 2019-12-18 | 2020-04-14 | 深圳市网心科技有限公司 | 一种区块链跨链方法、系统及电子设备 |
CN111275414A (zh) * | 2019-12-31 | 2020-06-12 | 深圳市网心科技有限公司 | 一种基于区块链的数字货币兑换方法、装置及系统 |
CN111401890A (zh) * | 2020-01-19 | 2020-07-10 | 上海瑾琛网络科技有限公司 | 交易方法及设备 |
CN112513907A (zh) * | 2020-06-29 | 2021-03-16 | 香港应用科技研究院有限公司 | 提供数字资产交换协议的装置和方法 |
CN112740251A (zh) * | 2019-12-31 | 2021-04-30 | 深圳市网心科技有限公司 | 一种基于区块链的数字货币交易方法、装置及系统 |
CN112862612A (zh) * | 2019-06-28 | 2021-05-28 | 创新先进技术有限公司 | 一种跨链发送资源的方法和装置 |
CN113222750A (zh) * | 2021-01-29 | 2021-08-06 | 众连智能科技有限公司 | 一种跨境支付结算方法、装置、系统、设备及存储介质 |
CN113568946A (zh) * | 2020-07-03 | 2021-10-29 | 支付宝实验室(新加坡)有限公司 | 用于管理多个区块链网络中的交易的方法、系统和装置 |
CN114257383A (zh) * | 2020-09-10 | 2022-03-29 | 中国电信股份有限公司 | 数据的处理方法、区块链节点和计算机可读存储介质 |
WO2022256880A1 (en) * | 2021-06-10 | 2022-12-15 | Amaroo.Com Holdings Pty Ltd | System and method for decentralised, scalable, and secure consensus between cooperating blockchain systems |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106960388A (zh) * | 2017-03-01 | 2017-07-18 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 跨区块链的数字资产流转的方法和装置 |
CN107077674A (zh) * | 2016-12-29 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 交易验证处理方法、装置及节点设备 |
CN107679857A (zh) * | 2017-10-10 | 2018-02-09 | 马晶瑶 | 区块链的跨链交易方法和存储介质 |
CN107742210A (zh) * | 2017-10-13 | 2018-02-27 | 布比(北京)网络技术有限公司 | 一种不同区块链间的跨链转账系统和方法 |
WO2018076762A1 (zh) * | 2016-10-27 | 2018-05-03 | 上海亿账通区块链科技有限公司 | 基于区块链的交易验证方法、系统、电子装置及介质 |
CN108009811A (zh) * | 2017-11-30 | 2018-05-08 | 中国人民解放军国防科技大学 | 一种面向云际计算环境价值交换的跨链通信方法 |
CN108197944A (zh) * | 2017-11-22 | 2018-06-22 | 远光软件股份有限公司 | 基于区块链技术的资源交易方法及装置 |
US20180204191A1 (en) * | 2015-07-08 | 2018-07-19 | Barclays Bank Plc | Secure Digital Data Operations |
CN108492108A (zh) * | 2018-03-29 | 2018-09-04 | 深圳前海微众银行股份有限公司 | 区块链跨链通信方法、系统和计算机可读存储介质 |
CN109087080A (zh) * | 2018-07-13 | 2018-12-25 | 杭州复杂美科技有限公司 | 跨链交易方法、设备和存储介质 |
-
2019
- 2019-01-16 CN CN201910040725.6A patent/CN109886661A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180204191A1 (en) * | 2015-07-08 | 2018-07-19 | Barclays Bank Plc | Secure Digital Data Operations |
WO2018076762A1 (zh) * | 2016-10-27 | 2018-05-03 | 上海亿账通区块链科技有限公司 | 基于区块链的交易验证方法、系统、电子装置及介质 |
CN107077674A (zh) * | 2016-12-29 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 交易验证处理方法、装置及节点设备 |
WO2018119930A1 (zh) * | 2016-12-29 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 交易验证处理方法、装置及节点设备 |
CN106960388A (zh) * | 2017-03-01 | 2017-07-18 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 跨区块链的数字资产流转的方法和装置 |
CN107679857A (zh) * | 2017-10-10 | 2018-02-09 | 马晶瑶 | 区块链的跨链交易方法和存储介质 |
CN107742210A (zh) * | 2017-10-13 | 2018-02-27 | 布比(北京)网络技术有限公司 | 一种不同区块链间的跨链转账系统和方法 |
CN108197944A (zh) * | 2017-11-22 | 2018-06-22 | 远光软件股份有限公司 | 基于区块链技术的资源交易方法及装置 |
CN108009811A (zh) * | 2017-11-30 | 2018-05-08 | 中国人民解放军国防科技大学 | 一种面向云际计算环境价值交换的跨链通信方法 |
CN108492108A (zh) * | 2018-03-29 | 2018-09-04 | 深圳前海微众银行股份有限公司 | 区块链跨链通信方法、系统和计算机可读存储介质 |
CN109087080A (zh) * | 2018-07-13 | 2018-12-25 | 杭州复杂美科技有限公司 | 跨链交易方法、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
张诗童: "基于哈希锁定的多方跨链协议研究", 《网络空间安全》, vol. 9, no. 11, pages 57 - 62 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112862612B (zh) * | 2019-06-28 | 2024-04-30 | 创新先进技术有限公司 | 一种跨链发送资源的方法和装置 |
CN112862612A (zh) * | 2019-06-28 | 2021-05-28 | 创新先进技术有限公司 | 一种跨链发送资源的方法和装置 |
CN110298757B (zh) * | 2019-07-05 | 2021-04-02 | 北京瑞策科技有限公司 | 涉及DPoS的共识方法及其装置 |
CN110298757A (zh) * | 2019-07-05 | 2019-10-01 | 北京艾摩瑞策科技有限公司 | 涉及DPoS的共识方法及其装置 |
CN110930148A (zh) * | 2019-11-22 | 2020-03-27 | 上海欧冶金融信息服务股份有限公司 | 基于token的寄存兑换取回方法及系统 |
CN110706113A (zh) * | 2019-12-13 | 2020-01-17 | 腾讯科技(深圳)有限公司 | 一种跨区块链的数据处理方法、装置、设备及介质 |
CN111010441A (zh) * | 2019-12-18 | 2020-04-14 | 深圳市网心科技有限公司 | 一种区块链跨链方法、系统及电子设备 |
CN112740251A (zh) * | 2019-12-31 | 2021-04-30 | 深圳市网心科技有限公司 | 一种基于区块链的数字货币交易方法、装置及系统 |
CN111275414A (zh) * | 2019-12-31 | 2020-06-12 | 深圳市网心科技有限公司 | 一种基于区块链的数字货币兑换方法、装置及系统 |
CN111401890A (zh) * | 2020-01-19 | 2020-07-10 | 上海瑾琛网络科技有限公司 | 交易方法及设备 |
CN112513907A (zh) * | 2020-06-29 | 2021-03-16 | 香港应用科技研究院有限公司 | 提供数字资产交换协议的装置和方法 |
CN113568946A (zh) * | 2020-07-03 | 2021-10-29 | 支付宝实验室(新加坡)有限公司 | 用于管理多个区块链网络中的交易的方法、系统和装置 |
US11354657B2 (en) | 2020-07-03 | 2022-06-07 | Alipay Labs (singapore) Pte. Ltd. | Managing transactions in multiple blockchain networks |
CN114257383A (zh) * | 2020-09-10 | 2022-03-29 | 中国电信股份有限公司 | 数据的处理方法、区块链节点和计算机可读存储介质 |
CN114257383B (zh) * | 2020-09-10 | 2024-04-12 | 中国电信股份有限公司 | 数据的处理方法、区块链节点和计算机可读存储介质 |
CN113222750A (zh) * | 2021-01-29 | 2021-08-06 | 众连智能科技有限公司 | 一种跨境支付结算方法、装置、系统、设备及存储介质 |
WO2022256880A1 (en) * | 2021-06-10 | 2022-12-15 | Amaroo.Com Holdings Pty Ltd | System and method for decentralised, scalable, and secure consensus between cooperating blockchain systems |
GB2622523A (en) * | 2021-06-10 | 2024-03-20 | Amaroo Com Holdings Pty Ltd | System and method for decentralised, scalable, and secure consensus between cooperating blockchain systems |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109886661A (zh) | 跨链数字货币兑换方法、装置、计算机系统及存储介质 | |
Buitenhek | Understanding and applying blockchain technology in banking: Evolution or revolution? | |
CN111026789B (zh) | 基于区块链的电子票据查询方法及装置、电子设备 | |
CN109886677B (zh) | 一种基于区块链的商品购置方法和装置 | |
CN110163590A (zh) | 基于区块链的缴费代扣方法及装置、电子设备、存储介质 | |
CN110458631B (zh) | 基于区块链的票据号码分配方法、装置及电子设备 | |
CN110009498A (zh) | 基于区块链的资源分配方法和装置 | |
CN110009489A (zh) | 基于区块链的资产转移方法及装置、电子设备 | |
CN110147990A (zh) | 基于区块链的缴费代扣签约方法及装置、电子设备 | |
WO2021017437A1 (zh) | 基于区块链的票据核销方法及装置、电子设备、存储介质 | |
CN109815138A (zh) | 业务信息测试方法、装置、计算机设备和存储介质 | |
CN110033377A (zh) | 基于区块链的资产清分方法及装置、电子设备 | |
CN108830710B (zh) | 区块链交易平台及实现方法 | |
CN111553792A (zh) | 基于区块链的数据验证方法及装置 | |
CN109493202A (zh) | 区块链对账方法、装置、系统、设备及可读存储介质 | |
CN111383117A (zh) | 基于区块链的资产管理方法、装置及电子设备 | |
CN110009322A (zh) | 转账过程中的身份验证方法和装置 | |
CN111738724B (zh) | 跨境资源转移真实性审核方法及装置、电子设备 | |
CN110020936A (zh) | 基于区块链的资产管理方法及装置、电子设备 | |
CN110020543A (zh) | 一种基于区块链的数据处理方法和装置 | |
CN110020948A (zh) | 基于区块链的资产溯源方法及装置、电子设备 | |
CN109784924A (zh) | 基于区块链架构的仓单认证方法及装置 | |
CN112766854B (zh) | 基于区块链的数字商品交易方法和装置 | |
CN109815289A (zh) | 用于区块链网络的区块生成方法、计算设备、存储介质 | |
CN112883109A (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 |