Срыв стека

Виктор Каика

Вы что, до сих пор не знаете, что такое СТЕК?Не переживайте. Это всего лишь новое слово, пришедшее к нам из области информационных технологий, такое же, как ФЛЕШКА, КЕШ-ПАМЯТЬ и ХЕШ.Кстати, все они читаются через букву «Э» и звучат так: «хЭш», «кЭш-память», «флЭшка».Так что произносите правильно: «срыв стЭка».А какие за этим стоят приключения, и что это такое, узнаете, прочитав книгу.

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Срыв стека предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Глава 2

Комната была одновременно и в меру длинная, и в меру широкая. В соотношении её сторон чувствовалась некая гармония, и Саша даже вспомнил о таком понятии, как Золотое Сечение — пропорции, часто встречающейся в живой природе. Но явно не это его задевало. Гармония на то и гармония, чтобы быть прекрасной и незаметной. Или как сказал Иммануил Кант: Schön ist dasjenige, was ohne Interesse gefällt. (Красиво то, что радует без интереса.)

Тем не менее он попытался воспроизвести в памяти значение этой, напомнившей о себе константы, но вместо цифр Золотого Сечения в голову лезли: то число Эйлера, то число пи, а то и вообще числа Фибоначчи. Последнее, что он вспомнил, было число Авогадро (тёмно-красное) и скорость света в вакууме, как и положено, девятизначная, причём на всепоглощающем чёрном фоне бесконечного космоса, с охваченными почему-то зелёным цветом километрами в секунду в конце.

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

— Александр, скажите, а что это было?

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

Визуализация извлекаемых из памяти образов вмиг прекратилась, абстрактные картинки чисел и цифр куда-то исчезли, сознание быстро вернулось к потоку информации, стремительно несущемуся в мозг по зрительному нерву из слепого пятна сетчатки глаз. Мгновение, и Саша уже перевёл взгляд на Николая.

— А что это было, — бесцветного тона задумчивым голосом повторил он фразу, вернувшую его в реальность… — «Это он о чём, о числах?» — мелькнуло в голове. — «Ах, да! О видеокарте!» — всё, цепь недавних событий сегодняшнего дня сомкнулась с прерванной мыслями действительностью, и Саша улыбнулся.

Мы все это знаем. Когда ты, о чём-то глубоко задумавшись, уходишь в себя, до тебя порой бывает даже трудно достучаться. Но почему? Как это происходит? Каков механизм погружения личности в мысль?..

Вот ты задумался. Твоё сознание отстраняется от реальности и, в попытке вспомнить что-то, уходит от неё всё глубже и глубже, делает один поворот за другим — вверх, вниз, вправо, влево, наискосок, блуждает по извилистым переходам от одного нейрона к другому, а потом вдруг тебя зовут, и оно резко возвращается в ту точку, с которой всё началось, в которой отражается окружающая нас действительность. Но как наше сознание в этих, воистину бесконечных лабиринтах синапсов так быстро находит дорогу назад?!

Наш мозг состоит из ста пятидесяти миллиардов нейронов, каждый из которых имеет от ста тысяч до миллиона синаптических связей с другими нейронами, и ни одной повторяющейся! Кто может запомнить этот кошмарный путь?! Закинь человека в такой лабиринт, и в поисках выхода он будет блуждать в нём вечно!

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

А быть может и на самом деле всё происходит так, как в созданных нами компьютерах? Сознание гнездится где-то в глубинах мозга в каком-нибудь специально отведённом для него месте, и то, о чём мы только что мыслили, вспоминая число, выгружается в специальную память для вре́менного оперативного хранения (программисты такую память называют «стек»), чтобы потом, в случае чего, додумать эту мысль; а из стека — наоборот, загружается предыдущее, сохранённое в нём перед этим, состояние мысли, например, реальности, выгруженной туда только для того, чтобы дать сознанию возможность покопаться в памяти.

— У меня нет никаких сомнений в том, что это вирус, — ответил Саша на заданный клиентом вопрос. — Вирус, который использовал вычислительный ресурс вашей видеокарты, причём по максимуму и достаточно агрессивно.

— Но с какой целью? — удивлённо и обескуражено произнёс Николай, услышав всегда так пугающее клиентов слово «вирус». Хотя вопрос прозвучал риторически, Александр не оставил его без ответа.

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

— Хорошо. Но вы можете хотя бы предположить, для чего ему потребовалась моя видеокарта? Для спам-рассылок?

Саша добродушно рассмеялся.

