O que é o ZCash Names?
Em resumo
O ZCash Names é um protocolo de nomes para o ZCash que funciona na cadeia e se baseia nos memos privados. Permite registar nomes legíveis como richard.zcash e associá-los a endereços ZCash. A correção de cada registo é comprovada com uma prova de conhecimento zero (Zero-Knowledge Proof).
O problema
Os endereços ZCash são demasiado longos. São assim:
u1zk30kje24v9n08lxq6ja9lfd8q3q54g7uawra7hwa05k4r56nkzzu62cy2apdungu4ehws95vjflw2lakt62j5wynwcje6t6yjcg9v5sp7r7048lgsprukv8r70pmpsk4tsqrqy58aglywh23grvs7kq75zk4c3zy57267u34vecm35yuexkrsmzphcu2dzph4r8rk0h0rlh5su7yhs
A solução
Registe um nome enviando uma única transação ZCash. Um indexador observa a cadeia de blocos, valida cada registo e constrói um registo de nomes. Depois, um gerador de provas de conhecimento zero produz uma prova matemática de que cada registo está correto.
Qualquer pessoa pode resolver richard.zcash e obter o endereço do Richard. Qualquer pessoa pode verificar a prova. Não é preciso confiar em ninguém.
Regras dos nomes
| Regra | Valor |
|---|---|
| Carateres permitidos | a-z, 0-9, hífenes |
| Comprimento | 1 - 64 carateres |
| Maiúsculas e minúsculas | Indiferente (guardado em minúsculas) |
| Hífenes | Nem no início, nem no fim, nem consecutivos |
| Zona de topo | .zcash, .zec, .private, .secure, .safe |
Preços de registo
Ver Registo de nomes
| Comprimento do nome | Taxa |
|---|---|
| 1 carácter | 5.5 ZEC |
| 2 carateres | 4 ZEC |
| 3 carateres | 2.45 ZEC |
| 4 carateres | 1.2 ZEC |
| 5 carateres | 0.65 ZEC |
| 6 carateres | 0.35 ZEC |
| 7+ carateres | 0.15 ZEC |
Preços de alteração
Ver Gestão de nomes, Mercado
| Comprimento do nome | Taxa |
|---|---|
| 1 carácter | 0.006 ZEC |
| 2 carateres | 0.004 ZEC |
| 3 carateres | 0.002 ZEC |
| 4 carateres | 0.0011 ZEC |
| 5 carateres | 0.0008 ZEC |
| 6 carateres | 0.0005 ZEC |
| 7+ carateres | 0.00025 ZEC |
O registador
O endereço de protocolo do registador, a sua chave de visualização e o contrato âncora estão todos publicados. É deliberado: a chave de visualização é o que permite a qualquer pessoa auditar o serviço sem pedir autorização, e o contrato é aquilo com que compara o seu próprio resultado.
Endereço de protocolo — envie aqui todos os comandos:
u1nlded5cat3n9r4m0tpxr5a7sy3emccvaun7n4x9w848qa7ncl4eg5v2zyat4kevaa4fwfq0unwj3vnczfax3s9rutma43dckgqss8qrg
Chave de visualização — decifra tudo o que esse endereço alguma vez recebeu:
uview1uxy3j27qhwkh8peq8k6g0vldalgqm4lyfxwuc2r95jelk458gmx6elc4e92t9g75x655vd7nxrtv3gllvajt3n8v0x36224ma3hrtvvtps7ejxysx8puelggt86vfuslxvdvjq7a778chqtcg626lcsr0ht26v3wgyfu5u04sn2qsle9k7faakg479tqf
Contrato âncora — onde é publicada cada raiz de estado, na BNB Smart Chain (chain ID 56):
0x6c01003716b0a74933325be1baf34fe34cf3e0d3
Uma reprodução da história tem de partir de um ponto conhecido, por isso ambas as pontas da cadeia também estão fixadas. Estes são os pontos de controlo a partir dos quais arranca um indexador independente:
| Ponto de controlo | Valor |
|---|---|
| Bloco inicial do ZCash | 3438108 — o aniversário da carteira do protocolo; antes dele não pode existir nenhuma transação do serviço |
| Raiz de estado inicial | 0x0000…0000 — 32 bytes a zero, a raiz de um registo vazio |
| Bloco de implantação do contrato | 114326974 |
| Transação de implantação | 0x9a4b9a22…e6a5bd6c |
A raiz inicial é toda a zeros porque, na árvore de Merkle esparsa compacta, uma subárvore vazia
são 32 bytes a zero a qualquer altura: um registo vazio produz um hash de zero, e foi esse o
valor com que o contrato foi implantado. Quem reproduzir a história a partir do bloco 3438108
chega ao mesmo estado inicial sem que ninguém lho diga.
Com estes valores pode percorrer o ZCash a partir do bloco inicial, decifrar todos os comandos e
pagamentos que o serviço alguma vez recebeu, reproduzi-los com o
indexador de código aberto, calcular você
mesmo a raiz de estado e compará-la com o contrato através de isRootValid(bytes32) — ver
Verificar provas. Se o registador alguma vez tivesse censurado,
reordenado ou inventado uma operação, a sua raiz seria diferente da que está na cadeia.
O indexador traz a sua própria API de resolução, pelo que nunca terá de depender de um ponto de acesso público — nem sequer do nosso.
Verifique estes valores antes de confiar neles
Compare o endereço, a chave de visualização e o endereço do contrato com o repositório do GitHub e com a própria aplicação; o contrato e a sua transação de implantação também podem ser lidos diretamente no BscScan. Um site de documentação é precisamente aquilo que um atacante quereria alterar.
Ligações
| Recurso | Endereço |
|---|---|
| Aplicação | zcashnames.co/app |
| Aplicação no Tor | zns42gxtnultmfkuxu3ypawozpn4asbkqpqzlmlrp72u3nbggvn2c2ad.onion/app |
| Indexador no Tor | indexer.zns42gxtnultmfkuxu3ypawozpn4asbkqpqzlmlrp72u3nbggvn2c2ad.onion |
| GitHub | github.com/ZCashNames |
| API | Ir para a página |
| Documentação | docs.zcashnames.co |