Есть ли какие-то анонимные криптовые ошибки?

Недавно я изучал Биткойн и натыкался на многочисленные заметки о том, что Биткойн вообще не анонимен, или как это частично анонимно, и вы можете легко отслеживать свои средства.

Итак, это подводит нас к моему вопросу: есть ли какие-то истинные анонимные крипторесурсы, которые я могу использовать, и следов не останется.

Я довольно новый член криптомаши, поэтому, пожалуйста, держите его простым. :)

31 голос | спросил HowardLoosingIt 11 J000000Friday14 2014, 16:51:05

4 ответа


48

Короткий ответ - нет. Длинный ответ разбит на три части, каждая из которых имеет смелое слово.

  1. Я расскажу о существующих инструментах конфиденциальности в Bitcoin.
  2. Я расскажу о некотором теоретическом криптографическом криптографии, который достигнет полной анонимности (но которая сегодня не может быть осуществлена).
  3. Я расскажу о CryptoNote, его ограничениях и возможных способах его решения, которые могут быть реализованы сегодня, в частности те, которые уже были реализованы Monero.

Сегодня вы можете сделать многое относительно запаса Bitcoin в направлении конфиденциальности. Две стратегии, которые я должен упомянуть, - CoinJoin и CoinSwap .

  1. CoinJoin работает, эффективно вставляя транзакции. В биткойне каждая транзакция представляет собой список вводов, привязанных (посредством цифровой подписи) к списку выходов. Сделка действительна, если общее выходное значение меньше или равно суммарному входному значению (любая разница - это «плата за транзакцию», заявленная горняками), и если каждый вход является действительным (не уже проведенным) выходом старой транзакции , CoinJoin принимает транзакции от двух или более пользователей, объединяет списки ввода и вывода, и оба пользователя подписывают итоговую транзакцию. В результате стандартная интерпретация анализа потока «все входы принадлежат одному и тому же лицу» и «все выходы принадлежат одному и тому же лицу, за исключением, может быть, для выхода изменения». CoinJoin сложно реализовать хорошо: выходные значения должны быть как можно более однородными, чтобы не группировать их и сопоставлять их с входными значениями; результирующие результаты не должны проводиться одновременно, поскольку это также группирует их; объединение должно включать две разные стороны, ни один из которых не является центральным сервером, участвующим в каждом соединении. В настоящее время нет хороших инструментов, которые удовлетворяют всем этим требованиям, но есть несколько разработок (таких как DarkWallet). Держите глаза открытыми.
  2. CoinSwap делает несравненное смешивание даже в разных блочных цепях (если у каждого есть достаточно богатая система сценариев). Слишком сложно суммировать здесь, но результат такой же, как если бы обе стороны переключили личные ключи лично, за исключением того, что нет места для обмана. То есть, монеты перемещаются между сторонами, но блокчлен не видит этого, и поэтому анализ цепи не может связывать их - за исключением того, что они выглядят забавно, поэтому, если пользователей почти нет, их транзакции можно связать этот факт один. Насколько мне известно, нет инструментов, которые поддерживают это. Я разрабатываю биткойн-кошелек для экспериментальных функций, таких как тот, который будет поддерживать его, но может пройти несколько месяцев или лет.

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

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

Точка этого размышления состоит в том, что нет сильных теоретических причин, что то, что вы хотите, невозможно. Но я собираюсь разбить пузырь, который я только что создал, и поговорить о практических проблемах: во-первых, для того, чтобы сделать такой общий расчет, нужно знать нуль даже удаленно, вам нужно использовать систему, которая имеет доверенная настройка (в криптографических терминах эта схема защищена только в модели CRS (общая ссылочная строка)). Это означает, что какая-то сторона, создатель схемы, вероятно, имеет доступ к секретным данным, которые позволят им создавать ложные доказательства, эффективно позволяя им незаметно печатать деньги на все время. Недавним примером такого рода является статья SNARKs для C от Eli Ben-Sasson et. al., который обеспечивает много исторического контекста.

