本文探讨了在以太坊上进行安全漏洞赏金活动时维护隐私的重要性,并分析了攻击者可能利用的各种威胁媒介,例如RPC供应商、网络元数据、其他赏金猎人、项目方本身和物理盗窃。文章还提供了多种解决方案,如使用Tor、私有RPC、本地节点、OPSEC最佳实践、本地分叉链、轮换钱包、混淆行为模式以及使用强化的操作系统/VM,以减少隐私泄露的风险。
简而言之:<br> 你面临的威胁:
减少你足迹的解决方案:
anvil
进行分叉<TLDR>
你在漏洞赏金方面的进展越多,你就会越后悔没有从一开始就考虑隐私。
我们都知道门罗币嵌入了增加隐私的特定组件,这包括 bulletproofs、RingCTs、隐身地址、Dandelion++。
总结门罗币的特性和相关的风险:
风险: | 由 XMR 特性缓解: |
---|---|
👁️🗨️ 链上分析以追踪发送者/接收者 | RingCT + 隐身地址 |
💸 价值关联以取消匿名化使用 | Bulletproof++ + RingCT |
🕵️ IP 追踪以取消匿名化发送者 | Dandelion++,Tor/I2P |
🧠 从行为(KYC,地址重用)重新识别 | 隐身地址 + 良好的 OPSEC |
🧮 通过已知的 UTXO 大小进行金额分析 | Bulletproof++ (范围证明) |
<br>
门罗币通过保护你的链上和网络上的交易来处理一半的战斗。但另外 50% 是你的 OPSEC。
相比之下,以太坊没有内置的隐私。
每笔交易都是公开的、永久的且可链接的,除非你添加外部隐私层。这是一张以太坊的普通用户图。
<img width="842" height="862" alt="Ethereum usage drawio (1)" src="https://github.com/user-attachments/assets/39d8cf7f-dcae-48d3-872b-33281974a0db" />
基于该图,我们了解了隐私的直接挑战是:
Infura 可以构建机器学习模型来跟踪可疑行为:早期漏洞利用模拟、抢先交易模式或异常操作码使用。
这里我看到了一些东西,你应该绝对避免!
私下发送 ETH 相对简单。
你可以使用像 Infura 这样的 RPC 提供商,前提是你已经使用匿名帐户注册(例如,使用匿名电子邮件地址)。
##如何使用 Tor 和 Curl 私下发送 ETH
##解决方案 TOR
curl --socks5-hostname 127.0.0.1:9050 \
https://mainnet.infura.io/v3/YOUR_PROJECT_ID \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_sendRawTransaction",
"params": [
"0xf86b808504a817c80082520894d46e8dd67c5d32be8058bb8eb970870f0724456788016345785d8a00008025a0fc..."
],
"id": 1
}'
但是,如果你想与合约互动呢?那就变得棘手了——尤其是当 dApp 使用多重调用来抽象复杂性时。
场景:你使用 MetaMask 构建一个 tx,离线签名,然后通过 Tor 匿名广播。
<img width="801" height="638" alt="scenario eth drawio" src="https://github.com/user-attachments/assets/b7c92310-18aa-497a-a5e0-a57fd1cf4770" />
这种方法是有缺陷的:
专业提示:使用一次性钱包,通过 TOR 路由流量,并在与 dApp 交互时连接到自定义 RPC 提供商。这使你可以安全地观察复杂交易是如何构建的——帮助你在使用 web3.js
或 ethers.js
构建自己的 tx 之前,对智能合约行为进行逆向工程。
//为每个漏洞赏金审计创建一次性钱包
//解决方案:一次性钱包
const wallet = ethers.Wallet.createRandom();
以下是一些易于设置的漏洞赏金解决方案 - 限制暴露。
解决方案 1: 使用具有一次性帐户的私有 RPC 提供程序克隆本地区块链。[易于设置]
##解决方案:私有 RPC 提供程序 + TOR + 无日志
torsocks anvil \
--fork https://cloudflare-eth.com \
--fork-block-number 19000000 \
--no-storage-caching \
--silent
缓解的威胁:地址跟踪 - RPC 提供程序日志关联(无 api 密钥)
解决方案 2: 具有自定义快照的私有分叉网络 [易于设置] 这也便于你稍后恢复工作。
##解决方案:避免过多的 RPC 调用。
anvil --dump-state snapshot.json
anvil --state snapshot.json
缓解的威胁:RPC 提供程序日志关联
解决方案 3: 用于隔离测试的自定义合约镜像 [易于设置] 无需分叉主网,而是在本地链上部署合约。这非常强大,因为你根本没有执行任何 RPC 调用。
1 - 去 github 并使用现有合约克隆 repo
2 - 使用 anvil --silent --block-time 0 -> 部署 eth 区块链
3 - anvil &
forge create src/Target.sol:TargetContract \
--rpc-url http://localhost:8545 \
--constructor-args "0xFeed" "0xToken" -> 在你的本地链上部署
缓解的威胁:RPC 日志关联(无分叉 = 零 RPC 调用)- 外部服务依赖(完全脱机测试)
解决方案 4: 使用你自己的完整节点进行测试 [设置成本高]
## 克隆 Geth
git clone https://github.com/ethereum/go-ethereum.git
cd go-ethereum
make geth
## 初始化数据目录(可选的自定义创世用于测试)
./build/bin/geth init genesis.json --datadir $HOME/.ethereum
## 启动你的完整节点(主网或测试网)
./build/bin/geth \
--datadir $HOME/.ethereum \
--http \
--http.addr 127.0.0.1 \
--http.port 8545 \
--http.api "eth,net,web3,debug,txpool" \
--http.corsdomain "*" \
--syncmode full \
--cache 4096 \
--ipcdisable \
--allow-insecure-unlock
你现在可以:
解决方案 5: 报告策略
这对于实时关键发现非常重要
- 不要透露研究地址或资金来源
- 考虑:
- pgp 加密消息
- 一次性电子邮件
- 可转发的 eth 钱包
- 通过 VPN/Tor 提交
- 基于非 KYC 的奖励地址(例如,Tornado-washed)
缓解的威胁:通过地址聚类进行去匿名化 - 来自已知身份的报复或诉讼风险
奖励解决方案 6: 通过容器隔离环境 [中等设置难度]
在隔离的环境中运行你所有的工具和测试链(例如,Anvil、Geth、Foundry)——专用 VM、Qubes OS AppVM 或 Docker 容器。严格控制 I/O。
资源:trailofbits/eth-security-toolbox
docker run -it --rm \
--network none \
-v $PWD:/work \
foundry \
bash
## 容器内:
anvil --silent &
forge test
缓解的威胁:工具遥测(例如,Forge/Ganache/Hardhat 统计信息、自动更新 ping)+ 意外的互联网暴露(例如,依赖项下载暴露研究兴趣)
专业提示:如果需要,你可以在容器内与 Tor 集成,或者使用 --network none
完全阻止所有出口。
感谢你的阅读,为本项目加星以获取更多提示,我经常发布!
- 原文链接: github.com/Thomas-EDET/B...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!