Back to Blog

如何利用 Phalcon Explorer 2.0 精通 DeFi 交易分析

Phalcon
January 5, 2023
5 min read

BlockSec Phalcon 已升级至 2.0 版本。快来体验 Phalcon,深入探索每一笔交易!

Phalcon 是一款专为 DeFi 社区设计的强大交易浏览器。它提供有关交易调用流、余额变化和资金流的全面数据,并支持交易模拟功能。

Phalcon 旨在帮助开发人员、安全研究人员和交易者直观地理解交易。

本用户指南将向您介绍 Phalcon 的各项特性与功能。为了更好地演示,我们以以太坊上的这笔交易为例。

交易搜索

要搜索交易,请前往 Phalcon Explorer 主页并在搜索框中输入交易哈希。点击搜索结果即可查看交易解析详情页面。

Phalcon 目前支持解析以太坊、币安智能链 (BSC)、Polygon、Cronos 和 Avalanche C-Chain 上的交易。更多链正在适配中。

交易分析

交易结果页面针对每笔交易分为了四个主要模块。

  • 基本信息
  • 资金流
  • 余额变化
  • 调用流
  • 代码视图(新功能)

基本信息

Basic Info(基本信息)模块显示交易的基本信息,包括执行状态(Status)、发送方(Sender)和接收方(Receiver)。

内部交易数量(Internal transaction count)代表了内部交易的笔数,可用于判断交易的复杂程度。数值越高,交易越复杂。

右上角的 [Simulate This Tx] 按钮允许您快速模拟当前交易在不同区块高度 [BlockNum] 和区块内位置 [position in the block] 下的执行结果(交易模拟将在本节中详细说明)。

资金流

“资金流”(Fund Flow)模块以有向图的形式展示了交易中涉及的代币流转情况。不同的节点代表不同的账户地址,背景颜色用于区分交易的发送方或接收方。

有向边及其标注的信息展示了转账方向、代币种类以及转账金额。

  • 边上的不同编号用于区分代币转账的先后顺序。
  • 同颜色的边代表同一类代币的转账。
  • 两地址间同一代币的同向流转会被合并,在保留代币转账特性的同时简化资金流向图。

该模块还提供了右上角的缩放功能。资金流图表支持下载为 SVG 或 PNG 文件。

余额变化

Balance Changes(余额变化)模块显示了交易执行后,哪些账户的代币余额发生了变动。

  • 第一列列出了代币有净流入或流出的地址。
  • 第二列列出了代币信息,包括流入或流出地址的代币名称。
  • 第三列显示了余额的变化,即代币流入或流出的金额。
  • 最后一列显示了交易发生时,每个账户流入或流出的代币价值。

调用流

“调用流”(Invocation Flow)以树状结构展示交易中的函数调用顺序。

每个节点代表一次函数调用或事件触发,并包含调用栈深度、调用类型和调用参数等信息。模块顶部提供了搜索框以及用于调用类型和展开选项的下拉菜单,旨在辅助用户解读交易执行流程。

用户可以通过在搜索框中输入地址、函数签名或函数选择器来搜索并筛选所需的调用流信息。下图展示了通过 WETH 地址过滤后的结果。

用户可以使用下拉菜单选择调用栈深度。下图展示了选择调用栈深度为 2 后的调用流显示效果。

代码视图

在分析过程中,已验证合约的代码可以在代码视图中显示。我们的代码视图支持与追踪流(Trace)联动的不同布局,并支持独立的代码视图窗口。

  • 仅显示追踪(Trace Only):仅展示调用流(代码追踪)。

  • 追踪与代码联动(左右布局,Trace & Code LR):左侧显示调用流,右侧显示代码视图。当在调用流中点击某个已验证合约的调用时,代码视图的上半部分会显示该合约的源代码,下半部分会显示参数和返回值。

  • 追踪与代码联动(上下布局,Trace & Code TB):类似于左右布局,但追踪/代码视图的布局为上下排列而非左右排列。

  • 独立代码视图(Separate Code View):代码视图将在独立的浏览器标签页中打开,可移动至其他显示器(适合拥有多屏显示环境的用户)。

此外,用户可以在右侧代码视图顶部快速切换不同模块。系统还提供了该交易内的源代码查看历史记录,方便用户轻松查看其他相关源代码。

自定义功能

Phalcon 支持多种自定义设置,以提升分析效率。

自定义高亮

在分析过程中,可以为地址、函数和事件设置自定义颜色进行高亮显示。

自定义标签

可以为地址、函数和事件设置自定义标签。

自定义函数签名

对于合约的 calldata,可以提供自定义函数签名来解码数据。

交易模拟

模拟自定义交易

要模拟一笔交易,请点击 [Simulation] 按钮,并在“交易模拟器”面板中填写所需信息。点击 [Simulate] 按钮即可在详情页面查看模拟结果。您还可以通过点击 [Simulation] 按钮旁边的图标来切换网站主题。

模拟现有交易

交易详情页面右上角的 [Simulate This Tx] 按钮允许用户快速模拟当前交易在不同区块高度 [BlockNum] 和区块内位置 [position in the block] 下的执行结果。