Во-вторых, даже с этим фатальным недостатком эти схемы не все, что можно вычислить. Zerocoin, теперь завершенный Zerocash, взял этот подход инеобходимо создать серьезные ограничения: все монеты имеют одинаковую ценность, нет сценариев (даже для многозначных транзакций, я считаю), и даже поэтому некоторые серьезные работы пошли на специальную оптимизацию, чтобы делать все, что осталось (например, хеширование) в нулевом знании , Для исследования ZeroCash начинается первоначальная настройка в многопартийном расчете , чтобы ни у кого не было секретного материала, необходимого для печать монет; их было бы несколько, и до тех пор, пока даже один навсегда уничтожил их данные, валюта была бы в безопасности от подделки.

Однако доверенная настройка ZeroCash на порядок сложнее, чем любой другой MPC, который когда-либо был выполнен. И наиболее эффективные схемы MPC зависят также от надежной настройки, поэтому мы ничего не получили.

Сказав, что мы можем получить что-то более слабую, чем общая анонимность, и похоже, что мы можем сделать это по доступному пути. Как уже упоминалось, CryptoNote использует валюты подписей групп , в которых участвует доверенная сторона), а не простые старые подписи ECDSA в доказательство собственности часть их схемы подписи транзакций. Вероятно, самым известным криптовалютом, который первоначально был основан на CryptoNote, является Monero . Несмотря на то, что Monero впоследствии существенно отклонился от своих истоков CryptoNote, он по-прежнему реализует многие ключевые концепции ниже и дополнительно улучшает многие проблемные области, изначально выделенные в этом ответе.

Чтобы понять, как работает CryptoNote, мы должны сначала вспомнить, как работают транзакции биткойнов. По сути, в биткойне каждый вывод транзакции имеет связанный с ним открытый ключ (идентифицированный, хотя и не обнаруженный, адресом биткойна на выходе), и для трассировки этого вывода вам нужно создать небольшой скрипт, включающий цифровую подпись с использованием этого ключа. Когда каждый видит эту транзакцию, они видят, что старый результат (ы) расходуется (чтобы они могли забыть об этом, за исключением того, что сохраняли исторические данные о блок-цепочке для новых пользователей) и что были созданы новые неизрасходованные выходные данные. С другой стороны, сигнатуры подписей связаны с произвольным набором открытых ключей, и для создания подписи требуется знание только одного. CryptoNote использует это, если каждый вход транзакции представляет собой set потенциальных неизрасходованных выходов одного и того же значения, подписанных кольцевой сигнатурой, используя все связанные с ними выходы. Невозможно определить, какой из них является «реальным», который фактически подписывает подписавшийся.

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

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

Это очень перспективное направление, и эти подписи можно проверить обычными компьютерами (хотя они сложнее, поэтому масштабирование будет хуже, чем у биткойнов), но есть некоторые серьезные ограничения. К счастью, все можно исправить. Следующий список - это результат разговоров между мной, Грегом Максвелом, Питером Тоддом, Марком Фриденбахом, Адамом Бэк и несколькими другими (кто, я уверен, свяжется со мной, чтобы их перечислили :)), и, насколько мне известно, был опубликован в любом месте. Поэтому, стремясь анонимных разработчиков Altcoins, вот список желаний:

  • В биткойне, поскольку транзакционные выходы неопровержимо потрачены, общий список неизрасходованных продуктов растет только очень медленно. Узлы с ограниченным хранилищем могут хранить это, и в основном ничего другого: когда они видят новый блок, они проверяют его, а затем обновляют свой список неизрасходованных выходов соответственно. В CryptoNote это невозможно, поскольку транзакционные выходы никогда определенно не тратятся: есть гигантский список потенциально переносимых выходов и гигантский список отработанных ключевых изображений, и оба они растут очень быстро и никогда не сокращаются. Текущие реализации CryptoNote, за исключением Monero, хранят это все в ОЗУ, что ставит довольносерьезная нехватка их масштабируемости сегодня. Одним из улучшений масштабируемости Monero является сохранение этого набора на диске в очень быстрой базе данных LMDB , но набор смешаемых выходов по-прежнему неограничен и, как ожидается, будет расти быстрее, чем сопоставимый utxoset от Bitcoin.

