Статья опубликована в рамках: XXXIX Международной научно-практической конференции «Вопросы технических и физико-математических наук в свете современных исследований» (Россия, г. Новосибирск, 26 мая 2021 г.)
Наука: Технические науки
Секция: Информатика, вычислительная техника и управление
Скачать книгу(-и): Сборник статей конференции
дипломов
ПРЕИМУЩЕСТВА ВНЕДРЕНИЯ БЛОКЧЕЙН ТЕХНОЛОГИЙ В ОНЛАЙН МАГАЗИНЫ
ADVANTAGES OF IMPLEMENTING BLOCKCHAIN TECHNOLOGIES IN ONLINE STORES
Aleksandr Martirosyan
Student, National Polytechnic University of Armenia,
Armenia, Yerevan
Вступление. В наши дни финансовые транзакции в Интернете стали очень популярными, и параллельно с их модернизацией вырос спрос на безопасность и надежность. В то же время очень популярными стали криптовалюты, работающие в системе блокчейн, наиболее известными из которых являются биткойн, эфир и лайткойн. В качестве сервера для решения проблемы была выбрана система блокчейн, поскольку она гарантирует безопасность, прозрачность и надежность транзакций. Блокчейн-система - единственная децентрализованная система, которая смогла решить проблему двойных расходов [1] в этих системах. Блокчейн-система Ethereum позволяет нам не только осуществлять финансовые переводы, но и создавать децентрализованные приложения с помощью смарт-контрактов [2], которые после размещения в блокчейне будут работать без мошенничества и вмешательства тртьей стороны.
Используя возможности блокчейн-системы Etherum, была разработана торговая система интернет-магазинов, в которой минимизированы риски, возникающие при покупках.
Примером такого мошенничества может быть перевод денег покупателем продавцу, неполучив ничего взамен.
Блокчейн. Блокчейн - это цепочка непрерывных информационных блоков, построенных по определенным правилам[3]. Каждый блок содержит:
- ID - номер блока,
- Nonce - число, которое майнеры находят при майнинге,
- Data - в которых хранятся данные,
- Previous hash - хеш предыдущего блока,
- Hash - хеш данного блока.
Упрощенная версия блокчейна показана ниже (Рисунок 1).
Рисунок 1.
Исключением является первый блок, previous hash которого состоит из нулей. Изменение любых данных в блоке приводит к изменению его хеш-значения.
Действия по созданию новых блоков (вычисление хеш-значения), которые выполняются для обеспечения работы криптовалют, называется майнингом[4]. Людей, которые занимаются майнингом, называют майнерами.
Процесс создания блоков:
- Заранее указывается сложность майнинга, которая представляет собой количество начальных нулей требуемого значения хеш-функции. Чем больше число, тем сложнее найти подходящий хеш.
- Затем берутся идентификатор блока, хеш-значение предыдущего блока (previous hash) и информация, которая должна быть записана в данный блок (Data).
- Далее майнеры начинают методом поиска, каждый раз изменяя значение Nonce, подсчитать хеш блока (с использованием алгоритма SHA-256[5]), пока он не удовлетворит заданную сложность.
- Как только хеш найден, одобренный другими майнерами, он добавляется в цепочку блоков в качестве нового блока, а майнеры, которые находят хеш, получают вознаграждение в виде криптовалюты.
Такой процесс создания, проверки и награждения блоков называется proof-of-work[6].
Блокчейн Ethereum. Одним из преимуществ блокчейна Ethereum [7] является короткое время создания блоков и сравнительно большой объем блока, что позволяет записывать больше информации в блоки за более короткое время. Блокчейн Ethereum включает в себя возможность писать программы или, другими словами, смарт-контракты[8], которые будут работать в блокчейне. Основной используемый язык программирования - Solidity. Если в блокчейн в коде вносятся изменения, они записываются в новый блок как транзакция. Чтобы не перегружать блоки из-за больших вычислений или прерываться, например, из-за бесконечных циклов, работа любой функции, которая может вызвать транзакцию, потребляет соответствующий газ. Газ - это платеж, необходимый для успешной транзакции на платформе блокчейна Ethereum. Gas используется для распределения ресурсов виртуальной машины Ethereum (EVM), чтобы децентрализованные приложения, такие как смарт-контракты, могли выполняться самостоятельно безопасным и децентрализованным образом.
Суть проблемы. Чтобы сделать покупки в интернет-магазинах более прозрачными и безопасными, было предложено создать учетную запись Escrow. Он будет работать на блокчейне Ethereum на языке программирования Solidity, и любой токен стандарта ERC20 будет использоваться в качестве валюты.
Условное депонирование(Escrow) - это система (специальный счет), в которой финансовый инструмент или актив хранится у третьей стороны до тех пор, пока не будут выполнены все условия. Другими словами, гарантом транзакции является третья сторона, называемая Escrow агент.
ERC20 - это стандарт взаимозаменяемых токенов. Другими словами, у них есть свойство, которое делает каждый токен таким же (по типу и значению), что и другой токен. Он предоставляет такие функции, как передача токенов из одной учетной записи в другую, получение токенов текущей учетной записи и получение общего количества токенов, доступных в сети. Кроме того, у него есть некоторые другие функции. Например, разрешение на то, что определенная сумма денег на счете может быть потрачена третьим лицом.
Решение проблемы. Для решения проблемы была предложена следующая версия с условным депонированием.
- У продавца должен быть адрес лица, принимающего решение, и максимальное время, в течение которого товар должен быть доставлен покупателю. В случае разногласий между продавцом и покупателем, лицо, принимающее решение, должно принять решение о переводе денег одному из них. Желательно, чтобы адрес лица, принимающего решение, был из списка доверенных адресов.
- Покупатель создает новый платеж для совершения покупки у продавца и переводит сумму в смарт-контракт.
- После того, как продавец отправит товар и покупатель подтвердит получение, продавец должен обратиться в смарт-контракт для получения денег.
- Если продавец не подтвердил доставку товара, а покупатель не получил товар, то по истечении срока покупатель может обратиться в смарт-контракт и получить свои деньги обратно.
- Если продавец подтвердил доставку товара, но покупатель не подтвердил получение по истечении срока, лицо, принимающее решение, может принять решение о переводе денег одному из них.
Познакомимся с отдельными эпизодами кода. У нас есть 2 структуры:
- Paymеnt
- SellerInfo
Paymеnt структура включает платежную информацию.
- Поле _amount описывает сумму платежа.
- _endTime описывает окончательное время (время Unix [10]), по истечении которого покупатель или продавец будет иметь право подать апелляцию к лицу, принимающему решение, для принятия решения в их пользу.
- _decisionMaker - адрес лица, принимающего платежное решение.
- _deliveryApproved - логическая переменная, описывающая продукт, доходящий до получателя.
- _provisionApproved - это тоже логическая переменная, которая описывает, как продавец безопасно отправляет продукт адресату.
В структуру SellerInfo входит информация о продавцах.
- _decisionMaker - это адрес лица, принимающего решения при совершении покупки у данного поставщика.
- _escrowTime - максимальное время передачи товара от продавца к покупателю в секундах.
- _buyerAddresses - адреса покупателей продовца.
- _buyerPaymentIds - это переменная типа "ключ-значение", где каждомы адресу покупателя соответствует набор id платежей.
Любые изменения записываются в блокчейн с помощью event-ов, которые позволяют любому видеть историю транзакций.
Заключение. Использование системы условного депонирования блокчейн в интернет-магазинах решает ряд проблем безопасности и прозрачности и имеет множество преимуществ. Среди них:
- Прозрачность транзакций.
- Безопасность блокчейна, что делает невозможным взлом системы.
- Минимизация вмешательства человека.
- Несмотря на все это, у системы есть и недостатки, которые перечислены ниже.
- Функции, которые изменяют блокчейн и впоследствии запускают новую транзакцию, должны оплачиваться дополнительно по соответствующей цене на газ.
- Человеческое вмешательство сведено к минимуму, но все еще существует.
Список литературы:
- Jang, Jehyuk, and Heung-No Lee. "Profitable double-spending attacks." Applied Sciences 10.23 (2020): 8477.
- Zou, Weiqin, David Lo, Pavneet Singh Kochhar, Xuan-Bach D. Le, Xin Xia, Yang Feng, Zhenyu Chen, and Baowen Xu. "Smart contract development: Challenges and opportunities." IEEE Transactions on Software Engineering (2019).
- Генкин, Артем, and Алексей Михеев. Блокчейн: Как это работает и что ждет нас завтра. Альпина Паблишер, 2017.
- Kroll, J. A., Davey, I. C., & Felten, E. W. (2013, June). The economics of Bitcoin mining, or Bitcoin in the presence of adversaries. In Proceedings of WEIS (Vol. 2013, p. 11).
- Khovratovich, Dmitry, Christian Rechberger, and Alexandra Savelieva. "Bicliques for preimages: attacks on Skein-512 and the SHA-2 family." In International Workshop on Fast Software Encryption, pp. 244-263. Springer, Berlin, Heidelberg, 2012.
- Nakamoto, Satoshi, and A. Bitcoin. "A peer-to-peer electronic cash system." Bitcoin.–URL: https://bitcoin. org/bitcoin. pdf 4 (2008).
- Maldonado, Fatima Castiglione. Introduction to Blockchain and Ethereum: Use distributed ledgers to validate digital transactions in a decentralized and trustless manner. Packt Publishing Ltd, 2018.
- Panescu, Adrian-Tudor, and Vasile Manta. "Smart contracts for research data rights management over the ethereum blockchain network." Science & Technology Libraries 37.3 (2018): 235-245..
- Takahashi, Koji. "Blockchain Technology for Letters of Credits and Escrow Arrangements." (2017).
- Ritchie, Dennis M., and Ken Thompson. "The UNIX time‐sharing system." Bell System Technical Journal 57.6 (1978): 1905-1929.
дипломов
Оставить комментарий