Logo
Поделиться этой статьей

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

Гидеон Гринспен из MultiChain предлагает свой последний взгляд на дизайн блокчейна, на этот раз критикуя идею о том, что блокчейны действительно могут быть неизменными.

Доктор Гидеон Гринспен — основатель и генеральный директор Coin Sciences, компании, стоящей заМультиЧейнплатформа для частных блокчейнов.

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

Продолжение Читайте Ниже
Не пропустите другую историю.Подпишитесь на рассылку Crypto Long & Short сегодня. Просмотреть все рассылки

- Святой Августин, De natura boni, i, 405 г. н.э. (с небольшими изменениями)

Если вы спросите кого-то хорошо осведомленного о характеристиках блокчейнов, в ответе неизменно появится слово «неизменяемый».

На простом английском это слово используется для обозначения чего-то, что никогда не может быть изменено или модифицировано. В блокчейне оно относится кглобальный журнал транзакций, который создается путем консенсуса между участниками цепочки. Основная идея такова: как только транзакция блокчейна получает достаточный уровень проверки, некоторая криптография гарантирует, что ее никогда нельзя будет заменить или отменить.

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

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

Прошлый год стал свидетелем двух ярких примеров:

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

Презрениетакже был направленна идее редактируемого (или изменяемого) блокчейна, в котором ретроспективные изменения могут быть сделаны в истории транзакций при определенных условиях. Мокеры задали вопрос: «Какой может быть смысл в блокчейне, если его содержимое можно легко изменить?»

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

Для тех, у кого мало времени, вот суть:

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

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

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

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

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

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

Транзакции, которые не прошли успешно, сразу отклоняются, а те, оценка которых зависит от невидимых транзакций, помещаются во временную зону ожидания («пул бесхозных»).

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

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

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

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

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

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

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

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

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

Вернемся к двум примерам, приведенным во введении, в которых доктрина неизменности использовалась как основа для насмешек.

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

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

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

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

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

За последние пять лет,сложность биткоина увеличилось в 350 000 раз. Сегодня подавляющее большинство добычи Bitcoin происходит на дорогостоящем специализированном оборудовании, в местах, где холодная погода и дешевое электричество.

Например, за 1089 долларов вы купитеAntminer S9, который майнит блоки в 10 000 раз быстрее любого настольного компьютера и сжигает в 10 раз больше электроэнергии. Все это очень далеко от демократических идеалов, с которыми был создан Bitcoin , даже если это делает блокчейн чрезвычайно безопасным.

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

Поскольку у злоумышленника больше мощности майнинга, чем у остальной части сети, его ветвь будет содержать больше proof-of-work, чем ONE. Поэтому каждый узел Bitcoin переключится, поскольку правила Bitcoin гласят, что побеждает более сложная ветвь. Любые ранее подтвержденные транзакции, не находящиеся в Secret ветви, будут отменены, а потраченные ими Bitcoin могут быть отправлены в другое место.

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

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

Теперь подумайте о том,отчеты что Bitcoin используется гражданами Китая для обхода контроля за движением капитала в своей стране. И учтите, что налоговые поступления китайского правительства составляют примерно $3 трлн в год. Будет ли правительство недемократической страны тратить 0,04% своего бюджета, чтобы закрыть популярный метод незаконного вывода денег из этой страны?

Я бы T утверждать, что ответ обязательно да. Но если вы думаете, что ответ определенно нет, вы более чем немного наивны. Особенно учитывая, что Китай, как сообщается, использует 2 миллиона людей для контроля интернет-контента, что составляет $10 млрд/год, если предположить низкую зарплату в $5000. Это позволяет оценить стоимость отмены Bitcoin транзакций за год в размере $1,2 млрд.

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

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

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

Может, это и не идеально, но это лучшее, что они могут сделать.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В следующий раз, когда блокчейн будет просканирован или передан, все развалится.

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

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

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

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

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

ЦитироватьСаймон Тейлор цитирует Яна Григга, всегда следует задавать вопрос: «Кто вы и чего вы хотите достичь?»

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

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

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

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

Эта статья былапервоначально опубликованов блоге MultiChain и перепечатано здесь с разрешения автора. Внесены незначительные правки.

Мифологияизображение через Shutterstock

Примечание: мнения, выраженные в этой колонке, принадлежат автору и не обязательно отражают мнение CoinDesk, Inc. или ее владельцев и аффилированных лиц.

Picture of CoinDesk author Gideon Greenspan