Аннотация

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

Ключевые слова: Блокчейн, блок, bitcoin, ethereum, криптовалюта, информационные технологии, майнинг, майнер.

Текст статьи

1. Введение

Валютные операции и операции с ценными бумагами между физическими лицами или компаниями централизованы и управляются с помощью третьих сторон. Для совершения платежей или валютных переводов банк или компании являются посредниками для завершения транзакций. К тому же, банки и компании за произведение транзакций берут большую комиссию за её совершение в зависимости от суммы транзакции. Финансовые системы с обычно централизованы, и все данные и информация контролируются и управляются третьей стороной, а не двумя основными субъектами, участвующими в сделке. [1]

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

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

Биткойн был первым приложением, в котором была представлена технология блокчейна. Биткойн был создан для организовывания децентрализованной среды для криптовалют. [2]

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

2. Постановка задачи

В настоящее время в блокчейн-сетях используются различные виды сетевой защиты, которые позволяют создавать сети, в которых группе злоумышленников практически невозможно изменить старые блоки. Одним из наиболее популярных способов, является доказательство работы (Proof of work, POW) — это данные, которые позволяют любому узлу сети убедиться, что человек, создавший блок, выполнил большой объем вычислительной работы, без которой создание текущего и последующих блоков было бы невозможным.

Целью работы является исследование технологии блокчейн. Исследование было проведено на основе модели криптовалюты bitcoin и принципов работы криптовалют.

3. Теория

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

Хэш включает в себя преобразование массива входных данных любой длины в последовательность (выходных) битов определенной длины, которая выполняется в соответствии с определенным алгоритмом. Криптографические функции, которые содержат алгоритмы и выполняют преобразования, называются хэш-функциями. Строка любой длины (символ или целое литературное произведение) может быть передана в качестве параметра хэш функции, и результатом операции всегда будет бит строго фиксированной длины. Заголовок блока включает его хэш, хэш предыдущего блока и дополнительную информацию. Пример списков блоков показан на рисунке 1.

Рис. 1. Списки блоков

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

Данными блока в блокчейне может быть любая информация в зависимости от самого блокчейна и сферы его применения. К примеру, в блокчейн сети bitcoin в транзакциях в состав блоков входят такие данные, как: адресат, адресант, количество отправленных монет, комиссия сети и время отправки транзакции.

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

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

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

4. Результаты разработки

Существует огромное количество высокоуровневых языков программирования, для разработки программного обеспечения. Наиболее распространенными высокоуровневыми языками программирования общего назначения, обладающими обширным сообществом, инфраструктурой и подходящими для написания сети блокчейна являются:

  • C++
  • Python
  • C#

Для создания блокчейна предпочтительнее использовать среду разработки Рycharm на языке Python благодаря её функциональности.

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

Генезис блок является основой всего блокчейна и является прототипом для последующих блоков, он создаётся самими разработчиками.

Рис. 2. Фрагмент кода со структурой сети

Чтобы избежать DOS атак и атак 51% на сети в сетях блокчейна таких, как bitcoin, ethereum и других используются различные методы защиты, которыми и занимаются майнеры. На рисунке 3 показан реализованный алгоритм Proof of Work (доказательство работы), который применяется для вычисления хэш кода для текущего блока с помощью мощных вычислительных устройств.

Рис. 3. Алгоритм POW

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

Учитывая функционал необходимый для применения блокчейна в финансовой среде была разработана диаграмма работы с разработанным блокчейном (Рис.4).

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

Рис. 4. Диаграмма работы с блокчейном

5. Заключение

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

Литература
  1. Hileman G., Rauchs M. Global cryptocurrency benchmarking study // Cambridge Centre for Alternative Finance. 2017. № 33. pp. 33-113.
  2. Collins R. Blockchain: a new architecture for digital content // ECcontent. 2016. Vol. 39. № 8. pp. 22-23.
  3. Часовских В. П., Лабунец В. Г., Воронов М. П. Технология «блокчейн» (blockchain) в образовании вузов и цифровой экономике // Экопотенциал 2017. Т. 2. № 18. С. 99-105.
  4. Barabasi A.L., Albert R. Emergence of scaling in random networks. Science. 1999. Vol. 286. P. 509–512.
  5. Conti M., Kumar S., Lal C., Ruj S. A survey on security and privacy issuesof bitcoin // IEEE Communications Surveys & Tutorials. 2018. Vol. 20. № 4. pp. 3416-3452
  6. Chen, G., Xu, B., Lu, M., & Chen, N.-S. (2018). Exploring Blockchain technology and its potential applications for education. Smart Learning Environments, 5(1), C. 1-10.