基于以太坊扩展的代币交易并行实现方法、介质及设备技术

技术编号:38317816 阅读:18 留言:0更新日期:2023-07-29 09:00
本发明专利技术的一种基于以太坊扩展的代币交易并行实现方法、介质及设备,包括以下步骤,在以太坊的账户状态中扩展状态UTXO

【技术实现步骤摘要】
基于以太坊扩展的代币交易并行实现方法、介质及设备


[0001]本专利技术涉及区块链
,具体涉及一种基于以太坊扩展的代币交易并行实现方法、介质及设备。

技术介绍

[0002]起初,区块链主要应用于加密货币领域,即链原生代币(Native Token)的转账交易。随着区块链的发展,基于用户自定义的代币(Custom Token)交易(以下简称代币交易)得到了广泛应用,以太坊在2015年11月提出以太坊代币的接口标准ERC20,是现在应用最广泛的代币标准。基础ERC20合约规定了代币分发,代币转账以及查看账户代币余额三个接口函数。
[0003]与ETH(以太坊的原生加密货币)不同,基于ERC20实现的代币并不存入账户,而是仅存在于合约内部,如同独立的数据库。合约指定代币的规则,并保留一个映射用户余额的列表。
[0004]ERC20合约有很多的应用场景:在稳定币领域,USDT使用ERC20合约实现与美元挂钩的稳定币,市值已达到662.7亿美元,在证券型代币上,诸多DeFi的应用是基于ERC20合约构建的。在效用性代币上,如游戏中的货币,忠诚度积分等功能也由ERC20合约实现。
[0005]ERC20合约受限于区块链的吞吐量低下,导致交易会产生高额的手续费和长时间的延迟。
[0006]有研究分析了一段时间内以太坊的所有交易,发现ERC20合约交易占并行瓶颈的60%,其中最主要的原因是发币和转账交易会频繁修改用户的代币余额状态,这导致交易会产生严重的交易冲突。所以代币交易的执行速度不仅成为了代币交易吞吐量的瓶颈,更是成为了整个区块链系统的性能瓶颈。
[0007]另一方面,区别于现在主流区块链采用的账户(Account)模型,以比特币为代表的UTXO模型具备无状态的特性。支持交易并行执行,且理论上可以实现线性扩展。但受限于脚本语言和本身无状态的特性,导致UTXO模型功能性弱于账户模型,较难实现代币交易。
[0008]专词解释
[0009]UTXO记账模型:UTXO,全称Unspent Transaction Output,即未花费的交易输出。以比特币为代表的基于UTXO记账模型的区块链系统会维护一个UTXO

SET状态,存储系统中的所有UTXO。区块链交易以已经存在于UTXO

SET中的UTXO为输入,以交易预期的UTXO为输出,当验证交易合法后,会删除输入的UTXO,再将输出的UTXO加入到UTXO

SET中。
[0010]UTXO模型使用脚本语言,以Lock

Key的结构来构建智能合约。具体来说是在UTXO中保存锁定脚本,即可以将UTXO看作是一把锁。需要使用该UTXO的交易,在交易中写入相应的解锁数据,交易要被验证可以解锁所有输入的UTXO后,才会被认定为合法的。脚本语言是非图灵完备的,编程相对困难。

技术实现思路

[0011]本专利技术提出的一种基于以太坊扩展的代币交易并行实现方法及设备,通过扩展以太坊系统模型来实现代币交易的并行执行,可至少解决
技术介绍
中的技术问题之一。
[0012]为实现上述目的,本专利技术采用了以下技术方案:
[0013]一种基于以太坊扩展的代币交易并行实现方法,通过计算机设备执行以下步骤,
[0014]在以太坊的账户状态中扩展状态UTXO

SET,保存账户拥有的UTXO;
[0015]在以太坊交易类型上扩展UTXO类型交易,对账户拥有的UTXO进行操作;
[0016]在智能合约上扩展操作方法,使UTXO交易的数据和以太坊原有的合约交易的数据可以相互转化;
[0017]通过以上三个扩展使以太坊成为了Account

UTXO混合区块链系统,并基于该系统完成代币交易的并行实现。
[0018]进一步地,所述步骤在以太坊的账户状态中扩展状态UTXO

SET,保存账户拥有的UTXO,还包括,
[0019]对于只具备转账功能的UTXO,只需要验证它的所有权,以及交易前后总量不变,这些都已经写入UTXO交易的验证规则,无需通过锁定脚本进行限制,所以只具备转账功能的UTXO的锁定脚本为空。
[0020]进一步地,所述在以太坊交易类型上扩展UTXO类型交易,对账户拥有的UTXO进行操作,还包括,
[0021]在以太坊交易中扩展UTXO交易中,UTXO交易与以太坊原有的合约交易都存储在交易树中,为便于执行与检索,在原有的交易树根节点下新增UTXO交易根节点和合约交易根节点,两类交易按照原有以太坊对交易的存储规则,分别存储在两个树根下;
[0022]UTXO交易各字段解释见表1:
[0023]表1UTXO交易各字段的含义
[0024][0025]UTXO交易格式是在锁定脚本LockingScript和面值Value的基础上中新增分发地址字段即IssueAddress,根据IssueAddress将UTXO分为两类:
[0026]原生代币:UTXO的IssueAddress为特殊值0,这种UTXO的Value字段与账户余额Balance可进行相互转换;
[0027]自定义代币:UTXO的IssueAddress为分发该UTXO的合约地址,这种UTXO的Value字段由用户定义,与账户余额无关;
[0028]节点在收到区块后,会先按照现在以太坊的执行规则,串行执行所有合约交易,然
后再按照设定的UTXO交易验证算法并行执行所有UTXO交易。
[0029]进一步地,所述UTXO交易验证算法具体步骤如下:
[0030]根据UTXO Owner地址,检查所有输入UTXO的存在性,即是否都在对应UTXOOwner账户的UTXO

