Почему разработка dApp на EOS обойдется в сотни раз дороже, чем на Ethereum?
Блокчейн EOS, запустившийся 14 июня после 340-дневного ICO, закономерно столкнется со многими проблемами по мере взросления. «Убийца Ethereum» гарантирует нулевые комиссии и высокую масштабируемость, которая позволит тысячам децентрализованных приложений (dApp) сосуществовать на платформе. По этим показателям EOS выигрывает у своего перегруженного, дорогого и медленного прародителя.
Однако разработчики первых dApp на EOS высказывают опасения по другому вопросу: если Ethereum дорого обходится для пользователей приложений (любое действие внутри игры или другого dApp определяется смарт-контрактами и требует вычислений, которые пользователь должен оплачивать в газе), то EOS затратен для разработчиков. «EOS перекладывает стоимость транзакций и хранения на разработчиков. Ethereum — на пользователей», — пишет участник обсуждения на Reddit.
Ю Тин Чен, CEO недавно запустившейся на EOS игры PandaFun, оценил стоимость всех требуемых для EOS-dApp ресурсов в 21,000 EOS ($122,000 по текущему курсу). При этом развертывание смарт-контракта для dApp на Ethereum уложится в $100.
Откуда такие цифры?
EOS по самой своей сути предполагает «долевое» устройство сети. Эта логика определена использующимся алгоритмом достижения консенсуса — DPoS (delegated proof-of-stake, или делегированное доказательство доли). Если при обычном proof-of-stake валидатором может стать любой участник сети (и вероятность того, что именно он добудет блок пропорциональна количеству находящихся на его счету монет — то есть его доле в сети), то в делегированной версии валидаторы, или производители блоков, «избираются» простыми пользователями. Так, сеть EOS поддерживается «постоянно меняющейся группой из 21 производителя блоков». Им доля в сети необходима для подтверждения транзакций и генерации блоков, а «избирателям» — для участия в выборах. Везде действует одно и то же правило, а именно — более весомый голос у того, кто владеет большей долей сети.
Другой, но также «долевой» механизм обеспечивает «повседневную» работу EOS, то есть позволяет пользователям (и разработчикам) открывать аккаунты, осуществлять транзакции и создавать смарт-контракты, а также защищает сеть от спама. Этот механизм называется стейкинг. По сути, он и делает возможным отсутствие комиссий, так как в сетях биткоина и эфира все эти операции (кроме создания аккаунта, который бесплатен) «спонсируются» комиссиями.
Стейкинг представляет собой «запирание» средств на определенный период времени в обмен на один из ресурсов, необходимых для работы в сети. Перечислим эти ресурсы:
Сетевой трафик (NET). Среднее потребление NET измеряется в байтах, затраченных вами за последние 3 дня. NET расходуется каждый раз, когда вы совершаете какое-то действие на блокчейне — например, отправляете транзакцию. Чем больше токенов вы резервируете как долю в сети, тем больше NET вы получаете в пользование.
Процессорное время, или вычислительные мощности (CPU). Это время, которое центральный процессор затрачивает на выполнение заданного действия. Среднее потребление CPU измеряется в микросекундах, затраченных вами за последние 3 дня. Процессорное время также расходуется при осуществлении каждого действия на блокчейне. И чем дольше оно производится, тем больше процессорного времени потребляет.
Эти ресурсы выделяются пропорционально сумме токенов, внесенных вами в трехдневный стейкинг-контракт. При осуществлении стейкинга вы указываете, какая часть должна пойти на приобретение CPU, а какая — на NET. Впоследствии вы можете либо добавить средства в контракт, либо отказаться от имеющихся в вашем распоряжении ресурсов, обменяв их обратно на токены EOS. То есть при стейкинге вы не теряете свои средства: находясь в контракте, они будут истощаться, однако по истечении трех дней стоимость контракта в EOS вернется к изначальному показателю. Единственное, что будет меняться — долларовый эквивалент.
Экономическая суть стейкинга в том, чтобы подтверждать, что вы не тратите «заложенные» токены в течение определенного контрактом времени. То есть вы держите токены в момент инфляции — когда производители блоков «чеканят» новые монеты, которые идут им в награду. Таким образом вы платите нодам, которые обрабатывают транзакции и предоставляют вычислительные мощности.
Третий ресурс — оперативная память (RAM). О нем поговорим отдельно, так как способ его приобретения отличен от стейкинга. Он покупается на внутреннем рынке RAM, цена регулируется автоматически в зависимости от спроса и предложения. RAM требуется для хранения данных на блокчейне, то есть вы платите за определенное количество байт. Если определенный объем памяти становится вам не нужен, вы можете его продать по текущему курсу и получить EOS. Объем RAM ограничен (в настоящее время — 72 ГБ, из которых задействовано 62% — 44 ГБ RAM), но при необходимости может быть увеличен. Так, производители блоков однажды уже повысили объем памяти, когда после запуска основной сети спекулянты начали скупать RAM, чтобы продать его позже по более высокой цене. Это подняло цены до 0.94 EOS за КБ — в 9 раз выше текущего уровня. Тогда было принято решение удвоить эмиссию RAM, добавив в течение года 64 ГБ из расчета 1 КБ на блок. И этот шаг позволил успокоить рынок оперативной памяти.
В промышленных масштабах
Для разработки EOS-приложений и онбординга (грубо говоря, привлечения) пользователей проекту потребуется большое количество трех перечисленных ресурсов, а следовательно — внушительный объем средств. Даже учитывая, что токены, оплачивающие NET и CPU, по сути, не расходуются, они должны постоянно быть «зарезервированы».
Кевин Роуз, сооснователь компании-производителя блоков EOS New York, рассказал, что ведет переговоры с группой разработчиков, которые хотят использовать EOS вместо своей текущей платформы.
О переходе с Ethereum на EOS уже открыто заявила ивент-платформа Tixico: EOS «обещает достаточно масштабироваться даже при миллионах пользователей, и это критически важно для платформы, предназначенной для одновременного обслуживания большого количества людей — как происходит при продаже билетов, когда десятки тысяч [человек] одновременно входят и совершают транзакцию». Из других преимуществ Tixico также отметили отсутствие комиссий.
Однако каждой из этих команд придется дорого заплатить за привлекательную масштабируемость. CEO PandaFun, сообщавший о 21,000 EOS, ушедших на разработку приложения, также рассказал о распределении токенов по ресурсам: так, 10,000 EOS (около $58,000 по текущему курсу) ушли на RAM, столько же — на CPU и 1000 EOS ($5800) — на NET. Однако Чен отметил, что большая часть оперативной памяти понадобится для приближающегося токенсейла — для самой игры ее потребуется меньше.
В среднем создание аккаунта для каждого пользователя требует 4 КБ RAM (около $2.7 по текущей цене RAM). Однако оперативная память требуется и для многих других действий. «Мы пока не понимаем общую стоимость онбординга пользователя dApp. Я не думаю, что эти данные… могут дать нам уверенность в среднем [ценовом показателе]», — сказал Роуз.
Однако в июне, когда стоимость создания аккаунта была даже ниже ($0.5−$1), участники обсуждения на GitHub уже отмечали, что такая модель RAM «просто не может работать, если ваша цель — создать десятки или сотни миллионов пользовательских аккаунтов для вашего dApp».
За чей счет
Затраты на ресурсы впоследствии могут стать проблемой не только для разработчиков, но и для пользователей EOS-приложений. «Есть сценарии использования, при которых разработчик может написать dApp так, чтобы пользователь должен был иметь собственные CPU и/или NET и/или RAM для взаимодействия. Это один из способов написать раннюю версию вашего dApp так, чтобы вы не разорились, если приложение внезапно станет популярным», — говорит бывший вице-президент по продукту Block.One Томас Кокс.
В обсуждении на Reddit, посвященном тому, как разработчики могут покрыть затраты на RAM, CPU и NET, введение специальных комиссий для пользователей стало одним из основных предложений. «Они могут легко ввести сбор за использование своего dApp. Без разницы, в EOS или в собственном токене. Сбор будет идти разработчикам приложения», — пишет пользователь под ником mr1ply. Другой участник обсуждения, SuddenAnalysis, отмечает, что, хотя многие приложения, очевидно, начнут взимать подобную плату, другие «будут иметь инфляционную модель, при которой разработчики получают часть или всю прибыль от инфляции, чтобы продолжать платить за [ресурсы] исключительно за счет ценности своей платформы». «Инфляция! Вы должны разработать свою крипто-экономику так, чтобы инфляция покрывала расходы на разработку», — написал ablejoseph.
При этом ресурсы, получаемые посредством стейкинга — CPU и NET — по мнению некоторых пользователей, не представляют большой проблемы для разработчиков: «Если разработчики уже внесли в качестве стейкинга “пачку” EOS, им не надо беспокоиться о текущих расходах. Токены будут масштабироваться сами по мере расширения сети. Если же им нужно купить больше EOS, тогда они должны быть в состоянии продать токен своего приложения, чтобы [этого хватило] на приобретение CPU и трафика», — пишет один из участников, отмечая, что «каждое dApp должно иметь хорошо продуманную экономическую модель, которая может поддерживать себя сама и расширяться».
Однако прогнозы по стоимости делать пока рано: сейчас сеть лишь начинает привлекать пользователей и разработчиков. По данным Dapp Radar, на данный момент только шесть EOS-приложений имеют более ста посетителей в день и только два — более тысячи. В связи с этим процессорное время стоит немного: 0.00049966 EOS за КБ ($0.003).
При этом в недавнем посте на Reddit пользователь второго по популярности EOS-приложения — игры EOS Knights — уже обращает внимание на труднодостижимые требования к объему стейкинга для CPU. Пользователь под ником AGameDeveloper рассказывает, что внес в качестве стейкинга 10 EOS ($59), но этого оказалось не достаточно. По данным EOS Knights, для начала игры доля пользователя на CPU должна составлять как минимум 15 EOS ($88), однако AGameDeveloper пишет, что по факту минимальный стейкинг равен $500. «Сегодняшняя доля использования CPU составляет 8%, так что представьте, насколько дорогим будет стейкинг при стопроцентном [использовании]», — написал один из участников обсуждения под постом.
Другие проблемы
В августе хакеры смогли поглотить оперативную память чужого аккаунта, используя функцию уведомлений, чтобы заспамить пространство RAM бесполезными данными. Одно из решений подобных проблем описал технический директор EOS Дэн Лаример, однако оно было предложено в рамках неоднозначного и еще не одобренного предложения полностью переписать «конституцию» EOS. Другое решение, опубликованное на GitHub, предполагает отправку токенов через прокси-смарт-контракты, не содержащие RAM. В любом случае, решение этой проблемы, по сути, остается на плечах разработчиков каждого отдельного приложения.
Кроме того, система, призванная защищать от спама, оказалась заспамленной, что стало возможным и не слишком затратным благодаря сегодняшней невысокой цене CPU. Владелец аккаунта Blocktwitter развлекался, «отправляя сообщения, включавшие 192 миллиона действий, что на сегодня составляет около 95% всех EOS-транзакций», рассказал Том Фу, партнер в компании-производителе блоков GenerEOS. Практически все из них содержат запись: «WE LOVE BM» (отсылка к никнейму Ларимера — bytemaster). По словам Фу, сообщения «не важны», но они оказывают негативное влияние на сеть, поскольку Blocktwittter владеет большой долей CPU, в результате чего процессорное время, выделенное другим пользователям и разработчикам, сокращается.
Свет в конце туннеля
В начале августа Лаример предложил модель для аренды CPU и NET, которая «снизит затраты на использование сети EOS».
А Кокс отметил несколько очевидных преимуществ EOS, которые уже сейчас отличают молодую платформу от Ethereum. Во-первых, новые «криптокотята» не остановят EOS, как это произошло с Ethereum: стейкинг гарантирует, что работоспособность сети будет поддерживаться определенным количеством зарезервированного CPU. Во-вторых, два из трех ресурсов EOS — CPU и NET — «возобновляемы» (в отличие от газа в Ethereum). То есть по истечении трехдневного срока действия стейкингового смарт-контракта средства будут высвобождены и могут быть вновь израсходованы в тех же (или иных) целях. Неиспользуемую или освободившуюся оперативную память (RAM) тоже можно продать — правда, возможно, по более низкой цене (а может, и по более высокой). Кроме того, арбитражная система, поддерживающая безопасность EOS, считается достаточно надежной для защиты от атак по сценариям DAO и Parity, тогда как разработчики Ethereum-приложений, по словам Кокса, находятся «в одном баге от банкротства».