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

193 lines
13 KiB
Markdown
Raw Normal View History

{% hint style="success" %}
Ucz się i praktykuj Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Szkolenie AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Ucz się i praktykuj Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Szkolenie GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2024-04-06 19:35:05 +00:00
<details>
2024-04-06 19:35:05 +00:00
<summary>Wesprzyj HackTricks</summary>
2024-04-06 19:35:05 +00:00
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się trikami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na GitHubie.
2024-04-06 19:35:05 +00:00
</details>
{% endhint %}
2024-04-06 19:35:05 +00:00
## Podstawowe Pojęcia
2024-04-06 19:35:05 +00:00
- **Smart Contracts** są programami działającymi na blockchainie, które wykonują się, gdy spełnione są określone warunki, automatyzując wykonanie umów bez pośredników.
- **Zdecentralizowane Aplikacje (dApps)** opierają się na smart contractach, posiadając przyjazny interfejs użytkownika oraz transparentne, audytowalne zaplecze.
- **Tokeny i Monety** różnią się tym, że monety służą jako cyfrowe pieniądze, podczas gdy tokeny reprezentują wartość lub własność w określonych kontekstach.
- **Tokeny Użytkowe** umożliwiają dostęp do usług, a **Tokeny Bezpieczeństwa** oznaczają posiadanie aktywów.
- **DeFi** oznacza Dezentralizowaną Finansów, oferując usługi finansowe bez centralnych władz.
- **DEX** i **DAOs** odnoszą się odpowiednio do Platform Wymiany Zdecentralizowanej i Zdecentralizowanych Organizacji Autonomicznych.
2024-04-06 19:35:05 +00:00
## Mechanizmy Konsensusu
2024-04-06 19:35:05 +00:00
Mechanizmy konsensusu zapewniają bezpieczne i uzgodnione walidacje transakcji na blockchainie:
- **Proof of Work (PoW)** polega na mocy obliczeniowej do weryfikacji transakcji.
- **Proof of Stake (PoS)** wymaga, aby walidatorzy posiadalii określoną ilość tokenów, zmniejszając zużycie energii w porównaniu do PoW.
2024-04-06 19:35:05 +00:00
## Podstawy Bitcoina
### Transakcje
Transakcje Bitcoina polegają na przesyłaniu środków między adresami. Transakcje są walidowane za pomocą podpisów cyfrowych, zapewniając, że tylko właściciel klucza prywatnego może inicjować transfery.
2024-04-06 19:35:05 +00:00
#### Główne Składniki:
2024-04-06 19:35:05 +00:00
- **Transakcje Multisygnaturowe** wymagają wielu podpisów do autoryzacji transakcji.
- Transakcje składają się z **wejść** (źródła środków), **wyjść** (celu), **opłat** (płaconych górnikom) oraz **skryptów** (reguł transakcji).
2024-04-06 19:35:05 +00:00
### Sieć Błyskawiczna
2024-04-06 19:35:05 +00:00
Ma na celu zwiększenie skalowalności Bitcoina, pozwalając na wiele transakcji w kanale, a następnie nadając tylko ostateczny stan na blockchainie.
2024-04-06 19:35:05 +00:00
## Problemy Prywatności Bitcoina
2024-04-06 19:35:05 +00:00
Ataki na prywatność, takie jak **Wspólne Posiadanie Wejścia** i **Wykrywanie Adresu Zmiany UTXO**, wykorzystują wzorce transakcji. Strategie takie jak **Miksery** i **CoinJoin** poprawiają anonimowość, zacieniając połączenia transakcyjne między użytkownikami.
2024-04-06 19:35:05 +00:00
## Nabywanie Bitcoinów Anonimowo
2024-04-06 19:35:05 +00:00
Metody obejmują handel gotówką, kopanie oraz korzystanie z miksów. **CoinJoin** miesza wiele transakcji, komplikując śledzenie, podczas gdy **PayJoin** maskuje CoinJoiny jako zwykłe transakcje dla zwiększonej prywatności.
2024-04-06 19:35:05 +00:00
# Ataki na Prywatność Bitcoina
2024-04-06 19:35:05 +00:00
# Podsumowanie Ataków na Prywatność Bitcoina
2024-04-06 19:35:05 +00:00
W świecie Bitcoina prywatność transakcji i anonimowość użytkowników często budzą obawy. Oto uproszczony przegląd kilku powszechnych metod, za pomocą których atakujący mogą naruszyć prywatność Bitcoina.
2024-04-06 19:35:05 +00:00
## **Założenie Wspólnego Posiadania Wejścia**
2024-04-06 19:35:05 +00:00
Zazwyczaj rzadko zdarza się, że wejścia od różnych użytkowników są łączone w jednej transakcji ze względu na złożoność. Dlatego **dwa adresy wejściowe w tej samej transakcji są często uważane za należące do tego samego właściciela**.
2024-04-06 19:35:05 +00:00
## **Wykrywanie Adresu Zmiany UTXO**
2024-04-06 19:35:05 +00:00
UTXO, czyli **Niewykorzystany Wynik Transakcji**, musi być całkowicie wydany w transakcji. Jeśli tylko część z niego jest wysyłana na inny adres, reszta trafia na nowy adres zmiany. Obserwatorzy mogą założyć, że ten nowy adres należy do nadawcy, naruszając prywatność.
2024-04-06 19:35:05 +00:00
### Przykład
Aby temu zapobiec, usługi miksowania lub korzystanie z wielu adresów może pomóc zaciemnić właściciela.
2024-04-06 19:35:05 +00:00
## **Ekspozycja w Sieciach Społecznościowych i Forach**
2024-04-06 19:35:05 +00:00
Użytkownicy czasami udostępniają swoje adresy Bitcoin online, co sprawia, że jest **łatwo powiązać adres z jego właścicielem**.
2024-04-06 19:35:05 +00:00
## **Analiza Grafu Transakcji**
2024-04-06 19:35:05 +00:00
Transakcje można wizualizować jako grafy, ujawniając potencjalne połączenia między użytkownikami na podstawie przepływu środków.
2024-04-06 19:35:05 +00:00
## **Heurystyka Niepotrzebnego Wejścia (Optymalna Heurystyka Zmiany)**
2024-04-06 19:35:05 +00:00
Ta heurystyka opiera się na analizie transakcji z wieloma wejściami i wyjściami, aby zgadywać, które wyjście to zmiana wracająca do nadawcy.
2024-04-06 19:35:05 +00:00
### Przykład
```bash
2 btc --> 4 btc
3 btc 1 btc
```
## **Wymuszony Powrót do Adresu**
2024-04-06 19:35:05 +00:00
Atakujący mogą wysyłać niewielkie kwoty na wcześniej używane adresy, mając nadzieję, że odbiorca połączy je z innymi wejściami w przyszłych transakcjach, co pozwoli na powiązanie adresów.
2024-04-06 19:35:05 +00:00
### Poprawne Zachowanie Portfela
Portfele powinny unikać używania monet otrzymanych na już używanych, pustych adresach, aby zapobiec wyciekowi prywatności.
2024-04-06 19:35:05 +00:00
## **Inne Techniki Analizy Blockchain**
2024-04-06 19:35:05 +00:00
- **Dokładne Kwoty Płatności:** Transakcje bez reszty są prawdopodobnie między dwoma adresami należącymi do tego samego użytkownika.
- **Kwoty Zaokrąglone:** Kwota zaokrąglona w transakcji sugeruje, że jest to płatność, a niezaokrąglony wynik prawdopodobnie jest resztą.
- **Identyfikacja Portfela:** Różne portfele mają unikalne wzorce tworzenia transakcji, pozwalając analitykom zidentyfikować użyte oprogramowanie i potencjalnie adres reszty.
- **Korelacje Kwot i Czasu:** Ujawnienie czasów lub kwot transakcji może uczynić je śledzalnymi.
2024-04-06 19:35:05 +00:00
## **Analiza Ruchu**
2024-04-06 19:35:05 +00:00
Poprzez monitorowanie ruchu sieciowego, atakujący mogą potencjalnie powiązać transakcje lub bloki z adresami IP, naruszając prywatność użytkowników. Szczególnie dotyczy to sytuacji, gdy podmiot obsługuje wiele węzłów Bitcoin, zwiększając zdolność monitorowania transakcji.
2024-04-06 19:35:05 +00:00
## Więcej
Aby uzyskać kompletną listę ataków i obrony prywatności, odwiedź [Prywatność Bitcoin na Wiki Bitcoin](https://en.bitcoin.it/wiki/Privacy).
2024-04-06 19:35:05 +00:00
# Anonimowe Transakcje Bitcoin
2024-04-06 19:35:05 +00:00
## Sposoby na Uzyskanie Bitcoinów Anonimowo
2024-04-06 19:35:05 +00:00
- **Transakcje Gotówkowe**: Pozyskiwanie bitcoinów za gotówkę.
- **Alternatywy Gotówkowe**: Zakup kart podarunkowych i wymiana ich online na bitcoiny.
- **Kopanie**: Najbardziej prywatny sposób zdobycia bitcoinów to kopanie, zwłaszcza gdy jest wykonywane samodzielnie, ponieważ pule wydobywcze mogą znać adres IP kopacza. [Informacje o Pulach Wydobywczych](https://en.bitcoin.it/wiki/Pooled_mining)
- **Kradzież**: Teoretycznie kradzież bitcoinów mógłby być kolejnym sposobem na ich anonimowe pozyskanie, chociaż jest to nielegalne i niezalecane.
2024-04-06 19:35:05 +00:00
## Usługi Mieszania
2024-04-06 19:35:05 +00:00
Poprzez korzystanie z usługi mieszania, użytkownik może **wysłać bitcoiny** i otrzymać **inne bitcoiny w zamian**, co utrudnia śledzenie pierwotnego właściciela. Jednak wymaga to zaufania do usługi, aby nie przechowywała logów i faktycznie zwróciła bitcoiny. Alternatywne opcje mieszania obejmują kasyna Bitcoin.
2024-04-06 19:35:05 +00:00
## CoinJoin
**CoinJoin** łączy wiele transakcji od różnych użytkowników w jedną, komplikując proces dla osób próbujących dopasować wejścia do wyjść. Pomimo swojej skuteczności, transakcje z unikalnymi rozmiarami wejść i wyjść wciąż mogą potencjalnie być śledzone.
2024-04-06 19:35:05 +00:00
Przykładowe transakcje, które mogły zostać wykonane za pomocą CoinJoin, to `402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a` i `85378815f6ee170aa8c26694ee2df42b99cff7fa9357f073c1192fff1f540238`.
2024-04-06 19:35:05 +00:00
Aby uzyskać więcej informacji, odwiedź [CoinJoin](https://coinjoin.io/en). Dla podobnej usługi na Ethereum, sprawdź [Tornado Cash](https://tornado.cash), która anonimizuje transakcje z funduszy od górników.
2024-04-06 19:35:05 +00:00
## PayJoin
Wariant CoinJoin, **PayJoin** (lub P2EP), maskuje transakcję między dwiema stronami (np. klientem i handlowcem) jako zwykłą transakcję, bez charakterystycznych równych wyjść charakterystycznych dla CoinJoin. Sprawia to, że jest to bardzo trudne do wykrycia i może unieważnić heurystykę wspólnego posiadania wejścia używaną przez podmioty monitorujące transakcje.
2024-04-06 19:35:05 +00:00
```plaintext
2 btc --> 3 btc
5 btc 4 btc
```
Transakcje jak powyższa mogą być PayJoin, zwiększając prywatność, pozostając jednocześnie nie do odróżnienia od standardowych transakcji bitcoinowych.
2024-04-06 19:35:05 +00:00
**Wykorzystanie PayJoin może znacząco zakłócić tradycyjne metody nadzoru**, co czyni go obiecującym rozwojem w dążeniu do prywatności transakcyjnej.
2024-04-06 19:35:05 +00:00
# Najlepsze praktyki dotyczące prywatności w kryptowalutach
## **Techniki synchronizacji portfela**
2024-04-06 19:35:05 +00:00
Aby zachować prywatność i bezpieczeństwo, synchronizacja portfeli z blockchainem jest kluczowa. Wyróżniają się dwie metody:
- **Pełny węzeł**: Pobierając cały blockchain, pełny węzeł zapewnia maksymalną prywatność. Wszystkie dokonane transakcje są przechowywane lokalnie, co uniemożliwia przeciwnikom zidentyfikowanie, które transakcje lub adresy użytkownik interesują.
- **Filtrowanie bloków po stronie klienta**: Ta metoda polega na tworzeniu filtrów dla każdego bloku w blockchainie, pozwalając portfelom identyfikować istotne transakcje bez ujawniania konkretnych zainteresowań obserwatorom sieci. Lekkie portfele pobierają te filtry, pobierając pełne bloki tylko wtedy, gdy zostanie znalezione dopasowanie do adresów użytkownika.
2024-04-06 19:35:05 +00:00
## **Wykorzystanie Tor dla Anonimowości**
2024-04-06 19:35:05 +00:00
Ponieważ Bitcoin działa w sieci peer-to-peer, zaleca się korzystanie z Tor, aby zasłonić swój adres IP, zwiększając prywatność podczas interakcji z siecią.
2024-04-06 19:35:05 +00:00
## **Zapobieganie Ponownemu Używaniu Adresów**
2024-04-06 19:35:05 +00:00
Aby chronić prywatność, ważne jest używanie nowego adresu dla każdej transakcji. Ponowne użycie adresów może naruszyć prywatność, łącząc transakcje z tą samą jednostką. Nowoczesne portfele zniechęcają do ponownego używania adresów poprzez swoje projekty.
2024-04-06 19:35:05 +00:00
## **Strategie dla Prywatności Transakcji**
2024-04-06 19:35:05 +00:00
- **Wiele transakcji**: Podzielenie płatności na kilka transakcji może zaciemnić kwotę transakcji, udaremniając ataki na prywatność.
2024-04-06 19:35:05 +00:00
- **Unikanie reszty**: Wybieranie transakcji, które nie wymagają reszty, zwiększa prywatność poprzez zakłócenie metod wykrywania reszty.
- **Wiele reszt**: Jeśli unikanie reszty nie jest możliwe, generowanie wielu reszt nadal może poprawić prywatność.
2024-04-06 19:35:05 +00:00
# **Monero: Latarnia Anonimowości**
2024-04-06 19:35:05 +00:00
Monero odpowiada na potrzebę absolutnej anonimowości w transakcjach cyfrowych, ustanawiając wysoki standard prywatności.
# **Ethereum: Gas i Transakcje**
## **Zrozumienie Gazu**
2024-04-06 19:35:05 +00:00
Gas mierzy wysiłek obliczeniowy potrzebny do wykonania operacji na Ethereum, wyceniany w **gwei**. Na przykład transakcja kosztująca 2 310 000 gwei (lub 0,00231 ETH) obejmuje limit gazu, opłatę podstawową oraz napiwek dla zachęty dla górników. Użytkownicy mogą ustawić maksymalną opłatę, aby upewnić się, że nie przepłacają, a nadwyżka zostanie zwrócona.
2024-04-06 19:35:05 +00:00
## **Wykonywanie Transakcji**
2024-04-06 19:35:05 +00:00
Transakcje w Ethereum obejmują nadawcę i odbiorcę, którzy mogą być adresami użytkownika lub inteligentnych kontraktów. Wymagają one opłaty i muszą być wydobywane. Istotne informacje w transakcji obejmują odbiorcę, podpis nadawcy, wartość, opcjonalne dane, limit gazu i opłaty. Warto zauważyć, że adres nadawcy jest wydedukowany z podpisu, eliminując potrzebę jego zawarcia w danych transakcji.
2024-04-06 19:35:05 +00:00
Te praktyki i mechanizmy stanowią fundament dla każdego, kto chce zaangażować się w kryptowaluty, priorytetyzując prywatność i bezpieczeństwo.
2024-04-06 19:35:05 +00:00
## Referencje
* [https://en.wikipedia.org/wiki/Proof\_of\_stake](https://en.wikipedia.org/wiki/Proof\_of\_stake)
* [https://www.mycryptopedia.com/public-key-private-key-explained/](https://www.mycryptopedia.com/public-key-private-key-explained/)
* [https://bitcoin.stackexchange.com/questions/3718/what-are-multi-signature-transactions](https://bitcoin.stackexchange.com/questions/3718/what-are-multi-signature-transactions)
* [https://ethereum.org/en/developers/docs/transactions/](https://ethereum.org/en/developers/docs/transactions/)
* [https://ethereum.org/en/developers/docs/gas/](https://ethereum.org/en/developers/docs/gas/)
* [https://en.bitcoin.it/wiki/Privacy](https://en.bitcoin.it/wiki/Privacy#Forced\_address\_reuse)