Комментарии 27
Вот проблема византийских генералов (в моем понимании) в том, что для решения «в лоб» там нужна передача информации «от каждого к каждому». То есть для N генералов будет порядка N2 обменов пакетами. Несложно представить во что это превратится, если число участников будет измеряться миллионами.
А если отходить от этого, то да — появляются «доверенные узлы», майнеры и прочее. Такая сеть еще децентрализованная, но уже с элементами иерархии. И опять у власти оказываются большие пулы, большие сервера, а значит и корпорации.
К сожалению, вряд ли вообще возможно существование финансовой системы, в которой отдельные узлы не проигрывали бы синхронно действующим группам узлов. А значит, любая децентрализация финансов — временное явление, связанное с новизной технологии.
Это не отменяет отсутствия пометки о том, что это перевод (и качество его таки ужасно). А если это не перевод — все как-то совсем плохо.
«и в течение многих лет технология blockchain останавливается»
Пара вывертов перевода из первых абзацев. Согласитесь, не по человечески выглядит.
Касательно оригинала — он здесь, но например лично у меня на этом сайте ничего не открывается, редирект на главную страницу с любой ссылки.
Короче странная статья.
Да нет, автор просто гонит :)
> Ему просто невыгодно включать в блок непроверенную или неправильную информацию, если такой блок не будет принят большинством других узлов сети, получается что он зря потратил свои ресурсы (PoW) на формирование блока.
Что технически и фактически совершенно равноценно включению неправильного nonce, то есть можно и не майнить. Любой пир получивший невалидный блок отсоединится от спамера. В такой ситуации разговор об incentives как мне кажется не верен. Мы могли бы говоорить о цензуре (задержка транзакций) или атаке 51% (откат транзакций), но в PoW нет возможности совершать транзакции не установленные протоколом. Не «не выгодно» а «невозможно».
В результате практические решения проблемы византийских генералов, были сосредоточены на различных методах выбора узла-лидера, который отправлял бы блок проверенной информации всем остальным узлам вместо того, чтобы пытаться достичь консенсуса по содержанию блока.
То, что leader-based PBFT-like протоколы (Tendermint кстати тоже к ним принадлежит) на данный момент очень популярны для всяких DLT не означает, что это единственное решение. На самом деле с тех же 80-х годов существует отдельная ветка исследований действительно асинхронных протоколов достижения консенсуса, в которых теорема FLP обходится недетерминированностью количества раундов за которые протокол сойдется, и 2016 вышла публикация с описанием протокола Honeybadger BFT, в котором ни в какой момент времени нет выделенных мастер-узлов, который не требует настройки никаких таймаутов, и имеет сравнимую с PBFT производительность. Причем этот Honeybadger на самом деле является развитием протокола SINTRA, опубликованного еще в 2002 году (всего на три года позже PBFT).
Именно книжки/учебника по теории не знаю, сам собирал информацию по статьям и презентациям. Если интересна ветка PBFT, то вероятно имеет смысл почитать:
- "мемуары" Лисков как она дошла со своим студентом до PBFT
- собственно дисер этого студента с подробным описанием PBFT
- некоторые попытки улучшить PBFT:
- Aardvark: 2009: Clement et al, “Making Byzantine Fault Tolerant Systems Tolerate Byzantine Faults”
- Spinning: 2009: Veronese et al, “Spin One's Wheels? Byzantine Fault Tolerance with a Spinning Primary”
- Tendermint: 2016: Buchman “Tendermint: Byzantine Fault Tolerance in the Age of Blockchains”
Если интересно в принципе какие-то фундаментальные вещи, то вот например несколько статей:
- 1982: Lamport, Shostak, Pease, “The Byzantine Generals Problem”
- 1985: Fischer, Lynch, Paterson “Impossibility of Distributed Consensus with One Faulty Process”
- 1988: Dwork, Lynch, Stockmeyer “Consensus in the Presence of Partial Synchrony”
Если интересно про Honeybadger и асинхронщину, то:
- собственно статья: https://eprint.iacr.org/2016/199.pdf
- в статье в списке литературы куча всякого полезного на самые разные темы, если интересна именно асинхронщина, то имеет смысл посмотреть статьи авторов Ben Or, Bracha, Cachin, Kursawe, Mostefaoui
- еще много полезной информации и ссылок в репозитории с rust-реализацией honeybadger: https://github.com/poanetwork/hbbft
- может быть интересным формальный анализ биткоина от того же Andrew Miller (который один из авторов Honeybadger): https://nakamotoinstitute.org/static/docs/anonymous-byzantine-consensus.pdf
Децентрализация: большая проблема для Blockchain