В распределенной сети, такой как блокчейн, синхронизация общей хронологии транзакций представляет собой серьезную проблему.
Большинство блокчейнов решают эту задачу путем координации блоков с помощью связи по всей сети, однако такой подход может создавать задержки и замедлять завершаемость транзакций, особенно когда к сети присоединяется все больше узлов.
В Солане нашли способ обойти эту «проблему часов», внедрив криптографическое решение, обеспечивающее историческую запись транзакций. Присваивая каждой транзакции проверяемую временную метку, Solana может создать криптографический порядок событий, не требуя постоянного консенсуса сети. Это решение, известное как Proof-of-History (PoH) — доказательство истории, стало главной отличительной особенностью Соланы, позволяющей ей достигать высоких скоростей без ущерба для децентрализации.
В отличие от таких блокчейнов, как Биткоин и Эфириум, которые полагаются исключительно на механизмы консенсуса, такие как Proof-of-Work (PoW) или Proof-of-Stake (PoS) соответственно, Солана сочетает PoH с PoS для достижения высокой пропускной способности и низкой задержки, что позволяет сети обрабатывать тысячи транзакций в секунду.
Как работает доказательство истории
Proof of History (PoH) функционирует благодаря созданию криптографических часов, которые фиксируют время каждой транзакции, обеспечивая запись, подтверждающую, когда именно была совершена каждая операция.
В процессе PoH используется проверяемая функция задержки (VDF), которая в случае Solana основывается на алгоритме хеширования SHA-256. Эта функция позволяет генерировать непрерывную последовательную цепочку хэшей, каждый из которых ссылается на предыдущий, создавая уникальную временную шкалу.
Особенность PoH заключается в том, что каждый хэш одновременно может быть проверен и зависит от предыдущего. Эта цепочка хэшей образует своего рода «часы», за которыми могут следить все узлы (ноды) и «договариваться» о порядке транзакций без прямого общения друг с другом. Узлы могут подтверждать блоки и транзакции в заранее установленной последовательности, что значительно ускоряет весь процесс.
Как PoH ускоряет достижение консенсуса
PoH в Solana — это механизм достижения быстрого и эффективного консенсуса. Он работает благодаря предварительному упорядочиванию транзакций, что позволяет создавать блоки очень быстро и обрабатывать тысячи транзакций в секунду.
В традиционных системах, основанных на принципах Proof of Stake (PoS) или Proof of Work (PoW), блоки создаются в результате голосования всех участников сети. Для этого необходимо достичь консенсуса по временной метке и порядковому номеру каждого блока.
Proof of History (PoH) позволяет Solana пропускать этот шаг, предварительно заказывая транзакции. Это означает, что валидаторы могут обрабатывать транзакции по мере их поступления, не дожидаясь согласия всей сети. Это значительно сокращает количество необходимых коммуникаций и делает процесс проверки более быстрым и эффективным.
Благодаря PoH, Солана может достичь консенсуса гораздо быстрее, поскольку каждый узел имеет доступ к одной и той же верифицируемой временной шкале. Это обеспечивает предсказуемое и быстрое время создания блоков в 400 миллисекунд, что быстрее, чем у многих централизованных систем. Решив проблему синхронизации, PoH позволяет Solana обрабатывать тысячи транзакций в секунду с высокой степенью согласованности.
Взаимодействие между Proof-of-History и Proof-of-Stake
В то время как Proof of History (PoH) регулирует время и порядок транзакций, Proof of Stake (PoS) отвечает за выбор валидаторов и безопасность сети.
В системе PoS, валидаторы Соланы выбираются на основе их доли в сети, известной как «стейк». Чем больше доля, тем выше вероятность того, что валидатор будет выбран для добавления новых блоков. Этот процесс обеспечивает безопасность сети, поскольку честность и стабильность валидаторов играют важную роль в поддержании её целостности.
PoH и PoS взаимодействуют следующим образом:
- PoH предоставляет упорядоченный список событий, а PoS определяет, кто будет добавлять их в блокчейн.
- Избранный валидатор, также известный как «лидер», собирает и упорядочивает транзакции в соответствии с временными метками PoH. Такая комбинация позволяет Solana поддерживать баланс между скоростью и безопасностью.
Роль валидатора-лидера в создании блоков
В Солане для создания блоков в каждом слоте выбирается ведущий валидатор, который становится «лидером». Этот валидатор отвечает за организацию и маркировку времени транзакций в соответствии с временной шкалой Proof of History.
Лидер может расположить каждую транзакцию в определенном порядке, избавляя других валидаторов от необходимости активно проверять их последовательность. После того как ведущий валидатор создал блок, его проверяют другие узлы.
Поскольку блок уже соответствует временной шкале, проверка проходит быстрее и эффективнее. Эта роль ведущего валидатора имеет решающее значение для масштабируемости Solana, поскольку обеспечивает быструю скорость создания и подтверждения блоков.
Весь процесс выглядит следующим образом:
- Валидаторы-лидеры выбираются на основе долевой системы, где всё решает размер стейка SOL. Это означает, что участники, которые вкладывают больше средств в сеть, с большей долей вероятности будут отвечать за создание блоков.
- Механизм консенсуса PoH устанавливает четкий график смены лидеров. Расписание известно заранее, и каждому лидеру выделяется «слот» — короткий период, около 400 миллисекунд, в течение которого он занимается сбором транзакций и формированием блока. Эта предсказуемая ротация позволяет валидаторам заранее знать, когда они станут лидерами, что дает им возможность подготовиться к своим обязанностям.
- В установленный временной интервал лидер осуществляет сбор транзакций из сети. Он помечает каждую транзакцию уникальной криптографической подписью, создавая их упорядоченный список. Эта ключевая часть Proof of History (PoH) позволяет другим узлам проверять и подтверждать транзакции в верной последовательности.
- Затем лидер объединяет упорядоченные транзакции в блок, добавляя к нему временную метку, которая соответствует последовательности PoH. Эта последовательность служит своего рода исторической записью, подтверждающей порядок транзакций, без необходимости для каждого валидатора отдельно приходить к согласию по каждой из них. Временная метка также служит доказательством того, что транзакции были обработаны в режиме реального времени, что обеспечивает блокчейну прозрачность.
- После того как блок создан, лидер распространяет его среди остальных участников сети с помощью протокола Turbine, который разделяет данные на небольшие пакеты и отправляет их валидаторам, что позволяет эффективно транслировать даже большие транзакции.
- Другие валидаторы получают блок и сверяют его с последовательностью PoH, чтобы убедиться, что порядок транзакций, отмеченный временем, соответствует ожидаемой исторической записи. Поскольку транзакции уже были предварительно собраны лидером, валидаторы могут быстро проверить их последовательность без необходимости дополнительного согласования, что значительно ускоряет процесс валидации.
- После проверки блок добавляется в блокчейн, обеспечивая транзакциям окончательность. После этого роль лидера переходит к следующему по расписанию валидатору, который начинает собирать транзакции для следующего слота. Этот цикл продолжается и позволяет добиваться непрерывной добычи блоков, поддерживая высокую пропускную способность.
Pipelining (Конвейеризация) и Turbine (Турбина)
В Солане, помимо PoH, применяются и другие технические новшества, такие как Turbine и Pipelining, что позволяет значительно улучшить производительность.
Передача данных в крупных сетях может быть медленной и перегруженной. Turbine предлагает решение этой проблемы, разделяя данные на более мелкие фрагменты и отправляя их через узлы одновременно, подобно протоколу BitTorrent. Это позволяет поддерживать быструю окончательность транзакций и высокую пропускную способность.
Pipelining — это технология, которая позволяет выполнять различные этапы обработки транзакций одновременно. Благодаря этому, транзакции проходят без задержек, что значительно увеличивает пропускную способность и повышает общую эффективность сети.
Почему у Соланы нет мемпула
Mempool — это область хранения неподтвержденных транзакций, которую большинство блокчейнов используют для управления отложенными транзакциями. В Solana его нет благодаря PoH: транзакции получают временную метку сразу, как только попадают в сеть, что позволяет обрабатывать их в режиме реального времени.
Такой подход устраняет необходимость в мемпуле, поскольку транзакции не ждут своей очереди — они либо сразу принимаются и обрабатываются, либо отбрасываются. Отказ от мемпула позволяет Солане снизить задержки и поддерживать высокую скорость работы, валидаторы могут мгновенно обрабатывать транзакции без необходимости их временного хранения.
Мгновенное упорядочивание транзакций значительно упрощает их обработку, позволяя сети справляться с большими объёмами без дополнительных сложностей, связанных с управлением мемпулом. Хотя это и обеспечивает преимущества в скорости, оно требует от валидаторов тщательного исполнения обязательств для обеспечения безопасности сети и избежания перегрузок.
Недостатки Proof-of-History (PoH)
Несмотря на все преимущества рассматриваемого протокола консенсуса, у него есть ряд существенных недостатков, которые ставят под угрозу будущее блокчейна Solana
Лидеры — вектор централизации
Частый выбор одних и тех же валидаторов в качестве лидеров в Солане может централизовать производство блоков, что потенциально повышает риски, связанные с MEV.
Поскольку лидеры отвечают за организацию и упорядочивание транзакций, они играют решающую роль в сети. Если в качестве лидеров будут выбираться одни и те же несколько валидаторов, это может привести к тому, что эта небольшая группа, обладающих большими ресурсами валидаторов, получит чрезмерное влияние на блокчейн.
Поскольку лидеры несут исключительную ответственность за упаковку транзакций, потенциально они могут извлекать дополнительные доходы, используя транзакции с максимальной извлекаемой ценностью (MEV). Однако скорость цепочки, пока что, ограничивает эту возможность.
Размер блокчейна
Вероятно, Солана является самым большим блокчейном. Благодаря высокой пропускной способности, растущему спросу на сеть и динамичному размеру блоков, вес Соланы увеличивается с невероятной скоростью.
Валидаторы генерируют примерно два блока в секунду, каждый из которых в среднем весит 1,5 мегабайта (теоретически его размер может достигать 50 гигабайт). Это приводит к ежегодному увеличению объёма данных на 100 терабайт. Не каждый может позволить себе хранить всю эту информацию.
По состоянию на 2023 год весь блокчейн Соланы занимал более 280 терабайт и хранился в Google BigTable.