tg-me.com/CryptoBotan/983
Last Update:
✅✅✅
SNICKER - Simple Non-Interactive Coinjoin with Keys for Encryption Reused
Для стека биткоина
Часть 1.
⬇️⬇️⬇️
SNICKER ("Простые неинтерактивные Coinjoins с ключами для повторного использования шифрования") - это метод, позволяющий создать двухпартийный CoinJoin (CJ) без какой-либо синхронизации или взаимодействия между участниками.
Автором SNICKER является один из разработчиков JoinMarket Adam Gibson. SNICKER представлен в качестве проекта предложения по улучшению биткойна (BIP).
Чтобы совершить транзакцию-CJ пользователи должны подписать всю транзакцию, добавив все свои монеты и новые адреса получения. Они должны совершить транзакцию несколько раз и одновременно быть в сети. SNICKER же требует лишь сторону для передачи зашифрованных данных, а другую - для их получения.
Объясняя процесс SNICKER я использовал статью "SNICKER: How Alice And Bob Can Mix Bitcoin With No Interaction".
Повторное использование адресов:
Алиса имеет 1BTC, который она хочет миксануть и он представлен как UTXO в блокчейн. Он отправляет этот биткоин себе же, на свой же адрес, публично отмечая UTXO как потенциально доступный для микса.
Боб также имеет 1BTC и он не знает Алису, но знает, что где-то в сети есть такие пользователи, которые помечают свои UTXOs для микса. Боб сканирует блокчейн в поисках таких помеченных UTXOs, плюс ко всему находит повторно используемые адреса, которые недоступны для смешивания (о них чуть позже).
Так как Алиса, отправила биткоин на тот же адрес, ее PublicKey опубликован в блокчейне. Боб использует этот PublicKey Aлисы и объединяет его со своим PrivateKey для создания “shared secret”.
Shared secret - это часть данных, известных только вовлеченным сторонам в защищенном сообщении. Обычно это относится к ключу симметричной криптосистемы. Общий секрет может быть паролем, парольной фразой, большим числом или массивом случайно выбранных байтов.
Этот секрет является общим, потому что только Алиса и Боб могут генерировать его: Боб со своим PrivateKey и PublicKey Алисы, а Алиса со своим PrivateKey и PublicKey Боба (соответствующим монетам, которые они хотят смешать).
Итак: Боб имеет UTXO Алисы (потому что он помечен) и ее PublicKey + общий секрет.
Боб берет "общий секрет" и использует его для математической "настройки" PublicKey Алисы. Такая настройка создает новый PublicKey, но без PrivateKey...пока без него.
Тут интересный момент....Этот PrivateKey для нового PublicKey может быть обнаружен Алисой, при условии, что она изменит свой первоначальный PrivateKey при помощи общего секрета и полученный измененный PrivateKey соответствовал бы измененному PublicKey.
То есть Боб может генерировать новый PublicKey, а значит и новый адрес для Алисы, без ее ведома и который только она может потратить.
Итак: Боб имеет: UTXO Алисы, ее PublicKey, общий секрет и новый адрес для Алисы.
Боб создает транзакцию с двумя входами (UTXO Алисы и UTXO для своего биткоина). Он добавляет новый адрес Алисы и свой собственный адрес в качестве выходов и подписывает транзакцию.
Для создания транзакции-CoinJoin не хватает только подписи Алисы.
Боб шифрует транзакцию при помощи PublicKey Алисы, и только Алиса может расшифровать транзакцию. Боб публикует транзакцию на доске объявлений для пользователей SNICKER. Шифрование необходимо, так как, без него, потенциальный наблюдатель может определить какой вход принадлежит Бобу, а какой Алисе.
Транзакция CJ зашифрована и хоть Алиса и знает где искать, она не знает что искать. Алиса пытается расшифровать все предложенные объявления при помощи своего PrivateKey,
Найдя ту зашифрованную транзакцию, у Алисы есть все для завершения микса. Она использует свой PrivateKey и PublicKey Боба (в входных данных) для созданияобщего секрета, который она использует для создания нового PrivateKey. После проверки этого нового PrivateKey, который должен соответствовать ее новому, созданному Бобом, адресу, она подписывает и транслирует транзакцию в сеть.
Следующим постом разберу еще одну версию без повторного использования адреса.
#Privacy
BY CryptoBotan

Share with your friend now:
tg-me.com/CryptoBotan/983