CN111161078A - 一种一对多的区块链转账实现方法 - Google Patents
一种一对多的区块链转账实现方法 Download PDFInfo
- Publication number
- CN111161078A CN111161078A CN202010008212.XA CN202010008212A CN111161078A CN 111161078 A CN111161078 A CN 111161078A CN 202010008212 A CN202010008212 A CN 202010008212A CN 111161078 A CN111161078 A CN 111161078A
- Authority
- CN
- China
- Prior art keywords
- transaction
- transfer
- many
- information
- account
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明涉及区块链技术领域,特别涉及一种基于账户模式的区块链底层中一个账户同时向多个账户快速转账的实现方法,包括构造一个一对多转账交易请求,该一对多转账交易请求中所包含的所有单个转账交易具有同一个源账户且属于同一种交易类型,将构造好的一对多转账交易请求,作为一个交易进行签名,并发出请求到节点,节点收到一对多转账请求后,对交易进行基本的信息有效性检查,并进行签名验证,通过后进行后续处理,否则,整个交易失败,对交易中的每个不同信息,按照一对一转账逻辑顺序进行处理,如果其中单个转账交易失败,则停止转账,整个交易失败,如果所有单个账单交易均成功,则将交易所产生的数据记录至新账本,并将交易发送至其他节点,进行共识,本发明转账方法降低了存储空间,提高了交易速度,同时也在一定程度上节省了相关交易费用。
Description
技术领域
本发明涉及区块链技术领域,特别涉及一种基于账户模式的区块链底层中一个账户同时向多个账户快速转账的实现方法。
背景技术
账户模式的区块链,每个地址类似一个银行账户,采用一对一的交易模式,即一次交易,只有一个源账户和一个目标账户,转入转出记录都在同一个账户上,在数学上,账户模式是一种一对一的映射关系,跟UTXO模式相比,冗余度要高一些。对于账户转出的交易,账户模式的区块链使用从1开始的自增的参数Sequence来标记交易的先后顺序,同一个账户发起的多笔转出交易,必须按照Sequence进行排队,排队Sequence排在后面的交易,必须等前序的交易完成,才能被处理。在短时间内,单个账户发起的交易频繁,会造成区块链节点的繁忙和网络的拥堵,在这种情况下,区块链节点或网络会提高交易的Gas手续费,这样,导致账户的交易成本极具上升。
总的说来,采用账户模式的区块链存在如下问题:
(1)交易冗余:同一个源账户给多个账户转账的情况,需要通过多次转账实现,每次转账都需要单独计算HASH签名。同时,转账的原始记录中,也需要多次记录同一个源账户的转账信息。这样对区块链节点的计算资源和账本的存储空间都带来大量的交易冗余。
(2)交易速度慢:同一个源账户发起的多笔交易,需要按照Sequence排队,无法并行同时处理。
(3)交易手续费高:节点繁忙或网络拥堵情况下,同一个源账户,短时间内发起的多笔交易,需要支出额外的Gas手续费。
发明内容
为了解决上述问题,提升从一个账户同时向大量账户转账的效率, 避免产生大量单笔转账交易的请求,以及其中的重复信息和复杂的冗余处理和计算,比如签名验证Hash,本发明提供一种一对多的区块链转账实现方法。
本发明通过如下技术方案来实现:
一种一对多的区块链转账实现方法,包括构造一个一对多转账交易请求,该一对多转账交易请求中所包含的所有单个转账交易具有同一个源账户且属于同一种交易类型,具体的,构造一个一对多转账交易请求步骤包括S1、S2:
S1、从所有单个转账交易信息中,提取出相同的交易信息,每个相同的交易信息作为一条相同信息,每条相同信息组成一个相同信息组,放入一对多转账交易请求中;
S2、从所有单个转账交易信息中,提取出不同的交易信息,将这些不同的信息组成一个不同信息组,放入一对多转账交易请求中;
将构造好的一对多转账交易请求,作为一个交易进行签名,并发出请求到节点;
节点收到一对多转账请求后,对交易进行基本的信息有效性检查,并进行签名验证,通过后进行后续处理,否则,整个交易失败;
对交易中的每个不同信息,按照一对一转账逻辑顺序进行处理,如果其中单个转账交易失败,则停止转账,整个交易失败,前面已成功的转账交易回滚到最初状态,如果所有单个账单交易均成功,则将交易所产生的数据记录至新账本,并将交易发送至其他节点,进行共识。
进一步的,所述交易信息包括但并不仅限于交易费用、备注信息、转账金额、目标账户。
进一步的,所述有效性检查包括:源账户有效性检查、每个目标账户有效性检查、每笔转账金额有效性检查、总共转账金额和源账户余额比对有效性检查。
进一步的,在完成所有单个转账交易前,每个单个转账交易所产生的数据更新,不会记入账本,而是放入单独的更新缓冲区,如果其中一个单个转账交易失败,则丢弃缓冲的更新,如果所有单个转账交易成功,则将缓冲的更新,记录到新的账本中,并将交易发送给其它节点,进行共识。
本发明有益效果在于,
本发明表示交易的信息数量上减少了一大部分,从而节省了大量资源,包括网络传输带宽,存储空间等;
本发明极大减少了交易请求的数量, 减轻了节点的处理负担,以及共识过程中的消息数量,从应用上来讲,很大程度上提升了交易和共识的效率,要知道达到5000 TPS转账交易在区块链中是十分困难的,但对于特定的交易类型,使用一对多转账,一次交易即可完成,同时也体现了此方法交易发送的原子性;
本发明一对多转账交易在信息上数量上的集中,更有利于压缩算法效率上的提高,更进一步的降低存储空间;
本发明交易的灵活性,考虑了多种应用场景,一方面使得交易构造更简单,一方面使得表示交易所需的空间进一步减少。
附图说明
图1为实施例1中本发明一对多原子转账的区块链实现示意图;
图2为实施例1中本发明一对多原子转账交易区块链存储示意图;
图3为背景技术中一对一转账示意图;
图4为背景技术中一对一转账存储示意图
图5为实施例2中一对多原子转账实现示意图;
图6为实施例3中一对多原子转账实现示意图。
具体实施方式
为了使本领域技术人员更好的理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部实施例,基于本说明书中的实施例,本领域普通技术人员所获得的其他实施例,都应当属于保护范围。
以下结合附图,详细说明本说明书中各实施例提供的技术方案,需要说明的是,由于以下各实施例所基于的技术思想都是类似的,因此,下文各实施例可互相参照理解。
实施例1:
图1是本说明书实施例1提供的一种一对多的区块链转账实现方法示意图,该示意图一对多转账交易请求所包含的所有单个转账交易请求的源账户是相同的,且交易类型相同,目标账户及转账金额均不相同;
具体的,包括以下步骤:
构造一个一对多转账交易请求,代替大量单个转账交易请求;
从所有单个转账交易中,提取出相同的信息放入一对多转账交易中,在图1所示的一对多的区块链转账实现方法示意图中,相同信息指的是源账户;
将单笔交易中不同的信息,在图1所示的一对多的区块链转账实现方法示意图中,不同信息指的是目标账户和转账金额,组成一个不同信息组,放入一对多转账交易请求中;
将构造好的一对多转账交易请求,作为一个交易进行签名(hash signature),并发出请求到节点;
节点收到一对多转账请求后,对交易进行基本的信息有效性检查,以及签名验证,有效性检查包括:源账户有效性检查(源账户是否存在、源账户是否正确)、每个目标账户有效性检查(目标账户是否存在、目标账户是否正确)、每笔转账金额有效性检查(每笔转账金额是否正确)、每笔转账金额总和和源账户余额比对有效性检查,通过后进行后续处理,否则,整个交易失败;
对交易中的每个不同的信息,按照一对一转账逻辑顺序进行处理,在完成所有的收款账号的转账前,每个交易所产生的数据更新,不会记入账本,而是放入单独的更新缓冲区,如果其中单笔转账一对一转账失败,则停止转账,整个交易失败,前面已成功的的回滚到最初状态,同时丢弃缓冲的更新,并停止后续其他账号的转账,如果最后一个账号的一对一转账也成功,则将缓冲的更新,记录到新的账本中,并将交易发送给其它节点,进行共识;
在共识达成后,最终确认的账本中将包含一条该一对多转账的交易。
实施例2:
图5是本说明书实施例2提供的一种一对多的区块链转账实现方法示意图,该示意图一对多转账交易请求所包含的所有单个转账交易请求的源账户是相同的,且交易类型相同,转账金额相同,目标账户不相同;
具体的,包括以下步骤:
构造一个一对多转账交易请求,代替大量单个转账交易请求;
从所有单个转账交易中,提取出相同的信息放入一对多转账交易中,在图5所示的一对多的区块链转账实现方法示意图中,相同信息指的是源账户、转账金额;
将单笔交易中不同的信息,在图1所示的一对多的区块链转账实现方法示意图中,不同信息指的是目标账户,组成一个不同信息组,放入一对多转账交易请求中;
将构造好的一对多转账交易请求,作为一个交易进行签名(hash signature),并发出请求到节点;
节点收到一对多转账请求后,对交易进行基本的信息有效性检查,以及签名验证,有效性检查包括:源账户有效性检查(源账户是否存在、源账户是否正确)、目标账户有效性检查(目标账户是否存在、目标账户是否正确)、每笔转账金额有效性检查(每笔转账金额是否正确)、每笔转账金额总和和源账户余额比对有效性检查,通过后进行后续处理,否则,整个交易失败;
对交易中的每个不同的信息,按照一对一转账逻辑顺序进行处理,在完成所有的收款账号的转账前,每个交易所产生的数据更新,不会记入账本,而是放入单独的更新缓冲区,如果其中单笔转账一对一转账失败,则停止转账,整个交易失败,前面已成功的的回滚到最初状态,同时丢弃缓冲的更新,并停止后续其他账号的转账,如果最后一个账号的一对一转账也成功,则将缓冲的更新,记录到新的账本中,并将交易发送给其它节点,进行共识;
在共识达成后,最终确认的账本中将包含一条该一对多转账的交易。
实施例3:
图6是本说明书实施例3提供的一种一对多的区块链转账实现方法示意图,该示意图一对多转账交易请求所包含的所有单个转账交易请求的源账户是相同的,且交易类型相同,目标账户相同,转账金额不相同;
具体的,包括以下步骤:
构造一个一对多转账交易请求,代替大量单个转账交易请求;
从所有单个转账交易中,提取出相同的信息放入一对多转账交易中,在图6所示的一对多的区块链转账实现方法示意图中,相同信息指的是源账户、目标账户;
将单笔交易中不同的信息,在图6所示的一对多的区块链转账实现方法示意图中,不同信息指的是转账金额,组成一个不同信息组,放入一对多转账交易请求中;
将构造好的一对多转账交易请求,作为一个交易进行签名(hash signature),并发出请求到节点;
节点收到一对多转账请求后,对交易进行基本的信息有效性检查,以及签名验证,有效性检查包括:源账户有效性检查(源账户是否存在、源账户是否正确)、目标账户有效性检查(目标账户是否存在、目标账户是否正确)、每笔转账金额有效性检查(每笔转账金额是否正确)、每笔转账金额总和和源账户余额比对有效性检查,通过后进行后续处理,否则,整个交易失败;
对交易中的每个不同的信息,按照一对一转账逻辑顺序进行处理,在完成所有的收款账号的转账前,每个交易所产生的数据更新,不会记入账本,而是放入单独的更新缓冲区,如果其中单笔转账一对一转账失败,则停止转账,整个交易失败,前面已成功的的回滚到最初状态,同时丢弃缓冲的更新,并停止后续其他账号的转账,如果最后一个账号的一对一转账也成功,则将缓冲的更新,记录到新的账本中,并将交易发送给其它节点,进行共识;
在共识达成后,最终确认的账本中将包含一条该一对多转账的交易。
上述实施例仅为本发明技术构思及特点,并不能以此限制本发明的保护范围,凡根据本发明精神实质所作的等效变化或装饰,都应该涵盖在本发明的保护范围之内。
Claims (4)
1.一种一对多的区块链转账实现方法,包括构造一个一对多转账交易请求,该一对多转账交易请求中所包含的所有单个转账交易具有同一个源账户且属于同一种交易类型,具体的,构造一个一对多转账交易请求步骤包括S1、S2:
S1、从所有单个转账交易信息中,提取出相同的交易信息,每个相同的交易信息作为一条相同信息,每条相同信息组成一个相同信息组,放入一对多转账交易请求中;
S2、从所有单个转账交易信息中,提取出不同的交易信息,将这些不同的信息组成一个不同信息组,放入一对多转账交易请求中;
将构造好的一对多转账交易请求,作为一个交易进行签名,并发出请求到节点;
节点收到一对多转账请求后,对交易进行基本的信息有效性检查,并进行签名验证,通过后进行后续处理,否则,整个交易失败;
对交易中的每个不同信息,按照一对一转账逻辑顺序进行处理,如果其中单个转账交易失败,则停止转账,整个交易失败,前面已成功的转账交易回滚到最初状态,如果所有单个账单交易均成功,则将交易所产生的数据记录至新账本,并将交易发送至其他节点,进行共识。
2.根据权利要求1所述的一种一对多的区块链转账实现方法,其特征在于,
所述交易信息包括但并不仅限于交易费用、备注信息、转账金额、目标账户。
3.根据权利要求1所述的一种一对多的区块链转账实现方法,其特征在于,
所述有效性检查包括:源账户有效性检查、每个目标账户有效性检查、每笔转账金额有效性检查、总共转账金额和源账户余额比对有效性检查。
4.根据权利要求1所述的一种一对多的区块链转账实现方法,其特征在于,
在完成所有单个转账交易前,每个单个转账交易所产生的数据更新,不会记入账本,而是放入单独的更新缓冲区,如果其中一个单个转账交易失败,则丢弃缓冲的更新,如果所有单个转账交易成功,则将缓冲的更新,记录到新的账本中,并将交易发送给其它节点,进行共识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010008212.XA CN111161078A (zh) | 2020-01-06 | 2020-01-06 | 一种一对多的区块链转账实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010008212.XA CN111161078A (zh) | 2020-01-06 | 2020-01-06 | 一种一对多的区块链转账实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111161078A true CN111161078A (zh) | 2020-05-15 |
Family
ID=70561466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010008212.XA Pending CN111161078A (zh) | 2020-01-06 | 2020-01-06 | 一种一对多的区块链转账实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111161078A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112232823A (zh) * | 2020-12-10 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 区块链系统的交易处理方法、装置、介质及电子设备 |
CN112767168A (zh) * | 2021-02-10 | 2021-05-07 | 中国工商银行股份有限公司 | 基于区块链的超级账本并行处理方法及并行处理装置 |
CN113393228A (zh) * | 2021-06-21 | 2021-09-14 | 中国工商银行股份有限公司 | 电子转账方法、系统、电子设备、存储介质及程序产品 |
US20210383371A1 (en) * | 2020-06-05 | 2021-12-09 | Hon Hai Precision Industry Co., Ltd. | Method of recording transactions based on blockchain and electronic device using the same |
TWI810464B (zh) * | 2020-06-05 | 2023-08-01 | 鴻海精密工業股份有限公司 | 基於區塊鏈的交易方法、裝置及電子設備 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239940A (zh) * | 2017-05-11 | 2017-10-10 | 北京博晨技术有限公司 | 基于区块链系统的网络交易方法及装置 |
CN109146677A (zh) * | 2017-06-14 | 2019-01-04 | 深圳区块链金融服务有限公司 | 并行构建区块链视图的方法、计算机系统和可读存储介质 |
CN109615514A (zh) * | 2018-11-27 | 2019-04-12 | 宝付网络科技(上海)有限公司 | 热点账户交易系统及方法 |
CN109685488A (zh) * | 2018-12-24 | 2019-04-26 | 杭州复杂美科技有限公司 | 转账交易分片处理方法、设备和存储介质 |
-
2020
- 2020-01-06 CN CN202010008212.XA patent/CN111161078A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239940A (zh) * | 2017-05-11 | 2017-10-10 | 北京博晨技术有限公司 | 基于区块链系统的网络交易方法及装置 |
CN109146677A (zh) * | 2017-06-14 | 2019-01-04 | 深圳区块链金融服务有限公司 | 并行构建区块链视图的方法、计算机系统和可读存储介质 |
CN109615514A (zh) * | 2018-11-27 | 2019-04-12 | 宝付网络科技(上海)有限公司 | 热点账户交易系统及方法 |
CN109685488A (zh) * | 2018-12-24 | 2019-04-26 | 杭州复杂美科技有限公司 | 转账交易分片处理方法、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
边际效应: "专门用于批量空投的ETH智能合约", pages 1 - 2, Retrieved from the Internet <URL:https://yangwenbo.com/articles/erc20-airdropper.html> * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210383371A1 (en) * | 2020-06-05 | 2021-12-09 | Hon Hai Precision Industry Co., Ltd. | Method of recording transactions based on blockchain and electronic device using the same |
TWI810464B (zh) * | 2020-06-05 | 2023-08-01 | 鴻海精密工業股份有限公司 | 基於區塊鏈的交易方法、裝置及電子設備 |
CN112232823A (zh) * | 2020-12-10 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 区块链系统的交易处理方法、装置、介质及电子设备 |
CN112767168A (zh) * | 2021-02-10 | 2021-05-07 | 中国工商银行股份有限公司 | 基于区块链的超级账本并行处理方法及并行处理装置 |
CN112767168B (zh) * | 2021-02-10 | 2024-02-02 | 中国工商银行股份有限公司 | 基于区块链的超级账本并行处理方法及并行处理装置 |
CN113393228A (zh) * | 2021-06-21 | 2021-09-14 | 中国工商银行股份有限公司 | 电子转账方法、系统、电子设备、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111161078A (zh) | 一种一对多的区块链转账实现方法 | |
CN108846659B (zh) | 基于区块链的转账方法、装置及存储介质 | |
JP7472333B2 (ja) | バリデータノードにより提供されるブロックチェーントランザクションをマイニングする方法及びシステム | |
US11177962B2 (en) | Optimizations for verification of interactions system and method | |
CN110517141B (zh) | 一种基于区块链系统的共识方法及装置 | |
CN109886681A (zh) | 区块链共识方法及共识系统 | |
CN108269072A (zh) | 用于区块链的交易处理方法和网络节点 | |
CN109859043B (zh) | 一种交易清算方法和交易清算系统 | |
TW202016817A (zh) | 基於區塊鏈的交易處理方法及裝置、電子設備 | |
CN107358524B (zh) | 一种同种货币下多个账户管理行间资金平账的方法 | |
EP4300323A1 (en) | Data processing method and apparatus for blockchain network, computer device, computer readable storage medium, and computer program product | |
WO2023045620A1 (zh) | 一种交易数据处理方法、装置、计算机设备以及存储介质 | |
CN112651724A (zh) | 跨链交互方法、装置和系统 | |
CN111698094B (zh) | 一种基于区块链系统的共识方法及区块链系统 | |
WO2019141984A1 (en) | Interaction between blockchains | |
CN105988862A (zh) | 分布式事务处理方法及装置 | |
CN113347164A (zh) | 基于区块链的分布式共识系统及方法、设备、存储介质 | |
CN110930152A (zh) | 一种基于区块链的数据处理方法及相关设备 | |
CN110599175A (zh) | 一种区块处理方法及相关设备 | |
CN110321219A (zh) | 一种事务请求的并行执行方法、装置、设备和介质 | |
CN107577700B (zh) | 数据库容灾的处理方法及装置 | |
WO2023011019A1 (zh) | 基于区块链的数据处理方法、装置、设备、可读存储介质及计算机程序产品 | |
CN109685657B (zh) | 在区块链网络中处理交易的方法和节点设备以及存储介质 | |
CN114884652A (zh) | 一种区块链上产生随机数种子的方法、系统和共识节点 | |
CN113132459B (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 |