Благотворительность тоже выйдет на новый уровень. Можно же сделать так, чтобы никто не видел жертвователей — а настоящая благотворительность всегда анонимна, — зато вот жертвователи всегда знали бы, куда уходят деньги со спонсорского счёта, на какие операции расходуются и кто их получает.
Можно и ещё хитрее: если вы своему ребёнку обещали подарить миллион на свадьбу, это можно записать в смарт–контракт с доступом к вашему счёту. Как только контракт видит, что у сына зарегистрирован брак, он переводит ему деньги напрямую, а вы сами, может быть, уже даже и померли, не дождавшись этого счастливого момента (речь о переводе денег, конечно). Для этого не нужен банкир, загс, нотариус и завещание. Не нужно ничего ждать или проверять. Всё сработает само.
Хотя некоторые идеи криптоноваторов — абсолютно бредовые (без шуток). Нужен ли блокчейн, чтобы завести какую–то новую энциклопедию[10] на блокчейне или читать платные новости, которые — ничего себе! — нельзя исправить задним числом[11]? Вы часто перечитываете прошлогодние новости? Из–за бешеного притока инвестиций в эту отрасль люди пробуют совершенно невменяемые идеи на предмет сбора бабла с инвесторов.
А у инвестора логика простая: биткоин растёт, может и ещё что–то вырастет? Это совершенно нормальный процесс. Технология молодая и скоро все поймут, для чего она подходит хорошо, а для чего нет. Кому–то, правда, это понимание встанет в копеечку.
Мы изучили херову тучу объяснений того, как работает блокчейн. Проблемы две: либо эксперт держит читателей за идиотов и объясняет это так примитивно, что суть процесса остаётся за кадром, либо текст рассчитан на айтишника с деревьями Меркла и подписями Шнорра, и простой человек его уже не воспринимает. Самое лучшее объяснение встретилось нам в блоге Лаборатории Касперского[12]. Его мы и взяли за основу, но постарались сделать
Сначала изучим несколько основных понятий, первое из которых — цифровая подпись. Зачем нужна обычная подпись? Она удостоверяет того, кто подписал документ. Цифровая в этом плане даже лучше — она делает то же самое, только её нельзя (точнее, невероятно трудно) подделать. То есть автор документа определяется однозначно, и подписать его мог только он. При этом один человек (или фирма) может сгенерировать несколько вполне законных пар имя–подпись — для разных целей.
Второй термин, который нам потребуется — это хэширование. С подписью понятно: если мы видим подпись, мы точно знаем, что автор документа (транзакции, программы) — именно тот, кто свою подпись под документом поставил. Но что, если в документе подменили что–то важное? Например, количество отправленных денег (приписали нолик в конце?). Стало быть, крайне важно проверять не только автора документа, но и его целостность и неизменность.
Есть много способов это сделать, начиная с простых, — которые легко обойти. Например, пересчитать все буквы в сообщении и потом проверить это количество. Если цифра не сходится, то сообщение было изменено какими–то злодеями, либо не дошло до нас целиком. Но этот метод легко обходится, если злоумышленник знает, какого рода проверку мы будем применять.
Простейший пример такой антиподделочной проверки находится в бланке ОСАГО об аварии. Там внизу нужно отметить, сколько квадратиков заполнены галочками (типа “я выезжал со стоянки”, “я стоял на светофоре”). Это чтоб кто–то после получения подписанной копии не натыкал новых, нужных ему вариантов происшествия. Но криптографическая проверка или, иначе говоря, “хэш”, гораздо круче. В нашем (примитивном) варианте при перестановке букв в сообщении контрольная сумма не изменится. А в правильно сделанном хэше при малейшем изменении сразу понятно: это не оригинал. При этом сам “хэш” занимает одну строчку даже для очень больших файлов или документов[13].
У хэша есть одно очевидное свойство: он односторонний. То есть по хэшу невозможно подобрать изначальное сообщение (только перебором всех вариантов — так и работает майнинг; но об этом позже). Да, у некоторых типов хэшей была такая проблема, что у разных сообщений мог получиться одинаковый хэш, но сейчас это либо уже решено, либо не играет особой роли. Главное — вы поняли, что эта функция работает только в одну сторону.
Теперь к самому блокчейну. Как использовать подписи и хэши? Представим себе одноклассников, которые хотят завести виртуальную валюту. Они ведут запись на школьной доске: сколько у кого было монет и кто кому сколько отправил, ставят подписи для подтверждения сделок, и все эту доску видят. Потом приходит учитель и говорит: “