— Нет, для массовой рассылки писем достаточно мощности простого калькулятора. Тут задачи более трудоёмкие. На самом деле вариантов много: от простого рендеринга до распределённого по ядрам перебора паролей, но, учитывая современные тенденции в стремлениях нынешнего общества к обогащению, думаю, что вероятней всего вы стали жертвой криптовалютчика, — ответил Александр, печально улыбаясь.

— Криптовалютчика?! — удивился Николай. Такого ответа он точно не ожидал. — Из моего компьютера сделали майнинговую ферму?!

Сашина улыбка стала шире, и взгляд повеселел. «Ишь ты, какие слова знает!» — подумал он и поправил:

— Один компьютер — это, конечно, не ферма. Но ежели таковых миллион, то это уже более чем серьёзно. А ведь их может быть и миллиард! Такую ферму и не купишь, и не построишь!

— Миллиард?! — снова удивился Николай. — Разве такое возможно?

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

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

— Понятно, — Николай поднёс чашку ко рту, сделал небольшой глоток кофе и задумался. — Ох уж эти биткоины, — произнёс он обречённо. Потом улыбнулся и спросил. — Александр, а что вы сами, лично о них думаете?

Саша заданному вопросу не удивился. Немного поразмыслив, с чего начать, мягко, но слегка лукаво улыбаясь, неторопливо заговорил:

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

Саша осторожно подул в чашку, отгоняя пенку от ближайшего к его губам края тонкого фарфора, затем пригубил, сделал приятный глоток горячего кофе и, вновь глянув на мелькнувшее отражение лампочки в гладкой поверхности напитка, улыбаясь продолжил:

— Вы, Николай, наверное, считаете, что биткоин — это некое уникальное число, которое удовлетворяет каким-то особым, крайне редко реализуемым математическим требованиям, связанным с шифрованием; ведь иначе трудно предположить, почему, например, их количество ограничено всего лишь двадцать одним миллионом «монет». И, естественно, думаете вы, чтобы отыскать это волшебное число, требуется выполнить сложнейший алгоритм, приводящий к колоссальному количеству вычислений, и потратить на это бешеную кучу энергии и времени! Не так ли?

— Ну в общем-то да, по крайней мере, до сих пор у меня было именно такое представление. Но вы, насколько я понимаю, хотите его разрушить? — улыбнулся собеседник.

— Да, Николай, смею небезосновательно утверждать, что ваши представления ошибочны. Вы глубоко заблуждаетесь, впрочем, как и многие другие свидетели этого беспрецедентного шоу; извините, по-другому всё происходящее назвать не могу. Потому что на самом деле, биткоины — это всего лишь договорная запись, обычная текстовая, на простом человеческом языке — не более того, выполненная с согласия двух или более сторон, неким, отличным от принятого в традиционных базах данных способом, совершенно не требующая тех колоссальных затрат энергии и времени, которые мы наблюдаем.

— Но как же так? — удивлённо произнёс Николай. — А что же тогда делают майнинговые фермы? И на что тратится вся эта энергия? Будьте так добры, поясните.

— Для чего тратится такое количество энергии — это и есть самая большая загадка, — рассмеялся Александр и добавил. — Но, кстати, не единственная. Например, совершенно непонятно, почему до сих пор так тщательно скрываются сами создатели этого проекта, прикрываясь вымышленным именем какого-то несуществующего японца.

— Да, но ведь шифрование при этом всё-таки используется? Этого-то, надеюсь, вы не будете отрицать? — возразил собеседник.

— Конечно, используется. Я вам даже больше скажу; сегодня передача любой мало-мальски секретной информации, от самой серьёзной биржевой до обычной WhatsApp переписки, не обходится без шифрования. Однако, заметьте, ни одна из них не требует таких колоссальных затрат энергии, хотя криптографические алгоритмы везде применяются одни и те же. Например, основанная на наличии публичного и приватного ключей система асимметричного шифрования, которая используется для доступа к электронным кошелькам владельцев биткоинов — стара как мир. Она, конечно, совершенствуется, но, уверяю вас, не с целью увеличения затрат энергии и времени на кодировку, а лишь с целью её устойчивости ко взлому, — улыбнулся Саша.

Отложив пока вопрос, на что же всё-таки тратится энергия, Николай решил для себя кое-что из услышанного уточнить и спросил:

— Александр, я немножко недопонял, что означают ваши слова «биткоин — это просто текстовая запись»? Не могли бы вы объяснить мне подробнее, так сказать, на пальцах, как они всё-таки выглядят, биткоины?

