Partially Signed Bitcoin Transactions (частично подписанные биткойн-транзакции), или PSBT, — это стандарт Биткойна, облегчающий передачу между пользователями неподписанных биткойн-транзакций, что позволяет нескольким сторонам легко подписывать одну и ту же транзакцию.
Стандарт PSBT определяет точный формат для передачи биткойн-транзакций. Этот формат может содержать метаданные о транзакции, чтобы упростить для подписывающих сторон ее проверку и подписание. Стандарт определяет также процесс сборки и финализации транзакций, так что несколько сторон могут параллельно подписывать одну транзакцию, а затем объединить свои PSBT для формирования полностью подписанной биткойн-транзакции.
Для чего используются частично подписанные биткойн-транзакции?
Частично подписанные биткойн-транзакции дают биткойн-комьюнити несколько важных преимуществ, а также делают прежде запутанные протоколы транзакций более простыми и удобными для проверки.
- Операционная совместимость. PSBT изначально были разработаны с целью повышения операционной совместимости между кошельками и другим биткойн-ПО, чтобы облегчить передачу транзакций между кошельками и нодами. Формат PSBT поддерживается всеми основными разработчиками кошельков и ПО для биткойн-нод.
- Автономное (офлайн) подписание. Формат PSBT обеспечивает передачу полезных метаданных, помогающих автономным («холодным») устройствам проверять адреса и суммы подписываемой транзакции. Это повышает безопасность подписания транзакции из холодного кошелька и упрощает процесс создания транзакции из кошелька для просмотра, подписания ее с помощью холодного кошелька и передачи в сеть через биткойн-ноду.
- Подписание несколькими подписями. Поскольку формат PSBT делает частично подписанные транзакции передаваемыми и узнаваемыми, он позволяет легко и безопасно подписывать их нескольким сторонам или устройствам, что облегчает использование мультиподписи. Удобные в использовании мультиподписи несут биткойн-комьюнити ряд важных преимуществ второго порядка, включая улучшение конфиденциальности, безопасности и предотвращения потерь.
- Многосторонние транзакции. Формат PSBT особенно полезен для координации между сторонами, желающими подписать одну транзакцию. Например, протоколы CoinJoin, CoinSwap и PayJoin предполагают подписание транзакции несколькими сторонами. Формат PSBT предоставляет метод построения транзакции, передачи ее между подписантами, а затем сборки окончательной транзакции для передачи в сеть.
Как работают частично подписанные биткойн-транзакции?
PSBT полезны в самых разных случаях. Например, чтобы собрать CoinJoin-транзакцию с пятью участниками, все пять участников отправляют координатору сообщение с UTXO, которые они хотели бы объединить в CoinJoin-транзакции. Каждый участник также предоставляет адреса, на которые CoinJoin-транзакция должна вернуть его биткойны.
Координатор соберет транзакцию со всеми этими UTXO в качестве входов и создаст соответствующие выходы для распределения каждому участнику того же количества биткойнов.
Затем координатор конвертирует эту транзакцию в PSBT и отправляет PSBT каждому из пяти участников. Каждый участник по отдельности добавляет свои подписи в PSBT и возвращает ее координатору, который затем объединяет пять PSBT в окончательную транзакцию и финализирует ее. Результатом будет полностью подписанная биткойн-транзакция, включающая в себя входы и выходы от каждого из участников.
Весь описанный процесс не требует доверия ни на одном из этапов: хотя все участники полагаются на координатора в создании и финализации PSBT, ни координатор, ни какой-либо из участников не может присвоить средства остальных участников транзакции.
Внедрение частично подписанных биткойн-транзакций
Стандарт PSBT был определен в BIP 174 и широко, хоть и не повсеместно, поддержан производителями аппаратных, программных кошельков и поставщиками ПО для биткойн-нод, включая Bitcoin Core.
Однако стандарт PSBT имеет несколько недостатков, поэтому в настоящее время ведется работа по разработке стандарта PSBT v2. В частности, построение транзакции путем итеративного добавления входов неэффективно и файлы PSBT могут иметь сравнительно большой вес, особенно для аппаратных кошельков, которые обычно снабжаются минимальным объемом памяти.
Однако на сегодняшний день PSBT значительно повышает возможности взаимодействия между программным и аппаратным обеспечением вокруг Биткойна, облегчая создание CoinJoin- и иных типов совместных транзакций и упрощая использование мультиподписи.
Источник: bitnovosti.com