С момента создания биткоин и внедрения его механизма консенсуса PoW, появилось много других алгоритмов. Они пытаются решить проблемы, выявленные в PoW: энергоэффективность и масштабируемость. Новые консенсусы опираются на проблему византийских генералов.
Доказательство прошедшего времени, или PoET, — один из таких консенсусов. Он стремится улучшить алгоритм и дать работающую альтернативу.
История
Алгоритм PoET был разработан гигантом Intel еще в 2016 году как эффективный механизм консенсуса, в основном для разрешенных блокчейн-сетей. Сегодня он используется в модульной структуре Hyperledger Sawtooth и является популярным инструментом для экспериментирования с распределенными регистрами.
Критически важной составляющей PoET называют инновационную технологию, с которой она работает. Это Intel Guard Extensions, сокращенно SGX. Эта среда выполнения появилась в 2015 году с процессорами Intel 6-го поколения. Она позволяет выбрать, какой проверенный код запускать: независимо от приложения, в котором он работает.
Для понимания механизма PoET важно разобраться в SGX.
Что такое SGX
SGX — это сложная технология, но по своей сути это набор инструкций для процессора. Они используются приложениями для изоляции определенных, надежных областей кода и данных. Это создает защищенные участки кода, которые требуются для хранения конфиденциальных данных или защиты кода от внешних проверок.
Код, который работает с SGX, может выдать подписанный аттестат из платформы или приложения. Он обеспечивает аутентификацию, для правильной инициализации кода.
Память, в которой хранится код, защищена и от вредоносных пользователей, которые контролируют физический доступ к платформе.
Для консенсуса, SGX функционирует как механизм верификации участников, которые присоединяются к сети. Идет проверка: запускают ли ноды проверенный код.
Как работает PoET
PoET — это эффективная форма доказательства работы. Она снижает мощность, которая требуется для эффективного майнига. Для этого используется система случайных таймеров для участников сети. С ее помощью выбирается лидер блока, который создает его.
Для решения задачи византийских генералов в системе используется рандомизация, выбор случайного лидера.
Например, практическая византийская ошибка допуска использует круговой цикл, а доказательство работы биктоина — консенсус Накамото, где лидером становится тот, кто решает головоломку первым.
Консенсус PoET разбит на 2 этапа:
- присоединение к сети и верификация с использованием сертификатов SGX,
- фактическая лотерея для майнеров.
Проверка сети и SGX
Это первый этап консенсуса, и именно здесь SGX играет важную роль.
При использовании SGX можно создать подписанный аттестат, чтобы доказать, что код верный.
В PoET потенциальный участник сети загружает код и распространяет сообщение «присоединиться» с подписанным аттестатом SGX. Это выглядит как пара открытого и закрытого ключа. Затем сеть из нод принимает или отклоняет аттестат. Если он принят, участник присоединяется к сети.
Случайная лотерея
Это второй и заключительный этап консенсуса. В каждом раунде участники получают подписанный объект таймера из доверенного кода, который полностью случаен.
Затем узлы ждут, когда истечет их случайный таймер. У того, чей таймер закончился первым, передает подписанный сертификат в сеть. В нем указано, что этот узел стал лидером раунда. Сообщение аутентифицируется, и блок создается. Затем раунд начинается заново.
Нужно обеспечить в первую очередь 2 вещи:
- рандомный таймер для каждого участника,
- узел ждет заданный ему период времени.
Процесс полностью случайный, а интеграция с SGX гарантирует отсутствие манипуляций с кодом, на котором работает протокол. Также для безопасности есть функция наблюдения за подозрительными узлами — теми, что выигрывают лотерею последовательно или часто.
Консенсусный механизм PoET эффективен и способен масштабироваться до тысяч нод. Единственное, что он сильно полагается на SGX.
Ранее в этом месяце группа исследователей из Лондона обнаружила критическую уязвимость в SGX, известную как «Foreshadow». Ее можно использовать для атаки защищенного участка кода в SGX. Эта атака стала адаптированной версией ранней уязвимости Spectre. Пока вопрос не решен до конца.
Плюсы и минусы алгоритма
PoET высокоэффективен и не такой ресурсоемкий, как доказательство работы, но у него также есть проблемы.
Плюсы:
- это существенное улучшение PoW,
- он обеспечивает случайный выбор без ресурсов и не требует сложной механики и стимулов;
- эффективно масштабируется, может использоваться как модель «plug and play» для тестирования среды с помощью Hyperledger Sawtooth.
Недостатки:
- SGX в основе — инновационная технология, но последние события показывают уязвимости. Intel, скорее всего, сможет решить проблему, но недостатком здесь является очевидная и необходимая уверенность в безопасности.
- SGX полностью производится Intel, поэтому механизм зависит от третьей стороны.
PoET — перспективный механизм, который дает поработать с новыми технологиями. Скорее всего, нас ждет не один проект в будущем, который будет использовать эту разновидность консенсуса.