Миф о неизменности блокчейна

Исходный узел: 1738527

Где гибкое мышление предпочтительнее догматизма

«Наивысшим благом, которого нет выше, является блокчейн, и, следовательно, он неизменно хорош, а потому действительно вечен и действительно бессмертен».
- Святой Августин, De natura boni, I, 405 г. н.э. (с незначительными правками)

Если вы спросите кого-то хорошо информированного о характеристиках блокчейнов, в ответе обязательно появится слово «неизменный». В простом английском языке это слово используется для обозначения чего-то, что никогда не может быть изменено или изменено. В блокчейне это относится к глобальному журналу транзакций, который создается на основе консенсуса между участниками цепочки. Основное понятие таково: как только транзакция блокчейна получила достаточный уровень проверки, некоторая криптография гарантирует, что ее никогда не удастся заменить или отменить. Это помечает блокчейны как отличные от обычных файлов или баз данных, в которых информация может быть отредактирована и удалена по желанию. Или так теория идет.

На шумной арене дебатов о блокчейне неизменность стала квазирелигиозной доктриной - основной верой, которую нельзя поколебать или поставить под сомнение. И так же, как и доктрины в основных религиях, члены противоположных лагерей используют неизменность как оружие насмешек и насмешек. Прошедший год стал свидетелем двух ярких примеров:

  • Сторонники криптовалюты утверждают, что неизменность может быть достигнута только через децентрализованные экономические механизмы, такие как доказательство работы. С этой точки зрения частные блокчейны смешны, потому что они зависят от коллективного хорошего поведения известной группы валидаторов, которым явно нельзя доверять.
  • Scorn добавил к идее редактируемой (или изменяемой) цепочки блоков, в которой ретроактивные изменения могут быть сделаны в истории транзакций при определенных условиях. Издеватели задали вопрос: что может быть смыслом блокчейна, если его содержимое легко изменить?

Для тех из нас, кто находится в стороне, интересно наблюдать за грязью. Не в последнюю очередь потому, что обе эти критики совершенно неверны и проистекают из фундаментального недопонимания природы неизменности в цепочках блоков (и даже в любой компьютерной системе). Для тех, кто не хватает времени, вот итог:

В блокчейнах нет такой вещи как совершенная неизменность. Реальный вопрос заключается в следующем: каковы условия, при которых конкретный блокчейн может и не может быть изменен? И соответствуют ли эти условия той проблеме, которую мы пытаемся решить?

Иными словами, транзакции блокчейна не записаны в сознании Бога (с извинениями к Августину выше). Вместо этого поведение цепочки зависит от сети телесных компьютерных систем, которые всегда будут уязвимы для разрушения или повреждения. Но прежде чем мы перейдем к деталям того, как это сделать, давайте вернемся к некоторым основам самих блокчейнов.

Коротко о блокчейнах

Блокчейн работает на множестве узлов, каждый из которых может находиться под контролем отдельной компании или организации. Эти узлы соединяются друг с другом в плотной одноранговой сети, так что ни один отдельный узел не выступает в качестве центральной точки контроля или сбоя. Каждый узел может генерировать и подписывать в цифровой форме транзакции, которые представляют операции в каком-либо регистре или базе данных, и эти транзакции быстро распространяются на другие узлы в сети в виде сплетни.

Каждый узел независимо проверяет правильность каждой новой входящей транзакции с точки зрения: (a) его соответствия правилам блокчейна, (b) его цифровой подписи и (c) любых конфликтов с ранее замеченными транзакциями. Если транзакция проходит эти тесты, она входит в локальный список временных неподтвержденных транзакций этого узла («пул памяти») и будет переадресована его партнерам. Неудачные транзакции полностью отклоняются, тогда как другие, оценка которых зависит от невидимых транзакций, помещаются во временную зону ожидания («пул сирот»).

Периодически через один из узлов «валидатора» в сети генерируется новый блок, содержащий набор еще не подтвержденных транзакций. Каждый блок имеет уникальный 32-байтовый идентификатор, называемый «хэш», который полностью определяется содержимым блока. Каждый блок также включает временную метку и ссылку на предыдущий блок через его хэш, создавая буквальную «цепочку блоков», возвращающуюся к самому началу.

