Скачать книгу

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

      Любой человек знает, что от квартиры полагается иметь запасной ключ, а от неприятностей – запасной план. У воинов Древнего Рима были запасной меч и дополнительные дротики. Запасной парашют и два двигателя в самолете – это тоже примеры страховки методом дублирования. Или взять космическую ракету. Она стоит миллионы. Поэтому все основные узлы в ней имеют дублеров. И если вдруг один узел не срабатывает, то тут же включается второй, причем без задержки, практически одновременно с первым. Чем больше таких дублирующих блоков, тем надежнее ракета.

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

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

Византийская задача

      Оказалось, что эта задача не нова. Как логическая дилемма она была придумана в 1982 году и получила название «Задача византийских генералов». Суть

Скачать книгу