hacktricks/crypto-and-stego/blockchain-and-crypto-currencies.md
2024-04-06 18:36:54 +00:00

15 KiB

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

기본 개념

  • 스마트 계약은 특정 조건이 충족될 때 블록체인에서 실행되는 프로그램으로, 중개인 없이 합의 실행을 자동화합니다.
  • **탈중앙화 애플리케이션 (dApps)**은 스마트 계약을 기반으로 하며, 사용자 친화적인 프론트엔드와 투명하고 감사 가능한 백엔드를 갖추고 있습니다.
  • 토큰 및 코인은 코인이 디지털 화폐로 사용되는 반면, 토큰은 특정 맥락에서 가치나 소유권을 나타냅니다.
  • 유틸리티 토큰은 서비스에 대한 액세스를 부여하며, 보안 토큰은 자산 소유를 나타냅니다.
  • DeFi는 중앙 관리 기관 없이 금융 서비스를 제공하는 것을 의미합니다.
  • DEXDAO는 각각 탈중앙화된 거래소 플랫폼과 탈중앙화된 자율 조직을 나타냅니다.

합의 메커니즘

합의 메커니즘은 블록체인에서 안전하고 합의된 트랜잭션 검증을 보장합니다:

  • **작업 증명 (PoW)**은 트랜잭션 검증을 위해 계산 능력을 의존합니다.
  • **지분 증명 (PoS)**은 검증자가 일정량의 토큰을 보유해야 하며, PoW에 비해 에너지 소비를 줄입니다.

비트코인 기본 사항

트랜잭션

비트코인 트랜잭션은 주소 간 자금 이전을 포함합니다. 트랜잭션은 디지털 서명을 통해 검증되며, 개인 키의 소유자만이 이체를 시작할 수 있도록 보장합니다.

주요 구성 요소:

  • 다중 서명 트랜잭션은 트랜잭션을 승인하기 위해 여러 개의 서명이 필요합니다.
  • 트랜잭션은 입력 (자금의 출처), 출력 (목적지), 수수료 (마이너에게 지불) 및 스크립트 (트랜잭션 규칙)로 구성됩니다.

라이트닝 네트워크

라이트닝 네트워크는 채널 내에서 여러 트랜잭션을 허용하여 비트코인의 확장성을 향상시키는 것을 목표로 합니다. 최종 상태만 블록체인에 브로드캐스트됩니다.

비트코인 개인 정보 보호 우려 사항

공통 입력 소유UTXO 변경 주소 감지와 같은 개인 정보 보호 공격은 트랜잭션 패턴을 이용합니다. 믹서CoinJoin과 같은 전략은 사용자 간의 트랜잭션 링크를 모호하게 만들어 익명성을 향상시킵니다.

익명으로 비트코인 획득하기

현금 거래, 채굴 및 믹서 사용 등의 방법이 있습니다. CoinJoin은 여러 트랜잭션을 혼합하여 추적을 복잡하게 만들고, PayJoin은 일반적인 트랜잭션으로 CoinJoin을 위장하여 더 높은 개인 정보 보호를 제공합니다.

비트코인 개인 정보 보호 공격

비트코인 개인 정보 보호 공격 요약

비트코인의 세계에서 트랜잭션의 개인 정보 보호와 사용자의 익명성은 종종 우려의 대상입니다. 여기에는 공격자가 비트코인 개인 정보를 침해할 수 있는 여러 일반적인 방법에 대한 단순화된 개요가 있습니다.

공통 입력 소유 가정

일반적으로 서로 다른 사용자의 입력이 하나의 트랜잭션에 결합되는 것은 드물기 때문에 복잡성 때문에 동일한 소유자에게 속하는 것으로 가정되는 두 개의 입력 주소입니다.

UTXO 변경 주소 감지

UTXO 또는 사용되지 않은 트랜잭션 출력은 트랜잭션에서 완전히 소비되어야 합니다. 일부만 다른 주소로 보내는 경우 나머지는 새로운 변경 주소로 이동합니다. 관찰자는 이 새 주소가 송신자에게 속한다고 가정하여 개인 정보를 침해할 수 있습니다.

예시

이를 완화하기 위해 믹싱 서비스를 사용하거나 여러 주소를 사용하여 소유권을 모호하게 할 수 있습니다.

