Как безопасно тратить из сжатого ключа офлайн?

Armory хорошо поддерживает автономные транзакции, но не поддерживает сжатые ключи.

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

Я не эксперт по биткойнам, это точно. Как убедиться, что я создаю «безопасную» транзакцию в автономном режиме? Я видел сервисы Brainwallet и Coinbase, надежны ли они? Они показывают какой-то JSON, но я не совсем уверен, что замечу, что в этом JSON что-то не так...

Ответы (2)

Создать ручную автономную транзакцию не очень сложно, вам просто нужно быть осторожным и думать о том, что вы делаете.

Прежде чем продолжить, убедитесь, что у вас есть публичный биткойн-адрес и закрытый ключ.

Вот что я делаю (предполагается, что вы отправляете некоторое количество BTC на один адрес, часть обратно себе в качестве сдачи, а часть в качестве комиссии за транзакцию)

  1. Создайте загрузочный компакт-диск Live Linux.
  2. Загрузите https://github.com/brainwallet/brainwallet.github.com/archive/master.zip и сохраните его на USB-накопителе.
  3. Откройте адрес https://blockchain.info/unspent?address=1publicbitcoin и вставьте его в текстовый редактор.
  4. Это (из 3) список всех неизрасходованных транзакций для биткойн-адреса, мне нравится вручную выбирать транзакции, которые я хочу использовать в качестве входных данных. например. если я хочу отправить 1 биткойн, я мог бы указать транзакцию 0,5 и 0,6 BTC, а не транзакцию 5 BTC.
  5. Помните, что транзакции осуществляются в 1/100 000 000 биткойна.
  6. Удалите транзакции, которые вы не хотите использовать в качестве входных данных, для этого удалите транзакцию из текстового редактора, включая "{" и "},"
  7. Если вы удалили последнюю транзакцию в списке, убедитесь, что после последней транзакции нет запятой.
  8. Сохраните содержимое этого текстового файла на USB-накопитель с кодом кошелька.
  9. Завершите работу, отключите компьютер от сети, отсоедините жесткие диски и загрузитесь с компакт-диска live linux.
  10. Откройте код Brainwallet в интернет-браузере.
  11. Если ваш закрытый ключ начинается с 5 (несжатый) или L (сжатый), перейдите к шагу 15.
  12. Вам нужно преобразовать свой закрытый ключ в формат, который начинается с 5 или L.
  13. Если это 64-символьный шестнадцатеричный код, введите его в раздел «секретный показатель» на вкладке генератора и скопируйте закрытый ключ.
  14. Если это мозговой кошелек (фраза-пароль), введите фразу-пароль в раздел «фраза-пароль» на вкладке генератора и скопируйте закрытый ключ.
  15. Перейти на вкладку транзакции
  16. Введите закрытый ключ, нажмите «Отмена», когда вас попросят загрузить историю транзакций (это не сработает, так как у вас все равно отключен воздух).
  17. Убедитесь, что «Исходный адрес» — это ваш биткойн-адрес.
  18. Нажмите «Редактировать входы» и вставьте тест неизрасходованных транзакций.
  19. Поле BTC рядом с исходным адресом обновится, чтобы показать стоимость выбранных вами транзакций. Это количество биткойнов, которое вы потеряете, если испортите комиссию за транзакцию, поэтому будьте осторожны.
  20. Возьмите количество биткойнов из 19 и вычтите комиссию за транзакцию (например: 0,0003). Результатом будет количество биткойнов, которое вам нужно потратить (включая сдачу).
  21. Измените адрес назначения на адрес, который вы хотите заплатить, и установите сумму.
  22. Нажмите кнопку [+], чтобы добавить еще один адрес назначения, введите свой биткойн-адрес (для сдачи) и установите сумму, которая будет равна 20 минус платеж до места назначения.
  23. Теперь на калькуляторе сложите две суммы платежа и добавьте комиссию за транзакцию. Это должно полностью соответствовать сумме в эталонных транзакциях из шага 19.
  24. Прокрутите вниз и нажмите «Переподписать». Это подписывает транзакцию.
  25. Скопируйте содержимое «Raw Transaction» в текстовый редактор и сохраните его на USB-накопитель.
  26. Выключите, снова подключите жесткие диски, сети и загрузитесь.

Теперь у вас есть подписанная транзакция, которой еще нет в сети биткойн. Теперь вам нужно отправить его в сеть биткойнов.

Мы проведем окончательный тест сделки.

  1. Посетите https://blockchain.info/decode-tx (заголовок должен быть Decode Raw Transaction)
  2. Вставьте необработанную транзакцию и нажмите «Отправить транзакцию».
  3. Прокрутите результат вниз и проверьте следующее:
  4. vout_sz — количество адресов назначения (не включает комиссию за транзакцию)
  5. hash — это хэш транзакции, который будет доступен для поиска на blockchain.info и т. д. (после отправки)
  6. vin_sz — количество входных транзакций, на которые вы ссылались
  7. out содержит разделы (для каждого адреса назначения), поэтому проверьте, что значения «адреса» соответствуют тому, на что вы ожидаете платить монеты.
  8. Также сложите разделы «значение» и разделите их на 100 000 000, чтобы получить общее количество биткойнов, которые будут отправлены (разница между этим и всеми указанными входными данными будет выплачена в качестве платы за майнинг)

Если вас полностью устраивают вышеуказанные проверки, теперь вы можете транслировать транзакцию.

  1. Перейдите на https://blockchain.info/pushtx (название — широковещательная транзакция)
  2. Вставьте необработанную транзакцию и нажмите «Отправить».
  3. Должно быть написано «Транзакция принята», если все в порядке.
Спасибо за этот подробный ответ. Я все еще напуган, потому что ни один из этих шагов не показывает стоимость биткойна, а если забыть о нуле, 90% моего перевода будет предложено в качестве комиссии... Кроме того, декодирование-tx блокчейна не показывает сумму комиссии :( Я надеюсь, что смогу умножить/поделить на 100 000 000, не испортив это :)
Вам не нужно удалять неиспользуемые входные транзакции, но большинство инструментов, в том числе инструмент для интеллектуального кошелька, будут ссылаться на все транзакции, а не на наиболее важные.

Установите Электрум в автономной системе и импортируйте в нее закрытый ключ. Затем запустите команду deseed, чтобы создать версию кошелька только для просмотра:

electrum deseed

(Вы также можете явно указать файл кошелька с помощью ключа -w)

Затем вы перемещаете кошелек без семян в онлайн-систему и создаете там транзакцию, сохраняете ее на USB-накопитель, открываете и подписываете в автономной системе, а затем сохраняете подписанную транзакцию на USB-накопителе для трансляции с использованием онлайн-системы. Да, это запутанно, но это работает.

После установки Electrum в автономной системе и импорта ключа mktxсообщает «Недостаточно средств», что достаточно справедливо, поскольку автономный клиент не может узнать, сколько средств доступно по соответствующему адресу. Так что это не работает.
@ user10113 Я исправил свой ответ.