Как и транзакции, блоки распространяются по сети одноранговым способом и независимо проверяются каждым узлом. Чтобы быть принятым узлом, блок должен содержать набор допустимых транзакций, которые не конфликтуют друг с другом или с транзакциями в предыдущих связанных блоках. Если блок проходит этот и другие тесты, он добавляется в локальную копию этого узла блокчейна, и транзакции внутри него «подтверждаются». Любые транзакции в пуле памяти узла или бесхозном пуле, конфликтующие с транзакциями в новом блоке, немедленно отбрасываются.

Каждая цепь использует своего рода стратегию, чтобы гарантировать, что блоки генерируются множеством ее участников. Это гарантирует, что ни одна отдельная или небольшая группа узлов не сможет захватить контроль над содержимым блокчейна. Большинство публичных блокчейнов, таких как биткойн, используют «доказательство работы», которое позволяет создавать блоки любому пользователю в Интернете, который может решить бессмысленную и чертовски сложную математическую головоломку. Напротив, в частных цепочках блоков блоки, как правило, подписываются одним или несколькими разрешенными валидаторами, используя соответствующую схему для предотвращения контроля меньшинства. Наш продукт многоцепочечного использует технику, называемую «разнообразие майнинга», которая требует минимальной доли разрешенных валидаторов для участия в создании действительной цепочки.

В зависимости от используемого механизма согласования два разных узла валидатора могут одновременно генерировать конфликтующие блоки, оба из которых указывают на один и тот же предыдущий. Когда происходит такая «развилка», разные узлы в сети сначала будут видеть разные блоки, что приводит их к разным взглядам на недавнюю историю цепочки. Эти разветвления автоматически разрешаются программным обеспечением блокчейна, при этом консенсус восстанавливается, как только новый блок поступает в одну из ветвей. Узлы, которые были в более короткой ветви, автоматически перематывают свой последний блок и воспроизводят два блока в более длинном. Если нам действительно не повезло, и обе ветви расширяются одновременно, конфликт будет разрешен после третьего блока в одной ветви или после него и так далее. На практике вероятность сохранения вилки экспоненциально уменьшается с увеличением ее длины. В частных цепях с ограниченным набором валидаторов вероятность может быть уменьшена до нуля после небольшого количества блоков.

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

Изменчивость в публичных цепях

Давайте вернемся к двум примерам, приведенным во введении, в которых доктрина неизменности использовалась в качестве основы для насмешек. Мы начнем с утверждения, что согласованные процедуры проверки, используемые в разрешенных цепочках блоков, не могут привести к «истинной неизменности», обещанной публичными цепями.

Эту критику легче всего решить, указав на уязвимость самих публичных блокчейнов. Взять, к примеру, блокчейн Ethereum, который перенес разрушительный подвиг в июне 2016 года. Кто-то нашел лазейку кодирования в умном контракте под названием «DAO», в который было инвестировано почти 250 миллионов долларов, и начал быстро расходовать свои средства. Хотя это явно нарушало намерения создателей и инвесторов контракта, его условиями полагался на мантру, что «кодекс есть закон». Закон или нет, менее чем через месяц программное обеспечение Ethereum было обновлено, чтобы не дать хакеру отозвать криптовалюту, «заработанную».

Конечно, это обновление не может быть применено, поскольку каждый пользователь Ethereum контролирует свой собственный компьютер. Тем не менее, его публично поддержали Виталик Бутерин, основатель Ethereum, а также многие другие лидеры сообщества. В результате большинство пользователей выполнили требования, и блокчейн с новыми правилами сохранил название «Ethereum». Меньшинство не согласилось с изменением и продолжило блокчейн в соответствии с его первоначальными правилами, заработав титул «Эфириум Классик». Более точный выбор имен может быть «Эфириум скомпрометирован» и «Эфириум чистый». В любом случае, демократия есть демократия, и (прагматичный и популярный) «Эфириум» теперь стоит в десять раз (идеалистично, но на обочине) «Эфириум Классик».

Теперь давайте рассмотрим менее благожелательный способ, которым публичная неизменность блокчейна может быть подорвана. Напомним, что создание блоков или «майнинг» в биткойнах и Ethereum использует схему проверки работоспособности, в которой необходимо решить математическую задачу, чтобы сгенерировать блок и получить его вознаграждение. Ценность этой награды неизбежно превращает добычу в гонку вооружений, где майнеры соревнуются за быстрое решение проблем. Чтобы компенсировать это, сеть периодически корректирует сложность, чтобы поддерживать постоянную скорость создания блоков, один раз каждые 10 минут в биткойнах или 15 секунд в Ethereum.

