DogeMiner - Mine and Earn free Dogecoin

Зависла транзакция ? Как протолкнуть методом » Двойной трати» ?

 

В связи с тем, что время от времени у пользователей «зависают» транзакции из-за низкой или неправильно указанной комиссии — возникает проблема повторной отправки платежа.

 

Это можно сделать, например, через Bitcoin Core клиент, но для этого его нужно как минимум скачать и подождать пока синхронизируется весь Блокчейн (около 100 Гб на начало 2017 года).

 

Другой вариант — вручную собрать транзакцию и отправить ее в сеть, это можно сделать онлайн имея только приватный ключ. Далее описывается именно такой способ.

Различные сервисы предоставляют онлайн кошельки, но многие из них хранят приватный ключ у себя — это далеко не лучший вариант, в один прекрасный момент можно остаться с нулевым балансом, поэтому к выбору онлайн-кошелька стоит отнестись с особой тщательностью.

В данном примере будет использоваться сервис https://txid.io/wallet/ , основанный на Open-Source решении Coinb.in, который не хранит Ваш приватный ключ и даже не передает его по сети, а все действия с ним выполняются в браузере, приватный ключ никогда не передается за пределы вашего компьютера.

1) Нужно знать свой приватный ключ, без него ничего нельзя сделать.  В случае, если вы используете онлайн кошелек типа blockchain.info — там этот ключ можно экспортировать.  В случае использования core клиента — есть команда dumpprivkey.  Этот пример показан для простого случая, когда используется один вход и один выход.  Сравнительно новая фича Replace-by-Fee (RBF) в данном конкретном примере не используется.

 

1а)  В случае использования популярного Онлайн-кошелька https://blockchain.info отдельная инструкция по получению приватного ключа для нужного адреса вынесена вот сюда https://forum.bits.media/index.php?/topic/32969-двойная-трата-double-spending-пошаговая-инструкция-с-картинками/&do=findComment&comment=819393

 

2) Для наглядного примера используем следующую транзакцию
https://www.blocktrail.com/BTC/tx/c3c63dbcf7777b4a10473dd59318ad1433abe454276b7a5369e3870a8174a380

post-26542-0-53328500-1483811184_thumb.jpg

С адреса 1AuN48871owVr3SRbidwxMRACsi2QoqekD на адрес 12m5oXmDzY4Ad7rKuF88sFf29bEDiyEEPL было отправлено 0.01019000 BTC (191 байт) с очень низкой комиссией 0.00001000 BTC. Такая транзакция практически никогда не будет подтверждена, вероятность очень низкая.

Задача сделать двойную трату — Double Spending, обычный клиент этого сделать не позволит, но если мы будем собирать транзакцию вручную, то это не проблема. Приступим.

3) Нам нужны данные о входах, для этого нам необходима указанная транзакция в шестнадцатеричном raw-формате.
Взять ее можно, например, на blockchain.info, добавив в адресную строку браузера ?format=hex

 

https://blockchain.info/tx/c3c63dbcf7777b4a10473dd59318ad1433abe454276b7a5369e3870a8174a380?format=hex

01000000012abae037dd7687ca4b91455f1b48f21c24d193e830bb170d6a3c66ca48509e6f020000006a47304402205ffb001b226e86485b808e972f4b114db4916009752b711cdab29e082ae608c70220712ef618bd4dfd2c7bd8c581ba55ed794e09b866c68f0330d56f659cf7cfc41b012102809dc03bef8fa77bb15407e065c50fb5855372ed374eb05db4266c9011474645ffffffff01788c0f00000000001976a914134e6fd3425fd01c8de1dd75570e942ce39eccfd88ac00000000

Открываем https://txid.io/wallet/ и в меню выбираем Verify, вставляем текст транзакции и нажимаем Submit

post-26542-0-03929300-1483811185_thumb.jpg

Нас интересует только вход, а именно Txid (6f9e5048ca663c6a0d17bb30e893d1241cf2481b5f45914bca8776dd37e0ba2a), номер выхода N (2).

