Домой Технологии и рынок Что такое блокчейн? От задачи византийских генералов до консенсуса

Что такое блокчейн? От задачи византийских генералов до консенсуса

0

Если совсем по-простому, блокчейн – это некоторые данные, которые обрабатываются и записываются группой компьютеров. При этом они записываются: неизменяемо, прозрачно, децентрализовано.

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

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

Технология блокчейна всё ещё находится на стадии активных исследований и разработок, чтобы стать более полезной в повседневной жизни.

Введение в распределённые системы

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

Распределённой называется такая система, где аппаратные или программные составляющие, находящиеся на сетевых компьютерах, контактируют и координируют свои действия, только обмениваясь сообщениями. Ключевые характеристики распределённой системы:

  • Параллельность;
  • Отсутствие глобальных часов;
  • Независимость отказов.

Параллельность

Параллельность означает, что на разных машинах одновременно происходят разные вычисления. Это может казаться очевидным, но если рассмотреть, как должны взаимодействовать разные машины, возникают сложности (см. ниже).

Отсутствие глобальных часов

В распределённой системе каждый участник, или машина, имеет равный вес в определении того, что верно, а что – нет. Машина А может считать, что сейчас 11:13, а машина Б 11:14. Сетевая задержка может ещё больше усугубить ситуацию. Даже если на обеих машинах одинаковое локальное время, они не будут знать, сколько времени сеть передавала данные, поэтому, когда машина должна подтвердить время своего соседа, всегда присутствует случайный шум. В распределённой системе нет единого источника истины.

Независимость отказов

Допустим, машине А нужны данные от машины Б, чтобы продолжать работу, поэтому ей нужно связаться с машиной Б и дождаться ответа. Однако машина Б может дать сбой (например, выключиться из-за перегрева), и сеть может произвольно создать задержку или даже оборвать связь. Проектировщик сети должен тщательно продумать обработку коммуникаций и реакции на отказы, чтобы обеспечить бесперебойную работу системы.

Задача византийских генералов

Задача византийских генералов – это состояние компьютерной системы, в частности распределённой вычислительной системы, где компоненты могут дать сбой и информация о том, дал ли компонент сбой, несовершенна.

Для иллюстрации задачи приведём следующую историю.

Группа генералов, каждый из которых командует частью византийской армии, окружила город. Им нужно решить, атаковать или отступить. Но, какое бы решение они ни приняли, главное – достичь консенсуса. Однако достичь консенсуса сложно, потому что генералам не известно решение других генералов.

Рассмотрим следующий случай:

  • Есть три генерала: А, Б и В.
  • Генералы должны атаковать врага одновременно, иначе их может ждать неудача.
  • У генералов нет эффективного способа мгновенно общаться.
    • Поэтому им нужно послать другим гонца с посланием.
  • Генералам нужно достичь консенсуса до атаки.
    • Им нужно подтверждение, что другие генералы будут атаковать в то же время.

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

Источник: bitnovosti.com