Блокчейн: фундаментальные основы для программиста

Блокчейн - основы программирования

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

Чтобы научиться решать реальные проблемы бизнеса с помощью блокчейна, нам необходимо глубокое понимание того, что такое блокчейн и как он работает. Для этого необходимо изучить блокчейн с разных точек зрения, таких как бизнес, тех­нические и юридические аспекты. Эта глава — попытка понять основы блокчейна и получить полное представление о том, как он работает.

Блокчейн — это не просто компьютерная технология, он прочно связан с деловыми функциями в повседневной жизни. В виде криптовалюты он также переплетается с экономическими принципами. В этом разделе мы сосредоточимся в основном на его технических аспектах. С технической точки зрения блокчейн представляет со­бой блестящее объединение концепций криптографии, теории игр и информатики (рис. 1).

Давайте посмотрим, какую роль эти компоненты играют в устройстве блокчейна на общем уровне, а затем углубимся в основы. Но прежде вспомним, как работали привычные централизованные системы. Традиционный подход состоял в том, что существует централизованная система, которая поддерживает только одну историю транзакций/изменений. Она должна осуществлять параллельный контроль над всей базой данных и обеспечивать доверие системе через посредников. В чем же про­блема с такой стабильной системой? В том, что приходится доверять централизо­ванной системе, честная она или нет! Кроме того, неизбежны затраты на посредни­ков, а время прохождения транзакции может быть большим по очевидным причи­нам. Теперь задумайтесь о централизации власти— полный контроль над всей системой позволяет централизованным органам правления делать практически все, что они хотят.

Ядро технологии блокчейна

Рис. 1. Ядро технологии блокчейна

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

Но что, если узел или пользователь пытается запустить атаку с двойным расходом (например, у кого-то есть только десять долларов, и он пытается одновременно за­платить эту сумму нескольким людям)? Обратите пристальное внимание — не­смотря на отсутствие достаточных средств, двойные расходы являются криптогра­фически допустимыми. Алгоритму шифрования абсолютно безразлично, сколько у вас денег.

Единственный способ предотвратить двойные расходы — сделать так, чтобы каждый узел знал обо всех транзакциях.

Однако это приводит к другой интересной проблеме. Поскольку каждый узел дол­жен поддерживать базу данных транзакций, как они могут согласовать общее со­стояние базы данных? Опять же, как система может оставаться невосприимчивой к ситуациям, когда один или несколько вычислительных узлов намеренно пытают­ся подорвать систему и внедрить фальшивое состояние базы данных? Большинство таких ситуаций относится к проблеме византийских генералов (она рассмотрена далее). В общем-то, проблема византийских генералов приобрела еще большую популярность из-за блокчейна, но фактически она известна целую вечность. Если вы посмотрите на реализацию центров обработки данных или распределенных баз данных, станет ясно, что проблема византийских генералов является очевидной и распространенной проблемой, с которой они сталкиваются при обеспечении отка­зоустойчивости. На самом деле и подобные проблемы, и их решения пришли к нам из теории игр, которая предоставляет принципиально иной подход к определению поведения системы. Методы теории игр, пожалуй, самые жесткие и циничные. Обычно они никогда не учитывают, является ли узел честным, злонамеренным, этичным или имеет какие-либо другие подобные характеристики, и считают, что участники действуют исключительно в соответствии с выгодами, которые они по­лучают, и не подвержены предрассудкам морали. Единственная цель теории игр в блокчейне — обеспечить стабильность системы (т. е. равновесие по Нэшу) с кон­сенсусом среди участников.

Существуют различные виды прикладных задач и ситуаций с различной степенью сложности. Соответственно, базовые протоколы криптографии и консенсуса теории игр могут быть разными в зависимости от прикладного применения. Тем не менее, общий принцип ведения согласованного реестра или базы данных проверенных транзакций всегда один и тот же. Хотя понятия криптографии и теории игр сущест­вуют уже весьма давно, именно в области компьютерных наук эти фрагменты со­единяются между собой посредством организованных структур данных и техноло­гий одноранговой сети. Очевидно, что для реализации любых логических или ма­тематических концепций в цифровом мире необходима «умная разработка программного обеспечения», охватывающая смежные области знаний. Именно бла­годаря такому подходу разработчики блокчейна включают в приложения понятия криптографии и теории игр, позволяя децентрализовать и распределить вычисления между узлами. 

Итак, теперь приступим к изучению первого краеугольного камня технологии Блокчейн - Криптографии.

Вас заинтересует / Intresting for you:

Знакомство с блокчейном: что э...
Знакомство с блокчейном: что э... 1680 просмотров Ирина Светлова Fri, 16 Oct 2020, 19:34:10
Подключение и настройка сетево...
Подключение и настройка сетево... 3511 просмотров Doctor Sat, 11 May 2019, 08:32:20
Краткий курс по операционной с...
Краткий курс по операционной с... 6146 просмотров Doctor Sun, 13 Oct 2019, 10:09:49
Что такое сети Cisco? Основные...
Что такое сети Cisco? Основные... 4481 просмотров Александров Попков Wed, 09 Oct 2019, 17:21:43
Войдите чтобы комментировать