소셜 네트워크 및 포럼 노출

사용자들은 때로는 비트코인 주소를 온라인으로 공유하여 해당 주소를 소유자와 연결하기 쉽게 만듭니다.

트랜잭션 그래프 분석

트랜잭션은 그래프로 시각화될 수 있으며, 자금의 흐름을 기반으로 사용자 간의 잠재적인 연결을 보여줍니다.

불필요한 입력 휴리스틱 (최적의 변경 휴리스틱)

이 휴리스틱은 여러 입력과 출력을 가진 트랜잭션을 분석하여 송신자에게 반환되는 변경 출력이 어떤 것인지 추측하는 것에 기반합니다.

예시

2 btc --> 4 btc
3 btc     1 btc

강제 주소 재사용

공격자는 이전에 사용한 주소로 작은 금액을 보내어 수신자가 이를 다른 입력과 결합하여 향후 거래에서 주소를 연결하도록 하는 것을 희망합니다.

올바른 지갑 동작

이 개인 정보 누출을 방지하기 위해 지갑은 이미 사용한 빈 주소에서 받은 코인을 사용하지 않아야 합니다.

기타 블록체인 분석 기법

  • 정확한 지불 금액: 거스름돈이 없는 거래는 동일한 사용자가 소유한 두 주소 간의 거래일 가능성이 높습니다.
  • 둥근 숫자: 거래에서 둥근 숫자는 지불을 나타내며, 둥근이 아닌 출력은 거스름돈일 가능성이 높습니다.
  • 지갑 지문 인식: 서로 다른 지갑은 고유한 거래 생성 패턴을 가지고 있으므로, 분석가는 사용된 소프트웨어와 변경 주소를 식별할 수 있습니다.
  • 금액 및 시간 상관 관계: 거래 시간이나 금액을 공개하면 거래를 추적할 수 있습니다.

트래픽 분석

네트워크 트래픽을 모니터링함으로써 공격자는 거래나 블록을 IP 주소와 연결하여 사용자의 개인 정보를 침해할 수 있습니다. 특히 한 개체가 많은 비트코인 노드를 운영하는 경우, 거래를 모니터링하는 능력이 향상됩니다.

더 알아보기

개인 정보 공격과 방어에 대한 포괄적인 목록은 Bitcoin Privacy on Bitcoin Wiki를 참조하십시오.

익명의 비트코인 거래

익명으로 비트코인을 얻는 방법

  • 현금 거래: 현금으로 비트코인을 얻는 방법.
  • 현금 대체 수단: 상품권을 구매하고 온라인에서 비트코인으로 교환하는 방법.
  • 마이닝: 비트코인을 얻는 가장 개인적인 방법은 마이닝을 통해 얻는 것입니다. 특히 개인적으로 마이닝을 할 경우, 마이닝 풀은 마이너의 IP 주소를 알 수 있을 수 있습니다. 마이닝 풀 정보
  • 도난: 이론적으로 비트코인을 훔칠 수도 있지만, 이는 불법이며 권장되지 않습니다.

혼합 서비스

혼합 서비스를 사용하면 사용자는 비트코인을 보내고 다른 비트코인을 받아 원래 소유자를 추적하기 어렵게 만들 수 있습니다. 그러나 이를 위해서는 서비스가 로그를 유지하지 않고 실제로 비트코인을 반환하지 않을 것을 신뢰해야 합니다. 대체로 혼합 옵션으로는 비트코인 카지노가 있습니다.

CoinJoin

CoinJoin은 여러 사용자의 여러 거래를 하나로 병합하여 입력과 출력을 매칭하려는 노력을 어렵게 만듭니다. 그러나 고유한 입력과 출력 크기를 가진 거래는 여전히 추적될 수 있습니다.

CoinJoin을 사용한 예시 거래로는 402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a85378815f6ee170aa8c26694ee2df42b99cff7fa9357f073c1192fff1f540238가 있습니다.

자세한 정보는 CoinJoin을 참조하십시오. Ethereum에서 비슷한 서비스인 Tornado Cash는 채굴자의 자금으로 거래를 익명화합니다.

PayJoin

