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

Что такое ZCash Names?

Кратко

ZCash Names — это протокол имён для ZCash, работающий в блокчейне и построенный на приватных memo. Он позволяет регистрировать понятные человеку имена вроде richard.zcash и сопоставлять их с адресами ZCash. Корректность каждой регистрации подтверждается доказательством с нулевым разглашением (Zero-Knowledge Proof).

Проблема

Адреса ZCash слишком длинные. Выглядят они так:

u1zk30kje24v9n08lxq6ja9lfd8q3q54g7uawra7hwa05k4r56nkzzu62cy2apdungu4ehws95vjflw2lakt62j5wynwcje6t6yjcg9v5sp7r7048lgsprukv8r70pmpsk4tsqrqy58aglywh23grvs7kq75zk4c3zy57267u34vecm35yuexkrsmzphcu2dzph4r8rk0h0rlh5su7yhs

Решение

Имя регистрируется одной транзакцией ZCash. Индексатор следит за блокчейном, проверяет каждую регистрацию и строит реестр. Затем генератор доказательств с нулевым разглашением создаёт математическое доказательство того, что все регистрации корректны.

Любой может разрешить richard.zcash и получить адрес Ричарда. Любой может проверить доказательство. Доверие не требуется.

Правила имён

ПравилоЗначение
Допустимые символыa-z, 0-9, дефисы
Длина1 - 64 символа
РегистрРегистронезависимо (хранится в нижнем регистре)
ДефисыНе в начале, не в конце, не подряд
Домен верхнего уровня.zcash, .zec, .private, .secure, .safe

Стоимость регистрации

См. Регистрация имени

Длина имениПлата
1 символ5.5 ZEC
2 символа4 ZEC
3 символа2.45 ZEC
4 символа1.2 ZEC
5 символов0.65 ZEC
6 символов0.35 ZEC
7+ символов0.15 ZEC

Стоимость изменений

См. Управление именем, Маркетплейс

Длина имениПлата
1 символ0.006 ZEC
2 символа0.004 ZEC
3 символа0.002 ZEC
4 символа0.0011 ZEC
5 символов0.0008 ZEC
6 символов0.0005 ZEC
7+ символов0.00025 ZEC

Регистратор

Протокольный адрес регистратора, его ключ просмотра и якорный контракт опубликованы — все три. Это сделано намеренно: ключ просмотра позволяет любому проверить работу сервиса, не спрашивая разрешения, а контракт — это то, с чем он сверяет собственный результат.

Протокольный адрес — сюда отправляются все команды:

u1nlded5cat3n9r4m0tpxr5a7sy3emccvaun7n4x9w848qa7ncl4eg5v2zyat4kevaa4fwfq0unwj3vnczfax3s9rutma43dckgqss8qrg

Ключ просмотра — расшифровывает всё, что когда-либо приходило на этот адрес:

uview1uxy3j27qhwkh8peq8k6g0vldalgqm4lyfxwuc2r95jelk458gmx6elc4e92t9g75x655vd7nxrtv3gllvajt3n8v0x36224ma3hrtvvtps7ejxysx8puelggt86vfuslxvdvjq7a778chqtcg626lcsr0ht26v3wgyfu5u04sn2qsle9k7faakg479tqf

Якорный контракт — сюда публикуется каждый корень состояния, в сети BNB Smart Chain (chain ID 56):

0x6c01003716b0a74933325be1baf34fe34cf3e0d3

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

Контрольная точкаЗначение
Начальный блок ZCash3438108 — дата рождения протокольного кошелька; раньше него служебных транзакций быть не может
Начальный корень состояния0x0000…0000 — 32 нулевых байта, корень пустого реестра
Блок развёртывания контракта114326974
Транзакция развёртывания0x9a4b9a22…e6a5bd6c

Начальный корень состоит из одних нулей потому, что в компактном разрежённом дереве Меркла пустое поддерево на любой высоте — это 32 нулевых байта. Значит, пустой реестр хешируется в ноль, и именно с этим значением был развёрнут контракт. Любой, кто воспроизводит историю с блока 3438108, приходит к тому же начальному состоянию, и подсказывать ему не нужно.

С этими значениями вы можете просканировать ZCash начиная с начального блока, расшифровать все команды и платежи, когда-либо полученные сервисом, воспроизвести их через индексатор с открытым исходным кодом, самостоятельно вычислить корень состояния и сверить его с контрактом вызовом isRootValid(bytes32) — см. Проверка доказательств. Если бы регистратор когда-нибудь скрыл, переставил или выдумал операцию, ваш корень отличался бы от записанного в блокчейне.

Индексатор поставляется с собственным API разрешения имён, так что вам никогда не придётся зависеть от публичной точки доступа — в том числе от нашей.

warning

Проверьте эти значения, прежде чем на них полагаться

Сверьте адрес, ключ просмотра и адрес контракта с репозиторием на GitHub и с самим приложением; контракт и транзакцию его развёртывания можно также прочитать напрямую в BscScan. Сайт документации — именно то, что злоумышленник захотел бы подменить.

Ссылки

РесурсАдрес
Приложениеzcashnames.co/app
Приложение в Torzns42gxtnultmfkuxu3ypawozpn4asbkqpqzlmlrp72u3nbggvn2c2ad.onion/app
Индексатор в Torindexer.zns42gxtnultmfkuxu3ypawozpn4asbkqpqzlmlrp72u3nbggvn2c2ad.onion
GitHubgithub.com/ZCashNames
APIПерейти на страницу
Документацияdocs.zcashnames.co