Garantias de segurança
Esta página diz com precisão o que o PiNS garante e o que não garante. Ser exato é mais útil do que ser tranquilizador: aquilo que é sólido é-o mesmo, e saber onde estão os limites é justamente o que permite apoiar-se neles.
A propriedade: a fraude fica à vista
O PiNS é evidente perante a fraude (fraud-evident). Qualquer violação das regras ou é impossível de provar à partida, ou é publicamente visível para quem olhar — e os dados necessários para olhar estão publicados, pelo que olhar não exige autorização nem a colaboração do operador.
Vale a pena perceber a distinção entre as duas metades. A propriedade e as transições de estado são impostas por criptografia e simplesmente não podem ser violadas. Tudo o resto é estabelecido por replicação independente, em que um desvio é contrariado por todas as réplicas ao mesmo tempo. Ambas são sólidas; são-no de maneiras diferentes, e esta página diz explicitamente qual se aplica onde.
O que não pode acontecer de todo
Isto é imposto pela matemática. Nenhuma ação do operador o contorna.
- Um domínio não pode ser retirado ao seu titular. Qualquer alteração de estado exige uma assinatura Ed25519 com a chave que a operação requer, verificada dentro do circuito com verificação estrita. O registador não tem a sua chave e não a consegue forjar.
- Um nome não pode ser registado duas vezes.
REGexige uma prova de não inclusão, e um nome que já existe não a consegue produzir. - Não pode haver uma venda a um preço que o vendedor não assinou.
BUYexige que o preço pago seja igual ao preço listado, que fica fixado na árvore peloLSTassinado do vendedor. - Não se pode ancorar uma raiz de estado sem uma prova válida. O contrato âncora na BNB Smart Chain verifica
cada prova contra a
programVkeyantes de aceitar uma raiz. Uma transição inválida simplesmente não pode ser provada. - O circuito não pode ser trocado em silêncio. A
programVkeycompromete-se com o programa compilado exato. Alterar uma linha altera a chave, e alterar a chave na cadeia é uma ação a duas partes, que exige o sequenciador e o proprietário.
O que é verificado por observação e não pelo circuito
Algumas propriedades não são impostas dentro da prova, sendo antes estabelecidas por quem reproduza os dados públicos. É um mecanismo diferente, não um resultado mais fraco: são verificáveis por qualquer observador, sem autorização, e um desvio é visível para todos ao mesmo tempo, em vez de apenas para alguns privilegiados.
- Inclusão e ordem dos comandos. É o registador que monta os lotes, portanto é ele que coloca os comandos por ordem. Como o endereço de protocolo e a sua chave de visualização estão publicados, cada indexador independente deriva a mesma ordem a partir da própria cadeia e calcula a mesma raiz. Um comando omitido ou reordenado produz uma raiz que todas as réplicas contrariam, de imediato e sem que ninguém precise de a procurar.
- O
end_block_heightque um lote declara. É transportado para as saídas públicas em vez de ser restringido dentro do circuito, porque a replicação já o estabelece: um indexador que reproduza a cadeia sabe que bloco o lote cobria, pelo que uma altura errada é apanhada da mesma forma que qualquer outro desvio. - Os destinos dos levantamentos. Montantes de pagamento, comissões e obrigações são totalmente auditáveis a partir da chave de visualização publicada — cada pagamento traz um memo que nomeia a conta que liquida, pelo que qualquer pessoa pode reconstruir o livro de saldos. O que não consta do registo público é qual o endereço de destino que o utilizador indicou, já que esse pedido é feito no site. Essa parte é confirmada diretamente pelo destinatário, que guarda o pedido que assinou. Ver Confiança e privacidade.
Porque é a replicação a verdadeira garantia
A prova ZK responde: dadas estas entradas, as regras foram cumpridas?
A replicação responde: estas eram as entradas verdadeiras?
Na prática, a segunda pergunta é a que mais importa, e não é respondida pela criptografia — é respondida pelo facto de o registador publicar o seu endereço de protocolo e a sua chave de visualização, para que qualquer pessoa possa decifrar todo o histórico de comandos desde a origem, reproduzi-lo com o indexador de código aberto e comparar raízes. Um registador que se desvie produz uma raiz que todas as réplicas independentes contrariam.
É por isso que a chave de visualização ser pública não é um pormenor. É o mecanismo.
Um rollup soberano, com precisão
Estruturalmente, o PiNS é um ZK-rollup:
- Disponibilidade de dados — cada comando vive no memo de uma transação PIVX, com o pagamento na mesma nota blindada, pelo que intenção e pagamento ficam ligados de forma atómica.
- Execução — fora da cadeia, na zkVM do SP1.
- Liquidação — a BNB Smart Chain guarda a raiz ancorada e verifica as provas em segundos.
O que difere de um rollup típico é que a camada de disponibilidade de dados é uma cadeia de privacidade, pelo que «qualquer pessoa pode ler as entradas» exige que a chave de visualização esteja publicada — e está.
Verificar isto por si próprio
Nada do que está acima tem de ser aceite por confiança:
- Reproduza a
programVkeycompilando o gerador de provas e comparando com o contrato. - Reproduza a cadeia com a chave de visualização publicada no seu próprio indexador e compare as raízes.
- Verifique qualquer resolução individual com uma prova de Merkle mais uma verificação da raiz na cadeia — ver Verificar provas.