CoinJoin의 변형인 PayJoin (또는 P2EP)은 두 당사자 (예: 고객과 상인) 간의 거래를 일반적인 거래로 위장시키며, CoinJoin의 특징인 동일한 출력이 없습니다. 이로써 일반적인 입력 소유성 휴리스틱을 감지하기가 매우 어려워지며, 거래 감시 엔티티가 사용하는 휴리스틱을 무효화할 수 있습니다.

2 btc --> 3 btc
5 btc     4 btc

위의 거래와 같은 거래는 PayJoin일 수 있으며, 표준 비트코인 거래와 구별할 수 없는 상태로 개인 정보 보호를 향상시킬 수 있습니다.

PayJoin의 활용은 전통적인 감시 방법을 크게 방해할 수 있으며, 거래 개인 정보 보호의 추구에서 유망한 발전입니다.

암호화폐에서 개인 정보 보호를 위한 최상의 실천 방법

지갑 동기화 기술

개인 정보 보호와 보안을 유지하기 위해 블록체인과 지갑을 동기화하는 것이 중요합니다. 두 가지 방법이 돋보입니다:

  • 풀 노드: 전체 블록체인을 다운로드하여 풀 노드는 최대한의 개인 정보 보호를 보장합니다. 모든 거래 내역이 로컬에 저장되어 있으므로, 상대방이 사용자가 관심을 가지고 있는 거래나 주소를 식별하는 것은 불가능합니다.
  • 클라이언트 측 블록 필터링: 이 방법은 블록체인의 각 블록에 대한 필터를 생성하여 지갑이 특정 관심사를 네트워크 관찰자에게 노출하지 않고도 관련 거래를 식별할 수 있게 합니다. 경량 지갑은 이러한 필터를 다운로드하며, 사용자의 주소와 일치하는 경우에만 전체 블록을 가져옵니다.

익명성을 위한 Tor의 활용

비트코인이 P2P 네트워크에서 작동하기 때문에, 네트워크와 상호 작용할 때 IP 주소를 가리기 위해 Tor를 사용하는 것이 좋습니다.

주소 재사용 방지

개인 정보 보호를 보호하기 위해 각 거래에 새로운 주소를 사용하는 것이 중요합니다. 주소를 재사용하면 거래를 동일한 개체에 연결하여 개인 정보 보호를 침해할 수 있습니다. 현대적인 지갑은 주소 재사용을 방지하기 위한 디자인을 채택하고 있습니다.

거래 개인 정보 보호를 위한 전략

  • 여러 거래: 지불을 여러 거래로 분할하면 거래 금액을 모호하게 만들어 개인 정보 보호 공격을 방지할 수 있습니다.
  • 거스름돈 회피: 거스름돈 출력이 필요하지 않은 거래를 선택함으로써 거스름돈 감지 방법을 방해하여 개인 정보 보호를 향상시킵니다.
  • 여러 거스름돈 출력: 거스름돈 회피가 불가능한 경우에도 여러 거스름돈 출력을 생성함으로써 여전히 개인 정보 보호를 개선할 수 있습니다.

Monero: 익명성의 상징

Monero는 디지털 거래에서 절대적인 익명성의 필요성을 해결하며, 개인 정보 보호에 대한 높은 기준을 제시합니다.

Ethereum: 가스와 거래

가스 이해

가스는 Ethereum에서 작업을 실행하는 데 필요한 계산 노력을 측정하며, gwei로 가격이 책정됩니다. 예를 들어, 2,310,000 gwei(또는 0.00231 ETH)의 비용이 드는 거래는 가스 한도와 기본 수수료, 채굴자를 동기화하기 위한 팁을 포함하고 있습니다. 사용자는 최대 수수료를 설정하여 과금을 방지하고, 초과 금액은 환불됩니다.

거래 실행

Ethereum에서의 거래는 송신자와 수신자로 구성되며, 사용자나 스마트 계약 주소가 될 수 있습니다. 거래에는 수수료가 필요하며, 채굴되어야 합니다. 거래에서 중요한 정보는 수신자, 송신자의 서명, 가치, 선택적 데이터, 가스 한도 및 수수료입니다. 특히, 송신자의 주소는 서명에서 유추되므로 거래 데이터에 필요하지 않습니다.

이러한 실천 방법과 메커니즘은 개인 정보 보호와 보안을 우선시하는 사람들에게 필수적입니다.

참고 자료

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법: