mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
183 lines
9.6 KiB
Markdown
183 lines
9.6 KiB
Markdown
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
## 基本概念
|
||
|
||
- **智能合约** 被定义为在区块链上执行的程序,当满足特定条件时,自动化协议执行,无需中介。
|
||
- **去中心化应用(dApps)** 基于智能合约构建,具有用户友好的前端和透明、可审计的后端。
|
||
- **代币与币** 区分开来,币作为数字货币,而代币在特定上下文中代表价值或所有权。
|
||
- **实用代币** 授予对服务的访问权限,**安全代币** 表示资产所有权。
|
||
- **DeFi** 代表去中心化金融,提供无中央权威的金融服务。
|
||
- **DEX** 和 **DAO** 分别指去中心化交易平台和去中心化自治组织。
|
||
|
||
## 共识机制
|
||
|
||
共识机制确保区块链上安全和一致的交易验证:
|
||
|
||
- **工作量证明(PoW)** 依赖计算能力进行交易验证。
|
||
- **权益证明(PoS)** 要求验证者持有一定数量的代币,相较于PoW减少能耗。
|
||
|
||
## 比特币基础知识
|
||
|
||
### 交易
|
||
|
||
比特币交易涉及在地址之间转移资金。交易通过数字签名进行验证,确保只有私钥的拥有者可以发起转账。
|
||
|
||
#### 关键组件:
|
||
|
||
- **多重签名交易** 需要多个签名来授权交易。
|
||
- 交易由 **输入**(资金来源)、**输出**(目的地)、**费用**(支付给矿工)和 **脚本**(交易规则)组成。
|
||
|
||
### 闪电网络
|
||
|
||
旨在通过允许在一个通道内进行多笔交易来增强比特币的可扩展性,仅将最终状态广播到区块链。
|
||
|
||
## 比特币隐私问题
|
||
|
||
隐私攻击,如 **共同输入所有权** 和 **UTXO找零地址检测**,利用交易模式。策略如 **混合器** 和 **CoinJoin** 通过模糊用户之间的交易链接来提高匿名性。
|
||
|
||
## 匿名获取比特币
|
||
|
||
方法包括现金交易、挖矿和使用混合器。**CoinJoin** 混合多笔交易以复杂化可追溯性,而 **PayJoin** 将CoinJoins伪装成常规交易以增强隐私。
|
||
|
||
# 比特币隐私攻击
|
||
|
||
# 比特币隐私攻击总结
|
||
|
||
在比特币的世界中,交易的隐私和用户的匿名性常常是关注的主题。以下是攻击者可能通过几种常见方法破坏比特币隐私的简化概述。
|
||
|
||
## **共同输入所有权假设**
|
||
|
||
由于涉及的复杂性,不同用户的输入在单笔交易中组合的情况通常很少。因此,**同一交易中的两个输入地址通常被假定属于同一所有者**。
|
||
|
||
## **UTXO找零地址检测**
|
||
|
||
UTXO,或 **未花费交易输出**,必须在交易中完全花费。如果只有一部分发送到另一个地址,剩余部分将转到一个新的找零地址。观察者可以假设这个新地址属于发送者,从而损害隐私。
|
||
|
||
### 示例
|
||
|
||
为减轻此问题,混合服务或使用多个地址可以帮助模糊所有权。
|
||
|
||
## **社交网络与论坛曝光**
|
||
|
||
用户有时在网上分享他们的比特币地址,使得 **很容易将地址与其所有者关联**。
|
||
|
||
## **交易图分析**
|
||
|
||
交易可以被可视化为图形,揭示基于资金流动的用户之间的潜在连接。
|
||
|
||
## **不必要输入启发式(最佳找零启发式)**
|
||
|
||
该启发式基于分析具有多个输入和输出的交易,以猜测哪个输出是返回给发送者的找零。
|
||
|
||
### 示例
|
||
```bash
|
||
2 btc --> 4 btc
|
||
3 btc 1 btc
|
||
```
|
||
如果添加更多输入使得变化输出大于任何单一输入,它可能会混淆启发式分析。
|
||
|
||
## **强制地址重用**
|
||
|
||
攻击者可能会向之前使用过的地址发送少量资金,希望收款人将这些资金与未来交易中的其他输入合并,从而将地址链接在一起。
|
||
|
||
### 正确的钱包行为
|
||
|
||
钱包应避免使用在已经使用过的空地址上收到的硬币,以防止这种隐私泄露。
|
||
|
||
## **其他区块链分析技术**
|
||
|
||
- **确切支付金额:** 没有找零的交易很可能是在两个由同一用户拥有的地址之间进行的。
|
||
- **整数金额:** 交易中的整数金额表明这是一次支付,而非整数输出很可能是找零。
|
||
- **钱包指纹识别:** 不同的钱包具有独特的交易创建模式,允许分析师识别所使用的软件,并可能识别找零地址。
|
||
- **金额与时间相关性:** 公开交易时间或金额可能使交易可追踪。
|
||
|
||
## **流量分析**
|
||
|
||
通过监控网络流量,攻击者可以潜在地将交易或区块与IP地址关联,从而危及用户隐私。如果一个实体运营多个比特币节点,这种情况尤其明显,增强了他们监控交易的能力。
|
||
|
||
## 更多
|
||
|
||
有关隐私攻击和防御的全面列表,请访问 [Bitcoin Privacy on Bitcoin Wiki](https://en.bitcoin.it/wiki/Privacy)。
|
||
|
||
# 匿名比特币交易
|
||
|
||
## 匿名获取比特币的方法
|
||
|
||
- **现金交易:** 通过现金获取比特币。
|
||
- **现金替代品:** 购买礼品卡并在线兑换比特币。
|
||
- **挖矿:** 通过挖矿获得比特币是最私密的方法,尤其是单独进行时,因为挖矿池可能知道矿工的IP地址。 [Mining Pools Information](https://en.bitcoin.it/wiki/Pooled_mining)
|
||
- **盗窃:** 理论上,盗窃比特币可能是另一种匿名获取比特币的方法,尽管这是非法的且不推荐。
|
||
|
||
## 混合服务
|
||
|
||
通过使用混合服务,用户可以**发送比特币**并**收到不同的比特币作为回报**,这使得追踪原始所有者变得困难。然而,这需要对服务的信任,以确保其不保留日志并实际返回比特币。替代的混合选项包括比特币赌场。
|
||
|
||
## CoinJoin
|
||
|
||
**CoinJoin** 将来自不同用户的多个交易合并为一个,复杂化了任何试图将输入与输出匹配的过程。尽管其有效性,具有独特输入和输出大小的交易仍然可能被追踪。
|
||
|
||
可能使用 CoinJoin 的示例交易包括 `402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a` 和 `85378815f6ee170aa8c26694ee2df42b99cff7fa9357f073c1192fff1f540238`。
|
||
|
||
有关更多信息,请访问 [CoinJoin](https://coinjoin.io/en)。有关以太坊上的类似服务,请查看 [Tornado Cash](https://tornado.cash),它通过矿工的资金匿名化交易。
|
||
|
||
## PayJoin
|
||
|
||
**PayJoin**(或 P2EP)是 CoinJoin 的一种变体,它将两个参与方(例如,客户和商家)之间的交易伪装成常规交易,而没有 CoinJoin 特有的相等输出特征。这使得检测变得极其困难,并可能使交易监控实体使用的共同输入所有权启发式失效。
|
||
```plaintext
|
||
2 btc --> 3 btc
|
||
5 btc 4 btc
|
||
```
|
||
像上述交易可以是 PayJoin,增强隐私,同时与标准比特币交易无区别。
|
||
|
||
**PayJoin 的使用可能会显著破坏传统监控方法**,使其成为追求交易隐私的一个有前景的发展。
|
||
|
||
# 加密货币隐私的最佳实践
|
||
|
||
## **钱包同步技术**
|
||
|
||
为了维护隐私和安全,与区块链同步钱包至关重要。有两种方法脱颖而出:
|
||
|
||
- **全节点**:通过下载整个区块链,全节点确保最大隐私。所有曾经进行的交易都存储在本地,使对手无法识别用户感兴趣的交易或地址。
|
||
- **客户端区块过滤**:此方法涉及为区块链中的每个区块创建过滤器,使钱包能够识别相关交易,而不向网络观察者暴露特定兴趣。轻量级钱包下载这些过滤器,仅在与用户地址匹配时获取完整区块。
|
||
|
||
## **利用 Tor 实现匿名性**
|
||
|
||
鉴于比特币在点对点网络上运行,建议使用 Tor 来掩盖您的 IP 地址,在与网络互动时增强隐私。
|
||
|
||
## **防止地址重用**
|
||
|
||
为了保护隐私,使用新地址进行每笔交易至关重要。重用地址可能会通过将交易链接到同一实体而危及隐私。现代钱包通过其设计来阻止地址重用。
|
||
|
||
## **交易隐私策略**
|
||
|
||
- **多笔交易**:将支付拆分为几笔交易可以模糊交易金额,阻碍隐私攻击。
|
||
- **避免找零**:选择不需要找零输出的交易可以通过干扰找零检测方法来增强隐私。
|
||
- **多个找零输出**:如果无法避免找零,生成多个找零输出仍然可以改善隐私。
|
||
|
||
# **门罗币:匿名性的灯塔**
|
||
|
||
门罗币满足数字交易中对绝对匿名性的需求,为隐私设定了高标准。
|
||
|
||
# **以太坊:燃料费和交易**
|
||
|
||
## **理解燃料费**
|
||
|
||
燃料费衡量在以太坊上执行操作所需的计算努力,以 **gwei** 定价。例如,一笔交易的费用为 2,310,000 gwei(或 0.00231 ETH),涉及燃料限制和基本费用,并向矿工提供小费以激励他们。用户可以设置最高费用,以确保他们不会支付过多,超出部分会退还。
|
||
|
||
## **执行交易**
|
||
|
||
以太坊中的交易涉及发送者和接收者,可以是用户或智能合约地址。它们需要支付费用并且必须被挖掘。交易中的关键信息包括接收者、发送者的签名、金额、可选数据、燃料限制和费用。值得注意的是,发送者的地址是从签名中推导出来的,因此在交易数据中不需要它。
|
||
|
||
这些实践和机制是任何希望参与加密货币,同时优先考虑隐私和安全的人的基础。
|
||
|
||
## 参考文献
|
||
|
||
- [https://en.wikipedia.org/wiki/Proof_of_stake](https://en.wikipedia.org/wiki/Proof_of_stake)
|
||
- [https://www.mycryptopedia.com/public-key-private-key-explained/](https://www.mycryptopedia.com/public-key-private-key-explained/)
|
||
- [https://bitcoin.stackexchange.com/questions/3718/what-are-multi-signature-transactions](https://bitcoin.stackexchange.com/questions/3718/what-are-multi-signature-transactions)
|
||
- [https://ethereum.org/en/developers/docs/transactions/](https://ethereum.org/en/developers/docs/transactions/)
|
||
- [https://ethereum.org/en/developers/docs/gas/](https://ethereum.org/en/developers/docs/gas/)
|
||
- [https://en.bitcoin.it/wiki/Privacy](https://en.bitcoin.it/wiki/Privacy#Forced_address_reuse)
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|