Алгоритм безопасной передачи данных между пользователями в сети



Pdf көрінісі
бет14/22
Дата15.04.2023
өлшемі1,65 Mb.
#82715
түріДипломная работа
1   ...   10   11   12   13   14   15   16   17   ...   22
Байланысты:
Кузьмин А.А. ПМИб-1401

2.1.1 Блокчейн 
Блокчейн - это не что иное, как цепочка блоков, привязанных друг к 
другу в определенном порядке. Причем, цепочка обладает таким свойством, что 
разбиение любого одного блока b также разрушит всех его преемников b + 1, b 
+ 2, ... b + n. 
В каждом блоке сохраняется ряд транзакций вместе с хэшем 
предыдущего блока и доказательством выполнения работы (proof-of-work) 
текущего блока. Доказательство выполнения работы - результат интенсивного 
вычисления, которое находит первое число (называемое nonce), которое вместе 
с содержимым блока возвращает определенный хэш. Такой хэш обычно 
начинается с числа 0, которое увеличивается в соответствии с параметром, 
называемым сложностью. Чем выше сложность, тем больше времени требуется, 
чтобы найти хэш, начиная с более высокого числа 0.
Поскольку каждый блок связан с предыдущем блоком (хэш предыдущего 
блока является частью содержимого текущего блока), очень сложно разбить 
цепочку. Разрыв цепи означает подделку специального блока в любом 
положении в цепочке, так что все последующие блоки остаются неизменными. 
Если бы, по абсурду, такой блок существовал, было бы чрезвычайно сложно 
убедить остальную сеть, что такая цепочка является легитимной.
Блокчейн Ethereum, по сути, является машиной состояний, работающей 
посредством транзакций. Определение машины состояний подразумевает, что 
этот механизм считывает входные данные и, основываясь на них, переходит в 
новое состояние. 


31 
Рисунок 2.1 – Парадигма блокчейна Ethereum 
В случае с машиной состояний Ethereum, начальной точкой является 
«состояние генезиса». Оно подобно чистому листу или пустому бланку до того, 
пока в сети не произойдут какие-либо транзакции. После выполнения 
транзакций состояние генезиса переходит в конечное состояние. В любой 
момент времени это конечное состояние является текущим состоянием 
Ethereum. 
Рисунок 2.2 – Состояние блокчейна 
Состояние Ethereum включает в себя огромное количество транзакций
Эти транзакции группируются в «блоки». Блок содержит группы транзакций, а 
каждый блок связан с предыдущим, тем самым образуя цепочку. 


32 
Рисунок 2.3 – Блоки транзакций 
Чтобы вызвать переход сети из одного состояния в другое, транзакция 
должна быть признана действительной, для чего она должна пройти через 
процесс валидации (проверки и утверждения), известный как майнинг. 
Майнингом - это процесс, в котором группа узлов сети (компьютеров) 
расходует свои вычислительные ресурсы на генерацию блока действительных 
транзакций. 
Любой вычислительный узел сети (их также называют «нодами»), 
объявляющий себя в качестве майнера, может претендовать на создание и 
валидацию блока транзакций. Многие ноды со всего мира одновременно 
пытаются создавать и валидировать блоки. Каждый майнер при записи блока в 
блокчейн предоставляет математическое «доказательство», которое действует 
как гарантия: если доказательство существует, то блок должен быть 
действительным. 
Для того чтобы добавить блок к основному блокчейну, майнер должен 
подтвердить его раньше всех его конкурентов. Процесс проверки каждого 
блока путём предоставления нодами математического доказательства 
называется доказательством выполнения работы (proof-of-work)[20]. 
Так как блокчейн одноэлементный механизм записи транзакций с 
совместно используемым состоянием, то корректное текущее состояние – это 
единственная глобальная истина, которая должна приниматься всеми. Наличие 
нескольких состояний (или цепочек) разрушило бы всю систему, так как в 
таком случае было бы невозможно договориться о том, какое состояние сети 
должно считаться истинным.


33 
Каждый раз, когда формируется несколько вариантов цепочек, образуется 
разветвление (fork). Обычно разветвлений стараются избегать, так как они 
разрушают систему и ставят пользователей перед выбором, какой цепочке они 
должны доверять. 
Рисунок 2.4 – Разветвления 
Для того чтобы определить, какой путь наиболее действителен и 
предотвратить образование нескольких цепочек, в Ethereum используется 
механизм, известный как «протокол GHOST».
Согласно протоколу GHOST, мы должны выбирать тот путь, на котором 
было совершено самое большое количество вычислений. Один из способов 
определить этот путь – по номеру последнего блока, который представляет 
собой общее количество блоков на текущем пути, исключая генезисный. Чем 
больше номер блока, тем длиннее проделанный путь и тем выше количество 
усилий, затраченных нодами для того, чтобы достичь этой точки. Используя 
такое рассуждение, можно договориться о действительной версии текущего 
состояния. 


34 
Рисунок 2.5 – Каноническое состояние 


Достарыңызбен бөлісу:
1   ...   10   11   12   13   14   15   16   17   ...   22




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет