Насколько эффективна Византийская отказоустойчивость
Любой, кто обменивает реальные ценности на банкноты или монеты, ожидает, что их платежные средства будут защищенными от подделки, и будут уникальными. В противном случае любой может сделать любое количество копий и, таким образом, быстро испортить ценность валюты.
В случае валют, выпущенных государством, водяные знаки, защитные полосы и голограммы гарантируют защиту от подделки, а центральный банк контролирует количество денег в обращении. Что касается драгоценных металлов, то ясность создает химия. Никому и никогда не удавалось «подражать» золоту и серебру.
Несмотря на огромное количество денег и драгоценных металлов, в обращении на протяжении веков, нет никаких доказательств подделок, которые нельзя было бы обнаружить в принципе. Просто все зависит от усилий и внимания.
В случае виртуальных денег, только криптография и крипто-сообщество гарантируют, что Bitcoin и Ethereum не будут потрачены дважды («двойные траты»). Разработчики криптовалюты предполагают, что ложное подтверждение действительности блока Биткойна невозможно, потому что в сговоре может участвовать лишь небольшая группа, но никогда не большинство участников. Сегодня, согласно Coinmarketrate.com, существует почти 13 тысяч криптовалют, и их разработчики думают по-разному.
Подходящие системы стимулирования всегда должны обеспечивать достаточно большое количество участников. Так что у законопослушных пользователей, всегда есть большинство. Однако это тоже абсолютно необходимо, иначе механизм предотвращения таких атак выйдет из строя. Данные о блокчейнах должны совпадать как по содержанию, так и по порядку. Если возникают разногласия, задача механизма консенсуса — навести порядок. Однако механизм консенсуса не может независимо различать истинные и ложные записи в цепочках блоков. Он только помогает преодолеть мнение большинства, но оно может и ошибаться.
Византийская ошибка или предательство офицеров
В 1453 году нашей эры, османские генералы осаждали Константинополь, также известный как Остром. Сегодня город называется Стамбул. В средние века, это был центр Византийской империи. Примерно через тысячу лет после падения Западного Рима в 1453 году нашей эры, крепостная стена все еще защищала Константинополь, и создавала проблему для нападающих. Нападающие могли общаться друг с другом только через посыльных, потому что стена была слишком длинная. Чтобы добиться успеха, они должны были атаковать стену одновременно, с разных сторон. Альтернативой была только длительная осада.
Однако некоторые турецкие генералы пошли на хитрость, и исказили решения главнокомандующего «атаковать». Их цель заключалась в том, чтобы дезинформировать шпионов в окружении султана, пытаясь вынудить противника атаковать преждевременно, с помощью хитроумно распространенной ловушки. Какая причина для этого у лояльных султану генералов? Они не знают, кто предатель, а кто нет.
Теперь задача состоит в том, чтобы разработать максимально отказоустойчивый процесс принятия решений. Генералы обмениваются информацией друг с другом через посыльных. Следует отметить, что посыльные могли бесследно исчезнуть, а послания могут быть подделаны.
Исторически значимое событие XIV века до сих пор так впечатляло математиков, что они называют целый класс задач «византийскими ошибками» или «государственной изменой». У компьютерных ученых есть готовые решения, но они работают только в том случае, если предателей не станет слишком много. Предел — треть.
Однако это предполагает, что сообщения являются подлинными, то есть защищены от подделки. Сегодня эту задачу берут на себя системы шифрования с открытым ключом. Но генерал не может ждать вечно, чтобы принять решение. Отсутствующие сообщения должны распознаваться как таковые по таймауту. Голосование проводится по мажоритарному принципу. Это означает, что сообщения, поступающие с опозданием, могут повлиять на исход голосования, в частности, мнение большинства также может привести к неверному результату. Факт, о котором часто забывают.
На практике DDoS-атаки могут взять на себя задачу, которая раньше была возложена на солдат: предотвращение доставки сообщений.
Много узлов, много сообщений
Системам требуются часы для синхронной работы, чтобы иметь возможность согласовывать совместные действия. Если внешний источник недоступен, неисправные часы могут, в свою очередь, вызвать византийскую ошибку во время синхронизации. Также следует иметь в виду, что при наличии всего 5 “предателей”, количество отправленных сообщений увеличится до более чем 3,6 миллиона. Так рассчитали его Лесли Лэмпорт и Дэнни Долев в 2005 году во время семинара в Институте Хассо Платтнера.
При выборе механизма консенсуса необходимо следить за тем, чтобы не было чрезмерной зависимости от количества узлов. Эксперты BSI предупреждают, что если механизмы консенсуса плохо масштабируются для большего количества узлов, то их использование в блокчейнах, не требующих утверждения, так как это не имеет смысла.
Достижение консенсуса
Аналогия между византийскими ошибками или государственной изменой и мошенничеством в блокчейне очевидна. В конце концов, каждый генерал должен решить, атаковать или ждать, золотой середины нет. Каждый пытается координировать свои действия с как можно большим количеством генералов, чтобы добиться ясности. Именно так работают механизмы консенсуса.
Однако математики говорят не о генералах, а об узлах сети. Византийские ошибки могут быть вызваны ошибками в работе, техническими проблемами, предательством или намерением обмана. Во всех случаях узлы больше не согласованы. Поэтому нет ясности в отношении истинного содержания блокчейна, или статуса реестра (журнала).
Синхронные и асинхронные сети
В настоящее время предложен ряд методов. Не все подходят для всех случаев использования. Требования к механизмам консенсуса для публичных и частных блокчейнов во многих отношениях различаются. При выборе процедуры также необходимо уточнить, что является приоритетом в процессе достижения консенсуса — безопасности или живучести. Каждый, кто разрабатывает механизм консенсуса, должен решить, какое из двух требований более важно.
Жизнерадостность гарантирует, что каждый правильный узел в конечном итоге примет решение. Таким образом, не должно быть бесконечной задержки, даже если сообщения все еще ожидаются, и процедура прекращается.
В асинхронных сетях может случиться так, что один из узлов (генералы) ждет последнего посыльного, но он так и не прибудет. По определению, в синхронных сетях существует ограничение по времени. Кроме того, механизмы консенсуса требуют безопасности. Для этого должны быть выполнены три условия:
- Узел может принять решение только о значении, которое было предложено другим узлом
- Честность. Ни один узел не может принимать сразу несколько решений.
- Согласие. Два правильных узла не должны принимать разные решения.
Помимо византийских ошибок есть еще и вылеты. В этом случае происходит сбой узлов. Однако через некоторое время они обычно снова работают.
Искусство математиков сейчас состоит в том, чтобы найти методы, которые могут как можно быстрее смягчить большое количество попыток мошенничества или сбоев. Различают два типа: алгоритмы CFT (отказоустойчивые к сбоям) устраняют ошибки сбоев, и алгоритмы BFT (отказоустойчивые византийские), которые должны искоренить измену (византийские отказы).
На практике алгоритмы CFT почти всегда используются в распределенных системах из-за их более высокой пропускной способности. Наиболее известным примером использования новых процессов является криптовалюта Bitcoin, которая, как и Ethereum, использует алгоритмы Proof-of-Work (PoW) из класса процессов Proof-of-X (PoX).
С помощью этих алгоритмов консенсус относительно новых данных достигается с помощью математической задачи, требующей больших вычислительных ресурсов (поиск строки с хеш-значением ниже заданного предела), которую необходимо решать для каждого нового блока. Решение этой загадки — настоящее «доказательство работы». Если вы первым найдете правильное решение, ваш блок будет распределен в сети и принят другими узлами.
Форки и хард-форки
Время задержки при передаче сообщений в сети может означать, что разные узлы изначально хранят разные блоки в своей локальной копии цепочки блоков, в одном и том же месте. Это создает разные ветви цепочки блоков и, следовательно, несоответствия. Это называется форком (вилкой). Однако такие вилки разрешаются через короткое время.
Итак, наиболее вероятное решение определено. Но, таким образом, нет математической гарантии, что правильная ветвь вилки всегда будет включена в цепочку блоков.
В абстрактных терминах PoW можно понимать как механизм консенсуса с лидером, предложение которого обычно принимается всеми правильными узлами. Обсуждение наилучшей процедуры консенсуса еще не закончилось. Сейчас представлено больше количество энергосберегающих процессов, но они еще не реализованы на практике.
Безопасность PoW не гарантируется постоянно, потому что добавленные блоки могут впоследствии стать недействительными из-за растворения вилок. Это отличает их от классических процессов CFT и BFT, которые всегда гарантируют безопасность, и чьи блоки являются окончательными.
Процессы PoW чрезвычайно ресурсоемки и поэтому требуют больших затрат энергии. Чтобы гарантировать достаточное количество участников, необходимы системы экономических стимулов. Обычно успешному узлу зачисляется определенная сумма в рассматриваемой криптовалюте.
В то же время это означает, что высокий курс обмена валюты абсолютно необходим для предотвращения чрезмерной централизации процесса майнинга. В конечном счете, широкая база пользователей — единственная гарантия от мошенничества. Уже сегодня участие в определенных валютах блокчейна окупается почти исключительно за счет оптимизированного оборудования в местах с низкими тарифами на электроэнергию.
В 2003 году швейцарские физики разработали метод более элегантного и гораздо лучшего решения проблемы византийской ошибки с помощью квантовой механики. Для этого они используют физические свойства запутанных квантовых состояний. Однако сегодня эти методы не используются в криптовалютах, и связанных с ними процессах.