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

Отправляем и получаем 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 канале.

Любое копирование материалов допустимо
со ссылкой на данную страницу.
Подпишитесь на рассылку

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

Похожие статьи
luchshie-apparatnie-koshelki-cover
Лучшие аппаратные кошельки для криптовалют в 2020 году

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

Время прочтения: 15 мин 26.11.2019
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

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

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

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

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

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

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

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

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

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




Начать обучение
«Как получить, хранить и тратить криптовалюту TRON (TRX) на Ledger Nano X и Nano S»

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