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

Чтобы сравнить производительность, мы используем простую библиотеку ECC, которую легко скомпилировать для EOSIO и которая может работать внутри контракта без особых изменений. Мы не используем это в нашей реализации pEOS, поскольку в нем отсутствуют некоторые математические оптимизации и предварительные вычисления, однако он очень хорош для сравнения производительности при выполнении одного и того же кода.

Вы можете скачать библиотеку с: https://github.com/ANSSI-FR/libecc

Библиотека содержит набор тестов, который обеспечивает эталонный тест с пением и проверкой случайных данных. А именно программа: src / ec_self_tests.c. Эта программа инициализирует библиотеку, генерирует пару ключей и выполняет 300 подписей и проверку этих подписей. Ниже мы можем увидеть тот же код, реализованный как действие контракта EOS под названием bench:

Запустив стандартную нативную реализацию теста, мы получаем около 250 сигнатур / сек. Тот же самый код, который интерпретируется EOSVM, с узлом, работающим на том же компьютере, не может завершиться в пределах временных ограничений транзакции, установленных системой. Фактически, приведенный выше код кода пытается сделать только одну подпись (а не 300, как в исходном тесте).

Итак, результаты теста можно резюмировать ниже:

Собственная подпись: 4 мс
Подпись EOSVM: ›30 мс

Мы думаем, что результаты говорят сами за себя.

Выводы

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

* Тесты проводились с использованием EOSIO v2.0.0-rc2

Сайт: https://peos.one
Telegram: https://t.me/pEOSone
Telegram China: https://t.me/pEOS_china
Twitter: https://twitter.com/peos_one
GitHub: https://github.com/peosdev