{{#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}}