ТЕХНОЛОГИЧЕСКИЕ ОСОБЕННОСТИ
Наиболее наглядно особенности блокчейна проявляются в первом продукте, который был построен на его основе, — криптовалюте биткойн. Поэтому все пояснения о свойствах блокчейна мы будем снабжать примерами для этой криптовалюты — наиболее масштабной реализации блокчейна, в которой уже начали проявляться основные недостатки технологии. Итак, блокчейн имеет следующие технологические особенности.
Принципиальная взламываемость. Во всех материалах по блокчейну это свойство указано как «атака 51%». Если кому-то удастся монополизировать контроль над блокчейном и получить возможность контролировать более половины майнеров, то он сможет модифицировать данные в реестре по своему произволу. При этом «антимонопольного» механизма защиты в блокчейне нет. Предполагается, что гарантией от монополизации является конфликт интересов участников системы, не заинтересованных в таком развитии событий. Однако на технологическом уровне такие гарантии отсутствуют.
Скорость транзакций. Блокчейн имеет ограничение по скорости транзакций — например, легитимный блок в случае биткойна генерируется примерно каждые пять минут. При этом до недавнего времени он имел фиксированный размер: 1 Мбайт. По размерам электронных подписей и сведений, хранимых в данном блокчейне, можно определить, что транзакционная емкость биткойна составляет примерно 7 операций в секунду.
У традиционных транзакционных технологий, в частности платежных систем, этот показатель намного больше. Таким образом, для массового обслуживания и для транзакционных систем блокчейн не подходит, поскольку при увеличении числа транзакций возникает очередь из неподтвержденных операций, которая еще более удлиняет время подтверждения платежа.
Публичность. Хотя пропагандисты биткойна уверяют, что он полностью анонимен, на самом деле это не совсем так. Речь идет о псевдонимной системе с открытой информацией о транзакциях, корректность которых может проверить любой. То есть у одного пользователя может быть несколько псевдонимов, но если они раскрыты, то всю информацию по транзакциям, связанным с этими счетами, можно восстановить.
Открытость информации принципиальна для функционирования блокчейна, ведь он был создан для того, чтобы не доверяющие друг другу пользователи могли проверить всю цепочку операций. Уже появляющиеся реализации блокчейна с закрытыми транзакциями разрушают концепцию взаимного контроля конфликтующих сторон и допускают определенную возможность манипуляции.
Объем хранилища. Каждый полноценный участник блокчейна должен самостоятельно хранить у себя информацию по всем транзакциям. В результате возникает чудовищная избыточность системы хранения. Поскольку хранилище распределенное, накладные расходы делятся между участниками. Однако объем хранимой информации растет очень быстро, особенно при массовом использовании технологии.
На текущий момент объем блокчейна биткойна выражается в терабайтах, что не позволяет использовать для майнинга домашние компьютеры — нужны специализированные решения. В результате происходит централизация майнеров путем организации ферм: майнинг производится на неполных узлах, но контроль цепочки блоков может выполнять только полный узел.
Этот факт неожиданно возвращает нас к первой проблеме — «атаке 51%», вероятность которой увеличивается по мере централизации вычислительных ресурсов. С увеличением размера блокчейна число майнеров должно сокращаться, поэтому вполне может сложиться ситуация, когда одна из бирж станет монополистом, например, за счет вывода из строя других майнинговых мощностей. В этом случае возникает опасность подделки блокчейна.
Из вышеперечисленных свойств блокчейна следует сложность его применения для массовых платежей. При большом количестве транзакций значительно возрастает объем данных, подлежащий хранению, и увеличивается время, необходимое для подтверждения каждой транзакции. Если покупатель будет ждать подтверждения платежа полчаса, использовать такой платежный инструмент в супермаркетах (как сейчас используют пластиковые карты), скорее всего, не удастся.
Предлагаемые сегодня методы ускорения блокчейна, как правило, приводят к ухудшению надежности, то есть к «атаке 51%» добавляются новые векторы атак. Вряд ли пользователи будут рады этому обстоятельству. В целом можно сказать, что биткойн можно использовать только как депозитарный инструмент накопления или резервную систему распределения ценностей, аналогичную золотым слиткам. В частности, блокчейн можно использовать как замену SWIFT, если применять методы консолидации транзакций в отдельной базе или реестре, но для этого первоначальный алгоритм необходимо модифицировать. Такие разработки уже ведутся.
ТЕХНОЛОГИЧЕСКИЕ ПРИМЕНЕНИЯ
Если для массового применения блокчейн не годится, то для чего же он подойдет? Потенциальная область его применения — публичные децентрализованные реестры с небольшой частотой регистрации, но высокой степенью использования. Основой для последней характеристики является то обстоятельство, что каждый узел хранит полную информацию обо всех других операциях, то есть для чтения достаточно обратиться к ближайшему узлу. Таким образом, блокчейн должен хорошо справиться с задачей демонополизации естественных информационных монополий, таких как DNS и PKI.
DNS
Говоря о DNS, мы подразумеваем все ресурсы, ранее контролируемые IANA: структуру доменных имен и распределение IP-адресов. Блокчейн интересен именно как инструмент распределения адресов IPv4, поскольку их ресурс ограничен и уже практически исчерпан. При этом актуальная задача — вернуть в обращение неиспользуемые блоки адресов. Впрочем, программное обеспечение для регистрации прав на IP-адреса и домены примерно одинаково, и сейчас оно монополизировано сетевой бюрократией, большая часть которой контролируется США.
Монопольное положение одного регистратора, в частности, может быть использовано для разрушения страновых доменов DNS. Так уже было несколько раз, когда корневые серверы DNS по команде управляющего центра уничтожали сведения о корневых доменах таких стран, как Сирия и Ливия. В результате вся их адресация оказалась разрушена.
Конечно, национальные домены этих стран были не очень большими, а их ресурсы в основном регистрировались в общемировых доменных зонах. Но эти прецеденты стали причиной проявления обеспокоенности со стороны Китая и России, у которых страновые сегменты намного больше, а их владельцы не хотели бы понести потери по команде из иностранного центра.
Поиск альтернативного решения для децентрализованного управления доменной структурой ведется уже давно. В основном этой работой занимается Китай, предложивший концепцию Inter-root — многокорневой структуры DNS, в которой каждая страна имеет свой корневой сервер, а остальные страны признают его как один из легитимных для корневого домена.
В Китае уже разработано соответствующее программное обеспечение для корневых серверов, но пока контроль доменной структуры сохраняется за сетевой бюрократией, находящейся под юрисдикцией США. Связано это с тем, что технология Inter-root создает другую монополию — отдельных государств, что, с точки зрения технологической бюрократии, не очень удобно.
Блокчейн вполне можно использовать для демонополизации доменной структуры. Он позволяет вести операции децентрализованно, объединяет множество конкурирующих между собой стран-участников и за счет открытости делает данные о доменной структуре прозрачными. При этом скорость изменения у корневой структуры невелика: домены верхнего уровня регистрируются не каждый день, поэтому и размер блокчейна, скорее всего, не будет сильно увеличиваться.
Уже есть реализации блокчейна для нужд DNS, которую можно адаптировать и для конкурентного распределения IP-адресов.
PKI
Другая задача, которая тоже требует децентрализации, — заверение публичных ключей шифрования. В соответствии с российским законодательством квалифицированная подпись должна быть заверена аккредитованным удостоверяющим центром. С этой целью была создана целая иерархическая структура УЦ, но обнаружилось, что уязвимым местом является секретный ключ корневого центра. Если его скомпрометировать, то будет потеряно доверие и ко всей структуре.
Обычно носитель с секретным ключом корневого сертификата подключают к серверу достаточно редко — только чтобы заверить УЦ первого уровня. Естественно, процедура эта сложная и строго контролируемая, но по-прежнему остается единая точка для нарушения доверия — секретный ключ корневого сервера.
Блокчейн позволяет обойтись без корневого сервера: все аккредитованные УЦ могут образовать блокчейн — правда, со строгими правилами подключения новых членов, которые должны быть верифицированы большинством действующих участников. В этом случае корневой сертификат может быть использован всего один раз — в момент запуска системы и заверения первого круга участников, а дальше уже они сами будут подтверждать легитимность следующих членов.
Правда, государство потеряет возможность контролировать такой блокчейн, поскольку за дальнейшее развитие сети будет отвечать сообщество удостоверяющих центров, например, через коллегиальный орган. Впрочем, подобный блокчейн может существовать не только на верхнем уровне, но и на нижних этажах иерархии — в этом случае новые члены будут заверяться сертификатом более высокого уровня.
Почему подобная задача подходит для блокчейна? Потому что в реестре хранятся только открытые сертификаты, которые меняются очень редко. Хотя его размер достаточно большой, частой смены не требуется, поэтому и высокую скорость обработки обеспечивать не нужно. Объем блокчейна будет зависеть от количества участников, но за хранение информации в блокчейне станут отвечать удостоверяющие центры. Таким образом, недостатки технологии блокчейна снова компенсируются его достоинствами.
Блокчейн можно использовать не только для заверения открытых сертификатов, но и для выработки совместных секретов и хранения защищенной информации совместного использования: в транзакцию помещается зашифрованное сообщение, ключ которого шифруется открытыми ключами участников группы, так что лишь они смогут прочитать это сообщение.
Фактически на базе блокчейна можно строить децентрализованную защищенную сеть передачи сообщений с шифрованием на клиентах, а кроме того, регистрировать авторские права на цифровой контент (правда, тут уже размеры как сообщений, так и самого блокчейна будут иметь значение).
ВОЗМОЖНЫЕ УЛУЧШЕНИЯ
В заключение несколько слов о том, как улучшить характеристики блокчейна, чтобы эта технология была полезна и для массовых проектов.
Скорость блокчейна зависит не только от размера блока, но и от сложности, которая в биткойне корректируется раз в неделю и рассчитывается таким образом, чтобы блок вычислялся примерно один раз в пять минут. Если же сложность поиска контрольных сумм блоков снизить, то в цепочке будет генерироваться большее число блоков, благодаря чему значительно увеличится скорость блокчейна. Вполне возможно, что сложность, а с ней и скорость блокчейна стоит менять не раз в неделю, а, например, через каждые два часа (с учетом дневного цикла). И зависеть сложность должна не от мощности сети, а от размера очереди транзакций.
Рис. 1. Классическая цепочка блоков |
Кроме того, блок может генерироваться не один, то есть вместо одной последовательной цепочки можно было бы разрешить параллельные (см. рис. 1 и 2). Для этого достаточно включать в блок подписи нескольких доступных майнеру блоков, что как раз и позволит уменьшить время создания новых блоков без снижения устойчивости блокчейна в целом. В результате количество транзакций можно увеличить, но, скорее всего, потребуется новый элемент системы — менеджер транзакций, который станет следить за целостностью ветвящихся цепочек блоков. Поскольку менеджер транзакций когда-то потребовался реляционным базам данных, можно предположить, что он понадобится и для распределенных реестров.
Рис. 2. Цепочка блоков с тремя подписями и более частой генерацией |
Если же говорить о сокращении объемов хранимой в блокчейне информации, то полное хранение всех операций на всех узлах нецелесообразно. Можно предусмотреть определенную избыточность хранения. Важно только, чтобы в сети в каждый определенный момент времени имелось достаточно копий одного блока — если их число уменьшается, необходимо новое копирование до необходимого количества.
Возможно, стоит предусмотреть архивное хранение информации, чтобы очень старые транзакции скапливались не на всех узлах, а только на специально выделенных архивных серверах. Важна принципиальная возможность проверки, но не постоянная их доступность майнерам. Такими методами можно компенсировать недостатки технологии и расширить спектр ее применения.
Оскар Краснов, независимый эксперт (oskar@osp.ru)