Для тех, кто хочет знать все о мировом финансовом рынке, рынке ценных бумаг, криптовалютах, участниках финансового рынка и его структуре.

Глубокое погружение: модель безопасности Биткойна

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

Каждая модель безопасности есть две основные части: допущения и гарантия. Если входные данные верны, необходимо обеспечить гарантии и на выходе из модели.

Давайте рассмотрим модель безопасности, предложенная пользователям Бикини, совместимое с целых узлов.

В поисках истины

“Одна из сильных сторон Бикини — даже одна из самых важных, на мой взгляд, это ваш шанс, низкой степени доверия к другим людям”. — Питер Will

Цель распределенных журнала — обеспечение упорядоченного историю событий, потому что в распределенных системах вы не можете просто полагаться на временные метки.

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

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

С учетом этой гипотезы, операторы полные узлы могут быть абсолютно уверенным в некоторых фактах:

  • Никто не увеличивал денежную массу, кроме того, так и в соответствии со строго установленным графиком;
  • Никто не потратил деньги, без собственности, я совершил закрытого ключа;
  • Никто не потратил те же деньги в два раза.

Операторы полные узлы могут быть полностью уверены, что в некоторые утверждения. Есть разумные гарантии того, что:

  • Любой блок в цепи был создан в течение двух часов интервал относительно отметки времени накопителя;
  • Синхронизируются с истинной версии истории на кухне.

На техническом уровне, это потребует множество испытаний.

Все диски по-прежнему правило консенсуса:

  • Каждый блок связан с родительским блоком;
  • Каждый блок соответствует степень его сложности и в его решении вложили значительные усилия;
  • Метки времени устройства находятся в окно времени для недавно найденных блоков;
  • Корень Меркель (хэш-сумма, хэш-код для каждой транзакции в блок) выполняет все операции, в блок;
  • Ни один из блоков не превышает максимально допустимый размер;
  • Первой (и только первой) сделке каждый блок coinbase транзакции (особый вид сделки, который не требует, чтобы существовали до вылета, то есть, это награда, что так получают за добычу новых блоков);
  • Coinbase выходы платят не более одного установленного на момент вознаграждения за найденный блок;
  • Блоки содержат только допустимые для деятельности фирмы.

Все операции соблюдаются правила консенсуса:

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

Также есть много других правил, обсуждение здесь, это займет много времени.

Термодинамика безопасности

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

Источник: “Bitcoin’s Security Model Revisited by Yonatan Sompolinsky1 and Авив Зоар

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

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

Источник: http://bitcoin.sipa.be

Давайте рассмотрим несколько ценовых атак этого типа:

Antminer S9 требует 0.1 Дж в Gh/s(109 хэш)
1026 хэша * 0.1 j / 109 hash = 1015 Дж
1015 Дж = 2,777,777,778 кв/ч * $0.10 кв/ч = $277,777,778 будет стоимость электроэнергии для перезаписи всей кухне.

На момент написания этой статьи, сложность конкретном блоке, как правило 253,618,246,641, что требует примерно:
253,618,246,641 * 248 / 65535 = 1.09 * 1021 хэш пароля.
1.09 * 1021 хэша * 0.1 J / 109 hash = 1.09 * 1011 Дж
1.09 * 1011 j = 30,278 кВт/ч * $0.10 кВт/час = $3,028 стоимость электроэнергии для перезаписи блок.

Именно поэтому мы можем играешь на утверждать, что Bitcoin термодинамически страхования.

Для уменьшения затрат, можно изменять некоторые переменные, упомянутые выше расчеты, но мы уверены, что можем быть уверены, что понадобится много миллионов долларов в виде электричества, чтобы перезаписать все ищут. Тем не менее, злоумышленник с этого-поехать в мощности, в худшем случае можно переписать сделки до 2014 года, и скоро видим, причиной этого возможность.

Также имейте в виду, что в этот расчет не отражает значение, свойства и использование необходимого количества кошка и оборудования для проведения такого рода атак.

Устойчивость к атакам Сибил

Потому, что Bitcoin-это протокол, считает, что реальная строка-это, который имеет наибольший накопленный испытание работы (не более длинные цепи, как часто неправильно), в результате новый ПИР, по сети, вам нужно только подключиться к одному сделано для свадьбы, чтобы найти правильную строку.

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

На следующем рисунке показано, в худшем случае, в, что ваш сайт подвергается Сибил атаки, но все еще имеет соединение с честным, узел, который подключен к истинной Bitcoin-сети. Пока один честный ПИР, передает истинных блокировки данных на их полный сайт, будет совершенно ясно, что какой-то Сибил, злоумышленники пытаются обмануть вас, и вашего сайта, чтобы игнорировать их.

