区块链交易管理系统及方法与流程

文档序号:11217235阅读:783来源:国知局
区块链交易管理系统及方法与流程

本发明涉及区块链技术,尤其涉及基于区块链的交易管理系统及方法。



背景技术:

区块链是按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式记账系统。区块在结构上通常包括块头(header)和块体(body)两部分。块头用于链接到前面的块,块体记录的交易信息是上一个区块形成之后、该区块被创建前发生的所有价值交换活动,这个特点保证了数据库的完整性。区块链上的每一条交易数据,都可以通过“区块链”的结构追本溯源,一笔一笔进行验证。

区块链通过分布式记账方式较好地解决了去中心化、去信任问题,每次交易只有被记账者计入区块链中(下文简称为上链)才算是生效。交易记账由分布在不同地方的多个节点共同完成,而且每一个节点都记录的是完整的账目,每一个节点在参与记录的同时也来验证其他节点记录结果的正确性。只有当全网大部分节点(或甚至所有节点)都同时认为这个记录正确时,或者所有参与记录的节点都比对结果一致通过后,记录的真实性才能得到全网认可,记录数据才允许上链。

然而,随着区块链规模的不断扩展,区块数据要求的存储量不断增加,并且从区块链上定位或统计数据的时间以及将交易数据上链所需的等待时间也会随区块数量及交易量的增长而不断增加,这影响了区块链的访问和使用效率。



技术实现要素:

因此,本发明的目的在于克服上述现有技术的缺陷,提供一种能改善区块链访问和使用效率的区块链交易管理系统。

本发明的目的是通过以下技术方案实现的:

一方面,本发明提供了一种区块链交易管理系统,该系统包括权威方和记账者,其中:

权威方用于统计区块链中历史最久的前若干个区块涉及的所有账户的余额和状态,并将所统计的信息包含在清算报文中进行发布;

记账者用于基于权威方发布的权威方参数确定收到的清算报文来自权威方,以及响应于所述确定,将该清算报文作为区块链第一个区块,其区块编号为权威方所统计的前若干区块中的最后一个区块的编号;

其中所述权威方参数包括权威方的一个或多个业务以及权威方在执行每个业务时签名用的系统公钥,而与每个业务的系统公钥相对应的系统私钥由权威方保管。

上述系统中,所述清算报文还可包含由权威方所统计的区块中涉及的其余与账户无关的信息。

上述系统中,权威方在发布所述清算报文之前可利用与清算业务对应的系统私钥对其进行签名。

上述系统中,记账者可利用所述权威方参数中与清算业务对应的系统公钥对收到的清算报文进行验证。

上述系统中,权威方对于其各个业务时可使用同一对系统公钥和系统私钥。

上述系统中,权威方对于不同业务可使用不同的系统公钥和系统私钥对。

上述系统中,权威方可响应于请求或定期地进行所述统计。

上述系统中,所述一个或多个业务还可包括改变区块链的规则的业务,在执行修改区块链规则的业务时,权威方生成新规则描述文档将其包含在区块链规则修改报文进行发布,记账者对收到的区块链规则修改报文进行验证并将其记入区块链中。

上述系统中,权威方可响应于权威方参数发生改变来执行修改区块链规则的业务,经改变后的权威方参数被包含在区块链规则修改报文进行发布。

又一方面,本发明提供了一种区块链交易管理方法,包括:

由权威方统计区块链中历史最久的前若干个区块涉及的所有账户的余额和状态,并将所统计的信息包含在清算报文中进行发布;

由记账者基于权威方发布的权威方参数确定收到的清算报文来自权威方,其中所述权威方参数包括权威方的一个或多个业务以及权威方在执行每个业务时签名用的系统公钥,而与每个业务的系统公钥相对应的系统私钥由权威方保管;

由记账者响应于所述确定,将该清算报文作为区块链第一个区块,其区块编号为权威方所统计的前若干区块中的最后一个区块的编号。

在上述方法中,所述统计是由权威方响应于请求或定期地进行的。

又一方面,本发明提供了一种基于区块链的交易方法,该方法包括:

由付款方向收款方发送交易请求,该交易请求中包含要进行交易的付款方账户和收款方账户,付款方要支付的金额和付款方使用其账户私钥生成的签名;

收款方响应于确定接受所述交易请求,向付款方发送交易响应,该交易响应中包含来自付款方的交易请求和收款方使用收款方账户私钥生成的签名;

付款方响应于收到交易响应,生成交易支付报文并将其发送给收款方以完成本次交易,所述交易支付报文中包含来自收款方的交易响应和付款方使用其账户私钥生成的签名;

