Блокчейн та криптовалюти

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks

Основні поняття

  • Smart Contracts визначаються як програми, що виконуються на блокчейні при виконанні певних умов, автоматизуючи укладення угод без посередників.
  • Decentralized Applications (dApps) базуються на smart contracts і мають зручний фронтенд та прозорий, піддаваний аудиту бекенд.
  • Tokens & Coins розрізняються тим, що coins слугують цифровими грошима, тоді як tokens представляють вартість або право власності в певному контексті.
  • Utility Tokens дають доступ до сервісів, а Security Tokens означають право власності на активи.
  • DeFi — Decentralized Finance, що надає фінансові послуги без центральних органів.
  • DEX та DAOs позначають Decentralized Exchange Platforms та Decentralized Autonomous Organizations відповідно.

Механізми консенсусу

Механізми консенсусу забезпечують безпечну та погоджену валідацію транзакцій у блокчейні:

  • Proof of Work (PoW) покладається на обчислювальну потужність для верифікації транзакцій.
  • Proof of Stake (PoS) вимагає від валідаторів утримання певної кількості токенів, зменшуючи енергоспоживання порівняно з PoW.

Основи Bitcoin

Транзакції

Транзакції Bitcoin передбачають передачу коштів між адресами. Транзакції верифікуються цифровими підписами, гарантуючи, що лише власник приватного ключа може ініціювати передачу.

Ключові компоненти:

  • Multisignature Transactions вимагають кількох підписів для авторизації транзакції.
  • Транзакції складаються з inputs (джерело коштів), outputs (призначення), fees (сплачуються майнерам) та scripts (правила транзакції).

Lightning Network

Має на меті підвищити масштабованість Bitcoin, дозволяючи виконувати кілька транзакцій у межах каналу, при цьому в блокчейн транслюється лише кінцевий стан.

Проблеми приватності в Bitcoin

Атаки на приватність, такі як Common Input Ownership та UTXO Change Address Detection, експлуатують закономірності в транзакціях. Стратегії на кшталт Mixers і CoinJoin покращують анонімність, ускладнюючи зв’язки між транзакціями та користувачами.

Анонімне придбання Bitcoin

Методи включають обмін за готівку, майнінг та використання mixers. CoinJoin змішує кілька транзакцій, щоб ускладнити трасування, тоді як PayJoin замасковує CoinJoin під виглядом звичайних транзакцій для підвищення приватності.

Атаки на приватність Bitcoin

Підсумок атак на приватність Bitcoin

У світі Bitcoin приватність транзакцій і анонімність користувачів часто викликають занепокоєння. Ось спрощений огляд кількох поширених методів, якими нападники можуть компрометувати приватність у Bitcoin.

Припущення про спільне володіння входами (Common Input Ownership)

Зазвичай рідко кілька входів від різних користувачів комбінуються в одній транзакції через складність. Тому два вхідні адреси в одній транзакції часто припускають належність одному власнику.

Виявлення адреси зміни UTXO (UTXO Change Address Detection)

UTXO, або Unspent Transaction Output, має бути витрачений повністю в транзакції. Якщо лише частина відправляється на іншу адресу, решта йде на нову адресу для зміни (change address). Спостерігачі можуть припустити, що ця нова адреса належить відправнику, що компрометує приватність.

Приклад

Щоб зменшити це, сервіси змішування або використання кількох адрес можуть допомогти ускладнити ідентифікацію власника.

Витік через соціальні мережі та форуми

Користувачі іноді діляться своїми Bitcoin-адресами онлайн, що робить легким зв’язати адресу з її власником.

Аналіз графа транзакцій

Транзакції можна візуалізувати як графи, що виявляє потенційні зв’язки між користувачами на основі потоку коштів.

Евристика непотрібного входу (Optimal Change Heuristic)

Ця евристика базується на аналізі транзакцій з кількома входами та виходами, щоб оцінити, який вихід є зміною, що повертається відправнику.

Приклад

2 btc --> 4 btc
3 btc     1 btc

Якщо додавання більшої кількості входів робить вихід здачі (change output) більшим за будь-який окремий вхід, це може ввести евристику в оману.

