Разбор: Payswap как средство конфиденциальности Биткоина

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

Но есть решения для восстановления конфиденциальности. Новое решение было предложено в списке рассылки bitcoin-dev на этой неделе разработчиком Bitcoin и Lightning под псевдонимом «ZmnSCPxj». Называемое Payswap, решение предлагает простой, но эффективный прием, чтобы запутать анализ блокчейна путем инвертирования связи между плательщиком и получателем. 

Разбиремся как это работает.

Отслеживаемость платежей в биткоине

Типичная транзакция в биткоинах — это платеж от одного лица (плательщика) другому (получателю). Скажем, например, Алиса хочет заплатить Бобу 3 биткоина. Если Алиса владеет «порцией монет» (UTXO) стоимостью ровно 3 монеты, а мы для простоты игнорируем комиссионные, она может создать транзакцию с одним входом (ссылаясь на ее адрес, содержащий 3 монеты) и одним выходом (ссылаясь на адрес Боба). Порция из трех монет по существу переместится с адреса Алисы на адрес Боба. Просто.

Однако, чаще всего, у Алисы не будет куска правильного количества монет, которое она должна заплатить Бобу. Например, Алиса может иметь только поцрии по 2 монеты. В этом случае она все еще может создать транзакцию. Эта транзакция будет иметь два входа (две порции по 2 монеты, предположительно с двух разных адресов), а также два выхода (UTXO): один выход на 3 монеты, привязанный к адресу Боба, и один выход на 1 монету, который она отправит обратно одну монету — на свой собственный адрес Алисы.

К сожалению, именно потому, что такая транзакция является настолько типичной, она раскрывает все детали  блокчейн-аналитикам. Они будут считать, что порция из 3 монет представляет собой платеж (Бобу), и что 1 монета возвращается (обратно Алисе). В конце концов, если бы платеж составлял только 1 монету, Алисе не нужно было бы включать два выхода. Это позволяет аналитикам блокчейна отслеживать платежи через блокчейн и, в конечном итоге, позволяет кластеризовать адреса и разрабатывать больше стратегий, нарушающих конфиденциальность.

Как работает Payswap

Payswap по существу заменяет платеж от Алисы Бобу двумя платежами: один от Алисы к Бобу и один от Боба к Алисе. Безопасное выполнение этого требует некоторой технической сложности — подробнее об этом ниже — но давайте пока проигнорируем это.

В этом случае Алиса все также создаст транзакцию с двумя входами: двумя порциями по 2 монеты. Но на этот раз транзакция будет включать только один выход: она отправит все 4 монеты Бобу. Уже сейчас это может смутить блокчейн-аналитиков. Поскольку большинство типичных платежных транзакций включают в себя адрес изменения, а эта транзакция — нет, они могут (ошибочно) предположить, что это транзакция, в которой кто-то, например, переводит свои собственные средства в новый кошелек.

Тем временем Боб также создал бы транзакцию для Алисы. Допустим, у Боба есть куски по 0,6 монеты. Он создал бы транзакцию, которая включает в себя два входа (порции по 0,6 монеты) и два выхода: 1 монета для Алисы и 0,2 монеты в качестве «сдачи». Перевод в этом случае будет выглядеть как обычная транзакция (1 монета от Боба до Алисы).

Если используются разные адреса, блокчейн-аналитик не сможет сказать, что две транзакции, описанные здесь, произошли между одними и теми же людьми (Алиса и Боб). Вместо этого, вдобавок к ложному предположению о транзакции Алисы с Бобом, теперь аналитики могут также иметь неверное предположение о транзакции Боба с Алисой. В целом, они могут подумать, что Боб заплатил Алисе 1 биткоин, в то время как на самом деле Алиса заплатила Бобу 3.

Блокчейн-аналитики, по их ложным предположениям, были бы введены в заблуждение, что принесло бы пользу как Алисе, так и Бобу. Таким образом, если предположения блокчейн-аналитиков достаточно часто разрушаются через подобные уловки, их предположения становятся бесполезными в целом.

Добавление CoinSwap

На самом деле трюк с Payswap будет немного сложнее.

