SlideShare a Scribd company logo
Анонимность в криптовалютах. Часть 1
Павел Кравченко
Лекция 9
Как работают электронные деньги
Как работают электронные деньги
Анонимность и приватность
Unlinkability - невозможно определить, связаны ли две
некоторые транзакции (общий ли отправитель).
Untraceability - невозможно определить действия
участника в сети
Anonymity - невозможно идентифицировать конкретного
человека, осуществляющего транзакцию
arxiv.org/pdf/1107.4524.pdf
cryptome.org/2013/11/bitcoin-pirate-nakamoto.pdf
Криптографические схемы
Blind signature (Chaum, 1982)
Zero-knowledge proof (Goldwasser, Micali, Rackoff, 1985)
One-way accumulator (Benaloh, de Mare, 1993)
Ring signature (Rivest, Shamir, 2001)
http://cryptomoms.com/forum/questions/21/history-of-cryptocurrency/112/
Слепая подпись
Это цифровая подпись при которой
содержание сообщения “ослеплено” перед
подписью. Когда “ослепление” снимается, все
выглядит как обычная подпись.
Слепая подпись
Каждый может проверить подпись.
Подписывающая сторона не может соотнести запросы на
подпись и подписанные документы.
Что может быть достигнуто
Алгоритм выдачи анонимных денег
1. Алиса создает случайное число – серийный номер m для
банкноты.
2. Она “ослепляет” m и предоставляет в банк
3. Банк подписывает “ослепленное” m и списывает с ее
счета $1 (считается, что все что подписал банк, равно $1)
4. Алиса снимает “ослепление” <m,sig> и может платить
банкнотой
5. Перед принятием платежа, продавец посылает банкноту
<m,sig> в банк.
6. Банк проверяет, что подпись sig is корректна и m не
было использовано ранее и начисляет $1 на счет продавца.
Анонимные деньги
Как это работает. RSA
RSA: (me
)d
= m (mod N),
e – открытый ключ, d – личный ключ, m – сообщение, N=pq
Протокол слепой подписи:
Алисе необходимо получить подпись на сообщении m
(которая должна выглядеть как md
)
1. Алиса ослепляет сообщение: mre
(выбирая случайное r)
2. Банк подписывает: (mre
)d
=md
red
=md
r (mod N)
3. Алиса снимает ослепление: md
r/r = md
(mod N)
1. masternode создает mixing пул
2. пользователи предоставляют inputs и ослепленные
outputs
3. пользователи анонимно переподключаются и
предоставляют де-ослепленные outputs
...
Blind signature позволяет доказать что предоставленые
outputs принадлежат участникам пула.
Никто не знает соответствия между input и output.
Вопросы?
kravchenkopo@gmail.com
ideateam_macuser
ua.linkedin.com/in/pkravchenko/

More Related Content

Анонимность в Биткоин. Часть 1. Лекция 9

  • 1. Анонимность в криптовалютах. Часть 1 Павел Кравченко Лекция 9
  • 4. Анонимность и приватность Unlinkability - невозможно определить, связаны ли две некоторые транзакции (общий ли отправитель). Untraceability - невозможно определить действия участника в сети Anonymity - невозможно идентифицировать конкретного человека, осуществляющего транзакцию arxiv.org/pdf/1107.4524.pdf cryptome.org/2013/11/bitcoin-pirate-nakamoto.pdf
  • 5. Криптографические схемы Blind signature (Chaum, 1982) Zero-knowledge proof (Goldwasser, Micali, Rackoff, 1985) One-way accumulator (Benaloh, de Mare, 1993) Ring signature (Rivest, Shamir, 2001) http://cryptomoms.com/forum/questions/21/history-of-cryptocurrency/112/
  • 6. Слепая подпись Это цифровая подпись при которой содержание сообщения “ослеплено” перед подписью. Когда “ослепление” снимается, все выглядит как обычная подпись.
  • 7. Слепая подпись Каждый может проверить подпись. Подписывающая сторона не может соотнести запросы на подпись и подписанные документы.
  • 8. Что может быть достигнуто
  • 9. Алгоритм выдачи анонимных денег 1. Алиса создает случайное число – серийный номер m для банкноты. 2. Она “ослепляет” m и предоставляет в банк 3. Банк подписывает “ослепленное” m и списывает с ее счета $1 (считается, что все что подписал банк, равно $1) 4. Алиса снимает “ослепление” <m,sig> и может платить банкнотой 5. Перед принятием платежа, продавец посылает банкноту <m,sig> в банк. 6. Банк проверяет, что подпись sig is корректна и m не было использовано ранее и начисляет $1 на счет продавца.
  • 11. Как это работает. RSA RSA: (me )d = m (mod N), e – открытый ключ, d – личный ключ, m – сообщение, N=pq Протокол слепой подписи: Алисе необходимо получить подпись на сообщении m (которая должна выглядеть как md ) 1. Алиса ослепляет сообщение: mre (выбирая случайное r) 2. Банк подписывает: (mre )d =md red =md r (mod N) 3. Алиса снимает ослепление: md r/r = md (mod N)
  • 12. 1. masternode создает mixing пул 2. пользователи предоставляют inputs и ослепленные outputs 3. пользователи анонимно переподключаются и предоставляют де-ослепленные outputs ... Blind signature позволяет доказать что предоставленые outputs принадлежат участникам пула. Никто не знает соответствия между input и output.