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

Как это работает

Сервис имён PIVX (PiNS) позволяет регистрировать понятные человеку доменные имена (например, myname.pivx), менять адрес, в который они разрешаются, передавать их другим владельцам и выставлять на маркетплейс, надёжно связывая их с адресами PIVX.

Поскольку PIVX — это блокчейн на модели UTXO без универсальных смарт-контрактов, он не может сам по себе вести сложную базу данных вроде реестра доменов. Чтобы решить эту задачу, PiNS использует архитектуру в стиле rollup: операции выполняются вне блокчейна, данные хранятся в PIVX, а безопасность закрепляется в BNB Smart Chain.

Систему образуют пять связанных между собой компонентов:

1. Блокчейн PIVX: слой доступности данных​

Любое действие пользователя — регистрация имени (REG), изменение адреса (UPD), передача прав (CHG), выставление на маркетплейс (LST), снятие с продажи (ULT) или покупка (BUY) — начинается как обычная транзакция PIVX. Транзакция содержит структурированную текстовую команду в поле memo (например, PiNS:1:REG:domain:address:pubkey:nonce:signature).

  • Источник истины — цепочка PIVX. Она навсегда хранит каждую доменную команду. Никакое изменение состояния невозможно без записанной транзакции PIVX.

2. Узел регистратора: секвенсор​

Автоматический узел регистратора сканирует блокчейн PIVX. Он читает доменные команды, проверяет, что пользователь оплатил верную сумму, и ставит операции в очередь. Каждые 10 минут регистратор объединяет эти операции в один пакет (batch).

3. SP1 zkVM: движок нулевого разглашения (от Succinct)​

Пакет транзакций отправляется в виртуальную машину с нулевым разглашением SP1 (zkVM). Она выполняет специализированную гостевую программу на Rust, которая работает как строгий судья протокола. Генератор доказательств проверяет каждую транзакцию пакета:

  • Действительны ли подписи и сделаны ли они настоящими владельцами доменов?
  • Строго ли возрастают nonce, что защищает от атак повторного воспроизведения?
  • Правильно ли оформлены префиксы доменов?
  • Оплачивает ли транзакция BUY ровно ту цену, которая указана в транзакции LST?
  • Корректно ли old_root переходит в new_root с точки зрения математических доказательств Меркла?

Если все правила соблюдены, zkVM создаёт криптографическое доказательство ZK-SNARK (по схеме Groth16). Это крошечный сертификат, который математически утверждает: «Начав с корня состояния A и применив этот корректный пакет транзакций, мы получаем новый корень состояния B».

Каждая скомпилированная версия гостевой программы даёт уникальный криптографический идентификатор — ключ верификации (vkey). vkey представляет собой 32-байтовый хеш самой структуры скомпилированной гостевой программы. Если изменить хотя бы одну строку проверяющего кода, программа скомпилируется в совершенно другой vkey.

4. Контракт в BNB Smart Chain: якорь​

Полученное ZK-доказательство и его публичные входные данные отправляются в смарт-контракт PiNSAnchor в сети BNB Smart Chain. Контракт выступает шлюзом расчётов.

  • Криптографическая привязка: внутри смарт-контракта хранится programVkey — ожидаемый 32-байтовый хеш гостевой программы. Когда доказательство подаётся, контракт передаёт его вместе с programVkey в шлюз верификации SP1 от Succinct.
  • Проверка «ключ — замок»: шлюз верификации примет доказательство, только если оно создано именно той гостевой программой, которая соответствует зарегистрированному programVkey.
  • Если доказательство корректно и проверено относительно зарегистрированного programVkey, контракт обновляет официальный, общепризнанный корень состояния до B и сохраняет его в своей истории.
  • Если нарушено хотя бы одно правило или доказательство создано изменённой гостевой программой (что дало бы другой vkey), контракт отклоняет транзакцию, не допуская несанкционированных переходов состояния.

Почему BNB Smart Chain​

Единственная задача якорной сети — хранить корень и проверять доказательство, поэтому важны только две вещи: как быстро контрольная точка становится финальной и насколько можно быть уверенным, что она такой и останется.

  • Время блока около 2 секунд, так что пакет закрепляется почти сразу после того, как доказан, и индексаторы быстро сходятся на новой контрольной точке.
  • Глубоких реорганизаций на практике не бывает, поэтому контрольная точка, до которой индексатор синхронизировался, не уйдёт у него из-под ног. Якорная сеть с глубокими реорганизациями заставляла бы индексаторы откатывать состояние, которое они уже считали окончательным.
  • Проверка доказательства стоит в блокчейне фиксированно и недорого независимо от размера пакета: одна проверка Groth16 покрывает все операции пакета.

5. Распределённые индексаторы: резолверы​

Запустить независимый узел-индексатор может кто угодно. Индексаторы сканируют блокчейн PIVX в поисках доменных транзакций, а контракт в BNB Smart Chain — в поисках проверенных контрольных точек корня. Они применяют транзакции локально, строят собственное дерево Меркла и проверяют, что их локальный корень совпадает с контрольной точкой в блокчейне.

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