Blockchain & Crypto Currencies
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
스마트 계약은 특정 조건이 충족될 때 블록체인에서 실행되는 프로그램으로, 중개자 없이 계약 실행을 자동화합니다.
**탈중앙화 애플리케이션 (dApps)**는 스마트 계약을 기반으로 하며, 사용자 친화적인 프론트 엔드와 투명하고 감사 가능한 백 엔드를 특징으로 합니다.
토큰과 코인은 구분되며, 코인은 디지털 화폐로 사용되고, 토큰은 특정 맥락에서 가치나 소유권을 나타냅니다.
유틸리티 토큰은 서비스에 대한 접근을 부여하고, 증권 토큰은 자산 소유권을 나타냅니다.
DeFi는 탈중앙화 금융을 의미하며, 중앙 권한 없이 금융 서비스를 제공합니다.
DEX와 DAO는 각각 탈중앙화 거래 플랫폼과 탈중앙화 자율 조직을 의미합니다.
합의 메커니즘은 블록체인에서 안전하고 합의된 거래 검증을 보장합니다:
**작업 증명 (PoW)**은 거래 검증을 위해 계산 능력에 의존합니다.
**지분 증명 (PoS)**은 검증자가 일정량의 토큰을 보유해야 하며, PoW에 비해 에너지 소비를 줄입니다.
비트코인 거래는 주소 간 자금을 전송하는 것을 포함합니다. 거래는 디지털 서명을 통해 검증되며, 개인 키의 소유자만이 전송을 시작할 수 있습니다.
주요 구성 요소:
다중 서명 거래는 거래를 승인하기 위해 여러 서명이 필요합니다.
거래는 입력(자금 출처), 출력(목적지), 수수료(채굴자에게 지급), 스크립트(거래 규칙)로 구성됩니다.
비트코인의 확장성을 향상시키기 위해 여러 거래를 채널 내에서 허용하고, 최종 상태만 블록체인에 방송하는 것을 목표로 합니다.
프라이버시 공격, 예를 들어 공통 입력 소유권 및 UTXO 변경 주소 탐지는 거래 패턴을 악용합니다. 믹서 및 코인조인과 같은 전략은 사용자 간의 거래 링크를 모호하게 하여 익명성을 향상시킵니다.
현금 거래, 채굴 및 믹서를 사용하는 방법이 있습니다. 코인조인은 여러 거래를 혼합하여 추적 가능성을 복잡하게 만들고, 페이조인은 코인조인을 일반 거래로 위장하여 프라이버시를 높입니다.
비트코인 세계에서 거래의 프라이버시와 사용자 익명성은 종종 우려의 대상입니다. 공격자가 비트코인 프라이버시를 침해할 수 있는 여러 일반적인 방법에 대한 간단한 개요입니다.
복잡성으로 인해 서로 다른 사용자의 입력이 단일 거래에 결합되는 경우는 일반적으로 드뭅니다. 따라서 같은 거래의 두 입력 주소는 종종 동일한 소유자에게 속하는 것으로 가정됩니다.
UTXO, 즉 사용되지 않은 거래 출력은 거래에서 완전히 소진되어야 합니다. 만약 그 일부만 다른 주소로 전송되면 나머지는 새로운 변경 주소로 가게 됩니다. 관찰자는 이 새로운 주소가 발신자에게 속한다고 가정하여 프라이버시를 침해할 수 있습니다.
이를 완화하기 위해 믹싱 서비스나 여러 주소를 사용하는 것이 소유권을 모호하게 하는 데 도움이 될 수 있습니다.
사용자들은 때때로 자신의 비트코인 주소를 온라인에 공유하여 주소와 소유자를 쉽게 연결할 수 있게 합니다.
거래는 그래프로 시각화될 수 있으며, 자금 흐름에 따라 사용자 간의 잠재적 연결을 드러냅니다.
이 휴리스틱은 여러 입력과 출력을 가진 거래를 분석하여 어떤 출력이 발신자에게 돌아가는 변경인지 추측하는 데 기반합니다.
If adding more inputs makes the change output larger than any single input, it can confuse the heuristic.
공격자는 이전에 사용된 주소로 소량의 비트코인을 보내, 수신자가 향후 거래에서 이를 다른 입력과 결합하기를 희망하여 주소를 연결할 수 있습니다.
지갑은 이미 사용된 빈 주소에서 받은 코인을 사용하지 않아야 이 프라이버시 누수를 방지할 수 있습니다.
정확한 지불 금액: 잔돈이 없는 거래는 동일한 사용자가 소유한 두 주소 간의 거래일 가능성이 높습니다.
정수 금액: 거래에서 정수 금액은 지불을 나타내며, 비정수 출력은 잔돈일 가능성이 높습니다.
지갑 지문 인식: 서로 다른 지갑은 고유한 거래 생성 패턴을 가지고 있어 분석가가 사용된 소프트웨어와 잠재적으로 잔돈 주소를 식별할 수 있습니다.
금액 및 시간 상관관계: 거래 시간이나 금액을 공개하면 거래를 추적할 수 있습니다.
네트워크 트래픽을 모니터링함으로써 공격자는 거래나 블록을 IP 주소에 연결할 수 있어 사용자 프라이버시를 침해할 수 있습니다. 이는 특히 한 기관이 많은 비트코인 노드를 운영하는 경우에 해당하여 거래 모니터링 능력이 향상됩니다.
프라이버시 공격 및 방어에 대한 포괄적인 목록은 Bitcoin Privacy on Bitcoin Wiki에서 확인하세요.
현금 거래: 현금을 통해 비트코인을 획득합니다.
현금 대안: 기프트 카드를 구매하고 이를 온라인에서 비트코인으로 교환합니다.
채굴: 비트코인을 얻는 가장 프라이빗한 방법은 채굴이며, 특히 혼자서 할 때 그렇습니다. 채굴 풀은 채굴자의 IP 주소를 알 수 있기 때문입니다. 채굴 풀 정보
도난: 이론적으로 비트코인을 훔치는 것도 익명으로 획득하는 방법이 될 수 있지만, 이는 불법이며 권장되지 않습니다.
믹싱 서비스를 사용하면 사용자가 비트코인을 보내고 다른 비트코인을 받는 방식으로 원래 소유자를 추적하기 어렵게 만듭니다. 그러나 이는 로그를 보관하지 않고 실제로 비트코인을 반환할 서비스에 대한 신뢰가 필요합니다. 대안 믹싱 옵션으로는 비트코인 카지노가 있습니다.
CoinJoin은 서로 다른 사용자의 여러 거래를 하나로 병합하여 입력과 출력을 일치시키려는 사람에게 복잡하게 만듭니다. 그 효과에도 불구하고 고유한 입력 및 출력 크기를 가진 거래는 여전히 추적될 수 있습니다.
CoinJoin을 사용했을 가능성이 있는 예시 거래는 402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a
와 85378815f6ee170aa8c26694ee2df42b99cff7fa9357f073c1192fff1f540238
입니다.
자세한 정보는 CoinJoin에서 확인하세요. 이더리움에서 유사한 서비스는 Tornado Cash로, 이는 채굴자의 자금으로 거래를 익명화합니다.
CoinJoin의 변형인 PayJoin(또는 P2EP)은 두 당사자(예: 고객과 상인) 간의 거래를 일반 거래처럼 위장하여 CoinJoin의 고유한 동등 출력 특성이 없습니다. 이는 탐지하기 매우 어렵게 만들며 거래 감시 기관에서 사용하는 일반 입력 소유권 휴리스틱을 무효화할 수 있습니다.
Transactions like the above could be PayJoin, enhancing privacy while remaining indistinguishable from standard bitcoin transactions.
PayJoin의 활용은 전통적인 감시 방법을 크게 방해할 수 있으며, 거래 프라이버시를 추구하는 데 있어 유망한 발전입니다.
프라이버시와 보안을 유지하기 위해 블록체인과 지갑을 동기화하는 것이 중요합니다. 두 가지 방법이 두드러집니다:
Full node: 전체 블록체인을 다운로드함으로써, 풀 노드는 최대한의 프라이버시를 보장합니다. 모든 거래가 로컬에 저장되어 있어 적들이 사용자가 관심 있는 거래나 주소를 식별할 수 없게 만듭니다.
Client-side block filtering: 이 방법은 블록체인의 모든 블록에 대한 필터를 생성하여 지갑이 네트워크 관찰자에게 특정 관심사를 노출하지 않고 관련 거래를 식별할 수 있게 합니다. 경량 지갑은 이러한 필터를 다운로드하고, 사용자의 주소와 일치하는 경우에만 전체 블록을 가져옵니다.
비트코인이 P2P 네트워크에서 운영되기 때문에, Tor를 사용하여 IP 주소를 숨기는 것이 권장되며, 네트워크와 상호작용할 때 프라이버시를 향상시킵니다.
프라이버시를 보호하기 위해서는 모든 거래에 대해 새로운 주소를 사용하는 것이 중요합니다. 주소를 재사용하면 거래가 동일한 주체와 연결되어 프라이버시가 손상될 수 있습니다. 현대 지갑은 디자인을 통해 주소 재사용을 권장하지 않습니다.
Multiple transactions: 결제를 여러 거래로 나누면 거래 금액을 모호하게 만들어 프라이버시 공격을 저지할 수 있습니다.
Change avoidance: 잔돈 출력을 필요로 하지 않는 거래를 선택하면 잔돈 탐지 방법을 방해하여 프라이버시를 향상시킵니다.
Multiple change outputs: 잔돈을 피할 수 없는 경우, 여러 잔돈 출력을 생성하는 것도 여전히 프라이버시를 개선할 수 있습니다.
모네로는 디지털 거래에서 절대적인 익명성의 필요성을 다루며, 프라이버시의 높은 기준을 설정합니다.
가스는 이더리움에서 작업을 실행하는 데 필요한 계산 노력을 측정하며, gwei로 가격이 책정됩니다. 예를 들어, 2,310,000 gwei(또는 0.00231 ETH)의 비용이 드는 거래는 가스 한도와 기본 수수료가 있으며, 채굴자를 유인하기 위한 팁이 포함됩니다. 사용자는 초과 지불하지 않도록 최대 수수료를 설정할 수 있으며, 초과분은 환불됩니다.
이더리움의 거래는 발신자와 수신자가 포함되며, 이는 사용자 또는 스마트 계약 주소일 수 있습니다. 거래는 수수료가 필요하며 채굴되어야 합니다. 거래의 필수 정보에는 수신자, 발신자의 서명, 값, 선택적 데이터, 가스 한도 및 수수료가 포함됩니다. 특히, 발신자의 주소는 서명에서 유추되므로 거래 데이터에 필요하지 않습니다.
이러한 관행과 메커니즘은 프라이버시와 보안을 우선시하며 암호화폐에 참여하고자 하는 모든 사람에게 기본적입니다.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)