Улучшенная система биллинга ресурсов в блокчейне Fractally

in #fractally2 years ago (edited)

Перевод оригинальной статьи Дэна Ларимера - ++https://hive.blog/fractally/@dan/fractally-s-better-blockchain-resource-billing-system++

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

В каждом блокчейне используется своя модель ресурсов, которая позволяет найти компромисс между удобством использования, безопасностью, социализацией, приватизацией и стимулированием. Каждая модель в той или иной мере должна идти на компромиссы; вопрос лишь в том, какая модель лучше всего способна обеспечить конкурентоспособный пользовательский опыт?

Даже централизованные приложения должны ограничивать пользователей. Например, Github предоставляет бесплатно только столько времени для хранения и вычислений, а затем начинает взимать плату. В этой заметке я собираюсь изучить компромиссы ресурсных моделей EOS, ETH и KOINOS, а затем предложить новую модель, которая, хотя и не идеальна, может обеспечить лучший набор компромиссов.

Накладные расходы при измерении

Все имеет свою цену, даже измерение ресурсов и сбор платежей. Например, платформы, использующие объективную тарификацию процессора (ETH/KOINOS), должны подсчитать общее количество и тип инструкций, а затем найти стоимость каждого типа инструкций, чтобы получить детерминированную цену. Это неточная наука, потому что ни одна модель стоимости не отражает точно фактическую стоимость операций. Это означает, что определенный процент ограниченных ресурсов ЦП используется для получения приблизительной, но, безусловно, неточной меры того, сколько нужно выставить кому-либо счетов за ЦП.

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

Альтернативный подход, субъективная тарификация процессора (EOS), полагается на доверенные оракулы, которые сообщают реальное время, затрачиваемое на выполнение каждой транзакции. Это снижает накладные расходы процессора на измерение и потенциально позволяет более точно учитывать процессорное время; однако за это приходится платить доверием. Разные компьютеры затрачивают разное количество времени, а один и тот же компьютер может затрачивать разное количество времени в зависимости от других фоновых задач, выполняемых одновременно. Этот субъективный подход вносит ошибки в измерения из-за случайного шума, подобно тому, как объективный подход не моделирует шум.

Выполняя работу по проектированию баз данных, вы узнаете, что время процессора часто связано больше с попаданиями/промахами в кэш, чем с реальными инструкциями. Один и тот же набор инструкций процессора может занимать в 1000 раз больше времени в зависимости от того, к каким областям памяти они пытаются обратиться. Чтобы решить эту проблему, объективная биллинговая система должна была бы ошибиться в том, что каждый доступ к памяти - это промах кэша, или же злоумышленник мог бы создать транзакцию, которая намеренно занимает в 1000 раз больше времени, чем объективная модель, потому что она пытается получить доступ к памяти наименее удобным для кэша способом, который только можно себе представить.

Все имеет свою цену

Из существующих систем мы узнали, что предотвращение спама требует от кого-то определенной платы за ресурсы. Эти затраты можно скрыть различными способами, но устранить их невозможно. В таких системах, как EOS и KOINOS, стоимость транзакций скрыта в капитальных затратах на хранение токенов. EOS заставляет людей делать ставки на будущее (отказываясь от ликвидности), а KOINOS дает людям кредит за хранение в прошлом. Говоря иначе, KOINOS делает краткосрочные ставки точно в срок на то, что необходимо. Затем "мана" должна быть регенерирована. Пользователи не "заперты", потому что они всегда могут продать, они просто не получают ресурсы, пока не продержатся достаточно долго, чтобы сгенерировать "ману".

Поскольку "мана" и EOS распределяют ресурсы пропорционально токенам, вам потребуется 1% токенов, чтобы использовать 1% сети. Вы быстро обнаружите, что для проведения даже небольшого количества транзакций требуются токены стоимостью в тысячи долларов. Даже если токены не расходуются, пользователь принимает на себя экономические риски, ежедневные колебания которых приводят к приросту и потерям капитала на сотни долларов, не говоря уже о стоимости налоговой отчетности. В целом, это вытесняет большинство пользователей с рынка и вынуждает их арендовать ресурсы у других.

Поскольку Koinos Mana не требует ставок, большая часть маны будет генерироваться биржами, которые могут "делегировать" ее пользователям, которые за нее платят. В результате, хотя ресурсы могут "казаться бесплатными" для людей, которые в любом случае будут держать большое количество токенов, подавляющее большинство потенциальных пользователей хотят оплачивать только дополнительные расходы на свои отдельные транзакции. Это означает, что вместо "геймификации" и "автоматизации" пользователи Koinos, у которых нет большого количества токенов, в конечном итоге вынуждены оплачивать когнитивные и ресурсные накладные расходы на то, чтобы платить кому-то за делегирование им маны. В худшем случае, технологические накладные расходы приходятся на каждую транзакцию. В лучшем случае пользователь платит один раз за определенное количество делегированной маны.

Одним из преимуществ модели KOINOS по сравнению с моделью EOS является то, что пользователям нужно только управлять балансом маны, а сеть автоматически взаимодействует с рынками CPU/NET/RAM, чтобы купить только то, что необходимо. Это значительное улучшение по сравнению с EOS, где пользователи должны думать о правильном соотношении этих различных ресурсов при аренде у сети.

Извлеченные уроки

Независимо от того, какую систему ставок вы используете, стоимость капитала гораздо более обременительна для подавляющего большинства пользователей, чем дополнительные платежи, которые они платят за аренду ресурсов у тех, у кого есть капитал. Мы также узнали, что пользователи не должны думать об отдельных типах ресурсов (RAM/NET/CPU) и вместо этого должны думать только об одном числе: совокупной экономической стоимости. Мы также увидели, что принуждение к появлению сложных рынков "делегирования ресурсов" только увеличивает технические и когнитивные накладные расходы всей системы.

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

Объективная тарификация взимает плату с пользователей за пройденные километры дороги, независимо от скорости движения. Субъективная тарификация взимает плату с пользователей по количеству времени, которое они фактически провели на дороге.

Независимо от того, используете ли вы объективный или субъективный биллинг, управление блокчейном необходимо для корректировки графика платежей или для привлечения оракулов к ответственности за отчетность хоста о процессорном времени. Конечным результатом для большинства пользователей является то, что они доверяют своему пользовательскому интерфейсу и операторам сети справедливо выставлять счета и идут заниматься своими делами. Пользуются ли они Amazon Web Services, местными платными дорогами, бензоколонкой или коммунальными услугами, люди привыкли к тому, что доверяют сервисам выставлять счета ежемесячно и автоматически.

Извлеченные уроки

Независимо от того, какую систему ставок вы используете, стоимость капитала гораздо более обременительна для подавляющего большинства пользователей, чем дополнительные платежи, которые они платят за аренду ресурсов у тех, у кого есть капитал. Мы также узнали, что пользователи не должны думать об отдельных типах ресурсов (RAM/NET/CPU) и вместо этого должны думать только об одном числе: совокупной экономической стоимости. Мы также увидели, что принуждение к появлению сложных рынков "делегирования ресурсов" только увеличивает технические и когнитивные накладные расходы всей системы.

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

Объективная тарификация взимает плату с пользователей за пройденные километры дороги, независимо от скорости движения. Субъективная тарификация взимает плату с пользователей по количеству времени, которое они фактически провели на дороге.

Независимо от того, используете ли вы объективный или субъективный биллинг, управление блокчейном необходимо для корректировки графика платежей или для привлечения оракулов к ответственности за отчетность хоста о процессорном времени. Конечным результатом для большинства пользователей является то, что они доверяют своему пользовательскому интерфейсу и операторам сети справедливо выставлять счета и идут заниматься своими делами. Пользуются ли они Amazon Web Services, местными платными дорогами, бензоколонкой или коммунальными услугами, люди привыкли к тому, что доверяют сервисам выставлять счета ежемесячно и автоматически.

Предлагаемая модель ресурсов

Пользователи предварительно пополняют свой "бензобак" токенами в соотношении 1:1. Когда они совершают транзакции, сеть рассчитывает точное количество использования CPU/NET/RAM и покупает только то, что необходимо, на внутренних рынках ресурсов. Никто другой не может покупать/продавать/спекулировать на эти ресурсы, потому что они являются лишь внутренней системой учета для расчета того, сколько "бензина" нужно взять из бака для каждой транзакции.

