Всего через две недели после того, как coinbase объявила о реализации Segwit, была обнаружена ошибка, из-за которого в системе пропадают биткоины, когда пользователь оплачивает продавцу через Coinbase Commerce. Об этом сообщает Trustnodes.
Эта проблема связана с протоколом для обмена данными между торговцем и его клиентом, BIP70. Coinbase, видимо, не обновила его.
«Они не обновили BIP70 для использования SegWit-адресов. В результате ваши монеты отправляются не-SegWit адресам и теряются в их отслеживающей системе», – пишет пользователь reddit, производящий впечатление знающего разработчика.
Это приводит к ситуациям, когда после того, как вы отправляете свои биткоины, продавец не видит подтверждения, поскольку вся информация остаётся где-то на стороне Coinbase.
Coinbase пока никак не объяснила, что именно происходит, однако этот малоизвестный BIP70, по всей видимости, вызывает проблемы уже не в первый раз.
О проблемах с платежами из-за BIP70 сообщалось еще в 2016 году. Тогда тестировщик биткоин-продуктов Патрик Паттон описывал проблему следующим образом:
«Последние несколько раз, когда он использовал запрос на платеж, полученный от Coinbase, в кошельке выскакивала фатальная ошибка процесса BIP 70, которая требовала либо откатиться до BIP 21 (это старая версия BIP 70), либо без возможности обращения за помощью».
Более того, в 2016 году сообщалось о проблемах с безопасностью, связанных с BIP70. Но Coinbase предприняла действия, чтобы их устранить.
Очевидно, внедрение SegWit было поспешным – из-за постоянного давления со стороны пользователей, поддерживающих bitcoin core. Но SegWit – это довольно сложное ПО, особенно если речь о сервисах вроде обработки коммерческих платежей.
Тем временем, распространение самого SegWit остается на уровне 30%, и это несмотря на то, что с момента его активации прошел почти год. Причина, возможно, в том, что внесение подобных изменений в сложные системы необратимых денежных платежей, обслуживающие миллионы клиентов и более ста тысяч продавцов, может обойтись очень дорого.
Следовательно, в таких случаях необходимо уделить большое внимание тщательному тестированию и мерам предосторожности. В части обработки коммерческих платежей сложность оказалась слишком высокой.
Хорошая новость заключается в том, что эти транзакции не теряются окончательно, а остаются где-то внутри Coinbase, в то время как сама компания старается идти в ногу со всеми стремительными изменениями в индустрии биткоина, из-за которых у криптовалюты теперь три версии адресов: SegWit, обычный и bech32.