Blockchain & Crypto Currencies
Last updated
Last updated
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
智能合约 被定义为在区块链上执行的程序,当满足特定条件时,自动执行协议,无需中介。
去中心化应用 (dApps) 基于智能合约,具有用户友好的前端和透明、可审计的后端。
代币与币 的区别在于,币作为数字货币,而代币在特定上下文中代表价值或所有权。
实用代币 授予对服务的访问权限,而 安全代币 表示资产所有权。
去中心化金融 (DeFi) 提供无中央权威的金融服务。
去中心化交易所 (DEX) 和 去中心化自治组织 (DAOs) 分别指去中心化交易平台和去中心化自治组织。
共识机制确保区块链上安全和一致的交易验证:
工作量证明 (PoW) 依赖计算能力进行交易验证。
权益证明 (PoS) 要求验证者持有一定数量的代币,相比 PoW 减少能耗。
比特币交易涉及在地址之间转移资金。交易通过数字签名进行验证,确保只有私钥的所有者可以发起转账。
关键组件:
多重签名交易 需要多个签名来授权交易。
交易由 输入(资金来源)、输出(目的地)、费用(支付给矿工)和 脚本(交易规则)组成。
旨在通过允许在一个通道内进行多次交易来增强比特币的可扩展性,仅将最终状态广播到区块链。
隐私攻击,如 共同输入所有权 和 UTXO 找零地址检测,利用交易模式。策略如 混合器 和 CoinJoin 通过模糊用户之间的交易链接来提高匿名性。
方法包括现金交易、挖矿和使用混合器。CoinJoin 混合多个交易以复杂化可追溯性,而 PayJoin 将 CoinJoins 伪装成常规交易以提高隐私。
在比特币的世界中,交易的隐私和用户的匿名性常常是关注的主题。以下是攻击者可能通过几种常见方法破坏比特币隐私的简化概述。
由于涉及的复杂性,来自不同用户的输入在单个交易中组合的情况通常很少。因此,同一交易中的两个输入地址通常被假定属于同一所有者。
UTXO,或 未花费交易输出,必须在交易中完全花费。如果只有一部分发送到另一个地址,剩余部分将转到一个新的找零地址。观察者可以假设这个新地址属于发送者,从而损害隐私。
为减轻此问题,混合服务或使用多个地址可以帮助模糊所有权。
用户有时在网上分享他们的比特币地址,使得 很容易将地址与其所有者关联。
交易可以被可视化为图形,揭示基于资金流动的用户之间的潜在连接。
该启发式基于分析具有多个输入和输出的交易,以猜测哪个输出是返回给发送者的找零。
如果添加更多输入使得变更输出大于任何单一输入,这可能会混淆启发式分析。
攻击者可能会向之前使用过的地址发送少量资金,希望收款人将这些与未来交易中的其他输入结合,从而将地址链接在一起。
钱包应避免使用在已经使用过的空地址上收到的币,以防止这种隐私泄露。
确切支付金额: 没有找零的交易很可能是在两个由同一用户拥有的地址之间进行的。
整数金额: 交易中的整数金额表明这是一次支付,而非整数输出很可能是找零。
钱包指纹识别: 不同的钱包具有独特的交易创建模式,允许分析师识别所使用的软件,并可能识别找零地址。
金额与时间相关性: 公开交易时间或金额可能使交易可追踪。
通过监控网络流量,攻击者可能将交易或区块与IP地址关联,从而危及用户隐私。如果一个实体运营多个比特币节点,这种情况尤其明显,增强了他们监控交易的能力。
有关隐私攻击和防御的全面列表,请访问 Bitcoin Privacy on Bitcoin Wiki。
现金交易: 通过现金获取比特币。
现金替代品: 购买礼品卡并在线兑换比特币。
挖矿: 通过挖矿获得比特币是最私密的方法,尤其是单独进行时,因为挖矿池可能知道矿工的IP地址。 挖矿池信息
盗窃: 理论上,盗窃比特币可能是另一种匿名获取的方法,尽管这是非法的且不推荐。
通过使用混合服务,用户可以发送比特币并收到不同的比特币作为回报,这使得追踪原始所有者变得困难。然而,这需要对服务的信任,以确保其不保留日志并实际返回比特币。替代的混合选项包括比特币赌场。
CoinJoin 将来自不同用户的多个交易合并为一个,复杂化了任何试图将输入与输出匹配的过程。尽管其有效性,具有独特输入和输出大小的交易仍然可能被追踪。
可能使用CoinJoin的示例交易包括 402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a
和 85378815f6ee170aa8c26694ee2df42b99cff7fa9357f073c1192fff1f540238
。
有关更多信息,请访问 CoinJoin。有关以太坊上的类似服务,请查看 Tornado Cash,它通过矿工的资金匿名化交易。
PayJoin(或P2EP)是CoinJoin的一种变体,在两个参与方(例如,客户和商家)之间伪装交易为常规交易,而没有CoinJoin特有的相等输出特征。这使得检测变得极其困难,并可能使交易监控实体使用的共同输入所有权启发式失效。
Transactions like the above could be PayJoin, enhancing privacy while remaining indistinguishable from standard bitcoin transactions.
PayJoin的使用可能会显著破坏传统监控方法,使其成为追求交易隐私的一个有前景的发展。
为了维护隐私和安全,与区块链同步钱包至关重要。有两种方法脱颖而出:
全节点:通过下载整个区块链,全节点确保最大隐私。所有曾经进行的交易都存储在本地,使对手无法识别用户感兴趣的交易或地址。
客户端区块过滤:此方法涉及为区块链中的每个区块创建过滤器,使钱包能够识别相关交易,而不向网络观察者暴露特定兴趣。轻量级钱包下载这些过滤器,仅在与用户地址匹配时获取完整区块。
鉴于比特币在点对点网络上运行,建议使用Tor来掩盖您的IP地址,在与网络交互时增强隐私。
为了保护隐私,使用新地址进行每笔交易至关重要。重用地址可能会通过将交易链接到同一实体而危及隐私。现代钱包通过其设计来阻止地址重用。
多笔交易:将支付拆分为几笔交易可以模糊交易金额,从而阻止隐私攻击。
避免找零:选择不需要找零输出的交易可以通过破坏找零检测方法来增强隐私。
多个找零输出:如果无法避免找零,生成多个找零输出仍然可以改善隐私。
Monero满足了数字交易中对绝对匿名性的需求,为隐私设定了高标准。
Gas衡量在以太坊上执行操作所需的计算努力,以gwei计价。例如,一笔费用为2,310,000 gwei(或0.00231 ETH)的交易涉及一个气体限制和一个基本费用,并向矿工提供小费以激励他们。用户可以设置最高费用,以确保他们不会支付过多,超出部分会被退还。
以太坊中的交易涉及发送者和接收者,可以是用户或智能合约地址。它们需要支付费用并且必须被挖掘。交易中的基本信息包括接收者、发送者的签名、价值、可选数据、气体限制和费用。值得注意的是,发送者的地址是从签名中推导出来的,因此在交易数据中不需要它。
这些实践和机制是任何希望参与加密货币,同时优先考虑隐私和安全的人的基础。
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)