Что такое блокчейн? (КОНКУРС)

Варис

Script Kiddie
07.07.2020
20
0
1
Первая задокументированная конструкция блокчейна была реализована в 2008 году, а первая реализация блокчейна с открытым исходным кодом была развернута в 2009 году как неотъемлемый элемент Биткойна, первой децентрализованной системы цифровой валюты для распространения биткойнов посредством одноранговой версии Bitcoin с открытым исходным кодом. одноранговое программное обеспечение. Оба были выдвинуты анонимным лицом, известным как Сатоши Накамото. Система Биткойн использует блокчейн в качестве своей распределенной публичной книги, которая записывает и проверяет все транзакции биткойнов в открытой одноранговой сетевой системе Биткойн. Замечательным нововведением блокчейна Биткойн является его способность предотвращать двойные расходы на транзакции с биткойнами, в рамках полностью децентрализованной одноранговой сети, не имеющей отношения к какой-либо доверенной центральной власти.

Что же такое блокчейн? В качестве безопасного реестра блокчейн организует растущий список записей транзакций в иерархически расширяющуюся цепочку блоков, каждый из которых охраняется методами криптографии, чтобы обеспечить надежную целостность записей транзакций. Новые блоки могут быть добавлены в глобальную цепочку блоков только после их успешного соревнования с децентрализованной процедурой консенсуса. Конкретно, помимо информации о записях транзакций, блок также поддерживает хеш-значение всего блока, которое можно рассматривать как его криптографическое изображение, плюс хеш-значение его предыдущего блока, которое служит криптографической связью с предыдущим. Децентрализованная процедура консенсуса обеспечивается сетью, которая контролирует
(i) допуск новых блоков в цепочку блоков,
(ii) протокол чтения для безопасной проверки цепочки блоков и
(iii) согласованность содержимого данных записей транзакций, включенных в каждая копия блокчейна поддерживается на каждом узле.

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


1598520236503.png
Рисунок 1

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


Как работает блокчейн

1598608086382.png

Блокчейн функционально служит распределенной и безопасной базой данных журналов транзакций. В сети Биткойн, если клиент A хочет отправить некоторые биткойны другому клиенту B, он создаст транзакцию биткойнов клиентом A. Транзакция должна быть одобрена майнерами, прежде чем она будет зафиксирована сетью Биткойн. Чтобы запустить процесс майнинга, транзакция транслируется на каждый узел в сети. Те узлы, которые являются майнерами, будут собирать транзакции в блок, проверять транзакции в блоке и транслировать блок и его проверку, используя протокол подтверждения (он же Proofof Work), чтобы получить одобрение от сети. Когда другие узлы проверяют, что все транзакции, содержащиеся в блоке, действительны, блок может быть добавлен в цепочку блоков. Рисунок 1 иллюстрирует этот процесс. Только когда «блок», содержащий транзакцию, будет одобрен другими узлами и добавлен в цепочку блоков, эта передача биткойнов от A к B станет окончательной и законной. Три основных и важных возможности, которые поддерживаются реализацией блокчейна в Биткойне: (1) хранилище с хеш-цепочкой, (2) цифровая подпись и (3) консенсус о приверженности для добавления нового блока в глобально-цепочечное хранилище. Благодаря элегантному сочетанию набора популярных методов безопасности, таких как цепочка хеширования, дерево Меркла, цифровая подпись, с механизмами консенсуса, цепочка блоков биткойнов может предотвратить как проблему двойного расходования биткойнов, так и остановить ретроспективную модификацию любых данных транзакции в block после того, как блок был успешно зафиксирован в цепочке блоков.

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

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

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

2.1.2 Цифровая подпись. Цифровая подпись устанавливает действительность части данных с помощью криптографического алгоритма. Это также схема проверки того, что часть данных не была изменена. Схема цифровой подписи состоит из трех основных компонентов. Первый компонент - это алгоритм генерации ключей, который создает два ключа: один используется для подписи сообщений и хранится конфиденциально и называется закрытым ключом; другой становится общедоступным, поэтому он называется открытым ключом и используется для проверки того, имеет ли сообщение подпись, подписанную соответствующим закрытым ключом. Второй основной компонент - это алгоритм подписи. Он создает подпись во входном сообщении, подтвержденном с помощью данного закрытого ключа. Третий основной компонент - алгоритм проверки. Он принимает в качестве входных данных подпись, сообщение и открытый ключ, проверяет подпись сообщения с помощью открытого ключа и возвращает логическое значение. Четко определенный и безопасный алгоритм подписи должен иметь два свойства. Первое свойство - действительные подписи, должны поддаваться проверке. Второе свойство - подписи экзистенциально неподдающиеся подделке. Это означает, что злоумышленник, у которого есть ваш открытый ключ, не может подделать подписи для некоторых сообщений с огромной вероятностью.