Тем не менее, это может быть дополнительно улучшено за счет того, что пользователи сохраняют только выходы, чьи ключи у них есть (плюс некоторые дополнительные возможности для анонимности) и только подмножество отработанных ключевых изображений, которые я опишу. Набор выходов будет храниться в дереве Merkle, упорядоченном вставки (так что пользователь, практически не содержащий ни одного дерева, может легко проверять новые результаты, но не может обнаружить дубликаты, что хорошо). Набор изображений будет храниться в дереве Merkle, упорядоченном с изображением (так что пользователь, который почти не имеет дерева, может легко добавить новое ключевое изображение и убедиться, что он не существовал раньше, с учетом доказательства вставки, который в основном путь от нового узла к корню дерева вместе с братьями и сестрами каждого узла по пути). Чтобы тратить выходные данные, пользователь предоставляет кольцевую подпись, включая вывод, с соответствующим ключевым изображением и доказательством новой вставки.

Обратите внимание, что для получения доказательства вставки для нового ключевого изображения пользователю необходимо сохранить все его соседи в дереве ключевых изображений. Поскольку ключевые изображения случайны, как это можно сделать, не сохраняя все это? Ответ: префикс-фильтрация . Когда пользователь создает новый ключ, он создает тот, чьи первые 10 бит (скажем) являются определенной десятибитовой последовательностью, которая будет иметь все его ключевые изображения. Он хранит каждое ключевое изображение, которое запускает эти десять бит, чтобы он мог производить доказательство вставки таких изображений. Результатом является сокращение анонимности (в 2 раза $ {10} $), поскольку все будут знать, что близкие ключевые изображения, скорее всего, будут принадлежать одному и тому же человеку, чем отдаленные, но соответствующее сокращение памяти (в $ 2 ^ {10} $) и увеличение времени генерации ключей (так как в среднем $ 2 ^ {10} $ ключи должны быть сгенерированы до того, как появится один правый префикс). Это компромисс, который каждый пользователь должен будет сделать.

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

Мы можем улучшить это, чтобы эффективно использовать CoinJoin для всех транзакций в каждом блоке (с предостережениями, которые: a) майнеры могут деанонизировать CoinJoin, уменьшая анонимность до меньшего набора, предоставляемого кольцевыми сигнатурами, и (б) возможно, чтобы шахтеры чтобы обнаруживать мошенничество, поэтому после добычи появляется небольшое окно, в котором содержимое блока может быть недействительным, показывая его обман, что увеличивает сложность) (сложность попадает, потому что важно, чтобы блок контент , а не сам блок, будет признан недействительным, поскольку в противном случае шахтеры могли бы намеренно обмануть, а затем выявить мошенничество позже, предоставив им большое окно, в котором все остальные добывают плохую цепочку). Точная схема описывается в самом верху этого журнала IRC .

(Такая же безопасность может быть обеспечена причудливой криптографией, в частности односторонние агрегируемые подписи только математика » Грега Максвелла), которая зависит от спаривания криптографии, которая является медленным и требует новых предположений о безопасности, которые делают некоторые люди неудобными. Точный способ их использования описан от 21:24:58 вперед в этих журналах IRC . Очень круто, что мы можем получить такую ​​же безопасность без нового криптографического кода.)

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

Это можно устранить, потребовав минимальный размер набора анонимности, поскольку Monero сделал на уровень протокола с марта 2016 года. Но тогда у нас есть новая проблема - есть только так много выходов любого заданного размера, и поскольку все выходы в наборе анонимности должны быть одного размера (поэтому сетьзнает, сколько вы тратите), это может быть невозможно. Это можно устранить, разрешив выходы любого размера в наборе анонимности, а минимальный размер - сумму расходов. Но затем, получив кольцевую подпись на нескольких выходах, люди будут знать, что результат с наименьшим размером будет «реальным». Это связано с тем, что каждый выход может быть использован только один раз, поэтому, если вы смешиваете его с меньшими выходами, вы в основном уменьшаете его до размера этих выходов, так как сеть будет распознавать меньшее значение.

Все эти проблемы рассматриваются в следующей точке.

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

Фактически, мы с Грегом Максвелом нашли способ, чтобы каждый отдельный вывод можно было читать как любое равномерное распределение выходов (поэтому 1BTC можно было бы потратить как на один вывод 1BTC, либо на два 0,5 выхода BTC, или на три 0,33 выхода BTC и т. д.). Существует одно «реальное» распределение, но только создатель вывода знает об этом, и он не отображается, кроме случаев утечки ключей. Таким образом, буквально каждый отдельный размер вывода может быть правдоподобным для создания каждого выхода, и поэтому все выходы могут участвовать в каждом наборе анонимности. Эта схема описывается в этой записи .

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

