Eu caí em mais um buraco de coelho com @Dusk na noite passada; desta vez, tentando entender como o Moonlight e o Phoenix realmente funcionam juntos.
Em um nível básico, o Moonlight parece familiar. Ele usa contas, com saldos e nonces mantidos no estado público. O Phoenix é onde as coisas ficam mais privadas. Em vez de mostrar um saldo de conta diretamente, o valor é mantido em notas. Uma nota é vinculada a uma chave do destinatário, e provas de conhecimento zero permitem que alguém a gaste sem revelar a própria nota. A árvore de Merkle prova que a nota faz parte do sistema, enquanto o nullifier impede que a mesma nota seja gasta novamente.
Essa parte faz sentido para mim.
A área sobre a qual ainda estou pensando é o ponto em que o valor se move entre o Moonlight e o Phoenix. No papel, depósitos e saques soam diretos, mas estou mais interessado em quais suposições estão por trás dessas transações.
Se uma conversão, de alguma forma, estivesse malformada ou falhasse de um jeito inesperado, o quão isolado seria esse problema? Ele poderia afetar o conjunto global de nullifiers ou os saldos transparentes que contratos inteligentes estão usando?
Depois disso, há uma pergunta maior sobre onde reside o “peso” real do sistema. Se os usuários eventualmente guardarem uma grande quantidade de valor dentro do Phoenix, mas contratos e outras aplicações interagirem principalmente com o Moonlight, a camada transparente ainda permanece como o principal centro de atividade e influência?
Eu também não tenho certeza, totalmente, de quais partes do design devem ser consideradas fixadas hoje. O limite de valor 2^64−1 é uma coisa, mas tenho curiosidade sobre a geração de notas, a profundidade da árvore de Merkle e as regras em torno da unicidade do nullifier também.
Provavelmente estou faltando alguns detalhes aqui, então eu realmente gostaria de ouvir de qualquer pessoa que tenha passado algum tempo dentro dos circuitos e das provas reais. É aí que eu sinto que estão as respostas interessantes.
#dusk $DUSK
Em um nível básico, o Moonlight parece familiar. Ele usa contas, com saldos e nonces mantidos no estado público. O Phoenix é onde as coisas ficam mais privadas. Em vez de mostrar um saldo de conta diretamente, o valor é mantido em notas. Uma nota é vinculada a uma chave do destinatário, e provas de conhecimento zero permitem que alguém a gaste sem revelar a própria nota. A árvore de Merkle prova que a nota faz parte do sistema, enquanto o nullifier impede que a mesma nota seja gasta novamente.
Essa parte faz sentido para mim.
A área sobre a qual ainda estou pensando é o ponto em que o valor se move entre o Moonlight e o Phoenix. No papel, depósitos e saques soam diretos, mas estou mais interessado em quais suposições estão por trás dessas transações.
Se uma conversão, de alguma forma, estivesse malformada ou falhasse de um jeito inesperado, o quão isolado seria esse problema? Ele poderia afetar o conjunto global de nullifiers ou os saldos transparentes que contratos inteligentes estão usando?
Depois disso, há uma pergunta maior sobre onde reside o “peso” real do sistema. Se os usuários eventualmente guardarem uma grande quantidade de valor dentro do Phoenix, mas contratos e outras aplicações interagirem principalmente com o Moonlight, a camada transparente ainda permanece como o principal centro de atividade e influência?
Eu também não tenho certeza, totalmente, de quais partes do design devem ser consideradas fixadas hoje. O limite de valor 2^64−1 é uma coisa, mas tenho curiosidade sobre a geração de notas, a profundidade da árvore de Merkle e as regras em torno da unicidade do nullifier também.
Provavelmente estou faltando alguns detalhes aqui, então eu realmente gostaria de ouvir de qualquer pessoa que tenha passado algum tempo dentro dos circuitos e das provas reais. É aí que eu sinto que estão as respostas interessantes.
#dusk $DUSK