— Ну, тут всё просто. Записи могут быть как минимум двух видов: приход денег и расход денег. Одни свидетельствуют о получении биткоинов, другие — об их отправке. И те и другие отражают события, происходящие в вашем электронном кошельке, причём достаточно подробно. Все записи ведёт система. Это такой своеобразный дневник, устроенный так, что в нём невозможно ни удалить листы, ни вклеить, ни поменять местами, ни изменить их содержимое, так как контрольная сумма предыдущей записи участвует в формировании контрольной суммы записи, следующей за ней. Это один из ключевых принципов технологии «цепочки блоков», по-английски — «блокчейн».

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

Затем к этой записи добавляется специальное небольшое поле, которое можно изменять, и путём последовательного перебора разных вариантов его содержимого, и для этой записи тоже вычисляется свой «красивый» хеш с восемнадцатью нулями, — улыбнулся Саша. — И так до бесконечности — в общем, полный бред.

— Александр, а что такое хеш? — спросил Николай, хотя вопрос, почему «красивый» хеш есть полный бред, его тоже волновал, но он отсрочил его на потом.

— Хеш, с английского переводится как «мешанина». Его часто ещё называют контрольной суммой или свёрткой. Это целое число, обычно представленное в шестнадцатеричной форме, может иметь разную, но фиксированную длину, поэтому незначащие нули в нём тоже присутствуют, которое вычисляется специально разработанными для этих целей хеш-функциями или, как их ещё называют, функциями свёртки. Любую последовательность данных, любой, но обязательно конечной длины, будь то: текст, файл или часть потока информации, они превращают в хеш.

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

— Ага, теперь понятно, то есть если в записи события электронного кошелька изменить хотя бы один символ, то обязательно изменится и контрольная сумма. А майнинг заключается в поиске ТАКОГО дополнительного поля к записи события, которое даст самый «красивый» хеш, — улыбаясь подытожил Николай. — Скажите, Александр, а почему вы «красивый» хэш назвали бредом?

— Да потому что именно на его поиск якобы и уходят миллиарды киловатт-часов электроэнергии. Уходят впустую, потому что для технологии блокчейн количество нулей в контрольной сумме вообще не имеет никакого значения! Важна только целостность информации, а хеш — это всего лишь контроль этой целостности, и стремление к большому количеству нулей — это просто бред. Хотя,.. — Саша хитро улыбнулся. — Есть у меня, конечно, некоторые соображения на этот счёт; ведь люди, придумавшие биткоины, не могут быть такими глупыми. А значит, на всё должна быть своя причина.

— И вы её знаете? — с интересом молвил Николай.

— Да, конечно, — Саша рассмеялся. — Желаете услышать? — он улыбаясь посмотрел на собеседника.

— С удовольствием, — ответил тот, уже устраиваясь в кресле поудобнее.

— Хорошо. Значит, что такое биткоины, мы разобрались… Теперь попробуем предположить причину их возникновения. Для этого давайте представим себе такую ситуацию. Вот мы с вами тут сидим, и вы мне говорите:

« — Саша, у меня есть одна идея, но мне для её реализации нужен миллион компьютеров. И это огромная проблема, потому что во-первых, у меня нет таких средств, чтобы их купить; во-вторых, у меня нет площадей, чтобы их где-то разместить; в-третьих, нет столько электроэнергии, чтобы их питать, а мощность потребления будет большая, так как мой проект подразумевает использование и процессоров видеокарт. В-четвёртых, мне не потянуть такого количества обслуживающего персонала. Что делать? Мы можем с тобой что-нибудь придумать?»

На что я отвечаю:

« — Николай, я не только знаю, как решить твою проблему, но, думаю, что мы ещё и неплохо заработаем. Я предлагаю воспользоваться уже существующими компьютерами, которые удовлетворяют всем твоим требованиям — уже купленными, размещёнными, запитанными и обслуживаемыми! На сегодняшний день таких в интернете уже больше миллиарда, и миллион — это не так уж и много, всего лишь одна тысячная часть от общего числа. Да, они не наши, но есть неплохая идея, как их заполучить, и для этого, прежде, мы создадим свои собственные электронные деньги — «криптовалюту», которую назовём биткоинами!

Разрекламируем их, сочиним байку, мол биткоины независимы, позволяют расплачиваться без посредников, безопасно, анонимно, по всему миру без границ; не подвержены инфляции, их ценность зависит исключительно от рынка, ну и всякую другую либеральнопривлекательную чушь. А далее всё просто. Мы проявим хитрость и скажем: «Внимание! Созданы новые деньги — криптовалюта! Хотите её заработать? Приступайте к майнингу биткоинов!». И теперь уже не нам надо брать компьютеры в аренду, а их владельцы, визжа от удовольствия, будут сами запускать у себя нашу программу и работать на нас! И всего лишь за запись в электронном кошельке!

