📢 Хардфорк Steem 20 – Velocity
Сегодняшний пост является кратким изложением изменений, представленных в Хардфорке Velocity (т.е. Хардфорке 20). Мы стремились предоставить вам полноценное описание всех изменений, включенных в этот очередной хардфорк, проведение которого запланировано на вторник, 25 сентября, 11:00 по восточному стандартному времени. Вступление в силу изменений Хардфорка Velocity зависит от одобрения квалифицированного большинства (17/21) заверителей.
Система ресурсных кредитов
Одним из основных аспектов ХФ Velocity является замена нашей существующей системы распределения пропускной способности на новую улучшенную систему, основанную на ресурсных кредитах (Resource Credits – RC).
Steem – фактически единственный блокчейн в мире, использующий модель freemium. Новая система RC превратит его в самый технически продвинутый freemium блокчейн без ущерба для существующих функций и возможностей, которые делают Steem столь мощной платформой для создания DApps.
Детали механизма работы системы ресурсных кредитов описаны в посте Blockchain Update 4: Resource Credit Implementation Details.
GitHub Issue 2457, GitHub Issue 2511, GitHub Issue 2512, GitHub Issue 2521, GitHub Issue 2549, GitHub Issue 2563, GitHub Issue 2600, GitHub Issue 2621, GitHub Issue 2624, GitHub Issue 2625, GitHub Issue 2626, GitHub Issue 2627, GitHub Issue 2631, GitHub Issue 2546, GitHub Issue 2547, GitHub Issue 2648, GitHub Issue 2649, GitHub Issue 2650, GitHub Issue 2679, GitHub Issue 2685, GitHub Issue 2694 и GitHub Issue 2703
Обновление системы создания аккаунтов
Основная цель ХФ Velocity – изменить систему создания аккаунтов так, чтобы снизить затраты и облегчить процесс начала работы для новых пользователей.
Создание аккаунта со скидкой
Хардфорк предоставит пользователям возможность создавать новые аккаунты со скидкой, возможно, без необходимости платить STEEM или делегировать Steem Power в процессе создания. При создании нового аккаунта пользователи смогут использовать свои RC, чтобы покрыть часть (или всю) платы за создание аккаунта STEEM.
RC, которые тратятся при создании аккаунтов со скидкой – это те же самые RC, которые потребляются, когда пользователи взаимодействуют с блокчейном. Это ограничивает возможность пользователей взаимодействовать с блокчейном, когда у них остается совсем мало RC. Пользователи (особенно те, кто имеет умеренное или низкое количество Steem Power) должны быть осторожны и не тратить слишком много своих RC на создание аккаунтов со скидкой, иначе они не смогут взаимодействовать с блокчейном до тех пор, пока их RC-мана не восстановится.
GitHub Issue 1771, GitHub Issue 1772, GitHub Issue 2651, GitHub Issue 2700 и GitHub Issue 2710
Токены для создания аккаунта со скидкой
В блокчейне будет создан глобальный пул скидочных токенов, который будет представлять собой потенциальное количество аккаунтов со скидкой, которые могут быть созданы в данный момент. Каждый раз, когда пользователь создает новый аккаунт, оплачивая часть (или всю) комиссии с помощью RC вместо STEEM, будет вычитаться один токен. Если в пуле не осталось токенов, то создание аккаунтов со скидкой в таком случае невозможно.
Количество новых токенов для создания аккаунтов со скидкой, генерируемых каждый день, будет контролироваться заверителями. Эта обязанность присвоена заверителям, так как они мотивированы следить за тем, чтобы скорость создания новых аккаунтов не становилась слишком обременительна для блокчейна.
Заверители также будут контролировать общее количество токенов, существующее в любой отдельный момент времени. Это делается для предотвращения накопления чрезмерного количества токенов, если спрос на их использование недостаточен.
GitHub Issue 1770, GitHub Issue 2628 и GitHub Issue 2688
Рынок основанного на доле создания аккаунтов со скидкой
В соответствии с тем, что мы предпочитаем использовать для преодоления сложностей распределения ресурсов непосредственно рынки, стоимость создания аккаунтов со скидкой (с использованием RC) будет варьироваться в зависимости от состояния внутреннего рынка.
Когда доступное предложение аккаунтов со скидкой низкое и/или спрос на них высок, количество RC, которое необходимо будет использовать вместо платы за создание аккаунта STEEM, будет большим. Когда доступное предложение аккаунтов со скидкой высоко и/или спрос на них низок, для компенсации платы за создание аккаунта STEEM потребуется меньше RC.
Следует отметить, что на основе спроса и предложения доступных аккаунтов со скидкой иметь возможность их создавать будут только продвинутые пользователи (Power Users – те, кто владеет большим количеством SP).
GitHub Issue 1767 и GitHub Issue 1769
Сжигание платы за создание аккаунтов
Вместо использования платы за создание аккаунтов для повышения силы новых аккаунтов, она будет “сжигаться” путем ее перевода на аккаунт null.
Устранение возможности создания аккаунтов с помощью делегирования
После активации ХФ Velocity больше не будет возможности создавать аккаунты с помощью делегирования Steem Power, так как плата за создание аккаунтов будет сжигаться. Поэтому операция account_create_with_delegation будет устранена.
Пользователи по-прежнему смогут делегировать SP другим пользователям с помощью стандартных процедур делегирования.
Отмена изменений в плате за создание аккаунта
Когда мы первоначально добавили поддержку создания аккаунтов с делегированной SP, мы позволили покрывать часть выплачиваемой заверителям account_creation_fee делегированной Steem Power в 5-кратном количестве. С новым изменением цена создания аккаунта без делегированной SP стала равна 30-кратной плате за создание аккаунта. Например, в настоящее время плата за создание аккаунта составляет 0,1 STEEM, а цена создания нового аккаунта будет составлять 3,0 STEEM.
Поскольку создание аккаунтов с делегированием больше не будет поддерживаться, дополнительная сложность в виде умножения платы за создание аккаунта больше не требуется. Мы откатим изменение, требующее увеличивать плату в 30 раз. Например, если заверители установят плату за создание аккаунта в размере 3,0 STEEM, создания аккаунта будет стоить ровно 3,0 STEEM.
Во время хардфорка будет произведено одноразовое, 30-кратное увеличение платы для каждого из заверителей, так что после хардфорка цена создания аккаунта не уменьшится в 30 раз. Например: если у всех заверителей плата за создание аккаунта установлена на 0,1 STEEM, во время хардфорка она будет изменена на 3,0 STEEM, так что создание аккаунта всё равно будет стоить 3,0 STEEM. После того, как произойдет одноразовое увеличение в 30 раз, заверители смогут снова обновлять свои платы за создание аккаунта как обычно.
Изменения в пороге минимальной силы голоса
Порог минимальной силы голоса – это правило, предотвращающее появление в сети крайне слабых голосов, которое было реализовано для борьбы с разростанием блокчейна. В настоящее время для успешной публикации в блокчейне аккаунт должен обладать около 1 SP, чтобы голосовать на 100% силы голоса. Если отданный голос оказался ниже требуемого порогового значения, блокчейн его отклонит. Это может стать причиной плохого пользовательского опыта для новых людей, поскольку им может быть отказано в праве голоса без очевидной причины.
Хардфорк Velocity изменит механизм работы порога минимальной силы голоса, позволив пользователям с любым количеством SP отдавать голоса, если у них имеется достаточно RC. Голоса, сила которых находится ниже порога, будут отправлены в блокчейн, но не повлияют на вознаграждения. Это позволит улучшить пользовательский опыт во всех приложениях на основе Steem, дав возможность голосовать, когда захочется (независимо от силы голоса), при условии наличия достаточного количества RC.
Это изменение сделает влияние очень слабых голосов нулевым.Чтобы добиться одинакового отношения ко всем голосам (большим и малым), из вознаграждения всех голосов выше порога будет удаляться одинаковая сумма. Это установит базовый вес голоса, применимый ко всем. Помимо того, что это делает процесс более справедливым, это изменение также добавляет небольшую кривизну в линейную кривую вознаграждения в нижнем конце спектра (для предотвращения спама), сохранив при этом линейную кривую вознаграждения голосов выше базового уровня.
GitHub Issue 1764 и GitHub Issue 2515
Устранение ограничения на минимум SP для понижения силы (Power Down)
В настоящее время блокчейн не позволяет проводить понижение силы аккаунтов, которые обладают менее 10x текущей платы за создание аккаунта. Это было сделано для того, чтобы люди не могли создавать новые аккаунты, чтобы сразу понизить их силу и вывести эти средства.
После хардфорка Velocity плата за создание аккаунта будет сжигаться вместо ее использования для повышения силы нового аккаунта. Поскольку новый аккаунт не будет получать какой-либо SP, для понижения силы и вывода не будет доступно ничего, кроме SP, накопленной создателем аккаунта. По этой причине требование наличия 10x будет удалено.
Обновления в процессе курирования
30-минутное окно курирования
Владельцы аккаунтов (включая аккаунты ботов) в настоящее время не получают от блокчейна Steem мотивации голосовать за пост в течение первых 30 минут. Чем раньше был отдан голос в этом 30-минутном окне, тем меньше будет вознаграждение за курирование. Первоначально это было введено, чтобы уравнять игровое поле для кураторов-людей и ботов еще в то время, когда большую часть контента на Steem составляли длинные текстовые посты.
Несмотря на успешность [этой меры], с тех пор на Steem многое изменилось. Steem теперь поддерживает все виды контента и сотни децентрализованных приложений, которые также значительно расширили спектр контента, представленного на Steem. Вследствие этого сообщество и заверители пришли к единому мнению о том, что 30-минутное правило значительно снижает кураторские вознаграждения у тех людей, которые активно потребляют контент и голосуют за посты, которые им нравятся. По этой причине хардфорк Velocity уменьшит окно курирования с 30 до 15 минут.
Вознаграждение при голосовании за себя
Согласно действующим правилам блокчейна, если авторы голосуют за себя сразу же после публикации, они получают своё авторское вознаграждение, 100% кураторских вознаграждений за их голос и часть кураторских вознаграждений от всех, кто проголосует за пост после них. Любой куратор, проголосовавший в то же время, что и автор, получит 0% кураторского вознаграждения. Это дает автору несправедливое преимущество перед другими кураторами, поскольку автор может получать дополнительное кураторское вознаграждение, голосуя за себя.
Дабы устранить это преимущество, часть вознаграждений, которые не выплачиваются кураторам из-за раннего голосования, вместо присуждения автору будет возвращаться в пул вознаграждений, тем самым увеличивая общий процент вознаграждений, выплачиваемых кураторам. Это лучше соответствует исходной задаче бюджета кураторских вознаграждений: обеспечивать, чтобы блокчейн Steem распределял вознаграждения на самый ценный контент.
Истечение срока действия ордеров внутреннего рынка
Нынешняя реализация внутреннего рынка диктует, что срок действия лимитных ордеров никогда не истекает. Это позволяет пользователям размещать на внутреннем рынке ордера, которые требуют долгосрочного использования консенсусной пропускной способности, тем самым снижая общую производительность блокчейна. После введения Velocity срок действия всех ордеров на внутреннем рынке блокчейна будет истекать через 28 дней. Это схоже с реализацией биржевых стаканов на многих крупных биржах. Срок действия существующих лимитных ордеров истечет спустя 28 дней после хардфорка.
Изменения, касающиеся заверителей
Приведенные ниже изменения затронут преимущественно заверителей.
Обновление формата потока котировок от заверителей
С переходом на Velocity обновятся требования к котировкам от заверителей. Теперь базовым активом котировок будет являться SBD, а котируемым – STEEM. Котировки, в которых базовым активом является STEEM, а котируемым – SBD, будут отклонены.
Гибкие параметры заверителя
Также будет добавлена новая операция witness_set_properties. Это позволит заверителям обновлять отдельные параметры, а не выполнять вызов update_witness со всем сразу. Операция будет поддерживать: изменение платы за создание аккаунта, максимального размера блока, процента интереса в sbd, ключ подписи и URL-адрес заверителя. Используя этот новый метод, заверители также смогут предлагать свои котировки.
Эта новая операция будет аутентифицироваться ключом подписи заверителя вместо активного ключа. Это означает, что заверители, которые отправляют свои котировки с использованием новой операции, теперь смогут делать это с помощью своего ключа подписи. Это обеспечивает заверителям определенную степень безопасности, так как им больше не нужно будет хранить свой активный ключ на любом из своих серверов.
Текущая операция обновления заверителя останется в рабочем состоянии, однако в нее не будут добавлены новые параметры заверителя. Эта операция должна оставаться функциональной, поскольку она предоставляет метод обновления ключа подписи заверителя с активными полномочиями аккаунта.
GitHub ишью 352 и GitHub ишью 1620
Ограничение максимального размера блока
Заверители смогут устанавливать максимальный размер блока, принимаемый блокчейном Steem. Однако протокол p2p будет иметь ограничение в 2MiB на размер блока, который способна обрабатывать p2p сеть. Заверители должны устанавливать значение не выше, чем разрешенное сетью p2p.
Чтобы не дать заверителям разрешить создавать блоки выше этого предела в 2MiB, мы добавили предел в 2MiB для параметра максимального размера блока, предлагаемого заверителями.
GitHub ишью 1655 и GitHub ишью 2642
Новые параметры заверителей
У заверителей появится два новых параметра, для которых они могут предлагать изменения. Account_subsidy_daily_rate
будет контролировать количество токенов создания аккаунта со скидкой, которое ежедневно добавляется в глобальный пул. Account_subsidy_pool_cap
будет задавать максимальное количество данных токенов в пуле. Эти значения будут предоставляться через новую процедуру witness_set_properties
, описанную выше.
GitHub ишью 1765 и GitHub ишью 2688
20-секундное ограничение на комментарии
В хардфорке Velocity будет удалено 20-секундное ограничение на комментарии. Блокчейн теперь позволит добавлять новый комментарий в каждом блоке (один раз в три секунды), что является тем же ограничением, что и при голосовании. Особая благодарность активному участнику сообщества разработчику @mejustandrew за отправку пул реквеста для этого изменения!
Устранение эксплойтов, приводящих к двойному голосованию
Два пользователя сообщили об эксплойтах, благодаря которым аккаунт может получить дополнительную силу голоса, использовав всю свою силу голоса, а затем делегировав SP другому аккаунту или проведя понижение силы и сразу после – ее повышение на другом аккаунте. Мы включим исправления для этих эксплойтов в Velocity. Более подробную информацию об исправлениях можно найти здесь.
GitHub ишью 2428 и GitHub ишью 2539
Сокращение периода восстановления делегированной SP
В рамках изменений, которые мы вносим для устранения эксплойта с двойным голосованием, мы предлагаем сократить период восстановления делегированной SP с семи до пяти дней. Это означает, что после того, как пользователь отменит делегирование SP другому пользователю, SP будет возвращена на его аккаунт и снова станет доступна для использования всего через 5 дней.
Увеличение точности значения силы голоса аккаунта
Также в рамках исправлений, которые мы вносим для устранения эксплойта с двойным голосованием, мы намерены повысить точность значения силы голоса (начиная с данного хардфорка – voting mana). Это увеличит количество голосов, которые может отдать аккаунт, у которого осталось менее 2% силы голоса, поскольку теперь блокчейн позволит лучше детализировать голоса.
Минимальный порог использования аккаунта
Несмотря на то, что плата за создание аккаунтов будет сжигаться, аккаунты, созданные после активации ХФ Velocity по-прежнему смогут совершать транзакции в блокчейне даже с нулевым уровнем SP, поскольку сжигаемый SP по-прежнему будет учитываться при расчете их RC-баланса.
GitHub ишью 2488 и GitHub ишью 2595
Период заморозки апвоутов
В ХФ 17 было внесено изменение, призванное предотвратить злоупотребление апвоутами путем введения двенадцатичасового периода заморозки в конце периода выплаты вознаграждения за пост. В течение этого времени пользователям больше не разрешается апвоутить пост. Это не дает пользователям скрывать апвоут за самих себя в конце периода выплаты и тем самым злоупотреблять пулом вознаграждений. Тем не менее, пользователи сохранили возможность сделать даунвоут в качестве защиты на случай, если пользователь проголосует за себя сразу перед началом 12-часового периода заморозки. И хотя такие случаи – редкость, это дало злоумышленникам возможность выжидать наступления периода заморозки и делать даунвоуты, которым уже нельзя противопоставить апвоуты.
Velocity учтет этот потенциальный сценарий и заменит заморозку на постепенное снижение. После активации Velocity будет разрешено делать апвоуты и даунвоуты в течение последних 12 часов периода выплаты, однако в течение этого времени их сила (при одинаковой силе голоса) будет линейно уменьшаться со 100% до 0%. Другими словами, чтобы иметь такое же влияние на выплату поста, потребуется в два раза больше силы голоса, если голос отдан, когда осталось шесть часов до выплаты вместо двенадцати. Апвоут или даунвоут, сделанный в течение последней минуты практически не повлияет на вознаграждение за пост.
Это изменение гарантирует, что независимо от того, когда пост получит апвоут или даунвоут, пользователи смогут при необходимости ему противодействовать. Это также поможет стабилизировать потенциальные выплаты постов на протяжении последних 12 часов путем уменьшения силы голосов по мере приближения к моменту выплаты.
Изменения в Steem Blockchain Dollar (SBD)
Участник сообщества и разработчик @timcliff представил два изменения, призванных обновить логику для Steem Blockchain Dollars (SBD).
Обновленная скорость эмиссии SBD
В хардфорке 14 были введены правила для снижения скорости эмиссии SBD, когда “долговой коэффициент” (количество существующих токенов SBD/капитализация STEEM) превышал определенный процент.
Согласно новым правилам, токены SBD будут эмитироваться до тех пор, пока долговой коэффициент не достигнет 9% от рыночной капитализации STEEM. Между 9% и 10% ликвидные выплаты будут линейно смещаться от 100% SBD и 0% STEEM при 9% до 0% SBD и 100% STEEM при достижении 10%. Это работает так же, как нынешнее смещение, происходящее между 2% и 5%.
Выплаты бенефициарам на основе заданных автором настроек
Когда автор выбирает для своего поста “выплату 50/50”, он получает 50% своего вознаграждения в SP, а остальные 50% – в виде “ликвидной выплаты”. Ликвидная выплата обычно осуществляется в SBD, но иногда ее часть (или вся) выплачивается в ликвидном STEEM, если долговой коэффициент достаточно высок. У автора также есть возможность выбрать 100% выплаты в Steem Power.
В настоящее время, если автор добавляет в свой пост бенефициаров, бенефициары получат 100% выплаты в Steem Power, независимо от того, что выбрал автор для своего вознаграждения. После введения Velocity бенефициары будут получать выплаты в том же виде, которое выбрал автор.
Другие изменения
Поддержка канонических подписей BIP-0062
Чтобы решить проблему пластичности транзакций, Steem применит “канонические” подписи ECDSA. Канонические подписи ECDSA являются подмножеством более широко используемой системы канонической подписи BIP-0062.
Мы обновим наши канонические подписи для использования метода BIP-0062, чтобы наши подписи могли быть более понятны для внешних наблюдателей, и чтобы упростить интеграцию с блокчейном Steem для сторонних разработчиков, которые могут воспользоваться кодом из других блокчейнов, задействующих метод BIP-0062. Это также открывает остальную часть канонического пространства поиска, что увеличивает энтропию и, следовательно, безопасность наших подписей.
Майнинг аккаунтов
Velocity не будет поддерживать создание аккаунтов с помощью майнинга. Вместо этого Velocity внесет изменения, необходимые для включения майнинга аккаунтов Steem с помощью будущего софтфорка. Причина такого решения в том, что множество попыток добавления алгоритмов, устойчивых к ASIC, так и не смогли ограничить использование ASIC. Мы решили, что до тех пор, пока мы не создадим разумную схему на базе PoW, которая будет доступна конечным пользователям, при этом не будучи полна эксплойтов, включать в код платформы PoW для создания аккаунтов будет неразумно. Мы пришли к выводу, что лучше как можно скорее завершить работу над хардфорком Velocity и добавить поддержку создания аккаунтов со скидкой. Поскольку в будущем функция майнинга может быть добавлена в любое время без необходимости в хардфорке, у нас остается возможность добавить ее, как только мы подберем приемлемый алгоритм.
Одно из основных изменений в Velocity, призванное обеспечить должное функционирование майнинга аккаунтов после его внедрения, касается процедуры выбора партнера по восстановлению намайненного аккаунта по умолчанию. Поскольку в процессе создания аккаунта не участвует другая сторона, то назначить в качестве партнера по восстановлению аккаунта на случай его кражи просто некого. Если пользователь с намайненным аккаунтом хочет иметь возможность воспользоваться процессом восстановления аккаунта, он может назначить желаемую сторону в качестве своего партнера по восстановлению после создания аккаунта.
Модернизация схемы
Это сугубо технические изменения для упрощения обслуживания кодовой базы Steem. Желающие могут ознакомиться с подробной информацией по соответствующим ссылкам на GitHub:
GitHub PR 2692, GitHub PR 2693 и GitHub ишью 683
Исправление опечатки в сообщении об ошибке
Участник сообщества и разработчик @arcange предложил исправление опечатки в сообщениях об ошибке, которые отображаются при выполнении определенных вызовов API без надлежащего количества аккаунтов. Теперь сообщение об ошибке корректно читается как “должен быть указан как минимум один аккаунт” (at least one account must be specified).
Удаление запроса полномочий
Запрос полномочий (Challenging Authorities) – это система, разработанная летом 2016 года, которая так никогда и не была полноценно реализована. Предполагалось, что пользователь может внести небольшую плату, дабы потребовать у другого пользователя подписать транзакцию с полномочиями более высокого уровня и тем самым доказать, что он продолжает контролировать ключ. Реализация этой функции могла бы привести к сценарию, когда ни в чем не повинный владелец аккаунта был бы принужден злоумышленником удалить свои ключи из холодного хранилища. По этой причине Velocity удалит лишний код, связанный с этой функцией.
Тестнет
Мы запустим тестнет для хардфорка Velocity до назначенной даты хардфорка основной сети, что даст разработчикам возможность протестировать предстоящие изменения в изолированной среде до их непосредственного запуска. Мы предоставим информацию об этой тестовой сети, как только она будет готова для публичного использования.
Основные даты
Большая часть разработки, связанной с хардфорком Velocity, была завершена и размещена для ревью под тегом project/hf20 в репозитории Steem на GitHub. Ишью также отслеживаются через нашу проектную доску.
Хардфорк планируется провести во вторник, 25 сентября, в 11:00 по восточному стандартному времени. Изменения в хардфорке Velocity зависят от одобрения квалифицированного большинства (17/21) проголосовавших за него заверителей.
Мы намерены тэгнуть релиз хардфорка до 25 августа, что даст заверителям и операторам нод не менее 30 дней на ревью, тестирование и применение изменений до 25 сентября.
Мы уверены, что эти изменения несут в себе значительные улучшения структуры блокчейна Steem, способные сделать его еще лучше, чем раньше.
Steem on,
- Steemit Blockchain Team
Оригинал поста: ЗДЕСЬ
@rusteemitblog, интересная информация. Ее очень много. Необходимо несколько раз ее перечитывать, чтобы ee усвоить.