В последние 5 годы сложность биткойна увеличился в 350,000 1,089 раз. Сегодня подавляющее большинство майнинга биткойнов происходит на дорогом специализированном оборудовании, в местах с холодной погодой и дешевым электричеством. Например, $ XNUMX купит вам Antminer S9, который минирует блоки в 10,000 10 раз быстрее любого настольного компьютера и сжигает в XNUMX раз больше электроэнергии. Это все далеко от демократических идеалов, с помощью которых был создан биткойн, даже если это делает блокчейн чрезвычайно безопасным.

Ну, вроде как безопасно. Если кто-то хотел подорвать неизменность цепочки биткойнов, вот как они это сделают. Во-первых, они установили бы большую мощность майнинга, чем остальная часть сети, вместе взятые, создавая так называемую «атаку на 51%». Во-вторых, вместо того, чтобы открыто участвовать в процессе майнинга, они будут добывать свою собственную «секретную ветвь», содержащую любые одобренные транзакции, и цензуру остальных. Наконец, когда желаемое количество времени прошло, они анонимно транслировали свою секретную ветку в сеть. Поскольку злоумышленник обладает большей мощностью майнинга, чем остальная сеть, его ветвь будет содержать больше доказательств работы, чем общедоступная. Поэтому каждый биткойн-узел будет переключаться, поскольку правила биткойна гласят, что побеждает более сложная ветка. Любые ранее подтвержденные транзакции, не входящие в секретную ветку, будут отменены, и потраченный ими биткойн может быть отправлен в другое место.

К настоящему времени большинство сторонников биткойнов будут смеяться, потому что я написал «установить больше майнинговых мощностей, чем остальная сеть вместе взятые», как будто это тривиально для достижения. И у них есть смысл, потому что, конечно, это не легкоиначе многие люди уже сделали бы это. Вам нужно много горного оборудования, и много электричества, чтобы привести его в действие, оба из которых стоят кучу денег. Но вот неудобный факт, что большинство биткойнеров замахиваются: Для правительства любой страны среднего размера необходимые деньги все еще невелики.

Давайте оценим стоимость атаки в 51%, которая полностью меняет год транзакций с биткойнами. При текущей цене биткойнов в 1500 долларов и вознаграждении в 15 биткойнов (включая комиссию за транзакции) за 10-минутный блок майнеры зарабатывают около 1.2 миллиарда долларов в год (1500 × 15 × 6 × 24 × 365). Предполагая (разумно), что они не теряют деньги в целом или, по крайней мере, не теряют много, это означает, что общие расходы майнера также должны быть в том же диапазоне. (Я упрощаю это, амортизируя единовременную стоимость покупки майнинг-оборудования, но 400 миллионов долларов купят вам достаточно Antminer 9, чтобы соответствовать текущей мощности майнинга биткойн-сети, поэтому мы находимся в правильном положении.)

Теперь подумайте о отчеты этот биткойн используется китайскими гражданами для обхода контроля над капиталом в их стране. И учтите далее, что налоговые поступления китайского правительства составляют примерно 3 доллара триллион в год. Будет ли правительство недемократической страны тратить 0.04% своего бюджета на закрытие популярного способа незаконного вывоза денег из этой страны? Я бы не стал утверждать, что ответ обязательно да. Но если вы думаете, что ответ определенно нет, ты более чем немного наивен. Особенно если учесть, что Китай по сообщениям работает 2 миллионов человек контролировать содержание интернета, что составляет 10 миллиардов долларов в год, если мы предположим, что заработная плата будет низкой - 5,000 долларов. Это дает перспективу реверсирования годового количества биткойн-транзакций в 1.2 млрд долларов.

Даже этот анализ недооценивает проблему, потому что китайское правительство может подорвать сеть биткойнов гораздо проще и дешевле. Похоже, что большая часть майнинга биткойнов проходит в Китае, из-за дешевой гидроэнергетики и других факторов. Учитывая несколько танков и взводов, китайская армия могла бы физически завладеть этими операциями по добыче биткойнов и перенаправить их на цензуру или обратную транзакцию. Хотя более широкий мир биткойнов, несомненно, это заметит, он ничего не сможет сделать, не изменив принципиально структуру управления (и, следовательно, природу) самого биткойна. Что это было за цензура свободных денег?

