Операционные издержки
Некоторые ресурсы в сети блокчейн ограничены, например, хранение и вычисления. Плата за транзакции не позволяет отдельным пользователям потреблять слишком много ресурсов. Edgeware использует модель оплаты на основе веса, а не модель учета газа. Таким образом, сборы взимаются до выполнения транзакции; после оплаты комиссии узлы выполнят транзакцию.
Web3 Foundation Research разработала систему комиссий Polkadot со следующими целями:
- Каждый блок Relay Chain должен обрабатываться эффективно, чтобы избежать задержек в производстве блоков.
- Скорость роста релейной цепи должна быть ограничена.
- В каждом блоке должно быть место для специальных высокоприоритетных транзакций, таких как отчеты о неправомерных действиях.
- Система должна быть в состоянии справляться с резкими скачками спроса.
- Комиссии должны меняться медленно, чтобы отправители могли точно предсказать комиссию за данную транзакцию.
Расчет комиссии
Плата за Edgeware рассчитывается на основе трех параметров:
- Плата за байт (также известная как "плата за длину")
- Плата за вес
- чаевые (по желанию)
Плата за длину является произведением постоянной платы за байт и размера транзакции в байтах.
Веса — это фиксированное число, предназначенное для управления временем, которое требуется для проверки блока. Каждая транзакция имеет базовый вес, учитывающий накладные расходы на включение (например, проверку подписи), а также вес отправки, учитывающий время выполнения транзакции. Общий вес умножается на комиссию за вес для расчета комиссии за вес транзакции.
Чаевые — это необязательная плата за транзакцию, которую пользователи могут добавить, чтобы повысить приоритет транзакции.
Вместе эти три сбора составляют плату за включение. Эта комиссия списывается со счета отправителя до выполнения транзакции. Часть комиссии пойдет производителю блоков, а оставшаяся часть пойдет в Казначейство. При происхождении Edgeware это установлено на 20% и 80% соответственно.
Лимиты блоков и приоритет транзакций
Блоки в Edgeware имеют как максимальную длину (в байтах), так и максимальный вес. Производители блоков будут заполнять блоки транзакциями до этих пределов. Часть каждого блока — в настоящее время 25% — зарезервирована для важных транзакций, связанных с работой сети. Производители блоков будут заполнять только до 75% блока обычными транзакциями. Некоторые примеры операционных транзакций:
- Отчеты о ненадлежащем поведении
- Работа совета
- Действия участников на выборах (например, отказ от кандидатуры)
Производители блоков расставляют приоритеты транзакций на основе общей комиссии за каждую транзакцию. Поскольку часть комиссии будет идти производителю блока, производители будут включать транзакции с самой высокой комиссией, чтобы максимизировать свое вознаграждение.
Корректировка комиссии
Объем транзакций в блокчейне очень нерегулярен, поэтому комиссия за транзакцию нуждается в механизме для корректировки. Однако пользователи должны иметь возможность прогнозировать комиссию за транзакцию.
Edgeware использует механизм медленной корректировки платы с подсказками, чтобы сбалансировать эти два соображения. В дополнение к ограничениям по блокам Edgeware также имеет цель заполнения блока. Комиссии увеличиваются или уменьшаются для следующего блока в зависимости от заполнения текущего блока по отношению к цели. Плата за вес может меняться до 30% в течение 24 часов. Этот показатель отражает долгосрочные тенденции спроса, но не краткосрочные всплески. Чтобы учесть краткосрочные всплески, Edgeware использует чаевые в дополнение к плате за длину и вес. Пользователи могут дополнительно добавить чаевые к комиссии, чтобы придать транзакции более высокий приоритет.
Шардовые транзакции
Транзакции, которые происходят в шардах Polkadot — парачейнах и паратредах — не взимают комиссию за транзакцию Relay Chain. Пользователям шардовых приложений даже не нужно держать токены DOT, поскольку каждый шард имеет свою экономическую модель и может иметь или не иметь токен. Однако бывают ситуации, когда сами осколки совершают транзакции в цепочке ретрансляции.
У парачейнов есть выделенный слот в цепочке реле для выполнения, поэтому их составителям не нужно владеть DOT, чтобы включать блоки. Парачейн сам совершает некоторые транзакции, например, открывает или закрывает канал XCMP, участвует в аукционе по обновлению своего слота или обновляет время выполнения. Парачейны имеют свои собственные счета в релейной цепочке, и им нужно будет использовать эти средства для совершения транзакций от имени парачейна.
Паратреды также будут выполнять все те же транзакции, что и парачейн. Кроме того, составители должны участвовать в аукционе каждого блока, чтобы продвигать свою цепочку. Для участия в этих аукционах сборщики должны иметь DOT.
Другие стратегии ограничения ресурсов
Вес транзакции должен быть вычислим до выполнения и, следовательно, может представлять только фиксированную логику. Некоторые транзакции требуют ограничения ресурсов с помощью других стратегий. Например:
- Облигации: для некоторых транзакций, таких как голосование, может потребоваться облигация, которая будет возвращена или сокращена после события в сети. В примере с голосованием возвращается в конце выборов или сокращается, если избиратель пытался сделать что-то злонамеренное.
- Депозиты: для некоторых транзакций, таких как установка личности или получение индекса, пространство для хранения используется неограниченное время. Для этого требуется депозит, который будет возвращен, если пользователь решит освободить хранилище (например, очистить свою ide).
- Сжигание: транзакция может сжечь средства внутри на основе своей логики. Например, транзакция может сжечь средства отправителя, если она создаст новые записи в хранилище, тем самым увеличив размер состояния.
- Ограничения: некоторые ограничения являются частью протокола. Например, номинаторы могут номинировать только 16 валидаторов. Это ограничивает сложность Phragmén.
Передовой
На этой странице рассматриваются только транзакции, которые исходят от обычных пользователей. Однако, если вы посмотрите на блоки в обозревателе блоков, вы можете увидеть некоторые «внешние элементы», которые отличаются от этих транзакций. В Edgeware внешняя часть — это часть информации, которая поступает из-за пределов цепочки. Внешние элементы делятся на три категории:
- Подписанные транзакции
- Неподписанные транзакции
- Неотъемлемые
На этой странице рассматриваются только подписанные транзакции, так как большинство пользователей будут взаимодействовать с Edgeware. Подписанные транзакции поступают со счета, на котором есть средства, поэтому Edgeware может взимать комиссию за транзакцию для предотвращения спама.
Неподписанные транзакции предназначены для особых случаев, когда пользователю необходимо отправить внешний ключ из пары ключей, которая не контролирует средства. Например, когда пользователи требуют свои токены DOT после генезиса, на их адресе DOT еще нет средств, поэтому используется неподписанная транзакция. Валидаторы также отправляют неподписанные транзакции в виде сообщений «пульса», чтобы указать, что они находятся в сети. Эти такты должны быть подписаны одним из сеансовых ключей валидатора. Сеансовые ключи никогда не контролируют средства. Неподписанные транзакции используются только в особых случаях, потому что, поскольку Edgeware не может взимать плату за них, каждая из них нуждается в собственной настраиваемой логике проверки.
Наконец, неотъемлемые части — это фрагменты информации, которые не подписаны и не включены в очередь транзакций. Таким образом, только автор блока может добавлять свойства к блоку. Неотъемлемые свойства считаются «истинными» просто потому, что достаточно большое количество валидаторов согласились с тем, что они разумны. Например, блоки Edgeware включают встроенную временную метку. Невозможно доказать, что временная метка верна, как доказывают желание отправить средства подписью. Скорее, валидаторы принимают или отклоняют блок в зависимости от того, насколько разумной они считают отметку времени. В Edgeware оно должно быть в допустимом диапазоне собственных системных часов.