区块链中母链与子链交易的方法及区块链网络与流程

文档序号:15145964发布日期:2018-08-10 20:27阅读:2772来源:国知局

本发明涉及区块链和智能合约领域,尤其涉及一种区块链中母链与子链交易的方法及区块链网络。



背景技术:

自2009年比特币系统推出以来,它带来了众多计算机科学和电子现金方面的创新,以比特币及其衍生竞争币为代表的去中心化加密货币受到了广泛关注。该货币类系统的特点是基于区块链构建分布式共享总账,从而保证系统运行的安全、可靠、去中心化特性。

区块链是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案,是一串使用密码学方法相关联产生的数据块。该技术方案主要让参与系统中的任意多个节点,通过一串使用密码学方法相关联产生的数据块,每个数据块中包含了一定时间内的系统全部信息交流数据,并且生成数据指纹用于验证其信息的有效性和链接下一个数据库块。

目前基于子母链架构实现全行业价值生态的成熟解决方案并没有,区块链之间彼此仍然是独立的,诸多区块链技术都是针对具体的行业或者技术发行,如健康链等,目前的跨链交换基本都是基于交易所等第三方可信机构实现的,这与区块链本身声称的去中心化的本质相违背。



技术实现要素:

针对上述问题,本发明的目的在于提供一种区块链中母链与子链交易的方法及区块链网络,可实现可靠、去中心化的子母链代币交易和价值流通。

本发明实施例提供了一种区块链中母链与子链交易的方法,包括:

相应于子链注资人的第一节点通过调用母链的第一智能合约中的注资函数,将所述子链注资人提供的注资参数写入到第一智能合约中,并在母链网络中广播;其中,所述注资参数包括根据子链注资人提供的初始数r生成的哈希值h、待注资的母链代币数、锁定期限以及所述子链注资人在子链中的第一账户地址;

相应于子链权益人的第二节点将根据所述子链权益人提供的哈希值h、所述第一账户地址、待提取的子链代币数以及有效期限写入到子链的第二智能合约中,并在子链网络中广播;

所述第一节点在所述有效期限内根据所述初始数r调用子链中的第二智能合约以获取所述待提取的子链代币数;

在确认所述第一节点的提取操作后,所述第二节点根据获知的所述初始数r调用母链中的第一智能合约,获取所述子链注资人在所述母链中锁定的相应数量的母链代币。

优选地,还包括:

所述第二节点在母链中通过发送t个母链代币及相应的用于创建子链的参数,以调用位于所述母链的第一智能合约中的子链创建函数,将所述子链注册到所述母链上;其中,所述参数包括子链的主节点信息、发行的子链代币量n、子链性质用途描述信息、子链权益人列表及对应权益权重。

优选地,所述待提取的子链代币数根据当前子链与母链之间的汇率以及待注资的母链代币数生成;

所述子链与母链的汇率初始为t:n;并根据注资的母链代币数量的增减浮动。

优选地,还包括:

所述第二节点验证当前调用第一智能合约中的子母链价值转换函数的账户地址是否为子链权益人列表中的子链权益人的账户地址;

若是,则允许获取所述子链注资人锁定的相应数量的母链代币;

若否,则禁止获取所述子链注资人锁定的相应数量的母链代币。

优选地,还包括:

相应于权益人列表中的权益人节点通过调用第一智能合约中的子链管理函数以确认子链的注册。

优选地,所述母链为公有链,且所述子链与母链均支持智能合约功能。

优选地,当所述子链与所述母链的账户地址机制不同时,所述注资函数以及所述子母链价值转换函数包括相应的涉及交易的双方在母链中的账户地址参数,以指明涉及交易的双方在母链中的账户地址。

优选地,还包括:

子链中的验证节点对所述第一节点的提取操作进行验证,并在验证通过后,将根据提取操作对应生成的区块加入到自身维护的区块链中,从而更新子链注资人以及子链权益人在第一账户地址的子链代币余额;

母链中的验证节点对第二节点的获取母链代币的交易记录进行验证,并在验证通过后,将根据交易记录对应生成的区块加入到自身维护的区块链中,从而更新子链权益人以及子链注资人在母链的账户地址的母链代币余额。

本发明实施例还提供了一种区块链网络,包括:多个节点,用于分别存储包括记录数据的区块,并链接区块而形成区块链;多个节点中包括至少一个相应于子链注资人的第一节点以及相应于子链权益人的第二节点;其中:

所述第一节点,用于通过调用母链的第一智能合约中的注资函数,将所述子链注资人提供的注资参数写入到第一智能合约中,并在母链网络中广播;其中,所述注资参数包括根据子链注资人提供的初始数r生成的哈希值h、待注资的母链代币数、锁定期限以及所述子链注资人在子链中的账户地址;