4) Также нам понадобится подписанный скрипт предыдущего выхода, его мы получаем таким же образом. Для этого получаем предыдущую hex транзакцию, которая была входом для адреса, с которого мы отправляли монеты.
https://blockchain.info/tx/6f9e5048ca663c6a0d17bb30e893d1241cf2481b5f45914bca8776dd37e0ba2a?format=hex

0100000001030f1a5d236253755393f3fa79405b77bebb9678653cb0371210fec33ded146f070000008b483045022100f7841029295f33782e6a7e0c3715a59a7db601148f5c56640c7675541be15eec02200adabfda318f417a2c51fb0a2bc152ad9ad67f065ed73a77cf7b0852d3959ab30141047146f0e0fcb3139947cf0beb870fe251930ca10d4545793d31033e801b5219abf56c11a3cf3406ca590e4c14b0dab749d20862b3adc4709153c280c2a78be10cffffffff15a4cc0100000000001976a9146324e56e4df5f8b8ae15e39c7c674deb67f550a888acf3eb0700000000001976a9144b993d0e6587c927c02e39ad3182ccc10a67a61b88ac60900f00000000001976a9146ca05640f6e89a50a27fe09f453bc3db9bcd064488acf18d1200000000001976a9144ebea438ff16b3286e7998a4299d29fde64fb3de88acdf9b1500000000001976a91456a86a5cffa4ae3d07b211b0c5f40f08b8cab7a188ac57d219000000000017a914ab40626275feee23341fbd1fff593bcfaad7a2f48722b024000000000017a914df829efb120fdd8910947ffd4505bb3f7904d4d687213c3000000000001976a914162d1d879ace28171e411e17ee299969bed2ce1488ac104e3800000000001976a914a49ba60dbb898a6508d252631d756cf154fb9fee88acec1d3b00000000001976a91410271bd45e3e3289ae5041a4edabacba1749da9888ac007c92000000000017a9146a8743c6fb7679a7d5f65dc7f020c478291d2c0a875365dc00000000001976a914b8fed54a741a3b25243781372798ac03e1486e5f88ac603c1701000000001976a914afe7c0ebed0013b35ac6a53a108bfd5e0fdb326f88acec609d01000000001976a914e5fe2f7ae1ce179294b452be8dac9140dd766ff888ac619678070000000017a914871ca8a083161999a7fcea6077fca65d0d9d8da687f01358080000000017a914f95b152273931b61ba1078fc3288fb6844e41c04874744440d000000001976a914ff4c10afb6d0ffd58f2a8490ebd1068a4a24d53588acf07be111000000001976a91433602f31035f03f0c541bbd5b797501492402da188ac70f0b32c000000001976a9147bda6b0d53273b256731e97e1c2ef2c206cfe85688acf0d10295000000001976a914ec212c35086ed5242b268db7d95391402b1a58d388acc04e8a170b0000001976a91443849383122ebb8a28268a89700c9f723663b5b888ac00000000

Открываем https://txid.io/wallet/ и в меню выбираем Verify, вставляем текст транзакции и нажимаем Submit

post-26542-0-40905400-1483811185_thumb.jpg

Находим наш адрес 1AuN48871owVr3SRbidwxMRACsi2QoqekD и сохраняем значение Script (76a9146ca05640f6e89a50a27fe09f453bc3db9bcd064488ac)

 

Все те же самые данные можно получить и из других блокчейн-эксплореров, не обязательно использовать blockchain.info.

 

Например,

https://bitaps.com/api/raw/transaction/6f9e5048ca663c6a0d17bb30e893d1241cf2481b5f45914bca8776dd37e0ba2a

{«hex»: » __raw transaction text__ «», «hash»: «…»}

 

Также, например, по ссылке https://live.blockcypher.com/btc/decodetx/ можно всю информацию получить в одном месте, порядковый номер выхода посчитать, начиная с нуля.

 

 

5) Открываем https://txid.io/wallet/ и в выпадющем меню выбираем New -> Transaction

