Как это работает
Сервис имён 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 — в поисках проверенных контрольных точек корня. Они применяют транзакции локально, строят собственное дерево Меркла и проверяют, что их локальный корень совпадает с контрольной точкой в блокчейне.
- Это гарантирует, что все индексаторы, где бы они ни работали, всегда разрешают домены в один и тот же целевой адрес (единое согласованное состояние на распределённых узлах).