Вернуться в блог

Отправляем и получаем Tether Usdt с помощью кошелька Trezor T

Владимир Абовян

Владимир Абовян

Команда Cryptonist
14 июля 2019Время прочтения: 5 мин
Навигация по статье
Скрыть

Многих пользователей аппаратных кошельков волнует один и тот же вопрос – как можно получать, хранить и тратить криптовалюту Tether USDT. Напомню, что особенность этого стейблкойна заключается в привязке 1 USDT к 1 доллару. Это позволяет сохранить ценность своих активов во время высокой волатильности на рынке криптовалют. В этой статье я покажу, как используя аппаратные кошельки, можно совершать платежи с Tether.

Как работает Tether

Tether использует данные блокчейна биткоина через протокол OMNI Layer – программное обеспечение с открытым исходным кодом, которое взаимодействует с блокчейном биткоина и обеспечивает движение, то есть получение и трату токенов USDT.

Помимо Tether существует огромное множество других цифровых активов, использующих этот протокол. Ознакомиться с ними можно в omni обозревателе.

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

Структура OMNI транзакций

Рассмотрим omni платеж с помощью обозревателя обозревателя блокчейна от SatoshiLabs.

Ссылка на транзакцию - 30f9199cc09bacf64e2e50f0ff812053fc6979cd711d0cbee0b3a31ff0801554

trezor_ledger_tether_keepkey_usdt_01a

На первый взгляд она выглядит как обычная, но если присмотреться, то во втором выходе мы можем обнаружить строку:

OMNI Simple Send 2143,31 TetherUS (#31)

И здесь важно отметить четыре особенности такого платежа:

  • Адрес отправителя и сдачи должны быть идентичны. В спецификации протокола OMNI есть правило, которое определяет получателя, как выход с наибольшим индексом. Так как многие интерфейсы конфигурируют порядок выходов по неизвестному нам алгоритму, то может случиться так, что выход сдачи будет с наибольшим индексом, чем выход получателя, таким образом, отправитель отправит USDT сам себе. Во избежании этого, необходимо чтобы адрес отправления был равен адресу сдачи; в этом случае OMNI протокол проигнорирует этот выход и определит получателя с адресом 1LxNaNcfbDN6ZqXCFzM1Wj1ueDFzn6Zpo2;
  • Помимо USDT мы отправляем получателю минимальную сумму в биткоинах 546 сатоши. Этот выход определяет адрес получателя;
  • При отправлении USDT необходимо иметь на адресе Биткоины, так как комиссию за эту транзакцию мы будем выплачивать в них;
  • Очевидное условие, но я все же решил его тоже озвучить – на адресе отправителя должна быть необходимая сумма в USDT.
Помимо принципа Адрес отправителя = Адресу сдачи, можно применить хитрость и совершить транзакцию без сдачи. В этом случае, нужно, чтобы при отправлении у нас была небольшая сумма в BTC и, чтобы она вся ушла на выплату комиссии. Такая транзакция будет иметь вид 1 вход и 2 выхода (получатель, op_return).

Перед тем как начать практиковать такие платежи, я бы хотел разобрать выход со строкой OMNI Simple Send 2143,31 TetherUS (#31).

Разбираем OP_RETURN

В сыром виде он выглядит вот так:

{
"value": 0,
"n": 1,
"scriptPubKey": {
"asm": "OP_RETURN 6f6d6e69000000000000001f00000031e71f84c0",
"hex": "6a146f6d6e69000000000000001f00000031e71f84c0",
"type": "nulldata"
}

Отбросим лишний код.

OP_RETURN 6f6d6e69000000000000001f00000031e71f84c0

OP_RETURN – это команда биткоин скрипта, которая позволяет записать произвольные данные в блокчейн. С помощью нее мы можем передать привет другу, сделать предложение девушке, записать хеш значение музыкального файла и поместить его в блокчейн и при возникновении споров доказать свое авторство. Я думаю, что вы уже догадались, что именно эта команда и отвечает за совершение OMNI транзакции.

Теперь рассмотрим этот код, который записан в шестнадцатеричном формате или в HEX.

6f6d6e69000000000000001f00000031e71f84c0

Разделим его на смысловые части:

6f6d6e69 00000000 0000001f 00000031e71f84c0

1. 6f6d6e69 при переводе c HEX в кодировку ASCII означает “omni”. Это можно проверить с помощью соответствующего конвертера;

2. 00000000 при переводе с HEX в десятичный формат означает цифру 0, в спецификации OMNI этот индекс означает команду Simple Send, то есть отправку.

3. 0000001f при переводе с HEX в цифры равен 31. На странице омни-обозревателя можно найти индекс этого номера за которым закреплен токен Tether;

4. 00000031e71f84c0 при переводе в десятичный формат означает 214 331 000 000. Почему такая большая цифра? Дело в том, что USDT отправляется в микроцентах. 1 USDT = 100 000 000 микроцентам.

Последняя часть данных должна иметь длину в 16 символов. То есть, если мы хотим отправить 1usdt, который равен 5f5e100, то мы добавляем 9 нулей впереди, чтобы получилось 16 символов – 0000000005f5e100 и так по аналогии с другими суммами.

Повторяем важное!

Во избежание ошибок еще раз зафиксируем следующие утверждения:

  • Адрес отправления = Адресу сдачи
  • Адрес отправления должен иметь баланс в BTC для оплаты комиссии
  • Получателю отправляем пыль в 546 сатоши
  • Формируем правильный код в HEX. Первые три блока данных 6f6d6e69 00000000 0000001f статичные (без пробелов), а последние формируем с помощью google-конвертера при условии, что 1usdt = 100 000 000 микроцентам
Первые транзакции совершайте на маленькие суммы и в периметре кошельков, которые дают полный контроль над средствами. В противном случае вы потеряете деньги!

Получаем USDT

Для получения я использую адрес 3L7VHGV5nUW4Gr3jH64pqVoMH5CuJLDTyH, мне необходимо убедиться, что на нем имеются биткоины, которые пригодятся для расходов на комиссию. Не будет лишним сверить адреса на дисплее аппаратного кошелька и на ПК.

Запомним путь деривации расчет ключа m/49’/0’/1’/0/3, он нам пригодится немного позже.

Обратите внимание, что биткоин адрес получателя должен начинаться с 1 или 3, формат bech32, начинающиеся с «bc1», не поддерживаются протоколом Omni.

Теперь отправляем USDT с биржи или горячего кошелька на аппаратный кошелек и дожидаемся подтверждения.

trezor_ledger_tether_keepkey_usdt_04

Транзакцию также можно посмотреть в ОМНИ обозревателе.

trezor_ledger_tether_keepkey_usdt_05

Обратим внимание, что OMNI обозреватель не отображает сдачу, как это делает биткоин обозреватель.

Тратим USDT

Как я говорил ранее, чтобы успешно совершить транзакцию необходимо, чтобы адрес сдачи совпадал с адресом отправления. В интерфейсе trezor.io это сделать не удастся, так как у нас нет возможности управлять выходами. Поэтому воспользуемся интеграцией Trezor T с горячим кошельком Electrum.

Интеграция с Electrum

Скачивайте Electrum с официального сайта сообщества electrum.org!!!

Даем название кошельку.

trezor_ledger_tether_keepkey_usdt_06

Выбираем тип кошелька – Standard wallet.

trezor_ledger_tether_keepkey_usdt_07

Выбираем опцию Use a Hardware Wallet.

trezor_ledger_tether_keepkey_usdt_08

Устанавливаем желаемый тип соединения – Webusb новый протокол обмена, а bridge требует наличия приложения trezor bridge.

trezor_ledger_tether_keepkey_usdt_09

Если включена кодовая фраза (passphrase), то вводим ее.

trezor_ledger_tether_keepkey_usdt_10nn

Напомню, что в Trezor T есть опция ввода кодовой фразы и через устройство, где выбираем пункт Device.

trezor_ledger_tether_keepkey_usdt_13nmin

Выбираем формат ключей и пути деривации. Так как я использую адрес, который начинается с 3, то это p2sh-segwit формат. В путях деривации на уровне аккаунтов устанавливаем цифру 1 (первый аккаунт 0, второй 1) в соответствии с путями, которые были предложены при использовании ключа – m/49’/0’/1’/0/3.

trezor_ledger_tether_keepkey_usdt_11nn

Шифруем файл кошелька.

trezor_ledger_tether_keepkey_usdt_22nn

Попадаем в интерфейс кошелька Electrum. Мы его можем определить по первому поступлению в 546 сатоши, которые мы отправили недавно.

trezor_ledger_tether_keepkey_usdt_13n

И первое, что нам необходимо сделать – это выключить автоматическую подстановку адресов сдачи, чтобы адрес отправления и сдачи были идентичны.

Создаем транзакцию

Выбираем адрес, на который были отправлены токены tether. Нажимаем правой кнопкой мыши опцию Spend from, которая позволяет тратить средства непосредственно с него.

trezor_ledger_tether_keepkey_usdt_15

В данном окне я уберу лишние входы (правая кнопка и Remove), которые мне не нужны, так как достаточно будет средств для оплаты комиссии и с одного входа.

trezor_ledger_tether_keepkey_usdt_16

И вводим в строке Pay to команду OP_RETURN и код в HEX:

6f6d6e69000000000000001f 000000001dcd6500

Последняя часть данных означает перевод 5 USDT, то есть 500 000 000 микроцентов. При переводе этой цифры в HEX мы получаем 1dcd6500. В конце ставим запятую и цифру 0, которая будет означать, что на этот выход мы отправляем ноль биткоинов.

trezor_ledger_tether_keepkey_usdt_17

Биткоины отправленные на выход с OP_RETURN будут сожжены навсегда!!!

Добавляем второй выход с адресом получателя – 3KStF5tPingpcuqM1fi9P99KYFcaCavDG3 и минимальной суммой отправления в 546 сатоши.

trezor_ledger_tether_keepkey_usdt_18

Комиссию я установлю максимальную в 23049 сатоши, чтобы платеж быстро подтвердился. Еще раз тщательно проверяем вход, выходы, суммы и нажимаем на кнопку Send.

trezor_ledger_tether_keepkey_usdt_19

Подтверждаем действия на аппаратном кошельке. Мы видим, что Trezor T распознает эту транзакцию и отображает команду OP_RETURN в удобном виде. Сначала соглашаемся с намерением отправить USDT, далее сверяем адрес получателя и соглашаемся с комиссией.

Транзакция успешно совершена.

Подтверждение транзакции

Теперь самое время по id посмотреть на то, как выглядит транзакция в обозревателе биткоина.

trezor_ledger_tether_keepkey_usdt_24

Мы видим, что адрес отправления используется один и тот же. Мы видим пыль предназначенную для получателя и также видим Simple Send 5 Tether USDT.

Можно скопировать id транзакции и посмотреть ее в омни обозревателе.

trezor_ledger_tether_keepkey_usdt_25

Здесь она выглядит также за исключением отображения сдачи.

Подождем подтверждения.

Подтверждение в блокчейне биткоина.

trezor_ledger_tether_keepkey_usdt_26

Подтверждение в omni обозревателе.

trezor_ledger_tether_keepkey_usdt_27

Как потратить USDT с помощью аппаратных кошельков Keepkey, Ledger Nano S, Nano X?

Пользователи других аппаратных кошельков могут также повторить все эти действия с помощью интеграции с кошельком Electrum, которые можно увидеть в следующих видео:

Интеграции Ledger Nano S и Electrum

Интеграции Trezor и Electrum

Не будет лишним также ознакомиться с фишингом сайта Electrum

Весь процесс совершения транзакции Tether я демонстрировал в одном из роликов на нашем YouTube канале.

Подпишитесь на рассылку

Свежие новости из мира криптовалюты,
блокчейна, обзоры аппаратных кошельков

Похожие статьи
trezor-t-monero-xmr-cover02
Интеграция Trezor T с Monero GUI: Как получить, хранить и тратить криптовалюту Monero XMR

В этой статье мы узнаем, как интегрировать аппаратный кошелек Trezor T с интерфейсом Moner...

Время прочтения: 7 мин 06.11.2019
trezor-one-attack
Уязвимость OLED-дисплеев и меры предотвращения

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

Время прочтения: 5 мин 14.10.2019
trezor-firmware-bitcoin-only-cover
Кошельки Trezor – новая прошивка только для Биткоина: особенности, как установить и пользоваться

Эта статья будет полностью посвещена новой прошивке для биткоина, которую недавно выпустил...

Время прочтения: 3 мин 07.10.2019
tron-trx-ledger-nano-s i-ledger-nano-x-cover
Как получить, хранить и тратить криптовалюту TRON (TRX) на Ledger Nano X и Nano S

Многие владельцы аппаратных кошельков Ledger Nano X и S не могут добавить криптовалюту TRX...

Время прочтения: 12 мин 26.09.2019
trezor-exodus_cover
Интеграция горячего кошелька Exodus с Trezor!

Зачем мне эта интеграция? В первую очередь это дополнительный клиент для управления крипт...

Время прочтения: 7 мин 07.08.2019

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

Подписаться
Подписка успешно
оформлена!

Вы всегда сможете отменить подписку
по ссылке «Отменить подписку» в письме.

Спасибо, за Ваш отзыв!

После проверки модератором,
отзыв будет опубликован.

Спасибо, Ваша
заявка отправлена!

Мы свяжемся с вами в ближайшее время.

Заказать
обратный звонок

Оставьте свои данные и мы свяжемся с вами




Начать обучение
«Интеграция горячего кошелька Exodus с Trezor!»

Оставьте свои данные
и мы свяжемся с вами