Консенсус в режиме реального времени

Bitcoin-протокол создает ряд других интересных атрибутов, связанных с поддержанием не было консенсуса, когда ваш сайт находится на передовых кухня.

Авторы “Research Perspectives and Challenges for Bitcoin and Cryptocurrencies” отмечают следующие свойства, которые важны для стабильности кристаллов:

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

Экспоненциальной сходимости. Вероятность того, что ветвь глубине н равно Или(2−n). Это дает пользователям высокий уровень доверия, что простое правило “k подтверждений предоставить не менее состоявшихся сделок.

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

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

Правосудия. Шахтера, который имеет X% от общей вычислительной мощности сети извлечь около X% блоков.

Авторы статьи отмечают, что Bitcoin, по-видимому, имеет эти свойства, по крайней мере, в предположении, что большинство моряков по-прежнему честный, и стимулировать награда нашел диск, приобретенный посредством выдачи тестирования, проведенного объема работы (Proof of Work).

Есть много других алгоритмов, которые можно использовать, чтобы сохранить консенсус в распределенных системах, например:

  • Доказательства права собственности;
  • Тест на возраст валюте;
  • Испытания резервуара;
  • Испытание уничтожения;
  • Тест деятельности;
  • Испытание затрат времени;
  • Федеративного Консенсуса;
  • Практика Отказоустойчивость.

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

Неправильное понимание модели безопасности

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

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

Тем не менее, есть некоторые свойства, Биткойн-протокола, которые часто анализируются правильно.

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

Стоит отметить, что bitcoin имеет 13 жесткую контрольные точки, но они не меняют модель безопасности так, как это делают централизованно, видны точки контроля. Последняя контрольная точка была добавлена в Bitcoin Core 0.9.3 и находится в блоке 295000, которая была создана 9 апреля 2014 года. Этот диск имел сложности 6,119,726,089, которая потребует примерно:

6,119,726,089 * 248 / 65535 = 2.62 * 1019 хэш пароля
2.62 * 1019 хэша * 0.1 J / 109 hash = 2.62 * 109 Дж
2.62 * 109 Дж = 728 кВт/ч * $0.10 кВт/час = $73 количество поколения устройства.

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

Если злоумышленник подает узел сети, пока синхронизируется блока 295000, злоумышленник сможет вручить поддельные блоки, тратят $73 в одно целое, пока, наконец, настанет время для преобразования. Тем не менее, в процессе синхронизации атакуемого хоста злоумышленника будут расти расходы на поддержку строки с наибольшим накопленного труда.

Грег Максвелл и Питер will двумя заявили, что надеются когда-нибудь полностью удалить контрольные точки. Специалист по обслуживанию Bitcoin Core Владимир Ван дер Лаан, отметил, что контрольные точки являются постоянным источником путаницы для людей, которые пытаются понять модель безопасности Бикини.

Можно привести аргумент, что означает, что полный узел “доверяет” разработчиков Bitcoin Core относительно действительности истории на кухне (до 9 апреля 2014 года, но сайт по-прежнему проверяет Меркле-хэш в заголовке каждого блока, что означает, что достоверность истории сделок по-прежнему применяя доказательство произведенной работы. Эти старые контрольные точки позволяют увеличить производительность, минуя проверки подписи) во время начальной синхронизации на кухне, хотя введение libsecp256k1 сделал разницу в производительности менее значительной.

Контрольные точки остаются активными для трех целей:

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

Пока писалась эта статья, Грег Максвелл предложил, что контрольные точки накопительное проверки работы. Как только узел настраивается контур, который содержит более 5,4 * 1024 хэш строки, и с меньшим количеством накопительное работы, будут считаться недействительными. Это примерно совпадает с количеством выполненных работ за единицу 320,000 в сентябре 2014 года, и на тот момент сложность блоков составляла примерно 27,000,000,000.

Источник: Blockchain.info

Добыча блоков в общей сложности требуется около 27,000,000,000
27,000,000,000 * 248 / 65535 = 1.16 * 1020 хэш пароля
1.16 * 1020 хэша * 0.1 j / 109 hash = 1.16 * 1010 Дж
1.16 * 1010 j = 3,222 кВт/ч * $0.10 кВт/час = $322 за единицу

Таким образом, учитывая предложенные изменения, если Сибил-атакующий полностью окружил новый узел, который был синхронизирован с нуля, может выдавать ложные блоки, из всех блоков после genesis диска, почти не тратя денег. Если Сибил злоумышленник собрал узел, который был синхронизирован около 320 000, он может начать выдавать ложь цепи, с этой точки по цене 322 долл. за единицу.

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

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

