Rambler's Top100
Блоги Николай НОСОВ

Блокчейн для чайников

  08 июля 2021 Страница персоны

Обеспечение доверия

С древних времен люди были озабочены проблемой сохранения исторической правды, того, как воспринимались события современниками, а не неблагодарными потомками, переписывающими историю в угоду текущим политическим предпочтениям.  Это сделать было непросто. Таблички с клинописью шумеров бились и заносились песком, папирусы рвались. Радикальный подход использовали египетские фараоны, выбивавшие слова правды о своих великих деяниях на стенах храмов и обелисков. Но и это не всегда помогало – следующие фараоны сбивали надписи и выбивали что-то свое.

Информацию на одном обелиске можно уничтожить. Но если обелисков с аналогичными записями много, и они расположены в разных странах, задача становится более трудной. С соседними правителями придется договариваться. И чем их больше – тем договориться будет трудней. Да и зачем им заботиться о чужой славе? Другое дело, если на обелисках (узлах  или в современной терминологии - нодах распределенной базы данных) будет вырублена правда и об их победах. Тогда имеет смысл поддерживать и свой узел (обелиск).

Блокчейн можно сравнить с обелиском, состоящим из поставленных друг на друга блоков. Нижний блок вытащить нельзя – развалится вся пирамида. Чем больше блоков стоит над вашим блоком с «правдой» – тем трудней работы по его замене, а ведь сделать это надо еще и на всех остальных пирамидах. 

На каменном блоке могут быть выбиты не только деяния фараонов, но и записи обычных людей. Например, Петя передал право собственности на дачный участок Боре. Да и не только важные – «Здесь был Вася» тоже подойдет. Главное, чтобы Вася договорился с создателем блока, в современной терминологии – «майнером», чтобы тот внес запись и организовал расстановку новых блоков на всех пирамидах.

Блокчейн - как колонны

 

Стран и пирамидок много. Майнеров тоже. Каждый хочет получить деньги за установку вырубленного им блока. А блоки еще надо развести по разным «обелискам» - на это требуется время. В результате получается ситуация, когда в верхней части обелисков разных стран стоят разные блоки. И строителям надо прийти к соглашению (консенсусу) – какие блоки оставить, ведь в итоге все «обелиски» (версии правды) должны быть одинаковыми.

Самый демократичный выбор – по затраченной на строительство работе (proof of work, PoW). Майнер, быстрее правильно вырубивший очередной блок, успеет развести его по большему числу «пирамидок». Там где будут установлены его блоки – майнеры начнут делать следующие. Строитель пирамидки, которому поступили блоки от конкурирующих майнеров, выберет блоки от более высокой пирамиды, ведь ему не хочется напрасно делать тяжелую работу и он сделает ставку на лидера. Каждый поддерживает более перспективную версию итоговой пирамидки, таким образом, происходит своего рода заочное голосование строителей, причем ответственное голосование – они отвечают за правильный выбор своей тяжелой работой.  С большей вероятностью победит майнер, первым вырубивший очередной блок, но вероятность успеха будет зависеть от временного разрыва с конкурентами и скорости работы поддержавших его «версию правды» строителей других пирамидок.

Консенсус в блокчейне

Проблемы консенсуса

В блокчейне Bitcoin считается, что шесть поставленных сверху блоков обеспечивают неизменность расположенной ниже конструкции. Гарантией служат затраченные на их изготовление мощности. Впрочем, в экстраординарной ситуации, затрагивающей интересы большинства майнеров, не исключен вариант, когда владельцы пирамидок договорятся и снесут большее количество блоков (хардфорк). В блокчейне Ethereum такое соглашение было достигнуто после успешной атаки злоумышленника на проект The  Dao. В пересчете на курс на начало атаки речь шла о краже суммы порядка $50 млн., были затронуты финансовые интересы значительного количества майнеров, но и в такой ситуации часть игроков не согласилась с решением и продолжила строительство своих пирамидок, теперь уже отличающихся версией правды. Это крайне редкая ситуация, так что если в записи будет ошибка, то исправить ее задним числом будет нельзя. 

Другая проблема – майнеры могут объединиться в артели (пулы) и совместно делать блоки, деля выручку между собой. Если такая «артель» займет доминирующее положение на рынке (сосредоточит в своих руках больше половины мощностей), то сможет навязывать другим игрокам свою версию правды (атака «50 процентов»). Опасность не гипотетическая – больше половины вычислительных мощностей блокчейна Bitcoin находится в Китае. Впрочем, пока это к проблемам не приводило.

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

