mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 12:43:23 +00:00
181 lines
20 KiB
Markdown
181 lines
20 KiB
Markdown
{% hint style="success" %}
|
||
Вивчайте та практикуйте взлом AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Навчання HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
Вивчайте та практикуйте взлом GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Навчання HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>Підтримайте HackTricks</summary>
|
||
|
||
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
|
||
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами на **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Поширюйте хакерські трюки, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
|
||
|
||
</details>
|
||
{% endhint %}
|
||
|
||
|
||
## Основні концепції
|
||
|
||
- **Смарт-контракти** визначаються як програми, які виконуються на блокчейні при виконанні певних умов, автоматизуючи виконання угод без посередників.
|
||
- **Децентралізовані додатки (dApps)** базуються на смарт-контрактах, маючи зручний для користувача фронтенд та прозорий, перевіряємий бекенд.
|
||
- **Токени та монети** різняться тим, що монети служать як цифрові гроші, тоді як токени представляють вартість або власність у конкретних контекстах.
|
||
- **Утилітарні токени** надають доступ до послуг, а **Токени безпеки** позначають власність активів.
|
||
- **DeFi** означає Децентралізовану Фінансову систему, що пропонує фінансові послуги без центральних органів.
|
||
- **DEX** та **DAOs** посилаються на Децентралізовані платформи обміну та Децентралізовані автономні організації відповідно.
|
||
|
||
## Механізми консенсусу
|
||
|
||
Механізми консенсусу забезпечують безпечні та погоджені перевірки транзакцій на блокчейні:
|
||
- **Доказ роботи (PoW)** ґрунтується на обчислювальній потужності для перевірки транзакцій.
|
||
- **Доказ власності (PoS)** вимагає від валідаторів утримувати певну кількість токенів, зменшуючи споживання енергії порівняно з PoW.
|
||
|
||
## Основи Bitcoin
|
||
|
||
### Транзакції
|
||
|
||
Транзакції Bitcoin включають переказ коштів між адресами. Транзакції перевіряються за допомогою цифрових підписів, забезпечуючи, що лише власник приватного ключа може ініціювати перекази.
|
||
|
||
#### Ключові компоненти:
|
||
|
||
- **Транзакції з багатьма підписами** вимагають декількох підписів для авторизації транзакції.
|
||
- Транзакції складаються з **входів** (джерело коштів), **виходів** (призначення), **комісії** (сплачено гірникам) та **скриптів** (правила транзакції).
|
||
|
||
### Мережа Lightning
|
||
|
||
Мета полягає в покращенні масштабованості Bitcoin, дозволяючи кілька транзакцій у межах каналу, тільки транслюючи остаточний стан на блокчейн.
|
||
|
||
## Проблеми приватності Bitcoin
|
||
|
||
Атаки на приватність, такі як **Спільна власність входу** та **Виявлення адреси зміни UTXO**, використовують шаблони транзакцій. Стратегії, такі як **Міксери** та **CoinJoin**, покращують анонімність, приховуючи зв'язки транзакцій між користувачами.
|
||
|
||
## Анонімне отримання Bitcoin
|
||
|
||
Методи включають готівкові угоди, майнінг та використання міксерів. **CoinJoin** змішує декілька транзакцій для ускладнення відстежуваності, тоді як **PayJoin** маскує CoinJoin як звичайні транзакції для підвищення приватності.
|
||
|
||
|
||
# Атаки на приватність Bitcoin
|
||
|
||
# Огляд атак на приватність Bitcoin
|
||
|
||
У світі Bitcoin приватність транзакцій та анонімність користувачів часто є предметом обурення. Ось спрощений огляд кількох загальних методів, за допомогою яких атакувальники можуть порушити приватність Bitcoin.
|
||
|
||
## **Припущення про спільну власність входу**
|
||
|
||
Зазвичай рідко відбувається комбінування входів від різних користувачів в одній транзакції через складність процесу. Таким чином, **два вхідні адреси в одній транзакції часто вважаються належними одному власнику**.
|
||
|
||
## **Виявлення адреси зміни UTXO**
|
||
|
||
UTXO, або **Невитрачений вихід транзакції**, повинен бути повністю витрачений у транзакції. Якщо лише частина нього відправляється на іншу адресу, залишок йде на нову адресу зміни. Спостерігачі можуть припустити, що ця нова адреса належить відправнику, порушуючи приватність.
|
||
|
||
### Приклад
|
||
Для пом'якшення цього, служби змішування або використання декількох адрес можуть допомогти приховати власність.
|
||
|
||
## **Викладення в соціальних мережах та форумах**
|
||
|
||
Користувачі іноді публікують свої адреси Bitcoin в Інтернеті, що робить його **легким для посилання адреси на її власника**.
|
||
|
||
## **Аналіз графіка транзакцій**
|
||
|
||
Транзакції можуть бути візуалізовані у вигляді графіків, розкриваючи потенційні зв'язки між користувачами на основі потоку коштів.
|
||
|
||
## **Евристика зайвого входу (Оптимальна евристика зміни)**
|
||
|
||
Ця евристика базується на аналізі транзакцій з декількома входами та виходами для вгадування, який вихід є зміною, що повертається відправнику.
|
||
|
||
### Приклад
|
||
```bash
|
||
2 btc --> 4 btc
|
||
3 btc 1 btc
|
||
```
|
||
## **Примусове Повторне Використання Адрес**
|
||
|
||
Атакувальники можуть надсилати невеликі суми на раніше використані адреси, сподіваючись, що отримувач поєднає їх з іншими входами у майбутніх транзакціях, тим самим пов'язуючи адреси між собою.
|
||
|
||
### Правильна Поведінка Гаманця
|
||
Гаманці повинні уникати використання монет, отриманих на вже використаних, порожніх адресах, щоб уникнути цієї витоку приватності.
|
||
|
||
## **Інші Техніки Аналізу Блокчейну**
|
||
|
||
- **Точні Суми Платежів:** Транзакції без здачі ймовірно здійснюються між двома адресами, що належать одному користувачеві.
|
||
- **Круглі Числа:** Кругле число в транзакції вказує на платіж, а некруглий вихід ймовірно є здачею.
|
||
- **Відбиток Гаманця:** Різні гаманці мають унікальні шаблони створення транзакцій, що дозволяє аналітикам ідентифікувати використане програмне забезпечення та, можливо, адресу здачі.
|
||
- **Кореляція Суми та Часу:** Розголошення часу або сум може зробити транзакції відстежуваними.
|
||
|
||
## **Аналіз Трафіку**
|
||
|
||
Моніторинг мережевого трафіку дозволяє атакувальникам потенційно пов'язувати транзакції або блоки з IP-адресами, порушуючи приватність користувача. Це особливо справджується, якщо суб'єкт працює з багатьма вузлами Bitcoin, підвищуючи їх здатність моніторити транзакції.
|
||
|
||
## Додатково
|
||
Для повного списку атак на приватність та захисту відвідайте [Про Приватність Bitcoin на Bitcoin Wiki](https://en.bitcoin.it/wiki/Privacy).
|
||
|
||
|
||
# Анонімні Транзакції Bitcoin
|
||
|
||
## Способи Отримання Біткоїнів Анонімно
|
||
|
||
- **Готівкові Транзакції**: Отримання біткоїнів за допомогою готівки.
|
||
- **Альтернативи Готівки**: Придбання подарункових карток та їх обмін онлайн на біткоїни.
|
||
- **Майнінг**: Найбільш приватний спосіб заробляти біткоїни - це майнінг, особливо коли робиться самостійно, оскільки пули для майнінгу можуть знати IP-адресу майнера. [Інформація про Пули для Майнінгу](https://en.bitcoin.it/wiki/Pooled_mining)
|
||
- **Крадіжка**: Теоретично, крадіжка біткоїнів може бути ще одним способом отримання їх анонімно, хоча це незаконно та не рекомендується.
|
||
|
||
## Сервіси Змішування
|
||
|
||
Використовуючи сервіс змішування, користувач може **надсилати біткоїни** та отримувати **інші біткоїни в обмін**, що ускладнює відстеження оригінального власника. Однак це потребує довіри до сервісу не зберігати журнали та фактично повертати біткоїни. Альтернативні варіанти змішування включають Bitcoin казино.
|
||
|
||
## CoinJoin
|
||
|
||
**CoinJoin** об'єднує кілька транзакцій від різних користувачів в одну, ускладнюючи процес для тих, хто намагається відповідати входи з виходами. Незважаючи на його ефективність, транзакції з унікальними розмірами входів та виходів все ще можуть бути відстежені.
|
||
|
||
Приклади транзакцій, які можуть бути використані за допомогою CoinJoin, включають `402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a` та `85378815f6ee170aa8c26694ee2df42b99cff7fa9357f073c1192fff1f540238`.
|
||
|
||
Для отримання додаткової інформації відвідайте [CoinJoin](https://coinjoin.io/en). Для схожого сервісу на Ethereum, перегляньте [Tornado Cash](https://tornado.cash), який анонімізує транзакції з коштів майнерів.
|
||
|
||
## PayJoin
|
||
|
||
Варіант CoinJoin, **PayJoin** (або P2EP), маскує транзакцію між двома сторонами (наприклад, клієнтом та продавцем) як звичайну транзакцію, без характерних рівних виходів, що є характерним для CoinJoin. Це робить важко виявити та може скасувати евристичний метод власності спільного входу, який використовують сутності спостереження за транзакціями.
|
||
```plaintext
|
||
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 включають відправника та отримувача, які можуть бути адресами користувачів або смарт-контрактів. Вони потребують комісію та повинні бути добиті. Основна інформація в транзакції включає отримувача, підпис відправника, значення, необов'язкові дані, ліміт газу та комісії. Зокрема, адреса відправника виводиться з підпису, що усуває необхідність у ньому в даних транзакції.
|
||
|
||
Ці практики та механізми є основою для всіх, хто бажає працювати з криптовалютами, надаючи перевагу конфіденційності та безпеці.
|