SET中;
[0031]检查相同IssueAddress的所有输入UTXO的Value之和是否等于所有输出UTXO的Value之和;
[0032]根据签名类型SIGHASH,检查输入UTXO的所有Owner对交易签名的正确性;
[0033]检查输入UTXO是否可以解锁;
[0034]在Owner的UTXO

SET中删除交易输入的UTXO,在Receiver的UTXO

SET中添加交易输出的UTXO。
[0035]进一步地,所述在智能合约上扩展操作方法,使UTXO交易的数据和以太坊原有的合约交易的数据可以相互转化,包括,
[0036]对账户状态新增的操作方法如下:
[0037][0038]在合约中执行issue()方法将UTXO分发到指定账户中,执行recycle()方法将UTXO输入到合约中,并在合约成功执行后从账户的UTXO

SET中删除输入UTXO,通过这两个方法就可以完成状态数据与UTXO之间的转换。
[0039]进一步地,还包括iss本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于以太坊扩展的代币交易并行实现方法,其特征在于,包括以下步骤,在以太坊的账户状态中扩展状态UTXO

SET,保存账户拥有的UTXO;在以太坊交易类型上扩展UTXO类型交易,对账户拥有的UTXO进行操作;在智能合约上扩展操作方法,使UTXO交易的数据和以太坊原有的合约交易的数据可以相互转化;通过以上三个扩展使以太坊成为了Account

UTXO混合区块链系统,并基于该系统完成代币交易的并行实现。2.根据权利要求1所述的基于以太坊扩展的代币交易并行实现方法,其特征在于:所述步骤在以太坊的账户状态中扩展状态UTXO

SET,保存账户拥有的UTXO,还包括,对于只具备转账功能的UTXO,只需要验证它的所有权,以及交易前后总量不变,这些都已经写入UTXO交易的验证规则,无需通过锁定脚本进行限制,所以只具备转账功能的UTXO的锁定脚本为空。3.根据权利要求2所述的基于以太坊扩展的代币交易并行实现方法,其特征在于:所述在以太坊交易类型上扩展UTXO类型交易,对账户拥有的UTXO进行操作,还包括,在以太坊交易中扩展UTXO交易中,UTXO交易与以太坊原有的交易都存储在交易树中,为便于执行与检索,在原有的交易树根节点下新增UTXO交易根节点和以太坊原有交易根节点,两类交易按照以太坊原有对交易的存储规则,分别存储在两个树根下;UTXO交易包括定义字段名TXID,其含义为UTXO交易的唯一标识;定义字段名Vout,其含义为输入UTXO的地址;定义字段名Key,其含义为输入UTXO的解锁脚本;定义字段名Owner,其含义为UTXO拥有者的地址;定义字段名UTXO,其含义为交易输出的UTXO;定义字段名Reciever,其含义为UTXO接收者的地址;定义字段名SIGHASH,其含义为交易不同类型签名的标识;定义字段名Sig,其含义为交易输入UTXO的拥有者对交易的签名;UTXO交易格式是在锁定脚本LockingScript和面值Value的基础上中新增分发地址字段即IssueAddress,根据IssueAddress将UTXO分为两类:原生代币:UTXO的IssueAddress为特殊值0,这种UTXO的Value字段与账户余额Balance可进行相互转换;自定义代币:UTXO的IssueAddress为分发该UTXO的合约地址,这种UTXO的Value字段由用户定义,与账户余额无关;节点在收到区块后,会先按照现在以太坊的执行规则,串行执行所有以太坊原有的交易,然后再按照设定的UTXO交易验证算法并行执行所有UTXO交易。4.根据权利要求3所述的基于以太坊扩展的代币交易并行实现方法,其特征在于:所述UTXO交易验证算法具体步骤如下:根据UTXO Owner地址,检查所有输入UTXO的存在性,即是否都在对应UTXOOwner账户的UTXO

SET中;检查相同IssueAddress的所有输入UTXO的Value之和是否等于所有输出UTXO的Value之和;根据签名类型SIGHASH,检查输入UTXO的所有Owner对交易签名的正确性;检查输入UTXO是否可以解锁;在Owner的UTXO

SET中删除交易输入的UTXO,在Receiver的UTXO

SET中添加交易输出
的UTXO。5.根据权利要求4所述的基于以太坊扩展的代币交易并行实现方法,其特征在于:所述在智能合...

【专利技术属性】
技术研发人员:李晓风许金林赵赫马元一周桐盛念祖
申请(专利权)人:安徽中科晶格技术有限公司
类型:发明
国别省市:

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

1