一种区块链中以太坊三明治攻击检测器及其检测方法

文档序号:37345943发布日期:2024-03-18 18:20阅读:13来源:国知局
一种区块链中以太坊三明治攻击检测器及其检测方法

本发明属于区块链技,具体涉及区块链中以太坊三明治攻击检测器及其检测方法。


背景技术:

1、随着区块链技术的迅猛发展和去中心化应用的广泛推广,特别是在以太坊生态系统中,智能合约和区块链交易的安全性问题变得日益重要。智能合约是自动执行、控制或记录合法相关事件和行动的程序,通常部署在区块链平台如以太坊上。它们通过编程代码实现合约条款的自动化执行,大大提升了交易的效率和透明度。去中心化金融(decentralized finance,defi)——一种基于智能合约技术的金融服务形式,是智能合约的主要应用领域。在此背景下,三明治攻击则成为了一个不可忽视的安全风险。

2、三明治攻击(sandwichattack):一种抢先交易,主要针对defi协议和服务。在三明治攻击中,恶意交易者在他们选择的网络上寻找待处理交易,例如以太坊。三明治攻击的发生是在交易前和交易后各下一个订单。从本质上讲,攻击者会同时进行前置(front-run)和后置(back-run)交易,而原来的待处理交易则夹在中间。

3、三明治攻击是一种在去中心化金融和区块链环境中特别是在以太坊这样的智能合约平台上常见的攻击方式。这种攻击主要发生在去中心化交易所(简称dex)上的交易中,去中心化交易所是一种特殊的金融平台,它利用智能合约来实现金融服务的去中心化,即不依赖于任何中央管理机构来进行交易和服务。三明治攻击通过在受害交易前通过提高gas费的手段执行前置交易购入代币提升价格,再在受害交易执行后执行后置交易卖出代币恢复价格,以此利用价格差异获利。geth(以太坊的一个用go语言编写的实现版本)作为一种以太坊区块链生态的执行客户端,是以太坊网络中最广泛使用的客户端之一,承担着运行完整节点、打包交易以及验证网络区块的重要职责。

4、因此在以太坊客户端中集成三明治攻击检测器实时识别这类攻击。能够增强网络对潜在威胁的防御能力,为整个以太坊网络的健康发展提供支撑,对提升以太坊网络的健壮性和安全性有重大意义。


技术实现思路

1、发明目的:本发明第一目的是提供一种区块链中以太坊三明治攻击检测器,第二目的是提供一种区块链中以太坊三明治攻击检测方法,用于检测以太坊区块链上的三明治攻击。

2、技术方案:一种区块链中以太坊三明治攻击检测器,该检测器利用以太坊行客户端中保存的交易信息和日志信息,通过遍历同一区块中的所有交易,分析每条交易中的哈希值、发送者、接收者和涉及到的交易对地址,从而确定该区块中构成三明治攻击的三条交易,当找到符合三明治攻击特征的三条交易时会将其涉及的哈希值、发送者、接收者、交易对地址、gas值和交易代币数量记录到检测日志中;

3、所述的三条交易是指攻击者的前置交易、受害者交易以及攻击者的后置交易。

4、进一步地,该检测器包括:

5、注册模块,用于定义检测组件的结构体,所述结构体内包括以太坊客户端实例、关闭方法、上下文参数传递和初始化标志四个字段,注册检测器方法初始化关闭方法、参数和初始化标志,检测器api注册方法注册检测器的应用程序接口,所述的检测器api注册方法包括定义接口的命名空间、版本、服务实例和可见性参数;

6、检测模块,通过命名空间中定义的detect字段将检测历史区块中的三明治攻击方法、检测同步区块中的三明治攻击方法和停止方法映射到检测器中。

7、进一步地,所述的注册模块在以太坊行客户端初始化阶段注册三明治攻击检测器的服务,在启动节点前首先调用注册检测器方法注册检测器结构体,然后通过api注册方法注册检测器接口,此时在以太坊客户端启动项中添加detect以使用检测器。

