基于DAG结构的资产发行方法、装置及存储介质与流程

文档序号:17148122发布日期:2019-03-19 23:10阅读:222来源:国知局
基于DAG结构的资产发行方法、装置及存储介质与流程

本申请涉及基于dag结构的资产发行方法、装置及存储介质,属于区块链技术领域。



背景技术:

资产是一种可以代表任何可替换可交易的物品(比如:硬币,金币,游戏内物品等)的数字令牌。在使用资产进行交易前,需要基于某种标准进行发行。

目前,发行资产的方式为基于以太坊发行资产,该资产发行方法包括:对智能合约进行编译;设置资产的发行数量、资产的名称、简称等参数;递交资产发行合约;将发行的资产添加到钱包中;在钱包中添加资产发行合约的合约地址;对资产发行合约进行验证。

然而,在以太坊上执行代码、存储数据需要消耗一定量的以太币,这样,基于以太坊发行的资产在转账时,需要消耗一定数量的交易手续费;另外,以太坊上发行的资产交易时长较长且并发性低。



技术实现要素:

本申请提供了一种基于dag结构的资产发行方法、装置及存储介质,可以解决基于以太坊发行的资产在转账时,需要消耗一定数量的交易手续费、资产交易时长较长且并发性低的问题。本申请提供如下技术方案:

第一方面,提供了一种基于dag结构的资产发行方法,所述方法包括:

在对目标资产进行发行时,基于用户账户对应的主链创建所述目标资产对应的资产链;

根据所述用户账户的账户信息、所述目标资产的资产信息和所述主链中的块信息配置所述资产链中资产头块的块信息;

在所述资产头块上发行所述目标资产,所述资产链支持创建发送所述目标资产的交易发送块和接收所述目标资产的交易接收块。

可选地,所述根据所述用户账户的账户信息、所述目标资产的资产信息和所述主链中的块信息配置所述资产链中资产头块的块信息,包括:

将所述主链的主链头块中的哈希值设置为所述资产头块中的前置哈希值;

将所述用户账户的代表地址设备为所述资产头块的代表地址;

将所述用户账户的账户地址设置为所述资产头块的创始账户地址;

在所述资产头块中设置所述目标资产的资产地址;

生成所述资产头块的工作量证明;

根据所述用户账户生成所述资产头块的签名。

可选地,所述在所述资产头块上发行所述目标资产之后,还包括:

在发送所述资产头块中的目标资产时,在所述资产链中创建资产发送块;

将所述资产链中的尾块哈希值确定为所述资产发送块中的前置哈希值;

将所述用户账户的代表地址设备为所述资产头块的代表地址;

将所述目标资产的接收方账户确定为目标地址;

在所述资产发送块中设置所述目标资产的资产地址;

生成所述资产发送块的工作量证明;

根据所述用户账户生成所述资产发送块的签名。

可选地,所述在所述资产头块上发行所述目标资产之后,还包括:

在接收所述资产头块中的目标资产时,在所述资产链中创建资产接收块;

将所述资产链中的尾块哈希值确定为所述资产接收块中的前置哈希值;

将所述用户账户的代表地址设备为所述资产头块的代表地址;

获取发送所述目标资产的发送账户的块哈希值;

生成所述资产接收块的工作量证明;

根据所述用户账户生成所述资产接收块的签名。

可选地,每种所述目标资产对应一条所述资产链;所述资产链上的各个块用于记录对应的目标资产的交易历史记录和余额变化,所述资产链由对应的用户账户更新。

第二方面,提供了一种基于dag结构的资产发行装置,所述装置包括:

新链创建模块,用于在对目标资产进行发行时,基于用户账户对应的主链创建所述目标资产对应的资产链;

参数设置模块,用于根据所述用户账户的账户信息、所述目标资产的资产信息和所述主链中的块信息配置所述资产链中资产头块的块信息;

资产发行模块,用于在所述资产头块上发行所述目标资产,所述资产链支持创建发送所述目标资产的交易发送块和接收所述目标资产的交易接收块。

可选地,所述参数设置模块,用于:

