Мегахеш, как он есть.
Если бы меня спросили, какое изобретение я считаю самым важным в истории человечества, я не задумываясь ответил бы, что это интегральная микросхема. Именно это миниатюрное, а теперь уже микроскопическое устройство определяет мировой порядок и облик нашей планеты в 21 веке.
В недрах практически любого современного гаджета пульсирует с сумасшедшей частотой электронное сердце в виде кристалла кремния. Однако, чем глубже внедряются чипы в нашу жизнь, в последние годы буквально внутрь наших с вами тел, тем меньшее представление мы с вами имеем об их устройстве и принципе работы. Вы когда-нибудь задумывались над тем, что находится внутри обычной сим-карты сотового оператора или под медными контактами ваших пластиковых банковских карт? Что именно происходит, когда вы подносите карту к терминалу оплаты на кассе магазина? Большинство людей, которым я задавал этот вопрос отвечали, что там ничего нет. Вообще ничего. Однако же кое-что там все-таки есть. И правильнее всего назвать внутренности сим-карты… компьютером. Да-да, с центральным процессором, оперативной памятью, постоянной (энергонезависимой) памятью и т.д. Вот, взгляните:
И это всего лишь сим-карта телефона.
Что уж говорить о центральных процессорах современных десктопов или графических процессорах топовых видеокарт. Попробуйте представить себе 12 МИЛЛИАРДОВ электронных ключей – транзисторов, переключающихся со скоростью полтора МИЛЛИАРДА раз в секунду КАЖДЫЙ. Просто представьте себе эту махину! Ну как если бы бо́льшая часть населения Земли в едином порыве бросилась бы с бешеной скоростью дергать рубильники туда-сюда, постоянно замыкая и размыкая контакты электрической цепи! На какой минимальной площади вы думаете можно разместить такое устройство? Размером с город? С футбольное поле? С ноготь!!! Менее 5 квадратных сантиметров площадь ядра видеокарты Nvidia GTX 1080Ti - флагмана современной индустрии видеоигр, не считая Титанов. Она же – самая высокопроизводительная машина для майнинга криптовалюты, среди себе подобных. (Не будем об asics сейчас.)
На что же направлена эта громадная вычислительная мощность, измеряемая триллионами операций в секунду? В большинстве статей о майнинге говорится о каких-то таинственных и невероятно сложных математических вычислениях, происходящих в недрах кристалла, в результате чего на свет появляется новый блок в сети биткоин или любой другой криптовалюты. Даже криптоэнтузиасты и майнеры со стажем в подавляющем своем большинстве не представляют, что именно рассчитывает их видеокарта. А рассчитывает она довольно простую криптографическую хеш-функцию, когда любой текст или набор данных преобразуется в совершенно уникальный набор символов. В принципе, имея лист бумаги и карандаш можно рассчитать хеш вручную, даже без калькулятора, минут за 15-20. Вот ссылка на соответствующую статью на хабре: https://habr.com/post/258181/
А так выглядит хеш-функция этого текста в алгоритме sha-256, используемом в сети биткоин:
d71b4e14f514ae156ca513ab9890449abb017ccb6717018dfeda83c40f5d1e1d
Если я изменю хотя бы один символ в тексте сверху, то и хеш будет совершенно другой. И вот еще что: зная хеш нельзя даже приблизительно догадаться или же вычислить исходный текст или данные. Таким образом он зашифрован. Так это работает. Теперь к сути майнинга. Видите хеш начинается с латинской d. А теперь попробуйте методом перебора, добавляя к тексту по одному или несколько случайных чисел подобрать такой хеш, чтобы он начинался на 0. Реально? Вполне. А 00? Потребуется гораздо больше времени, но, в принципе, возможно. А теперь представьте, что вам нужно подобрать хеш, который бы начинался вот так:
0000000000000000…
Примерно 10 минут все компьютеры в мире, занятые майнингом в сети биткоин, перебирая квадриллионы возможных комбинаций, расходуя на это гигаватты электроэнергии, ищут это заветное число nonce, при подстановке которого к массиву данных хэш будет начинаться с шестнадцати нулей. Кто нашел первый, тот и получил награду. Блок найден. В нем транзакции текущего блока, хеш предыдущего и то самое число nonce. Хотите подделать какую-нибудь транзакцию? Извольте подобрать соответствующий хеш ко всем последующим транзакциям в цепочке блоков! Но только не забывайте про те вычислительные мощности, которые задействованы для подбора одного единственного хеша.
Вычислительная мощность карты GTX 1080ti в алгоритме ethash составляет 35 мегахеш. (Мощность специализированных микросхем для майнинга в тысячу раз больше и измеряется гигахешами). Это означает, что в течение одной секунды чип производит 35 миллионов циклов расчета хеш-функции, на каждую из которых, человек затратил бы 15 минут. Иными словами, человеку потребуется тысяча лет на выполнение того объема вычислений, которое компьютер производит за секунду. Как тут не восхититься человеческому гению, создавшему столь сложную вычислительную машину в столь малом объеме!
С этим постом принимаю участие в заплыве: https://golos.io/ru--yastanudelxfinom/@slon21veka/stan-delfinom-na-golose