January 30, 2023

Создание бесшовной адаптации для Web3


Одной из ключевых целей METAPIXEL является беспрепятственно донести ценность игр web3 до масс(пользователей). Ключевое ценностное предложение игр web3 заключается в защите времени и денег пользователей, потраченных в игре, то есть в цифровом суверенитете над игровыми активами пользователя.

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

Одним из неотъемлемых аспектов web3, которые особенно затрудняют подключение пользователей web2, является плата за газ за транзакции в блокчейне. В то время как обычные онлайн-сервисы web2 считаются бесплатными для взаимодействия (при условии, что вы игнорируете тот факт, что платите своему интернет-провайдеру за услуги), концепция газа, при которой пользователи должны платить комиссию всякий раз, когда транзакция происходит в сети, может быть инопланетная концепция. Даже если они примут эту концепцию, процесс платы за газ по-прежнему является бременем и общей проблемой. Не говоря уже о том, что новые пользователи часто борются со сложным дизайном UX, подписанием транзакций и перегрузкой сети.

Короче говоря, плата за газ и связанный с этим опыт в целом могут оставить у новичков плохое впечатление о играх web3.

Вот почему я решил затронуть вопрос о плате за газ в первой технической статье METAPIXEL здесь, на Medium. Здесь я хотел бы рассказать о том, как команда METAPIXEL воспринимает эту проблему, и о решениях, над которыми мы работаем.

Плата за газ

Чтобы транзакция произошла в блокчейне (например, послать 10 APT для Lucas), при отправке необходимо заплатить соответствующую комиссию за газ. Эта плата используется в качестве награды ( за вычисление, работу сети, хранилище и т. д.) для выполнения транзакции и ее записи в блокчейне. В случае некоторых блокчейнов плата возвращается валидаторам и участникам экосистемы, которые управляют узлами блокчейна, что позволяет сети работать. Кроме того, в качестве желательного побочного эффекта взимание платы за газ снижает мотивацию злоумышленников к проведению атак, которые генерируют большое количество транзакций в течение короткого промежутка времени, таких как DDoS-атаки (распределенный отказ в обслуживании).

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

Плата за газ может затруднить доступ к услугам даже для пользователей web3, которые уже знакомы с блокчейном. Недавно, чтобы отпраздновать объявление названия первой игры METAPIXEL, Gran Saga: Unlimited (GSU), мы открыли мероприятие на платформе Galxe, где люди могли выполнять миссии и получать взамен жетон достижений в сети (OAT).

Несмотря на то, что сам OAT был свободен, многие пользователи столкнулись с трудностями, поскольку сеть Aptos требует оплаты газа в APT (собственный токен блокчейна Aptos), а пользователи должны были иметь как минимум 0,02 APT в своих кошельках. провести транзакцию на Galxe. Интересно, что это максимальное количество газа, которое можно зарядить на Aptos.

Рисунок 1. GSU OAT

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

Поскольку эта проблема распространена в web3, METAPIXEL — не единственный проект, пытающийся решить эту проблему. Несколько экосистем web3, таких как Ethereum (meta-transactions), Solana (octane) и 1inch Network, уже пытаются избавиться от барьеров, вызванных платой за газ, путем активного проведения соответствующих исследований. Хотя я не буду описывать плюсы и минусы каждой технологии в этой статье, я хотел бы подчеркнуть, что METAPIXEL исследует и обсуждает способы максимизации пользовательского опыта на основе существующей экосистемы разработки на Aptos.

Плата за газ на Aptos

К счастью, плата за газ в Aptos очень дешевая. Ниже приведены записи о плате за газ, взятые в произвольное время в течение одного дня в Aptos Explorer. Они варьируются от 0,0067 до 0,08 долларов США за транзакцию, что очень мало по сравнению с Ethereum, если сравнивать только с ним. Однако, независимо от того, насколько это дешево, если не требуется абсолютно 0 газа, для пользователей все еще существует барьер, потому что они должны приобрести некоторое количество APT, чтобы использовать любую услугу.

Рисунок 2. Транзакции и комиссионные за газ на Aptos (скриншот сделан 26 января, 15:00 по корейскому времени)

Плавная регистрация — сервис оплаты прокси-газа

Цель METAPIXEL — предоставить пользователям возможность пользоваться сервисами web3, не зная о плате за газ в блокчейне, т. е. беспрепятственное подключение.

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

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

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

METAPIXEL по-прежнему требует выполнения определенных условий, чтобы сделать транзакцию без газа или с оплатой другими способами, например внутриигровой валютой. Если мы этого не сделаем, это может открыть дверь для попыток атаки или эксплуатации сети путем создания неограниченного количества транзакций.

Теперь давайте углубимся в то, как мы пытались решить проблему платы за газ.

Мульти-агентские транзакции

На стороне METAPIXEL есть несколько условий для оплаты прокси-газа. Во-первых, необходимо создать транзакцию, запрашивающую у сети разрешение на оплату METAPIXEL вместо пользователя. Эта транзакция включает в себя информацию о транзакции, которую хочет совершить пользователь (например, «отправить 10 APT Lucas»), и информацию о самом платеже за прокси-газ (т. е. о том, что это транзакция, в которой METAPIXEL хочет осуществить платеж за газ вместо пользователя). ). Чтобы это работало, мы используем многоагентную транзакцию, как определено Aptos.

Транзакции с несколькими агентами используют тип подписавшего Move, чтобы разрешить произвольное количество атомарных действий в одной транзакции для нескольких учетных записей в сети. Это может сделать атомарные свопы, одобрения K-of-N и любые произвольные атомарные действия между двумя или более сущностями в цепочке за одну транзакцию. Разделение этих сложных взаимодействий повышает как безопасность, так и производительность. Еще более широкий спектр составных шаблонов и вариантов использования возможен при объединении транзакций с несколькими агентами с поддержкой нескольких подписей в одной учетной записи.

Процедура удаленной подписи

Транзакции, содержащие информацию об оплате за газ, требуют подписи как пользователя, так и METAPIXEL, который будет субсидировать оплату за газ. Сначала пользователь делает запрос на оплату прокси-газа на сервер METAPIXEL через кошелек METAPIXEL. В это время сервер предоставляет информацию о счете, с которого будет списана комиссия. Эта информация включает адрес учетной записи и порядковый номер учетной записи. ( ссылка )

Затем запрос, включающий желаемую пользователем транзакцию и ранее полученную информацию, подписывается и отправляется на сервер METAPIXEL. Сервер METAPIXEL выполняет тщательный процесс проверки, и, если запрос действителен, он подписывается и отправляется в сеть Aptos.

Внутри смарт-контрактов Move

Транзакции, отправленные в сеть Aptos, будут взаимодействовать со смарт-контрактом, созданным METAPIXEL. В приведенном ниже коде показан отрывок из примера кода, где METAPIXEL оплачивает плату за газ для пользователя (строка кода 5) и получает взамен актив определенного типа, а затем выполняет перевод, запрошенный пользователем. Код проверяет наличие заранее установленной платы (строки 9–10) и взимает плату (строка 11). После этого он включает код, который изымает тип актива, который пользователь хочет перевести, и вносит его получателю (строки 13–15).

В случае с рис. 3 для CoinType установлено значение APT, а комиссия за платеж установлена ​​на 0. Здесь APT можно отправить без получения платы за газ от пользователя. Платит комиссию METAPIXEL.

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

Как видно из приведенного выше кода, передача активов или управление активами соответствует существующему стандарту Aptos. Таким образом, с помощью нашего смарт-контракта можно легко оплатить комиссию за газ METAPIXEL за ранее выпущенные активы Aptos.

Оставшиеся проблемы — производительность

Структура управления ключами с несколькими плательщиками — это один из подходов, который решает эту проблему и обеспечивает параллельное выполнение. Производительность платной услуги, измеренная на одном локальном ПК (12 ядер, 3,70 ГГц) в лабораторных условиях, составила около 100 TPS и задержку в пределах 2 секунд. В частности, мы настроили локальную сеть Aptos, сервер оплаты комиссий и генератор транзакций в среде WSL (Windows Sub Linux). Мы также заметили, что процессы с интенсивным использованием ЦП, такие как подписание и проверка транзакций, являются более серьезными узкими местами для пропускной способности, чем оперативная память и скорость сети.

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

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

Рисунок 5. Последовательное и параллельное выполнение

Выводы

Создание приятного и доступного пользовательского опыта — одна из конечных целей METAPIXEL. Я считаю, что беспрепятственный процесс регистрации, включая наше решение для оплаты прокси-газа, позволит массово внедрить web3 для игр, и техническая команда METAPIXEL продолжит исследовать, как мы можем сделать web3 простым для пользователей.

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

О KS (KyuSang) Ли

KS (KyuSang) Ли, доктор философии. Является главой команды Meta Platform в METAPIXEL. К. С. Ли — главный инженер с большим опытом работы в области сетевых и коммуникационных технологий и ICT. Его области знаний включают технологию блокчейна, сетевые протоколы и системы, распределенные системы, проектирование сетей и несколько языков программирования. Ли получил степень доктора философии (Ph.D.) в области электротехники и электроники в Корейском передовом институте науки и технологий в 2013 году. Затем он работал постдоком-исследователем и разработчиком в Исследовательском центре Эймса НАСА, а после проработал почти 8 лет в Samsung SDS, включая 5 лет в исследовательской лаборатории блокчейна (1,5 года в качестве руководителя лаборатории). Теперь он применяет свои лучшие в отрасли знания и опыт, чтобы сделать платформу METAPIXEL web3 действительно лучшей в своем классе.

Чат | Twitter | YouTube | Сайт | Discord | Twitch | Telegram канал