Можно и еще хитрее: если вы своему ребенку обещали подарить миллион на свадьбу, это можно записать в смарт-контракт с доступом к вашему счету. Как только контракт видит, что у сына зарегистрирован брак, он переводит ему деньги напрямую, а вы сами, может быть, уже даже и померли, не дождавшись этого счастливого момента (речь о переводе денег, конечно).
ДЛЯ ЭТОГО НЕ НУЖЕН БАНКИР, ЗАГС, НОТАРИУС И ЗАВЕЩАНИЕ. НЕ НУЖНО НИЧЕГО ЖДАТЬ ИЛИ ПРОВЕРЯТЬ. ВСЕ СРАБОТАЕТ САМО.
Хотя некоторые идеи криптоноваторов – абсолютно бредовые (без шуток). Нужен ли блокчейн, чтобы завести какую-то новую энциклопедию[10 - https://www.wired.com/story/everipedia-blockchain/] на блокчейне или читать платные новости, которые – ничего себе! – нельзя исправить задним числом[11 - http://www.niemanlab.org/2017/10/]? Вы часто перечитываете прошлогодние новости? Из-за бешеного притока инвестиций в эту отрасль люди пробуют совершенно невменяемые идеи на предмет сбора бабла с инвесторов.
А у инвестора логика простая: биткоин растет, может и еще что-то вырастет? Это совершенно нормальный процесс. Технология молодая и скоро все поймут, для чего она подходит хорошо, а для чего нет. Кому-то, правда, это понимание встанет в копеечку.
1.3
Как это работает
Мы изучили херову тучу объяснений того, как работает блокчейн. Проблемы две: либо эксперт держит читателей за идиотов и объясняет это так примитивно, что суть процесса остается за кадром, либо текст рассчитан на айтишника с деревьями Меркла и схемами Шнорра, и простой человек его уже не воспринимает. Самое лучшее объяснение встретилось нам в блоге «Лаборатория Касперского»[12 - https://www.kaspersky.ru/blog/bitcoin-easy-explanation/12668/]. Его мы и взяли за основу, но постарались сделать еще понятней.
Сначала изучим несколько основных понятий, первое из которых – цифровая подпись. Зачем нужна обычная подпись? Она удостоверяет того, кто подписал документ. Цифровая в этом плане даже лучше – она делает то же самое, только ее нельзя (точнее, невероятно трудно) подделать. То есть автор документа определяется однозначно, и подписать его мог только он.
ПРИ ЭТОМ ОДИН ЧЕЛОВЕК (ИЛИ ФИРМА) МОЖЕТ СГЕНЕРИРОВАТЬ НЕСКОЛЬКО ВПОЛНЕ ЗАКОННЫХ ПАР ИМЯ-ПОДПИСЬ – ДЛЯ РАЗНЫХ ЦЕЛЕЙ.
Второй термин, который нам потребуется – это хэширование. С подписью понятно: если мы видим подпись, мы точно знаем, что автор документа (транзакции, программы) – именно тот, кто свою подпись под документом поставил. Но что, если в документе подменили что-то важное? Например, количество отправленных денег (приписали нолик в конце?). Стало быть, крайне важно проверять не только автора документа, но и его целостность и неизменность.
Есть много способов это сделать, начиная с простых, – которые легко обойти. Например, пересчитать все буквы в сообщении и потом проверить это количество. Если цифра не сходится, то сообщение было изменено какими-то злодеями, либо не дошло до нас целиком. Но этот метод легко обходится, если злоумышленник знает, какого рода проверку мы будем применять.
Простейший пример такой антиподделочной проверки находится в бланке ОСАГО об аварии. Там внизу нужно отметить, сколько квадратиков заполнены галочками (типа «я выезжал со стоянки», «я стоял на светофоре»). Это чтоб кто-то после получения подписанной копии не натыкал новых, нужных ему вариантов происшествия. Но криптографическая проверка или, иначе говоря, «хэш», гораздо круче. В нашем (примитивном) варианте при перестановке букв в сообщении контрольная сумма не изменится. А в правильно сделанном хэше при малейшем изменении сразу понятно: это не оригинал. При этом сам «хэш» занимает одну строчку даже для очень больших файлов или документов[13 - Например, на нашем сайте по адресу криптвоюматика.рф будет хэш этой книги, и ты, дорогой читатель, всегда можешь проверить, что тебя не наебали и не подсунули какую-то другую, мерзкую книгу про скам-проекты вместо нашей доброй и светлой литературы.].
У хэша есть одно очевидное свойство: он односторонний. То есть по хэшу невозможно подобрать изначальное сообщение (только перебором всех вариантов – так и работает майнинг; но об этом позже). Да, у некоторых типов хэшей была такая проблема, что у разных сообщений мог получится одинаковый хэш, но сейчас это либо уже решено, либо не играет особой роли.
ГЛАВНОЕ, ВЫ ПОНЯЛИ, ЧТО ЭТА ФУНКЦИЯ РАБОТАЕТ ТОЛЬКО В ОДНУ СТОРОНУ.
Теперь к самому блокчейну. Как использовать подписи и хэши? Представим себе одноклассников, которые хотят завести виртуальную валюту. Они ведут запись на школьной доске: сколько у кого было монет и кто кому сколько отправил, ставят подписи для подтверждения сделок, и все эту доску видят. Потом приходит учитель и говорит: «Вы тут совсем распоясались, поди уже и клей друг другу толкаете втихаря». Стирает все записи мокрой тряпкой и насаждает веру в светлое будущее.
Ученикам такая херня не нравится. Им нужна своя валюта, и так, чтобы с доски никто не мог ничего стереть. И на одной общей бумажке тоже писать нельзя – тот, у кого она находится, может там наисправлять всего. Поэтому у каждого бумажка будет своя, но у всех одинаковая. На перемене все сверяют записи и добавляют новые – кто кому сколько передал и сколько теперь монет у каждого.
Как понять, хватает ли у Васи денег на передачу Маше? Надо перечитать весь журнал, и станет понятно: вот 10 монет Вася получил от Пети на прошлой неделе, а 40 ему вчера перечислил Олег. После этого сделок не было, поэтому вписываем в журнал новую строчку: «Забрать 50 монет у Васи и добавить 50 монет Маше», – заверяем васиной подписью и дописываем хэш. Да, проверять все – это долго, но у каждого же есть компьютер! Он сразу поймет, если подпись не та или история неправильная.
ИСПОРЧЕННУЮ СДЕЛКУ ОН В ЖУРНАЛ ЗАПИСЫВАТЬ НЕ СТАНЕТ, А ПРОСТО ВЫКИНЕТ КАК ФАЛЬШИВУЮ.
Совокупность сделок на одной странице назовем блоком, допишем в конец хэш всего блока, чтоб не проверять страницу заново (а сверить только хэш) и начнем новую страницу-блок. Цепочка таких блоков – это и есть блокчейн.
Осталось только понять, кто заполняет страницу на перемене, чтобы раздать всем остальным (просто для справки – у биткоина эта «перемена» каждые 10 минут). Для этого все решают задачку по нахождению «красивого» хэша с нулями впереди. Если вы еще помните, что такое хэш, то станет ясно, что задача это не просто трудная, но и абсолютно бессмысленная (ведь для подтверждения подлинности не имеет значения, как именно выглядит подпись и красива ли она, а речь именно об этом). Решение требуется лишь для того, чтобы случайно определить победителя. Ведь если блок будет все время оформлять кто-то один, он сможет, например, чьи-то сделки подло не учитывать.
Сложность задачи при этом настолько высока, что решается она только перебором всех вариантов и «хэширования» каждого из них, а перебирают варианты участники одновременно. У кого-то компьютер помощней, ну у того и шансов побольше. Если участников становится слишком много и красивый хэш находится слишком быстро, то новая задачка выбирается потруднее (и наоборот); об этом все договорились заранее.
Все желающие решать эту задачу называются «майнерами», а решение записывается на страницу вместе со всеми операциями. Это делается для того, чтобы в будущем какой-нибудь хитроумный китаец не пришел и не сказал: «Ребята, вот на самом деле правильный журнал, у меня все подсчитано», – тогда ему придется предъявить решения всех подделанных задачек сразу, а это нереально. Хотя будем честны: если у него под контролем большинство компьютеров в сети – то возможно.
В итоге мы имеем новую крутую систему децентрализованных операций, где все доверяют всем – потому что все всегда могут все проверить.
ИСТОРИЮ СДЕЛОК НЕЛЬЗЯ ПЕРЕПИСАТЬ И ИСПРАВИТЬ ЧТО-ТО ЗАДНИМ ЧИСЛОМ. УЧАСТНИКОВ МОЖЕТ БЫТЬ ОЧЕНЬ МНОГО, И НАДЕЖНОСТЬ СИСТЕМЫ ОТ ЭТОГО ТОЛЬКО ВЫРАСТЕТ.
По подписи нельзя вычислить ее владельца – если только он сам не заявит о ее принадлежности. А если не учитывать траты сил на постоянное дописывание журнала сделок, все еще и бесплатно.
Но есть и занимательные побочные эффекты. Во-первых, становится удобно торговать оружием и давать взятки, потому что схему трудно отследить и прикрыть, никаких саквояжей с меченой колбасой тут нет. Во-вторых, любую сделку невозможно оспорить или отменить – если ты выслал кому-то свою крипту по ошибке, то это навсегда. И в-третьих, вся информация дублируется 100500 раз, что немного перебор. Это только то, что на поверхности.
Разберем поподробнее.
1.4
Почему это работает плохо
Скажем прямо: блокчейн – технология крутая. Но недостатков у нее хватает. Для их исправления в системе и проводятся так называемые хардфорки – разветвления или перезагрузки. Поэтому нельзя сказать, что все участники всем всегда довольны. Да, блокчейн решает проблему доверия без единого центра, но пока не очень эффективно. Почему?
1) За счет открытости анонимность не такая уж и анонимная, как кажется. Если все транзакции можно проверить, а вы перевели немного бабла своему дилеру, то он узнает, сколько денег у вас в кошельке и куда вы их деваете. Конечно, для этого ему надо знать, кому принадлежат и другие кошельки, но это тоже со временем решается. При этом он может узнать все не только о прошлых, но и о всех будущих платежах с известного ему кошелька.
ЕСТЬ ДАЖЕ КОНТОРА, КОТОРАЯ ЭТИМ СПЕЦИАЛЬНО ЗАНИМАЕТСЯ – И СРЕДИ ЕЕ КЛИЕНТОВ, КОНЕЧНО, СПЕЦСЛУЖБЫ И ПРОЧИЕ ПОДОЗРИТЕЛЬНЫЕ ЛИЦА.
2) Децентрализация не так уж велика. Да, копии реестра хранятся в каждом полноценном кошельке, общего сервера нет, поэтому закрыть все сразу нельзя. Но майнеры, обеспечивающие функционирование сети, объединены в пулы. Сейчас для добычи требуется настолько большая вычислительная мощность, что по одному намайнить, например, биткоин просто невозможно. А 70 % всех майнинговых пулов биткойна (по мощности) сейчас находятся в Китае. А там ведь повсюду проклятые коммунисты! Кто знает, что скажет партия? То же самое можно сказать и про другие криптовалюты. Некоторые из них «децентрализованы» только у себя на сайте.
3) Каждый участник сети хранит у себя копию реестра. Изначально так все и задумывалось, в этом весь цимес. Но сейчас получается, что информация дублируется миллионы раз. Более того, каждый новый участник должен скачать себе историю с подтверждением всех сделок, а она нарастает, как снежный ком: на начало 2018-го для биткоина это 150 гигов. В телефон, например, уже не влезет и на старый комп тоже. И блокчейн продолжит расти. Поэтому многие пользуются «легкими клиентами», которые не скачивают весь блокчейн на компьютер, а только необходимую в данный момент часть. Или, боже упаси, пользуются онлайн-кошельками, то есть доверяют свои ключи кому-то другому.
В РЕЗУЛЬТАТЕ ИСТИННЫХ ХРАНИТЕЛЕЙ ПОЛНОЦЕННОГО УЗЛА ЖИРНЫХ БЛОКЧЕЙНОВ НЕ ТАК УЖ И МНОГО.
4) Блокчейн по своей сути – довольно медленная технология, а самая первая, что в основе биткоина, – очень медленная. Сейчас в системе проходит примерно 6–7 операций в секунду. Для сравнения – Visa может обрабатывать 24 тысячи операций в секунду. У биткоина на начало 2018-го около 350 тысяч операций в сутки, но очевидно, что близок предел – порядка 600 тысяч в сутки (7 в секунду ? 60 с ? 60 мин ? 24 ч). Подтверждения перевода иногда приходится ждать час-полтора, если сеть перегружена или кто-то «шатает» блокчейн преднамеренно[14 - Обычно это делает известный криптовалютный инвестор Роджер Вер в рамках рекламной кампании Bitcoin Cash] миллионом микротранзакций. Если деньги вам нужны здесь и сейчас, биткоин никуда не годится. Справедливости ради нужно сказать, что новые криптовалюты эту проблему предвидели и заранее подумали о масштабируемости. Тем не менее, проблема существует.
5) Большинство текущих централизованных процессов и реестров не готово к переходу на блокчейн тупо технически – там, где один мощный сервер справлялся неплохо, сотня обычных персональных компьютеров заглохнет в первый же день от объема обрабатываемых данных. К радости различных IT-директоров, мало кто в руководстве корпораций это понимает, поэтому они уже насоздавали себе блокчейн-лабораторий и вовсю пилят бюджеты на блокчейнизацию всего и вся.
КАК ИЗВЕСТНО, МАЛО ЧТО СРАВНИТСЯ С ВОЗМОЖНОСТЬЮ ПОТРАТИТЬ ДЕНЬГИ НА БЕСКОНЕЧНЫЙ ПРОЦЕСС НЕПОНЯТНОЙ СТОИМОСТИ.
6) К сожалению, помимо технических и концептуальных ограничений, претворению влажных блокчейн-фантазий в жизнь вовсю мешают те, кому это невыгодно. Те, кому не нужна прозрачность, неподделываемость, неизменность операций и прочие радости честной жизни. Когда ты удачно работаешь посредником не один десяток лет, а потом появляется технология, которая делает тебя ненужным и убивает твой бизнес, мало кому это понравится. Также мало кому понравится, когда больше нельзя подделывать результаты выборов или отбирать у граждан собственность, как раньше. Врагов у новой технологии уже сейчас немало, а будет еще больше. Они просто пока не разобрались, что готовит им светлое технологическое будущее.
Есть и технологические уязвимости, о которых мы, вероятно, еще не знаем. В 2010 году кто-то смог зачислить себе на кошелек 92 миллиарда биткоинов. Потратить не успел: баг нашли, всю систему откатили. Но кто знает, что будет дальше?
Криптовалюты, которые появились после биткоина, стараются предложить какие-то решения перечисленных проблем, но в основе-то все равно лежит блокчейн, и какие-то из его недостатков автоматически достаются всем. Факт остается фактом: на данный момент для привычных вещей, типа, перевести деньги соседу существующие (централизованные) технологии удобнее, дешевле и быстрее. Возьмите хотя бы тиньковские (ну или сберовские) переводы с карты на карту. Что, есть какая-то проблема, что негодяи умудряются потратить деньги с карты два раза? Или биткоины нельзя украсть? Крадут только в путь. Еще вопрос, где держать деньги безопаснее, – в обычном онлайн-банке или на криптобирже.
И БАНКОВСКИЙ СЕРВЕР НЕ ЖРЕТ ТАКОЕ ЦИКЛОПИЧЕСКОЕ КОЛИЧЕСТВО ЭЛЕКТРИЧЕСТВА ДЛЯ ПОДТВЕРЖДЕНИЯ ОПЕРАЦИЙ.
Можете представить себе текущее практическое применение технологии блокчейн чем-то вроде первых попыток приручить дикую лошадь древними людьми. Вот, вроде бы, конь. Кажется, на него даже можно как-то влезть и поскакать. Вот только ездить никто не умеет. А еще он пока брыкается, покусал всю деревню за жопы и насрал в костер. А еще он жирный и грустный. Но зато конь, да! Конь.
Есть и еще один вполне закономерный нездоровый эффект: те, кто вложился в крипту, волей-неволей начинают ее пропагандировать (как мы этой книжкой). Поэтому мало кто честно рассказывает о недостатках технологии. Кроме нас, конечно. Мы наступили себе на горло и сообщили о потенциальных проблемах. А что дальше делать – решать вам.
1.5
Все равно все спиздят хакеры и бандиты
Еще одна огромная проблема наступления прекрасного цифрового будущего – новые потенциальные уязвимости и новые ловкачи-преступники, которые будут эти уязвимости эксплуатировать. Хотя, ладно, ловкачи-то по большей части старые, просто жизнь устроена так, что эти паскуды учатся быстрее, чем средняя пенсионерка. И быстрее, чем силы правопорядка. Поэтому, впервые попадая в волшебный мир цифровой собственности, граждане любой страны мира априори меньше преступников понимают, как не проебать сладкие бетховены и какое действие (или какое бездействие) таит в себе наибольшую угрозу.
Не претендуя на создание супермануала по безопасности в блокчейне, тем не менее опишем некоторые ситуации, в которые лучше не попадать. Итак, что плохого может случиться?
В самом общем смысле, проблема лежит на поверхности, в самой сути технологии: деньги лежат не в банке, где доступ к ним контролируется какими-никакими, но все же людьми, а в виде ключа на бумажке. Или когда доли в стартапах записаны на ваш паспорт не у брокера, а в блокчейне Ethereum, где есть только цифры и несколько букв (не очень много). Все это создает совершенно новые риски: проебать все деньги (вообще все!) можно теперь в результате пожара, скачка напряжения или неловкости племянника, который «случайно» переустановил Windows. Бумажку с фразой для восстановления сожрал кот, а потом блеванул в прихожей. Так или иначе, никакой возможности восстановить ваши цифровые деньги и доли в компаниях нет, вся ответственность возложена исключительно на вас.
ПОЭТОМУ ПЕРВЕЙШИЙ ВРАГ КРИПТОИНВЕСТОРОВ – ИМЕННО ЧЕЛОВЕЧЕСКИЙ ФАКТОР. САМ ВСЕ ПРОСРЕШЬ, ЕСЛИ НЕ БУДЕШЬ ВНИМАТЕЛЕН И ОСТОРОЖЕН.