Перейти к основному содержимому

Рабочий процесс

Служба именования 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.

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