其中交易支付报文由收款方或付款方中的任何一方在适当时刻发布出去,以通过记账者将其记入区块链。

与现有技术相比,本发明的优点在于:

通过权威方定期对区块链中历史最久的前若干个区块进行清算,不仅可以减少系统中各节点处区块的存储量,而且减少记账者在验证交易报文有效性时回溯交易历史的工作量和上链等待时间,从而加快了交易速度并改善区块链的访问效率。

附图说明

以下参照附图对本发明实施例作进一步说明,其中:

图1为根据本发明实施例的区块链交易管理系统的结构示意图;

图2为根据本发明实施例的区块链交易管理方法的流程示意图。

具体实施方式

为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1给出了根据本发明一个实施例的区块链交易管理系统的结构示意图。该系统主要包括权威方、记账者以及用户。其中权威方是受到记账者和用户信任的公信力角色,其可以是政府机构、行业组织、公司甚至是个人。在本文中权威方并不限定于某个特定的组织或个人,可以有多个权威方,负责不同的业务,例如用于进行账户管理的权威方,用于进行货币管理的权威方等。记账者为区块链中负责将各种数据和信息打包存入区块链的节点(可以简称为上链)。权威方可以通过记账者将其各种相关信息保存到区块链中,用户可使用账户通过区块链进行诸如支付等各种交易操作。每个用户可以拥有一个或多个账户,账户是用户在区块链中进行交易的实体,每个账户都具有一个与其绑定或天然相关的公私钥对,私钥由该账户的所有者保管,不得泄露。在本文中也不对记账者的数量和用户账户数量进行限制,也不对所使用的区块链的具体形态作出限制。

更具体地,在本发明的实施例的系统中,权威方是受到记账者和用户信任的公信力角色,每个记账者和用户在收到来自权威方的信息时,执行与权威方的信息相关的操作而不需要系统中其他用户或记账者的确认或验证。权威方可以根据实际需求执行不同的业务或操作,例如账户管理、货币管理、交易管理等等。通常,权威方对于其要执行的操作或业务选择、生成或设置用于进行数字签名的公钥和私钥。在一个实施例中,权威方可以在其执行的所有的操作或业务中使用同一对公钥和私钥进行签名。优选地,权威方可以在不同的操作或业务中使用不同的非对称密钥对来进行签名,并且还可以采用不同的非对称加密算法,例如rsa、elgamal、sm2、椭圆曲线加密算法(ecc)等。这些公钥和私钥可以分别统称为系统公钥(system_public_key)和系统私钥(system_private_key)。表1给出了权威方的业务及其对应签名算法和公私钥对的对应关系示意。

表1

其中不同业务的system_public_key和system_private_key可以相同或不同,所使用的具体算法也可以相同或不同。因为权威方可由多个相对独立的实体构成,例如可允许不同实体分别负责账户建立、账户管理、货币发行、货币回收、清算等业务或操作;也可以允许两个以上的不同的实体执行相同的业务,例如,由两个不同的银行或其他金融组织执行货币发行操作,不同实体在进行货币发行时可采用不同的算法和非对称密钥进行签名。

在系统初始建立时或区块链建立时,权威方可以设置并发布权威方参数。该权威方参数可包括权威方的业务及每个业务对应的系统公钥及签名算法,例如表1中的“业务”、“算法”和“system_public_key”行对应的内容。而系统私钥由权威方严密保管,不可泄露。通常,可以将权威方发布的权威方参数保存在区块链的第一区块中,记账者和用户可以在权威方发布其参数之后,将其载入自己的设备中供后续使用。

在一个实施例中,权威方的业务包括清算业务。权威方在适当的时刻、响应于请求或定期地对区块链历史最久的前若干个区块进行全面清算,统计这些区块中涉及的所有账户的余额和状态。例如,假定权威方对区块链前n个区块进行清算,权威方从区块链的第一个区块开始遍历至第n个区块,统计出这些区块中涉及的所有账户的余额及当前状态,并将这些内容包含在权威方生成的清算报文中发布出去。表2给出了权威方清算报文的示例。

表2

权威方清算报文由正文和对正文的签名组成,正文内容可以包括但不限于权威方清算报文标识符、清算截至区块编号(即标明已经将该区块及其之前的区块进行了清算)、清算业务对应的公钥、所有的账户属性列表(例如包括余额及状态等)等等。权威方使用清算业务对应的私钥对权威方清算报文正文进行签名,从而得到对正文的数字签名。另外,权威方所统计的区块中涉及的由权威方发布的与账户无关的信息(例如权威方参数)也可以包含在权威方清算报文的正文中进行发布。

