一种区块链轻节点独立验证单笔交易方法、系统及介质技术方案

技术编号:36292790 阅读:43 留言:0更新日期:2023-01-13 10:06
本发明专利技术公开了一种区块链轻节点独立验证单笔交易方法、系统及介质,包括:(1)给出了一种灵活性更高,更方便交易验证的区块结构ABS。给每笔交易的MerkelProofs增加了额外数据。将区块状态以哈希表的方式来进行存储,这些修改使得轻节点能够针对单个交易来下载和验证;(2)轻节点针对特定交易,开始下载区块头、单笔交易信息和区块状态信息;(3)制定单个交易验证协议,轻节点使用该协议来判定交易是否有效;(4)针对单笔交易,制定了交易欺诈证明协议,轻节点使用该协议来为无效交易生成欺诈证明;(5)轻节点将欺诈证明广播到区块链网络,网络中其他轻节点会接收并判定该欺诈证明是否正确,检验正确后会立即拒绝该区块。检验正确后会立即拒绝该区块。检验正确后会立即拒绝该区块。

【技术实现步骤摘要】
一种区块链轻节点独立验证单笔交易方法、系统及介质


[0001]本专利技术涉及区块链交易验证领域,具体来说是一种区块链轻节点独立验证单笔交易方法、系统及介质。

技术介绍

[0002]2008年,随着比特币这一点对点的电子现金交易系统问世,加密货币的发展迎来了新的浪潮。以全球最大的加密货币交易市场比特币、以太坊为例,在2022年年初,比特币的日均交易量为247.3亿美元,而以太坊网络每日处理120亿美元的交易,两大市场带动整个币圈发展,增长势头十分强劲,而加密货币底层的区块链技术,得到了各界人士越来越多的关注。区块链技术是在分布式、不可信环境中,所有节点通过一定的共识机制就公共账本达成一致的技术。在区块链网络中,全节点(完全验证节点)下载所有交易内容来保存账本副本,根据交易有效性规则来验证交易是否有效,它维护区块链共识,保障了整个区块链系统的安全性、可用性和系统性能等。但大多数用户使用智能手机等移动设备,无法拥有运行全节点这样大的存储资源和计算资源,因此为了提高区块链的可拓展性,这些使用移动设备的用户选择运行轻节点(轻客户端),轻节点用户只对验证某些特定交易感兴趣,它只下载区块头,使用SPV(Simple Payment Verification)来判定交易是否已经打包上链,由于它不下载整个交易账本,因此无法直接验证交易是否有效,而是通过共识机制这种一致性规则来间接确保交易有效,因此轻节点的安全性与区块链用户是否都诚实息息相关。
[0003]近年来关于发布欺诈交易导致货币被盗窃的事件屡屡发生,最主要的攻击方法是51%算力攻击,即多个大型的恶意节点相互勾结,当它们拥有超过整个网络一半的算力时,发动51%算力攻击,攻击区块链正确的网络共识,操纵共识,构建出包含了无效交易的最长链,由于轻节点依赖共识机制,且轻节点无法单独验证交易,所以在51%攻击下轻节点会接收并认可这些无效区块,导致自己的资金被窃取,或凭空创造资金,这会对整个区块链网络的安全性造成了很大的影响。因此如何保障轻节点的交易正确、不受到欺诈,正成为一个热门的关注点。
[0004]为了解决这一问题,Al

Bassam等人提出了欺诈证明这一方法,总体思路是对现有区块结构做修改,允许全节点为无效区块生成和广播一个简洁的交易欺诈证明。这样,只要轻节点连接到至少一个诚实的全节点,它就能通过绑定的全节点获取到交易欺诈证明,从而间接验证交易的有效性并拒绝该区块。该方法也能够打破大多数诚实参与者的假设,只需绑定诚实的全节点即可实现交易验证。
[0005]为了进一步提高交易欺诈证明的验证性能,Mingchao等人提出了Coded Merkle Tree这一概念,主要思路是对Merkle Tree的数据结构进行了修改,在树的每一层增加冗余数据来正确部署LDPC纠删码,该方法进一步的提高了区块的数据可用性,从而使攻击者难以隐藏无效交易,最终目的是保障交易欺诈证明能正确生成。
[0006]虽然欺诈证明解决了轻节点验证交易的这一难点,但这种被动的方法极度依赖诚实全节点的协作,并且全节点也有可能是不诚实的,例如:不转发欺诈证明,或故意广播无
效区块。为了解决这一问题,Cao等人提出了轻节点协作验证方法,即多个轻节点相互协作,把整个区块的交易内容划分为k个部分,以牺牲一部分存储资源和计算资源为代价,使每个轻节点有能力下载并验证其中一部分交易,协作验证完该区块所有交易后根据验证结果生成欺诈证明,虽然该方法摆脱了对诚实全节点的依赖,赋予了轻节点验证交易的能力,但是如何保障每个协作的轻节点都是诚实的是一个棘手的问题。
[0007]国内外研究现状表明,目前对于区块链交易欺诈证明主要存在以下问题:
[0008](1)由于交易验证需要整个区块链的交易信息和状态信息,而轻节点资源有限,因此轻节点无法独立验证交易,需要协作者的参与,且需要保证协作者都诚实可信。
[0009](2)生成交易欺诈证明需要判定该区块的所有交易,以整个区块为单位来进行,而对于只关注某笔特定交易的轻节点来说,若只验证那笔特定交易,以这笔特定交易为单位生成欺诈证明则会节省更多存储资源和计算资源。

技术实现思路

