DUST ATTACK транзакция в блокчейне с подтверждением изоморфизма на общую сумму 10000 BTC
В этой статье мы раскроем обширную тему: “Dust Attack” известная как: "Dusting Attack" или "Crypto Dust". Возможно каждый пользователь криптовалют или держатель большой суммы монет BTC, ETH замещал на своем криптовалютном кошельке поступление незначительно малой суммы монет в satoshi, это поступление маскируется под видом "Donate", но на самом деле это целая математический отточенная система по отъёму всех накопленных монет кошелька на балансе. Целью раскрытие системы и всех подводных камней “Dust Attack”, нас подвигла и натолкнуло статья опубликованная 8 января 2024 г. на сайте глобальной криптоэкономики CoinDesk
Пока все гадают, кто же именно отправил 27 BTC на популярный Биткоин Кошелек [Satoshi Nakamoto] мы рассмотрим две различные примеры пылевой атаки, чтобы пролить свет на все тонкости этой манипуляции и какие риски могут ждать пользователей и держателей популярной криптовалюты Биткоин.
Согласно, статье в этой транзакции было совершено наибольшее количество краж монет BTC с использованием системы пылевой атаки.
Обратим внимание на два Биткоин Адреса которые в период [июль-август 2022] совершили успешные пылевые атаки на общую сумму: 10000 BTC
Для проведение пылевой атаки большую роль играет подтверждение изоморфизма майнерами, т.к. с 2022 по 2024 года многие криптовалютные сервисы и аппаратные кошельки активно борются с пылевой атакой.
На данный момент широкую популярность получил способ самостоятельно создавать пылевые транзакции на собственном холодном кошельке. Возьмем пример № 1 и перейдем в раздел “Create Dust Transaction”
УстановимPython 3.12.1 на Windows 10
Скачиваемисходный код устанавливаем get-pip.py , а также запускаем install.py для установки пакетов:
Сгенерируем собственный холодный кошелек
Баланс и транзакция платежаПополняем баланс холодного кошелька:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK
Сохраним транзакциюTXID хэш от платежа пополнение баланса для дальнейшего построение Дерево Меркла (Merkle Tree)
Блоки, которые находятся уровнем выше, заполняются значением суммы хешем двух дочерних блоков. Этот процесс повторяется до того момента, пока не будет получено верхнее значение или Корень Меркла (Merkle Root). В блокчейне Bitcon используется хеш-функция SHA256. Другие блокчейны могут использовать другие принципы шифрования для создания Дерева Меркла.
Хэш платежа от пополнение баланса
СкопируемTXID: 0b253c2dd4331f78de3d9a14d5cacfe9b20c258ebedabc782f36ce2e50d193c5т.к. это хэш пополнение баланса холодного кошелька:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK далее открываем исходный код Python скрипта createrawtransaction.py и в строке №7 меняем значение на свои данные.
Чтобы обезопасить свой новосозданный холодный кошелек:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeKОБЯЗАТЕЛЬНО отключаем интернет на своем ПК. Это необходимо для безопасности в раскрытие приватного ключа сторонними работающими приложениями на вашем ПК. Этот процесс займет несколько минут. Отключаем интернет при создании пылевой транзакции RawTX.
Как только вы убедились, что интернет отключен в строке №5 вставим Private Key WIF
В строке №12 добавляем общую сумму баланса холодного кошелька. В нашем случае эта сумма составляет2786906 satoshi
Прибыль от пылевой атаки.
Выбираем Биткоин Кошелек от которого в конечном итоге получаем прибыль в случае подтверждение майнерами изоморфизма. Так как мы рассматриваем пример №1 в нашем случае мы выбираем адрес Биткоин Кошелька: 14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i
В строке №9 нам необходимо указать Биткоин Адрес для пылевой атаки
Сумма пыли будет составлять555 satoshi, в строке №15 указываем эту сумму.
Далее учитываемFee(комиссия для майнеров), эта сумму будет составлять226 satoshi
Также нам необходимо учитывать возврат наших средств обратно на наш холодный кошелек:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK т.к. мы выделили 781 satoshi для пылевой атаки, вычитаем эту сумму из общей суммы пополнение баланса холодного кошелька 2786906 satoshi
В строке №16 указываем сумму возврат наших средств обратно на наш холодный кошелек:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK
Запускаем наш скриптcreaterawtransaction.pyнажав клавишу«F5» или опцию: Run / Run Module F5
Запуск скрипта: createrawtransaction.py
Результат:
Мы получилиRawTXпылевой транзакции теперь перейдем в раздел Verify Transactions для того чтобы убедиться создана ли транзакция должным образом. Скопируем RawTX и вставим в поле ввода Verify transactions and other scripts
RawTX for performing isomorphism:
Цель нашей пылевой атаки получить максимальную прибыль от Биткоин Кошелька на которую мы отправляем 555 satoshi. Для этого мы переходим в раздел ScriptSig Isomorphism и преобразуем пылевую транзакцию в изоморфизм, согласно теории https://safecurves.cr.yp.to/ladder.html (две транзакции должны быть подтверждены майнерами). Первая транзакция это пылевая транзакция, где отправляется малая сумма в 555 satoshi, вторая транзакция это изоморфизм первой транзакции, где происходит обратный перевод средств из баланса жертвы пылевой атаки.
Полученный изоморфизм мы опубликуем в репозитории CryptoDeepTools
Согласно, теории описанная в разделеCreate Dust Transaction нам необходимо изменить все существующие значение 74786964 в новой транзакции изоморфизма на все текущие txid которые были совершены в Биткоин Кошелек: 14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i на которую мы производим пылевую атаку с малой суммой 555 satoshi [ send_dust ]
Запустим скрипт указав print(tx.serialize().hex()[+10:+74]) и преобразуем весь список txid в потоковый формат hash
После того как мы получили все потоковые хеш форматы нам необходимо сохранить весь список заменивtxid, для этого открываем файл:isomorphism.txt в Notepad++ нажимаем клавиши:CTRL + F пишем: 74786964 заменить на: \ntxid\n
Переходим вCryptoDeepTools и выполним функцию замены в Notepad++ т.к. мы получили список txid теперь из списка GitHub скопируем и вставим весь список потокового хеш формата в файл: isomorphism.txt
Замена публичного ключа в файле: isomorphism.txt
Изоморфизм это новая транзакция и в место значение7075626b6579нам необходимо указать публичный ключ Биткоин Кошелька из которого мы хотим совершить транзакцию целью получение максимальной прибыли. Для этого переходим в файлPublicKey.txt запустим python скрипт: pubtoaddr.py для того чтобы убедиться соответствует ли публичный ключ к адресу для пылевой атаки.
https://github.com/demining/CryptoDeepTools/blob/main/28DustAttack/14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i/PublicKey.txt
После нам необходимо изменитьвсе существующие значение7075626b6579на значение в файле:PublicKey.txt (Все действие делаются также в Notepad++)
Биткоин адрес для получения всей прибыли:
Для перевода всех накопленных монет BTC нам необходимо сгенерировать совершенно новый Биткоин адрес в формате (SegWit):
Для того, чтобы получитьhash160для Биткоин адреса нам необходимо раскодироватьRedeemScriptиспользуем python скриптcreaterawtransaction.py
После получениеhash160из нового Биткоин Адреса(SegWit)нам необходимо открытьфайл: isomorphism.txt в Notepad++ и заменить значение 68617368313630 на полученное значение hash160
Мы добавили все необходимые значение для создание новой транзакции для получение прибыли из изоморфизма, теперь нам необходимо выделить весь текст нафайле: isomorphism.txt нажав клавиши: CTRL + A после объединяем все в одну строку для этого необходимо нажать на клавиши CTRL + J в итоге мы получаем длинную строку с пробелами. Убираем пробелы нажав клавиши: CTRL + F заменяем пробелы. В итоге мы получаем новый RawTX для совершение транзакции.
Любая транзакция должна быть подтверждена майнерами для того чтобы RawTX отправить в поле раздела: Broadcast Transaction для передачи заявки на подтверждение майнерами, необходимо тщательно убедиться, что платеж создан корректно для этого переходим в раздел: Verify Transactions and other scripts
Сумма прибыли в монетах от пылевой атаки составляет: 5000.00141092 BTC // $ 209364,284.08 United States Dollar
Продолжим пылевую атаку на другом примере. В качестве холодного кошелька будем использовать тот же адрес:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeKДля примера №2 пополним баланс на сумму: 0.033532 BTC или в единицах Биткоина: 33532 satoshi
Сохраним транзакцию TXID хэш от платежа пополнение баланса для дальнейшего построение Дерево Меркла (Merkle Tree)
Хэш платежа от пополнение баланса
Скопируем TXID: 655c533bf059721cec9d3d70b3171a07997991a02fedfa1c9b593abc645e1cc5 т.к. это хэш пополнение баланса холодного кошелька: 1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK далее открываем исходный код Python скрипта createrawtransaction.py и в строке №7 меняем значение на свои данные.
Меняем строку №5 вставим Private Key WIF
В строке №12 добавляем общую сумму баланса холодного кошелька. В нашем случае эта сумма составляет33532 satoshi
Прибыль от пылевой атаки.
Выбираем Биткоин Кошелек от которого в конечном итоге получаем прибыль в случае подтверждение майнерами изоморфизма. Так как мы рассматриваем пример №2 в нашем случае мы выбираем адрес Биткоин Кошелька: 15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt
В строке №9 нам необходимо указать Биткоин Адрес для пылевой атаки
Сумма пыли будет составлять 555 satoshi, в строке №15 указываем эту сумму.
Далее учитываемFee(комиссия для майнеров), эта сумму будет составлять226 satoshi
Также нам необходимо учитывать возврат наших средств обратно на наш холодный кошелек:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK т.к. мы выделили 781 satoshi для пылевой атаки, вычитаем эту сумму из общей суммы пополнение баланса холодного кошелька 33532 satoshi
В строке №16 указываем сумму возврат наших средств обратно на наш холодный кошелек:1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK
Запускаем наш скриптcreaterawtransaction.pyнажав клавишу«F5» или опцию:Run / Run ModuleF5
Запуск скрипта: createrawtransaction.py
Результат:
Мы получилиRawTXпылевой транзакции теперь перейдем в раздел Verify Transactions для того чтобы убедиться создана ли транзакция должным образом. Скопируем RawTX и вставим в поле ввода Verify transactions and other scripts
RawTX for performing isomorphism:
Цель нашей пылевой атаки получить максимальную прибыль отБиткоин Кошелька на которую мы отправляем 555 satoshi. Для этого мы переходим в раздел ScriptSig Isomorphism и преобразуем пылевую транзакцию в изоморфизм, согласно теории https://safecurves.cr.yp.to/ladder.html (две транзакции должны быть подтверждены майнерами). Первая транзакция это пылевая транзакция, где отправляется малая сумма в 555 satoshi, вторая транзакция это изоморфизм первой транзакции, где происходит обратный перевод средств из баланса жертвы пылевой атаки.
Полученный изоморфизм мы опубликуем в репозитории CryptoDeepTools
Согласно, теории описанная в разделе Create Dust Transaction нам необходимо изменить все существующие значение 74786964 в новой транзакции изоморфизма на все текущие txid которые были совершены в Биткоин Кошелек: 15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt на которую мы производим пылевую атаку с малой суммой 555 satoshi [ send_dust ]
Запустим скрипт указав print(tx.serialize().hex()[+10:+74]) и преобразуем весь список txid в потоковый формат hash
После того как мы получили все потоковые хеш форматы нам необходимо сохранить весь список заменивtxid, для этого открываем файл:isomorphism.txt в Notepad++ нажимаем клавиши:CTRL + F пишем: 74786964 заменить на: \ntxid\n
Переходим вCryptoDeepTools и выполним функцию замены в Notepad++ т.к. мы получили список txid теперь из списка GitHub скопируем и вставим весь список потокового хеш формата в файл: isomorphism.txt
Замена публичного ключа в файле: isomorphism.txt
Изоморфизм это новая транзакция и в место значение7075626b6579нам необходимо указать публичный ключ Биткоин Кошелька из которого мы хотим совершить транзакцию целью получение максимальной прибыли. Для этого переходим в файлPublicKey.txt запустим python скрипт: pubtoaddr.py для того чтобы убедиться соответствует ли публичный ключ к адресу для пылевой атаки.
После нам необходимо изменитьвсе существующие значение7075626b6579на значение в файле:PublicKey.txt (Все действие делаются также в Notepad++)
Биткоин адрес для получения всей прибыли:
Для перевода всех накопленных монет BTC нам необходимо сгенерировать совершенно новый Биткоин адрес в формате (SegWit):
Для того, чтобы получитьhash160для Биткоин адреса нам необходимо раскодироватьRedeemScriptиспользуем python скриптcreaterawtransaction.py
После получениеhash160из нового Биткоин Адреса(SegWit)нам необходимо открытьфайл: isomorphism.txt в Notepad++ и заменить значение 68617368313630 на полученное значение hash160
Мы добавили все необходимые значение для создание новой транзакции для получение прибыли из изоморфизма, теперь нам необходимо выделить весь текст на файле: isomorphism.txt нажав клавиши: CTRL + A после объединяем все в одну строку для этого необходимо нажать на клавиши CTRL + J в итоге мы получаем длинную строку с пробелами. Убираем пробелы нажав клавиши: CTRL + F заменяем пробелы. В итоге мы получаем новый RawTX для совершение транзакции.
Любая транзакция должна быть подтверждена майнерами для того чтобы RawTX отправить в поле раздела: Broadcast Transaction для передачи заявки на подтверждение майнерами, необходимо тщательно убедиться, что платеж создан корректно для этого переходим в раздел: Verify Transactions and other scripts
Сумма прибыли в монетах от пылевой атаки составляет:5001.51473912 BTC // $ 215831966,02 United States Dollar
References:
- [2] Bitcoin security – Anti-Dust Attack (Ajin S, Master of Computer Application, Amal Jyothi College of Engineering koovapally, Kottayam, India)
- [3] Data Insertion in Bitcoin’s Blockchain (Andrew Sward, Ivy Vecna, Forrest Stonedahl)
- [4] Bitcoin Will Bite the Dust (Kevin Dowd and Martin Hutchinson)
- [5] DATA ANALYTICS AND CONSENSUS MECHANISMS IN BLOCKCHAINS (Dániel FEHÉR)
- [6] Does Bitcoin Need Regulation: An Analysis of Bitcoin’s Decentralized Nature as a Security and Regulatory Concern for Governments (Hadeka Rasul Seton Hall University, 2018)
- [7] Exploiting Cryptocurrencies Toward Bitcoin Exchanges And Provided Solution For Current Problems (A. Punyavardhan Raj , G. Nithinb, A. Sai Bharathc, Ch. Abhishekd, B. Prasanth Kumare, Department of CSE, GMR Institute of Technology, Rajam, India)
- [8] Is Bitcoin gathering dust? An analysis of low-amount Bitcoin transactions (Matteo Loporchio, Anna Bernasconi, Damiano Di Francesco Maesa and Laura Ricci)
Данный материал создан для портала CRYPTO DEEP TECH для обеспечения финансовой безопасности данных и криптографии на эллиптических кривых secp256k1 против слабых подписей ECDSA в криптовалюте BITCOIN. Создатели программного обеспечения не несут ответственность за использование материалов.