记账者收到由权威方发布的清算报文后,验证权威方清算报文的有效性,验证内容包括但不限于:(1)验证权威方清算报文中的系统公钥有无权限,即核实该清算报文中的系统公钥是否存在于记账者先前保存的权威方参数中且对应于权威方参数的清算业务;(2)验证该清算报文中数字签名的有效性,例如使用权威方参数中清算业务对应系统公钥及密码算法对数字签名进行验证等。验证通过后,记账者将此清算报文作为区块链第一个区块,取代权威方清算报文中的清算截至区块编号所指示的那个区块及其之前的所有区块,此时该区块链第一个区块的编号即为权威方清算报文中的清算截至区块编号。权威方可以定期地或者响应于请求来执行上述清算业务或操作,不仅可以减少系统中各节点处区块的存储量,而且减少记账者在验证交易报文有效性时回溯交易历史的工作量,同时也减少了从区块链上定位或统计数据的时间以及将交易数据上链所需的等待时间,这无疑能加快交易速度,改善区块链的访问效率。

在又一个实施例中,权威方的业务包括改变区块链的规则。在现有的区块链通常按其建立时制定的规则来运行,如果要改变现有区块链的规则,需要得到所有参与节点的认同,并完成对现有版本的升级后才能生效。而随着区块链规模的急剧扩展,要得到所有参与节点对区块链规则的改变的认同几乎变得不可能,因此经常出现部分节点采用旧规则而另一部分节点使用新规则,从而导致区块链不断出现分叉,使得区块数据难以保证一致和可靠。而在本发明的系统中由于引入了权威方,可以通过受记账者和用户信任的权威方来简单地完成区块链规则的修改与升级,从而降低区块链整体运营和维护成本,并提交其升级效率。当需要改变区块链规则时,权威方生成新规则描述文档并发布区块链规则修改报文。表3给出了区块链规则修改报文的一个示例。该区块链规则修改报文由正文和对正文的签名组成,正文内容可以包括但不限于区块链规则修改报文标识符、发布时间、与区块链规则修改业务对应的系统公钥、区块链新规则描述文档的哈希值、区块链新规则描述文档的获取地址等。或者也可以直接将区块链新规则打包至该报文的正文中。权威方使用与区块链规则修改业务对应的系统私钥对区块链规则修改报文正文进行签名,从而得到对正文的数字签名。

表3

记账者在收到权威方发布的区块链规则修改报文时,首先验证该区块链规则修改报文的有效性,验证内容包括但不限于:(1)区块链规则修改报文中的系统公钥有无权限,即该报文中的系统是否存在于之前接收的权威方参数中且对应于区块链规则修改业务;(2)数字签名的有效性,使用与区块链规则修改业务对应的系统公钥及密码算法对数字签名验证进行验证,等等。验证通过后,记账者将此区块链规则修改报文打包上链,从此之后,所有的节点遵循区块链新规则描述文档中定义的新规则。权威方参数的改变也可以通过区块链规则修改报文来完成。当权威方响应于请求或具体需求需要改变权威方参数时,可以将新的权威方参数包含至区块链规则修改报文并进行发布,或者可以将新的权威方参数写进区块链规则描述文档,并将该文档所在的地址包含在区块链规则修改报文中进行发布。

在又一个实施例中,权威方的业务还包括管理用户账户,例如建立账户、销毁账户、冻结账户等。以账户开户为例,权威方可以根据用户的开户请求,基于用户的身份标识给该用户建立一个或多个账户,这些账户包括实名账户和匿名账户。其中用户身份标识是指用户真实身份的标识,通过该标识可以唯一地确定用户身份,例如,可以是身份证号、护照号、公司注册号等等。在一个示例中,可以按照预定的填充规则对用户身份标识进行填充,以得到一个或多个实名账户,填充的内容可以包括但不限于随机数、编号、字符等等。如果用户还要建立匿名账户,则可以对填充后得到的实名账户进行加密,以加密后的密文数据作为匿名账户。权威方可以利用对称加密或非对称加密方法对实名账户进行加密。例如,可采用公钥对填充后的实名账户进行加密以得到匿名账户,利用私钥对匿名账户进行解密,从而用户身份标识仅对权威方可见。又例如,权威方还可以采用对称密钥对填充后得到的实名账户进行加密,例如采用des、3des、idea等算法,以及通过该对称密钥对匿名账户进行解密。权威方负责严密保管用于对匿名账户进行解密的密钥。这种实名账户和匿名账户相结合的开户机制,可以满足用户的不同需求。