В приведенном выше примере остается проблема, которую нужно решить. Поскольку Алиса и Боб не доверяют друг другу, ни один из них не желает вносить свой платеж в первую очередь, поскольку это позволит другому лицу «исчезнуть» без возврата платежа.

Об этом можно позаботиться с помощью более старого трюка, называемого CoinSwap. Основываясь на атомарных свопах (еще более старый трюк), можно сделать две разные транзакции зависимыми друг от друга; ни одна из сторон не может отказаться от возврата платежа.

Если вы знаете, как работают CoinSwap и / или атомарные свопы, то идея Payswap на самом деле очень проста. Вместо того, чтобы использовать (почти) равные суммы в атомарно связанных транзакциях, Payswap использует неравные суммы; разница составляет оплату.

Как работают атомарные свопы можно узнать в статье: Blockstream запускает альтернативу механизма обмена крипто

Если разбирать более подробно, Payswap, как и атомарные свопы, вводит в уравнение две дополнительные транзакции:

Во-первых, вместо создания транзакции, которая отправляет 4 монеты непосредственно Бобу, Алиса создает транзакцию, которая отправляет монеты в простой смарт-контракт. Из этого смарт-контракта можно получить монеты двумя способами. Вывод может быть заявлен Бобом, если он также включает в себя секретный номер, который сгенерировал сам Боб. Или, если монеты не востребованы Бобом, монеты могут быть возвращены Алисе через некоторое время.

Во-вторых, вместо создания транзакции, которая отправляет монету непосредственно Алисе, Боб также создает транзакцию, которая отправляет монету в смарт-контракт (и 0,2 монеты возвращаются к себе как изменение положения транзакции). Опять же, монета может быть востребована двумя способами. Либо, ее может затребовать Алиса, если она сообщает смарт-контракту тот же секретный номер, который сгенерировал Боб. Или тразакция может быть затребована Бобом через некоторое время (откат отправки тразакции).

В случае технологии Payswap, обе транзакции транслируются в сеть биткоина для включения в блок.

Теперь, когда Боб хочет получить свой платеж (4 монеты), он создает транзакцию из смарт-контракта, созданного Алисой, в том числе сгенерированный им секретный код, требуя получения. При этом он раскрывает свой секретный код в блокчейне биткоина, чтобы Алиса могла его увидеть. С его помощью Алиса может, в свою очередь, создать транзакцию из смарт-контракта, который создал Боб, требуя 1 монету обратно на свой адрес.

Другими словами: Боб может требовать только 4 монеты, позволяя Алисе требовать 1 монету. При этом возможно 2варианта: либо обе транзакции проходят, либо обе отменяются и каждый получает те средства, которые отправил в смарт-конракт.

Если по какой-либо причине Боб не потребует оплаты, срок действия основного смарт-контракта, созданного Алисой, истечет, и она сможет вернуть себе 4 монеты. Боб, чуть позже, также может вернуть себе 1 монету. Без вреда и риска.

Стоит отметить, что эти смарт-контракты могут быть созданы с помощью причудливых математических приемов, чтобы скрыть секретные коды в криптографических сигнатурах, предотвращающих связывание двух транзакций аналитиками через код.

Недостатки Payswap

Конечно, Payswap работает с некоторыми компромиссами.

Наиболее очевидным недостатком является то, что для платежа потребуется четыре транзакции, а не одна. Две транзакции необходимы, чтобы получить средства от Алисы к Бобу, и две транзакции необходимы, чтобы вернуть «изменение» от Боба к Алисе. Это требует больше блоков и, следовательно, больше комиссионных.

Кроме того, оплата требует взаимодействия Алисы и Боба. Алиса не может просто отправить средства на адрес Боба; вместо этого они должны обмениваться данными вне протокола биткоина, чтобы также установить идентификатор (хэш) секретного номера Боба.

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

Возможно, вы слышали о сети Lightning, но не знаете как сильно она развилась, читате о ней в статье: Bitcoin Lightning больше, чем кажется

Источник: AltStake



Самые актуальные новости - в Telegram-канале

Читайте также

Вверх