Сегодня мы с удовлетворением сообщаем, что в наборе приложений BTCPay Server теперь развернута поддержка Pay to Endpoint (P2EP)(), что позволяет повысить конфиденциальность биткоин-транзакций для десятков тысяч продавцов по всему миру. BTCPay Server – это обработчик биткоин-платежей с открытым исходным кодом, устойчивый к цензуре и бесплатный.
Собрание волшебников
P2EP возник по результатам семинара, организованного Blockstream в 2018 году, где биткоин-разработчики и ученые со всего мира провели мозговой штурм относительно путей улучшения конфиденциальности в Биткоин. Среди участников был д-р Адам Бэк (Adam Back) из Blockstream, Мэтью Хейвуд (Matthew Haywood), Тим Раффинг (Tim Ruffing) и независимые ученые Адам Гибсон (Adam Gibson), Адам Фискор (Adam Fiscor), Дейнджер Шони (Danger Shony), а также другие специалисты, пожелавшие остаться анонимными.
Участники неделю занимались анализом существующих технологий конфиденциальности Биткоини формулировали потенциальные варианты новых технологий. В результате группа создала совсем новый протокол P2EP, также известный под названием «PayJoin».
Восстановить приватность биткойнеров
В связи с публичной природой блокчейна Биткоин, третьи стороны имеют возможность анализировать историю транзакций Биткоин и устанавливать потенциальную взаимосвязь между транзакциями. Это имеет отрицательные последствия для принципа взаимозаменяемости – критически важной характеристикой денег – и подрывает принцип приватности пользователей.
Например, компании, занимающиеся анализом блокчейна, могут отследить некоторое произвольное количество транзакций какой-нибудь одной монеты биткоина и назвать ее «подозрительной». В худшем случаебиткоины даже могут быть признаны «не подлежащими приему» продавцами и биржами, что затруднит их трату владельцами биткоинов.
Общий обзор P2EP
P2EP-транзакции – это особая форма метода CoinJoin, который впервые был описан Грегом Максвеллом (Greg Maxwell). В нем используются существующие возможности Биткоинпо применению транзакций, повышающих конфиденциальность без каких-либо изменений на уровне протокола. При использовании метода CoinJoin платежи многочисленных участников объединяются в одну большую биткоин-транзакцию, и тем самым аналитикам блокчейна становится сложнее определить кто и кому пересылает ту или иную транзакцию.
Транзакции P2EP отличаются от других тем, что отправитель и получатель платежа координируют свои действии, чтобы создать биткоин-транзакцию (это похоже на метод, который изначально использовал для платежей Сатоши Накамото). В отличие от обычной биткоин-транзакции, где из кошелька свои ресурсы тратит только получатель, P2EP-транзакция объединяет входы как от отправителя, так и от получателя, причем получатель отправляет дополнительные биткоины самому себе.
Сходство P2EP-транзакции с обычной биткоин-транзакцией
Пользователи оснащены кошельками, в которых включен P2EP, что позволяет им инициировать P2EP-транзакции способом, аналогичным обычной биткоин-транзакции. Как всегда, отправитель сканирует QR-код, предоставленный получателем, чтобы инициировать платеж. Фокус происходит, когда P2EP-кошелек отправителя определяет наличие параметра P2EP в конечной точке в QR-коде, и в этот момент он устанавливает соединение с кошельком получателя, чтобы автоматически скоординировать P2EP-платеж. После того как кошелек получателя добавляет вход к транзакции (практически мгновенно), получатель должен подписать транзакцию второй раз перед тем как сообщить об этом в сетьБиткоин.
Ниже приведены некоторые преимущества P2EP:
- **Двусторонняя конфиденциальность: **повышение конфиденциальности как отправителей, так и получателей.
- **Никаких следов: **в отличие от традиционных CoinJoin-транзакций с фиксированным номиналом, P2EP-транзакции не имеют следов. Обычные и P2EP-транзакции выглядят одинаково в блокчейне, то есть развертывание P2EP даже в минимальных масштабах позволяет повысить конфиденциальность обычных, «не-P2EP»-транзакций.
- **Ломается эвристика анализа блокчейна: **P2EP ломает как так называемое предположение об «одном владельце входов», так и подход к решению задачи о сумме подмножеств.
- Помогает снизить разбухание блокчейна: **получатель может использовать P2EP для консолидации своего набора UTXO, помогая снизить **«разбухание UTXO» в блокчейне Биткоин.
- **Легкость и гибкость: **кошельки отправителя могут быть облегченными, наподобие Blockstream Green.
При этом при использовании P2EP-транзакций надо не забывать о некоторых важных вещах:
- **Потребность в интернет-соединении: **кошельки отправителя и получателя должны быть подключены к интернету, чтобы иметь возможность координировать P2EP-транзакцию. Если соединение установить невозможно,платеж P2EP-платеж не сможет быть выполнен, а вместо него произойдет биткоин-платеж.
- **Получатель обязан иметь горячий кошелек: **чтобы P2EP-транзакция отправителя прошла без проблем, кошелек получателя обязан автоматически подписывать транзакции после установки соединения.
BTCPay: ключевая веха для P2EP
Чтобы помочь максимально быстро выпустить P2EP, Blockstream выделила средства на создание функции P2EP в BTCPay и работала над ней с опытным разработчиком и участником проекта BTCPay, уважаемым «господином Кукксом(Mr Kukks)».
Теперь десятки тысяч продавцов, использующих сервис BTCPay Server, имеют возможность получать P2EP-транзакции. Предоставление возможности стороне продавца при осуществлении платежа с легкостью принимать биткоины при помощи P2EP-транзакций позволяет решить большую часть задачи по обеспечению конфиденциальности и взаимозаменяемости.
Реализация P2EP в сервисе BTCPay Server основана на подвергшейся значительной переработке версии протокола bustapay, изначально написанного независимым биткоин-разработчиком Раяном Хаваром (Ryan Havar). Версия BTCPay описана здесь.
Продавцам тоже нужна конфиденциальность
Конфиденциальность транзакций особенно важна для продавцов, так как они соприкасаются с большим количеством транзакций, поступающих от разных клиентов. Определив, что тот или иной Биткоин-адрес принадлежит тому или иному продавцу, любой клиент в принципе может проанализировать блокчейн, чтобыопределить сколько эта компания зарабатывает и сколько у нее может быть клиентов, иными словами, вычислить информацию, которая очень ценится конкурентами и ворами.
Стимулом для продавцов к развертыванию у себя P2EP-транзакций может также стать тот факт, что этот протокол является «бюджетным» решением, позволяющим консолидировать обычно возникающую проблему «разбухания UTXO» – побочного эффекта принятия небольших транзакций от большого количества индивидуальных клиентов.
Что ждет P2EP в будущем?
Пользователи, желающие поэкспериментировать с P2EP, могут выполнить транзакции в адрес поддерживающих протокол магазинов при помощи встроенного Bitcoin-кошелька BTCPay.
Мы в Blockstream работаем над добавлением поддержки P2EP в Blockstream Green; эта возможность станет доступна в течение нескольких месяцев. Мы также осведомлены о том, что такие проекты как Wasabi Wallet и BlueWallet рассматривают возможность поддержки P2EP. Масштабы применения P2EP как общепринятого стандарта растут, и мы надеемся, что развертывание P2EP в сервисе BTCPay Server поможет ускорить темпы этого роста.
Ждем момента, когда такие технологии обеспечения конфиденциальности, как P2EP, вернут ситуацию в руки индивидуальных лиц с точки зрения автономии и суверенитета и надеемся, что, когда-нибудь они даже сделают отслеживание блокчейнасовершенно невозможной.