Выбрать главу
ПЕРЕОСМЫСЛИТЬ БЛОКЧЕЙН… СНОВА

Итак, какие именно особенности блокчейна пригодятся в «длинном хвосте»? Для начала я хотел бы поделиться определением, которого сам сегодня придерживаюсь:

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

Обратите внимание, чего нет в этом определении:

░ финансовых терминов вроде «реестр», «деньги» или «транзакции» и вообще каких-либо терминов, намекающих на конкретные сценарии использования;

░ упоминания каких-либо конкретных алгоритмов консенсуса и вообще технических подробностей работы блокчейна (за исключением того факта, что он «криптоэкономичен» – этот технический термин сообщает о блокчейне, что «он децентрализован, а также использует криптографию с открытым ключом и экономические стимулы, чтобы все работало без сбоев»);

░ ограничений на какие-либо функции перехода состояния.

В этом определении конкретно сказано только одно – на что способен блокчейн, и этого достаточно, чтобы любой разработчик смог достаточно четко, хотя бы на интуитивном уровне, понять, чем может быть ценна эта технология. Что касается практики, иногда язык, на котором выполняются программы, очень ограничен. Язык Bitcoin можно рассматривать как последовательность DESTROY COIN: <txid> <index> <scriptsig>, за которой следует последовательность CREATE COIN: <scriptpubkey> <value>, где scriptpubkey – ограниченная математическая формула, а scriptsig – присваивание переменной в соответствии с этой формулой (например, [x = 5, y = 7] удовлетворяет 2 × x – y = 3). Попытка уничтожить несуществующую монету, или уничтожить монету, не указав действительный scriptsig для scriptpubkey этой монеты, или указать бóльшую ценность монеты, которую вы уничтожили, выдает ошибку. В то же время другие языки программирования могут быть куда более выразительными. Разработчик должен сам решать, какой язык подойдет для его конкретной задачи, точно так же как ему приходится выбирать между Python, C++, Node.js и Malbolge.

Это определение очень хорошо подчеркивает, что цель блокчейна – не привнести в этот мир какой-то конкретный набор правил, будь то валюта с ограниченной эмиссией, реестр имен с 200-дневным сроком перерегистрации, конкретный тип децентрализованного обмена или что-то еще. Суть блокчейна – в свободе очень быстро создавать новые механизмы с новым набором правил и запускать их. Это своего рода Lego Mindstorms[27] для построения экономических и социальных институтов.

В этом суть более умеренной и популярной сегодня в индустрии позиции «интересен блокчейн, а не валюта». Валюта действительно необходима для работы криптоэкономических блокчейнов (но не структур данных, подобных блокчейну и работающих на субъективной модели консенсуса Stellar), однако она скорее выполняет функцию экономического водопровода для стимулирования участия в консенсусе, хранения депозитов и оплаты комиссий за транзакции – и уж точно не задумана как объект спекулятивной мании, потребительского интереса и ажиотажа.

Итак, чем же могут быть полезны блокчейны? Подведем итог.

░ В них можно хранить данные, и эти данные гарантированно будут иметь очень высокую степень доступности.

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

░ В них можно запускать приложения, и у них будет гарантированно чрезвычайно высокое время безотказной работы в далеком будущем.

░ В них можно запустить приложение и гарантировать пользователям, что логика его работы основана на честности и оно будет работать именно так, как вы обещаете.

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

░ В них можно запускать приложения и при острой необходимости создавать для себя бэкдор[28], НО накладывать «конституционные» ограничения на его использование – например, предварять каждое обновление месяцем публичного ожидания или, если обновление срочное, немедленно уведомлять о нем пользователей.

вернуться

27

Lego Mindstorms – конструктор, набор сопрягаемых деталей и электронных блоков, для создания программируемого робота. – Прим. ред.

вернуться

28

Бэкдор (англ. back door) – дефект алгоритма, который умышленно встраивается в него разработчиком и позволяет получить несанкционированный доступ к данным или удаленному управлению операционной системой и компьютером в целом.