Алгоритм цифровой подписи с эллиптической кривой (ECDSA). Блокчейн, используемый в Биткойне, использует ECDSA в качестве схемы цифровой подписи для подписания транзакций. Благодаря использованию ECDSA по стандартной эллиптической кривой «secp256k1» для блокчейна Биткойна обеспечивается 128 бит безопасности. ECDSA оказывается устойчивым к подделке при наличии атаки с выбранным сообщением, основанной на общей группе и хэш-функции устойчивости к коллизиям. Таким образом, схема цифровой подписи типа
ECDSA должен быть устойчивым к атаке с выбранным сообщением против законного объекта C, направленной на создание действительной подписи в невидимом сообщении M, после того, как злоумышленник получил подпись объекта C, отправив набор выбранных зондирующих запросов для набора сообщений (не в том числе М).

Публичные ключи как псевдонимы. Преимущество использования цифровой подписи заключается в эффективной проверке подлинности сообщения с помощью инфраструктуры открытого ключа (PKI), так что автор сообщения подписывает его своим закрытым ключом перед его отправкой; получатель этого подписанного сообщения может использовать открытый ключ отправителя для подтверждения действительности сообщения. В большинстве сценариев приложений можно получить пару ключей от доверенной третьей стороны. PKI используется для управления открытыми ключами посредством установления обязательного соглашения между соответствующими идентификаторами объектов (например, именем, электронной почтой и идентификатором) и их открытыми ключами. Такое связывание осуществляется путем регистрации и выдачи сертификатов в центре сертификации (CA). Процесс проверки подписи автоматически переводится в проверку личности подписавшего на основе уровня гарантии привязки. Таким образом, в этих сценариях открытый ключ можно рассматривать как удостоверение личности. В то время как блокчейн Биткойна использует децентрализованное управление идентификацией, не имея центрального органа для регистрации пользователя в системе. Пары ключей генерируются самими пользователями. Пользователи могут генерировать пары ключей - сколько угодно. Эти идентификаторы (хэши открытых ключей) называются адресами в Биткойне. Поскольку централизованное управление открытыми ключами отсутствует, эти идентификаторы фактически являются псевдонимами, созданными пользователями.

2.1.3 Консенсус. В контексте децентрализованной цепочки блоков, когда новый блок передается посредством широковещательной трансляции в сеть, каждый узел имеет возможность добавить этот блок в свою копию глобального реестра или проигнорировать его. Консенсус используется, чтобы стремиться к тому, чтобы большая часть сети согласилась на единое обновление состояния, чтобы обеспечить расширение глобального реестра (блокчейн) и предотвратить нечестные попытки или злонамеренные атаки. Конкретно, учитывая, что блокчейн - это огромный общий глобальный реестр, каждый может его обновить. Состязательное нарушение может произойти, когда узел решает вмешаться в состояние своей копии глобального реестра, или когда несколько узлов тайно пытаются совершить такое вмешательство. Например, если Алиса отправляет Бобу 10 биткойнов из своего кошелька, она хотела бы быть уверенной, что никто в сети не сможет вмешаться в содержимое транзакции и изменить 10 биткойнов на 100 биткойнов. Чтобы блокчейн мог функционировать в глобальном масштабе с гарантией безопасности и правильности, общедоступный реестр нуждается в эффективном и безопасном алгоритме консенсуса, который должен быть отказоустойчивым и гарантировать, что (i) все узлы одновременно поддерживают идентичные цепочки блоков и (ii) он не полагается на центральную полномочия, позволяющие злонамеренным противникам нарушать процесс координации достижения консенсуса. Короче говоря, каждое сообщение, передаваемое между узлами, должно быть одобрено большинством участников сети посредством соглашения на основе консенсуса. Кроме того, сеть в целом должна быть устойчивой к частичным сбоям и «атакам», например, когда группа узлов является вредоносной или когда передаваемое сообщение повреждено. Хороший механизм консенсуса, используемый в реализации блокчейна, также обеспечивает надежный регистр транзакций с двумя важными свойствами: постоянство и живучесть. Настойчивость гарантирует согласованный ответ системы относительно состояния транзакции.

Например, если один узел в сети заявляет, что транзакция находится в «стабильном» состоянии, то другие узлы в сети также должны сообщать о ней как о стабильной, если их запросили и ответили честно. Жизнеспособность утверждает, что все узлы или процессы в конечном итоге соглашаются на решение или значение. Выражение «в конечном итоге» означает, что для достижения соглашения может потребоваться достаточно времени. Сочетая постоянство и живучесть, он обеспечивает надежность реестра транзакций, так что только подлинные транзакции утверждаются и становятся постоянными. Таким образом, роль блокчейна в системе Биткойн заключается в замене централизованной базы данных на авторитетный контроль доступа. После того, как некоторые данные были записаны в блок глобальной бухгалтерской книгицепочке, ее должно быть «невозможно» изменить цепочку блоков, и путем обеспечения согласия большинства в отношении действительности обновлений посредством консенсуса, это обеспечивает состояние согласованности и предотвращает проблему двойных расходов.
 
Последнее редактирование:

admin

Administrator
Команда форума
05.03.2020
1 844
11
78
Будет допущена, если дополнишь. Сильно маленькая.
 

admin

Administrator
Команда форума
05.03.2020
1 844
11
78
Другое дело. К КОНКУРСУ ДОПУЩЕНО
 

Об LS-LA

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

About LS-LA

  • We, a group of like-minded people, whose main goal is to increase the level of knowledge and skills.
    Not forgetting about everyone’s material well-being)

Быстрая навигация

Пользовательское меню