Это детерминированная функция, которая вводит маленький бит произвольной длины, а на выходе всегда получается строка фиксированных битов.
Шифрование в блокчейне: на пальцах
Часто люди считают блокчейн сложным для понимания. На самом деле, основная идея технологии проста: блокчейн — это криптографическая система. Чтобы понять, как работают блокчейны, начните с криптографии.
В этой статье показано, как шифровать данные с помощью криптографических алгоритмов. Прочитав этот текст, вы будете лучше понимать, как работает блокчейн и почему он считается уникальным и анонимным.
Зачем шифровать данные в блокчейне
Благодаря криптографическому алгоритму технология блокчейн считается самым безопасным типом сети пиринговой торговли. Во-первых, поймите, почему блокчейн шифрует все.
В традиционной клиентской архитектуре за безопасность отвечает сервер. Они выполняют следующие функции
- Обеспечивает доступ пользователей к данным. Сервер хранит логины и пароли своих клиентов. Он должен проверить пользователя, прежде чем дать ему доступ к сети. Данный процесс называется аутентификация.
- Следит за сохранностью данных. Сервер не дает злоумышленникам получить доступ к личным данным пользователей. Другими словами, сервер гарантирует конфиденциальность.
- Контролирует изменение данных. Сервер не дает пользователям удалять данные друг друга. Прежде чем вступить в силу, любое изменение согласуется с сервером. Таким образом поддерживается целостность данных.
Поскольку блокчейн не имеет серверов, для этой цели используется шифрование. Алгоритмы шифрования делают вышеперечисленные функции бесперебойными.
Шифрование — это набор алгоритмов, которые шифруют информацию для обеспечения аутентификации, конфиденциальности и целостности данных.
Криптография была известна задолго до появления блокчейна. Чтобы понять, как алгоритмы шифрования работают в качестве серверов, рассмотрим настоящий исторический пример.
В середине 1650-х годов голландский ученый Христиан Гюйгенс обнаружил кольца Сатурна. Он не был уверен в правильности своих наблюдений, поэтому решил все контролировать. Пока он контролировал, другие ученые могли напасть на него. Так, в одной из своих работ ученый написал доклад:.
Позже Христиан Гюйгенс изучил все данные и был готов раскрыть свои выводы. Он показал, что шифр содержит буквы исходной фразы, расположенные в алфавитном порядке. Сами фразы были следующими.
Annulo Cingitur, Tenui Plano, Nusquam Coharente, ad Eclipticam inlinato.
‘В окружении тонких уровней’.
Алфавитное расположение букв — один из алгоритмов шифрования. Гюйгенс смог изменить свои выводы и не передал их конкурентам. Другими словами, алгоритм заменил сервер. Сохраняйте конфиденциальность данных без посторонней помощи.
В приведенном выше примере важно выбрать правильный алгоритм шифрования. Криптография отвечает на вопрос, какой алгоритм шифрования использовать.
Почему выбрали алгоритм с хеш-функциями
Войдите в должность программиста блокчейна. Для выполнения серверных функций на блокчейне необходимо найти идеальный алгоритм шифрования. Давайте создадим стандарты:.
- Нужен такой тип математических функций, который легко шифрует информацию без возможности расшифровки.
Это односторонние функции. Простейшим примером такой функции является умножение. Если вы знаете только ответ, вы не можете однозначно сказать, на сколько увеличиваются два числа. Например, число 6 может быть произведением 6 и 1, 2 и 3, 12 и 0,5 или даже 47,2440945 и 0,127 разных чисел.
- Нужен такой тип односторонних функций, который превращает информацию произвольного размера в шифр определенной длины.
Это функции фрагментации. Сообщение преобразуется во фрагмент. Эта форма информации может быть легко и безопасно использована при планировании.
Функция пробуждения SHA-1 преобразует Maff.io в 40-символьную последовательность
Сообщение может быть любым типом текста, изображения, видео или звука. Сообщения записываются в двоичном коде, чтобы можно было подробно объяснить математику.
Логотип MAF преобразуется в 64-символьную последовательность с помощью функции фрагментации SHA-256.
Фрагмент может состоять как из букв, так и из цифр. Какие цифры и буквы включаются в фрагментацию и в каком количестве они присутствуют, зависит от конкретной функции фрагментации. Рассмотрим подробнее самый известный SHA-256.
Вычислительная эффективность — компьютер должен быть достаточно мощным для быстрого возвращения фрагментации. Большинство компьютеров могут обработать функцию фрагментации за одну секунду.
Свойства хеш-функций
Фрагментация обеспечивает безопасность всего блокчейна. Это ключевая особенность.
Функция фрагментации криптовалют, используемая в майнинге, работает на основе очень сложного типа, который понимают лишь несколько человек. Существует несколько основных свойств, которые будут упомянуты далее.
Но сначала давайте обратимся к другому значению.
Конфликт возникает, когда функция фрагментации преобразует таблицу данных с несколькими записями в одну сводку. Поскольку длина блока постоянна, количество возможных значений ограничено и поэтому может повторяться.
Давайте рассмотрим свойства функций фрагментации.
- Детерминированность. Не имеет значения, сколько будет проведено преобразований, на выходе получается один и тот же хэш. Данное свойство дает возможность отследить исходную информацию.
- Оперативное вычисление. Хэш-функции необходимо как можно быстрее обеспечить возвращение исходной информации, иначе вся система окажется неэффективной.
- Устойчивость к коллизиям. Данное свойство обеспечивает надежную безопасность цифровых монет.
Хеширование в блокчейне Биткоин
Биткойн работает на блокчейне и использует алгоритм фрагментации SHA-256 (алгоритм шифрования 256). Этот алгоритм позволяет преобразовать любой объем информации в 64-символьную строку.
Для Bitcoin функция фрагментации выполняет три основные задачи.
- Майнинг – майнеры конкурируют за решение задач. Каждый майнер берет информацию из блоков, о которых они уже знают и выстраивают из них новый блок. Если на выходе алгоритм выдает значение, меньше целевой цифры, оно считается действительным и может быть принято остальными участниками сети. Майнер получает право на создание следующего блока.
- Соединение блоков – в целях дополнительной безопасности. Каждый блок в блокчейне связан с предыдущим, что достигается посредством хеш-указателя (переменные, хранящие адрес другой переменной). Каждый блок содержит результат хеширования от предыдущего блока в блокчейне. Благодаря этой функции можно легко отслеживать историю в блокчейне и исключить добавления вредоносного блока в сеть.
- Создание ключей – чтобы отправить или получить криптовалюту необходимы частный и публичный ключи. Оба ключа связаны друг с другом через хеш-функцию. Это неотъемлемый компонент, который исключает получение вашего частного ключа третьими лицами.
Биткойн выполняется следующим образом.
- Берется хэш содержимого нового блока.
- К хешу добавляется одноразовый номер (случайная строка).
- Новая строка снова хешируется.
- Затем окончательный хэш сравнивается с уровнем сложности и проверяется, действительно ли он меньше этого или нет.
- Если нет, то одноразовый номер изменяется, и процесс повторяется снова.
- Если да, то блок добавляется в цепочку, а публичный реестр обновляется и получает уведомление о добавлении.
- Майнеры, ответственные за это, награждаются биткоинами.
Заключение: почему это важно?
Функция фрагментации обеспечивает высокий уровень безопасности криптовалют. Хотя теоретически ничто не может быть полностью защищено от взлома, этот подход обеспечивает самый высокий уровень сложности.
Функции фрагментации могут быть использованы для достижения высокого уровня безопасности системы. Вы также можете фрагментировать пароли и шифровать другие данные.
Представьте, что ваша функция фрагментации экспортирует вас к животному вместо цифр или букв. Если вы введете случайные данные, существует такая же вероятность, что ваша функция фрагментации выдаст слона или обезьяну. Случайно выбранные данные могут быть преобразованы в одно или другое животное с одинаковой вероятностью.
Что такое криптографические хеш-функции?
Функции фрагментарного шифрования берут данные и, по сути, преобразуют их в серию букв и цифр. Вы когда-нибудь пользовались коротковолосыми URL-адресами, такими как Bitly или Tinyurl? Они похожи. Вы вводите что-то длинное, а на выходе получаете короткое представление этого длинного. Только в случае шифрования с функцией фрагментации вход не обязательно должен быть большим. Она может быть очень короткой (например, слово «собака») или почти бесконечной длины (например, весь текст сказки о двух городах), а результатом будет уникальная строка определенной длины. Также, в отличие от Link Shortener, функция фрагментации, используемая в Bitcoin, работает только в одном направлении. Одни и те же данные всегда дают одну и ту же фрагментацию, но исходные данные не могут быть воссозданы из полученной фрагментации.
Поэтому данные вставляются в функцию фрагментации, функция выполняется и получается последовательность букв и цифр (вы можете попробовать сами здесь). Эта строка называется хэшем. В блокчейне Биткойна фрагментация состоит из 256 бит или 64 символов.
Может показаться невозможным, что почти бесконечный объем данных можно последовательно перевести в уникальную строку из 64 символов, но именно таким чудесным образом работает криптографическая функция. Эта невероятная технология может перевести целую книгу, заполненную текстом, в серию из 64 цифр и букв. И каждый раз, когда вы вводите одни и те же данные, вы получаете не только один и тот же хэш, но и хэш, который уникален и отличается от других.
Пример
Это было самое прекрасное из времен и самое несчастное из времен — век мудрости, век безумия, век веры, век неверности, век света, век тьмы, фонтан надежды, холод отчаяния, у нас было все впереди и ничего перед нами, иногда мы парили в небесах, короче говоря, это было время, которое было как сегодня и очень похожее время, и его самый громкий оратор по-прежнему требовал говорить, к лучшему или худшему, как можно выше.
Существуют различные типы функций хэш-шифрования, каждая из которых работает по-своему. Использованная выше хэш-функция SHA-256, которая используется в Bitcoin, основана на очень сложной формуле, включающей отражение света от дефекта. Вам не нужно слишком беспокоиться об этом — это очень простая хэш-функция. Одним словом, криптографические хэш-функции — это магия, и если вы не математик, вы никогда не сможете понять их до конца.
Как хеш-функции применяются в блокчейне
Чтобы блокчейн работал, он должен обновляться. Как банк, он должен вести актуальный учет всех транзакций и активов (например, биткоинов), принадлежащих каждому участнику сети. Если информация о транзакциях обновляется, система аутентификации становится уязвимой для атак. Банки снижают этот риск за счет наличия строгой центральной иерархии, которая гарантирует аутентификацию на свой страх и риск. Как же блокчейн получает информацию и одновременно поддерживает децентрализацию? В ней используется потенциально криптографическая хэш-игра под названием proof-of-work.
Для продолжения работы блокчейну необходимо создавать новые блоки. Поскольку блокчейн является децентрализованной системой, новые блоки должны создаваться всей сетью, а не одной организацией, которая доказывает свою надежность. Чтобы определить новый блокчейн, сеть должна достичь консенсуса. Для достижения консенсуса майнеры предлагают несколько блоков, блоки проверяются, и, наконец, сеть выбирает один блок, который становится следующей частью реестра. Однако многие майнеры предлагают идентичные блоки, которые проверяются. Как же выбрать конкретный блок, чтобы он стал следующим блоком в цепи?
Компьютеры соревнуются в играх с гашишем. Все очень просто. По сути, чтобы выиграть игру, компьютер майнера должен угадать число, называемое «nonce». Это, в сочетании со всеми предыдущими данными в блокчейне, дает определенный хэш при вводе в хэш-функцию SHA-256.
Помните хакера из фильма, который использует программу, угадывающую миллион паролей в минуту, чтобы взломать компьютер? Вот так. Каждый шахтер в мире одновременно использует аналогичную программу угадывания, чтобы найти подходящий нанс. Затем эти данные добавляются к данным блокчейна и поступают в хэш-функцию SHA-256, в результате чего получается случайный хэш, который есть у самого блокчейна. Это было определено как «решение» проблемы. В некотором смысле, компьютеры работают в тандеме, поскольку не все хэши могут быть предоставлены повторно. Компьютер, который первым угадает правильное число, выигрывает право на создание следующего блокчейна и получает 12,5 биткоинов. В настоящее время эта сумма составляет около 50 000 долларов США.
Это гарантирует консенсус, а также предотвращает атаки, направленные на манипулирование системой. Поскольку результатом каждой записи является совершенно уникальная фрагментация, только определенные не-CE в сочетании с правильными данными, ранее проверенными в блокчейне, дадут фрагментацию, которая решит уравнение. Если введены неправильные или некорректные предшествующие записи, соответствующая фрагментация не появится. Таким образом, шифрование делает блокчейн более безопасным, чем любой банк с человеческой верификацией.
Однако по мере того, как все больше и больше людей имеют все больше и больше компьютерной мощности для добычи биткоинов, возникли новые проблемы. Инновации привели к созданию мощных компьютеров, предназначенных специально для добычи биткоинов. Эти компьютеры могут предоставлять хэши гораздо чаще, чем обычный компьютер, что позволяет им угадывать быстрее и, таким образом, добывать больше биткоинов.
Проблема заключается в том, что риск централизации возрастает по мере того, как все меньше людей могут приобрести технологию добычи. Блоки создаются, и биткоины добываются, как только находится решение для следующего блока. Поэтому те, у кого есть ресурсы, могут создавать более мощные майнинговые машины, чем кто-либо другой, добывать большую часть биткоинов быстрее, чем кто-либо другой, и обеспечивать больше спекуляций за более короткий период времени.
Стандартные функции фрагментации получают входные данные переменной длины, чтобы вернуть данные завершения фиксированной длины. Функции шифрования фрагментации объединяют сообщение функции фрагментации со свойствами безопасности и возможностью передачи сообщения.
Процесс Майнинга
Примечание: В этом разделе описывается создание биткоинов. Когда протокол Bitcoin хочет добавить новый блок в цепочку, происходит процесс майнинга. Каждый раз, когда появляется новый блок, все его содержимое сначала фрагментируется. Если совпадающий хэш превышает уровень сложности, установленный протоколом, он добавляется в блокчейн, и все члены сообщества признают новый блок.
Однако все не так просто. Нужно быть слишком удачливым, чтобы получить новый блок таким образом. Это связано с тем, что это уникальный символ. Уникальный NonCE — это одноразовый код в сочетании с фрагментированным блоком. Эта строка снова модифицируется и сравнивается с уровнем сложности. Если он соответствует уровню сложности, случайный код меняется. Это повторяется миллион раз, пока требование не будет окончательно выполнено. Когда это происходит, блок добавляется в блокчейн.
— Выполняется хэширование содержимого нового блока. NonCE (специальные символы) добавляются к -Hash. — Новая строка снова фрагментируется. — Окончательная фрагментация сравнивается с уровнем сложности, чтобы узнать, меньше ли она. Если нет, то код нереальности меняется, и процесс повторяется снова. — Если да, то блок добавляется в цепочку, и блокчейн получает уведомление, информирующее узел о том, что новый блок был интегрирован. — Ответственные за этот процесс получают вознаграждение в виде биткоинов.
Помните ли вы количество свойств шести функций фрагментации? Удобство использования для вашей работы? Для каждого выхода ‘Y’ невозможно найти вход x для H(k | x) = y, если K выбирается распределением с высокой минимальной энтропией.
Таким образом, в отношении майнинга биткоина:.
-K = уникальный символ -X = фрагментированный блок -Y = целевая проблема
Согласно доказательству и смыслу рабочего протокола, весь процесс является полностью случайным, основанным на генерации случайных чисел.
- Решение задач должно быть сложным.
- Однако проверка ответа должна быть простой для всех. Это делается для того, чтобы убедиться, что для решения проблемы не использовались недозволенные методы.