Технология блокчейн. Реферат на тему Технология работы блокчейн-сети. Новиков Е.В.. Высшая школа промышленной политики и предпринимательства
Скачать 329.25 Kb.
|
МИНИСТЕРСТВО ОБРАЗОВАНИЯ НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное автономное образовательное учреждение высшего образования РОССИЙСКИЙ УНИВЕРСИТЕТ ДРУЖБЫ НАРОДОВ (РУДН) ВЫСШАЯ ШКОЛА ПРОМЫШЛЕННОЙ ПОЛИТИКИ И ПРЕДПРИНИМАТЕЛЬСТВА Кафедра управления цифровым предприятием в топливно-энергетическом комплексе Технология блокчейн Реферат: Технология работы blockchain-сети Выполнил студент: Новиков Евгений Викторович Учебная группа: ПЭКмд-04-22 Преподаватель: Пузырный Николай Алексеевич Москва, 2022 Оглавление Краткая история создания технологии Blockchain (Блокчейн). Устройство работы технологии Блокчейн. Одноранговые (пиринговые сети) сети. Структура блока блокчейн-цепочки. Структура транзакции блокчейн-сети. Цифровые подписи. Входы и выходы транзакций. Непреднамеренное разветвление цепи блокчейн. Заключение. Краткая история создания технологии Blockchain (Блокчейн). Последние 50 лет мировой истории были ознаменованы бурным развитием финансово-банковской сферы, предопределяющим возникновение электронных денег. В 1983 года Стефан Брэндс и Дэвид Чаум первыми предложили идею использования электронной валюты и даже описали её концепцию. Следующий существенный взнос в формирование концепции цифровых валют был сделан только в 1997 году Адамом Баков. Именно он предложил использовать систему Hashcash, которая должна была справляться с DoS атаками и противодействовать отправке спама. Именно эта система стала основой в создании блоков в цепочке блокчейна, а значит, позволила работать с первой криптовалютой в мире. Первая успешная реализация цифровой валюты была создана Вэй Дай в 1998 году и получила название b-money. Следующей попыткой стал Bit Gold, разработанный Ником Сабо в 2000 году. Обе валюты обладали большим недостатком — несовершенством системы принятия решения среди удаленных абонентов. В 2008 году Сатоши Накамото, собрав воедино наработки единомышленников, выложил в открытый доступ научную работу с описанием основных элементов блокчейна, принципов работы и математической модели сети. Нововведения этой технологии решают проблему принятия решений и обеспечивают безопасность и работоспособность сети. Это позволило в 2009 году создать первую полноценную криптовалюту — Bitcoin. Устройство работы технологии Блокчейн. Блокчейн (от англ. «Blockchain» - цепочка блоков) – это выстроенная по определённым правилам непрерывная последовательная цепочка блоков, хранящих некоторые данные, которая реплицируется на каждый из компьютеров, объединенных в одноранговую (пиринговую) сеть. Данными могут быть денежные транзакции, умные контракты либо любая другая информация нуждающаяся в независимой записи и проверке. Члены данной одноранговой сети — это анонимные лица, называемые узлами. Все коммуникации внутри сети используют асимметричную систему шифрования и хеширование, чтобы надежно идентифицировать отправителя и получателя. Когда один из узлов хочет добавить данные в блокчейн, в сети формируется новый блок и при помощи алгоритма консенсуса добавляется в цепь. 3. Одноранговые (пиринговые сети) сети. На современном рынке IT-систем существует два типа архитектур компьютерных сетей: клиент-серверная сеть (рисунок 1) и одноранговая (пиринговая) сеть (рисунок 2). Рисунок 1. Рисунок 2. Сеть с клиент-серверной архитектурой подразумевает централизованный контроль данных и доступа. Вся системная логика и информация скрыты внутри сервера, что позволяет снизить требования к производительности клиентских устройств и обеспечить высокую скорость обработки данных, но такая сеть обладает низкой отказоустойчивостью. В основе технологии блокчейн лежат одноранговые или децентрализованные сети. Такая сеть не имеет главного устройства, и все участники имеют равные права. В такой модели каждый пользователь является не только потребителем, но и сам становится поставщиком сервиса. Преимуществом такой системы является доступность данных: нет единой точки точки отказа, как в случае с базой данных, расположенной на одном сервере и высокая отказоустойчивость: при прекращении функционирования одного или нескольких узлов работоспособность сети не нарушается. 4. Структура блока блокчейн-цепочки. Технология блокчейн предполагает использование распределенной базы данных состоящей из цепочки блоков, представляющей собой связный список, в котором каждый блок содержит идентификатор предыдущего. Для идентификации каждого блока используется хеш, создаваемый при помощи криптографической функции. Хеширование — это преобразование массива входных данных произвольной длинны в (выходную) битовую строку установленной длины, выполняемое определенным алгоритмом. Криптографическая функция, воплощающая алгоритм и выполняющая преобразование, называется хеш функцией. В качестве параметра хеш-функции может быть передана строка любой длинны (одна буква или целое литературное произведение), а результатом ее работы всегда будет битовая строка строго фиксированной длины. Все хеширующие функции должны отвечать следующим требованиям: 1. Весь доступный диапазон хешей используется по максимуму. То есть, если на хеш отведено 32 байта, то разные данные дают максимально разнообразный хеш, который может являться совершенно любой комбинацией битов. 2. Любое, даже самое незначительное, изменение входных данных должно давать другой хеш. На практике возможны случаи, при котором хеш-функция преобразует несколько разных сообщений в одинаковые сводки - это называется коллизией. Вероятность возникновения коллизий используется для оценки качества хеш функций и должна стремиться к минимуму. Хеш используется для того, чтобы быстрее отличать одни данные от других без необходимости сравнивать каждый бит этих данных. Достаточно обработать эти данные один раз (вычислить их хеши) и можно сравнивать только их, а это гораздо быстрее. Каждый блок состоит из заголовка и списка транзакций представленных, корнем хеш-дерева Меркла. Заголовок блока включает в себя свой хеш, хеш предыдущего блока и дополнительную служебную информацию (рисунок 3). Рисунок 3. Дерево Меркла (Merkle tree) или бинарное дерево хэшей — это двоичное дерево, конечные узлы которого — это хеши транзакций, а внутренние вершины — результаты сложения значений связанных вершин (рисунок 4). Рисунок 4. Поскольку дерево бинарное, то на каждом шаге должно быть четное число элементов. Поэтому если, на каком-то этапе количество хешей нечетное, то последний хеш дублируется для получения пары. Преимущества такого алгоритма хеширования перед хешированием всех транзакций разом, объединённых в один большой блок данных, состоит в том, что он обеспечивает не только доказательство подлинности каждой отдельной транзакции, но и делает невозможным внесение изменения в порядок транзакций. Так как при перемещении транзакции с ее законного места изменится вся ветвь хешей и корень в дереве Меркла. Список транзакций для внесения в новый блок, формируется участниками сети из очереди необработанных транзакций, еще не записанных в предыдущие блоки. 5. Структура транзакции блокчейн-сети. Идентификатором транзакции является её хеш (TXID), который строится на основе состава транзакции. Каждая транзакция включает в себя таблицу входов, таблицу выходов, цифровую подпись отправителя, публичный ключ получателя и количество средств для перевода (рисунок 5). Рисунок 5. 6. Цифровые подписи. Цифровая подпись является альтернативой рукописной подписи и предназначена для проверки авторства электронных документов. Такая подпись представляет собой последовательность байтов, формируемую путем преобразования записываемой информации по криптографическому алгоритму. Цифровые подписи в блокчейне формируются на основе асимметричной системы шифрования, в которой для каждого пользователя по определенному алгоритму генерируется так называемые пары ключей, состоящие из открытого (публичного) и закрытого (частного) ключей. Открытый ключ предназначен для распространения публично. Он служит в качестве адреса для приема сообщений от других пользователей. Закрытый ключ хранят в секрете. Он используется в качестве цифровой подписи для сообщений, отправленных другим пользователям. При отправке сообщения отправитель шифрует информацию с помощью открытого ключа адресата. Расшифровать это секретное сообщение получатель может только, используя закрытый ключ из пары с открытым, которым оно было зашифровано. В то же время сообщение зашифрованное закрытым ключом отправителя, может быть расшифровано только при помощи соответствующего открытого ключа из пары с закрытым. Открытый и закрытый ключи связаны друг с другом при помощи некоторых математических отношений. Открытый ключ реально вычислить на основе закрытого ключа, а вот обратное преобразование требует невозможного на практике объема вычислений. Таким образом, асимметричное шифрование используется в блокчейне для аутентификации отправителей и обеспечения целостности транзакций. 7. Входы и выходы транзакций. В существующих банковских системах, транзакции представляют собой редактирование единой таблицы балансов вида <адрес, баланс> с помощью некоторого центрального регулятора. В системе на основе блокчейна процесс перевода средств выглядит совершенно иначе - не существует никакой единой структуры, в которой каждому адресу был бы сопоставлен его текущий баланс. Вместо этого вся информация о транзакциях хранится в цепочке блоков. Это означает, что если пройти по всему блокчейну, то можно вычислить количество средств принадлежащих конкретному адресу. Перевод средств от получателя к отправителю осуществляется за счет таблиц входов и выходов. Каждый вход в таблице входов представляет собой ссылку на выход другой транзакции, которая когда-либо была отправлена адресату перевода. Выход транзакции представляет собой идентификатор адресата перевода и количество переведенных средств. Выходов может быть несколько, это позволяет разделить сумму входов, между несколькими получателями. Это очень важное свойство, т.к. использовать каждую транзакцию в качестве входа можно только один раз. В том случае когда сумма входов транзакции больше чем сумма выходов разница либо помещается в отдельный выход, адресуемый отправителю средств, либо становится комиссией за транзакцию (transaction fee). Рассмотрим пример транзакции с двумя входами и двумя выходами (рисунке 6). Рисунок 6 В данном примере создается новая транзакция С, которая ссылается на два выхода — A и B. В результате на входе у транзакции получается 0.008 BTC, которые потом разделяются на два выхода — на первый адрес отправляется 0.003 BTC, а на второй 0.004 BTC. Разница в 0.001 BTC помещается в комиссию за транзакцию. Транзакция считается исполненной, как только она будет занесена в блокчейн. Для этого она должна пройти верификацию при добавлении в очередной блок, а блок должен быть добавлен в цепочку. Выходы исполненной транзакции могут быть использованы в качестве входов новых транзакций, тем самым создавая цепочку передачи прав собственности, по мере того, как ценность перемещается от адреса к адресу. Такие, пока еще непотраченные выходы, имеют специальное название — UTXO (unspent transaction output). Добавление транзакций в очередной блок осуществляется майнерами. 7. Добавление блоков в цепочку. Майнинг. При создании транзакции пользователем, перед добавлением в блок, она помещается в список необработанных транзакций (рисунок 7). Рисунок 7. Затем некоторые узлы сети создают новые локальные блоки включающие в себя необработанные транзакции. Такие узлы называются майнерами. Блок будет сформирован, когда в него будет добавлен достаточный объём транзакций. Объём транзакций для блока регламентируется не количеством транзакций, а их объёмом, который зависит от количества входов и выходов в транзакции. После завершения формирования блока майнер начинает майнинг блока. Процесс майнинга заключается в повторении хеширования исходных данных блока до тех пор, пока полученный хеш не будет содержать определенное количество ведущих нулей. Так как результатом работы хеш-функции на одних и тех же данных будет всегда один и тот же хеш, в каждый блок включают ничего не значащее поле «Nonce», которое содержит ничего не значащее число. После каждой неудачной попытки хеширования параметр «Nonce» увеличивается на единицу, либо подбирается случайным образом. Множество майнеров каждую секунду, перебирают тысячи случайных хешей, чтобы сформировать новый блок (рисунок 8). Когда один из майнеров подбирает хеш, новый блок отсылается всем узлам сети, которые проверят действителен ли блок, проверив все содержащиеся в нём транзакции, и добавят его в свою копию блокчейна. В качестве награды за майнинг на адрес майнера, подобравшего хеш автоматически формируется, транзакция, с вознаграждением. Награда за майнинг состоит из вознаграждения за «добычу» блока, которое определенного в системе и суммы комиссий всех транзакций входящих в блок. Время появления нового блока регулируется сложностью хеширования — необходимым количеством ведущих нулей в хеше. Сложность подбирается системой так, чтобы новый блок появлялся примерно раз в 10 минут и увеличивается пропорционально суммарной вычислительной мощности всех майнеров сети. 8. Непреднамеренное разветвление цепи блокчейн. Не смотря на высокую сложность хеширования возможна ситуация, когда два майнера одновременно добавляют действительные блоки в блокчейн. В таком случае часть узлов может принять один действительный блок, а другая часть другой действительный блок и возникнет два разных состояния блокчейна (рисунок 9) в одно и то же время. Такая ситуация называется непреднамеренной развилкой. Рисунок 9. Подобную проблему все консенсусные протоколы решают с помощью простого правила: выигрывают самые длинные цепочки. Когда случается непреднамеренное разветвление, некоторые майнеры начнут добывать новые блоки в одной цепочке, а другие начнут добычу в другой цепочке. Неизбежно, одна из цепочек будет иметь больше майнеров, чем другая, и соответственно будет быстрее добавлять новые блоки в свою цепочку. Остальные майнеры перейдут к более длинной цепи, и рост ответвленной цепи прекратится. При этом основной цепочке не будет нанесен ущерб. В редких случаях, ответвленная цепь может обладать значительным количеством ресурсов для добычи (рисунок 10). В этом случае потребуется некоторое время, прежде чем станет ясно, какая из ответвленных цепей является основной цепью. Рисунок 10. Из-за возможности возникновения подобной ситуации, в блокчейне определён параметр, называемый необходимой глубиной блока. Этот параметр определяет необходимое количество блоков, которые должны быть добавлены после текущего, чтобы транзакции в этом блоке считались исполненными. Правило, согласно которому побеждает самая длинная цепь, в сочетании с тем фактом, что требуется огромная вычислительная мощность для добавления блоков в цепочку, делает блокчейн невероятно безопасным. Практически единственный способ атаковать сеть — это вернуться к какому-либо блоку в блокчейне, и начать формировать с него новую цепочку блоков. Однако, для этого злоумышленнику понадобится вычислительная мощность, большая чем вся объединенная сеть майнеров. Заключение. В связи с возрастающим влиянием электронных денег в мировой экономике и постепенным внедрением технологий распределенного реестра во многие сферы жизни общества, нельзя не сказать об актуальности детального изучения технологии блокчейн. Большие перспективы практического применения блокчейн-технологии существуют не только в криптовалюте, но и в смарт-контрактах, особенно в области энергетике. |