对于所生成的每个账户,权威方以该账户本身作为公钥,利用基于身份的密码学中私钥生成算法来产生与该账户对应的私钥。基于身份的加密(identity-basecryptography,ibc)也是非对称加密机制,其中公钥可以是任意的字符串或比特串,通过私钥生成器(pkg,privatekeygenerations)来生成与公钥对应的私钥。在初始化期间会自动生成主密钥和系统参数,然后私钥生成器pkg基于主密钥,系统参数和用户账户来生成与该用户账户对应的私钥。其中主密钥由权威方严格保密,系统参数可由权威方公布,而所生成的账户私钥经由安全保密渠道提供给用户。

同时,权威方将与用户账户相关的信息并以与账户管理业务对应的系统私钥签名后发送给区块链上的记账者,由记账者将与用户账户相关的信息记录在区块链中。记账者可以使用权威方参数中与账户管理业务对应的系统公钥对收到的信息中的数字签名进行验证,从而验证该信息的可靠性和有效性。在验证通过之后,记账者将账户开户报文上链,从而账户开户完成。另外,权威方也可以将用于基于身份加密的系统参数以权威方参数的形式发布,并通过记账者保存在区块链中。

用户在收到与其各个账户对应的私钥以及权威方的系统参数之后,就可以采用各个账户基于区块链进行各种数字货币交易,相关的交易信息均通过记账者记录在区块链中。例如,用户可以使用其账户私钥和系统参数对发出的信息进行签名,而收到信息的一方可以使用该用户的账户本身及系统参数对所收到的信息的签名进行验证。当可信的第三方需要获知某个账户对应的用户真实身份时,可向权威方进行请求查询。当权威方认可该可信第三方的请求时,如果是匿名账户,则可通过权威方保管的用于对匿名账户进行解密的密钥对该账户进行解密,然后根据预定的填充法则从解密后的明文数据中去除填充信息,就能获得与该账户对应的用户身份标识。在该实施例中,权威方并不需要维护和保存任何数据库,例如关于用户账户和用户身份之间对应关系的数据库,既减少了运营成本,又降低了用户信息泄露的风险。当采用匿名账户时,用户身份对于数字货币交易中其他用户以及记账者都是匿名的,只有权威方才能根据用户账户获知用户的真实身份,从而既保证了数字货币交易的透明性和灵活性,又能通过权威方对交易各方进行有效监管,以防止不法行为的发生。同时与用户账户相关的各种信息也是采用区块链来进行保存,保持了去中心管理、交易成本低等优点。

另外,现有的区块链必须是在线交易,记账者需要等待交易报文被大多数节点确认之后才能将交易报文打包进区块链。随着区块链规模的扩展,等待时间越来越长,对交易速度产生了很大的影响。而在本发明的系统中,由于权威方是受到记账者和用户信任的公信力角色,用户身份可以通过权威方确认,相比现有区块链,参与交易的双方更容易产生信任感且各方不敢随意违规。由此在本发明的一个实施例中,可以采用基于区块链的离线交易的方式来加快双方间的交易速度。这里的离线交易指的是双方通过区块链之外的方式进行交易,而交易信息最终会上链进行保存。更具体地,首先由付款方向收款方发送快速离线交易请求报文,以此作为发起快速离线交易的请求。表4给出了快速离线交易请求报文的一个示例,在该快速离线交易请求报文由正文和对正文的签名组成,正文内容可以包括但不限于该报文标识符、要进行交易的付款方和收款方的账户,付款方要向收款方支付的金额等。付款方使用其账户私钥对该报文的正文进行签名,从而得到对正文的数字签名。

表4

付款方可以以除了区块链之外的其他任何通信方式将快速离线交易请求报文发给收款方。收款方在收到快速离线交易请求报文后,验证其有效性,验证内容可以包括但不限于双方账户是否正确、支付金额是否正确、数字签名的有效性(例如使用付款方账户的公钥进行验证)等。验证通过后,收款方评估并决定是否接受此次快速离线交易。如果决定接受此次快速离线交易,则收款方生成快速离线交易响应报文。表5给出了快速离线交易响应报文的一个示例,快速离线交易响应报文由正文和对正文的签名组成。正文可以包含但不限于快速离线交易响应报文标识符、付款方发来的快速离线交易请求报文、操作时间等信息。收款方使用收款方账户的私钥,对快速离线交易响应报文正文进行签名,得到对正文的数字签名。

表5

