Упрощенная модель
Давайте смоделируем ситуацию упрощенной блокчейн-системы. Представьте, что яхта с капитаном и тремя бизнесменами на борту потерпела крушение и все четверо вместе с вещами были выброшены на необитаемый остров.
Один из бизнесменов (Петя) предложил второму (Коле) заплатить 100 долларов за его зонтик от солнца. Но так как денег с собой ни у кого не было, решили оформить сделку распиской, а оплатить деньгами после возвращения. Написали четыре расписки – чтобы у каждого был свой экземпляр на случай утери кем-либо. Капитан заверил все расписки печатью. Потом Коля захотел купить у третьего бизнесмена (Вани) солнечные очки. Сделку тоже оформили расписками в четырех экземплярах. Для удобства каждый из четырех завел специальную папку для расписок. Таким же образом через расписку Ваня купил у Пети автомобиль, а Петя у Коли – гараж. Все расписки заверялись у капитана и подшивались в папки. Когда первая папка заполнилась, все завели вторую папку, а первые капитан упаковал и опечатал. Однако стоит заметить, что абсолютно одинаковые папки хранились у всех троих хозяев.
В этой ситуации легко провести аналогию с блокчейн-системой. Здесь так же, как и в блокчейне, присутствует децентрализация, поскольку у каждого бизнесмена есть все расписки, выданные на острове, и каждый хранит папку в своем потайном месте. Это защищает от утери или умышленной порчи документов. Есть аналог верификации – печать капитана, удостоверяющая, что право на зонтик перешло от Коли к Пете. Есть аналог баз данных блокчейна или ноды – это документы. Самого капитана можно сравнить с майнером, выполняющим проверку транзакций (выдачей расписок) и блоков (папок с расписками). Как и в реальном блокчейне, передача прав на имущество бизнесменов осуществлялась в отсутствие доступа к ним самим (машина, гараж). Потому что транзакция – это передача прав на активы, а не самих активов.
Ознакомившись с упрощенной моделью блокчейна, давайте детально разберем, для чего реализована эта технология и какие она дает преимущества по сравнению с традиционными способами передачи прав на что-либо от одного человека к другому.
Дублирование
Основа основ блокчейна – это невозможность изменить какой-либо блок (записи, информацию), не внеся изменения во все предыдущие блоки со дня создания блокчейна, а также многократное дублирование (создание полных копий в другом месте) всех блоков. Такие же принципы являются основой существования Web 3.0 в целом. Благодаря этому дублированию обеспечивается надежность системы – неисправность одного или нескольких узлов не нарушит целостности всего блокчейна, в результате чего не пропадет нужная информация и ее нельзя будет подделать или изменить. И если в один или несколько блоков злоумышленники попытаются внести ложные данные, то они не будут приняты остальными узлами, а данный блок будет исключен из сети блокчейна. К примеру, если майнер-злоумышленник, чтобы получить вознаграждение, сгенерирует, а по сути выдумает, ложный блок и отправит его в сеть блокчейна, то другие майнеры сразу же обнаружат его замыслы и исключат из своей сети. Как иммунная система отторгает чужеродные клетки, попавшие в организм, так и блокчейн отторгнет узлы, пытающиеся добавить ложные блоки.
Любой человек знает, что от квартиры полагается иметь запасной ключ, а от неприятностей – запасной план. У воинов Древнего Рима были запасной меч и дополнительные дротики. Запасной парашют и два двигателя в самолете – это тоже примеры страховки методом дублирования. Или взять космическую ракету. Она стоит миллионы. Поэтому все основные узлы в ней имеют дублеров. И если вдруг один узел не срабатывает, то тут же включается второй, причем без задержки, практически одновременно с первым. Чем больше таких дублирующих блоков, тем надежнее ракета.
Дублирование делает надежнее, безотказнее не только технические системы, но и информационные, такие как блокчейн. И тут возникает вопрос: сколько нужно дублирующих блоков, чтобы система работала без сбоев? Можно ли сделать вывод, что в целом система работает корректно, если часть блоков работает неправильно?
Представим, что есть распределенная сеть, т. е. несколько компьютеров, серверов, которые находятся в абсолютно разных точках земного шара, объединенных в одну цепь. От каждого из них должно быть разослано какое-то сообщение всем остальным компьютерам. А те, получив его, в свою очередь тоже продолжат рассылку. Но некоторые из них могут принадлежать злоумышленникам, а некоторые просто не работать. Спрашивается: какая часть серверов должна функционировать нормально, чтобы те инструкции, что содержатся в рассылаемом сообщении, были выполнены правильно, несмотря на противодействие и сбои? Ведь распределенная сеть компьютеров, участвующих в блокчейне, не должна зависеть от злого умысла или халатности одного или ряда участников. Есть ли математически доказанное решение, как обеспечить консенсус в условиях децентрализации и отсутствия доверия между участниками системы? Такое решение позволило бы участникам достигнуть единства относительно того, какие транзакции считать верными.
Византийская задача
Оказалось, что эта задача не нова. Как логическая дилемма она была придумана в 1982 году и получила название «Задача византийских генералов». Суть ее в том, что у каждого генерала есть своя армия и они должны вместе выполнить приказ либо на атаку, либо на отступление. Несогласованность действий чревата разгромом армий. Но среди генералов могут быть предатели, и они могут передавать другим генералам искаженные приказы.
Математически доказано, что для успеха необходимо, чтобы более чем две трети генералов (67 из 100) были верными. Тогда истинный приказ будет выполнен, несмотря на козни предателей.
Применительно к блокчейну генерал – это сетевой узел. Чтобы признать транзакцию действительной и она могла попасть в блокчейн, надо, чтобы две трети плюс один узел подтвердили это. Данный процесс называется достижением консенсуса
Конец ознакомительного фрагмента.
Текст предоставлен ООО «Литрес».
Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.