Как и в Koinos, пользователи могут просто иметь небольшое количество ликвидных токенов на своем счету, и им не придется много думать о комиссионных. Система будет автоматически выставлять им счета за использование ресурсов. Каждый пользователь может выбрать, какой объем бензобака ему нужен, и порог, при котором его следует пополнять.

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

Это позволяет пользователям легко покупать бензин для других пользователей, не беспокоясь о том, что они продадут бензин, чтобы купить выпивку. Это позволяет смарт-контрактам предоставлять газ пользователям без необходимости отслеживать состояние делегирования, отзыва и т. д. Это означает, что при создании новых аккаунтов и предварительном финансировании их некоторым количеством газа нет необходимости беспокоиться о том, что люди обманут средства защиты от атак Sybil, чтобы получить прибыль от продажи "бесплатных" ресурсов.

Предотвращение захвата ресурсов

Одной из проблем хранения данных является создание стимулов для освобождения данных без одновременного создания стимулов для их захвата с целью спекуляции. Если цена хранения растет по мере использования, а пользователи могут получить деньги обратно по более высокой цене, удалив данные, то некоторые пользователи будут хранить пустые данные сегодня, повышать цену, а затем удалять эти данные в будущем, получая прибыль. Таким образом, прибыль переходит из общего достояния общества в частные руки. Поэтому я предлагаю, чтобы возмещение, предоставляемое при удалении данных, составляло 50% от стоимости покупки данных. Спекулянт получит прибыль только в том случае, если цена на ресурсы удвоится с момента начала захвата до момента их освобождения.

Более того, возврат средств от освобождения хранилища пошел бы в бензобак (кредит магазина) и не мог бы принести экономической выгоды. Такому спекулянту пришлось бы создать смарт-контракт, субсидирующий пользовательские транзакции, а другим пользователям пришлось бы использовать пользовательские интерфейсы, интегрирующие дополнительные вызовы в каждую транзакцию. Дополнительные затраты на CPU/NET/RAM еще больше снижают потенциальную прибыль при попытке перепродажи "возврата подарочных карт".

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

Устранение теневого биллинга

Теневой биллинг был введен в EOS для борьбы со спамерами неудачных транзакций. В EOS неудачная транзакция не может быть включена в блокчейн, и поэтому спамеру не может быть выставлен счет. Чтобы остановить этот спам, каждый узел ведет локальный учет того, сколько времени потратил конкретный пользователь на неудачные транзакции, и молча отбрасывает транзакции, превышающие установленный лимит. Часто пользователи, видя неудачу, продолжают попытки снова и снова, и только еще больше загоняют себя в яму. Через 24 часа теневой биллинг исчезает, а пользователь, как правило, расстраивается и уходит.

Поскольку EOS уже доверяет своему процессу управления, чтобы производить достоверные биллинги CPU, это будет небольшим изменением, чтобы позволить им выставлять счета за неудачные транзакции. В отличие от блокчейнов, которые платят майнерам (Ethereum), производители блоков не имеют большого экономического интереса в намеренном провале действительных транзакций только для того, чтобы получить плату. При наличии эффективного управления, связанных производителей блоков и максимальных лимитов комиссионных, неудачные транзакции могут быть объективно учтены.

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

При таком подходе пользователи могут получать достоверную информацию обо всех своих транзакциях, успешных и неуспешных, без таинственных отклонений.

Заключение

Модели ресурсов являются проблемой для каждого блокчейна. Я надеюсь, что этот новый взгляд дает сообществам EOS, KOINOS, Hive и Ethereum некоторые идеи о том, как улучшить свою модель и создать для своих сообществ более низкие накладные расходы, более простой в использовании и более дешевый опыт использования ресурсов. Новый блокчейн от fractally будет включать в себя большинство этих идей, а также некоторые другие усовершенствования, о которых станет известно в ближайшие недели.

Подробнее о Fractally можно узнать на сайте - https://fractally-ru.com

Подписывайтесь на мой телеграм канал чтобы узнавать подробнее о Фракталли и многом другом.

Sort:  

Подписывайтесь на мой телеграм канал чтобы узнавать подробнее о Фракталли и многом другом на русском языке.