Хотя некоторые идеи криптоноваторов – абсолютно бредовые (без шуток). Нужен ли блокчейн, чтобы завести какую-то новую энциклопедию[10] на блокчейне или читать платные новости, которые – ничего себе! – нельзя исправить задним числом[11]? Вы часто перечитываете прошлогодние новости? Из-за бешеного притока инвестиций в эту отрасль люди пробуют совершенно невменяемые идеи на предмет сбора бабла с инвесторов.



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

1.3

Как это работает

Мы изучили херову тучу объяснений того, как работает блокчейн. Проблемы две: либо эксперт держит читателей за идиотов и объясняет это так примитивно, что суть процесса остается за кадром, либо текст рассчитан на айтишника с деревьями Меркла и схемами Шнорра, и простой человек его уже не воспринимает. Самое лучшее объяснение встретилось нам в блоге «Лаборатория Касперского»[12]. Его мы и взяли за основу, но постарались сделать еще понятней.

Сначала изучим несколько основных понятий, первое из которых – цифровая подпись. Зачем нужна обычная подпись? Она удостоверяет того, кто подписал документ. Цифровая в этом плане даже лучше – она делает то же самое, только ее нельзя (точнее, невероятно трудно) подделать. То есть автор документа определяется однозначно, и подписать его мог только он.

ПРИ ЭТОМ ОДИН ЧЕЛОВЕК (ИЛИ ФИРМА) МОЖЕТ СГЕНЕРИРОВАТЬ НЕСКОЛЬКО ВПОЛНЕ ЗАКОННЫХ ПАР ИМЯ-ПОДПИСЬ – ДЛЯ РАЗНЫХ ЦЕЛЕЙ.

Второй термин, который нам потребуется – это хэширование. С подписью понятно: если мы видим подпись, мы точно знаем, что автор документа (транзакции, программы) – именно тот, кто свою подпись под документом поставил. Но что, если в документе подменили что-то важное? Например, количество отправленных денег (приписали нолик в конце?). Стало быть, крайне важно проверять не только автора документа, но и его целостность и неизменность.



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

Простейший пример такой антиподделочной проверки находится в бланке ОСАГО об аварии. Там внизу нужно отметить, сколько квадратиков заполнены галочками (типа «я выезжал со стоянки», «я стоял на светофоре»). Это чтоб кто-то после получения подписанной копии не натыкал новых, нужных ему вариантов происшествия. Но криптографическая проверка или, иначе говоря, «хэш», гораздо круче. В нашем (примитивном) варианте при перестановке букв в сообщении контрольная сумма не изменится. А в правильно сделанном хэше при малейшем изменении сразу понятно: это не оригинал. При этом сам «хэш» занимает одну строчку даже для очень больших файлов или документов[13].

У хэша есть одно очевидное свойство: он односторонний. То есть по хэшу невозможно подобрать изначальное сообщение (только перебором всех вариантов – так и работает майнинг; но об этом позже). Да, у некоторых типов хэшей была такая проблема, что у разных сообщений мог получится одинаковый хэш, но сейчас это либо уже решено, либо не играет особой роли.

ГЛАВНОЕ, ВЫ ПОНЯЛИ, ЧТО ЭТА ФУНКЦИЯ РАБОТАЕТ ТОЛЬКО В ОДНУ СТОРОНУ.

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