Главная страница журнала "Центральный научный вестник"


Опубликовать статью


РЕАЛИЗАЦИЯ ПОДХОДА МАСШТАБИРОВАНИЯ БЛОКЧЕЙН ПЛАТФОРМЫ ETHEREUM на основе технологии
Payment Channel

Зацепин Владимир Вячеславович

Магистрант кафедры «Программирования и информационных технологий»,

ФГБОУ ВО «Воронежский государственный университет»

 Россия, г. Воронеж

 

Аннотация. Ethereum - блокчейн (blockchain) платформа, для построения распределенной и децентрализованной сети. Ethereum можно считать платежной системой, основанной на внутренней валюте - токенах. Однако дизайн системы блокчейна как платежной системы ограничивает пропускную способность всей сети до десятков транзакций в секунду, что не может сравниться, например с VISA, у которой этот показатель достигает 2000 транзакций в секунду. В результате, для того, чтобы совершить обычную операцию платежа за товар или услугу необходимо ждать около 1-2 минут. Кроме того, каждая транзакция в блокчейне требует оплаты комиссии, поэтому микроплатежи являются невыгодными. В данной статье рассматривается применение решения проблемы масштабирования сети.

Ключевые слова: блокчейн, Ethereum, смарт-контракты, веб-приложение.

 

Введение. Ethereum платформа позволяет публиковать так называемые умные контракты (smart contracts) для выполнения бизнес логики. Таким образом, на базе технологии Ethereum можно строить различные сервисы, которые будут обладать основными свойствами блокчейна: распределенность, безопасность, финализация. Для решения проблемы масштабирования Ethereum платформы существует два основных направления: L1 и L2 Scaling Solutions. L1 (Level 1) решения основаны на изменении самого протокола работы Ethereum или создания подсетей, например, технология Plasma. L2 (Level 2) решения основаны на создании специальных умных контрактов внутри существующей сети, которые не требуют изменения протокола. Одним из таких L2 подходов является технология Payment Channel. Целью данной статьи является описание реализации подхода на основе Payment Channel [1;2].

Анализ задачи. В основе решения на Payment Channel лежит сущность канала (channel) [3]. Канал представляет собой направленное движение средств от одной стороны сделки к другой (рис. 1).

Рисунок 1 – Общая схема работы канала.

Взаимодействие пользователя с системой происходит при помощи определенного смарт-контракта и веб-приложения. Объекты системы могут быть сохраненными в смарт-контракте, так называемые on-chain данные, или те, которые вынесены за его приделы, off-chain данные. Данные смарт контракта определяют его текущее состояние. Транзакция в блокчейне, которая является вызовом метода смарт-контракта, переводит его в другое состояние.

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

Реализация. Для обеспечения работы системы были разработаны такие компоненты как смарт-контракт, серверное приложение и веб-приложение пользовательского интерфейса. Пользователь взаимодействует с веб-приложением и со специальным плагином для веб-браузера «MetaMask», при помощи которого возможно совершение транзакций в блокчейне. Каждая операция создания и закрытия канала в блокчейне запоминается в логах контракта, которые периодически читает серверное приложение и сохраняет копию событий в базу данных. Это необходимо для того, чтобы пользователи имели быстрый доступ к данным своих каналов. Кроме того, серверное приложение отвечает за сохранение платежей и отправку оповещений на веб-приложение по технологии «веб-сокеты». Общая схема архитектуры приложения изображена на рис. 2.

Рисунок 2 – Общая архитектура приложения.

Данные в Ethereum блокчейне являются публичными согласно дизайну платформы, т.е. информация о всех транзакциях, выполнениях методов смарт контрактов, отправителях и получателях является общедоступной. Это свойство распространяется и на сущность канала. «Чувствительных» для пользователя данных (email адреса, ФИО, даты рождения и т.д.) не требуется для работы системы, поэтому явной необходимости для обеспечения безопасности данных нет. Тем не менее, явная аутентификация пользователей дает повышенный уровень безопасности и исключает прямой доступ к данным. Процесс аутентификации построен на основе подписи определенного сообщения (та же цифровая подпись ECDSA что и для отправки платежей) через браузерный плагин «MetaMask» и отправки запроса на сервер, который проверяет правильность подписи и, в случае успеха, реализует алгоритм аутентификации по технологии JSON Web Token (JWT).

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

Список использованной литературы:

1.     Ethereum main web site [Электронный ресурс] // Stiftung Ethereum. – Режим доступа: https://www.ethereum.org/ (дата обращения: 12.03.2019).

2.     Jim McDonald. Introduction to Ethereum payment channels [Электронный ресурс] / Jim McDonald. // Weald Technology Trading Ltd. –  Режим доступа:  https://www.wealdtech.com/articles/introduction-to-ethereum-payment-channels/ (дата обращения: 27.03.2019).

3.     Matthew Di Ferrante. Ethereum Payment Channel in 50 Lines of Code [Электронный ресурс] / Matthew Di Ferrante. // A Medium Corporation. –  Режим доступа:  https://medium.com/@matthewdif/ethereum-payment-channel-in-50-lines-of-code-a94fad2704bc (дата обращения: 16.03.2019).


IMPLEMENTATION OF THE APPROACH OF SCALING THE BLOCKING SYSTEMS OF ETEREUM BASED ON PAYMENT CHANNEL

TECHNOLOGY

Zatsepin V.V.

Abstract. Ethereum is blockchain platform for building a distributed network. Ethereum can be considered a payment system based on local currency - tokens. However, the design of the blockchain system as a payment system limits the bandwidth of the entire network to dozens of transactions per second, which cannot be compared, for example, with VISA, in which this figure reaches 2000 transactions per second. As a result, in order to make a normal payment operation for a product or service, you need to wait about 1-2 minutes. In addition, each transaction in the blockchain requires payment of a commission, so micropayments are completely unprofitable. This article discusses how to solve a network scaling problem.

Keywords: blockchain, ethereum, smart contracts, web application.

References:

1.Ethereum main web site [Electronic resource] // Stiftung Ethereum. – Access mode: https://www.ethereum.org/ (  access date:   12.03.2019).

2.Jim McDonald. Introduction to Ethereum payment channels [Electronic resource] / Jim McDonald. // Weald Technology Trading Ltd. – Access mode: https://www.wealdtech.com/articles/introduction-to-ethereum-payment-channels/ (access date:    27.03.2019).

3.Matthew Di Ferrante. Ethereum Payment Channel in 50 Lines of Code [Electronic resource] / Matthew Di Ferrante. // A Medium Corporation. – Access mode: https://medium.com/@matthewdif/ethereum-payment-channel-in-50-lines-of-code-a94fad2704bc (access date:    16.03.2019).