hacktricks/blockchain/blockchain-and-crypto-currencies/README.md

18 KiB
Raw Permalink Blame History

{% hint style="success" %} Вивчайте та практикуйте хакінг AWS: Навчання HackTricks AWS Red Team Expert (ARTE)
Вивчайте та практикуйте хакінг GCP: Навчання HackTricks GCP Red Team Expert (GRTE)

Підтримайте HackTricks
{% endhint %}

Основні концепції

  • Смарт-контракти визначаються як програми, які виконуються на блокчейні при виконанні певних умов, автоматизуючи виконання угод без посередників.
  • Децентралізовані додатки (dApps) базуються на смарт-контрактах, маючи зручний для користувача фронтенд та прозорий, перевіряємий бекенд.
  • Токени та монети різняться тим, що монети служать як цифрові гроші, тоді як токени представляють вартість або власність у конкретних контекстах.
  • Утилітарні токени надають доступ до послуг, а Безпечні токени позначають власність активів.
  • DeFi означає Децентралізовану Фінансову систему, що пропонує фінансові послуги без центральних органів.
  • DEX та DAOs вказують на Децентралізовані платформи обміну та Децентралізовані автономні організації відповідно.

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

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

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

Основи Bitcoin

Транзакції

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

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

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

Мережа Lightning

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

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

Атаки на приватність, такі як Власність спільного входу та Виявлення адреси зміни UTXO, використовують шаблони транзакцій. Стратегії, такі як Міксери та CoinJoin, покращують анонімність, приховуючи зв'язки транзакцій між користувачами.

Анонімне отримання Bitcoin

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

2 btc --> 4 btc
3 btc     1 btc

Примусове Повторне Використання Адрес

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

Правильна Поведінка Гаманця

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

Інші Техніки Аналізу Блокчейну

  • Точні Суми Платежів: Транзакції без здачі ймовірно здійснюються між двома адресами, що належать одному користувачеві.
  • Круглі Числа: Кругле число в транзакції вказує на платіж, а некруглий вихід ймовірно є здачею.
  • Відбиток Гаманця: Різні гаманці мають унікальні шаблони створення транзакцій, що дозволяє аналітикам ідентифікувати використане програмне забезпечення та, можливо, адресу здачі.
  • Кореляція Суми та Часу: Розголошення часу або сум може зробити транзакції відстежуваними.

Аналіз Трафіку

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

Додатково

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

Анонімні Транзакції Bitcoin

Способи Отримання Біткоїнів Анонімно

  • Готівкові Транзакції: Отримання біткоїнів за допомогою готівки.
  • Альтернативи Готівці: Придбання подарункових карток та їх обмін онлайн на біткоїни.
  • Майнінг: Найбільш приватний спосіб заробляти біткоїни - це майнінг, особливо коли він виконується самостійно, оскільки майнінгові пули можуть знати IP-адресу майнера. Інформація про Майнінгові Пули
  • Крадіжка: Теоретично, крадіжка біткоїнів може бути ще одним способом отримати їх анонімно, хоча це незаконно та не рекомендується.

Сервіси Змішування

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

CoinJoin

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

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

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

PayJoin

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

2 btc --> 3 btc
5 btc     4 btc

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

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

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

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

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

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

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

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

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

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

Стратегії для конфіденційності транзакцій

  • Декілька транзакцій: Розбиття платежу на кілька транзакцій може затемнити суму транзакції, ускладнюючи атаки на конфіденційність.
  • Уникання здачі: Вибір транзакцій, які не потребують видачі здачі, підвищує конфіденційність, заважаючи методам виявлення здачі.
  • Декілька виходів здачі: Якщо уникнути здачі неможливо, генерація декількох виходів здачі все ще може покращити конфіденційність.

Monero: Стягнення анонімності

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

Ethereum: Газ та Транзакції

Розуміння Газу

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

Виконання Транзакцій

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

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

References