segunda-feira, 25 de setembro de 2017

Bitcoin, Anonimato, Provas de Conhecimento-Zero

Leitura:
Bitcoin white paper section 10
Research Perspectives & Challenges section VII
Zcash

Audiovisual:
Lecture 6 — Bitcoin and Anonymity
Transparent scalable computational integrity - Eli Ben Sasson, Silicon Valley ethereum meetup
The Zcash anonymous cryptocurrency (33c3)
Zerocash: Addressing Bitcoin's Privacy Problem
CryptoFinance.fr | Strong anonymity in cryptocurrencies | Georg Fuchsbauer (INRIA, ENS)
Zerocoin: Anonymous Distributed E-Cash from Bitcoin
Bitcoin: Privacy, Identity, Surveillance and Money - Barcelona Fablab Meetup March 2016

4 comentários:

  1. Prova de conhecimento zero é uma maneira que permite 2 partes provarem que uma declaração é verdadeira sem revelar nada a mais a não ser a declaração que estão tentando provar. Por exemplo, duas pessoas querem provar quem é a mais rica sem revelar a quantia exata de dinheiro que cada um detém. A criptomoeda Zcash utiliza uma forma de zero knowledge proof, a zero-knowledge Succinct Non-interactive Arguments of Knowledge (zk-SNARK) para realizar transações. O Zcash proporciona anonimato em suas transações.

    ResponderExcluir
    Respostas
    1. "Prova de conhecimento zero é uma maneira que permite 2 partes provarem..." Errado: uma PROVA e a outra VERIFICA, e a primeira (o PROVADOR) não revela nada novo que a segunda (o VERIFICADOR) não sabia. Isso aqui é outra coisa: "duas pessoas querem provar quem é a mais rica sem revelar a quantia exata de dinheiro que cada um detém". Não se trata de prova de conhecimento zero, mas sim de computação segura multilateral ("secure multiparty computation").

      Excluir
  2. O tópico principal da aula foi a introdução do conceito do zero-knowledge proof, onde como comentado acima, temos dois atores o PROVER e o VERIFIER. Foi explicado através de um exemplo didático o funcionamento do mesmo, onde a entidade VERIFIER deseja verificar se o PROVER detém um conhecimento que ele afirma ter (exemplo, uma senha).

    O exemplo segue mais ou menos da seguinte forma: o provador afirma ter uma palavra secreta que abre uma porta em uma caverna em forma de anel. Ele entra na caverna e escolhe um dos lados da bifurcação, chegando à porta. Em seguida, o verificador pede para que o provador retorne à entrada através de um dos caminhos.

    Caso o provador apareça pelo outro caminho, será detectado que ele não possui a palavra chave e que estava mentindo, pois não conseguiu abrir a porta. Caso apareça pelo caminho solicitado, ou ele possui a palavra chave e abriu a porta, ou então simplesmente entrou pelo mesmo lado que saiu.

    ResponderExcluir
  3. O total anonimato em relação as transações nas redes de criptomoedas é algo que ainda é bastante discutido principalmente na rede Bitcoin. Alguma iniciativas já surgiram prometendo trazer total anonimato nas transações, uma dessas iniciativas é o Zcash. O Zcash surgiu de uma tentativa de melhorar o anonimato dos usuários da rede bitcoin através do protocolo Zerocoin.

    A base da validação da transação no Zcash é utilizando o conceito de prova do conhecimento zero, one há duas partes envolvidas: a que prova e a que verifica. Nesse método, o que prova tem que provar para o que verifica que alguma afirmação é verdadeira. Esta prova deve satisfazer três propriedades: Integralidade, Corretude e conhecimento-zero.

    Integralidade é para que se a afirmação for verdadeira o verificador, que deve ser honesto, vai aceitar o fato através de um provador que também deve ser honesto. Corretude, quando a afirmação for falsa o verificador não honesto não pode convencer o verificador honesto que a afirmação é verdadeira (a probabilidade para isso é muito pequena). E conhecimento-zero que dizer que caso a afirmação for verdadeira, o verificador desonesto não saberá nada além de que a afirmação é verdadeira, ou seja, não saberá informações sigilosas sobre a parte que deseja provar.

    ResponderExcluir