На дворе 2016 год, а люди всё ещё сканируют QR-коды или копируют и вставляют длинные цепочки символов (адреса Биткоина) для совершения криптовалютных платежей. Давно пришло время для более простых и удобных кошельков, однако до недавних пор никаких решений этой проблемы не предлагалось. 

BIP-47 (многократные платёжные коды для иерархически детерминированных кошельков) и BIP-75 (внеполосный обмен адресами при помощи кодирования платёжного протокола) – два предложения по упрощению процесса оплаты биткоинами без ущерба для конфиденциальности пользователя. Основная цель предложений – исключить возможность отслеживания платежей просматривающими блокчейн пользователями.

В данной статье мы попытаемся разобраться, каким образом BIP-47 и BIP-75 собираются сделать криптовалютные кошельки более удобными, не влияя на конфиденциальность. 

Слабые места BIP-32 по сравнению с BIP-47

Прежде чем говорить о предложении BIP-75, необходимо сравнить BIP-47 и BIP-32. BIP-47 создаёт между двумя участниками платёжный протокол, который нельзя просмотреть извне. Он также подразумевает возврат платежей, поскольку платёжные отношения можно менять.

По словам пожелавшего остаться неизвестным разработчика кошелька SamouraiWallet, реализовавшего BIP-47, проблема с BIP-32 заключается в создании платёжных отношений по схеме «один ко многим». Это значит, что любой обладатель пользовательского ключа xpub, может просматривать все платежи и связанные с ними криптовалютные адреса. 

«В настоящее время BIP-47 представляет собой расширение BIP-32», - говорит разработчик, - «Позднее, по мере развития, его можно будет рассматривать в качестве замены BIP-32».

С этим мнением соглашается один из авторов предложения BIP-75 Джеймс МакУайт (James MacWhyte). По его мнению, если вы хотите иметь статический публичный адрес, предложение BIP-47 будет более подходящим, чем BIP-32. Однако, «BIP-32 и BIP-47 были разработаны под разные сценарии, поэтому сравнивать их не имеет особого смысла», - добавляет он.

Проблемы BIP-32 устраняет BIP-75

Несмотря на то, что BIP-75 использует BIP-32, данное предложение добавляет характеристики по защите конфиденциальности ключа, на проблемы которых указывал разработчик Samourai Wallet.

При использовании BIP-75 участники не получают ключи xpub, то есть у них отсутствует возможность отслеживания всех платежей и адресов. Вместо этого, при отправлении новой заявки на платёж из ключа xpub локально генерируется новый адрес Биткоина. По словам руководителя Netki и соавтора BIP-75 Джастина Ньютона (Justin Newton), пользователи могут запросить разрешение на генерацию каждого нового адреса Биткоин или позволить партнеру сгенерировать, по своему желанию, бесконечное количество адресов Биткоин.

Преимущества BIP-47

Автор предложения BIP-47 Джастас Ранвир (Justus Ranvier) говорит, что оно было разработано с целью повышения удобства использования криптовалютных кошельков, одновременно повышая конфиденциальность.

Ранвир описывает цели создания BIP-47 следующим образом:

  • Создаёт адрес, который функционирует в соответствии с пожеланиями пользователей Биткоина (в частности, платёжные коды BIP-47 являются двунаправленными и многократными; Аналогично адресу электронной почты, когда кто-то отправляет вам платёж через BIP-47, вы видите действующий электронный адрес отправителя, который можно безопасно использовать для отправки возврата платежа.
  • Не причиняет ущерба конфиденциальности: повторное использование платёжного кода не несёт в себе таких пагубных последствий для конфиденциальности, как многократное использование ранее разработанных адресов.
  • Не компрометирует безопасность кошелька: одним из самых важных достоинств криптовалютных кошельков Биткоина является способность восстанавливаться из первичного источника, резервное копирование которого можно осуществить только один раз. BIP-47сохраняет эту функцию. 
  • Не создаёт зависимости от сторонних серверов. Зависимость от сторонних серверов может сократить или свести на нет преимущества конфиденциальности, а также привести к проблемам надежности и цензуры.
  • Совместимо с кошельками BIP-44. BIP-47 разработано как расширение BIP-44. Любой механизм, используемый BIP-44, совестим с BIP-47.

По словам МакУайта, основным качественным изменением BIP-47 по сравнению с BIP-75, является не повышение конфиденциальности, а сопротивляемость рецензированию и цензуре.

Особенности BIP-75

BIP-75 предоставляет тот же уровень конфиденциальности и удобства, что и BIP-47, но не заставляет платёжный протокол Биткоина выполнять работу по отправлению протокола. 

Использование BIP-47 подразумевает отправку двух транзакций для одного платежа. Это происходит потому, что сначала необходимо осуществить уведомительный платеж. Для BIP-75 более характерны единичные платежи.  Кроме того, со временем BIP-47 становится ресурсоемким, поскольку используется множество цепочек адресов, которые необходимо постоянно мониторить.

С BIP-75 становится возможным получать оплату от многих людей на одну цепочку адресов. Это сокращает ресурсные требования для мобильных кошельков.

Процесс восстановления

С другой стороны, в вопросе процесса восстановления транзакций BIP-47 превосходит BIP-75.

«Самое большое преимущество основанных на блокчейне уведомлений – это гарантия, что балансы кошельков всегда можно восстановить из первоисточника», - говорит Ранвир. В целях сохранения безопасности пользователям необходимо периодически проводить резервное копирование, а это - шаг назад.

МакУайт с этим не соглашается, указывая, что использование блокчейна для процесса восстановления в некоторых случаях просто невозможно. 

«Для восстановления по BIP-47 требуется полная загрузка блокчейна. Если вы хотите сделать это самостоятельно, вам потребуется 80 ГБ пространства жесткого диска и не менее 24 часов ожидания. Другая возможность – положиться на сторонний сервер, уменьшающий все (преимущества) конфиденциальности и анонимности, которые ожидаются от BIP-47».

МакУайт также указывает на то, что данные, которые хранятся в блокчейне, не принесут особой пользы без локальных данных (адресных книг пользователей). Несмотря на то, что транзакции будут сгруппированы отправителем, без наличия информации из хранящейся локально адресной книги пользователя личность отправителей будет неизвестна.

На этот вопрос анонимный разработчик Samourai Wallet объясняет, что пользователям необходима только копия блокчейна. Он сказал, что в данный момент разрабатывается общий каталог платежных кодов, который позволит пользователям получить недостающую часть метаданных, относящихся к истории платежей. 

Он также не соглашается с утверждениями по поводу конфиденциальности и анонимности использования сделанной третьими сторонами копии блокчейна во время процесса восстановления.

Разработчикам нужно выбрать протокол

Так какое же BIP следует интегрировать пользователям? Как минимум, оно должно подходить для множества кошельков, использующих единый стандарт. Это намного упростит работу операторов криптовалютных кошельков по привлечению пользователей к платежам в биткоинах. 

«Являясь в этих вопросах абсолютистом, я соглашаюсь с мнением, что BIP-75 не заслуживает реализации», - говорит анонимный разработчик Samourai Wallet. 

«Я считаю, что в конечном итоге BIP-47 и BIP-75 нацелены на разные категории пользователей», - продолжает он. «BIP-75 зачастую используется для продвижения торговых каналов, тогда как BIP-47 в приоритет ставит абсолютную конфиденциальность и антицензуру до простоты использования (доказательства продажи)».

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

Несмотря на то, что многочисленные операторы кошельков изначально были заинтересованы BIP-47, похоже, что над платежными кодами пока работают только Samurai Wallet и Stash. Dark Wallet начал работать над реализацией BIP-47, однако разработка этого кошелька затормозилась.

Возможно, имеет смысл понаблюдать за теми, кто в прошлом реализовал BIP-70, так как именно они могут реализовать BIP-75 в будущем. К криптовалютным сервисам и кошелькам, реализовавшим BIP-70, относятся Coinbase, Bitpay, Copay, Mycelium, Breadwallet и BitcoinCore. Хотя, стоит отметить, что реализация BIP-75 в BitcoinCore, скорее всего, будет противоречивой.