[0010]为了解决在比特币、以太坊交易验证中,轻节点无法独立完成交易验证,且没有以单个交易为单位生成欺诈证明的方法,就以上问题本专利技术公开了一种区块链轻节点独立验证单笔交易的方法,轻节点无需处理整个区块、存储所有状态就能实现单笔交易验证,具体采用如下技术方案:
[0011]一种区块链轻节点独立验证单笔交易方法,其特征在于:基于设定的区块结构、交易验证数据和存储模式;其中,
[0012]设定的区块结构包括以及ABS(Alternate Block Structure)结构的区块头,以及ABS区块结构的交易信息txn;
[0013]设定的交易验证数据包括每笔交易的MerkelProofs增加的额外数据和区块状态,具体是交易发起人的历史交易输入以及交易输入证明;
[0014]设定的存储模式包括将区块状态State以哈希表的方式来进行存储;
[0015]方法包括:
[0016]轻节点针对特定交易,开始下载区块头、单笔交易信息和区块状态信息。
[0017]轻节点使用单个交易验证协议判定交易是否有效,其中单个交易验证协议Valid_Single_Txn(txn,spentTXOs)∈{Ture,False},并且,
[0018]若交易为有效交易,轻节点验证通过该交易,确保交易正确不受欺诈;
[0019]否则,轻节点使用交易欺诈证明协议为区块生成欺诈证明,并以欺诈证明为凭证拒绝该区块;交易欺诈证明协议Is_Valid_FraudProof(fraudProof)∈{Ture,False},并同时将欺诈证明广播到区块链网络,网络中其他轻节点会接收并判定该欺诈证明是否正确,检验正确后会立即拒绝该区块。
[0020]在上述的一种区块链轻节点独立验证单笔交易方法,使用ABS结构的区块头至少包括如下字段:
[0021]ParentHash:前一个区块的哈希值。
[0022]Hash:该区块整体数据的哈希值,和本区块信息唯一对应。
[0023]Root:包含交易信息的Merkel树的根。
[0024]Len:该区块总共交易数量。
[0025]Difficulty:当前块的挖矿难度值。
[0026]Timestamp:挖出该区块的具体时间,以秒为单位的Unix标准时间戳。
[0027]Nonce:PoW算法的哈希值。
[0028]ExtraData:额外的信息。
[0029]在上述的一种区块链轻节点独立验证单笔交易方法,使用ABS区块结构的交易信息txn至少包括如下字段:
[0030]Txid:交易id。
[0031]Sender:交易发起人的id,即交易发起人的公钥。
[0032]Signature:交易发起人的数字签名。<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链轻节点独立验证单笔交易方法,其特征在于:基于设定的区块结构、交易验证数据和存储模式;其中,设定的区块结构包括以及ABS(Alternate Block Structure)结构的区块头,以及ABS区块结构的交易信息txn;设定的交易验证数据包括每笔交易的MerkelProofs增加的额外数据和区块状态,具体是交易发起人的历史交易输入以及交易输入证明;设定的存储模式包括将区块状态State以哈希表的方式来进行存储;方法包括:轻节点针对特定交易,开始下载区块头、单笔交易信息和区块状态信息;轻节点使用单个交易验证协议判定交易是否有效,其中单个交易验证协议Valid_Single_Txn(txn,spentTXOs)∈{Ture,False},并且,若交易为有效交易,轻节点验证通过该交易,确保交易正确不受欺诈;否则,轻节点使用交易欺诈证明协议为区块生成欺诈证明,并以欺诈证明为凭证拒绝该区块;交易欺诈证明协议Is_Valid_FraudProof(fraudProof)∈{Ture,False},并同时将欺诈证明广播到区块链网络,网络中其他轻节点会接收并判定该欺诈证明是否正确,检验正确后会立即拒绝该区块。2.根据权利要求1所述的一种区块链轻节点独立验证单笔交易方法,其特征在于:使用ABS结构的区块头至少包括如下字段:ParentHash:前一个区块的哈希值;Hash:该区块整体数据的哈希值,和本区块信息唯一对应;Root:包含交易信息的Merkel树的根;Len:该区块总共交易数量;Difficulty:当前块的挖矿难度值;Timestamp:挖出该区块的具体时间,以秒为单位的Unix标准时间戳;Nonce:PoW算法的哈希值;ExtraData:额外的信息。3.根据权利要求1所述的一种区块链轻节点独立验证单笔交易方法,其特征在于:使用ABS区块结构的交易信息txn至少包括如下字段:Txid:交易id;Sender:交易发起人的id,即交易发起人的公钥;Signature:交易发起人的数字签名;Outputs:指定了收款人和金额的交易输出列表,编号为1,2
……
。4.根据权利要求1所述的一种区块链轻节点独立验证单笔交易方法,其特征在于:每笔交易的MerkelProofs的额外数据包括:Inputs:交易发起人的历史交易输入,即过去付款方的交易输出TXOs(txid,j)列表;InputProofs:交易输入证明,对于在历史交易输入Inputs的每个TXOs(txid,j),InputProofs都会指向过去发生这笔交易的区块头。5.根据权利要求1所述的一种区块链轻节点独立验证单笔交易方法,其特征在于:区块状态State包括已被花费的TXOs,将已被花费的TXOs(txid,j)的txid作为Key,把已被花费
的TXOs作为Value,进行哈希表映射,将该哈希表命名为spentTXOs。6.根据根据权利要求1所述的一种区块链轻节点独立验证单笔交易方法,其特征在于:单笔交易验证协议Valid_Single_Txn(txn,spentTXOs)∈{Ture,False}具体包括轻节点针对以下条...

【专利技术属性】
技术研发人员:孟博李明皓胡宗华余泽段伟王德军
申请(专利权)人:武汉力龙信息科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1