В жертву эффективности: как работает параллельное выполнение транзакций в блокчейне

Bits.media

Опубликовано 27.02.2024 00:12

В жертву эффективности: как работает параллельное выполнение транзакций в блокчейне

Исследование Binance

Криптобиржа Binance выпустила целое исследование, посвященное параллельному выполнению в блокчейне. Само решение появилось довольно давно, однако аналитики уже теоретически обобщили многолетние наработки. О технологии известно в первую очередь благодаря проекту Solana, однако решение в разном виде используют Vara, TON, Sui, Sei, Aptos, Linera, Fuel и Monad.

Проблема последовательного выполнения

Сдерживающим пропускную способность в блокчейне является проблема последовательного выполнения. В решении с последовательным выполнением каждая транзакция должна проверяться всей сетью, что приводит к значительному потреблению энергии и увеличению нагрузки на майнеров или валидаторов.

Скачайте приложение
Присоединяйтесь к миллионам людей, которые всегда в курсе новостей на рынке с Investing.com
Скачать

Параллельное выполнение призвано развести задачи и обрабатывать за раз большее количество транзакций, что должно благотворно сказываться на пропускной способности и обеспечивать лучшее масштабирование сети.

Специалисты из Binance обращают внимание, что эволюция вычислительных машин движется в сторону многозадачности и многопоточности. Доказательством может служить тот факт, что частоты процессоров за последние 20 лет не сильно ушли вперед – вместо этого увеличилось количество ядер. Это более эффективное решение, так как с подавляющим большинством задач несколько более слабых ядер справятся быстрее одного мощного.

Программирование следует этому тренду – современные решения пишутся таким образом, чтобы максимизировать положительный эффект от многопоточности. Поэтому в моде решения, где множество задач решается параллельно.

Как работает параллельное выполнение в блокчейне

Говоря максимально просто, параллельное выполнение позволяет обрабатывать множество транзакций одновременно. В условиях больших вычислительных мощностей и их многозадачности параллельное решение кажется наиболее эффективным.

Но есть ряд проблем, из-за которых последовательные блокчейн-решения являются более надежными и безопасными. Главная – зависимые транзакции. Что если параллельно будут обработаны две транзакции, в которых, например, один и тот же адрес отправляет криптовалюты на два разных адреса. Если выполнение этих транзакций будет полностью параллельно, то владелец кошелька сможет дважды потратить свои монеты. А такое не приветствуется.

Поэтому зависимые транзакции можно выполнять только последовательно. Зависимость транзакций – ключевой концепт, который означает, что:

  • Выходные данные одной задачи записываются на входные данные другой — например. Алиса переводит ETH Бобу (выход), а Вася (вход) передает ETH Кэрол.

  • Выходные данные нескольких задач записываются в одну и ту же ячейку памяти – например, и Алиса и Кэрол передают ETH Васе (выход).

  • Из этого очевидно, что распараллелить можно только независимые друг от друга задачи. Это, в свою очередь означает, что скорость блокчейна с параллельным выполнением всегда будет ограничена по самой длинной цепочке зависимых задач. И там не менее, независимых задач довольно много, поэтому для параллельных решений в блокчейне места предостаточно.

    Различные способы параллельного выполнения

  • Шардинг. Эксперты Binance отнесли к параллельному выполнению шардинг. Это справедливо на макроуровне (шарды действительно обрабатывают свои транзакции параллельно друг другу), однако на микроуровне каждая из шард внутри себя обрабатывает транзакции последовательно.

  • Параллелизм задач. Это когда одновременно обрабатываются несколько транзакций. Например, если в распоряжении ноды имеется 16 ядер, она может одновременно обрабатывать по 16 транзакций.

  • Параллелизм данных – одна инструкция для множества данных (Single instruction multiple data, или SIMD). SIMD – низкоуровневое решение, позволяющее эффективнее работать с данными. Оно полезно для хеширования и верификации.

  • Недостатки параллельного выполнения

    На фоне простых последовательных решений параллельные конструкции далеко не всегда смотрятся выигрышно. Скорее напротив, они значительно менее безопасны, предсказуемы и просты.

    Авторы исследования суммировали уязвимые места параллельного выполнения и выявили ряд критических:

    • ситуация гонки (неопределенность результата, возникающая при неправильном определении независимых транзакций);

    • проблемы с повторным входом;

    • взаимоблокировки, когда две или более задачи бесконечно ожидают выполнения друг друга. Каждая из них не может выполниться до тех пор, пока не выполнится другая;

    • некомпонуемость, когда программный код сам по себе может быть правильным, но выдавать критические ошибки при использовании в разных условиях.

    Также условно критическими (то есть критическими в определенных ситуациях) видятся еще две проблемы:

    • инверсия приоритетов или состояние, при котором задача с низким приоритетом может косвенно блокировать задачу с более высоким приоритетом из-за неправильной работы планировщика;

    • нехватка ресурсов, когда некоторые задачи потребляют больше ресурсов, чем им положено, лишая другие задачи необходимых им ресурсов.

    Вывод

    Погоня за пропускной способностью может обойтись довольно дорого. Параллельное выполнение – сложная конструкция, которая привносит много проблем, обеспечивая, однако, существенную прибавку к производительности.

    Читайте оригинальную статью на сайте Bits.media

    Торговля финансовыми инструментами и (или) криптовалютами сопряжена с высокими рисками, включая риск потери части или всей суммы инвестиций, поэтому подходит не всем инвесторам. Цены на криптовалюты чрезвычайно волатильны и могут изменяться под действием внешних факторов, таких как финансовые новости, законодательные решения или политические события. Маржинальная торговля приводит к повышению финансовых рисков.
    Прежде чем принимать решение о совершении сделки с финансовым инструментом или криптовалютами, вы должны получить полную информацию о рисках и затратах, связанных с торговлей на финансовых рынках, правильно оценить цели инвестирования, свой опыт и допустимый уровень риска, а при необходимости обратиться за профессиональной консультацией.
    Fusion Media напоминает, что информация, представленная на этом веб-сайте, не всегда актуальна или точна. Данные и цены на веб-сайте могут быть указаны не официальными представителями рынка или биржи, а рядовыми участниками. Это означает, что цены бывают неточны и могут отличаться от фактических цен на соответствующем рынке, а следовательно, носят ориентировочный характер и не подходят для использования в целях торговли. Fusion Media и любой поставщик данных, содержащихся на этом веб-сайте, отказываются от ответственности за любые потери или убытки, понесенные в результате осуществления торговых сделок, совершенных с оглядкой на указанную информацию.
    При отсутствии явно выраженного предварительного письменного согласия компании Fusion Media и (или) поставщика данных запрещено использовать, хранить, воспроизводить, отображать, изменять, передавать или распространять данные, содержащиеся на этом веб-сайте. Все права на интеллектуальную собственность сохраняются за поставщиками и (или) биржей, которые предоставили указанные данные.
    Fusion Media может получать вознаграждение от рекламодателей, упоминаемых на веб-сайте, в случае, если вы перейдете на сайт рекламодателя, свяжитесь с ним или иным образом отреагируете на рекламное объявление.

    Выйти
    Выйти из учетной записи?
    НетДа
    ОтменаДа
    Сохранение изменений