В статье авторы разработали сервис, способный проверять достоверность билета на мероприятие, представляющего из себя NFT-токен в блокчейн-сети Cardano. Для взаимодействия пользователя с сервисом создан веб-сайт с понятным интерфейсом. На данном веб-сайте пользователь может ввести уникальный идентификатор токена и получить сообщение о валидности этого токена, а следовательно, и о достоверности билета на мероприятие. Кроме того, для удобства пользователя, на веб-сайте сервиса имеется возможность создать QR-код из уникального идентификатора токена, или же прочитать QR-код, содержащий уникальный идентификатор.
Ключевые слова: блокчейн, NFT, билет на мероприятие, QR-код.
Для верификации на каком-либо закрытом мероприятии обычно предъявляется билет, он может быть представлен в бумажном или электронном формате, данные о таком билете хранятся в базе данных компании, проводящей мероприятие. Основная проблема в том, что какой-нибудь хакер может получить доступ к базе билетов и подметить в ней учетные данные одного человека на данные другого человека. Для решения рассмотренной проблемы отлично подходит технология блокчейн-сети, которая представляет из себя альтернативную базу данных, с защитой от перезаписи из вне. В роли билета в блокчейн-сети может выступать NFT-токен, который считается уникальной, невзаимозаменяемой единицей. Пользователь регистрирует кошелек в блокчейн-сети и получает свой уникальный адрес в сети, на этом же адресе будет хранится NFT-токен, или, другими словами, билет на мероприятие. При использовании данной технологии хакер точно не сможет подменить данные в базе билетов, потому что этого просто не позволяет блокчейн.
Было решено разработать сервис, проверяющий валидность NFT-билета, представляемого пользователем. В роли блокчейн-сети выбрана сеть Cardano, потому что она наиболее точно подходит сервису по функционалу и скорости транзакций. В блокчейн-сети Cardano адрес кошелька и идентификатор токена состоят из набора букв и цифр, идентификатор токена в сети называется policyid. Эти данные пользователь получает от сервиса, выдавшего ему билет. В данной статье ведется работа с уже готовыми входными данными.
Для разработки было решено использовать JavaScript фреймворк Nodejs. Библиотека “Blockfrost” используется для взаимодействия с блокчейном, а библиотека “Express” реализует работу бэкэнд части сервиса.
Был разработан веб-сайт для удобного взаимодействия пользователя с сервисом. В разработке веб-сайта использовался язык HTML и JavaScript, интерфейс разработан с применением библиотеки bootstrap. Веб-сайт имеет приятный пользовательский интерфейс и представляет из себя одностраничное приложение, то есть весь функционал находится на одной странице. Скриншот веб-сайта представлен на рисунке 1.
Рис. 1. Веб-сайт сервиса
На данном веб-сайте пользователь может ввести известный ему адрес кошелька и идентификатор NFT-токена и нажать кнопку «Проверить билет».
После этого сервис ищет в блокчейн-сети Cardano полученный на входе адрес кошелька и проверяет наличие на этом адресе NFT-токена по идентификатору, также полученному на входе, если же поиск проходит успешно, билет можно считать правильным и сайт выводит пользователю сообщение об успехе: рядом со строками «Проверка адреса» и «Проверка токена» появляются надписи True. Результат показан на Рисунке 2.
Рис. 2. Результат проверки
Если же на адресе не окажется NFT токена, строка «Проверка токена» получит состояние False. «Проверка адреса» получает состояние false, если введенный адрес не находится в блокчейн-сети, в данном случае поиск токена не выполняется.
Следующим функционалом веб-сайта, требующим рассмотрение, является возможность чтения и генерации QR-кода. После ввода адреса и идентификатора токена, пользователь может сгенерировать QR-код, который будет содержать в себе эти данные. Скриншот с результатом показан на Рисунке 3.
Рис. 3. QR-код, сгенерированный на веб-сайте
Полученный QR-код, пользователь может сохранить в обычном формате изображения на устройство, на котором открыт веб-сайт сервиса.
Веб-сайт дает возможность отсканировать имеющийся у пользователя QR-код с помощью встроенной в устройство веб-камеры или же посредством загрузки файла изображения. После успешного распознавания, содержащиеся в QR-коде адрес кошелька и идентификатор токена будут автоматически подставлены в соответствующие поля, далее пользователь проводит проверку билет обычным способом, описанным выше в этой статье. Скриншот веб-сайта с запущенным функционалом сканирования QR-кодов показан на Рисунке 4.
Рис. 4. Функционал сканирования QR-кода
В заключении хочется сказать, что данный сервис можно применить для любой отрасли требующей в своей работе верификации и проверки достоверности.
Литература:
1. Документация Blockfrost. — Текст: электронный // Blockfrost Development Hub: [сайт]. — URL: https://blockfrost.dev/docs (дата обращения: 28.07.2022).
2. Документация Cardano. — Текст: электронный // Cardano Development Portal: [сайт]. — URL: https://developers.cardano.org/ (дата обращения: 28.07.2022).