Ничто из этого не должно быть истолковано как критика дизайна биткойнов или предсказание того, что сетевая катастрофа действительно произойдет. Биткойн-блокчейн - это замечательная разработка, возможно, даже идеально подходящая для целей, которые его создатель (и) имел в виду. И если бы мне пришлось положить на это деньги, я бы поспорил, что Китай и другие правительства вероятно не будет атаковать биткойны таким образом, потому что это не в их интересах. Скорее всего, они сфокусируют свой гнев на своих более непостижимых кузенах, таких как Dash, Zcash и Monero.

Тем не менее, простая возможность этой формы вмешательства ставит доктрину неизменности криптовалюты на свое место. Блокчейн биткойнов и тому подобное не являются неизменными ни в каком совершенном или абсолютном смысле. Скорее они неизменны до тех пор, пока никто не станет достаточно большим и достаточно богатым, чтобы решить их уничтожить. Тем не менее, полагаясь на экономической Стоимость подрывной сети, неизменяемость криптовалюты удовлетворяет конкретные потребности людей, которые не хотят доверять правительствам, компаниям и банкам. Это может быть не идеально, но это лучшее, что они могут сделать.

Перезаписываемые частные сети

Теперь давайте перейдем к частным блокчейнам, разработанным для нужд правительств и крупных компаний. Мы можем начать с того, что, с точки зрения этих организаций, неизменность, основанная на доказательстве работы, является коммерческая, юридически и регуляторы не стартер, потому что он позволяет любому (достаточно богатому) субъекту анонимно атаковать сеть. Для учреждений неизменность может основываться только на хорошем поведении других аналогичных учреждений, с которыми они могут подписать контракт и подать в суд в случае необходимости. В качестве бонуса, частные блокчейны намного дешевле в эксплуатации, поскольку блоки нуждаются в простой цифровой подписи только тех узлов, которые их одобряют. До тех пор, пока большинство узлов валидаторов следуют правилам, конечный результат является более сильным и более дешевым неизменяемостью, чем любая публичная криптовалюта.

Конечно, неизменность по-прежнему легко подорвать, если все участники цепочки решат сделать это сообща. Давайте представим себе частный блокчейн, используемый шестью больницами для агрегирования данных об инфекциях. Программа в одной больнице записывает в цепочку большой и ошибочный набор данных, что является источником неудобств для остальных участников. Спустя несколько телефонных звонков ИТ-отделы всех больниц соглашаются «перемотать» свои узлы на час назад, удалить проблемные данные, а затем позволить цепочке продолжить работу, как будто ничего не произошло. Если все больницы согласятся это сделать, кто их остановит? Действительно, кроме вовлеченного персонала, кто вообще узнает, что это произошло? (Следует отметить, что некоторые алгоритмы консенсуса, такие как PBFT не предоставлять официальный механизм для отката, но это не помогает с управлением, так как узлы все еще могут свободно обходить правила.)

Теперь рассмотрим случай, когда большинство участников частного блокчейна соглашаются перемотать и удалить некоторую транзакцию, но некоторые отказывают в согласии. Поскольку узел каждой организации находится под его окончательным контролем, никто не может заставить меньшинство присоединиться к консенсусу. Однако, придерживаясь своих принципов, эти пользователи окажутся на развилке, игнорируемой всеми остальными. Как добродетельные сторонники Ethereum Classic, их место на небесах вполне может быть гарантировано. Но здесь, на земле, они будут исключены из процесса консенсуса, для которого была развернута цепочка, и могли бы также полностью отказаться. Единственное практическое применение сделок вне консенсуса - это служить доказательством в суде.

Имея это в виду, давайте поговорим о втором случае, когда доктрина неизменности блокчейна использовалась для высмеивания идей. Здесь мы имеем в виду идею Accenture о используя хамелеон чтобы можно было легко заменить блок, закопанный глубоко в цепи. Основная мотивация, как описанный Дэвид Трит, позволяет быстро и эффективно удалить старую проблемную транзакцию. Согласно схеме, если происходит замена блока, остается «шрам», который видят все участники. (Следует отметить, что любые последующие транзакции, которые зависят от удаленной, также должны быть удалены.)

Трудно переоценить, сколько людей презирали эту идею, когда она была объявлена. Twitter и LinkedIn были ошеломлены и потрясены. И я говорю не только о крипто-толпе, которая получает спортивное удовольствие от насмешек над всем, что связано с корпоративными блокчейнами. Идея была широко одобрена частными сторонниками блокчейна.