8、所述的检测器中,所述的检测模块中包括定义客户端初始化方法、停止函数、用于记录三明治攻击的交易细节结构体、创建日志文件方法和记录日志方法,客户端初始化方法确保在调用两种检测方法时创建以太坊客户端实例,停止函数用于停止两种检测方法,创建日志方法用调用时间作为文件名在指定位置创建日志文件,记录日志方法输出交易细节结构体并关闭文件避免内存占用。

9、所述检测器在检测最新区块中的三明治攻击方法参数只有上下文参数实例,首先调用客户端初始化方法,然后订阅最新区块头,获取最新区块头后创建日志,最后进入循环,首先检查是否收到取消检测的请求,如果没有收到就获取最新区块号然后将其作为参数传入检测逻辑方法;

10、所述检测器在检测历史区块中的三明治攻击方法有上下文参数、检测起始区块号和检测结束区块号,首先获取最新区块,然后检测输入是否合法,如果合法就调用创建日志方法,最后将起始和结束块号作为参数调用检测逻辑方法。

11、上述检测器包括执行一种区块链中以太坊三明治攻击检测方法,所述检测方法包括对以太坊行客户端中保存的交易信息和日志信息进行解析,具体还包括:

12、(1)将区块中从第一条交易到倒数第三条交易视为潜在的攻击者前置交易;

13、(2)攻击者前置交易解析,确定其是否为普通转账交易还是合约调用;

14、(3)在攻击者前置交易后的交易内寻找符合条件的受害者交易,通过对比攻击者前置交易和受害者交易的交易哈希来确定其中是否是两笔不同的交易,然后检查这两笔交易涉及的交易对信息,如果这两笔交易涉及到的交易对相同,表明可能找到了受害者交易;

15、(4)遍历受害者交易后的交易来确定攻击者后置交易,如果攻击者前置交易和攻击者后置交易的哈希值不同,发送者、接收者以及代币交易对相同,则相同三个交易视为符合三明治攻击定义的攻击者前置交易、受害者交易和攻击者后置交易。

16、进一步地,所述方法对于交易信息的解析是通过获取交易哈希值、发送者和接收者的地址,并且通过交易哈希值获取交易的收据,将收据实例作为参数调用解析收据日志方法获取交易对、输入输出代币数量和gas费值。

17、步骤(2)所述的攻击者前置交易解析是通过输入信息来判断,如果输入信息字段非空,表明交易涉及合约调用;在确定攻击者前置交易为合约调用,进一步解析交易和日志信息;

18、如果交易涉及去中心化交易所的交换代币方法,则表明该交易是发生在去中心化交易所的事件。

19、进一步地,攻击者前置交易解析过程包括将收据日志中十六进制输入字段中每32位解析成一个十进制参数,在解析收据日志中解析代币输入输出数量。

20、更进一步地,所述的检测方法将三明治攻击定义为在同一区块中的相邻12笔交易内,发生攻击者前置交易、受害者交易和攻击者后置交易这三种交易,就将其被视为三明治攻击;

21、所述方法在攻击者前置交易后的6个交易内寻找符合条件的受害者交易,通过对比攻击者前置交易和受害者交易的交易哈希来确定这是否是两笔不同的交易,然后遍历受害者交易后的6个交易来确定攻击者后置交易。

22、有益效果:与现有技术相比,本发明能够在三明治攻击检测器集成至以太坊全节点,提高了处理速度,同时显著增强了以太坊生态系统的安全性和稳定性。通过直接在以太坊行客户端中集成检测器,本发明大幅减少了数据传输和处理的延迟,实现了对区块中交易的实时分析,使得快速识别和响应潜在的三明治攻击成为可能。此外,这种集成方法有效地提升了全节点监控网络交易的能力,及时防御安全威胁,不仅保护了交易参与者的资产安全,也为整个以太坊网络提供了一个更加安全和稳固的交易环境。

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