Post
Topic
Board Oбcyждeниe Bitcoin
Re: Бoльшoй Гaйд пo Пpивaтнocти и Aнoнимнocти Bitcoin
by
Ratimov
on 11/07/2020, 08:55:34 UTC
7. CoinSwap
обратно к содержанию

Грегори Максвелл16 впервые представил CoinSwap:
[ur=lhttps://bitcointalk.org/index.php?topic=321228.0]CoinSwap: Transaction graph disjoint trustless trading[/url]
CoinSwap защищает информацию о транзакции между плательщиком и получателем. CoinSwap позволяет вовлечённым сторонам совершать транзакцию с гарантией, что ни одна из сторон не сможет украсть биткоин у других сторон. В CoinSwap имеется третья сторона, необходимая в качестве связующего звена между плательщиком и получателем, а также некоторые транзакци должны совершаться по схеме CoinSwap. Некоторые методы транзакций, используемые в CoinSwap, включают 2-х-2 эскроу и транзакции с хэш-блокировкой.

Протокол CoinSwap:

В этом протоколе все стороны предполагают наличие приватных каналов связи.
Протокол CoinSwap можно объяснить следующим образом:
Алиса действует как плательщик,
Боб как получатель платежа,
и Кэрол в качестве посредника (эскроу).

Данный протокол разделен на 3 фазы, а именно: фаза 0, фаза 1 и фаза 2.

Фаза 0. Устанавливает эскроу и возврат денег за тайм-аут.
Фаза 1. Сделает так, что если Бобу заплатят, Кэрол не сможет не заплатить.
Фаза 2. Просто выпустите эскроу напрямую, потому что все счастливы, что читерство невозможно.

  Алиса                        Кэрол                        Боб
  =====================================================================================
0.Подсчёт TX_0: 2of2{A,C}    |Подсчёт TX_1: 2of2{C,B}    |                           \
1.Отправка TX_0 TXID ------------>                             |                           |
2.                            |Отправка TX_1 TXID ------------>                            |
3.                            |Подсчёт TX_0 заблокированного возврата |Подсчёт TX_1 заблокированного возврата|  
4.               <------------ Отправка TX_0_возврата            |                           | Фаза 0
5.                            |               <------------ Отправка TX_1_возврата.          |
6.Оповещение TX_0 в сеть   |Оповещение TX_1 в сеть   |                           |
7.                            |                            |                           |
8.******    Сетевое Подтверждение TX_0: Алиса платит согласно 2 из {Алиса, Кэрол}   ******|
9.******     Сетевое Подтверждение TX_1: Кэрол платит согласно 2 из {Кэрол, Боб}    ******/
A.                            |                            |Выбор секретного значения X     \
B.                            |                            |Подсчёт HX = H(X)         |
C.                            |               <------------ Отправка HX                    |
D.               <----------------------------------------- Отправка HX                    |
E.Подсчёт TX_2: TX_0>Кэрол+X |                            |                           | Фаза 1
F.Отправка TX_2     ------------>                              |                           |
G.                            | Подсчёт TX_3: TX_1>Боб+X  |                           |
H.                            | Отправка TX_3     ------------>                            |
I.                            |               <------------ Отправка X                     /
J.                            | Подсчёт TX_4: TX_1>Боб    |                           \
K.                            | Отправка TX_4     ------------>                            |
L.                            |                            |Подписи и оповещения TX_4   |
M.******       Сетевое Подтверждение TX_4: Кэрол платит Бобу через 2 из {Кэрол, Боб}       ******|
N.Подсчёт TX_5: TX_0>Кэрол   |                            |                           | Фаза 3
O.Отправка TX_5      ------------>                             |                           |
P.                            |Подписи и оповещения TX_5    |                           |
Q.******     Сетевое Подтверждение TX_5: Алиса платит Кэрол через 2 из {Алиса, Кэрол}     ******/
  =====================================================================================
Диаграмма Протокола CoinSwap.16

Фаза 0

В фазе 0 происходит процесс совершения эскроу транзакции среди участников. Алиса совершает эскроу транзакцию TX_0, которая является эскроу транзакцией 2-of-2 между Алисой и Кэрол, используя биткоин Алисы. Эта транзакция может быть прочитана как:
"Алиса заплатит Кэрол определённую сумму биткоинов, если Алиса и Кэрол согласятся".
Затем, Кэрол также совершает транзакцию TX_1, которая является эскроу 2 из 2 между Кэрол и Бобом, используя биткоин Кэрол. Эта транзакция может быть прочитана как: "Кэрол заплатит определённую сумму биткоина Бобу, если Кэрол и Боб согласятся".

Чтобы обеспечить этот этап, Кэрол производит возврат TX_0 с определённым лимитом времени, который заставит Алису вернуть биткоин, выплаченный Кэрол, если что-нибудь случится в будущем.
Как и Алиса, Кэрол также делает TX_1_возврат, который заставит Кэрол вернуть Бобу биткоин, если что-то случится в будущем. Транзакции TX_0_вовзрат и TX_1_возврат не отправляются в сеть ни Алисой, ни Кэрол. Транзакциями, отправляющие биткоины в сеть на данном этапе являются TX_0 и TX_1.

Фаза 1

Фаза 1 готовит гарантии по транзакции для всех вовлеченных участников. Это означает, что если Боб берет монеты у Кэрол, Кэрол также может осуществлять платежи от Алисы. Схема хэш-блокировки транзакций поддерживает эту схему.
В этой схеме Боб выбирает секретное ключевое слово X, затем вычисляет значение HX, которое является хэш-значением X с формулой HX=H(X) и отправляет HX Алисе и Кэрол. Алиса создает новую транзакцию TX_2, которая берет монеты из TX_0, используя подпись Кэрол и значение X, и выплачивает их по адресу Кэрол. Как и Алиса, Кэрол совершает новую транзакцию по схеме хэш-блокировки TX_3, которая возьмет монеты из TX_1, используя подпись Боба и значение X, и заплатит их Бобу.
В этой фазе, если Боб обманывает и берет монеты, используя TX_3, то Кэрол может принимать платежи, используя TX_2, потому что значение X может быть известно, когда Боб использует TX_3 и публикует его в сети Биткоина.

Фаза 2

Если TX_2 и TX_3 не отправлены в сеть Биткоина, то фаза 2 может быть продолжена. В этой фазе Боб сообщает Кэрол значение X, а Кэрол совершает новую транзакцию TX_4, которая берет монеты из TX_1, используя подпись Боба. Боб может использовать транзакцию TX_4 для получения оплаты. Точно так же Алиса совершила транзакцию TX_5, которая берет монеты из TX_0, используя подпись Кэрол, и платит Кэрол. Кэрол может отправить транзакцию TX_5 в сеть биткоина для получения оплаты.

Если данный протокол завершен, то в сеть Биткоина отправляются только транзакции TX_4 и TX_5 с использованием TX_0 и TX_1, в то время как другие транзакции удаляются и не отправляются в сеть Биткоина.

CoinSwap является примером метода Zero Knowledge Contingent Payment17 , который имеет следующие возможности:
1. Хэш-блокированная транзакция
2. Транзакция, зависящая от времени
3. 2 из 2 ескроу транзакция

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



Ссылки:
16. gmaxwell, CoinSwap: Transaction graph disjoint trustless trading
17. Bitcoin Wiki. (2011, September 28, 2015), Zero Knowledge Contingent Payment
 -   Dimaz A.W. & Oscar D., Blockchain dari Bitcoin untuk Dunia, pages 105-107, 2017: Jasakom
 -   Другие ссылки смотрите пост #1



8. MixCoin
обратно к содержанию

MixCoin - это концепция, которая создает ответственность за услуги смешивания18. Реализация MixCoin не требует внесения изменений в протокол Биткоина, чтобы пользователи могли легко ее реализовать.
В MixCoin участвуют две стороны. Первая - это сторона, которая хочет сделать рандомизацию биткоинов, а вторая - это сторона, которая предоставляет услуги рандомизации.
Ответственность MixCoin сделана как доказательство транзакции. Если провайдер услуг обманывает, воруя биткоин пользователя, пользователь выставляет доказательства транзакции, тем самым разрушая репутацию провайдера услуг.

Ниже приведена диаграмма, иллюстрирующая Протокол MixCoin18:



Пользователь A и поставщик услуг M должны сделать несколько шагов. Пользователь A делает запрос на услугу М для создания биткоин-транзакции. Если М дает согласие, то М подписывает информацию о транзакции, запрошенной А, используя приватный ключ М. Подписанные данные являются доказательством, которое будет храниться у А и которое может быть проверено любым лицом, использующим публичный ключ М. Далее, А платит сумму биткоина, одобренную М, включая комиссию за транзакцию, уплаченную М. Если М действует честно, отправив биткоин в соответствии с соглашением, то доказательства могут быть удалены. Но если M обманывает, тогда A может опубликовать доказательство того, что M не был честен.



Ссылки:
18. J. Bonneau, A. Narayanan, A. Miller, J. Clark, J.A. Kroll, and E.W. Felten,
     "Mixcoin: Anonymity for Bitcoin with accountable mixes," in Financial Cryptography and Data Security, ed: Springer,
     2014, pp. 486-504.
     Link to download (PDF): http://www.jbonneau.com/doc/BNMCKF14-FC-mixcoin_proceedings.pdf
 -   Dimaz A.W. & Oscar D., Blockchain dari Bitcoin untuk Dunia, page 107-109, 2017: Jasakom
 -   Другие ссылки смотрите пост #1



9. Предотвращение Слияния
обратно к содержанию

Merge avoidance (Предотвращение Слияния) - термин, введённый Майком Херном в понятие, которое он выдвинул для обозначения проблем с приватностью биткоина.
Merge avoidance (Предотвращение Слияния) - это идея разбивки определённого количества биткоин транзакций на несколько транзакций, чтобы избежать идентификации пользователя с помощью определённой суммы, отправляемой от одного пользователя другому19.
Решая транзакции с небольшим количеством биткоинов, идентификация этих транзакций будет более сложной.

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

Свойства Реализации

В этой схеме есть несколько вещей, которые делают ее приятной для реализации:
  • Его можно писать постепенно - простой и не очень умный алгоритм тем не менее может улучшить чью-то частную жизнь. Позже может быть разработан и внедрен более совершенный алгоритм, но он не требует сложных глобальных обновлений. Это хорошо подходит для волонтёрской модели разработки конкурирующих кошельков, у которых есть Биткоин.
  • Это очень просто и нет имеющихся движущихся частей или больших конечных автоматов. Вам не нужно беспокоиться о случайном мобильном телефоне на другом конце света, движущемся в туннель в неподходящий момент, или о неправильной реализации программного обеспечения.
  • Нет никакой централизации, даже никаких временных rendezvous серверов.
  • Правовых рисков нет, потому что вы не полагаетесь ни на какие сервисы, которые можно было бы считать инструментами отмывания денег.
  • Это надежно. Выше я привел примеры того, как CoinJoin может работать, но все еще может произойти утечка при наличии очень небольшой дополнительной информации. В Предотвращении Слияния такой проблемы нет.

Есть и некоторые недостатки:
  • Насколько хороша ваша приватность в значительной степени зависит от того, насколько умны люди, посылающие вам денежные переводы. Таким образом, ваша приватность зависит от людей, у которых может не быть особого стимула что-либо делать. Надеюсь, что обычное программное обеспечение для кошельков по умолчанию будет делать правильные вещи.
  • Это увеличивает количество транзакций, хотя дополнительные расходы не так высоки, как вы могли бы подумать - транзакция - это всего лишь список входов, выходов и заголовок из двух полей (версия и время блокировки). Входы и выходы на самом деле не меняются по сравнению с хорошей реализацией CoinJoin, и время версии/блокировки может быть легко сжато/кодировано, чтобы сэкономить место. Разница будет касаться порядка байт, а не килобайт.
  • Он полагается на протокол оплаты. Но многое зависит от этого, и протокол оплаты имеет решающее значение для подавления повторного использования адресов, которое необходимо для того, чтобы все предлагаемые схемы приватности в любом случае работали. Важно, чтобы мы сделали BIP70 максимально простым и широко распространенным.



Ссылки:
19. M. Hearn. (Dec 11, 2013). Merge avoidance A note on privacy-enhancing techniques in the Bitcoin protocol.
     https://medium.com/@octskyward/merge-avoidance-7f95a386692f
 -   https://bitcoinfoundation.org/forum/index.php?/topic/572-merge-avoidance/
 -   Proposal to add Merge Avoidance extension to Payment Protocol - amincd
     https://bitcointalk.org/index.php?topic=1120137.0
 -   Dimaz A.W. & Oscar D., Blockchain dari Bitcoin untuk Dunia, page 109, 2017: Jasakom
 -   Другие ссылки смотрите пост #1



10. Миксинг Сервис
обратно к содержанию

Существуют и другие методы решения вопросов приватности в Биткоин транзакциях, а именно, использование миксинг сервиса(рандомизация).


Биткоин Миксинг20

Эти сервисы имеют различные методы смешивания пользовательских Биткоинов. Однако, используемые ими методы мо&#