所述第二节点,用于将根据所述子链权益人提供的哈希值h、所述第一账户地址、待提取的子链代币数以及有效期限写入到子链的第二智能合约中,并在子链网络中广播;其中,所述待提取的子链代币数根据当前子链与母链之间的汇率以及待注资的母链代币数生成;

所述第一节点,还用于在所述有效期限内根据所述初始数r调用子链中的第二智能合约以获取所述待提取的子链代币数;

所述第二节点,还用于在确认所述第一节点的提取操作后,根据获知的所述初始数r调用母链中的第二智能合约,获取所述子链注资人在所述母链中锁定的相应数量的母链代币。

本发明实施例提供的区块链中母链与子链交易的方法及区块链网络,实现了不需要依赖于任何第三方的跨链价值连通方案,同时构建子母链结构实现母链针对全行业,子链针对具体行业垂直应用的子母链价值体系,能够很好的适应行业全局生态,依托于这种子母链交易方式,整个全局价值被打通,各行业间不再因为区块链彼此间的独立而隔绝。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的区块链中母链与子链交易的方法的流程示意图。

图2是本发明实施例提供的区块链中母链与子链交易的方法的场景图。

图3是本发明实施例提供的第一智能合约c的数据结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在对本发明进行进一步详细说明之前,以下先对本发明实施例中涉及的名词和术语进行说明。

代币,本发明实施例中指加密互联网货币,是以密码学为基础的分布式数字货币,包括比特币、以太币、莱特币以及其他类似的衍生币种,其中,不同的区块链可以子定义不同的代币。

区块(block)是一个存储单元,各个区块之间通过随机散列(也称哈希算法)实现链接(chain),后一个区块的区块头(区块的头部)包含前一个区块的哈希值,从而实现区块与区块相继接续,形成区块链。

区块链(blockchain),多个节点通过一串使用密码学方法相关联产生区块,区块采用“区块头+区块体”的结构,区块头中用于验证记录数据的有效性的数据、以及前一个区块的索引数据,区块体中包含了一定时间内的记录数据。

从功能结构上讲,区块链是一群分散的节点运行的分布式数据库,用以存储各种记录数据如虚拟货币交易的记录数据。从数据结构层面上讲,区块链中包括一系列的区块,新区块一旦加入到区块链中就不会再被移走,区块中包含了记录数据,用于验证记录数据的有效性(防伪)和生成下一个区块。

以比特币为例,比特币的交易依赖于运行区块链中节点的确认,当比特币交易被一节点首次确认时,对应的交易清单被添加到区块链中的最新区块,该交易被区块链网络中的其他节点继续确认免交易重复,当在足够的区块中得到确认(也就是在区块记录数据该交易)时交易得到最终确认,此时交易不可逆转。

非对称加密一种密钥的保密方法。非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。

智能合约,能够依赖于区块链平台执行设定业务逻辑使区块链成为可编程的技术功能,典型如以太坊的智能合约。

请参阅图1,本发明实施例提供了一种区块链中母链与子链交易的方法,包括:

s101,相应于子链注资人的第一节点通过调用母链的第一智能合约中的注资函数,将所述子链注资人提供的注资参数写入到第一智能合约中,并在母链网络中广播;其中,所述注资参数包括根据子链注资人提供的初始数r生成的哈希值h、待注资的母链代币数、锁定期限以及所述子链注资人在子链中的第一账户地址。

s102,相应于子链权益人的第二节点将根据所述子链权益人提供的哈希值h、所述第一账户地址、待提取的子链代币数以及有效期限写入到子链的第二智能合约中,并在子链网络中广播。

s103,所述第一节点在所述有效期限内根据所述初始数r调用子链中的第二智能合约以获取所述待提取的子链代币数。

s104,在确认所述第一节点的提取操作后,所述第二节点根据获知的所述初始数r调用母链中的第一智能合约,获取所述子链注资人在所述母链中锁定的相应数量的母链代币。

如图2所示,子链权益人首先要将子链b挂接到母链a上。具体地,当子链权益人想创建子链b并挂接在母链a上时,其调用母链上的第一智能合约(记作c)进行注册,第一智能合约c的数据结构如图3所示。具体注册流程为:

(a)s创建好子链b,并做好相关的搭建及配置服务,随后需要在子链b上发布一个简单的第二智能合约,此合约包含的功能只有一项,就是第一智能合约c中的子母链价值转换函数。