收款方也是以离线的方式(即除了区块链之外的方式)将快速离线交易响应报文发给付款方,将此作为同意进行快速离线交易的响应。付款方在收到快速离线交易响应报文后,验证其有效性,验证内容可以包括但不限于数字签名的有效性(例如,使用收款方账户的公钥进行验证)等。验证通过后,生成快速离线交易支付报文。表6给出了快速离线交易支付报文的一个示例,快速离线交易支付报文由正文和对正文的签名组成。正文可以包含但不限于快速离线交易支付报文标识符、收款方发来的快速离线交易响应报文、操作时间等信息。付款方使用付款方账户的私钥,对快速离线交易支付报文正文进行签名,得到对正文的数字签名。

表6

在付款方将快速离线交易支付报文发送给收款方后,快速离线交易完成。收款方或付款方中的任何一方都可以选择在适当的时刻将快速离线交易支付报文发布出去,由记账者将该报文上链。在该报文上链之前,付款方必须确保付款方账户对该报文的兑付能力,否则即是违规。记账者收到快速离线交易支付报文后,验证快速离线交易支付报文的有效性,验证内容可以包括但不限于其中的双方账户状态、各自签名的有效性等。尤其要验证付款方账户的余额是否足够支付,当发现付款方账户的余额不足够支付时,即根据规则进入惩罚流程。例如,可以通过权威方追究付款方的违约责任、冻结付款方账户、降低付款方信用度等等。

图2给出了根据本发明一个实施例的区块链交易管理方法的流程示意图。该方法包括由权威方在适当的时刻或定期地对区块链历史最久的前若干个区块进行全面清算,统计这些区块中涉及的所有账户的余额和状态,并将这些内容包含在权威方生成的清算报文中发布出去。权威方所统计的区块中涉及的由权威方发布的与账户无关的信息(例如权威方参数)也可以包含在权威方清算报文的正文中进行发布。在发布清算报文时,权威方以与其执行清算业务对应的系统私钥对该清算报文进行签名。该方法还包括由记账者收到由权威方发布的清算报文后,基于权威方发布的权威方参数验证权威方清算报文的有效性。如上文介绍的,权威方参数可包括权威方的各个业务和每个业务对应的系统公钥及签名算法。在验证通过后,记账者将此清算报文作为区块链第一个区块,取代权威方清算报文中的清算截至区块编号所指示的那个区块及其之前的所有区块,此时区块链第一个区块的编号即为权威方清算报文中的清算截至区块编号。权威方可以定期地或者响应于请求来执行上述清算业务或操作,不仅可以减少系统中各节点处区块的存储量,而且减少记账者在验证交易报文有效性时回溯交易历史的工作量,同时也减少了从区块链上定位或统计数据的时间以及将交易数据上链所需的等待时间,这无疑能加快交易速度,改善区块链的访问效率。

在本发明的又一个实施例中,还提供了一种基于区块链的快速交易方法,其中进行交易的双方通过区块链之外的通信方式快速完成交易,并随时、空闲时或在任何适当时刻将最终完成的交易信息通过记账者记入区块链中。该方法包括由付款方向收款方发送交易请求,该交易请求中包含要进行交易的付款方账户和收款方账户,付款方要支付的金额和付款方使用其账户私钥生成的签名。交易请求例如可以采用表4所示的快速离线交易请求报文的形式。该方法还包括由收款方在收到交易请求后,验证其有效性,验证内容可以包括但不限于双方账户是否正确、支付金额是否正确、数字签名的有效性(例如使用付款方账户的公钥进行验证)等。验证通过后,收款方评估并决定是否接受此次快速离线交易。该方法还包括如果收款方决定接受此次交易请求,则由收款方生成交易响应,并将其发送给付款方。该交易响应中包含来自付款方的交易请求和收款方使用收款方账户私钥生成的签名。交易响应例如可以采用表5所示的快速离线交易响应报文的形式。该方法还包括由付款方响应于收到交易响应,验证其有效性,验证内容可以包括但不限于数字签名的有效性(例如,使用收款方账户的公钥进行验证)等,以及在验证通过后,由付款方生成交易支付报文生成交易支付报文并将其发送给收款方以完成本次交易,所述交易支付报文中包含来自收款方的交易响应和付款方使用其账户私钥生成的签名。交易支付报文例如可以采用表6所示的快速离线交易支付报文的形式。这样,付款方和收款方以离线的方式快速地完成了本次交易,双方之间的通信,例如交易请求、交易响应、交易支付报文均不需要立刻或实时上链。该方法还包括由收款方或付款方中的任何一方在适当时刻将交易支付报文发布出去,并通过记账者将其记入区块链。

虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所作出的各种改变以及变化。

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