将所述主链的主链头块中的哈希值设置为所述资产头块中的前置哈希值;

将所述用户账户的代表地址设备为所述资产头块的代表地址;

将所述用户账户的账户地址设置为所述资产头块的创始账户地址;

在所述资产头块中设置所述目标资产的资产地址;

生成所述资产头块的工作量证明;

根据所述用户账户生成所述资产头块的签名。

可选地,每种所述目标资产对应一条所述资产链;所述资产链上的各个块用于记录对应的目标资产的交易历史记录和余额变化,所述资产链由对应的用户账户更新。

第三方面,提供一种基于dag结构的资产发行装置,所述装置包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的基于dag结构的资产发行方法。

第四方面,提供一种计算机可读存储介质,所述存储介质中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的基于dag结构的资产发行方法。

本申请的有益效果在于:通过在对目标资产进行发行时,基于用户账户对应的主链创建目标资产对应的资产链;根据用户账户的账户信息、目标资产的资产信息和主链中的块信息配置资产链中资产头块的块信息;在资产头块上发行目标资产,该资产链支持创建发送目标资产的交易发送块和接收目标资产的交易接收块;可以解决基于以太坊发行的资产在转账时,需要消耗一定数量的交易手续费;另外,以太坊上发行的资产交易时长较长且并发性低的问题;由于资产发行基于dag结构,而dag结构中的资产具有及时到账、免交易手续费、并发性高的特点,因此,可以实现发行的目标资产在交易时提高到账速度、免交易手续费、提高并发性。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。

附图说明

图1是本申请一个实施例提供的基于dag结构的源石币系统的结构示意图;

图2是本申请一个实施例提供的基于dag结构的源石币系统中资产转移的示意图;

图3是本申请一个实施例提供的基于dag结构的资产发行方法的流程图;

图4是本申请一个实施例提供的基于dag结构的资产发行时的链结构示意图;

图5是本申请一个实施例提供的基于dag结构的资产发行装置的框图;

图6是本申请一个实施例提供的基于dag结构的资产发行装置的框图。

具体实施方式

下面结合附图和实施例,对本申请的具体实施方式作进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。

首先,对本申请涉及的若干名词进行介绍。

摩尔链:免交易费的有向无环图(directedacyclicgraph,dag)公有链,交易最快确认速度可达50毫秒(当然,也可以是比50毫米更大或者更小的数值),受限于带宽和网络延迟。

dag结构:是指从任意一个节点出发,根据方向无法回到原节点的结构。基于dag结构的区块链系统中,维持一条公认的主链作为凭证,而其它分支只要不和主链冲突都可以视为有效交易。

源石币(railblocks,或称nano):是一种基于区块点阵(blocklattice)结构的新型加密货币,其中每个用户账户都有自己的区块链,提供近乎瞬时的交易速度和无限的可扩展性。每个用户账户(即用户账户的账户地址)都有自己的区块链,允许他们异步地更新到网络的其余部分,从而以极小的资源开销获得快速的交易确认。交易记录账户余额而不是交易金额,使得系统可以在不牺牲安全性的情况下进行大幅度的数据库修剪。

参考图1,在源石币系统中,每个账户都有自己的区块链(账户链),相当于账户的交易/余额历史记录。每个账户链由账户所有者更新,这允许每个账户链立即且异步地更新到晶格的其余部分,从而实现快速交易。raiblocks的协议是极其轻量级的,每个交易都能够被放进符合在互联网上传输所需的最小用户数据报协议(userdatagramprotocol,udp)数据包里。节点的硬件要求也是最小的,因为节点只需要为大部分交易记录和重播区块。系统通过一个包含初始金额的创世账户实现初始化。初始金额(总供应量)是一个固定的数字,永远不能增加。初始金额通过在创世账户链上注册的发送交易发送到其他账户。所有账户余金额总和不会超过最初的初始金额。

构成源石币系统的组件包括账户、区块、账本和节点,下面分别对这些组件进行介绍。

账户:是数字签名密钥对的公钥部分。公钥也被称为地址,而私钥则保密。数字签名的数据包确保内容得到私钥持有者的认可。一个用户可以控制多个账户,但每个账户只能有一个公共地址。

区块:也可以称为“交易”,一个块包含一个交易。交易特指动作,而区块特指交易的数字编码。交易由执行交易的账户的私钥签名。

账本:是一个全局集合,每个账户拥有自己的交易链。通过签名检查,每个人都同意只有账户所有者可以修改自己的链。这样,看似共享的数据结构(分布式账本)转换为一组非共享数据结构。

节点:是在计算机上运行的一个软件,它服从raiblocks协议并参与raiblocks网络。该软件管理着账本和节点可能控制的账户。一个节点可以存储整个账本或者只存储每个账户的最后几个区块的修剪历史记录。建立新节点时,建议验证整个历史记录并在本地修剪。

参考图2所示的源石币系统中的交易过程,其中,每笔资金转移都需要一个发送块(s)和一个接收块(r),每个块由对应的用户链所有者签署。

下面对本申请提供的基于dag结构的资产发行方法进行介绍,本申请中,以各个实施例中每个步骤的执行主体为终端为例进行说明,该终端可以是计算机、手机、平板电脑、个人计算机等具有资产发行功能的设备,本实施例不对终端的设备类型作限定。

图3是本申请一个实施例提供的基于dag结构的资产发行方法的流程图。该方法至少包括以下几个步骤:

步骤301,在对目标资产进行发行时,基于用户账户对应的主链创建目标资产对应的资产链。

可选地,目标资产可以是代币,当然,也可以是其它用于交易的资源,本实施例不对目标资产的类型作限定。

可选地,主链可以为摩尔链。主链包括:主链头块,主链发送块,主链接收块和主链更改块。主链头块用于记录对应的用户账户的账户初始值;主链发送块用于记录对应的用户账户进行的发送交易,并记录该用户账户进行发送交易后的交易余额;主链接收块用于记录对应的用户账户进行的接收交易,并记录该用户账户进行接收交易后的交易余额;主链更改块用于记录该用户账户进行的更改交易,并记录用户账户进行更改交易后的交易余额。

可选地,资产链是对主链进行复制后的得到的;每种目标资产对应一条资产链;资产链上的各个块用于记录对应的目标资产的交易历史记录和余额变化,资产链由对应的用户账户更新。资产链包括资产头块,当然,在对资产链对应的目标资产进行发送交易时,资产链还可以包括资产发送块;对资产链对应的目标资产进行接收交易时,资产链还可以包括资产接收块。

步骤302,根据用户账户的账户信息、目标资产的资产信息和主链中的块信息配置资产链中资产头块的块信息。

可选地,根据用户账户的账户信息、目标资产的资产信息和主链中的块信息配置资产链中资产头块的块信息,包括:将主链的主链头块中的哈希值设置为资产头块中的前置哈希值;将用户账户的代表地址设备为资产头块的代表地址;将用户账户的账户地址设置为资产头块的创始账户地址;在资产头块中设置目标资产的资产地址;生成资产头块的工作量证明;根据用户账户生成资产头块的签名。

当然,资产头块还可以包括其它信息,比如:块类型、用户账户的账户地址公钥、目标资产的资产名称、用户账户的账户地址、目标资产的发行量等,本实施例不对资产头块中的信息作限定。

步骤303,在资产头块上发行目标资产,该资产链支持创建发送目标资产的交易发送块和接收目标资产的交易接收块。

可选地,在资产头块上发行目标资产包括:将发行的目标资产添加到钱包中,在钱包中添加目标资产的资产地址。

综上所述,本实施例提供的基于dag结构的资产发行方法,通过在对目标资产进行发行时,基于用户账户对应的主链创建目标资产对应的资产链;根据用户账户的账户信息、目标资产的资产信息和主链中的块信息配置资产链中资产头块的块信息;在资产头块上发行目标资产,该资产链支持创建发送目标资产的交易发送块和接收目标资产的交易接收块;可以解决基于以太坊发行的资产在转账时,需要消耗一定数量的交易手续费;另外,以太坊上发行的资产交易时长较长且并发性低的问题;由于资产发行基于dag结构,而dag结构中的资产具有及时到账、免交易手续费、并发性高的特点,因此,可以实现发行的目标资产在交易时提高到账速度、免交易手续费、提高并发性。

可选地,基于上述实施例,在步骤103之后,在资产头块上发行目标资产之后,还包括:在发送资产头块中的目标资产时,在资产链中创建资产发送块;将资产链中的尾块哈希值确定为资产发送块中的前置哈希值;将用户账户的代表地址设备为资产头块的代表地址;将目标资产的接收方账户确定为目标地址;在资产发送块中设置目标资产的资产地址;生成资产发送块的工作量证明;根据用户账户生成资产发送块的签名。

可选地,基于上述实施例,在步骤103之后,在资产头块上发行目标资产之后,还包括:在接收资产头块中的目标资产时,在资产链中创建资产接收块;将资产链中的尾块哈希值确定为资产接收块中的前置哈希值;将用户账户的代表地址设备为资产头块的代表地址;获取发送目标资产的发送账户的块哈希值;生成资产接收块的工作量证明;根据用户账户生成资产接收块的签名。

上述资产发送块和资产接收块的相关描述与源石币的发送块和接收块的描述类似,本实施例在此不再赘述。

示意性地,参考图4,终端需要发行目标资产时,基于主链401复制一条该目标资产对应的资产链402,创建资产链402的资产头块;在该资产链402的资产头块上发行目标代币;在进行目标代币的发送交易时,在该资产链402上创建资产发送块,在资产发送块中记录该笔发送交易;在进行目标代币的接收交易时,在该资产链402上创建资产接收块,在资产接收块中记录该笔接收交易。

图5是本申请一个实施例提供的基于dag结构的资产发行装置的框图。该装置至少包括以下几个模块:新链创建模块510、参数设置模块520和资产发行模块530。

新链创建模块510,用于在对目标资产进行发行时,基于用户账户对应的主链创建所述目标资产对应的资产链;

参数设置模块520,用于根据所述用户账户的账户信息、所述目标资产的资产信息和所述主链中的块信息配置所述资产链中资产头块的块信息;

资产发行模块530,用于在所述资产头块上发行所述目标资产,所述资产链支持创建发送所述目标资产的交易发送块和接收所述目标资产的交易接收块。

可选地,所述参数设置模块520,用于:

将所述主链的主链头块中的哈希值设置为所述资产头块中的前置哈希值;

将所述用户账户的代表地址设备为所述资产头块的代表地址;

将所述用户账户的账户地址设置为所述资产头块的创始账户地址;

在所述资产头块中设置所述目标资产的资产地址;

生成所述资产头块的工作量证明;

根据所述用户账户生成所述资产头块的签名。

可选地,每种所述目标资产对应一条所述资产链;所述资产链上的各个块用于记录对应的目标资产的交易历史记录和余额变化,所述资产链由对应的用户账户更新。

相关细节参考上述方法实施例。

需要说明的是:上述实施例中提供的基于dag结构的资产发行装置在进行基于dag结构的资产发行时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将基于dag结构的资产发行装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于dag结构的资产发行装置与基于dag结构的资产发行方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图6是本申请一个实施例提供的基于dag结构的资产发行装置的框图,该装置可以是终端。该装置至少包括处理器601和存储器602。

处理器601可以包括一个或多个处理核心,比如:4核心处理器、6核心处理器等。处理器601可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本申请中方法实施例提供的基于dag结构的资产发行方法。

在一些实施例中,基于dag结构的资产发行装置还可选包括有:外围设备接口和至少一个外围设备。处理器601、存储器602和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。示意性地,外围设备包括但不限于:射频电路、触摸显示屏、音频电路、和电源等。

当然,基于dag结构的资产发行装置还可以包括更少或更多的组件,本实施例对此不作限定。

可选地,本申请还提供有一种计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的基于dag结构的资产发行方法。

可选地,本申请还提供有一种计算机产品,该计算机产品包括计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的基于dag结构的资产发行方法。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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