
Внутри протокола голосования на основе TCSC, основанном на Intel SGX
3 июля 2025 г.Таблица ссылок
Аннотация и I. Введение
II Тур молнии
Iii. Методология систематизации
IV Раствор слоя-один
V. Slayer-Two Solution
VI Дискуссия
VII. Исследовательские проблемы
VIII. Заключительные замечания и ссылки
Приложение А.Ключевые управления
Приложение B.Анонимность и конфиденциальность
Приложение C.Фон
Приложение D.Протокол голосования на основе TCSC
Приложение D. Протокол голосования на основе TCSC
В этой части мы предоставляем подробное описание системы голосования TCSC, которая использует Intex SGX. Протокол в основном состоит из двух подпрограмм:этап развертыванияиэтап исполненияПолем Мы даем подробности следующим образом.
Этап развертывания.На этапе развертывания весь операционный код и начальное состояние кодируются в TCSC. Этот этап включает в себя два шага.
КомпиляцияПолем Во -первых, двойные коды контракта собираются в коды анклабов. Поскольку анклав имеет лишь небольшое количество доверенных зон для кода приложения и данных (защищенная память составляет 128 МБ, и только 96 МБ можно использовать для анклава в текущей версии Intel SGX [88]), контракт должен определить границу этих зон и определить соответствующие зоны, используемые для критических функций, критичных частных, критичных. В частности, контракт с электронным голосом должен определить:Охват секретных государств, объем государственных штатов, подход к доступу к секретным государствамиПодход к доступу к внешним состояниям.Язык определения анклава (EDL) [80] определяет доверенные компоненты, ненадежные компоненты и соответствующие интерфейсы между ними, которые берут на себя ответственность за перевод из кода контракта в код анклава. Это обеспечивает два
Функциональные возможности: вызовы анклава (ECALLS) и внешние вызовы (OCALLS). Ecalls определяют функции внутри анклава, которые используются для выявления API для нерешенных приложений для вызова. Ocalls указывают ненадежные функции за пределами анклава, где код анклава способен вызывать. В нашем примере общее количество голосов, поданных за кандидата, не может быть раскрыто до окончания голосования. Таким образом, общее количество отдачи голосов определяется в точке доступа, и тем самым скрыто от общественности и может быть раскрыто только после завершения процедуры голосования.
НагрузкаПолем После этого файлы EDL будут загружаться в анклав, который хранится в кэше страницы анклава (EPC). С микро -точки зрения, первым шагом является название инструкции Ecreate для создания анклава. Это будет выделять память внутри кэша страницы анклава (EPC). Затем код анклава и данные добавляются на страницы в EPC, вызывая инструкцию EADD. Наконец, когда инструкция Einit успешно завершается, анклавИнициаторАтрибуты становятся истинными, и приведенные выше инструкции больше не могут быть использованы. После успешного развертывания первоначальное состояние и операционный кодекс этого контракта будут воспроизведены среди узлов блокчейна. Это означает, что логика электронных голосов не может быть изменена. Но состояние функциональных возможностей может быть передано сторонам, которым было предоставлено разрешение с сообщением [2].
Этап исполнения.На этапе исполнения избиратели называют развернутый TCSC, чтобы закончить голосование. Во -первых, анклав должен получить текущее состояние контракта из блокчейна. Затем процессор выполняет контракт с открытым текстом в режиме анклава. Внешние злоумышленники не могут получить знание конфиденциальной информации, поскольку ключ цифрового двигателя шифрования памяти (MIE) никогда не покидает TCB. Критическим аспектом функциональности Intel SGX является то, что код внутри анклава может получить доступ к конкретному состоянию анклава, выполнив дополнительные проверки семантики памяти. Вернемся к нашему примеру, конфиденциальное состояние (зашифрованное количество голосов, поданных за кандидата) вернется только в случае выполнения следующих четырех требований:
Процессор работает в режиме анклава;
Запрашиваемая страница является частью того же анклава;
Доступ к странице проходит через правильный виртуальный адрес;
Кодовая семантика успешно проходит чек.
Одним словом, процессор выступает в качестве швейцара в TCSC, обеспечивая механизм управления доступа на основе аппаратного обеспечения. После получения результатов от футболков консенсусный алгоритм начинает достигать соглашения. Чтобы быть конкретным, когда майнер получает недавно добытый блок, он повторно выполнит все транзакции внутри блока, чтобы получить недавно перенесенное состояние. Как только достаточное количество шахтеров блокчейна получит транзакции блока и повторно предъявить транзакции, результаты голосования и транзакции, вызванные выполнением контракта, в конечном итоге достигнут окончательного соглашения. Когда все процедуры голосования закончились, кассир может получить окончательное зашифрованное состояние и получить окончательный результат голосования. Тем временем транзакции могут использоваться в качестве доказательства для отслеживания поведения избирателя.
Авторы:
(1) Руджия Ли, Южный университет науки и технологии, Китай, Университет Бирмингема, Великобритания и этот автор внес свой вклад в эту работу;
(2) Цинь Ван, CSIRO DATA61, Australia и этот автор внес свой вклад в эту работу;
(3) Ци Ван, Южный университет науки и техники, Китай;
(4) Дэвид Галиндо, Университет Бирмингема, Великобритания;
(5) Марк Райан, Университет Бирмингема, Великобритания.
Эта статья есть
Оригинал