Bitcoin Forum
July 22, 2024, 06:19:27 AM *
News: Help 1Dq create 15th anniversary forum artwork.
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Тихие платежи  (Read 20 times)
DrBeer (OP)
Legendary
*
Offline Offline

Activity: 3836
Merit: 2004


View Profile WWW
July 21, 2024, 05:00:17 PM
Merited by GazetaBitcoin (1)
 #1

Aвтop: witcher_sense
Opигинaльнaя cтaтья: Silent payments


Введение

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

Основная идея

Основная идея заключается в следующем: пользователь A публикует некоторый идентификатор (обычно открытый ключ), а пользователь B комбинирует свой закрытый ключ с опубликованным ключом A и создает уникальный адрес, с которого только A может тратить деньги. Пользователь C также может отправить деньги пользователю A, объединив свой закрытый ключ с адресом A и получив другой уникальный адрес. Пользователь A будет знать, что оба пользователя B и C отправили ему деньги, но B и C не будут знать друг о друге. Таким образом, это позволяет пользователю A получать платежи на полностью разделенные адреса, используя только один публичный адрес.

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

Допустим, Боб хочет отправить Алисе тихий платеж.

1) Алиса создает уникальный идентификатор (скажем, открытый ключ), используя стандартную математику эллиптических кривых:

 A = a*G, где

A - открытый ключ Алисы (точка на эллиптической кривой),
a - закрытый ключ Алисы (случайное число, которое должно храниться в секрете), и
G - точка генерации (некоторая заранее определенная точка на эллиптической кривой).

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

3) Боб выбирает один из контролируемых им входов, который содержит открытый ключ

B = b*G, где

B - открытый ключ Боба (точка на эллиптической кривой),
b - закрытый ключ Боба (случайное целое число, которое известно только Бобу), и
G - точка генерации.

4) Боб берет открытый ключ Алисы A и строит новый открытый ключ по следующей формуле:

A' = hash(b*A)*G + A, где

A' - открытый ключ, на который производится платеж Боба.

5) Боб совершает платеж Алисе, создавая выход, связанный с ранее созданным открытым ключом A'.

6) Учитывая, что b*A = b*a*G = a*b*G = a*B, Алиса может восстановить тот же открытый ключ A', используя свой закрытый ключ a по следующей формуле:

A' = (hash(a*B) + a)*G, где

hash(a*B) + a - новый закрытый ключ Алисы, который позволяет ей тратить деньги с выхода, соответствующего открытому ключу A'.

Однако проблема в том, что Алисе необходимо знать открытый ключ Боба B, чтобы обнаружить свой платеж, поэтому она постоянно сканирует блокчейн, пытаясь понять, какой из открытых ключей можно объединить с ее закрытым ключом a, чтобы восстановить существующие биткойн-адреса.


Плюсы:

1) Не требуется никакого взаимодействия между отправителями и получателями. Чтобы отправитель мог произвести платеж, ему достаточно сконструировать один адрес из открытого ключа получателя.

2) Тихие платежи более эффективно используют пространство блоков, поскольку нет необходимости в «анонсирующих» транзакциях, как в случае с BIP47. Таким образом, одна транзакция равна одному платежу, что идеально подходит для одноразовых пожертвований

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

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

5) Тихие платежи стимулируют получателя средств поддерживать в рабочем состоянии свой собственный узел Bitcoin full, что автоматически приводит к созданию более децентрализованной сети.

6) Никто, кроме отправителя транзакции и ее получателя, не узнает о том, что платеж действительно произошел.

7) Тихие платежи значительно улучшают взаимозаменяемость транзакций с биткоинами.

Минусы:

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

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


Ссылки:

1] https://gist.github.com/RubenSomsen/c43b79517e7cb701ebf77eec6dbb46b8
2] https://github.com/genjix/bips/blob/master/bip-stealth.mediawiki
3] https://github.com/bitcoin/bips/blob/master/bip-0047.mediawiki
4] https://en.m.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman
5] https://bitcoinops.org/en/newsletters/2022/04/06/
6] https://bitcoinmagazine.com/technical/bitcoin-silent-payments-secret-keys
7] https://bitcoinmagazine.com/technical/improving-bitcoin-privacy-with-silent-payments
8] https://gist.github.com/w0xlt/72390ded95dd797594f80baba5d2e6ee


Пepeвoд ocyщecтвлeн блaгoдapя инициaтивe AoBT:

...AoBT...
▄▄█████████████████▄▄
███████████████████████
█████████████████████████
███████████████████████
██████████████████████
█████████████████████
███████████████████████
██████████████████████
█████████████████████
█████████████████████
█████████████████████████
███████████████████████
█████████████████
The Alliance
of Bitcointalk
Translators
▄▄▄███████▄▄▄
▄███████████████▄
▄███
████████████████▄
▄██
███████████████████▄
▄█
██████████████████████▄
████████████████████████
█████████████████████
████████████████████████
▀███████████████████████▀
▀███████████████████
▀███████████████████▀
███████████████▀
▀▀▀███████▀▀▀
.
..JOIN US..

▄███████████████████████▄
█████████████████████████
█████▀▀██████▀▀██▀▀▀▀████
████████▀██████████
████▄▄▄▄▀███████
███████▄▀▄█▀▀███████
█████████████████████████
█████████████████████████
████████████▀████████████
▀███████████████████████▀
█████

██████████
.
..HIRE US..
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!