Введение в технологию Блокчейн

Введение в технологию Блокчейн

Тимур Сергеевич Машнин

Описание

Эта книга – ваш надежный проводник в мир технологии блокчейн. Вы познакомитесь с базовыми концепциями, методами разработки приложений для блокчейн сетей и основными компонентами, такими как транзакции, блоки и цепочки блоков. Узнайте, как работают операции верификации, валидации и достижения консенсуса, и какие алгоритмы лежат в основе этой революционной технологии. Изучите криптографические хеш-функции, их свойства и приложения, а также принципы скрытия информации в цифровом пространстве. Книга доступно и понятно объясняет сложные понятия, делая технологию блокчейн доступной для широкого круга читателей.

<p>Тимур Машнин</p><p>Введение в технологию Блокчейн</p><p>Введение в криптографию и криптовалюты</p>

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

Итак, криптографическая хэш-функция является математической функцией. И она обладает рядом свойств.

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

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

Также хэш-функция должна быть криптографически безопасна.

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

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

И это означает, что нельзя найти две разные строки с одинаковой хэш-функцией.

Теоретически коллизии существуют, так как на вход вы берете строку любой длины, а на выходе получаете строку 256 бит.

Вопрос в том, могут ли эти коллизии быть найденными обычными людьми, использующими обычные компьютеры?

С точки зрения вероятности, если взять 2 в 130 степени случайно выбранных входных строк, то с вероятностью 99.8 %, по крайней мере, две из них будут конфликтовать, независимо от используемой хэш функции.

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

И это, конечно, астрономическое число.

Не существует хеш функции, для которой было бы доказано, что она свободна от конфликтов.

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

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

И я имею в виду следующее.

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

Предположим, например, что у нас есть большой файл.

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

Один из способов сделать это, это сохранить весь большой файл. И затем, когда мы получим другой файл, просто сравнить их.

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

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

Если хеши одинаковы, мы делаем вывод, что файлы одинаковые.

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

Второе свойство, которое мы хотим от хэш-функции, состоит в том, что она является скрывающей.

Если у нас есть результат хэш-функции, тогда нет никакого способа определить, что из себя представляет вход хэш функции.

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

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

Таким образом, хэш функция H (r | x) означает взять все биты r и поместить после них все биты x.

Если r – случайное значение, выбранное из широкого распределения, то, учитывая H (r | x), невозможно найти x.

Таким образом хэш r соединенного с x, будет скрывать x.

Теперь давайте посмотрим на применение этого скрывающего свойства.

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

Позже вы можете открыть конверт и выдать значение.

Мы хотим сделать это в цифровом смысле. Например, вы можете передать сообщение.

И эта передача выдаст два значения, com и key.

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

Затем вы позволяете кому-то проверять, учитывая com, key и сообщение, что этот конверт, ключ и сообщение действительно идут вместе.

И эта проверка вернет истину или ложь.

Мы помещаем сообщение в конверт и передаем сообщение.

И эта передача возвращает конверт и ключ, а затем мы публикуем конверт.

Позже, чтобы открыть конверт, мы должны опубликовать ключ.

И тогда кто-то может использовать этот конверт, ключ и сообщение, чтобы проверить валидность открытия конверта.

Таким образом невозможно будет подменить сообщение в конверте.

Похожие книги

1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих

Алексей Анатольевич Гладкий

Эта книга – ваш полный гид по работе с программой 1С:Управление небольшой фирмой 8.2. Вы научитесь автоматизировать управленческий учет основных операций, а также процессы маркетинга и кадрового планирования. Подробные уроки охватывают все аспекты деятельности современного предприятия, от ввода данных до формирования отчетов. Практические примеры и рекомендации основаны на реальных ситуациях, гарантируя эффективное применение полученных знаний. Изучите все возможности программы 1С:Управление небольшой фирмой 8.2 с нуля, шаг за шагом.

Искусство программирования для Unix

Эрик Стивен Реймонд

Эта книга не просто руководство по Unix, а исследование его философии и культуры. Она не ориентирована на технические подробности, а на понимание "почему это следует сделать", а не "как". Автор, Эрик Стивен Реймонд, обращается к опыту ведущих разработчиков Unix, чтобы показать, как коллективная культура и традиции влияют на создание эффективных и устойчивых программ. Книга разделена на четыре части: Контекст, Проектирование, Реализация и Сообщество. Каждый раздел раскрывает различные аспекты Unix-культуры, от истории и философии до практических рекомендаций для программистов. Книга подходит для тех, кто хочет понять не только "как", но и "почему" Unix-программирование так эффективно. Понимание принципов проектирования, заложенных в Unix, поможет вам создавать более качественные и гибкие программы.

Основы объектно-ориентированного программирования

Бертран Мейер

Этот фундаментальный учебник посвящен основам объектно-ориентированного программирования и программной инженерии. В нем излагаются ключевые понятия объектной технологии: классы, объекты, управление памятью, типизация, наследование и универсализация. Особое внимание уделяется проектированию по контракту и обработке исключений, как важным механизмам для обеспечения корректности и устойчивости программных систем. Книга основана на работах Б. Мейера и предлагает глубокое понимание объектно-ориентированного программирования.

Искусство вторжения

Кевин Митник, Вильям Л Саймон

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