Криптографическая Hash-функция 🐾
Hash-функция - это как отпечаток пальца, но только в отношении данных.
У hash-функции есть несколько особенностей:
- Hash-функции могут взять данные "X" любого размера и сжать их в определённый фиксированный размер.
Одна из hash-функций, которые мы используем повседневно, это почтовые индексы. В России они шестизначные, то есть они имеют фиксированную длину. У нас может быть сколько угодно человек (к примеру, 50 000 или 500 000) внутри одной области, они могут по-разному весить, но мы можем их всех скомпоновать в одно значение с фиксированной длиной символов.
Однако, почтовые индексы - это не защищённая hash-функция.
- Hash-функции всегда детерминированы и однозначны.
То есть, если вы возьмёте один и тот же набор данных и будете его хешировать несколько раз подряд, то вы всегда получите один и тот же Hash.
- Hash-функции очень эффективно высчитываются.
В случае с биткоином hash-функции высчитываются за наносекунды. Современные компьютеры выполняют около 5-500 миллиардов вычислений в секунду с помощью процессора. Это примерно 0,1-0,5 MH/s - MegaHashes per second - Мегахеш в секунду. Если вы включите видеокарту, то получите около 1-150 миллионов вычислений в секунду. Это уже 1-150 MH/s.
Следовательно, hash-функции — удивительно эффективный алгоритм!
Что бы понять как получаются мегахеши можно воспользоваться картинкой ниже:
Криптографические особенности:
- Информатики используют термин "Устойчивость к прообразу". Если выразится проще, то можно сказать "Односторонность".
То есть невыполнимо определить данные "X" по hash-функции вычисленной для этих данных "X". Можно двигаться только в одну сторону: невозможно определить входные данные, имея только выходные данные.
Почему мы использовали термин неопределимо, а не, например, невозможно? Потому что эти данные можно получить "грубой силой", то есть подборкой различных вариантов, что практически неосуществимо, но в теории возможно.
Суть криптографии заключается не в том, что бы сделать расшифровку невозможной в принципе, а в том, чтобы сделать шифр настолько сложным, что бы ваш "враг" не смог его расшифровать.
Так что мы не можем говорить, что биткойн является неизменным, потому что если мы сломаем (расшифруем) hash-функции внутри биткоина, мы сможем изменить данные. Но это практически нереально.
Даже Сатоши Накамото писал об этом в 2010 году в своём письме (он получал письма с вопросами о биткоине). Его спросили: "Что будет если SHA-256 (hash-функция на которой держится биткоин) будет взломана?" Его ответ был таков, что к тому времени уже будет изобретена более новая и продвинутая hash-функция. В таком случае мы бы взяли всю сеть биткоина, захешировали её (Вы же помните что мы можем взять и захешировать любой объём данных?) и двигались бы дальше. То есть, в теории, биткойн в будущем мог бы перейти на более новую hash-функцию, когда её изобретут, и если для этого будет необходимое количество времени, и старую hash-функцию к тому времени не взломают.
- Концепция устойчивости к столкновению.
То есть невыполнимо, что 2 набора данных (данные "X" и данные"Y"), захешируются в одно и тоже значение.
Невыполнимо, что Hash (данных "X") = Hash (данных "Y")
Мы опять же говорим, что это невыполнимо, а не невозможно, потому что это просто нельзя сделать на текущий момент, но в будущем может будет и можно.
- Эффект лавины.
Hash-функции выглядят очень хаотично и рандомно. Это называется "эффектом лавины", и значит то, что если вы поменяете хоть одно маленькое значение в исходных данных, то значение hash-функции от этих исходных данных будет выглядеть совершенно по-другому. Таким образом hash-функция получается более безопасной.
- Дружелюбие к головоломкам.
Это значит, что даже если вы знаете часть вводных данных, вы не сможете найти выходные данные.
Знание Hash (данных "X") и какой-то части данных "Х" не позволит вам найти оставшуюся часть данных "X"
Вышеперечисленным хочется дать понять, что в криптовалюте есть много криптографии, которая существует как будто в невидимом слое. Ключ к пониманию этого состоит в том, что блокчейн не на 100% неизменный. Всегда есть шанс, что что-то в блокчейне может пойти не так. Хоть и вероятность этого очень мала, но она есть. То есть квантовый компьютер, например, может на это в будущем повлиять.
Если вам понравились подробные краткие информационные выжимки из лекций Гэри Генслера, то добро пожаловать на мою страничку. Лекции будут постепенно появляться тут.
Подписывайтесь и оставляйте комментарии!)
Теги: #технологии #криптовалюта #блокчейн #финансы #деньги