CN109685657B - 在区块链网络中处理交易的方法和节点设备以及存储介质 - Google Patents

在区块链网络中处理交易的方法和节点设备以及存储介质 Download PDF

Info

Publication number
CN109685657B
CN109685657B CN201811586343.5A CN201811586343A CN109685657B CN 109685657 B CN109685657 B CN 109685657B CN 201811586343 A CN201811586343 A CN 201811586343A CN 109685657 B CN109685657 B CN 109685657B
Authority
CN
China
Prior art keywords
transaction
node device
block
blockchain
output
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.)
Active
Application number
CN201811586343.5A
Other languages
English (en)
Other versions
CN109685657A (zh
Inventor
王明
瞿争
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongan Information Technology Service Co Ltd
Original Assignee
Zhongan Information Technology Service Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhongan Information Technology Service Co Ltd filed Critical Zhongan Information Technology Service Co Ltd
Priority to CN201811586343.5A priority Critical patent/CN109685657B/zh
Publication of CN109685657A publication Critical patent/CN109685657A/zh
Application granted granted Critical
Publication of CN109685657B publication Critical patent/CN109685657B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明涉及一种基于区块链的处理转账交易的方法和节点设备以及存储介质。该方法包括:在第一节点设备处,在发起涉及对第二节点设备进行转账的新交易时,在与所述第一节点设备相关联的第一区块链中创建与所述新交易相关联的第一区块,其中所述第一区块链仅记录与所述第一节点设备相关联的交易的交易信息;将所述第一区块发送给所述第二节点设备;其中,在与所述第一节点设备相关联的第一区块链中创建与所述新交易相关联的第一区块包括:在所述第一区块中生成所述新交易的一个或多个交易输入,其中所述一个或多个交易输入与从所述第一区块链中选出的一个或多个先前的未花费的交易输出相对应;在所述第一区块中生成所述新交易的多个交易输出。

Description

在区块链网络中处理交易的方法和节点设备以及存储介质
技术领域
本发明涉及区块链技术领域,更具体地涉及在区块链网络中处理交易 的方法和节点设备以及存储介质。
背景技术
狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式 组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造 的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存 储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式 保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编 程和操作数据的一种全新的分布式基础架构与计算方式。
在目前的区块链***中,通常为所有区块链节点维护同一个账本(例 如,以比特币为代表的分布式账本),因此要在区块链***中进行的所有的 交易都必须串行执行。此外,这种分布式账本容易受到网络传输速度、全 网共识算法等限制,而且交易确认时间长、交易吞吐量低,从而无法满足 大规模商业应用。因此,需要一种能够提高交易确认速度以及交易吐吞量 的交易方法,并且该方法不应受到整体节点数的增加而降低局部节点的交易速度。
发明内容
针对以上技术问题以及其他潜在的技术问题,本发明的实施例提供了 一种用于在区块链网络中处理交易的方法和节点设备以及存储介质,其可 提高区块链***的交易吞吐量,尤其是当区块链***中的节点设备的数目 越多时,区块链***中的交易吞吐量越高,进而可实现交易的无限的水平 扩展。
本发明的第一方面提供了一种基于区块链的处理转账交易的方法,所 述方法包括:在第一节点设备处,在发起涉及对第二节点设备进行转账的 新交易时,在与所述第一节点设备相关联的第一区块链中创建与所述新交 易相关联的第一区块,其中所述第一区块链仅记录与所述第一节点设备相 关联的交易的交易信息;将所述第一区块发送给所述第二节点设备;其中, 在与所述第一节点设备相关联的第一区块链中创建与所述新交易相关联的 第一区块包括:在所述第一区块中生成所述新交易的一个或多个交易输入, 其中所述一个或多个交易输入与从所述第一区块链中选出的一个或多个未 花费的交易输出相对应,并且其中所选出的一个或多个未花费的交易输出 的余额的总和大于或等于所述新交易的总金额;在所述第一区块中生成所 述新交易的多个交易输出,所述多个交易输出至少包括第一交易输出和第 二交易输出,其中所述第一交易输出与所述第一节点设备相关联,所述第 二交易输出与所述第二节点设备相关联。
在一种实现中,所述方法还包括在将所述第一区块发送给所述第二节 点设备的同时,将所述第一节点设备的公钥发送给所述第二节点设备。
在一种实现中,在与所述第一节点设备相关联的第一区块链中创建与 所述新交易相关联的第一区块还包括:为所述第一区块分配用于指示所述 第一区块在所述第一区块链中的地址的区块散列值,以及在所述第一区块 中添加用于指示所述第一区块在所述第一区块链中引用的父区块的父块散 列值。
在一种实现中,所述一个或多个交易输入中的每一交易输入包括:区 块散列值,所述区块散列值用于指示包括与该交易输入相对应的未花费的 交易输出的先前区块在所述第一区块链中的地址;未花费输出序号,所述 未花费输出序号用于指示该未花费的交易输出在所述先前区块中的序号; 以及,数字签名,所述数字签名为所述第一节点设备的签名以指示该交易 输入是由所述第一节点设备生成的。
在一种实现中,所述第一交易输出包括所述第一节点设备的第一地址 以及所述第一节点设备与所述新交易相关联的第一余额,所述第一余额是 通过将所述一个或多个未花费的交易输出的余额的总和减去所述新交易的 总金额来计算出的;所述第二交易输出包括所述第二节点设备的第二地址 以及所述第二节点设备与所述新交易相关联的第二余额,所述第二余额等 于所述新交易中向所述第二节点设备转账的金额。
在一种实现中,所述公钥为椭圆曲线公钥。
在一种实现中,所述数字签名是基于所述第一节点设备的私钥生成的。
在一种实现中,所述私钥为椭圆曲线私钥。
本发明的第二方面提供了一种基于区块链的处理转账交易的方法,所 述方法包括:在第二节点设备处,在接收到与由第一节点设备发起的涉及 对所述第二节点进行转账的新交易相关联的第一区块后,在与所述第二节 点设备相关联的第二区块链中创建第二区块,其中所述第二区块链仅记录 与所述第二节点设备相关联的交易的交易信息;对所述第二区块的一个或 多个交易输入进行有效性验证;在所述有效性验证通过的情况下,向所述 第一节点设备发送所述新交易成功的消息;其中,在与所述第二节点设备 相关联的第二区块链中创建第二区块包括:将所述第一区块所包括的一个 或多个交易输入添加到所述第二区块中作为所述第二区块的一个或多个交 易输入;将所述第一区块所包括的多个交易输出添加到所述第二区块中作 为所述第二区块的多个交易输出,所述多个交易输出至少包括第一交易输 出和第二交易输出,其中所述第一交易输出与所述第一节点设备相关联, 所述第二交易输出与所述第二节点设备相关联。
在一种实现中,在与所述第二节点设备相关联的第二区块链中创建第 二区块还包括:为所述第二区块分配用于指示所述第二区块在所述第二区 块链中的地址的区块散列值,以及在所述第二区块中添加用于指示所述第 二区块在所述第二区块链中引用的父区块的父块散列值。
在一种实现中,所述第二区块的一个或多个交易输入中的每一交易输 入包括:区块散列值,所述区块散列值用于指示包括与该交易输入相对应 的未花费的交易输出的先前区块在与所述第一节点设备相关联的第一区块 链中的地址;未花费输出序号,所述未花费输出序号用于指示该未花费的 交易输出在所述先前区块中的序号;以及,数字签名,所述数字签名为所 述第一节点设备的签名以指示该交易输入是由所述第一节点设备生成的。
在一种实现中,所述第二区块的第一交易输出包括所述第一节点设备 的第一地址以及所述第一节点设备与所述新交易相关联的第一余额,所述 第一余额是通过将所述一个或多个未花费的交易输出的余额的总和减去所 述新交易的总金额来计算出的;所述第二区块的第二交易输出包括所述第 二节点设备的第二地址以及所述第二节点设备与所述新交易相关联的第二 余额,所述第二余额等于所述新交易中向所述第二节点设备转账的金额。
在一种实现中,所述方法还包括:在接收所述第一区块的同时接收来 自所述第一节点设备的公钥,以及在第二区块链中创建所述第二区块之前, 利用所述公钥对所述第一区块进行验签,以验证所述第一区块是否确实来 自所述第一节点设备。
在一种实现中,对所述第二区块的一个或多个交易输入进行有效性验 证包括:通过一直往上追溯与所述新交易有关的创世区块的方式来验证所 述第二区块的一个或多个交易输入的有效性,并且在无法追溯到与所述新 交易有关的任一创世区块的情况下,指示所述一个或多个交易输入无效。
本发明的第三方面提供了一种基于区块链的处理交易的节点设备,包 括:处理器;存储器,所述存储器耦合至所述处理器并且存储有指令,当 所述指令执行时使得所述处理器执行根据本发明的第一方面或第二方面所 述的方法。
本发明的第四方面提供了一种计算机可读存储介质,其具有存储在其 上的计算机可执行指令,所述计算机可执行指令在设备中运行时使得所述 设备执行根据本发明的第一方面或第二方面所述的方法。
附图说明
参考附图示出并阐明本发明的各实施例。这些附图仅用于阐明基本原 理,并示出对于理解该基本原理所必要的方面,而不旨在限制本发明所要 求保护的范围。在附图中,相同的附图标记表示相似的特征。
图1例示了可用于实施本发明的示例实施例的区块链网络***100的 架构的示意图。
图2例示了根据本发明的实施例的示例区块200的结构示意图。
图3例示了基于区块链的处理交易的方法300的流程图。
具体实施方式
下面将结合附图更详细地描述本发明的各个示例性实施例。虽然附图 中流程图和示意图显示了本发明的一些实施例,然而应当理解的,本发明 可以通过各种形式来实现,而且不应被解释为限于这里阐述的实施例,相 反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是, 本发明的附图及实施例仅用于说明性作用,并非用于限制本发明的保护范 围。
图1例示了可用于实施本发明的示例实施例的区块链网络***100的架 构的示意图。区块链***100包括多个区块链节点设备(在本文中也被称为 节点),例如节点121、122和123。虽然图1中示出的区块链***100包括三 个节点,但应领会,在实际应用中,区块链***100可包括更多或更少的区 块链节点。在本发明的实施例中,这些区块链节点中的每个节点可以为计 算设备,计算设备可以为服务器或者用户设备(例如,移动设备或固定设备)。在本发明的实施例中,区块链***100中的每一节点(例如,每一节 点的存储设备)中都存储有仅与该节点相关联的区块链,例如(与节点121 相关联的区块链1211、与节点122的相关联的区块链1221、与节点123相关 联的区块链1231)。每一区块链都仅记录与相关联的节点设备相关联的交易 的交易信息。例如,与某个节点相关联的每一笔历史交易的交易信息可被 存储在一个区块中,并且与该节点相关联的多个区块以链的方式相互连接 从而形成与该节点相关联的区块链。在本发明的实施例中,各区块链基于 未花费交易输出(Unspent Transaction Output,简称为UTXO)模型来记录与 相关联的节点设备相关联的各个交易(请注意,在本申请中,主要关注转 账交易)的交易信息。在本发明的实施例中,区块链中的每一区块包括一 个或多个交易输入和一个或多个交易输出,其中每一交易输入都与一个未 花费的交易输出相关,其中未花费的交易输出指该区块链中未出现在与其 他交易相关联的其他区块的交易输入中的交易输出。在本发明的实施例中, 每个区块中包括的一个或多个交易输入在相应的区块中都是以数组的形式 组织的,因此每一交易输入在相应的区块中都具有一个相应的序号。每个 区块中包括的交易输出在相应的区块中也是以数组的形式组织的,因此每 一交易输出在相应的区块中也都具有一个相应的序号。
图2例示了根据本发明的实施例的示例区块200的结构示意图。如图2所 示,区块200包括交易输入部分201和交易输出部分202,其中交易输入部分 201包括交易输入0、交易输入1,交易输出部分202包括交易输出0和交易输 出1。值得一提的是,虽然出于说明简要的目的,图2中示出了区块200中包 括两个交易输入和两个交易输出,但在实际应用中,区块200可包括更多或 更少的交易输入,也可包括更多或更少的交易输出,并且交易输入和交易 输出的数目可能相同也可能不同,这取决于具体的使用情况。
在一般情况下,每一交易输入(例如,交易输入0和交易输入1)包括: 区块散列值,该区块散列值用于指示包括与该交易输入相对应的未花费的 交易输出的先前区块在相应区块链中的地址;未花费输出序号,该未花费 输出序号用于指示该未花费的交易输出在该先前区块中的序号;数字签名, 该数字签名为生成该交易输入的节点设备的签名(例如,如果与该交易输 入相关的交易是通过第一节点设备发起的,则该数字签名则是该第一节点设备的数字签名)。该数字签名可基于生成该交易输入的节点设备的私钥生 成。在一种实现中,该私钥为椭圆曲线私钥。每一交易输出(例如,交易 输出0和交易输出1)包括相应的接收方地址和余额,从而可指示该接收方 在进行相应的交易以后新增的非花费的交易输出。
此外,区块200中的每一交易输入和每一交易输出都具有相应的序号, 例如图2中示出的输入0、输入1、输出0、输出1等等。
区块200还可包括父块散列值203,其用于指示区块200在相应的区块链 中引用的父区块的父块散列值。区块200还可包括用于指示区块200在相应 的区块链中的地址的区块散列值204。
在本发明的实施例中,创世区块(即,区块链中用来增发货币的区块) 的交易输入没有对应的未花费的交易输出,因此不包括以上提到的区块散 列值、未花费输出序号以及数字签名,而仅在其交易输出中指示增发的货 币的具体金额。例如,如果在区块链***中向图1中的节点121被增发了12.5 元的货币,放在创世区块的交易输出中。则对于节点121来说,拥有了这12.5 元的货币的支配权,这12.5元的货币的输出可以作为下一笔交易的交易输 入,顾名思义,这笔交易输出就称之为是节点121的未花费输出,也就是节 点121A的UTXO的意思。在本发明的实施例中,创世区块一般是与本发明 的实施例中的各个转账交易相关联的区块的源头。但是,由于创世区块只 是一种特殊的区块,因此在本文中主要针对一般的区块进行描述。
图3例示了基于区块链的处理转账交易的方法300的流程图。
在步骤301中,在第一节点设备处,在发起仅对第二节点设备进行转账 的新交易时,在与第一节点设备相关联的第一区块链中创建与该新交易相 关联的第一区块,其中该第一区块链仅记录与所述第一节点设备相关联的 交易(包括由该第一节点设备发起转账交易或者对第一节点设备进行转账 的交易)的交易信息。
在与第一节点设备相关联的第一区块链中创建与该新交易相关联的第 一区块包括:在该第一区块中生成该新交易的一个或多个交易输入,其中 该一个或多个交易输入与从第一区块链中选出的一个或多个未花费的交易 输出相对应,并且其中所选出的一个或多个未花费的交易输出的余额的总 和大于或等于所述新交易的金额;在该第一区块中生成该新交易的第一交 易输出和第二交易输出,其中该第一交易输出与第一节点设备相关联,第 二交易输出与第二节点设备相关联。该一个或多个交易输入中的每一交易 输入包括:区块散列值,该区块散列值用于指示包括与该交易输入相对应 的未花费的交易输出的先前区块在第一区块链中的地址;未花费输出序号, 该未花费输出序号用于指示该先前的未花费的交易输出在该先前区块中的 序号;以及,数字签名,该数字签名为第一节点设备的签名以指示该交易 输入是由第一节点设备生成的。第一交易输出和第二交易输出都包括接收 方地址和余额,其中第一交易输出的接收方地址为第一节点设备的第一地 址,并且其余额为第一节点设备与新交易相关联的第一余额,该第一余额 是通过将该一个或多个未花费的交易输出的余额的总和减去所述新交易的 金额来计算出的,并且其中第二交易输出的接收方地址为第二节点设备的 第二地址,并且其余额为第二节点设备与该新交易相关联的第二余额,第 二余额等于所述新交易的金额。在本发明的实施例中,该一个或多个交易 输入在第一区块中都是以数组的形式组织的,因此每一交易输入在该第一 区块中都具有一个相应的序号,另外第一交易输出和第二交易输出在该第 一区块中也是以数组的形式组织的,因此第一交易输出和第二交易输出在 第一区块中也都具有一个相应的序号。
例如,在第一节点设备进行向第二节点设备转账55元钱的交易时,第 一节点设备会在与第一节点设备相关联的第一区块链中创建与该55元钱的 转账交易相关联的第一区块。针对该交易,第一节点设备例如从第一区块 链中选出了可用于该交易的两个未花费的交易输出,例如第三区块中的具 有50元余额的第一未花费的交易输出以及第四区块中的具有10元余额的第 二未花费的交易输出。因此,第一节点设备会在新区块中生成该转账交易 的两个交易输入,其中第一个交易输入包括指示第三区块在第一区块链中 的地址的区块散列值、指示第一未花费的交易输出在第三区块中的序号的 未花费输出序号以及指示该第一节点设备的签名的数字签名。第二个交易 输入的区块散列值包括指示第四区块在第一区块链中的地址的区块散列 值、指示第二未花费的交易输出在第四区块中的序号的未花费输出序号以 及指示该第一节点设备的签名的数字签名。
在该示例中,第一节点设备还会在新区块中生成该转账交易的两个交 易输出,其中第一交易输出的接收方地址为第一节点设备的第一地址,并 且余额为5元(即以上两个未花费的交易输出的余额的总和60元减去该转账 交易的总金额55元),第二交易输出的接收方地址为第二节点设备,并且余 额为55元(即该转账交易中向第二节点设备转账的金额55元)。
此外,值得一提的是,当例如第一节点设备需要向第二节点设备转账 时,如果与第一节点设备相关联的第一区块链中存在可满足该转账的金额 的多个不同的未花费的交易输出,则可任选其中的一个或多个未花费的交 易输出,只要选出的未花费的交易输出的余额的总和大于或等于该转账交 易的金额即可。
在与第一节点设备相关联的第一区块链中创建与该新交易相关联的第 一区块还包括:为第一区块分配用于指示第一区块在第一区块链中的地址 的区块散列值,以及在第一区块中添加用于指示第一区块在第一区块链中 引用的父区块的父块散列值。
在步骤302中,在第一节点设备处,将第一区块以及第一节点设备的公 钥发送给第二节点设备。在一个实现中,该公钥为椭圆曲线公钥。
在步骤303中,在第二节点设备处,当接收到该第一区块和公钥以后, 利用该公钥对所述第一区块进行验签,以验证第一区块是否确实来自所述 第一节点设备。
在步骤304中,在第二节点设备处,在验证第一区块确实来自所述第一 节点设备的情况下,在与第二节点设备相关联的第二区块链中创建第二区 块。否则,向第一节点设备发出错误消息(图中未示出)。
在与第二节点设备相关联的第二区块链中创建第二区块包括:将第一 区块所包括的一个或多个交易输入添加到第二区块中作为第二区块的一个 或多个交易输入;将第一区块所包括的第一交易输出和第二交易输出添加 到所述第二区块中作为第二区块的第一交易输出和第二交易输出。
在步骤305中,在第二节点设备处,对第二区块的一个或多个交易输入 进行有效性验证。在一种实现中,对第二区块的一个或多个交易输入进行 有效性验证包括:通过一直往上追溯与所该新交易有关的创世区块的方式 来验证第二区块的一个或多个交易输入的有效性,并且在无法追溯到与该 新交易有关的任一创世区块的情况下,指示该一个或多个交易输入无效。 例如,当节点设备A向节点设备B进行转账交易时,节点设备B需要验证该转账交易的合法性,例如节点设备B会先追溯与该转账交易的任一交易输入 相关联的一个或多个未花费的交易输出(这些未花费的交易输出在节点设 备A的区块链中),在经证明这些未花费的交易输出都有效的情况下,可在 每一未花费交易输出的基础上确定与该未花费交易输出处于同一区块的一 个或多个交易输入,然后基于该一个或多个交易输入追溯与每一交易输入 相关联的一个或多个未花费交易输出(例如,该一个或多个未花费的交易输出可例如在节点设备C的区块链中,但是也可能再两个或更多个节点设备 的区块链中),并且在追溯到的每一未花费的交易输出都有效的情况下,可 按照以上描述的类似的方法再进一步往上追溯,直到追溯到作为转账金额 的源头的与该交易有关的所有创始区块为止。在可以追溯到作为源头的创 始区块的情况下,表明该交易是有效的。
在步骤306中,在第二节点设备处,在对第二区块的一个或多个交易输 入的有效性验证通过的情况下,向第一节点设备发送该新交易成功的消息。 否则,向第一节点设备发送该新交易失败的消息(图中未示出)。
虽然在图3的实施例中,以仅发生在第一节点设备与第二节点设备之间 的转账交易为例对本发明进行了说明,但应领会本发明的实施例也适用于 一个节点设备向两个或两个以上其他节点设备进行转账交易的情况。只是 在这些情况下,例如当涉及第一节点设备向第二节点设备和第三节点设备 进行转账时,在的第一节点设备处创建的区块将包括三个交易输出,即与 第一节点设备相关联的一个交易输出以及分别与第二和第三节点设备相关 联的两个交易输出。并且,在第一节点设备处创建的区块将被发送给第二 和第三节点设备两者,而且需要分别对这另外的两个节点设备的交易输入 进行验证。例如,在第一节点设备进行向第二节点设备转账55元钱并向第 三节点设备转账20元的交易时,第一节点设备会在与第一节点设备相关联 的第一区块链中创建与该转账交易相关联的第一区块。针对该交易,第一 节点设备例如从第一区块链中选出了可用于该交易的两个未花费的交易输 出,例如第三区块中的具有50元余额的第一未花费的交易输出以及第四区 块中的具有30元余额的第二未花费的交易输出。因此,第一节点设备会在 新区块中生成该转账交易的两个交易输入,其中第一个交易输入包括指示 第三区块在第一区块链中的地址的区块散列值、指示第一未花费的交易输 出在第三区块中的序号的未花费输出序号以及指示该第一节点设备的签名 的数字签名。第二个交易输入的区块散列值包括指示第四区块在第一区块 链中的地址的区块散列值、指示第二未花费的交易输出在第四区块中的序 号的未花费输出序号以及指示该第一节点设备的签名的数字签名。在该示 例中,第一节点设备还会在新区块中生成该转账交易的三个交易输出,其 中第一交易输出的接收方地址为第一节点设备的第一地址,并且余额为5元 (即以上两个未花费的交易输出的余额的总和80元减去该转账交易的总金 额75元),第二交易输出的接收方地址为第二节点设备,并且余额为55元(即 该转账交易中向第二节点设备转账的金额55元),第三交易输出的接收方地址为第三节点设备,并且余额为20元(即该转账交易中向第三节点设备转 账的金额20元)。
对于一个节点设备向两个以上其他节点设备进行转账交易的情况可以 此类推。
在本发明的实施例中,由于每个节点设备都仅维护与该节点设备相关 联的区块链,用于基于与该节点设备相关联的交易的记录,因此在区块链 ***中的不相干的节点之间发生的不相干的交易可以并发执行,从而提高 了区块链***的交易吞吐量,尤其是当区块链***中的节点设备的数目越 多时,区块链***中的交易吞吐量越高,从而可实现交易的无限的水平扩 展。
图3中的方法的流程还代表机器可读指令,该机器可读指令包括由处理 器执行的程序。该程序可被实体化在被存储于有形计算机可读介质的软件 中,该有形计算机可读介质如CD-ROM、软盘、硬盘、数字通用光盘(DVD)、 蓝光光盘或其它形式的存储器。替代的,图3中的示例方法中的一些步骤或 所有步骤可利用专用集成电路(ASIC)、可编程逻辑器件(PLD)、现场可编 程逻辑器件(EPLD)、离散逻辑、硬件、固件等的任意组合被实现。另外, 虽然图3所示的流程图描述了该数据处理方法,但可对该处理方法中的步骤 进行修改、删除或合并。
如上所述,可利用编码指令(如计算机可读指令)来实现图3的示例过程, 该编程指令存储于有形计算机可读介质上,如硬盘、闪存、只读存储器 (ROM)、光盘(CD)、数字通用光盘(DVD)、高速缓存器、随机访问存储器 (RAM)和/或任何其他存储介质,在该存储介质上信息可以存储任意时间(例 如,长时间,永久地,短暂的情况,临时缓冲,和/或信息的缓存)。如在此 所用的,该术语有形计算机可读介质被明确定义为包括任意类型的计算机 可读存储的信息。附加地或替代地,可利用编码指令(如计算机可读指令) 实现图3的示例过程,该编码指令存储于非暂时性计算机可读介质,如硬盘, 闪存,只读存储器,光盘,数字通用光盘,高速缓存器,随机访问存储器 和/或任何其他存储介质,在该存储介质信息可以存储任意时间(例如,长时 间,永久地,短暂的情况,临时缓冲,和/或信息的缓存)。可以理解的,该 计算机可读指令还可以存储在网络服务器中、云端平台上,以便于用户使 用。
另外,尽管操作以特定顺序被描绘,但这并不应该理解为要求此类操 作以示出的特定顺序或以相继顺序完成,或者执行所有图示的操作以获取 期望结果。在某些情况下,多任务或并行处理会是有益的。同样地,尽管 上述讨论包含了某些特定的实施细节,但这并不应解释为限制任何发明或 权利要求的范围,而应解释为对可以针对特定发明的特定实施例的描述。 本说明书中在分开的实施例的上下文中描述的某些特征也可以整合实施在 单个实施例中。反之,在单个实施例的上下文中描述的各种特征也可以分 离地在多个实施例或在任意合适的子组合中实施。
因此,虽然参照特定的示例来描述了本发明,其中这些特定的示例仅 仅旨在是示例性的,而不是对本发明进行限制,但对于本领域普通技术人 员来说显而易见的是,在不脱离本发明的精神和保护范围的基础上,可以 对所发明的实施例进行改变、增加或者删除。

Claims (16)

1.一种基于区块链的处理转账交易的方法,所述方法包括:
在第一节点设备处,在发起涉及对第二节点设备进行转账的新交易时,在与所述第一节点设备相关联的第一区块链中创建与所述新交易相关联的第一区块,其中所述第一区块链仅记录与所述第一节点设备相关联的交易的交易信息,并且所述第一区块链不同于与所述第二节点设备相关联的第二区块链,其中所述第二区块链仅记录与所述第二节点设备相关联的交易的交易信息;
将所述第一区块发送给所述第二节点设备;
其中,在与所述第一节点设备相关联的第一区块链中创建与所述新交易相关联的第一区块包括:
在所述第一区块中生成所述新交易的一个或多个交易输入,其中所述一个或多个交易输入与从所述第一区块链中选出的一个或多个未花费的交易输出相对应,并且其中所选出的一个或多个未花费的交易输出的余额的总和大于或等于所述新交易的总金额;
在所述第一区块中生成所述新交易的多个交易输出,所述多个交易输出至少包括第一交易输出和第二交易输出,其中所述第一交易输出与所述第一节点设备相关联,所述第二交易输出与所述第二节点设备相关联。
2.根据权利要求1所述的方法,其特征在于,还包括在将所述第一区块发送给所述第二节点设备的同时,将所述第一节点设备的公钥发送给所述第二节点设备。
3.根据权利要求1所述的方法,其特征在于,在与所述第一节点设备相关联的第一区块链中创建与所述新交易相关联的第一区块还包括:
为所述第一区块分配用于指示所述第一区块在所述第一区块链中的地址的区块散列值,以及
在所述第一区块中添加用于指示所述第一区块在所述第一区块链中引用的父区块的父块散列值。
4.根据权利要求3所述的方法,其特征在于,所述一个或多个交易输入中的每一交易输入包括:区块散列值,所述区块散列值用于指示包括与该交易输入相对应的未花费的交易输出的先前区块在所述第一区块链中的地址;未花费输出序号,所述未花费输出序号用于指示该未花费的交易输出在所述先前区块中的序号;以及,数字签名,所述数字签名为所述第一节点设备的签名以指示该交易输入是由所述第一节点设备生成的。
5.根据权利要求1所述的方法,其特征在于:
所述第一交易输出包括所述第一节点设备的第一地址以及所述第一节点设备与所述新交易相关联的第一余额,所述第一余额是通过将所述一个或多个未花费的交易输出的余额的总和减去所述新交易的总金额来计算出的;
所述第二交易输出包括所述第二节点设备的第二地址以及所述第二节点设备与所述新交易相关联的第二余额,所述第二余额等于所述新交易中向所述第二节点设备转账的金额。
6.根据权利要求2所述的方法,其特征在于,所述公钥为椭圆曲线公钥。
7.根据权利要求4所述的方法,其特征在于,所述数字签名是基于所述第一节点设备的私钥生成的。
8.根据权利要求7所述的方法,其特征在于,所述私钥为椭圆曲线私钥。
9.一种基于区块链的处理转账交易的方法,所述方法包括:
在第二节点设备处,在接收到与由第一节点设备发起的涉及对所述第二节点进行转账的新交易相关联的第一区块后,在与所述第二节点设备相关联的第二区块链中创建第二区块,其中所述第二区块链仅记录与所述第二节点设备相关联的交易的交易信息,并且所述第二区块链不同于与所述第一节点设备相关联的第一区块链,其中所述第一区块链仅记录与所述第一节点设备相关联的交易的交易信息;
对所述第二区块的一个或多个交易输入进行有效性验证;
在所述有效性验证通过的情况下,向所述第一节点设备发送所述新交易成功的消息;
其中,在与所述第二节点设备相关联的第二区块链中创建第二区块包括:
将所述第一区块所包括的一个或多个交易输入添加到所述第二区块中作为所述第二区块的一个或多个交易输入;
将所述第一区块所包括的多个交易输出添加到所述第二区块中作为所述第二区块的多个交易输出,所述多个交易输出至少包括第一交易输出和第二交易输出,其中所述第一交易输出与所述第一节点设备相关联,所述第二交易输出与所述第二节点设备相关联。
10.根据权利要求9所述的方法,其特征在于,在与所述第二节点设备相关联的第二区块链中创建第二区块还包括:
为所述第二区块分配用于指示所述第二区块在所述第二区块链中的地址的区块散列值,以及
在所述第二区块中添加用于指示所述第二区块在所述第二区块链中引用的父区块的父块散列值。
11.根据权利要求9所述的方法,其特征在于,所述第二区块的一个或多个交易输入中的每一交易输入包括:区块散列值,所述区块散列值用于指示包括与该交易输入相对应的未花费的交易输出的先前区块在与所述第一节点设备相关联的第一区块链中的地址;未花费输出序号,所述未花费输出序号用于指示该未花费的交易输出在所述先前区块中的序号;以及,数字签名,所述数字签名为所述第一节点设备的签名以指示该交易输入是由所述第一节点设备生成的。
12.根据权利要求9所述的方法,其特征在于:
所述第二区块的第一交易输出包括所述第一节点设备的第一地址以及所述第一节点设备与所述新交易相关联的第一余额,所述第一余额是通过将所述一个或多个未花费的交易输出的余额的总和减去所述新交易的总金额来计算出的;
所述第二区块的第二交易输出包括所述第二节点设备的第二地址以及所述第二节点设备与所述新交易相关联的第二余额,所述第二余额等于所述新交易中向所述第二节点设备转账的金额。
13.根据权利要求9所述的方法,其特征在于,所述方法还包括:
在接收所述第一区块的同时接收来自所述第一节点设备的公钥,以及
在第二区块链中创建所述第二区块之前,利用所述公钥对所述第一区块进行验签,以验证所述第一区块是否确实来自所述第一节点设备。
14.根据权利要求11所述的方法,其特征在于,对所述第二区块的一个或多个交易输入进行有效性验证包括:通过一直往上追溯与所述新交易有关的创世区块的方式来验证所述第二区块的一个或多个交易输入的有效性,并且在无法追溯到与所述新交易有关的任一创世区块的情况下,指示所述一个或多个交易输入无效。
15.一种基于区块链的处理交易的节点设备,包括:
处理器;
存储器,所述存储器耦合至所述处理器并且存储有指令,当所述指令执行时使得所述处理器执行根据权利要求1-14中的任一项所述的方法。
16.一种计算机可读存储介质,其具有存储在其上的计算机可执行指令,所述计算机可执行指令在设备中运行时使得所述设备执行根据权利要求1-14中的任一项所述的方法。
CN201811586343.5A 2018-12-25 2018-12-25 在区块链网络中处理交易的方法和节点设备以及存储介质 Active CN109685657B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811586343.5A CN109685657B (zh) 2018-12-25 2018-12-25 在区块链网络中处理交易的方法和节点设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811586343.5A CN109685657B (zh) 2018-12-25 2018-12-25 在区块链网络中处理交易的方法和节点设备以及存储介质

Publications (2)

Publication Number Publication Date
CN109685657A CN109685657A (zh) 2019-04-26
CN109685657B true CN109685657B (zh) 2023-07-21

Family

ID=66189116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811586343.5A Active CN109685657B (zh) 2018-12-25 2018-12-25 在区块链网络中处理交易的方法和节点设备以及存储介质

Country Status (1)

Country Link
CN (1) CN109685657B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111161071A (zh) * 2019-12-30 2020-05-15 致信互链(北京)科技有限公司 基于区块链的数据处理方法、装置、设备和存储介质
CN112883068A (zh) * 2021-04-30 2021-06-01 支付宝(杭州)信息技术有限公司 区块链交易执行方法、区块链节点及控制装置
CN113064730A (zh) * 2021-04-30 2021-07-02 支付宝(杭州)信息技术有限公司 区块链交易执行方法、区块链节点及控制装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11201708000PA (en) * 2015-03-31 2017-10-30 Nasdaq Inc Systems and methods of blockchain transaction recordation
AU2016288644A1 (en) * 2015-07-02 2018-02-22 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
CN106779704A (zh) * 2016-12-06 2017-05-31 杭州趣链科技有限公司 一种基于环签名的区块链匿名交易方法
EP3376452A1 (en) * 2017-03-15 2018-09-19 Nokia Technologies Oy Blockchain-based electronic transfer method and network
GB201705621D0 (en) * 2017-04-07 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
GB201705858D0 (en) * 2017-04-11 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
GB201707296D0 (en) * 2017-05-08 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
US20180349896A1 (en) * 2017-06-05 2018-12-06 Mastercard International Incorporated Method and system for anonymization of electronic transactions via blockchain
GB201802063D0 (en) * 2018-02-08 2018-03-28 Nchain Holdings Ltd Computer-implemented methods and systems

Also Published As

Publication number Publication date
CN109685657A (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
CN110602148B (zh) 一种区块的状态树的生成和链上数据验证的方法及装置
CN110869967B (zh) 用于并行处理区块链交易的***和方法
CN108846659B (zh) 基于区块链的转账方法、装置及存储介质
US10892888B2 (en) System and method for information protection
CA3037833C (en) System and method for information protection
CN109685657B (zh) 在区块链网络中处理交易的方法和节点设备以及存储介质
US20210326867A1 (en) Fork-Tolerant Consensus Protocol
CN109272316B (zh) 一种基于区块链网络下的区块实现方法及***
CN111095218B (zh) 基于纠错编码存储共享的区块链数据的方法、***及装置
KR20210045353A (ko) 인코딩된 블록체인 데이터의 인덱싱 및 복구
CN111295650A (zh) 在基于区块链的***中执行映射迭代
CN112348518B (zh) 一种区块链交易证明的方法及装置
CN111640018B (zh) 一种区块链交易存在性验证方法及装置
CN111161078A (zh) 一种一对多的区块链转账实现方法
CN113810185B (zh) 一种抗陷门泄露的链上数据修复***及方法
AU2019101581A4 (en) System and method for information protection
Vijayakumaran An introduction to bitcoin
CN115632791B (zh) 一种动态跨链数据一致性去中心化验证方法
Miloslavskaya et al. Blockchain redacting algorithm with storing votes inside the chain
CN114880320B (zh) 生成区块状态证明的方法
CN114153849A (zh) 一种区块链的数据生成及验证方法及装置
CN116661674A (zh) 一种数据压缩方法、区块同步方法及相关设备
Elwi et al. Stateful Layered Chain Model to Improve the Scalability of Bitcoin
CN116260586A (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
GR01 Patent grant
GR01 Patent grant