Рабочий процесс
Служба именования PIVX (PiNS) позволяет пользователям регистрировать, обновлять, составлять списки и передавать удобочитаемые доменные имена (например, myname.pivx) и безопасно сопоставлять их с адресами PIVX shielded (Sapling).
Поскольку PIVX — это блокчейн на основе UTXO без смарт-контрактов общего назначения, он не может изначально запускать сложную систему баз данных, такую как реестр доменов. Чтобы решить эту проблему, PiNS использует архитектуру в стиле Rollup, которая выполняет операции вне цепочки, хранит данные на PIVX и обеспечивает безопасность на Arbitrum.
Система состоит из пяти взаимосвязанных компонентов:
1. PIVX Блокчейн: уровень доступности данных
Каждое действие пользователя — регистрация имени (REG), обновление адреса (UPD), передача права собственности (CHG), размещение на рынке (LST), снятие с листинга (ULT) или покупка (BUY) — начинается как собственная транзакция PIVX. Транзакция содержит структурированную текстовую команду в поле примечания транзакции (например, PiNS:1:REG:domain:address:pubkey:nonce:signature).
- Цепочка PIVX является источником истины. В ней постоянно хранятся все команды домена. Никакие изменения состояния не могут произойти без записанной транзакции PIVX.
2. Узел-регистратор: секвенсор
Автоматизированный узел-регистратор сканирует блокчейн PIVX. Он считывает команды домена, проверяет, заплатил ли пользователь правильную комиссию за транзакцию, и ставит операции в очередь. Каждые 10 минут регистратор объединяет эти операции в один Пакет.
3. SP1 zkVM: механизм с нулевым разглашением (от Succinct)
Пакет транзакций отправляется на виртуальную машину с нулевым разглашением SP1 (zkVM). zkVM запускает специализированную гостевую программу Rust, которая действует как строгий судья протокола. Доказывающая программа проверяет каждую транзакцию в пакете:
- Являются ли подписи действительными и подписаны реальными владельцами домена?
- Строго ли увеличиваются одноразовые номера для предотвращения атак повторного воспроизведения?
- Правильно ли отформатированы префиксы доменов?
- Приносит ли транзакция
BUYточную цену, указанную в транзакцииLST? - Правильно ли
REG0__ переходит вREG1__ с использованием математических доказательств Меркла?
Если все правила соблюдены, zkVM генерирует криптографическое доказательство ZK-SNARK (с использованием Groth16). Это доказательство представляет собой крошечный сертификат, который математически заявляет: "Начиная с корня состояния A, после применения этого допустимого пакета транзакций новым корнем состояния будет B."
Каждая скомпилированная версия этой гостевой программы предоставляет уникальный криптографический идентификатор, называемый Ключ проверки (vkey). REG2__ — это 32-байтовый хеш самой структуры скомпилированной гостевой программы. Если хотя бы одна строка проверочного кода будет изменена, программа компилируется в совершенно другой REG3__.
4. Смарт-контракт Arbitrum: якорь
Сгенерированное доказательство ZK и его общедоступные данные отправляются в смарт-контракт PiNSAnchor на Arbitrum. Контракт действует как расчетный шлюз.
- Криптографическая привязка: внутри смарт-контракта
REG4__ (ожидаемый 32-байтовый хэш гостевой программы) хранится в цепочке. При отправке доказательства контракт пересылает доказательство иREG5__ на шлюз проверки Succinct SP1. - Проверка блокировки ключа: шлюз проверки одобрит подтверждение только в том случае, если оно было сгенерировано точной гостевой программой, соответствующей зарегистрированному
REG6__. - Если доказательство действительно и проверено на соответствие зарегистрированному
REG7__, контракт обновляет официальный, глобально принятый корень состояния доREG8__ и сохраняет его в своей истории. - Если было нарушено одно правило или если доказательство было создано с использованием модифицированной гостевой программы (которая создала бы другой
REG9__), контракт отклоняет транзакцию, предотвращая несанкционированные переходы состояний.
5. Распределенные индексаторы: резольверы
Любой может запустить независимый узел индексатора. Индексаторы сканируют блокчейн PIVX на предмет транзакций домена и сканируют контракт Arbitrum на предмет проверенных корневых контрольных точек. Они применяют транзакции локально, вычисляют собственное дерево Меркла и проверяют, соответствует ли их локальный корень контрольной точке Arbitrum.
- Это гарантирует, что все индексаторы, независимо от того, где они запускаются, всегда преобразуют домены в один и тот же целевой адрес (поддерживая единое унифицированное состояние на распределенных концах).