КриптоЧасовой :: DeFi, крипта, блокчейн, альткойны, биткойн, майнинг, трейдинг, финтех
3.65K subscribers
6.4K photos
265 videos
72 files
13.6K links
Прислать новость, инфу про скам: @airdropchatter

Наш тви: twitter.com/bitcoin_rossiya

Фаундер: @ICOmuzhik

CryptoSentinel in English: @CryptoSentinel
Download Telegram
Forwarded from CryptoBotan
​​
Протокол конфиденциальности Dandelion

Для стека биткоина
⬇️⬇️⬇️
Начну я с презентации своих старых постов на тему конфиденциальности:

MimbleWimble
CoinJoin, CoinShuffle и Stealth-Addresses
Bulletproofs

Теперь к нашим "Одуванчикам" (англ. Dandelion)...

Биткоин можно разделить на два уровня функционирования:

1) Прикладной уровень: управление транзакциями, блокчейн, майнинг, идентификация узлов в сети по PublicKey

2) Сетевой уровень: обработка связей между узлами через P2P-сеть, идентификация узлов по IP.

Суть в том, что сетевой уровень должен обладать:

а) низкой задержкой. Максимальное время, за которое сообщение достигнет всех узлов сети, должно быть небольшим и ограниченным.

б) анонимность. Невозможность связать сообщения от транзакциях с IP-адресом, который инициировал транзакцию.

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

Летом 2017 года Shaileshh Bojja, Giulia Fant, Pramod Viswanath опубликовали BIP - сетевое решение для Биткойна, которое легко интегрируется в существующие блокчейн-сети. Протокол Dandelion - это решение для улучшения анонимизации на сетевом уровне.

Dandelion повышает конфиденциальность пользователей, отправляя транзакции через фазу анонимности, прежде чем передать их по сети. Dandelion повышает конфиденциальность за счет нарушения симметрии диффузии (форма передачи транзакции), и смешивания транзакций путем пересылки сообщений из разных источников по одному и тому же пути.

Версия "Одуванчик" предложенная в 2017 году имела ряд недостатков и потому в 2018 году вышла новая версия - Dandelion++. Протокол делает попытку деанонимизации - непрактичным.

Работает это все по аналогии с одуванчиком (см. рисунок ниже):

1) Stem Phase (фаза стебля)

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

2) Fluff Phase (фаза пуха)

Начало процесса диффузии (передачи транзакций в сеть).

"Распушивание" транзакции происходит либо:
- путем вероятностной игры, когда каждый узел, который получал транзакцию в фазе стебля с 90%-ой вероятностью, передает сообщение дальше
- путем истечения времени задержки, которое определяется индивидуально каждым узлом на фазе стебля.

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

Протокол не требует сложных вычислений и может быть развернут без каких-либо изменений в базовом протоколе сети Биткойн.

#Privacy
Forwarded from CryptoBotan
​​Немного про повторное использование ключей
⬇️⬇️⬇️
Совершая транзакцию и отправитель и получатель раскрывают друг другу PublicKeys и PublicAddresses, которые используются в транзакции.

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

Но возможна и ситуация, когда использование каждого PublicKeys происходит лишь дважды - для получения платежа и для отправки платежа. Тогда пользователь вполне конфиденциален. Хоть и не настолько, насколько хотелось бы, особенно если у тебя действительно крупная сумма.

Для больше конфиденциальности, можно использовать методы микширования или сокрытия сумм и адресов, вроде СoinJoin и его имплементаций, о которых я уже писал ранее под тегом #Privacy.

Избегая потворное использование ключей, можно обеспечить защиту от атак, вроде "восстановление PrivateKey из PublicKey" или "сравнение сигнатур".

Во избежание атак по восстановлению PrivateKey из PublicKey используются уникальные адреса P2PKH и P2SH (вот тут писал о них). Они сохраняют PublicKeys ECDSA хэшированными, пока не произойдет первая трата, отправленных монет на этот адрес. Если способ восстановления PrivateKey не осуществим менее чем за час, то она бессмысленна.

Уникальные PrivateKeys защищают от атаки "сравнение сигнатур", генерируя одну подпись на каждый PrivateKey. Потому, атакующий не сможет получить последующую подпись для использования сравнения.

Стоит избегать повторного использования PublicKeys, а также повторного использования адресов. Если же вам нужно использовать фиксированный URI, то P2EP, который имеет все шансы скорое принятие, может вам с этим помочь, сохранив вашу приватность.

#Privacy
Forwarded from CryptoBotan
​​Вернемся к теме #Privacy и сегодня про CoinJoinXT

Часть.1
⬇️⬇️⬇️
Напомню, CoinJoin предлагает возможность предоставлять входные данные для транзакций, для невозможности определения владения или контроля над выходными данными.

Как уже давно всем известно, классический CJ имеет ряд недостатков и упущений:

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