post-26542-0-73454400-1483811185_thumb.jpg

6) Нам нужно указать данные как о входах, так и о выходах.
Сначала в закладке Inputs (входы) указываем данные, которые мы получили в пунктах 3 и 4.

post-26542-0-13033100-1483811186_thumb.jpg

7) Далее указываем Outputs (выходы), можно указать тот же самый адрес получателя, а можно указать другой. В поле Amount указываем сумму к отправке за вычетом комиссии за перевод, комиссия автоматически посчитается и отобразится ниже в поле Transaction Fee.  В данном конкретном примере 0.0002 будет вполне достаточно.

Нажимаем Submit, видим новую сгенерированную транзакцию, а также ее размер. Этот размер неподписанной транзакции.
Копируем hex-текст транзакции в буфер обмена.
post-26542-0-43892000-1483811186_thumb.jpg

01000000012abae037dd7687ca4b91455f1b48f21c24d193e830bb170d6a3c66ca48509e6f020000001976a9146ca05640f6e89a50a27fe09f453bc3db9bcd064488acffffffff0140420f00000000001976a914134e6fd3425fd01c8de1dd75570e942ce39eccfd88ac00000000

8) Подписываем.  Идем в меню Sign, указываем приватный ключ (он никуда не передается, вся работа с ключом происходит в браузере), нажимаем Submit и получаем уже подписанную транзакцию.

post-26542-0-81878200-1483811186_thumb.jpg

01000000012abae037dd7687ca4b91455f1b48f21c24d193e830bb170d6a3c66ca48509e6f020000006a47304402202492709f4d4a420b237615cb00b85e6a7fa6b5f08b397aeefb806a16c382684f0220348d7ff0d92ff8c628c01a79888da6cba4691da37808f07e82ceeffa71f4711f012102809dc03bef8fa77bb15407e065c50fb5855372ed374eb05db4266c9011474645ffffffff0140420f00000000001976a914134e6fd3425fd01c8de1dd75570e942ce39eccfd88ac00000000

Смотрим ее размер, убеждаемся, что указанной ранее комиссии достаточно для 191 байт.

 

9) У нас есть новая и уже подписанная транзакция для двойной траты. Чтобы убедиться, что все сделали правильно,
еще раз открываем в новом окне страницу Verify https://txid.io/wallet/#verify , вставляем текст транзакции из п.8 и нажимаем Sumbit.
Проверяем выход — адрес и сумму.

post-26542-0-08478900-1483811187_thumb.jpg

10) Осталось только отправить транзакцию в сеть.
В меню выбираем Broadcast https://txid.io/wallet/#broadcast , вставляем текст подписанной транзакции и отправляем в сеть.

post-26542-0-52019000-1483811187_thumb.jpg

В результате получаем номер новой транзакции с двойной тратой — Txid: 1cd32dd0cadbd8b01027729314af182136053850f51c665cea00ac8b6232cc47

11) В случае какой-либо ошибки, если транзакцию отправить не удалось через пункт Broadcast — пытаемся отправить ее в сеть через
любые другие Push-сервисы, наиболее популярные можно найти на данной странице https://en.bitcoin.it/wiki/Transaction_broadcasting
12) Так как это double-spending транзакция, то не все ноды и, соответвенно, Блокчейн-Эксплореры смогут сразу отобразить ее корректно до подтверждения сетью, поэтому рекомендуется проверять новую транзакцию в разных местах.

 

post-26542-0-81303200-1483811195_thumb.jpg

 

post-26542-0-29927000-1483811196_thumb.jpg

 

post-26542-0-78422500-1483811196_thumb.jpg

 

После того, когда новая транзакция будет подтверждена и включена в блок — все встанет на свои места и она будет доступна в любом блок-эксплорере.

post-26542-0-27060600-1483811197_thumb.jpg

Litecoin Miner - Mine and Earn free Litecoin HashFlare

О admin

Оставить комментарий

Ваш email нигде не будет показан. Обязательные для заполнения поля помечены *

*