В дополнение к очков существует также вопрос о том, как сайт загружается сам. Текущий процесс Биткойн-узлов является проверить, имеет ли он в локальную базу данных пар, которых он знал ранее. Если нет, вам будет предложено ввести набор “семена DNS”, закодированной в программе. Эти семена содержат список адресов, связанных с Биткойн-узлов, которые загружаются на ваш сайт.

Как мы можем видеть, в коде Bitcoin Core 0.13 активных в настоящее время DNS поддерживают семян Питер Уилл, Мэтт Коралло, Люк, Передай, Кристиан Деккер, Джефф, Гэри и Йонас Шнелли. Любой человек может держать в DNS сети из семян, использование В Питер Oil bitcoin-Сидер этого торрента или Мэтт Коралло, несмотря на то, что для принятия новых узлов, вы должны убедить разработчиков для реализации комплексных хоста, чтобы добавить свой DNS-узла, на программное обеспечение.

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

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

Модель безопасности для различных параметров инициализации не состоит в том, что оператор полный сайт доверяет ДНС семена Х или разработчикам ядра, И руки честного сведения, и по крайней мере 1/x ДНС семена не нарушена или 1/и Core разработчики честны в связи с рассмотрением поправок, принятых в списке кодирования пар.

Ничто не является полностью безопасным

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

Существуют методы для проверки программного обеспечения, посредством выделения цифровых подписей в его двоичный файл с фирмы van der Laan, но маловероятно, что многие люди аукционе на этапе проверки. Что касается доверия, компьютеры, – это сложная проблема. Это вероятно, что вы будете использовать безопасное аппаратное решение, как ORWL, что гарантирует “короткие”, при попытке вмешательства извне.

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

Равновесие сил в Бикини

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

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

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

Упрощенное описание динамики силы удара в Бикини:

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

К сожалению, пока изменения правил может быть совместим технически, с годами мы узнали, что достаточно инновационные soft-Force, по сути, может реализовать изменения, явно выходят за рамки предыдущей версии правил. Виталик Путин доказал с описание метода софт-форк времени появления новых блоков в Бикини, а не 10 минут а 2, что, конечно, ускорить график выпуска новых бикини.

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

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

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

Безопасность VPS

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

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

Satoshi писал, что SPV-клиент “не может проверить транзакции самостоятельно, но, связав с местом в строке, можно увидеть, что узел сети, был принят, и блоки, добавленные после нее, в дальнейшем лишь подтверждают принятие транзакции по сети”. VPS подразумевает, что дальнейшее блокирование транзакций X будет стоить дорого.

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

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

SPV клиенты могут сделать запрос для получения дополнительной информации о сделках, которые влияют на определенные адреса. Несмотря на то, что для пары было бы достаточно дорого, чтобы лгать о существовании ложных подтвержденных транзакций (требуется Майнинг блока с достаточным числом PoW), могут лгать, утверждая, что результаты Блум фильтр, используемый для запроса информации о транзакции, не существует. Также стоит отметить, что VPS серьезно уязвимой с точки зрения конфиденциальности дефектов в Блум фильтры.

BitcoinJ имеет отличное описание модели безопасности SPV. В отношении сделок, не подтвержденных отметил:

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

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

Нет места, как Localhost

Если вы не торгуете полная узла и не факт, что вы используете для проверки транзакции), вы передаете на аутсорсинг, по крайней мере, определенный уровень доверия, третьих лиц, что приводит к модели безопасности для использования Бикини. Имейте в виду, что это не обязательно требует, чтобы все пользователи и компании создали свой непосредственно над RPC API Bitcoin Core.

Некоторые альтернативы конфигурации инфраструктуры, могут использовать следующие опции, но не исключительно:

1) Использование мобильный телефон, кошелек, такой как Bitcoin Wallet для Android, GreenAddress или Копить, которые позволяют настроить кошелек для выполнения запросов только с собственного полноценного сайта.

2) Создание приложений на основе библиотеки узлы SPV, таких как BitcoinJ, и настройки для подключения только на свои собственные полный сайтов. В BitcoinJ это можно сделать путем определения собственных SeedPeers, что вы передаете группы сверстников во время инициализации. С помощью libbitcoin вы можете настроить сетевое подключение к определенному узлу, с этом примере.

3) Создание прокси-сервер, совместимый с API JSON-RPC Bitcoin Core, который отправляет некоторые звонки третьим лицам услуг, но также автоматически проверяет данные, отправляя запросы на локальный доступ к полному сайт. Для примера, см. BitGo’s BitGoD программного обеспечения. Эта гибридная модель способна предложить лучшее из обоих миров: вы можете использовать дополнительные функции, предоставляемые третьими сторонами, сохраняя их финансового суверенитета.

Полные узлы для свободы

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

Вам также может понравиться