.. | ||
README.md |
{% hint style="success" %}
AWSハッキングの学習と練習:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングの学習と練習:HackTricks Training GCP Red Team Expert (GRTE)
HackTricksのサポート
- サブスクリプションプランをチェック!
- 💬 Discordグループに参加するか、telegramグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksとHackTricks CloudのgithubリポジトリにPRを提出して、ハッキングトリックを共有してください。
基本的な概念
- スマートコントラクトは、特定の条件が満たされたときにブロックチェーン上で実行されるプログラムであり、仲介者なしで合意の実行を自動化します。
- **分散型アプリケーション(dApps)**は、スマートコントラクトに基づき、ユーザーフレンドリーなフロントエンドと透明で監査可能なバックエンドを備えています。
- トークン&コインは、コインがデジタル通貨として機能するのに対し、トークンは特定の文脈での価値や所有権を表します。
- ユーティリティトークンはサービスへのアクセスを提供し、セキュリティトークンは資産の所有権を示します。
- DeFiは分散型金融を意味し、中央機関なしで金融サービスを提供します。
- DEXとDAOは、それぞれ分散型取引所プラットフォームと分散型自治組織を指します。
コンセンサスメカニズム
コンセンサスメカニズムは、ブロックチェーン上での安全で合意されたトランザクション検証を確保します:
- **Proof of Work(PoW)**は、トランザクションの検証に計算能力を依存します。
- **Proof of Stake(PoS)**は、一定量のトークンを保持することを要求し、PoWに比べてエネルギー消費を削減します。
Bitcoinの基本
トランザクション
Bitcoinのトランザクションはアドレス間で資金を移動することを含みます。トランザクションはデジタル署名によって検証され、プライベートキーの所有者のみが送金を開始できるようにします。
主要な構成要素:
- マルチシグネチャトランザクションは、トランザクションを承認するために複数の署名が必要です。
- トランザクションにはinputs(資金の出所)、outputs(送信先)、fees(マイナーへの支払い)、およびscripts(トランザクションのルール)が含まれます。
Lightning Network
Bitcoinのスケーラビリティを向上させることを目的とし、チャネル内で複数のトランザクションを可能にし、最終状態のみをブロックチェーンにブロードキャストします。
Bitcoinのプライバシー懸念
共通の入力所有権やUTXOの変更アドレスの検出などのプライバシー攻撃は、トランザクションパターンを悪用します。ミキサーやCoinJoinなどの戦略は、ユーザー間のトランザクションリンクを不明瞭にすることで匿名性を向上させます。
匿名でBitcoinを取得する方法
現金取引、マイニング、およびミキサーの使用などの方法があります。CoinJoinは複数のトランザクションを混合して追跡を複雑化し、PayJoinはプライバシーを高めるためにCoinJoinを通常のトランザクションに偽装します。
2 btc --> 4 btc
3 btc 1 btc
強制アドレス再利用
攻撃者は、以前に使用されたアドレスに少額を送信し、受信者が将来の取引でこれらを他の入力と組み合わせることを期待し、アドレスをリンクさせることができます。
正しいウォレットの動作
このプライバシーリークを防ぐために、ウォレットは既に使用された空のアドレスに受け取ったコインを使用しないようにする必要があります。
その他のブロックチェーン分析技術
- 正確な支払額: おつりのない取引は、同じユーザーが所有する2つのアドレス間で行われたものである可能性が高いです。
- 丸められた数値: 取引内の丸められた数値は支払いを示し、丸められていない出力はおつりである可能性が高いです。
- ウォレットのフィンガープリント: 異なるウォレットには独自の取引作成パターンがあり、アナリストは使用されたソフトウェアやおつりのアドレスを特定することができます。
- 金額とタイミングの相関: 取引時刻や金額を開示することで、取引を追跡できるようになります。
トラフィック分析
ネットワークトラフィックを監視することで、攻撃者は取引やブロックをIPアドレスにリンクさせる可能性があり、ユーザーのプライバシーが危険にさらされます。特に、エンティティが多くのBitcoinノードを運営している場合、取引を監視する能力が向上します。
その他
プライバシー攻撃と防御の包括的なリストについては、Bitcoin WikiのBitcoin Privacyを参照してください。
2 btc --> 3 btc
5 btc 4 btc
暗号通貨におけるプライバシーのベストプラクティス
ウォレット同期技術
プライバシーとセキュリティを維持するために、ブロックチェーンとウォレットを同期させることが重要です。2つの主要な方法があります:
- フルノード:ブロックチェーン全体をダウンロードすることで、フルノードは最大限のプライバシーを確保します。これにより、これまでに行われたすべての取引がローカルに保存され、敵対者がユーザーが関心を持っている取引やアドレスを特定することが不可能になります。
- クライアントサイドのブロックフィルタリング:この方法では、ブロックチェーンの各ブロックにフィルターを作成し、ウォレットが特定の取引を識別できるようにしますが、具体的な関心事をネットワークの観察者に公開することはありません。軽量ウォレットはこれらのフィルターをダウンロードし、ユーザーのアドレスと一致する場合にのみ完全なブロックを取得します。
匿名性のためのTorの利用
Bitcoinがピアツーピアネットワーク上で動作していることを考慮すると、ネットワークとやり取りする際にIPアドレスをマスクするためにTorを使用することが推奨されます。
アドレス再利用の防止
プライバシーを保護するために、各取引ごとに新しいアドレスを使用することが重要です。アドレスの再利用は、取引を同じエンティティにリンクさせることでプライバシーを危険にさらす可能性があります。現代のウォレットは、デザインを通じてアドレスの再利用を desuourage しています。
取引プライバシーの戦略
- 複数の取引:支払いを複数の取引に分割することで、取引金額を不明瞭にし、プライバシー攻撃を阻止できます。
- おつりの回避:おつりが不要な取引を選択することで、おつりの検出方法を妨害してプライバシーを向上させます。
- 複数のおつり出力:おつりを回避することができない場合、複数のおつり出力を生成することでもプライバシーを向上させることができます。
Monero: 匿名性の象徴
Moneroはデジタル取引における絶対的な匿名性の必要性に対応し、プライバシーに高い基準を設定しています。
Ethereum: ガスと取引
ガスの理解
ガスは、Ethereum上で操作を実行するために必要な計算労力を測定し、gweiで価格設定されます。例えば、2,310,000 gwei(または0.00231 ETH)の取引には、ガスリミットとベース料金が含まれ、マイナーにインセンティブを与えるためのチップがあります。ユーザーは最大料金を設定して過払いを防ぎ、余剰分は返金されます。
取引の実行
Ethereumの取引には、送信者と受信者が関与し、ユーザーまたはスマートコントラクトのアドレスになります。手数料が必要であり、マイニングされる必要があります。取引データには、受信者、送信者の署名、値、オプションのデータ、ガスリミット、手数料などが含まれます。特筆すべきは、送信者のアドレスが署名から導かれるため、取引データにはそれが必要ありません。
これらのプラクティスとメカニズムは、プライバシーとセキュリティを重視しながら暗号通貨と関わりたいと考えているすべての人にとって基本的なものです。