Опыт использования Bitpay + Electrum + Trezor + RBF

Всем привет! Хочу поделится коротким постом об использовании следующей связки для оплаты: Bitpay + Electrum (+ RBF) + Bitcoin Trezor (Segwit адрес).

Bitpay, как вы может быть знаете, использует сейчас стандарт BIP70 без возможности оплатить старыми кошельками, где можно было указать адрес и сумму в биткойнах. То есть, не имея кошелька с поддержкой BIP70, вы не сможете оплатить счёт от Bitpay. Это, с моей точки зрения, «свинство» со стороны Bitpay — они толкают вас, прикрываясь заботой о защите от подмены bitcoin адреса вирусами на вашем компьютере, на то, чтобы вы заплатили им, раскрывая ваш IP адрес. С одной стороны, они правы — трояны и вирусы могут легко программно подменить Bitpay биткойн-адрес на свой и получить, таким образом, вашу оплату на хакерский адрес (то есть вы как бы не оплатите Bitpay счёт, а биткойны отправите). Но с другой стороны — они выбросили за борт биткойн-пользователей, которые по разному роду причин, не хотят или не могут использовать BIP70 кошелёк. Время рассудит, кто был прав. Пока что Bitpay рапортует о значительном снижении ошибок в количестве оплат.

Второе, что было плохо в этой ситуации — многие кошельки, которые поддерживают BIP70 — не работают с Segwit адресами, а таким образом, не позволяют вам пользоваться преимуществом снижения комиссий за счёт Segwit (например, для этого ранее я пользовался Adnroid кошельком Mycelium).

Но решение есть. И сегодня я его опробовал.  Я оплачивал счёт за авиабилеты (Destinia) через Bitpay. Использовал Electrum (3.0.5) + Bitcoin Trezor.  Electrum нормально работает со стандартом BIP70, к тому же с Segwit счетами Bitcoin Trezor (для оплаты Bitpay инвойса надо копировать URL «запроса» вручную, без сканирования QR кода оплаты: вкладка «Скопировать» в Bitpay URL адрес, где будет подстрока «?r=…» и вставить его в Electrum в поле адреса для оплаты), но я помимо этого использовал фишку RBF (Replace by Fee). Если вы не знаете, что такое RBF — то кратко: вы отправляете транзакцию со специальным признаком, что вы можете изменить комиссию платежа (при этом, позднее, вы можете создать новую транзакцию до включения её в блокчейн, изменив комиссию в любую сторону, и это не будет считатся двойной тратой). Чуть позднее, после оплаты, я изменил комиссию выше с помощью RBF. То есть ID транзакции изменился. Сначала Bitpay мониторил старую транзакцию и не было признаков, что он переключился на мониторинг новой (новая транзакция получила к тому времени 2 подтверждения, а Bitpay сообщал мне, что оплата в ожидании и предлагал мне линк на старую транзакцию для мониторинга). Я написал письмо программеру в Bitpay и в Destinia. Но, пока писал, Bitpay переключился на новую и отработал инвойс. Пришлось писать извинения в Bitpay на отправленное письмо.

Таким образом, мой эксперимент показал несколько успешных применений современного способа использования Bitcoin: оплата с Segwit адресов и использования более низких комиссий за счёт этого; использование RBF опции и изменение комиссии после оплаты применительно к биллингу Bitpay; успешное тестирование BIP70 из Electrum.