И пусть народ думает, что они добывают эти идеальные деньги и получают их за самый красивый хеш! Нашедшему контрольную сумму с восемнадцатью нулями — один биткоин! Сообщим также, что количество монет ограничено, мол всего их будет двадцать один миллион. Понятно, что кроме нас никто этого проверить никогда не сможет; ведь хотя все записи и прозрачны, и в любой чужой кошелёк можно легко заглянуть (кстати, прозрачность — это ещё одна дешёвая завлекалочка), подсчитать же постоянно меняющееся содержимое даже пары десятков миллионов ныне существующих кошельков невозможно! Не говоря уже о том, что их количество будет неуклонно расти. Чисто маркетинговый ход: раз их мало, значит, они на вес золота! Заодно выставим на биржу. Психология!

Кстати, о психологии. Того, что мы подразумеваем под словом «математика», в природе тоже не существует, она является исключительно плодом нашего воображения, основанного на абстрактном мышлении, свойственном человеку. Но к счастью, не у всех оно развито так, как например у Григория Перельмана, и в результате, человечеству приходится верить нам на слово. И тут, как говорится, карта и пошла.»

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

Николай сидел с вытаращенными от удивления глазами, потом, вернувшись, наконец, с небес биткоинов на землю, протянул Александру руку и, широко улыбаясь, сказал:

— Коля. Называй меня просто Колей!

— Саша, — улыбаясь ответил Александр, пожимая протянутую ему руку.

— Мда, жаль, что у меня нет идеи, как использовать миллион компьютеров, — рассмеялся Николай.

— И хорошо, что нет, — к удивлению собеседника произнёс Саша и, увидев, что его слова требуют пояснения, улыбнулся. — Тут вот какая мысль,.. — продолжил он. — Деньги — это власть. Как сказал один из первых Ротшильдов — дайте мне возможность контролировать финансовую систему страны, и мне будет абсолютно плевать, кто в ней пишет законы. К тому же существует и вполне обоснованное предположение о том, что все убитые президенты США лишились своих жизней именно потому, что посягнули на святая святых этой власти — право печатать доллары.

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

Однако, как мы видим, этого не происходит, значит, делаем вывод: за криптовалютой стоят не просто глобалисты, а те самые банкиры — главные владельцы мировых денег, то есть те, кто и печатает доллары. Так что, думаю, нам — далеко не президентам, реализовать такую идею тем более никто бы не позволил, — рассмеялся Александр добродушно.

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

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

Удовлетворённо облизывая губы и вытирая их салфеткой, Николай довольно улыбнулся и с гордостью заговорил.

— Я архитектор. Занимаюсь проектированием зданий. Могу сказать, что на сегодняшний день уже не осталось тех, кто в ручную строит эпюры поперечных сил и рассчитывает изгибающие моменты балок с защемлённым концом. Сегодня весь сопромат находится в компьютере, вернее, в программах, созданных для проектировки архитектурных сооружений. Это, конечно, не означает, что в институтах перестали изучать эту сложную дисциплину, но они очень упрощают труд, и поверь, освоить работу в такой программе под силу даже ребёнку.

Существует только одна проблема — чтобы работа была комфортной, необходим предельно мощный компьютер. Поясню на примере.

Я ещё застал времена, когда операционные системы были тридцатидвухразрядными. Я прошёл через это, потому не удивляйся, что мне известны такие тонкости, — снова улыбнулся Николай. — Я знаю, что тридцать два разряда — это два в тридцать второй степени адресов ячеек памяти, то есть максимум, к чему может обратиться процессор, это всего лишь четыре гигабайта оперативки. А на моём компьютере в то время было установлено только пятьсот двенадцать мегабайт — восьмая часть от этого объёма.

Мы работали тогда над проектом огромного, двадцатипятиэтажного здания, и представляешь, любое, требующее пересчёта изменение в нём приводило к тому, что компьютер мой уходил в себя и, кипя мозгами, зависал так, не откликаясь ни на что, более чем на четыре часа! Получалось так: ты приходил на работу, делал с утра все возможные изменения, и до обеда мог быть свободен! — он весело рассмеялся. — Но когда в мой компьютер добавили памяти, и её объём составил три гигабайта (не помню, почему, но больше он не видел), пересчёт составил сорок минут! Разница оказалась ошеломляющей.

С тех пор прошло много времени, но я сохранил тот примечательный проект. Он стал для меня как бы эталоном при проверке мощности рабочего инструмента, и скажу тебе — на этом компьютере, — Николай кивнул в сторону своего монстра, — пересчёт и перерисовка трёхмерного макета двадцатипятиэтажного дома занимает всего три секунды! — он снова рассмеялся. — Для работы это очень комфортно! Но есть и ещё кое-что…

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

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Срыв стека предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я