文章

TX独立验证工具调研

在以太坊生态中,对于“上链的交易”进行模拟校验(即模拟执行 / 仿真执行),可以帮助开发者、运维人员和用户提前发现潜在的高危操作,例如:调用黑名单合约、存在reentrancy漏洞、权限误用、资金流异常等。

1.常见思路

  1. 本地节点模拟执行(eth_call)

    • 通过 RPC 的 eth_call,在本地区块链节点上以“不真实提交”的方式执行待测交易,观察其结果和状态变更,判断是否有异常。

    • 可发现执行失败(revert)、异常gas消耗、返回值异常等问题。

    • 只能检测逻辑与合约层面,不涉及合约外的链上关联威胁。

  2. 高级模拟&交易仿真工具

    • 使用专用仿真引擎(如Tenderly、BlockSec Phalcon)模拟更复杂场景,包括多个交易、MEV攻击场景、复杂资金流分析等。

    • 可结合监控规则(如资金流向黑名单、跨合约权限检查)检测高危交易。

  3. 符号执行、静态分析和仪表化

    • 通过MythX、Slither、Echidna等工具对合约字节码或源码进行静态分析或符号执行,发现漏洞。

    • 可在合约部署前/后定期分析,发现高危调用点。

  4. 结合前端拦截与权限提示

    • 钱包(如MetaMask、Rabby)、DApp前端引入交易风险提示SDK(如Go+ Security),对用户即将发送的交易实时校验风险信息以及反诈黑名单敏感调用等安全预警。

2.工具调研

收集市面常见的三个知名度排名靠前的安全平台进行调研

核心定位对比

平台

主体定位

主要服务对象

GoPlus

去中心化的Web3安全基础设施,安全API

开发者、DApp用户、钱包

Tenderly

智能合约开发/运维与安全分析平台

开发者、项目运维

BlockSec

区块链安全公司,监控与防护、审计服务

项目方、机构、DeFi平台

主要功能对比

功能 / 平台

GoPlus

Tenderly

BlockSec

合约审计/检测

智能合约API检测、风险评分

持续监控、集成分析(非传统安全审计)

专业审计服务,漏洞复查报告

Web3安全API

提供各类安全API(地址/合约/Token/APK检测)

无(Tenderly重点在开发运维,非API层防护)

类似API(如Phalcon工具API)、主要为风控体系

交易监控与预警

支持交易风险检测(API)

交易追踪、仿真、预警;Replay/Simulate功能

Phalcon监控系统,高级预警(蜜罐/监控/阻断)

攻击拦截/防护

无(仅提供风险提示)

无,专注仿真/预警

主打链上实时拦截(Phalcon Block)、自动阻断机制

合约仿真与Debug

强大的合约仿真、状态回溯、可视化debug

Phalcon Enhance Trace、可视化trace、回溯攻击

用户/资产风控

地址风险画像、地址信誉API、资金流溯源

基于交易模拟的用户风险评估(非地址评级)

针对机构提供软硬件钱包安全管控、合规评级

攻击者情报/黑名单库

汇集海量黑名单库、地址灰度评分

拥有攻击者样本库、威胁情报数据

安全知识/行业赋能

公链免费数据开放、API便捷集成

提供开发工具链和快速调试平台

研究型报告、安全事件分析、实战复盘

开发者集成难度

API为主、无缝集成

SDK/API+Web操作、需要学习和适配

需要高度定制,大部分为B端/企业级合作

详细用例

Tenderly

  • 特色:专注于合约生命周期管理,提供一系列开发、运维和监控工具,重点服务开发者。

  • 代表产品:

    • 全链交易模拟与回放(Simulation/Replay)

    • 合约自动监控、自动告警

    • 合约可视化Debug、数据分析

  • 优点:开发友好,能极大提升开发、测试和调试效率。

  • 缺点:不直接聚焦黑产/攻击防御,更适合开发和持续监控。

用例:

请求:

回应:

分析:

可以看到模拟的返回数据非常非常详细,可以利用和判断的数据很多,平台的分析深度更深。

与 transaction 相关的安全点字段

这些字段可用于交易(transaction)风险识别和安全点检查:

  1. 地址类字段

    • srcTokendestToken:来源与目标代币合约地址,防假币/钓鱼合约

    • beneficiaryinitiatorpartner:收款方、发起方、参与方,防黑名单/假冒地址

  2. 金额/费率相关字段

    • srcAmounttoAmountexpectedAmountreceivedAmount:检测盗刷、大额异常、滑点损失

    • feePercentnetworkFeepercent:检测高额平台费或隐藏费用

  3. 正滑点与归属相关

    • noPositiveSlippagepositiveSlippageToUser:监控滑点收益实际归属,防平台“吃滑点”

  4. 复杂交易执行链相关

    • payloaddatacomponentsadaptertargetExchange

    • 检查复杂调用或路径分拆是否有恶意调用、资金跳转

 

GoPlus

  • 特色:API驱动、自动化程度高、主要聚焦Web3生态下的去中心化安全防护(钱包、DApp、Token、合约、URL检测等)。

  • 代表API:

    • Token安全检测API(黑名单、骗局检测、权限分析)

    • NFT安全API(钓鱼、仿冒识别)

    • 钱包安全API(钓鱼、风险地址识别)

  • 优点:集成简单,适合安全能力需要自动补全的上层应用。

  • 缺点:偏重风险标记与提示,不直接干预链上资产。

用例:

请求:

回应:

Security Items

Parameter

Description

Notice

Method Name

method

It describes the method name in ABI, for example, "transfer".

 

Parameter Type

type

It describes the parameter type in ABI, for example, "address", "uint256", and "bool".

 

Parameter Name

name

It describes the parameter name in ABI, for example "_from", "_to", "_value".

 

Input Data

input

It describes the input data in ABI.

 

Address Info

address_info

It describes the info about the address as a parameter.

The info includes: (1) "is_contract" describes whether the address is a contract. "1" means true; "0" means false.

(2) "contract_name" describes the contract name if the address is a contract.

(3) "standard" describes the standard type of the contract. Example:"erc20".

(4) "symbol" describes the token symbol if the address is an ERC20 contract.

(5) "name" describes the token name if the address is an ERC20 contract.

(6) "malicious_address" describes whether the address is a suspected malicious contract.

"1" means true;

"0" means that we have not found malicious behavior of this address.

When the address is not a contract ("is_contract"=0), "contract_name", "standard", "symbol", and "name" will return "null".

When the address is a contract but not an erc20 contract, "standard", "symbol", and "name" will return "null".

Contract Name

contract_name

The name of the contract that the user is interacting with.

 

Contract Description

contract_description

Description of the contract.

 

Is Malicious Contract

malicious_contract

It tells if the contract that the user is interacting with is a malicious contract.

 

Signature Detail

signature_detail

It explains the function of the method.

 

Is Risky Signature

risky_signature

It tells if the transaction that users are signing contains risk.

Even non-malicious, commonly used, well-known contracts can be highly risky if not used properly.

Risk Detail

risk

It explains why the transaction that users are signing contains risk.

Even non-malicious, commonly used, well-known contracts can be highly risky if not used properly.

分析:

  1. method

    1. 方法名(如 transfer),可用于识别方法类型与常见风险(如授权、转账等)。

  2. type / name / input

    1. 参数类型、参数名及输入数据,可还原具体调用细节,有助于进一步判断意图和是否为异常行为。

      • address_infois_contract:判断目标地址是否是合约,防范向合约地址执行意外操作。

        • contract_name/standard/symbol/name:判断合约类型(ERC20、ERC721)、币种等,有助于判断资产种类与归属。

    • malicious_address:标记是否为恶意/可疑合约地址,快速拦截。

  3. contract_name / contract_description

    1. 合约名称及描述,可以辅助风控白名单/黑名单判断。

  4. malicious_contract

    1. 标记本次交互合约是否为恶意合约,重要的风控拦截信号。

  5. signature_detail

    1. 签名方法的说明,给出详细的功能描述,帮助后台对风险行为做深度解析(比如 Approve/Upgrade/DelegateCall)。

  6. risky_signature

    1. 提示本次签名/调用行为本身是否风险,即使对象合约是“安全”的,操作本身也可能风险极高(如全额授权)。

  7. risk

    1. 具体风险描述,便于风控系统自动/人工干预、告警、提示。


可以在后台进行优化的点:

  1. 历史地址/合约行为画像

    1. 当前接口仅标记是否恶意,如能增加历史风险行为次数、风险类型分布、近期被举报/拉黑频率等,将更有参考价值。

  2. 调用链追溯(这个可能不太好实现)

    1. 仅有本次 input,未体现此调用在更复杂交易链中的上下文关系。如有多层 DelegateCall 等攻击场景,风险可能被低估。

  3. 输入参数异常检测 如果提供 input 参数的典型取值范围或常见异常值识别,如极大/极小数额、非正常授权对象等,会更易实时发现黑天鹅风险。

  4. 新合约行为检测 是否标记“新部署/首次交互合约”,对还未建立信誉画像的地址应提升警惕。(如目前恶意库中无命中,也应有基本的防御/告警策略)

  5. 多签/管理员等特殊权限识别 是否对存在特殊权限设计的合约(如 ownerOnly、大额度多签、可随时升级合约等)给出部分风险警示。

BlockSec(暂无免费个人用接口)

  • 特色:顶尖安全团队,专注于重大安全事件预警、资产实时防护、行业深度研究。

  • 代表产品:

    • Phalcon Block(资产监控&主动拦截攻击系统)

    • 安全审计服务(人工为主,配合自动工具)

    • 安全应急响应、攻防演练

  • 优点:响应速度快,可进行大规模链上防护(包括实时拦截、蜜罐布控)。

  • 缺点:企业级服务为主,个人开发者用门槛较高。

许可协议:  CC BY 4.0