И все же, при правильных условиях идея о том, что блокчейны могут быть модифицированы задним числом с помощью хамелеонов, может иметь смысл. Чтобы понять почему, мы начнем с простого вопроса: в этом типе блокчейна кто на самом деле сможет заменить старые блоки? Ясно, что это не может быть любой неопознанный участник сети, потому что это сделает цепочку неуправляемой.

Ответ таков: хеш-хамелеон может использовать только тот, кто хранит его секретный ключ. Ключ необходим для того, чтобы новая версия блока с различными транзакциями получала тот же хэш-код, что и раньше. Конечно, мы, вероятно, не хотим централизованного управления в блокчейне, поэтому мы можем сделать схему более сильной, имея несколько хеш-хамелеонов на блок, каждый из которых имеет свой ключ у другой стороны. Или мы могли бы использовать делиться секретами методы разделения одного хэш-ключа хамелеона между несколькими сторонами. В любом случае цепочка может быть настроена таким образом, что обратная замена блоков может произойти только в том случае, если большинство ключевых держателей одобрит ее. Это начинает звучать знакомо?

Позвольте мне сделать параллель более явной. Допустим, мы разделяем контроль над хэш-хамелеонами между теми же проверяющими узлами, которые отвечают за создание блоков. Это означает, что старый блок может быть заменен только в том случае, если большинство проверяющих узлов согласны на это. И все же, как мы обсуждали ранее, любой блокчейн может уже быть задним числом изменено большинством проверяющих узлов с помощью механизма перемотки и перемотки. Так что с точки зрения управления, хеш-хелеоновские хэши, подлежащие утверждению большинством, вообще не имеют значения.

Если так, то зачем им? Ответ: оптимизация производительностипотому что хамелеоновые хеши позволяют заменять старые блоки в цепочке гораздо эффективнее, чем раньше. Представьте, что нам нужно удалить транзакцию из начала цепочки блоков, которая работает уже 5 лет. Возможно, это связано с Право быть забытым законодательство, которое позволяет людям удалять свои личные данные из записей компаний. Узлы не могут просто стереть поврежденную транзакцию со своих дисков, потому что это изменит хеш соответствующего блока и разорвет связь в цепочке. В следующий раз, когда блокчейн будет отсканирован или распространен, все рухнет.

Для решения этой проблемы без хэш-хамелеоны, узлы должны были бы переписать ранний блок без проблемной транзакции, вычислить новый хеш-блок, а затем изменить хеш-код, встроенный в следующий блок, для соответствия. Но это также повлияет на собственный хеш следующего блока, который должен быть пересчитан и обновлен в последующем блоке, и так далее по всей цепочке. Хотя этот механизм в принципе возможен, на блокчейн с миллионами блоков и транзакций может потребоваться несколько часов или дней. Еще хуже, будучи вовлеченным в этот процесс, узел может быть неспособен обрабатывать новую входящую сетевую активность. Таким образом, хэш-хемон-хэши обеспечивают гораздо более эффективный в вычислительном отношении способ достижения той же цели. Если вы представляете себе неудачную сделку, когда камень похоронен за много миль под землей, хамелеоны могут телепортировать камень на поверхность, вместо того, чтобы заставить нас копать весь путь вниз, добывать камень и заполнять дыру.

Неизменность нюансов

Рассматривая риски, связанные с блокчейнами с проверкой работоспособности, и техническую ценность хеш-хемелеонов, я надеюсь убедить вас в том, что неизменность блокчейнов гораздо более тонкая, чем вопрос «да или нет». Цитировать Саймон Тейлор цитирует Яна Григгавопрос всегда должен быть «кто ты и чего ты хочешь достичь?»

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

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

Наконец, для большинства разрешенных вариантов использования цепочки блоков мы, вероятно, не хотим, чтобы узлы валидатора могли легко и дешево заменять старые блоки в цепочке. Как Дейв Берч сказал в то время«Способ исправить неправильный дебет с помощью правильного кредита», а не делать вид, что дебет никогда не имел место. Тем не менее, для тех случаев, когда нам нужна дополнительная гибкость, хешеонные хеши помогают сделать блокчейны практичным выбором.

Пожалуйста, оставьте любые комментарии на LinkedIn.

Отметка времени:

Больше от многоцепочечного