Monero решила эту проблему аналогичным образом, реализовав схему, основанную на Конфиденциальные транзакции Грега Максвелла . Эта новая схема и реализация называются Конфиденциальные транзакции на звонки . Поскольку значение выходов больше не известно в рамках этой схемы RingCT, вы больше не вынуждены смешивать только с небольшим подмножеством выходов (т. Е. Те из одного и того же наименования, которые в CryptoNote и pre-RingCT Monero обозначены как ^ 10 деноминированных выходы). Это значительно увеличивает набор возможностей анонимности и гарантирует, что даже большие выходы не «застревают» только с несколькими совместимыми, смешиваемыми выходами.

И, кстати, Dash (ранее Darkcoin) не предоставляет анонимности. Они приложили (сломанную) реализацию CoinJoin к обычному клиенту Bitcoin и по крайней мере первоначально выпустили его как программное обеспечение с закрытым исходным кодом. Я не смотрел на Anoncoin, но лучший совет, который у меня есть для людей, смотрящих на альткоины, - предположить, что они неинтересны (и, вероятно, опасно сломанный ), пока кто-то не продемонстрировал конкретные технические нововведения.

ответил Andrew Poelstra 11 J000000Friday14 2014, 19:53:14
11

Во-первых, я разработчик ядра Monero. Я постараюсь оставаться как можно более объективным и объективным.

Теперь, для простого ответа: используйте Monero

И для более длительного ответа: прочитайте очень информативный ответ Эндрю Поелстра.

Я бы также добавил следующее:

  • Zero-Knowledge Proof имеет несколько фундаментальных проблем, которые могут быть даже не исправлены (от менее критического к самому критическому): надежный аккумулятор, отсутствие академических исследований, затенение всей экономики означает, что невозможно заметить ошибку пока экономика не была сильно повреждена. См. Наше сравнение в ANN Monero.
  • Технология CryptoNote является надежной, но наиболее актуальной ее реализация не является - Boolberry и, в частности, Monero, единственные, кого стоит рассматривать на основе уверенности рынка, активности и объема.
  • Monero также работает с инициативой i2p для обфускации IP (единственное, что осталось видимым, когда CryptoNote находится в действии).
ответил David Latapie 24 AM00000040000001231 2014, 04:25:12
1

прежде всего, вы можете продолжать использовать биткойн, просто используйте веб-сайты микшера для монет, чтобы отправить свои деньги, такие как Sharecoin и другие. Itâ € ™ s очень проста в использовании, и она обеспечивает гораздо больше анонимности по сравнению с отправкой по умолчанию.

В мире Altcoin: я бы рекомендовал вам проверить протокол CryptoNote . Он использует кольцевые подписи для смешивания результатов транзакций, что делает практически невозможным отслеживание средств. (Я понимаю, что ваша самая большая проблема)

В качестве примера реализации CN вы должны изучить Bytecoin (BCN) . Он был начат еще в 2012 году и был добыт примерно 2-3 тыс. Человек, которые были разделены на команды.

Так как это криптографический портал, вы, вероятно, знаете Адама Назад, он упомянул CryptoNote как новое поколение алтных монет.

Кроме того, я чувствую себя обязанным упомянуть еще несколько анонимных монет, чтобы посмотреть: Darkcoin , Anoncoin и их вилки.

ответил 11 J000000Friday14 2014, 17:22:44
-4
  

И, кстати, Darkcoin не предоставляет анонимности. Они приложили (сломанную) реализацию CoinJoin к обычному клиенту Bitcoin и по крайней мере первоначально выпустили его как программное обеспечение с закрытым исходным кодом.

Это полный кувшин. Анонимность Darkcoin наиболее близка к фактической реализации среди всех анонимно-центрированных альтов. RC4 находится в тестировании, пока мы говорим прямо сейчас, и будем отмечать DarkSend +.

Все монеты будут автоматически анонимизироваться с интервалом, а не только при их отправке. Это означает, что все население монет будет анонимным туманом.

Кроме того, система masternode будет использоваться для цепочки нескольких проходов DarkSend +, чтобы увеличить анонимность, так что даже в маловероятном случае с множественными узлами вероятность компрометации всех узлов в последовательности почти невозможна.

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

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

ответил Richard Ellsbury 24 J000000Thursday14 2014, 08:57:51

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132