Многократное дублирование записей в независимых «пирамидках», зависимость новых блоков от старых (если вытащить старый блок – все пирамидка развалится) и метод консенсуса при выборе новых блоков – главные принципы построения блокчейна.

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

Новый пользователь блокчейн-сети получает хранилище, что-то вроде почтового ящика в подъезде дома, и ключи (открытый и закрытый).  Любой, кто знает адрес почтового ящика, может бросить в него деньги или письмо, но достать полученное может только владелец ключа. Это закрытый ключ, который нельзя терять или передавать другому – в противном случае помочь никто человеку не сможет.

С помощью закрытого ключа человек подписывает сообщение, передаваемое в транзакции (запись для выбивания на блоке), по сути - шифрует своим закрытым ключом хеш сообщения. Под хешированием  подразумевается  преобразование  произвольного объема данных в битовую строку заданной длины. Например, можно взять следующую хеш-функцию – первых три цифры суммы порядковых номеров букв в русском алфавите. Тогда слово «дар» преобразуется в  «024». (5(«д») + 1(«а») + 18 («р»)= 24). В блокчейне биткоина в качестве хеш-функции используется SHA-256.

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

При использовании PoW майнеру приходится решать сложную вычислительную задачу – аналог тяжелой работы высекания каменного блока. Подобрать значение служебного поля так, чтобы итоговое значение хэш-функции блока, включающего при расчете хэши транзакций и хэш предыдущего блока (привязка к цепи (chain), аналог установки блока поверх блока) было меньше заданного значения, например, начиналось с десяти нулей. По-сути, конкурирующие за право подписать блок и получить за это вознаграждение майнеры платят за это используемой вычислительной мощностью. Если повезет и удастся первым решить задачу – затраты на вычисления окупятся – в момент написания заметки вознаграждение за блок превышало шесть биткоинов ( более $200 000). А в день формировалось более ста блоков.

Экономия vs безопасность

В  методе PoW расходуется огромное количество ресурсов, причем очень неэффективно - все майнеры «высекают» блоки, но в итоговом варианте останется только один. По данным исследователей Кембриджского университета за прошедший в год на производство биткоина ушло больше электроэнергии, чем потребила вся Аргентина. Но метод  доказал свою надежность и безопасность. Он используется в наиболее популярных блокчейнах – Bitcoin и Ethereum, хотя и подвергается критике за расточительность, особенно в условиях борьбы за экологию и сокращение потребляемых ресурсов.

Наиболее популярные альтернативные методы: подтверждения долей (Proof of Stake, PoS) и его вариация - делегирования подтверждения долей (Delegated Proof of Stake, DPoS).  В них не тратятся огромные вычислительные мощности, строители не соревнуются в скорости «высекания» тяжелых блоков, сложность задачи не важна. Собирающим блок из транзакций делегатам, за которых проголосовали участники в DPoS  или непосредственно участникам – владельцам кошельков (PoS), уже не приходится майнить, тратя огромные вычислительные ресурсы в борьбе за право первым найти заветную цифру. Они выбираются по установленным правилам (протоколу), при этом вероятность выполнения работы будет выше у участника, внесшего большую долю в проект.

В терминологии PoS  строителя блока называют  не майнером (не надо майнить - перебирать множество вариантов в поисках заветной цифры), а форджером.   Форджеры открытыми ключами пользователей проверяют корректность записей и наличие денег в кошельках, а потом своим закрытым ключём подписывают блок. Дальше блоки конкурируют, как и в PoW.  Форжер победившего блока получает комиссии.

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

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

Кроме того в PoS-системах  существует проблема централизации капитала. Чем больше денег, тем больше можно построить блоков и заработать на комиссиях за транзакции. В итоге работу сети контролирует ограниченный круг лиц, что особенно  часто проявляется в  DPоS – «делегированном» варианте PoS.

Не всегда, но нужен

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

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

 

Оставить свой комментарий:

Для комментирования необходимо авторизоваться!

Комментарии по материалу

Данный материал еще не комментировался.

Продолжение использования сайта пользователем интерпретируется как согласие на обработку фрагментов персональных данных (таких, как cookies) для целей корректной работы сайта.

Согласен