Анализ блокчейна подразумевает вероятностные предположения - эвристику. Подробнее в разделе “Блокчейн-атаки на приватность” на канале @bitcoin_translated

Эвристика 1 - все входные данные для транзакции принадлежат одной и той же стороне.
Эвристика 2-одноразовые адреса изменения принадлежат той же стороне, что и входные данные.

Также существует еще одна эвристика: "передача права собственности между сторонами в одной сделке подразумевает передачу права собственности"😐 Но я тоже не сразу въехал и об этом позже.

Adam Gibson, один из разработчиков JoinMarket, называет CoinJoin моделью "внутренней взаимозаменяемости", хоть и создаваемая транзакция распознается как CoinJoin, невозможно различить выходы, так как они равны.

Также он предлагает модель "отрицания", где транзакции взаимозаменяемы, но выглядят как обычные платежи. Такой способ он назвал CoinJoinXT.
Forwarded from CryptoBotan
​​Стеганография

На
идею написания этого поста меня натолкнула ветка на bitcointalk, где обсуждалась идея использования стеганографии для сокрытия перемещения BTC.

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

Можно скрыть сумму платежа при помощи "Confidential Transaction" или использовать TumbleBit. Но тот факт что что-то скрывается, как раз и стимулирует развитие таких технологий, которые стремятся анализировать сети. Сделать так, чтобы все транзакции выглядели одинаковыми - одна из главных задач в разработке решений #Privacy.

Шифрование, как способ криптографической защиты, представляет данные в таком виде, что не зная ключа, невозможно их расшифровать. Но сам факт, что что-то скрыто остается.

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

Криптография скрывает содержимое секретного сообщения, а стеганография - существование такого сообщения.

Именно объединение этих двух способов и повышает эффективность защиты информации.

Скрыть сообщение можно где угодно:

LSB-стеганография
MP3
Метаданные
Изображения

Американский художник Andy Bauch в своих картинах закодировал 1 BTC. Если вам интересны головоломки, вот пару ссылок с описанием раскодировки. Ссылка

Еще одно изображение «Легенда о Сатоши Накамото» содержало в себе награду 5 BTC.

Примерами решений использующих стеганографический принцип приватности это: CoinSwap, CoinJoinXT (первая и вторая части), P2EP.

Инструмент для стеганографической кодировки исходных кодовых фраз кошельков Биткойна - Stanley's Stegoseed. Он позволяет стеганографически кодировать и раскодировать ключи BIP39.

Подробнее о стеганографии:

Стеганография. Скрытие информации в изображениях
ОСНОВНЫЕ ПОЛОЖЕНИЯ СТЕГАНОГРАФИИ

#Privacy
Forwarded from CryptoBotan
​​Confidential Assets (CA) - технология для скрытой передачи активов
⬇️⬇️⬇️
Решение конфиденциальных активов было представлено компанией BlockStream в 2017 году и предназначено для сокрытия типов активов в транзакции.

Confidential Assets это расширенная версия Confidential Transactions (CT).

Confidential Transactions - это криптографический метод сокрытия суммы отправляемых и получаемых средств.
CT полностью скрывает суммы на входах и выходах транзакции, давая возможность проверить, что сумма всех выходов не превышает сумму всех входов.

CA позволяет скрывать не только пересылаемые суммы в BTC, но и любые другие типы активов.

Принцип совершения транзакций CA и CT очень схож. В обоих решениях используются схемы обязательств Педерсена (Petersen Commitment) и используются для того, чтобы одна сторона могла доказать, знание секрета, не раскрывая его, т.е. для того, чтобы доказать, что действительно никакие ценности не были созданы из воздуха. Это важно, ведь о передаваемых суммах, знают только стороны совершающие сделку.

Точно также они имеют общий недостаток. На Range Proofs, используемый для доказательства использования неотрицательных сумм, уходит большое количество ресурсов и они имеют достаточно большой объем, что приводит к высоким комиссиям в сети.

Confidential Assets в первые был использован и протестирован в Sidechain Elements. Сегодня такое решение невозможно использовать в Биткойне, так как он не поддерживает другие активы (см. пост о RGB Protocol), но похожая технология CA используется в MimbleWimble и Qtum. Так как CA это расширение Confidential Transactions, то оно может интегрироваться с Scriptless Scripts и ValueShuffle.

Объединение CA с Sidechain Liquid, позволит передавать фиат и stablecoin между счетами конфиденциально и мгновенно.

Точно также CA может использоваться в децентрализованном обмене с использованием CoinJoin. Обменять BTC на любой актив не составит труда, создав единую CJ-transaction и подписав свои концы транзакции.

В MimbleWimble Confidential Assets позволяет пользователям выпускать и передавать несколько активов на блокчейне без отображения не только сумм и типов активов, но и адреса транзакций.

Подробнее:
Blockstream Releases Confidential Assets
Confidential Assets by BlockStream
Confidential Assets on MimbleWimble

#Privacy