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

文档序号:34907282发布日期:2023-07-27 19:07阅读:32来源:国知局
基于以太坊扩展的代币交易并行实现方法、介质及设备与流程

本发明涉及区块链,具体涉及一种基于以太坊扩展的代币交易并行实现方法、介质及设备。


背景技术:

1、起初,区块链主要应用于加密货币领域,即链原生代币(native token)的转账交易。随着区块链的发展,基于用户自定义的代币(custom token)交易(以下简称代币交易)得到了广泛应用,以太坊在2015年11月提出以太坊代币的接口标准erc20,是现在应用最广泛的代币标准。基础erc20合约规定了代币分发,代币转账以及查看账户代币余额三个接口函数。

2、与eth(以太坊的原生加密货币)不同,基于erc20实现的代币并不存入账户,而是仅存在于合约内部,如同独立的数据库。合约指定代币的规则,并保留一个映射用户余额的列表。

3、erc20合约有很多的应用场景:在稳定币领域,usdt使用erc20合约实现与美元挂钩的稳定币,市值已达到662.7亿美元,在证券型代币上,诸多defi的应用是基于erc20合约构建的。在效用性代币上,如游戏中的货币,忠诚度积分等功能也由erc20合约实现。

4、erc20合约受限于区块链的吞吐量低下,导致交易会产生高额的手续费和长时间的延迟。

5、有研究分析了一段时间内以太坊的所有交易,发现erc20合约交易占并行瓶颈的60%,其中最主要的原因是发币和转账交易会频繁修改用户的代币余额状态,这导致交易会产生严重的交易冲突。所以代币交易的执行速度不仅成为了代币交易吞吐量的瓶颈,更是成为了整个区块链系统的性能瓶颈。

6、另一方面,区别于现在主流区块链采用的账户(account)模型,以比特币为代表的utxo模型具备无状态的特性。支持交易并行执行,且理论上可以实现线性扩展。但受限于脚本语言和本身无状态的特性,导致utxo模型功能性弱于账户模型,较难实现代币交易。

7、专词解释

8、utxo记账模型:utxo,全称unspent transaction output,即未花费的交易输出。以比特币为代表的基于utxo记账模型的区块链系统会维护一个utxo-set状态,存储系统中的所有utxo。区块链交易以已经存在于utxo-set中的utxo为输入,以交易预期的utxo为输出,当验证交易合法后,会删除输入的utxo,再将输出的utxo加入到utxo-set中。

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


技术实现思路

1、本发明提出的一种基于以太坊扩展的代币交易并行实现方法及设备,通过扩展以太坊系统模型来实现代币交易的并行执行,可至少解决背景技术中的技术问题之一。

2、为实现上述目的,本发明采用了以下技术方案:

3、一种基于以太坊扩展的代币交易并行实现方法,通过计算机设备执行以下步骤,

4、在以太坊的账户状态中扩展状态utxo-set,保存账户拥有的utxo;

5、在以太坊交易类型上扩展utxo类型交易,对账户拥有的utxo进行操作;

6、在智能合约上扩展操作方法,使utxo交易的数据和以太坊原有的合约交易的数据可以相互转化;

7、通过以上三个扩展使以太坊成为了account-utxo混合区块链系统,并基于该系统完成代币交易的并行实现。

8、进一步地,所述步骤在以太坊的账户状态中扩展状态utxo-set,保存账户拥有的utxo,还包括,

9、对于只具备转账功能的utxo,只需要验证它的所有权,以及交易前后总量不变,这些都已经写入utxo交易的验证规则,无需通过锁定脚本进行限制,所以只具备转账功能的utxo的锁定脚本为空。

10、进一步地,所述在以太坊交易类型上扩展utxo类型交易,对账户拥有的utxo进行操作,还包括,

11、在以太坊交易中扩展utxo交易中,utxo交易与以太坊原有的合约交易都存储在交易树中,为便于执行与检索,在原有的交易树根节点下新增utxo交易根节点和合约交易根节点,两类交易按照原有以太坊对交易的存储规则,分别存储在两个树根下;

12、utxo交易各字段解释见表1:

13、表1utxo交易各字段的含义

14、

15、utxo交易格式是在锁定脚本lockingscript和面值value的基础上中新增分发地址字段即issueaddress,根据issueaddress将utxo分为两类:

16、原生代币:utxo的issueaddress为特殊值0,这种utxo的value字段与账户余额balance可进行相互转换;

17、自定义代币:utxo的issueaddress为分发该utxo的合约地址,这种utxo的value字段由用户定义,与账户余额无关;

18、节点在收到区块后,会先按照现在以太坊的执行规则,串行执行所有合约交易,然后再按照设定的utxo交易验证算法并行执行所有utxo交易。

19、进一步地,所述utxo交易验证算法具体步骤如下:

20、根据utxo owner地址,检查所有输入utxo的存在性,即是否都在对应utxoowner账户的utxo-set中;

