Liquid Staking Module в экосистеме Cosmos
Ликвид стейкинг модуль (LSM) является наиболее значимым нововведением в релизе v12.0.0 сети Cosmos. Наряду с внедренной ранее репликейтед секьюрити, интерчейн аккаунтами и интерчейн запросами, LSM должен дать ощутимый толчок развитию экосистемы Cosmos.
Данный модуль был разработан командой Iqlusion и оттестирован ведущими провайдерами ликвидного стейкинга экосистемы, такими как Stride, Persistence и Quicksilver.
LSM представляет собой техническое решение, которое должно способствовать дальнейшему развитию сферы ликвидного стейкинга в экосистеме Cosmos. С одной стороны данный модуль призван решить имеющиеся проблемы, с другой с помощью него осуществляется попытка усилить общую безопасность сети и частично устранить конфликт принципал-агента между валидаторами и их делегаторами.
Давайте разберем все ключевые моменты по порядку.
Прежде всего, очевидным фактом является то, что ликвидный стейкинг в сети Cosmos существует и он относительно неплохо развивается. Однако, также имеется препятствие в его развитии - вы можете делегировать в ликвидный стейкинг только "свободные" атомы. Другими словами, если у вас есть стейк у одного из валидатотов Cosmos Hub, и вы хотите эти токены перевести из обычного стейкинга в ликвидный, то сперва вы должны вывести свои атомы из стейкинга, выждав 21 день, и только потом можете делегировать их одному или нескольким провайдерам ликвидного стейкинга. Согласитесь, это действие не столько сложное, сколько затратное по времени и поэтому у пользователей не возникает особого желания действовать подобным образом. Соответственно, это рассматривается разработчиками как преграда на пути развития ликвидного стейкинга, поэтому основная задача LSM - дать возможность пользователям осуществить перевод атомов застейканных обычным образом в ликвидный стейкинг бесшовно, не выжидая 21 дневный период.
LSM позволяет каждому пользователю токенизировать свой стейк. При этом выпущенные ликвидные токены будут минимально взаимозаменяемыми, поскольку они будут привязаны строго к конкретному валидатору, часть стейка которого была токенизирована. Выглядит это следующим образом: проводя транзакцию токенизации 100 застейканных в валидатор Stakeflow атомов, пользователь получит 100 ликвидных токенов с деномом cosmosvaloper1wdrypwex63geqswmcy5qynv4w3z3dyef2qmyna/ID, где cosmosvaloper1wdrypwex63geqswmcy5qynv4w3z3dyef2qmyna - адрес валидатора Stakeflow, а ID - порядковый номер транзакции токенизации в списке подобных транзакций для данного валидатора. То есть если 3 делегатора Stakeflow последовательно решат токенизировать свои стейки, то первый получит токены с деномом cosmosvaloper1wdrypwex63geqswmcy5qynv4w3z3dyef2qmyna/1, второй cosmosvaloper1wdrypwex63geqswmcy5qynv4w3z3dyef2qmyna/2, третий cosmosvaloper1wdrypwex63geqswmcy5qynv4w3z3dyef2qmyna/3 и так далее.
Стоит отметить, что с момента токенизации, награды за стейкинг начинают начисляться на адрес ликвидных токенов, а не на основной адрес. Соответственно выводить их необходимо именно с адреса ликвидных токенов. Данным адресом владеет человек, который произвел токенизацию, и будет им владеть до тех пор пока на нем находится хоть сколько-нибудь токенов.
Для иллюстрации, представим, что пользователь (назовем его Nick) произвел токенизацию 100 застейканных атомов и из полученных 100 ликвидных токенов он продал 50 токенов другому пользователю (назовем его Mike). Теперь у пользователя Mike имеются два варианта - либо осуществить redeem-транзакцию, чтобы обратить ликвидные токены в настоящие атомы, либо не делать ничего.
В результате осуществления redeem-транзакции Mike станет обладателем 50 атомов, застейканных в валидатор Stakeflow и начнет получать награды за стейкинг. Если же он не сделает это и продолжит просто хранить ликвидные токены, то все награды за стейкинг 100 атомов продолжат поступать на адрес ликвидных токенов, который создал и которым до сих пор владеет Nick, соответственно в данном случае все награды будут доставаться пользователю Nick.
Механика модуля выглядит не слишком удобной для p2p-cделок, поскольку была прежде всего разработана под взаимодействие провайдера ликвидного стейкинга и пользователя. То есть разработчиками не предполагается, что пользователи будут особенно часто обмениваться друг с другом своими токенизированными стейками. Но если представить процедуру передачи своих застейканных атомов провайдеру ликвидного стейкинга или процесс переноса всех активов, включая застейканные, со старого на новый кошелек - все становится на свои места.
Вместе с LSM вводятся ограничение на общее количество атомов, которое может участвовать в ликвидном стейкинге. У разработчиков имеется озабоченность, что поскольку ликвидный стейкинг в ряде случаев может выглядеть более привлекательным в глазах пользователей чем обычный, провайдеры ликвидного стейкинга смогут набрать достаточное большое количество атомов для оказания прямого влияния на безопасность и децентрализацию сети. Именно поэтому было принято решение ограничить количество атомов, которые могут участвовать в ликвидном стейкинге значением в 25% от общего количества застейканных атомов. Данный параметр получил название GlobalLiquidStakingCap. Безопасность сети Cosmos Hub обеспечивается, если ни один из акторов не может набрать более чем 33,3% от всех застейканых токенов. Соответственно, в нашем случае все провайдеры ликвидного стейкинга вместе взятые не смогут набрать более 25%. GlobalLiquidStakingCap - это ончейн параметр, который может быть изменен по действующим в сети процедурам управления.
Дополнительно разработчики пытаются частично разрешить конфликт принципал-агента между валидаторами и их делегаторами. В сети Cosmos Hub ожидается, что валидаторы должны действовать в интересах сети и делегаторов, однако, теоретически, недобросовестный валидатор может преследовать собственные интересы, создавая тем самым угрозы для безопасности блокчейна в целом. Чтобы уменьшить вероятность данного сценария, разработчики предложат валидаторам повысить ставки. В настоящий момент в Cosmos Hub от команды валидатора не требуется делегировать собственные средства в свой же валидатор, однако в новом релизе вводится ValidatorBondFactor. Данный параметр определяет размер стейка, который может получить валидатор от провайдеров ликвидного стейкинга. Если быть точнее, он определяет соотношение между количеством атомов заделегированных в собственный валидатор и размером стейка, который может быть привлечен от провайдеров ликвидного стейкинга. В настоящем релизе ValidatorBondFactor составляет 250 единиц, что означает, что на каждый заделегированный в себя 1 атом валидатор сможет получить 250 атомов от провайдеров ликвидного стейкинга. Таким образом, если валидатор хочет привлекать дополнительные делегирования он будет должен для начала делегировать какое-либо количество атомов в себя, что повысит для него "шкурный" интерес, поскольку в случае недобросовестного поведения под угрозой слеша будут находиться и его собственные средства. Естественно ValidatorBondFactor - ончейн параметр, который может быть изменен по действующим в сети процедурам управления.
Подводя итог, необходимо подчеркнуть, что LSM является довольно сложным механизмом и если вы заинтересовались темой и хотите глубже в неё погрузиться - начните с данной темы на форуме Cosmos Hub, гитхаба Iqlusion и гитхаба Cosms-SDK. В любом случае нам чрезвычайно интересно каким образом поведет себя LSM на практике, поэтому мы будем внимательно следить как именно отразится на экосистеме данное нововведение.