Виталик Бутерин предлагает алгоритм консенсуса, требующий наличия лишь 1% честных узлов

99-percent-fault-tolerance-consensus-algo-august-18«Если добавить больше допущений (в частности, требование о том, чтобы наблюдатели тоже активно следили за консенсусом, а не просто загружали результаты по факту его достижения), можно повысить отказоустойчивость до 99%», – так утверждает Виталик Бутерин в своей узкоспециальной статье, в которой высказывает предположение о том, что, вместо того, чтобы обеспечивать добросовестность 50% майнеров или стейкеров, существует другой способ защиты от атак, для которого достаточно добросовестности лишь 1% из них.

И тогда внушающая ужас «атака 51%» при таком алгоритме консенсуса станет «атакой 99%», а это означает, что провести атаку будет практически невозможно.

Если не вдаваться в подробности, то этот способ подразумевает наличие в сети «прослушивающих узлов» или независимых наблюдателей.

Вы, вероятно, слышали о «правиле первого увидевшего» (first seen rule), существующем в Биткойне. Если нет, то вот объяснение Сатоши Накамото от 17 июля 2010 года, которое мы приводим здесь полностью:

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

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

Вот упрощенный пример:
1         0
4         1
16        4
64        16
80%     20%

Поэтому даже секундное ожидание в случае двойной траты – это огромный недостаток.

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

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

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

«Я просто написал блок объяснения и адаптировал его к контексту блокчейна», – говорит Бутерин. Конрад Барски, разработчик Ethereum, объясняет:

«Предложение Виталика заключается в следующем: если бы независимые наблюдатели сетевого трафика (т. е. программы-клиенты для блокчейна, которые запускают обычные пользователи, а не майнеры/валидаторы) следили за тем, что происходит в сети в реальном времени и обращали внимание на время появления сообщения, то они смогли бы определять «нарушение правил игры» со стороны майнеров, пытающихся провести атаку 51%. Это могло бы обеспечить дополнительную защиту от атак такого рода».

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

Это похоже на некие доказательства мошенничества, которых, по словам некоторых разработчиков Bitcoin Core, не существует. Однако в работе Накамото упоминаются такие доказательства мошенничества в качестве объяснения того, почему нет необходимости сохранять  некоторые данные, или почему легкие узлы могут быть вполне безопасными.

Если кратко, то, как следует из названия, доказательства мошенничества – это доказательства мошенничеств, обмана, ненадлежащего поведения или несоответствия консенсусу.

Если вы запускаете полный узел, то вы валидируете все данные, так что узел просто отвергает неправильное поведение. Однако если вы не проверяете достоверность всех поступающих данных – скажем, когда используете смартфон – то, при некоторых условиях, вам могут предоставить недостоверные данные, которые вы можете проверить.

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

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

«Если 5% валидаторов честны, есть только приблизительно 1 шанс из триллиона, что ни один из 512 случайным образом выбранных узлов не будет честным, и до тех пор, пока сетевая задержка и временные несоответствия будут меньше D/2, вышеупомянутый алгоритм будет работать, исправно координируя узлы на основании единого утвержденного значения, даже при наличии нескольких противоречащих друг другу значений, так как принцип отказоустойчивости алгоритма, работающего на основании предельного значения, нарушен».

Конечно, все это следует воспринимать в контексте предстоящего релиза Casper, и эти новые идеи, возможно, дополнят собой алгоритм Proof of Stake, на который, как ожидается, должен перейти Ethereum. Если эти решения будут реализованы в полной мере и в комплексе, то блокчейн Ethereum может стать намного более безопасным.

 

Источник

 



Рубрики:Важное, Виталик Бутерин, Сообщество, Теория, ETH, Ethereum, эфир

Метки: , ,

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s