Добавить EIP: Схема кодирования длины последовательности для calldata Для EVM L1 (например, Tempo) эффективность calldata снова имеет значение. L2 на стеке OP автоматически сжимают calldata и возвращают сэкономленные средства пользователям. Но если вы L1, вам нужно будет оптимизировать это. Техническое объяснение (для фанатов Fantasy Top): В Ethereum calldata нулевые байты стоят 1/4 цены ненулевых байтов. Но это довольно произвольно, потому что calldata все равно передается и хранится в неизменном виде без даже простого сжатия RLE. Эта стоимость 1/4 предназначена для стимулирования сжатия, но на самом деле никто этого не делает. Если бы было реализовано даже простое RLE, нулевые байты стоили бы 1/100 стоимости ненулевых байтов. Так что, чтобы улучшить согласованность Ethereum и вернуть это обратно, я подумал, почему бы не создать новый EIP для этого. Это также по практическим причинам, потому что я не хочу изменять существующие стандарты смарт-контрактов, такие как ERC-7821, чтобы включить режим оптимизации calldata только для этого. Оптимизация на уровне транзакций была бы лучше (потому что вся calldata транзакции получит выгоду). Есть два способа сделать это: - Реализовать схему сжатия RLE на уровне транзакций (уровень EIP). - Реализовать предкомпиляции для сжатия / распаковки calldata (в стиле RIP). LibZip.cdCompress от Solady довольно эффективен, но почему бы не сделать это предкомпиляциями? В любом случае, нам нужно будет сначала формализовать схему кодирования, и поэтому возникает необходимость написать это.