скачать книгу бесплатно
Срыв стека
Виктор Каика
Вы что, до сих пор не знаете, что такое СТЕК?Не переживайте. Это всего лишь новое слово, пришедшее к нам из области информационных технологий, такое же, как ФЛЕШКА, КЕШ-ПАМЯТЬ и ХЕШ.Кстати, все они читаются через букву «Э» и звучат так: «хЭш», «кЭш-память», «флЭшка».Так что произносите правильно: «срыв стЭка».А какие за этим стоят приключения, и что это такое, узнаете, прочитав книгу.
Срыв стека
Виктор Каика
У человека обширнее всего сфера смутных представлений.
Иммануил Кант
© Виктор Каика, 2021
ISBN 978-5-4498-4390-6
Создано в интеллектуальной издательской системе Ridero
«В начале было Слово». С первых строк
Загадка. Так ли понял я намёк?
Ведь я так высоко не ставлю слова,
Чтоб думать, что оно всему основа.
«В начале мысль была». Вот перевод.
Он ближе этот стих передаёт.
Подумаю, однако, чтобы сразу
Не погубить работы первой фразой.
Могла ли мысль в созданье жизнь вдохнуть?
«Была в начале сила». Вот в чём суть.
Но после небольшого колебанья
Я отклоняю это толкованье.
Я был опять, как вижу, с толку сбит:
«В начале было дело», – стих гласит.
Иоганн Вольфганг Гёте
Глава 1
Хозяин дома, мужчина лет сорока пяти, изрядно волновался. Он стоял за спиной у сидевшего за его столом Александра, отступив немного назад, и, с заметной тревогой глядя поверх плеча, внимательно следил не за движениями рук, хотя и это, наверное, могло быть интересным, а за перемещениями курсора мышки на экране огромного, с разрешением в 8K, монитора и открывающимися на сверхвысокопикселированной матрице диковинными окнами, содержимое которых завораживало загадочностью неизвестных ему знаний, усиливая и без того немалое уважение к приглашённому специалисту, которого, кстати, в некоторые моменты начавшегося ещё вчера по телефону разговора даже воспринимал как доктора.
И вот совпадение, но непонятно правда, в шутку или всерьёз, Саша со своей стороны тоже иногда мысленно называл своих клиентов, чьи компьютеры ему приходилось приводить в чувства, пациентами. Да и на самом деле – немудрено; ведь для многих пользователей компьютер (каким бы он ни был: маленьким, в виде мобильного телефона или какого другого гаджета, как их принято называть, либо в виде большого, стационарного, который сейчас был объектом пристального изучения) уже давно стал продолжением если не тела, то личности во многом, и лечить, ну или учить, что в данном случае было практически уже синонимами, часто приходилось не сами устройства, сколь бы интеллектуализированы они ни были, а именно их обладателей.
– Николай, вы лучше берите стул и садитесь рядом, а то, боюсь, стоять вам придётся долго, – сказал, скромно улыбаясь, Александр, бросив взгляд на владельца уникальной машины, вызывающей ответное уважение.
А машина была действительно уникальна, и этим волнение клиента было вполне оправдано – такую вычислительную мощь Саша видел впервые, и даже просто включить её и наблюдать, как этот, разбуженный лёгким движением руки монстр загружается и оживает, Александру уже? доставляло неслыханное удовольствие. Наверное, такие же эмоции испытывает человек, неровно дышащий к оружию, в момент соприкасания указательного пальца с воронёной сталью спускового крючка новенького, с полной обоймой, с патроном в стволе, взведённого и снятого с предохранителя, готового к выстрелу швейцарско-немецкого пистолета «Зиг Зауер» или советского ТТ.
Однако при этом больше всего Александра поразил даже не тот гигантский объём оперативной памяти аж в двести пятьдесят шесть гигабайт, а видеоадаптер, и не только размером радиатора и количеством охлаждающих его вентиляторов. Если центральный процессор компьютера был шестидесятичетырёхразрядным и десятиядерным, с двумя потоками в каждом ядре, что по нынешним временам очень даже круто, то в процессоре видеокарты было сосредоточено: более четырёх тысяч ядер! с разрядностью шины данных аж в семьсот шестьдесят восемь бит!
Да, конечно, ядра такого процессора узкоспециализированы, под графику, но Александр не понаслышке знал, что считать на них можно, и очень даже неплохо, поскольку и сам имел немалую практику написания машинных кодов, использующих мощь видеоконтроллеров. Созданная им программа, помогающая по имеющимся хешам восстановить пароли входа в систему методом простого перебора, при грамотном распределении задачи между всеми ядрами 3D-графики, уже и на его, не самой мощной видеокарте работала в тысячи раз быстрее, чем на любом центральном процессоре, каким бы серьёзным он ни был, даже при условии оптимизации машинного кода под размер его кеш-памяти и предпринятых мер по уменьшению штрафов, получаемых из-за неугаданных направлений условных переходов.
Впрочем, именно загадочные проблемы в работе видеокарты и заставили Николая обратиться за помощью к такому специалисту, как Александр. И да, безусловно, по рекомендации – Саша знал это наверняка, так как в принципе никаких объявлений никогда не давал.
Но теперь, по крайней мере, было понятно, почему клиент не желал расставаться со своим компьютером и настоял на том, чтобы мастер приехал к нему сам. Ясное дело, доверить, и уж тем более отдать ТАКОЙ компьютер в руки даже знакомому человеку и оказаться в неведении того, что с ним делают в течение какого-то, пусть и очень короткого времени, означало для его владельца выйти из зоны комфорта, вдобавок и к без того нарушенному душевному равновесию из-за внезапно возникших странных проблем.
Да, несомненно, и диагностировать, и приводить в порядок и железо, и программное обеспечение намного удобнее в лабораторных условиях, однако теперь, увидев ЭТУ машину, Александр был даже рад, что согласился на роль визитёра; ведь случись что – и доказывать уже, что ты не виноват, будет крайне неприятно, а значит, во избежание недоразумений уж лучше делать всё в присутствии клиента и на его глазах. Впрочем, он всегда был к этому готов и не страдал фобией к работе под пристальным вниманием, а фразу: «не люблю, когда у меня стоят за спиной», даже произнесённую с извинениями, считал не просто недопустимой, а тривиально ставящей клеймо профнепригодности.
Итак, по словам Николая, с какого-то момента, правда, с какого именно припомнить точно он не мог, но не далее как неделю назад, компьютер вдруг ни с того, ни с сего стал сильно шуметь. Обратив на это внимание, Николай вынужден был открыть крышку корпуса процессорного блока и заглянуть вовнутрь. Далее, долго прислушиваясь ко всем возможным источникам звука, он пришёл к выводу, что, скорей всего, шумят вентиляторы охлаждения радиатора видеокарты, выходя на большие обороты даже тогда, когда на компьютере не запущено никаких приложений, работающих с трёхмерной графикой, чего раньше никогда не наблюдалось. Однако попытки разобраться с возникшей проблемой самостоятельно оказались тщетны и ни к чему не привели…
В общем, анамнез Александру был понятен и вскоре оказался полностью подтверждён. Подтвердилось и его предположение, сложившееся ещё вчера на фоне первичных ощущений при разговоре по телефону, что клиент технически достаточно грамотен. Это всегда расценивалось положительно, но в данном случае – особенно, потому как понимание происходящего со стороны наблюдающего уменьшало вероятность возникновения недоразумений, цена которых неизбежно коррелировалась стоимостью компьютера и была высока до неприличия.
Авторизация интернет-соединения прошла успешно и диалоговое окно, поглотившее неизменно наличествующую классическую пару логин-пароль, исчезло. Промелькнуло и приветственное приглашение, свидетельствующее о том, что Саша соединился именно со своим файловым сервером. В первую очередь он скачал и запустил свой хакерский инструмент, написанный им для такого рода случаев, который на основе недокументированных команд, известных только хакерам, и то не каждому, давал подробную информацию о работе железа и видеопроцессора в частности. Едва взглянув на показания, плотными рядами отображающиеся в открывшемся окне, хмыкнул:
– Хм, кто-то грузит вашу видяху по максимуму, на все 100%, а вентиляторы – они, как и задумано, всего лишь не дают ей перегреться и при такой нагрузке, естественно, работают на максимальных оборотах, – с этими словами он окинул взглядом хозяина компьютера и обнаружил, что тот внял его совету и уже сидит на стуле рядом, справа от него. – Ну, что ж, будем искать, – широко улыбнувшись Николаю, обнадёживающе произнёс Александр.
Затем он открыл другое окно и, пристально всматриваясь в многочисленные ряды помеченных различными цветами строчек, стал внимательно изучать запущенные в операционной системе процессы. Обладая хорошей зрительной памятью, все их стандартные названия он помнил визуально и сейчас пытался найти ему незнакомые. Таких Саша насчитал пять штук. Дальше он стал по одному останавливать эти, неизвестные ему процессы, каждый раз проверяя, не пропала ли нагрузка на видеокарту. Увы, но этого не произошло – всё оказалось не так тривиально, как ему хотелось, и немного сложней, нежели он предполагал.
«Кто ж тебя грузит?!» – подумал он, закрыв на несколько секунд глаза, словно пытаясь заглянуть за горизонт событий и увидеть кратчайший путь к победе над чужим разумом, но кроме фразы: «сущность является, явление существенно», ничего сверхвыдающегося в голову не шло. Тогда, решив особо не заморачиваться, стал просто тупо, по одному, убивать запущенные в системе процессы, каждый раз при этом надеясь на то, что вот сейчас заклятие падёт, и он освободит попавшую в рабство и повинующуюся чьей-то чужой воле видеокарту.
Это должно было занять какое-то время. Оно неспешно шло, и с каждым нажатием на красный крестик, количество подозреваемых процессов неотвратимо уменьшалось, а вероятность отсечь и выявить чужую сущность, наоборот, росла.
– Ага, вот он! – наконец обрадовался Саша, увидев, что нагрузка на процессор видеокарты резко пропала. – Замаскировался гад, – он довольно улыбнулся, уже понимая, что задачка решена! И действительно, буквально сразу, в секунды, шум вентиляторов стал ослабевать, а через минуту и вовсе стало совсем тихо, будто исчезло, растворилось чьё-то чужое, злое я, только что присутствовавшее в компьютере.
Сидевший рядом клиент тоже это заметил.
– Ух ты, здо?рово! – улыбаясь произнёс он и, внезапно осознав, что причин для беспокойства больше нет, глубоко с облегчением вздохнул и вмиг повеселел. Со стороны было очень видно, как настроение его резко улучшилось, а вместе с ним, похоже, наконец, стало абсолютным и доверие к Александру. – Хотите кофе? – спросил он Сашу сразу, уже с твёрдой уверенностью в том, что тот вреда его компьютеру никак не причинит.
– С удовольствием, – ответил Саша улыбаясь, а когда Николай отправился на кухню, работу тем не менее свою продолжил. Он нашёл на диске тот самый файл, соответствующий только что убитому им процессу, мучившему видеокарту, и прежде всего скопировал его на свой сервер, чтобы потом, в лабораторных условиях, изучить его подробней – с таким в своей практике он ещё не сталкивался, и ему было крайне любопытно, что же это за зверь такой; и только затем, нет-нет, не удалил, а лишь переименовал его, как говорится, на всякий пожарный, чтобы в случае чего было легко вернуть всё назад – вдруг система без него откажется грузиться; ведь такое тоже не исключено. И шумит машина или не шумит, это всё-таки не главное, гораздо важней, что она при этом грузится и работает.
«Primum non nocere», – к месту вспомнив фразу на латыни и при этом тяжело вздохнув, Александр с охватившей его на момент философской грустью улыбнулся. Мысленно воспроизведя важнейший принцип медицинской этики, приписываемый ещё Гиппократу, в переводе означающий «не навреди», Саша, как всегда в таких случаях, действительно, почувствовал себя доктором.
Однако, как говорится, глаза боятся – руки делают, и он, ещё раз тщательнейшим образом продумав все возможные последствия следующего логически напрашивающегося шага, немного всё-таки волнуясь, наконец, отправил компьютер в рестарт, для проверки. А когда система вновь загрузилась, и Саша убедился, что никаких причин для беспокойства больше нет, то вот теперь, уже без опасений, он удалил переименованный файл и глубоко довольный улыбнулся сам себе, торжествуя в очередной раз одержанную победу над чужим интеллектом, загадочным образом воплотившим свою злую волю (и, казалось бы, в чём?) – в совершенно простом наборе ноликов и единичек.
И ох уж эти простенькие двоичные циферки… Несмотря на высокий профессионализм, а может быть и как раз наоборот – благодаря ему, самым странным после случившегося, а впрочем всегда служившим для Александра поводом к размышлениям, осталось осознание того непостижимого волшебства, что ведь сто?ит только лишь переставить эти нолики и единички в каком-нибудь другом порядке, как в результате – вместо злой и вредной, можно получить программу совершенно другую – абсолютно добрую и полезную.
К этому времени вернулся и Николай, улыбающийся и счастливый. Он внёс резной деревянный поднос с благоухающим напитком в золотистой турке и небольшим набором кофейных принадлежностей, красотой своей приковывающих взгляд, как то: две расписные, зо?лотом инкрустированные тонкого фарфора чашечки на блюдцах, сахарница из того же сервиза, изящные с позолотой маленькие ложечки и небольшая, в том же стиле тарелочка с пирожными; на ходу приглашая Александра пересесть за рядом стоящий журнальный столик, органично вписывающийся в интерьер комнаты.
Только сейчас, сидя в удобном кресле и наслаждаясь ароматом и вкусом чёрного кофе, оторвав свой взгляд от тёмной, отразившей искусственный свет зеркальной проталинки, образовавшейся в светло-коричневой пенке, ещё только что, до глотка, покрывавшей всю круглую поверхность горького с сахаром по вкусу содержимого чашки, Саша обратил внимание на комнату, в которой они находились. Что-то было в ней не так, но он никак не мог понять, что именно.
Глава 2
Комната была одновременно и в меру длинная, и в меру широкая. В соотношении её сторон чувствовалась некая гармония, и Саша даже вспомнил о таком понятии, как Золотое Сечение – пропорции, часто встречающейся в живой природе. Но явно не это его задевало. Гармония на то и гармония, чтобы быть прекрасной и незаметной. Или как сказал Иммануил Кант: Sch?n ist dasjenige, was ohne Interesse gef?llt. (Красиво то, что радует без интереса.)
Тем не менее он попытался воспроизвести в памяти значение этой, напомнившей о себе константы, но вместо цифр Золотого Сечения в голову лезли: то число Эйлера, то число пи, а то и вообще числа Фибоначчи. Последнее, что он вспомнил, было число Авогадро (тёмно-красное) и скорость света в вакууме, как и положено, девятизначная, причём на всепоглощающем чёрном фоне бесконечного космоса, с охваченными почему-то зелёным цветом километрами в секунду в конце.
Он бы и ещё блуждал по нескончаемым дебрям сплетённых из ветвящихся тоннелей межнейронных переходов, именуемых синапсами, в поисках затерявшегося сегмента памяти, в который когда-то было записано числовое значение ускользнувшей от сознания величины, но внезапно прозвучавший голос Николая вернул Сашу в реальность, снова усадив его в комнату за столик с чашкой кофе в руке.
– Александр, скажите, а что это было?
Сообразно своей профессии, такое переключение сознания Саша называл аппаратным прерыванием. Да и вряд ли он ошибался, ведь всё происходит именно так, как это организовано в современных компьютерах, а вернее, в многозадачных операционных системах, под управлением которых они работают.
Визуализация извлекаемых из памяти образов вмиг прекратилась, абстрактные картинки чисел и цифр куда-то исчезли, сознание быстро вернулось к потоку информации, стремительно несущемуся в мозг по зрительному нерву из слепого пятна сетчатки глаз. Мгновение, и Саша уже перевёл взгляд на Николая.
– А что это было, – бесцветного тона задумчивым голосом повторил он фразу, вернувшую его в реальность… – «Это он о чём, о числах?» – мелькнуло в голове. – «Ах, да! О видеокарте!» – всё, цепь недавних событий сегодняшнего дня сомкнулась с прерванной мыслями действительностью, и Саша улыбнулся.
Мы все это знаем. Когда ты, о чём-то глубоко задумавшись, уходишь в себя, до тебя порой бывает даже трудно достучаться. Но почему? Как это происходит? Каков механизм погружения личности в мысль?..
Вот ты задумался. Твоё сознание отстраняется от реальности и, в попытке вспомнить что-то, уходит от неё всё глубже и глубже, делает один поворот за другим – вверх, вниз, вправо, влево, наискосок, блуждает по извилистым переходам от одного нейрона к другому, а потом вдруг тебя зовут, и оно резко возвращается в ту точку, с которой всё началось, в которой отражается окружающая нас действительность. Но как наше сознание в этих, воистину бесконечных лабиринтах синапсов так быстро находит дорогу назад?!
Наш мозг состоит из ста пятидесяти миллиардов нейронов, каждый из которых имеет от ста тысяч до миллиона синаптических связей с другими нейронами, и ни одной повторяющейся! Кто может запомнить этот кошмарный путь?! Закинь человека в такой лабиринт, и в поисках выхода он будет блуждать в нём вечно!
Синапсы же передают сигналы только в одну сторону – это всегда дорога с односторонним движением. То есть если это и тоннели, то с эскалаторами и бегущими дорожками, движущимися только в одном направлении. Наверное в каждом нейроне, иногда думал Саша шутя, есть табличка со стрелкой, указывающей путь к выходу, и надписью «назад в реальность». Но, как говорится, в каждой шутке, может оказаться лишь доля шутки.
А быть может и на самом деле всё происходит так, как в созданных нами компьютерах? Сознание гнездится где-то в глубинах мозга в каком-нибудь специально отведённом для него месте, и то, о чём мы только что мыслили, вспоминая число, выгружается в специальную память для вре?менного оперативного хранения (программисты такую память называют «стек»), чтобы потом, в случае чего, додумать эту мысль; а из стека – наоборот, загружается предыдущее, сохранённое в нём перед этим, состояние мысли, например, реальности, выгруженной туда только для того, чтобы дать сознанию возможность покопаться в памяти.
– У меня нет никаких сомнений в том, что это вирус, – ответил Саша на заданный клиентом вопрос. – Вирус, который использовал вычислительный ресурс вашей видеокарты, причём по максимуму и достаточно агрессивно.
– Но с какой целью? – удивлённо и обескуражено произнёс Николай, услышав всегда так пугающее клиентов слово «вирус». Хотя вопрос прозвучал риторически, Александр не оставил его без ответа.
– На данный момент точно сказать не могу, – и поясняя добавил. – В антивирусных базах он не числится, так что покаместь про него никому ничего не известно, но, признаюсь, меня он заинтересовал – и именно потому, что написан для видеокарты, и чтобы изучить его работу детальней, я сделал себе его копию; так что если вас это интересует, то результатами исследования, которое надеюсь провести в ближайшее время, могу поделиться.
– Хорошо. Но вы можете хотя бы предположить, для чего ему потребовалась моя видеокарта? Для спам-рассылок?
Саша добродушно рассмеялся.
– Нет, для массовой рассылки писем достаточно мощности простого калькулятора. Тут задачи более трудоёмкие. На самом деле вариантов много: от простого рендеринга до распределённого по ядрам перебора паролей, но, учитывая современные тенденции в стремлениях нынешнего общества к обогащению, думаю, что вероятней всего вы стали жертвой криптовалютчика, – ответил Александр, печально улыбаясь.
– Криптовалютчика?! – удивился Николай. Такого ответа он точно не ожидал. – Из моего компьютера сделали майнинговую ферму?!
Сашина улыбка стала шире, и взгляд повеселел. «Ишь ты, какие слова знает!» – подумал он и поправил:
– Один компьютер – это, конечно, не ферма. Но ежели таковых миллион, то это уже более чем серьёзно. А ведь их может быть и миллиард! Такую ферму и не купишь, и не построишь!
– Миллиард?! – снова удивился Николай. – Разве такое возможно?
– В том-то и дело, что возможно. Тут надо вот что понимать: тот, кто пишет вирусы, имеет абсолютное преимущество – он всегда на шаг впереди, потому что априори делает этот шаг всегда первым. Антивирусным компаниям не позавидуешь – ведь лекарство можно создать только под хорошо изученный вирус, находящийся у тебя в руках, то есть уже существующий и распространившийся, ну или начавшийся распространяться.
Но для этого его нужно ещё обнаружить и исследовать, на что требуется время, впрочем как и на создание вакцины тоже, и пока это всё произойдёт, можно успеть полмира заразить. В интернете всё как в жизни, такое бывало не раз, и сегодня, при нынешних скоростях распространения информации, это уже не эпидемия – пандемия!
– Понятно, – Николай поднёс чашку ко рту, сделал небольшой глоток кофе и задумался. – Ох уж эти биткоины, – произнёс он обречённо. Потом улыбнулся и спросил. – Александр, а что вы сами, лично о них думаете?
Саша заданному вопросу не удивился. Немного поразмыслив, с чего начать, мягко, но слегка лукаво улыбаясь, неторопливо заговорил:
– Всё что я знаю о биткоинах, я вычитал в интернете. Впрочем не я один – насколько я понимаю, в университетах Сорбонны и Массачусетса этому пока не обучают, – он усмехнулся и продолжил уже более серьёзно. – В основном это навязчивая реклама того, как это хорошо и удобно. В подавляющей массе бесконечно перепубликуемая словесная мишура, сотканная из пустых, высоконаучных, мало кому доступных для понимания терминов. А вот важной, принципиальной информации, объясняющей способ существования и функционирования данного вида электронных денег – наоборот, крайне мало. Тем не менее некоторые представления о том, кому и для чего понадобились биткоины, и что они собой представляют, у меня сложились.
Саша осторожно подул в чашку, отгоняя пенку от ближайшего к его губам края тонкого фарфора, затем пригубил, сделал приятный глоток горячего кофе и, вновь глянув на мелькнувшее отражение лампочки в гладкой поверхности напитка, улыбаясь продолжил:
– Вы, Николай, наверное, считаете, что биткоин – это некое уникальное число, которое удовлетворяет каким-то особым, крайне редко реализуемым математическим требованиям, связанным с шифрованием; ведь иначе трудно предположить, почему, например, их количество ограничено всего лишь двадцать одним миллионом «монет». И, естественно, думаете вы, чтобы отыскать это волшебное число, требуется выполнить сложнейший алгоритм, приводящий к колоссальному количеству вычислений, и потратить на это бешеную кучу энергии и времени! Не так ли?
– Ну в общем-то да, по крайней мере, до сих пор у меня было именно такое представление. Но вы, насколько я понимаю, хотите его разрушить? – улыбнулся собеседник.
– Да, Николай, смею небезосновательно утверждать, что ваши представления ошибочны. Вы глубоко заблуждаетесь, впрочем, как и многие другие свидетели этого беспрецедентного шоу; извините, по-другому всё происходящее назвать не могу. Потому что на самом деле, биткоины – это всего лишь договорная запись, обычная текстовая, на простом человеческом языке – не более того, выполненная с согласия двух или более сторон, неким, отличным от принятого в традиционных базах данных способом, совершенно не требующая тех колоссальных затрат энергии и времени, которые мы наблюдаем.
– Но как же так? – удивлённо произнёс Николай. – А что же тогда делают майнинговые фермы? И на что тратится вся эта энергия? Будьте так добры, поясните.
– Для чего тратится такое количество энергии – это и есть самая большая загадка, – рассмеялся Александр и добавил. – Но, кстати, не единственная. Например, совершенно непонятно, почему до сих пор так тщательно скрываются сами создатели этого проекта, прикрываясь вымышленным именем какого-то несуществующего японца.
– Да, но ведь шифрование при этом всё-таки используется? Этого-то, надеюсь, вы не будете отрицать? – возразил собеседник.
– Конечно, используется. Я вам даже больше скажу; сегодня передача любой мало-мальски секретной информации, от самой серьёзной биржевой до обычной WhatsApp переписки, не обходится без шифрования. Однако, заметьте, ни одна из них не требует таких колоссальных затрат энергии, хотя криптографические алгоритмы везде применяются одни и те же. Например, основанная на наличии публичного и приватного ключей система асимметричного шифрования, которая используется для доступа к электронным кошелькам владельцев биткоинов – стара как мир. Она, конечно, совершенствуется, но, уверяю вас, не с целью увеличения затрат энергии и времени на кодировку, а лишь с целью её устойчивости ко взлому, – улыбнулся Саша.
Отложив пока вопрос, на что же всё-таки тратится энергия, Николай решил для себя кое-что из услышанного уточнить и спросил:
– Александр, я немножко недопонял, что означают ваши слова «биткоин – это просто текстовая запись»? Не могли бы вы объяснить мне подробнее, так сказать, на пальцах, как они всё-таки выглядят, биткоины?
– Ну, тут всё просто. Записи могут быть как минимум двух видов: приход денег и расход денег. Одни свидетельствуют о получении биткоинов, другие – об их отправке. И те и другие отражают события, происходящие в вашем электронном кошельке, причём достаточно подробно. Все записи ведёт система. Это такой своеобразный дневник, устроенный так, что в нём невозможно ни удалить листы, ни вклеить, ни поменять местами, ни изменить их содержимое, так как контрольная сумма предыдущей записи участвует в формировании контрольной суммы записи, следующей за ней. Это один из ключевых принципов технологии «цепочки блоков», по-английски – «блокчейн».
Например, самая первая запись вполне может иметь такое содержание: Сегодня такое-то число, столько-то времени. При майнинге в составе такого-то пула, с таким-то количеством участников, такой-то фермы, от Сатоси Накамото получено вознаграждение за произведённые вычисления, давшие самый красивый хеш с восемнадцатью нулями, в размере одна тысячная биткоина. Итого на данный момент вы имеете столько-то биткоинов.
Затем к этой записи добавляется специальное небольшое поле, которое можно изменять, и путём последовательного перебора разных вариантов его содержимого, и для этой записи тоже вычисляется свой «красивый» хеш с восемнадцатью нулями, – улыбнулся Саша. – И так до бесконечности – в общем, полный бред.
– Александр, а что такое хеш? – спросил Николай, хотя вопрос, почему «красивый» хеш есть полный бред, его тоже волновал, но он отсрочил его на потом.
– Хеш, с английского переводится как «мешанина». Его часто ещё называют контрольной суммой или свёрткой. Это целое число, обычно представленное в шестнадцатеричной форме, может иметь разную, но фиксированную длину, поэтому незначащие нули в нём тоже присутствуют, которое вычисляется специально разработанными для этих целей хеш-функциями или, как их ещё называют, функциями свёртки. Любую последовательность данных, любой, но обязательно конечной длины, будь то: текст, файл или часть потока информации, они превращают в хеш.
При этом у таких функций есть одно важное свойство. И хотя это строго и не доказано, но считается, что обратных функций, позволяющих преобразовать хеш снова в исходную информацию, не существует. Да это в общем-то и очевидно – ведь из слова, состоящего всего лишь из шестидесяти четырёх букв, а именно такой длины хеш используется в биткоинах, текст романа «Война и мир» не восстановить.
– Ага, теперь понятно, то есть если в записи события электронного кошелька изменить хотя бы один символ, то обязательно изменится и контрольная сумма. А майнинг заключается в поиске ТАКОГО дополнительного поля к записи события, которое даст самый «красивый» хеш, – улыбаясь подытожил Николай. – Скажите, Александр, а почему вы «красивый» хэш назвали бредом?
– Да потому что именно на его поиск якобы и уходят миллиарды киловатт-часов электроэнергии. Уходят впустую, потому что для технологии блокчейн количество нулей в контрольной сумме вообще не имеет никакого значения! Важна только целостность информации, а хеш – это всего лишь контроль этой целостности, и стремление к большому количеству нулей – это просто бред. Хотя,.. – Саша хитро улыбнулся. – Есть у меня, конечно, некоторые соображения на этот счёт; ведь люди, придумавшие биткоины, не могут быть такими глупыми. А значит, на всё должна быть своя причина.
– И вы её знаете? – с интересом молвил Николай.
– Да, конечно, – Саша рассмеялся. – Желаете услышать? – он улыбаясь посмотрел на собеседника.
– С удовольствием, – ответил тот, уже устраиваясь в кресле поудобнее.
– Хорошо. Значит, что такое биткоины, мы разобрались… Теперь попробуем предположить причину их возникновения. Для этого давайте представим себе такую ситуацию. Вот мы с вами тут сидим, и вы мне говорите: