本发明涉及区块链技术领域,特别是一种基于联合签名的区块链交易处理方法及其应用该方法的系统和存储介质。
背景技术:
区块链本质是一个去中心化的信任机制,其通过在分布式节点共享来集体维护一个可持续生长的数据库,实现信息的安全性和准确性。由于区块链具有去中心化、交易过程透明、信息不可篡改、可追溯等优点,而被广泛应用于金融领域。
在区块链共识机制下,每个区块链账户都可以发起一笔交易,当负责出块的节点接收到交易请求后会进行相应的计算,在系统既定的出块时间内,节点会计算该周期内的所有交易,并将所有结果同步到整个区块链网络中。当验证成功时,节点便会将该笔交易相关的数据存入区块中消耗了一定的存储资源,而节点的计算则消耗了对应的网络算力。
现有区块链公链皆涉及链上的资源消耗,因为当节点对某笔交易进行处理时,需要消耗算力和网络带宽等资源。但若一个开放的公链中,如果算力和网络带宽是单纯免费提供的,则攻击者将轻易的发起ddos攻击。为此,所有链上资源都设计成了有成本的模式。例如比特币、以太坊,每笔转账时需要支付gas费;而区块链上,用户需要抵押链上的资源通证,兑换算力和网络带宽等资源。
对于用户而言,当账户内的算力和网络带宽不够/或者是当账户内没有足够的gas时,无法发起一笔链上交易,体验非常不友好。
技术实现要素:
本发明为解决上述问题,结合区块链的实际需求,提供了一种基于联合签名的区块链交易处理方法、系统及存储介质,交易用户只需要发起交易请求,无需发起资源代付请求,从而实现用户层无感知的链上交易,用户体验更好。
为实现上述目的,本发明采用的技术方案为:
一种基于联合签名的区块链交易处理方法,其包括以下步骤:
a.获取账户a发起的交易请求;
b.对所述交易请求添加链上资源的代付账户b,所述账户b为所述交易请求提供链上资源的代付服务;
c.通过所述账户a和所述账户b对所述交易请求进行联合签名;
d.将联合签名后的交易请求发送至区块链节点。
优选的,所述的步骤c中的联合签名,是由所述账户b对所述交易请求进行签名后,再由所述账户a对所述交易请求进行再次签名。
优选的,所述账户b为公链钱包,所述账户a为钱包账户a,所述钱包账户a通过钱包客户端发起链上的交易请求并对所述交易请求添加所述公链钱包的账户b,所述公链钱包为所述交易请求提供链上资源并对所述交易请求进行第一次数字签名后,所述账户a再对所述交易请求进行第二次数字签名并发送至所述区块链节点。
进一步的,所述交易请求包括以下任一种:转账、投票、抵押或赎回、购买资源;所述链上资源为网络带宽或者算力。
优选的,所述账户b为游戏或社交的应用平台,所述账户a为所述应用平台的合约账户a,所述合约账户a通过应用客户端发起链上的交易请求并对所述交易请求添加所述应用平台的账户b,所述应用平台为所述交易请求提供链上资源并对所述交易请求进行第一次数字签名后,所述账户a再对所述交易请求进行第二次数字签名并发送至所述区块链节点。
进一步的,所述交易请求包括以下任一种:转账、投票、抵押或赎回、购买资源;所述链上资源为网络带宽或者算力。
优选的,所述账户b为租赁平台,所述账户a发起链上的交易请求并对所述交易请求添加所述租赁平台的账户b,所述租赁平台向所述账户a租赁链上资源并对所述交易请求进行第一次数字签名后,所述账户a再对所述交易请求进行第二次数字签名,所述租赁平台对所述交易请求进行第二次签名后再将经过联合签名的所述交易请求发送至所述区块链节点。
进一步的,所述交易请求为链上资源的租赁交易;所述链上资源为网络带宽或者算力,所述租赁平台将所述链上资源生成流量包,再以流量包的形式租赁给所述账户a;并且,所述租赁平台向所述账户a租赁链上资源的同时,进一步为所述交易请求代付资源费。
本发明之另一目的,在于提供一种基于联合签名的区块链交易处理系统,其包括存储器和处理器,所述存储器中存储有指令,所述处理器通过执行所述存储器中存储的指令使得系统实现如上述任一项所述的区块链交易处理方法。
本发明之再一目的,在于提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,系统执行所述指令使得系统实现上述任一项所述的区块链交易处理方法。
本发明的有益效果是:
(1)采用本发明的方法,能够将传统的互联网交易或物联网交易,转换为基于区块链的链上交易,仍按原传统的操作方式进行操作,用户层无感知,使得用户体验更好;
(2)本发明的交易用户(账户a)在交易操作时,只需发起交易请求和完成签名,无需发起链上资源的代付请求,且交易用户无需了解资源使用等问题,操作更方便;
(3)本发明通过平台或系统或第三方用户(账户b)为交易用户提供链上资源或代付资源费,能够避免交易用户因资源不够而无法发起链上交易,从而保障交易的顺利进行,促进交易达成。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合具体实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
区块链上的去中心化应用,早上通过在主网上部署专门的智能合约,部署类似安卓市场上的app之类的应用,链上应用与传统app的主要区别在于,链上应用是所有用户操作均在链上被记录下来,无法篡改。
传统app的服务器是通过开发者租用云服务器等方式免费提供给用户使用;但在链上app中,如果算力和网络带宽是单纯免费提供的,则攻击者将轻易的发起ddos攻击。为此,在链上app中,用户需要为自己的账户租用算力或网络带宽,从而可以发起交易。
采用本发明的方法,用户无需为算力或网络带宽等链上资源而烦恼,链上app的开发者可以通过租赁链上资源并免费提供给用户,或者通过公链钱包为用户提供链上资源的代租服务,从而满足用户日常交易的需求。
具体实现过程如下:
本发明的一种基于联合签名的区块链交易处理方法,其包括以下步骤:
a.获取账户a发起的交易请求;
b.对所述交易请求添加链上资源的代付账户b,所述账户b为所述交易请求提供链上资源的代付服务;
c.通过所述账户a和所述账户b对所述交易请求进行联合签名;
d.将联合签名后的交易请求发送至区块链节点。
本实施例中,所述的步骤c中的联合签名,是由所述账户b对所述交易请求进行签名后,再由所述账户a对所述交易请求进行再次签名。还可以采用其他方式进行联合签名,例如,所述账户a先进行第一次数字签名后,再由所述账户b进行第二次数字签名,不以此为限。
所述的步骤a中,所述账户a发起的交易请求,可以是转账、投票、通证的抵押或赎回、购买资源或其他交易类型,不以此为限;所述的步骤b中,所述账户b提供链上资源,该链上资源可以是网络带宽(net)或者算力(cpu)或者燃料费(gas)。
区块链好比是一个分布式大账本,链上操作可被理解成一笔交易。区块链节点计算一笔交易需要消耗一定的算力和网络带宽等链上资源,因此不同的区块链上,对于链上资源的定价不同,比如以太坊上发起一笔交易时,用户需要支付gas费。
本发明的区块链交易处理方法可广泛应用于各种公链上,例如区块链账户a发起一笔转账交易,该转账交易是将账户内的10个通证(token)转账账户c;例如账户a进行投票交易,该投票交易是将账户a内10个通证对应的票数投给账户c;或者,例如账户a进行抵押交易,该抵押交易是将账户a内的10个通证抵押给系统合约账户,获得链上资源。具体举例如下:
第一实施例(公链钱包系统):
本实施例中,所述账户b为公链钱包,所述账户a为钱包账户a,所述钱包账户a通过钱包客户端发起链上的交易请求并对所述交易请求添加所述公链钱包的账户b,所述公链钱包为所述交易请求提供链上资源并对所述交易请求进行第一次数字签名后,所述账户a再对所述交易请求进行第二次数字签名并发送至所述区块链节点。
本实施例中,账户a和账户b共同完成签名后,所述交易请求向区块链网络上的各个节点同步,节点接收信息进行处理,完成上链过程。
第二实施例(游戏或社交等应用平台):
所述账户b为游戏或社交的应用平台,所述账户a为所述应用平台的合约账户a,所述合约账户a通过应用客户端发起链上的交易请求并对所述交易请求添加所述应用平台的账户b,所述应用平台为所述交易请求提供链上资源并对所述交易请求进行第一次数字签名后,所述账户a再对所述交易请求进行第二次数字签名并发送至所述区块链节点。
采用本实施例的方法,游戏应用或社交应用的开发者在设计智能合约时,可采用联合签名的机制,即当用户(账户a)执行向游戏、社交应用的合约账户(区块链节点)转账等特定操作时,开发者的账户(账户b)将为用户提供网络带宽和算力等资源。
第三实施例(第三方租赁平台):
所述账户b为租赁平台,所述账户a发起链上的交易请求并对所述交易请求添加所述租赁平台的账户b,所述租赁平台向所述账户a租赁链上资源并对所述交易请求进行第一次数字签名后,所述账户a再对所述交易请求进行第二次数字签名,所述租赁平台对所述交易请求进行第二次签名后再将经过联合签名的所述交易请求发送至所述区块链节点。
本实施例中,所述交易请求为链上资源的租赁交易;所述链上资源为网络带宽或者算力,所述租赁平台将所述链上资源生成流量包,再以流量包的形式租赁给所述账户a。
并且,所述租赁平台向所述账户a租赁链上资源的同时,进一步为所述交易请求代付资源费。例如,账户a没有资源,需要租赁10ms的资源,所述租赁交易的操作需要消耗2ms;此时,所述租赁平台为所述账户a代付2ms的资源费,并将剩下8ms租赁给账户a。
本发明一个实施例还提供一种系统(如上述第一实施例的公链钱包系统、第二实施例的游戏或社交等应用平台、第三实施例的第三方租赁平台等),其包括存储器和处理器,所述存储器中存储有指令,所述处理器通过执行所述存储器中存储的指令使得系统实现如上述任一项所述的区块链交易处理方法。
系统可以是计算机设备,包括至少一个处理器,通信总线,存储器以及至少一个通信接口。
处理器可以是一个通用中央处理器(cpu),微处理器,特定应用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制本发明方案程序执行的集成电路。
通信总线可包括一通路,在上述组件之间传送信息。所述通信接口604,使用任何收发器一类的系统,用于与其他设备或通信网络通信,如以太网,无线接入网(ran),无线局域网(wirelesslocalareanetworks,wlan)等。
存储器可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器用于存储执行本发明方案的程序代码,并由处理器来控制执行。所述处理器用于执行所述存储器中存储的程序代码。
在具体实现中,作为一种实施例,处理器可以包括一个或多个cpu。
在具体实现中,作为一种实施例,系统可以包括多个处理器,例如处理器和处理器。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,系统还可以包括输出设备和输入设备。输出设备和和输入设备分别与处理器通信。可以以多种方式接受用户的输入,例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的系统可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,系统可以是台式机、便携式电脑、网络服务器、掌上电脑(personaldigitalassistant,pda)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备等。
系统的存储器中存储了一个或多个软件模块。系统可以通过处理器以及存储器中的程序代码来实现软件模块,实现上述实施例所说的区块链交易处理方法。
本发明一个实施例还提供了一种计算机存储介质,该计算机存储介质中存储有指令;系统(可以是计算机设备,例如服务器)执行该指令,例如计算机设备中的处理器执行该指令,使得该系统实现上述实施例所说的区块链交易处理方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。并且,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
上述说明示出并描述了本发明的优选实施例,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
1.一种基于联合签名的区块链交易处理方法,其特征在于,包括以下步骤:
a.获取账户a发起的交易请求;
b.对所述交易请求添加链上资源的代付账户b,所述账户b为所述交易请求提供链上资源的代付服务;
c.通过所述账户a和所述账户b对所述交易请求进行联合签名;
d.将联合签名后的交易请求发送至区块链节点。
2.根据权利要求1所述的一种基于联合签名的区块链交易处理方法,其特征在于:所述的步骤c中的联合签名,是由所述账户b对所述交易请求进行签名后,再由所述账户a对所述交易请求进行再次签名。
3.根据权利要求2所述的一种基于联合签名的区块链交易处理方法,其特征在于:所述账户b为公链钱包,所述账户a为钱包账户a,所述钱包账户a通过钱包客户端发起链上的交易请求并对所述交易请求添加所述公链钱包的账户b,所述公链钱包为所述交易请求提供链上资源并对所述交易请求进行第一次数字签名后,所述账户a再对所述交易请求进行第二次数字签名并发送至所述区块链节点。
4.根据权利要求3所述的一种基于联合签名的区块链交易处理方法,其特征在于:所述交易请求包括以下任一种:转账、投票、抵押或赎回、购买资源;所述链上资源为网络带宽或者算力。
5.根据权利要求2所述的一种基于联合签名的区块链交易处理方法,其特征在于:所述账户b为游戏或社交的应用平台,所述账户a为所述应用平台的合约账户a,所述合约账户a通过应用客户端发起链上的交易请求并对所述交易请求添加所述应用平台的账户b,所述应用平台为所述交易请求提供链上资源并对所述交易请求进行第一次数字签名后,所述账户a再对所述交易请求进行第二次数字签名并发送至所述区块链节点。
6.根据权利要求5所述的一种基于联合签名的区块链交易处理方法,其特征在于:所述交易请求包括以下任一种:转账、投票、抵押或赎回、购买资源;所述链上资源为网络带宽或者算力。
7.根据权利要求1所述的一种基于联合签名的区块链交易处理方法,其特征在于:所述账户b为租赁平台,所述账户a发起链上的交易请求并对所述交易请求添加所述租赁平台的账户b,所述租赁平台向所述账户a租赁链上资源并对所述交易请求进行第一次数字签名后,所述账户a再对所述交易请求进行第二次数字签名,所述租赁平台对所述交易请求进行第二次签名后再将经过联合签名的所述交易请求发送至所述区块链节点。
8.根据权利要求7所述的一种基于联合签名的区块链交易处理方法,其特征在于:所述交易请求为链上资源的租赁交易;所述链上资源为网络带宽或者算力,所述租赁平台将所述链上资源生成流量包,再以流量包的形式租赁给所述账户a;并且,所述租赁平台向所述账户a租赁链上资源的同时,进一步为所述交易请求代付资源费。
9.一种基于联合签名的区块链交易处理系统,其特征在于:包括存储器和处理器,所述存储器中存储有指令,所述处理器通过执行所述存储器中存储的指令使得系统实现如权利要求1至8任一项所述的区块链交易处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,系统执行所述指令使得系统实现权利要求1至8任一项所述的区块链交易处理方法。
技术总结