21、检查相同issueaddress的所有输入utxo的value之和是否等于所有输出utxo的value之和;

22、根据签名类型sighash,检查输入utxo的所有owner对交易签名的正确性;

23、检查输入utxo是否可以解锁;

24、在owner的utxo-set中删除交易输入的utxo,在receiver的utxo-set中添加交易输出的utxo。

25、进一步地,所述在智能合约上扩展操作方法,使utxo交易的数据和以太坊原有的合约交易的数据可以相互转化,包括,

26、对账户状态新增的操作方法如下:

27、

28、在合约中执行issue()方法将utxo分发到指定账户中,执行recycle()方法将utxo输入到合约中,并在合约成功执行后从账户的utxo-set中删除输入utxo,通过这两个方法就可以完成状态数据与utxo之间的转换。

29、进一步地,还包括issue方法的执行步骤:

30、接收用于构建utxo的锁定脚本lockingscript和面值value,以及utxo是否为原生代币的判断符native;

31、写入分发utxo的锁定脚本lockingscript和面值value字段;

32、判断native,如果native为真,则utxo的issueaddress字段为特殊值0即分发的utxo为原生代币,若native为假则写入该合约的账户地址即分发的utxo为自定义代币;若所分发的utxo为原生代币,则在合约账户的余额balance中扣除utxo的面值value;

33、将组装好的utxo加入对应地址的utxo-set中。

34、进一步地,还包括address.recycle()执行算法步骤,

35、判断调用该方法的地址必须为调用合约的地址msg.sender;

36、根据输入的utxo地址,检查utxo的存在性,若存在则返回对应的utxo;

37、在合约成功执行后,会将合约通过recycle方法返回的全部utxo删除;

38、将其中原生代币的面值加到合约账户的余额balance中。

39、进一步地,所述代币交易的并行实现步骤如下,

40、在交易扩展中,对utxo进行扩展,增加了issueaddress分发地址字段,在utxo交易中,会判断相同issueaddress的所有输入utxo的value之和是否等于所有输出utxo的value之和;

41、在智能合约扩展中,issue方法会设置所分发utxo的issueaddress字段,若issueaddress为0,则所分发的utxo为原生代币,若issueaddress字段写入该合约地址,则所分发的utxo为自定义代币;

42、让不同issueaddress的utxo代表不同种类的代币,且这种属性无法在utxo交易中被伪造。

43、另一方面,本发明还公开一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上述方法的步骤。

44、再一方面,本发明还公开一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上方法的步骤。

45、由上述技术方案可知,针对背景技术中的技术问题,即为了解决以太坊中代币交易无法并行执行的问题,通过扩展以太坊系统模型提出一种可以并发执行的代币交易实现机制,本发明通过扩展以太坊的账户、交易、智能合约操作,将以太坊扩展为一个utxo-account混合区块链系统,并基于该混合系统提出一种可以并发执行的代币交易实现机制,即以实现utxo交易在以太坊上的并发执行,并实现utxo和合约状态数据间的相互转化,以此实现一个基于以太坊的混合区块链系统,并基于该混合系统提出代币交易的并行实现,从而解决了以太坊上代币交易的性能瓶颈问题。

46、具体的说,本发明的优点如下:

47、(1)通过对以太坊账户,交易的扩展,实现以太坊上utxo交易的并行执行。本发明将utxo分布式存储在账户中,相比于比特币将utxo存入全局的utxo-set,将utxo存入账户的utxo-set可以以账户为索引,加快utxo的查找速度,进而提升utxo交易的执行效率。

48、(2)通过扩展智能合约操作实现utxo模型与账户模型间的数据交互

49、(3)基于以太坊扩展的混合系统提出一种代币交易的实现方案,使代币交易可以通过utxo交易并行执行,提高代币交易的执行效率。由于代币交易是以太坊交易并行执行的性能瓶颈,所以代币交易并行可以提高以太坊系统总体的交易执行性能。

50、(4)通过混合系统的utxo交易,还可以将更多功能的交易由合约交易转换为utxo交易,使更多的交易可以通过utxo交易并行执行,可以进一步提高以太坊系统的交易执行效率。

51、(5)通过在utxo设置issueaddress(分发地址)字段,让utxo被分发utxo的合约锁定,无法在utxo交易中解除这种锁定。通过这样的性质,本发明提出了一种基于utxo的代币交易实现,交易与基础的utxo转账交易基本相同,实现十分简单(比其他几种基于utxo的代币实现方式简洁许多)。

52、(6)相比于erc20合约实现的代币交易,本发明的代币交易将代币以utxo的形式发放到账户的utxo-set中,账户对代币具有绝对的所有权。而对于erc20合约的代币交易,代币是存放在合约账户中的,即如果合约存在漏洞,其他人可能调用合约对其他账户所拥有的代币进行操作(攻击)。所以本发明的代币交易实现方案由更高的安全性。

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