Нужен диплом по профессии? Проф. переподготовка дистанционно! 800 актуальных профессий! Быстро! По выгодной цене!

Что такое блокчейн и как он устроен

Содержание

Спросите у 10 человек: “что такое технология блокчейн”, и вы получаете 10 разных ответов — даже среди специалистов в области криптовалют. Наилучшим подходом к формированию истинного понимания блокчейна является поэтапное понимание лежащих в его основе технологий.

Понимание 3 основных технологий, лежащих в основе Биткоина

Поэтому в этой статье я рассмотрю три основных составляющих технологии блокчейн: собственно блокчейн, одноранговые сети и механизмы достижения консенсуса. Биткоин не смог бы существовать, если бы не существовало хотя бы одной из этих составляющих. Начнём с собственно блокчейна.

Если вы не можете объяснить что-то просто и доходчиво, значит вы сами недостаточно хорошо это понимаете — Альберт Эйнштейн

Что такое, собственно, блокчейн

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

Этот файл можно сравнить с книгой, которая никогда не заканчивается.

На каждой странице книги имеется информация и номер страницы внизу. Благодаря этому номеру страницы, вы сразу же узнаете какому месту в книге относится данная страница. Страница 49 вполне очевидно находится между страницами 48 и 50.

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

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

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

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

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

Это означает, что, если я хочу проверить, провёл ли кто-либо транзакцию в мой адрес или нет, я должен иметь возможность проверить состояние блокчейна. Чтобы это сделать, этот реестр должен быть общедоступным. Здесь вступают в игру одноранговые (peer-to-peer) сети.

Понимание роли одноранговых сетей

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

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

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

  • Всегда можно проверить состояние блокчейна самостоятельно с помощью блокчейн обозревателя;
  • Не нужно полагаться на какую-либо одну сторону, чтобы узнать истинное состояние блокчейна;
  • Не требуется полагаться на один сервер, чтобы удостовериться в безопасности данных блокчейна;
  • Для взлома блокчейна злоумышленнику придётся взломать тысячи компьютеров одновременно вместо одного сервера;
  • Можно быть уверенным, что данные блокчейна никогда не будут удалены, потому что их придётся удалить со всех узлов.

Это всё очень важно, но одно это ещё не означает, что безопасность блокчейна поддерживается на достаточном уровне для его реального применения по хранению ценностей или проведению транзакций с ними.

Например, как мы можем знать, что данные (транзакции) в блокчейне верны? Как можно знать, что в блоках отсутствуют недействительные транзакции? И если имеются разные версии блокчейна, как узнать, которая их них представляет истинное состояние блокчена?

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

Понимание механизма достижения консенсуса

Пиринговый механизм уже применялся в 1999 году музыкальным онлайн-сервисом Napster.

Блокчейн также существовал ещё до Биткоина.

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

«Цель алгоритма достижения консенсуса заключается в том, чтобы обеспечить безопасное обновление состояния в соответствии с некоторыми конкретными правилами переходов состояний, где право на выполнение переходов состояния распределяется между ( … ) пользователями, которым предоставляется право на коллективное выполнение переходов состояний посредством определённого алгоритма», — Виталик Бутерин

Теперь, если вы ещё не совсем поняли идею, механизм достижения консенсуса — это просто набор правил, которые согласовываются узлами сети посредством программного обеспечения сети. Эти правила обеспечивают, чтобы узлы сети работали должным образом и оставались синхронными.

Протокол алгоритма достижения консенсуса устанавливает следующие правила:

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

Добавление блоков в цепочку блоков

Различные блокчейны по-разному добавляют блоки к цепочкам блоков. Наиболее известным механизмом достижения консенсуса является Доказательство Работы (Proof of Work, PoW)

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

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

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

После этого, все майнеры начинают «добывать» следующий блок.

Доказательство Работы в сети Биткоин — не единственный механизм достижения консенсуса. Доказательство Доли (Proof of Stake, POS) также широко используется в распределенных реестрах. В механизме Доказательства Доли майнер может «делать ставки» своими монетами для получения шанса быть выбранным сетью для добавления следующего блока. В каком-то смысле делающий ставку говорит: «Ставлю мои монеты на то, что я правильно добавлю этот блок». И если он солжёт, то потеряет свои монеты.

Продолжается дискуссия относительно того, какой механизм достижения консенсуса лучше. Всё-таки, несмотря на то, как создаётся блок, другие узлы в сети всё же должны иметь возможность решать является ли блок действительным или нет.

Действительность блоков

Когда майнер решает головоломку и «добывает» блок, все узлы в сети проводят проверку действительности блока и добавляют его к своей копии блокчейна. Узлы в первую очередь должны достичь консенсуса относительно действительности блока. Только после этого сеть синхронизируется и состояние блокчейна обновляется.

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

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

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

Теперь, допустим, я получил 1 биткоин, который я позже отправляю Алисе. Затем я пытаюсь отправить тот же биткоин Бобу. Как только блок с моей первой транзакцией будет добавлен в цепочку, все узлы обновят блокчейн, чтобы отразить, что у меня больше нет этого биткоина. Любой вновь «добытый» блок, который будет содержать мою транзакцию с Бобом, будет просто отклонён узлами. Программное обеспечение узлов определяет, что блок не соответствует правилам, таким образом, узлы не добавляют этот блок и не обновляют блокчейн.

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

Как разрешаются конфликты при определении истинности

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

Мы называем это (непреднамеренным) «ветвлением»: блокчейн разветвляется на две разных цепочки. Кто получил мой биткоин, Элис или Боб? Какой из двух цепочек является «истинным» блокчейном?

Как правило, все консенсусные протоколы решают эту проблему простым правилом: выигрывает самая длинная цепочка.

Визуализация ветвления блокчейна (нормальное случайное ветвление)

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

Откуда мы знаем, что именно так всё и произойдёт?

Так происходит от того, что майнеры являются экономическими субъектами, которые действуют в своих личных интересах. Майнер не заинтересован в «добывании» на ответвлённой цепочке, зная, что она отомрёт. Транзакции на ответвлённой цепи никогда не регистрируются на основной цепочке, что означает, что майнеры, добывающие блоки на ответвлённой цепи, не получат вознаграждение за свою работу. Для майнера альтернативная стоимость добывания блоков, которые не будут включены в основную цепочку, слишком высока — поэтому незачем тратить на выполнение этой работы своё время и деньги.

В редких случаях на ответвлённой цепочке может оказаться большое количество майнеров или майнеров со значительными вычислительными ресурсами. В этом случае может потребоваться некоторое время, прежде чем станет ясно, какая же цепочка является основной. Житейская мудрость подсказывает, что по этой причине разумно переждать 6 блоков, перед тем как считать транзакцию подтверждённой.

Визуализация редко случающегося расширенного ветвления блокчейна. В ответвлении почти никогда не бывает больше 5 блоков

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

Заключение

Всё вышесказанное следует рассматривать как весьма краткое введение в работу распределенных реестров. Теперь вы можете понять, почему «блокчейн» — это не совсем точное название для распределенных реестров, которые мы видим сегодня.

Однако, в следующий раз, когда кто-то упомянет о блокчейнах на вечеринке, пожалуйста, не повторяйте то, о чём я рассказал сегодня, а просто скажите:

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

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

Источник: cryptocurrency.tech

Ссылка на основную публикацию