(b)接着,s在母链a中发送预定数量的母链代币以调用第一智能合约c中的子链创建函数,并给定子链的相关参数,包括子链b的主节点信息,发行的子链代币量,子链性质用途等描述信息,子链权益人列表及对应权益权重。发送的母链代币量就是此条子链b的抵押金额(显而易见的,子链b中汇率初始为抵押的母链代币数量比上发行的子链代币量)或者称作权益保障。随后权益人列表中的其他权益人通过自身的节点查看子链b的相关信息,核实无误后,通过自身的节点调用第一智能合约c中的子链管理函数进行确认,以通过此条子链的注册,此时,该子链就正式注册成功。

需要说明的是,一般创建子链的不会是单个用户,我们称创建子链的为权益人(记作s),但是理论上权益人是一个人也可以;二是挂接在母链上是为了实现子链同母链代币间的流通,也就是实现价值连通,同时依托于母链平台可以吸引更多的投资人。

在本实施例中,当有其他用户想要加入此子链b(也就是看这条子链发展的好,或者需要使用这条子链上的代币/服务,或者其他目的等等),其可以通过调用第一智能合约c中的注资函数,来兑换子链代币并进行使用。

以下说明投资人注资子链并以母链代币获得子链代币的具体方法。

设定注资人为v,其通过自身的第一节点生成一个初始数r(例如可为随机数),并计算r的哈希值h(也就是h=hash(r)),采用的哈希算法可以为sha256或其他散列算法。接着v通过第一节点调用注资函数(函数原型invest(condition,time1,[child_chain_address]),child_chain_addrees代表v在子链中的第一账户地址,condition代表h。time1代表锁定期限,即超过time1时刻之后,v可以随时取回自己注入的资金。假设注入的资金为m个母链代币,则当且仅当某位用户能够提供一个数,其哈希值等于h时,其就可以将v锁定在第一智能合约中的母链代币取走。

执行完毕后,v向子链权益人s出示转账凭证h,s通过第二节点查看v在母链中锁定的母链代币值和其对应的第一账户地址,然后相应的在子链的第二智能合约中设定提币凭证为h,函数原型为(currency(count,address,condition,time2)),其中address为v在子链中的第一账户地址,condition为h,time2为有效期限,count为根据子链当前汇率计算后可提的子链代币数量,其计算方式为v所投入的母链代币量*此子链的汇率。也就是说,子链权益人s在第二智能合约中设定在time2之前,指定的账户地址(address)如果在子链网络中发送了一个数,其哈希值为condition(也就是h),就可以将count数量的子链代币拿走,子链代币的发送由第二智能合约自动执行。

之后s通知v,v通过第一节点去子链中查看,判断可提币数量有无错误,如无误则利用自己的初始数r,在time2之前调用子链中的子母链价值转换函数,获得count数量的子链代币。

在本实施例中,当v提取count数量的子链代币后,子链权益人s即自动获知了初始数r,然后其通过第二节点在母链中s可通过第二节点利用r调用第一智能合约c中的子母链价值转换函数(此函数会做地址检查,调用此函数的账户地址必须是注册子链的权益人列表中的之一的账户地址),获取到v锁定在其中注入的母链代币,从而完成了母链中任一用户将母链代币兑换成子链代币的过程。

需要说明的是:子母链中采用的账户地址机制可以是一致的或者不一致的,注资函数和子母链价值转换函数需要依照这两种情况决定是否增加参数变量。如果子母链账户地址机制不一致,则需要在注资函数和子母链价值转换函数增加相应的母链账户地址,用于指明子母链价值转换涉及的双方在子母链中的对应账户地址,如果子母链账户地址机制一致,则不需要。

需要说明的是,第一节点和第二节点在子链和母链中广播智能合约时,需要进行非对称加密,生成包含数字签名的加密数据,从而位于子链中的验证节点和位于母链中的验证节点可以对智能合约的有效性进行验证。

需要说明的是,位于子链中的验证节点对所述第一节点的提取操作进行验证,并在验证通过后(子链中的超过预设数量的节点验证通过),将根据提取操作对应生成的区块加入到自身维护的区块链中,从而更新子链注资人和子链权益人在子链中的余额。同样的,母链中的验证节点对第二节点的获取母链代币的交易记录进行验证,并在验证通过后(母链中的超过预设数量的节点验证通过),将根据交易记录对应生成的区块加入到自身维护的区块链中,从而更新子链权益人和子链注资人在母链中的余额。同样的,子链权益人和子链注资人写入的智能合约也需要经过子链和母链中的验证节点的验证并存储到区块中。

需要说明的是,子链和母链间代币的转换是相互的,只需采用相反的方式即可将子链代币转换为母链代币,在此不做赘述。

此外,子链与母链间代币的汇率会随着投资人的增多以及投资人的撤资(也就是投资人将自己的子链代币转换成母链代币)时而浮动。其次,当投资金额特别多的时候,会出现子链权益人s掌握的其实是很少部分的子链代币,其可以通过同样的方式与子链中的其他用户进行这样的交易来获取子链代币。在子母链间兑换代币时,如果发生任何不符和问题,发现问题的一方都可以不作为,等到超过锁定期限或有效期限即可以取回自己的代币,且当子链中用户增加时,任何用户都可以成为子母链价值交易的买卖双方,从而避免类似dos(拒绝服务攻击)的攻击。另外,对于任何人,母链中第一智能合约c内的子链权益(对应的母链代币)只能通过以对应子链代币兑换的方式去动用。

综上所述,本发明实施例提供的区块链中母链与子链交易的方法,实现了不需要依赖于任何第三方的跨链价值连通方案,同时构建子母链结构实现母链针对全行业,子链针对具体行业垂直应用的子母链价值体系,能够很好的适应行业全局生态,依托于这种子母链交易方式,整个全局价值被打通,各行业间不再因为区块链彼此间的独立而隔绝。

本发明实施例还提供了一种区块链网络,包括:多个节点,用于分别存储包括记录数据的区块,并链接区块而形成区块链;多个节点中包括至少一个相应于子链注资人的第一节点以及相应于子链权益人的第二节点;其中:

所述第一节点,用于通过调用母链的第一智能合约中的注资函数,将所述子链注资人提供的注资参数写入到第一智能合约中,并在母链网络中广播;其中,所述注资参数包括根据子链注资人提供的初始数r生成的哈希值h、待注资的母链代币数、锁定期限以及所述子链注资人在子链中的账户地址;

所述第二节点,用于将根据所述子链权益人提供的哈希值h、所述第一账户地址、待提取的子链代币数以及有效期限写入到子链的第二智能合约中,并在子链网络中广播;其中,所述待提取的子链代币数根据当前子链与母链之间的汇率以及待注资的母链代币数生成;

所述第一节点,还用于在所述有效期限内根据所述初始数r调用子链中的第二智能合约以获取所述待提取的子链代币数;

所述第二节点,还用于在确认所述第一节点的提取操作后,根据获知的所述初始数r调用母链中的第二智能合约,获取所述子链注资人在所述母链中锁定的相应数量的母链代币。

优选地,所述第二节点,还用于在母链中通过发送t个母链代币及相应的用于创建子链的参数,以调用位于所述母链的第一智能合约中的子链创建函数,将所述子链注册到所述母链上;其中,所述参数包括子链的主节点信息、发行的子链代币量n、子链性质用途描述信息、子链权益人列表及对应权益权重。

优选地,所述待提取的子链代币数根据当前子链与母链之间的汇率以及待注资的母链代币数生成;

所述子链与母链的汇率初始为t:n;并根据注资的母链代币数量的增减浮动。

优选地,所述第二节点,还用于验证当前调用第一智能合约中的子母链价值转换函数的账户地址是否为子链权益人列表中的子链权益人的账户地址;

若是,则允许获取所述子链注资人锁定的相应数量的母链代币;

若否,则禁止获取所述子链注资人锁定的相应数量的母链代币。

优选地,还包括相应于权益人列表中的权益人节点,用于通过调用第一智能合约中的子链管理函数以确认子链的注册。

优选地,所述母链为公有链,且所述子链与母链均支持智能合约功能。

优选地,当所述子链与所述母链的账户地址机制不同时,所述注资函数以及所述子母链价值转换函数包括相应的涉及交易的双方在母链中的账户地址参数,以指明涉及交易的双方在母链中的账户地址。

优选地,还包括子链中的验证节点,用于对所述第一节点的提取操作进行验证,并在验证通过后,将根据提取操作对应生成的区块加入到自身维护的区块链中,从而更新子链注资人以及子链权益人在第一账户地址的子链代币余额;

母链中的验证节点,还用于对第二节点的获取母链代币的交易记录进行验证,并在验证通过后,将根据交易记录对应生成的区块加入到自身维护的区块链中,从而更新子链权益人以及子链注资人在母链的账户地址的母链代币余额。

综上所述,本发明实施例提供的区块链网络,实现了不需要依赖于任何第三方的跨链价值连通方案,同时构建子母链结构实现母链针对全行业,子链针对具体行业垂直应用的子母链价值体系,能够很好的适应行业全局生态,依托于这种子母链交易方式,整个全局价值被打通,各行业间不再因为区块链彼此间的独立而隔绝。

以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1