В ближайшем будущем Ethereum собирается прибегнуть к двум дополнительным стратегиям, направленным на то, чтобы справиться с этой ситуацией. Во-первых, из-за того что майнинг-алгоритмы основаны на блокчейне, каждый майнер будет обязан как минимум держать полную ноду, что создаст нижний предел для количества полных нод. Во-вторых, что более важно, мы включим промежуточный корень дерева состояния в блокчейн после проведения каждой транзакции. Даже если валидация блоков будет централизована, пока хотя бы нода, занимающаяся верификацией, остается честной, проблемы можно избежать за счет протокола верификации. Если майнер публикует невалидный блок, то у этого блока либо неправильный формат, либо некорректное состояние S[n]. Поскольку начальное состояние S[0] корректно, должно существовать какое-то первое некорректное состояние S[i], где состояние S[i–1] будет корректно. Верифицирующая нода предоставит индекс i вместе с proof-of-invalidity, состоящим из подмножеств нод дерева Патрисии, которые пытаются произвести APPLY(S[i–1],TX[i]) – > S[i]. Ноды смогут использовать эти части дерева Патрисии для выполнения нужного фрагмента вычисления и убедиться, что получившееся S[i] не совпадает с S[i], предъявленным майнером.
Злоумышленники также могут провести более изощренную атаку, опубликовав неполные блоки, – в таком случае полной информации, которая могла бы показать валидность/невалидность блока, попросту не будет существовать. Здесь может помочь протокол ответа на вызов: ноды верификации выпускают «вызовы» в форме индексов целевых транзакций, и после получения ноды легкая нода воспринимает блок как невалидный до тех пор, пока еще одна нода – майнер или другой верификатор – не предоставит подмножество нод дерева Патрисии в качестве доказательства валидности.
ЗАКЛЮЧЕНИЕ
Протокол Ethereum изначально задуман как улучшенная версия криптовалюты, которая предоставляет дополнительные возможности благодаря крайне обобщенному языку программирования: эскроу внутри блокчейна; ограничение суммы снятия; финансовые контракты; рынки азартных игр и прочее. Протокол Ethereum не должен «поддерживать» какое-либо из приложений напрямую, но использование полного по Тьюрингу языка программирования теоретически позволяет создавать произвольные контракты для любого типа транзакций и приложений. Но самое интересное в Ethereum – то, что его протокол выходит далеко за рамки просто криптовалюты. Протоколы децентрализованного хранения файлов, децентрализованных вычислений и децентрализованных рынков предсказаний, а также десятки других концепций могут существенно повысить эффективность IT-индустрии и стимулировать другие p2p-протоколы, впервые добавив экономический уровень. Наконец, есть и значительное множество приложений, не имеющих никакого отношения к деньгам.
Концепция произвольности функции изменения состояния, включенная в протокол Ethereum, предоставляет платформу с уникальным потенциалом; в отличие от протоколов закрытого типа, созданных с конкретной целью и для конкретного типа приложений, скажем, в области хранения данных, азартных игр или финансов, архитектура Ethereum крайне открыта, и мы верим, что в ближайшие годы она станет прекрасным базовым уровнем для огромного количества финансовых и нефинансовых протоколов.
Глоссарий
БЛОКЧЕЙН (BLOCKCHAIN) – основополагающая технология Bitcoin, Ethereum и других протоколов. Он представляет собой общую базу данных, содержание которой формируется с согласия всех участвующих в ней компьютеров. Эта база состоит из блоков данных – о транзакциях, программном коде и прочем, – связанных в последовательную цепочку. Однажды попав в нее, данные остаются там навсегда: их невозможно удалить или изменить. Первой имплементацией технологии считается Bitcoin: его первичный блок был добыт 3 января 2009 года.
ВАЛИДАТОР (VALIDATOR) – пользователь сети на основе proof of stake, который может получить вознаграждение в виде токенов за добавление блоков в блокчейн. Валидатор должен сдать в стейкинг некоторое количество токенов, которые может потерять, если не выполнит свою задачу корректно.
ВНУТРИ БЛОКЧЕЙНА (ON-CHAIN) – действия, происходящие непосредственно в блокчейне: к примеру, процесс голосования с использованием смарт-контракта. В свою очередь, к действиям вне блокчейна (off-chain) относятся обсуждение голосования в социальных сетях или заседание корпоративного совета на тему голосования с помощью токенов компании.
ДЕЦЕНТРАЛИЗАЦИЯ (DECENTRALIZATION) – важнейшая концепция в культуре блокчейна. Термин можно трактовать по-разному (см. статью «Значение децентрализации»), но в целом он подразумевает замену систем, подконтрольных единому центру, системами, распределяющими контроль между многими участниками.