Nos últimos dois dias, estudando as escolhas de criptografia da Dusk, descobri uma decisão “facílima de ignorar” — trocar a curva elíptica. A maioria das pessoas acha que não faz diferença; na verdade, isso puxa uma cadeia inteira
//
Primeiro, por que não dá para simplesmente pegar o que se usa no Bitcoin e no Ethereum
secp256k1 é a curva mais popular no mundo de carteiras de mineradores, mas ela não foi feita para provas zk. No sistema de provas (por exemplo, BN254 por trás do Plonk, BLS12-381 etc.), todas as operações ficam restritas a um domínio escalar específico: as somas e multiplicações no circuito precisam ser feitas nesse domínio. O domínio do secp256k1 não combina com o desses sistemas de prova — forçar a validação de uma assinatura secp256k1 dentro do circuito exige “operações não nativas” para simular; o custo fica em centenas de vezes o de uma operação nativa. Não é impossível, mas é caro demais
//
JubJub, por outro lado, existe justamente para resolver essa incompatibilidade
é uma curva twisted Edwards, e o ponto-chave é que o domínio dela se encaixa exatamente no domínio escalar do BLS12-381. Ou seja: dentro do circuito do Plonk, as operações em pontos na curva JubJub seguem operações nativas, e o custo despenca. Ao lidar com geração de chaves, assinaturas e criptografia, ela se encaixa naturalmente no sistema de provas, sem precisar dar voltas
//
Agora, vamos falar do que essa abstração de grupo precisa resolver
Curvas em forma de Edwards geralmente têm o problema de cofactor diferente de 1. Em outras palavras, o “mesmo ponto lógico” pode corresponder a várias representações diferentes em bytes na curva. Historicamente, essa ambiguidade de representação já causou vulnerabilidades — atacantes podem explorar subgrupos relacionados ao cofactor para construir casos-limite e contornar validações. A solução comum na indústria é empacotar essa camada com uma abstração de grupo para eliminar a ambiguidade, garantindo que um ponto tenha uma única representação canônica, bloqueando esse tipo de ataque na raiz
//
Compare essa escolha com o secp256k1, o mais popular no mundo dos mineradores, e fica claro: um serve para eficiência de validação de assinaturas e compatibilidade de ecossistema; o outro serve para custo de operações e fronteiras de segurança dentro do sistema de provas. Eles não estão mirando no mesmo objetivo. Trocar de curva parece algo bem técnico e bem “fininho”, mas decide diretamente se toda a pipeline zk vai ser barata ou cara, e se vai ficar limpa ou deixar vulnerabilidades
@Dusk_Foundation $DUSK #dusk
Por que a curva JubJub consegue se encaixar no sistema de provas da Dusk?
//
Primeiro, por que não dá para simplesmente pegar o que se usa no Bitcoin e no Ethereum
secp256k1 é a curva mais popular no mundo de carteiras de mineradores, mas ela não foi feita para provas zk. No sistema de provas (por exemplo, BN254 por trás do Plonk, BLS12-381 etc.), todas as operações ficam restritas a um domínio escalar específico: as somas e multiplicações no circuito precisam ser feitas nesse domínio. O domínio do secp256k1 não combina com o desses sistemas de prova — forçar a validação de uma assinatura secp256k1 dentro do circuito exige “operações não nativas” para simular; o custo fica em centenas de vezes o de uma operação nativa. Não é impossível, mas é caro demais
//
JubJub, por outro lado, existe justamente para resolver essa incompatibilidade
é uma curva twisted Edwards, e o ponto-chave é que o domínio dela se encaixa exatamente no domínio escalar do BLS12-381. Ou seja: dentro do circuito do Plonk, as operações em pontos na curva JubJub seguem operações nativas, e o custo despenca. Ao lidar com geração de chaves, assinaturas e criptografia, ela se encaixa naturalmente no sistema de provas, sem precisar dar voltas
//
Agora, vamos falar do que essa abstração de grupo precisa resolver
Curvas em forma de Edwards geralmente têm o problema de cofactor diferente de 1. Em outras palavras, o “mesmo ponto lógico” pode corresponder a várias representações diferentes em bytes na curva. Historicamente, essa ambiguidade de representação já causou vulnerabilidades — atacantes podem explorar subgrupos relacionados ao cofactor para construir casos-limite e contornar validações. A solução comum na indústria é empacotar essa camada com uma abstração de grupo para eliminar a ambiguidade, garantindo que um ponto tenha uma única representação canônica, bloqueando esse tipo de ataque na raiz
//
Compare essa escolha com o secp256k1, o mais popular no mundo dos mineradores, e fica claro: um serve para eficiência de validação de assinaturas e compatibilidade de ecossistema; o outro serve para custo de operações e fronteiras de segurança dentro do sistema de provas. Eles não estão mirando no mesmo objetivo. Trocar de curva parece algo bem técnico e bem “fininho”, mas decide diretamente se toda a pipeline zk vai ser barata ou cara, e se vai ficar limpa ou deixar vulnerabilidades
@Dusk_Foundation $DUSK #dusk
Por que a curva JubJub consegue se encaixar no sistema de provas da Dusk?
A. 域嵌在BLS12-381标量域里运算走原生路径,成本低
B. 它是secp256k1的升级版,兼容性更好
C. 它算力消耗更大,安全性更强
3 dia(s) restante(s)
