В сентябре 2020 года пользователь отправил 1 млн USDT на некорректный адрес проекта Swerve.Finance. Деньги удалось вернуть: Tether заморозила эти средства и выпустила новые токены.
Такой сценарий невозможен для биткоина: нельзя заморозить монеты или удалить транзакции из блокчейна. Исправить ошибку можно до добавления транзакции в блокчейн. Для этого в биткоин-кошельках предусмотрена функция Replace-By-Fee (RBF).
Вместе с криптовалютным кошельком Blender Wallet рассказываем, как отменить и ускорить транзакцию в один клик. В конце статьи тестируем микширование биткоинов во встроенном сервисе Blender.io.
Отменяем транзакции в сети биткоина
Replace-By-Fee — это функция для изменения параметров отправки монет в мемпуле биткоина. Она позволяет заменить транзакцию на новую — с более высокой комиссией или другим адресом получателя.
Blender Wallet добавил функцию Replace-By-Fee в декабре 2020 года. В кошельке RBF включена по умолчанию. Ее можно отключить в настройках.
Мы создали новый кошелек и перевели на него 0,00297 BTC. Blender Wallet — иерархически детерминированный [hierarchical deterministic, HD] кошелек. Он автоматически генерирует SegWit и SegWit-совместимые адреса при получении и переводе биткоинов.
После этого мы подписали транзакцию на 0,001 BTC для тестирования RBF.
Транзакцию можно отменить только до включения в блокчейн, поэтому мы выбрали в настройках кошелька низкую на тот момент комиссию — 18,23 sat/Vb. Сразу после этого нажали кнопку «Отменить».
После ввода кода 2FA кошелек отменил неподтвержденную транзакцию. Монеты поступили на новый адрес Blender Wallet. Новая транзакция попала в блок через 20 минут.
Ускоряем биткоин-транзакции
В Blender Wallet есть два метода ускорения транзакций: Replace-By-Fee (RBF) и Child pays for parent (CPFP).
RBF заменяет транзакцию с низкой комиссией на транзакцию с высокой комиссией. CPFP повторно отправляет сдачу пользователя с более высокой комиссией. Это мотивирует майнеров быстрее подтвердить исходную транзакцию. Blender Wallet автоматически выбирает оптимальный способ ускорения транзакции.
Для тестирования этой функции мы подписали транзакцию на 0,001 BTC с комиссией 19,61 sat/vB. После этого нажали кнопку «Ускорить» — кошелек выбрал RBF.
Blender Wallet отменяет транзакцию с низкой комиссией. После этого кошелек добавляет в мемпул транзакцию с тем же адресом, но более высокой комиссией.
После увеличения комиссии майнеры добавили транзакцию в следующий блок.
Отправляем монеты через биткоин-миксер Blender.io
В интерфейс Blender Wallet встроен миксер Blender.io. Он смешивает биткоины пользователей с помощью алгоритма Madeamaze, созданного на основе технологии анонимизации транзакций CoinJoin.
Минимальная сумма микширования — 0,001 BTC. Комиссия сервиса составляет 0,5–2,5% от суммы транзакции. Кроме того, сервис взимает 0,0003 BTC за отправку каждый адрес назначения.
Мы отправили через Blender.io 0,00178237 BTC.
После подписи транзакции мы получили гарантийное письмо от Blender Wallet, которое подписано сервисным адресом кошелька. Документ содержит условия смешивания: депозитный адрес и комиссию миксера.
Проверить подлинность письма можно в сервисе Verify Message от Bitcoin.com.
После микширования получили 0,00142925 BTC. Комиссия миксера составила 0,681% от суммы транзакции + 0,0003 BTC.
На микширование биткоинов ушло около 30 минут. Миксер задерживает отправку монет на адрес назначения. Так аналитическим сервисам сложнее установить связь между транзакциями.
Blender.io не хранит данные, которые могут связывать отправителей и получателей транзакций. Он удаляет информацию о получателях смешанной транзакции через час после завершения смешивания.
Выводы
В ноябре 2011 года руководство Mt. Gox отправило 2609 BTC «в никуда» из-за бага в ПО биржи. В то время биткоин не поддерживал Replace-By-Fee. Эти монеты навсегда заблокированы в блокчейне биткоина.
Децентрализация и неизменность транзакций — основные принципы первой криптовалюты. В биткоине нет эмитента, который возвращает деньги по запросу.
С 2016 года пользователи могут отменять транзакции, но только до записи в блок. Важно вовремя заметить ошибку и быстро заменить транзакцию. Blender Wallet позволяет сделать это одним нажатием на кнопку.
Ранее ForkLog опубликовал подробный обзор Blender Wallet. Мы посчитали время на взлом кошелька, а также рассказали о системе меток и заморозке адресов для контроля трат.
ForkLogАвтор: ForkLog