Forced Address Reuse

Зловмисники можуть надсилати невеликі суми на раніше використані адреси в надії, що отримувач у майбутніх транзакціях поєднає ці входи з іншими, тим самим пов’язуючи адреси між собою.

Correct Wallet Behavior

Гаманці повинні уникати використання монет, отриманих на вже використаних порожніх адресах, щоб запобігти цьому privacy leak.

Other Blockchain Analysis Techniques

  • Exact Payment Amounts: Транзакції без здачі (change) ймовірно відбуваються між двома адресами, що належать одному користувачу.
  • Round Numbers: Кругла сума в транзакції свідчить про те, що це платіж, а некруглий вихід імовірно є здачею.
  • Wallet Fingerprinting: Різні гаманці мають унікальні шаблони створення транзакцій, що дозволяє аналітикам ідентифікувати використовуване ПЗ і потенційно адресу здачі.
  • Amount & Timing Correlations: Розкриття часу або сум транзакцій може зробити їх відстежуваними.

Traffic Analysis

Шляхом моніторингу мережевого трафіку зловмисники потенційно можуть зв’язати транзакції або блоки з IP-адресами, підриваючи приватність користувачів. Це особливо вірогідно, якщо організація оперує великою кількістю Bitcoin-нод, що посилює її здатність спостерігати за транзакціями.

More

Для повного списку атак на приватність та засобів захисту відвідайте Bitcoin Privacy on Bitcoin Wiki.

Anonymous Bitcoin Transactions

Ways to Get Bitcoins Anonymously

  • Cash Transactions: Придбання bitcoin за готівку.
  • Cash Alternatives: Купівля подарункових карток і обмін їх онлайн на bitcoin.
  • Mining: Найбільш приватний метод заробітку bitcoin — майнінг, особливо при сольному майнінгу, оскільки майнінгові пули можуть знати IP-адресу майнера. Mining Pools Information
  • Theft: Теоретично, викрадення bitcoin могло б бути ще одним способом отримати його анонімно, хоча це незаконно і не рекомендовано.

Mixing Services

Використовуючи сервіс змішування, користувач може відправити bitcoins і отримати інші bitcoins натомість, що ускладнює відстеження первісного власника. Проте це вимагає довіри до сервісу, що він не зберігає логи і справді поверне bitcoin. Альтернативи змішуванню включають Bitcoin-казино.

CoinJoin

CoinJoin об’єднує кілька транзакцій від різних користувачів в одну, ускладнюючи завдання зіставлення входів з виходами. Незважаючи на свою ефективність, транзакції з унікальними розмірами входів і виходів все ще можуть бути потенційно відстежені.

Приклади транзакцій, які могли використовувати CoinJoin, включають 402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a та 85378815f6ee170aa8c26694ee2df42b99cff7fa9357f073c1192fff1f540238.

Для додаткової інформації відвідайте CoinJoin. Для схожого сервісу на Ethereum дивіться Tornado Cash, який анонімізує транзакції коштами майнерів.

PayJoin

Варіант CoinJoin, PayJoin (або P2EP), маскує транзакцію між двома сторонами (наприклад, клієнтом і продавцем) під звичайну транзакцію, без характерних для CoinJoin рівних виходів. Це робить її надзвичайно важкою для виявлення і може скомпрометувати common-input-ownership heuristic, яку використовують служби моніторингу транзакцій.

2 btc --> 3 btc
5 btc     4 btc

Транзакції, подібні до наведених вище, можуть бути PayJoin, що підвищує приватність, одночасно залишаючись не відрізненими від стандартних bitcoin-транзакцій.

Використання PayJoin може суттєво підірвати традиційні методи спостереження, що робить цей підхід перспективним у прагненні забезпечити приватність транзакцій.

Найкращі практики конфіденційності в криптовалютах

Техніки синхронізації гаманців

Щоб підтримувати приватність і безпеку, синхронізація гаманців із блокчейном є критичною. Виділяються два методи:

  • Повний вузол: Завантажуючи весь блокчейн, повний вузол забезпечує максимальну приватність. Усі коли-небудь здійснені транзакції зберігаються локально, що ускладнює для супротивників ідентифікацію того, які саме транзакції чи адреси цікавлять користувача.
  • Фільтрація блоків на боці клієнта: Цей метод передбачає створення фільтрів для кожного блоку в блокчейні, дозволяючи гаманцям виявляти релевантні транзакції без розкриття конкретних інтересів спостерігачам мережі. Легкі гаманці завантажують ці фільтри й запитують повні блоки лише коли знаходять співпадіння з адресами користувача.

Використання Tor для анонімності

Оскільки Bitcoin працює в мережі peer-to-peer, рекомендовано використовувати Tor для приховування вашої IP-адреси, що підвищує приватність під час взаємодії з мережею.

Запобігання повторному використанню адрес

Щоб захистити приватність, важливо використовувати нову адресу для кожної транзакції. Повторне використання адрес може скомпрометувати приватність, пов’язавши транзакції з однією й тією ж сутністю. Сучасні гаманці зазвичай не заохочують повторне використання адрес через свій дизайн.

Стратегії приватності транзакцій

  • Multiple transactions: Розділення платежу на кілька транзакцій може приховати суму транзакції, ускладнюючи атаки на приватність.
  • Change avoidance: Вибір транзакцій без виходів для решти підвищує приватність, ускладнюючи застосування методів виявлення change.
  • Multiple change outputs: Якщо уникнути change неможливо, створення кількох виходів для решти все одно може покращити приватність.

Monero: A Beacon of Anonymity

Monero відповідає потребі в абсолютній анонімності цифрових транзакцій, встановлюючи високий стандарт приватності.

Ethereum: Gas and Transactions

Understanding Gas

Gas вимірює обчислювальні витрати, необхідні для виконання операцій в Ethereum, ціною у gwei. Наприклад, транзакція вартістю 2,310,000 gwei (або 0.00231 ETH) включає gas limit і base fee, а також tip для стимулювання майнерів. Користувачі можуть встановити max fee, щоб не переплатити; надлишок повертається.

Executing Transactions

Транзакції в Ethereum включають відправника та отримувача, які можуть бути як користувацькими, так і адресами смарт-контрактів. Вони вимагають оплату комісії і повинні бути замайнені. Важливі поля транзакції включають отримувача, підпис відправника, суму, опціональні дані, gas limit та комісії. Зауважте, що адреса відправника виводиться з підпису, тому її не потрібно включати до даних транзакції.

Ці практики та механізми є основою для всіх, хто прагне взаємодіяти з криптовалютами, віддаючи пріоритет приватності та безпеці.

Value-Centric Web3 Red Teaming

  • Перерахуйте компоненти, що містять цінність (signers, oracles, bridges, automation), щоб зрозуміти, хто і як може переміщувати кошти.
  • Зіставте кожен компонент з відповідними тактиками MITRE AADAPT, щоб виявити шляхи ескалації привілеїв.
  • Репетируйте ланцюжки атак flash-loan/oracle/credential/cross-chain, щоб оцінити вплив і задокументувати передумови, що допускають експлуатацію.

Value Centric Web3 Red Teaming

Web3 Signing Workflow Compromise

  • Supply-chain tampering of wallet UIs може змінювати EIP-712 payloads прямо перед підписом, збираючи дійсні підписи для delegatecall-based proxy takeovers (наприклад, перезапис slot-0 Safe masterCopy).

Web3 Signing Workflow Compromise Safe Delegatecall Proxy Takeover

Smart Contract Security

  • Mutation testing для виявлення сліпих зон у тестових наборах:

Mutation Testing With Slither

Посилання

Експлуатація DeFi/AMM

Якщо ви досліджуєте практичну експлуатацію DEXes і AMM (Uniswap v4 hooks, rounding/precision abuse, flash‑loan amplified threshold‑crossing swaps), перегляньте:

Defi/AMM Hook Precision

Для мульти-активних зважених пулів, які кешують віртуальні баланси і можуть бути отруєні, коли supply == 0, вивчіть:

Defi Amm Virtual Balance Cache Exploitation

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks