O Cointelegraph Brasil entrevistou o criptógrafo responsável pela implementação do projeto Bulletproofs, do banco holandês ING, Eduardo Morais.
O projeto Buletproofs do ING reúne desenvolvedores das Universidades de Londres e Stanford; além da startup Blockstream, que traz uma tecnologia que oferece privacidade às quantias envolvidas em transações em Bitcoin.
Na entrevista, o programador nos contou como está sendo desenvolvido o projeto e traçou um panorama sobre o uso da tecnologia blockchain por bancos.
Leia a seguir:
Cointelegraph Brasil (CT) - Você acha que os bancos tradicionais vão utilizar a tecnologia blockchain em seus sistemas?
Eduardo Morais (EM) - Sim, os bancos estão investindo bastante para criar soluções baseadas em blockchain. Mas dentre os problemas mais importantes que ainda precisam ser resolvidos, temos a privacidade e a escalabilidade.
O primeiro problema ocorre pois em blockchains tradicionais, como Bitcoin e Ethereum, não existe nenhum mecanismo que proteja o conteúdo das transações, sendo portanto possível rastrear as transações por completo, encontrando quem fez o que em cada bloco. O segundo problema está relacionado ao fato de existirem alguns gargalos de eficiência que precisam ser resolvidos. No caso de Bitcoin, o Proof of Work (POW) representa uma ineficiência, na medida em que faz com que o número de transações por segundo seja baixo quando comparado ao que se obtém em redes de cartões de crédito por exemplo. No caso do Ethereum, a eficiência ainda é baixa quando comparada a soluções como a que a Amazon oferece para computação em nuvem.
Obviamente são sistemas muito diferentes, já que com blockchain é possível diminuir a necessidade de confiança em um único provedor de serviço, sendo possível distribuir a computação em uma grande quantidade de pontos da rede. Mas de qualquer forma é necessário melhorar a performance dos smart contracts para que esta solução seja escolhida para determinados problemas, e ZKP pode ajudar também a resolver este tipo de problema.
CT - Por que a necessidade de privacidade em um blockchain bancário?
EM - Uma das aplicações básicas de blockchain é a transferência de ativos entre instituições financeiras, mas se forem utilizados blockchains como Bitcoin ou Ethereum, é possível que qualquer pessoa veja quem está negociando o que e com quem. Por exemplo, seria possível ver todo o portfólio de investimento de um banco, identificando não apenas sua estratégia de atuação, como também os detalhes financeiros de cada transação, o que não é aceitável neste mercado.
O mercado financeiro é altamente regulamentado e um certo nível de transparência é muito bem-vindo, mas é necessário também oferecer um mínimo nível de privacidade para que exista um ecossistema saudável onde as instituições financeiras possam negociar, e privacidade é um ingrediente fundamental.
CT - O projeto Bulletproof do ING foi baseado em alguma criptomoeda?
EM - Bulletproofs não está diretamente relacionado com nenhuma criptomoeda. Bulletproofs é um trabalho acadêmico, liderado pelo pesquisador Dan Boneh, que possui o famoso curso de criptografia do Coursera, e que propõe um protocolo para a construção de Zero Knowledge Proofs (ZKP - prova de conhecimento zero).
Em particular, este protocolo é bastante eficiente para mostrar que um determinado valor secreto corresponde a um número que está entre outros dois números A e B. Por exemplo, podemos mostrar que a quantidade de Bitcoins sendo transferidos em uma transação está entre 0 e MAX, e deste modo conseguimos validar a transação sem ter acesso ao valor exato dela, mantendo assim a confidencialidade da informação.
CT - Quais as aplicações para Zero Knowledge Proofs no mercado financeiro?
EM - Existem muitas aplicações possíveis. Os bancos, de maneira geral, possuem a necessidade de certificar seus clientes em diversos aspectos. Por exemplo, quando você quer tomar um empréstimo, o banco precisa validar diversos tipos de informações a seu respeito. Em particular, é preciso verificar se a sua situação financeira é compatível com os requisitos do empréstimo, de modo que o risco para o banco seja minimizado. Para isso, o banco pode querer validar se o salário do cliente é suficiente para pagar mensalmente as prestações do empréstimo. Essa validação pode ser realizada utilizando ZKPs, de modo que o cliente não precisa revelar ao banco o valor exato de seu salário, já que esta é uma informação privada.
Outra aplicação interessante é conhecida pela sigla em ingles KYC (Know Your Customer). Bancos precisam, devido ao alto nível de regulamentação deste mercado, validar vários dados a respeito de seus clientes, como por exemplo endereço de residência, nome, idade, etc. Hoje em dia há processos complicados e burocráticos para resolver este problema. Utilizando ZKP é possível obter uma solução mais eficiente para este problema, pois o usuário pode usar ZKP para convencer o banco de que as informações fornecidas estão corretas e válidas, sem revelar informações privadas.
Além disso, o banco pode usar ZKP para validar que uma determinada negociação não envolve entidades que estejam sob algum tipo de sanção. Por exemplo, o banco pode negar-se a financiar uma negociação caso alguma das partes esteja sob embargo, ou esteja em algum tipo de lista negra (blacklist). Muitas outras aplicações são possíveis.
CT - Existem soluções alternativas? Por que ZKP é melhor que as alternativas?
EM - Dentre as soluções que comumente são apontadas como alternativa, é possível citar o uso de hardwares de propósito especial, que são construídos para garantir a segurança e privacidade dos dados que lá estão armazenados. Especificamente, a tecnologia SGX (Software Security Guard Extensions) é vista como uma solução para este problema. Porém, diversas falhas e vulnerabilidades foram apontadas na literatura, mostrando que na verdade esta tecnologia não protege completamente as informações, sendo possível extrair dados privados do hardware.
Outra opção é o uso de canais diretos entre as partes envolvidas na transação, como é feito por exemplo usando a tecnologia Corda. Mas é preciso enfatizar que ao adotar este tipo de solução, o que acontece é que estamos deixando de usar a principal característica das Blockchains, que é a computação distribuída e transparente entre todas as entidades, inclusive aquelas que não participam diretamente de uma determinada transação. Portanto, esta alternativa não resolve o mesmo problema que é resolvido utilizando ZKPs.
CT - Qual o modelo de negócio que o banco enxerga como sendo mais adequado para o desenvolvimento de ZKPs?
EM - O modelo de negócio vai depender do caso de uso específico. Em determinados cenários é possível enxergar o uso de ZKPs como sendo obrigatório para proteger a privacidade dos usuários. E tendo em vista regulamentações como a GDPR (General Data Protection Regulation) na Europa - e a correspondente LGDP no Brasil - podemos ver que a privacidade passará a ter importância cada vez maior, passando a ser uma exigência perante a lei. Com isso, o modelo de negócio pode ser visto como simplesmente o preenchimento de um requisito obrigatório para satisfazer a regulamentação vigente sobre o uso de blockchains.
Portanto, ao invés de entender o modelo de negócio de ZKPs neste contexto, precisamos entender o modelo de negócio das blockchains propriamente ditas.
No caso específico de KYC, os bancos podem agir como entidades provedoras de certificações dinâmicas aos seus clientes. Imagine que um cliente do banco pode, por exemplo, provar ser maior de idade para consumir um certo serviço, sem que seja necessário mostrar RG, CPF ou passaporte, o que revelaria não apenas sua idade exata, o que não é necessário neste caso, como também revela outras informações completamente desnecessárias. Com isso, o banco pode atuar como uma "terceira parte confiável", permitindo a redução de burocracia. Neste caso, o modelo de negócio poderia estar baseada em micropagamentos.
CT - Por que o ING decidiu por tornar o código "open source"?
EM - Esta é uma tendência da indústria como um todo. Ao tornar o código "open source" aumenta-se a visibilidade do projeto, além de conseguir feedback da comunidade de forma rápida, permitindo aumentar a qualidade do produto que está sendo construído. Sem dúvida é uma mudança de paradigma da indústria, em uma direção bastante interessante na minha opinião, já que oferece maior transparência, principalmente em projetos de inovação, onde é necessário explorar diferentes direções, realizar diversas provas de conceitos, de modo a validar que as hipóteses iniciais a respeito da tecnologia são válidas e robustas.
CT - Qual o próximo passo do projeto do ING?
EM - O próximo passo é utilizar ZKP em casos práticos. Para isso o ING está conversando com diversas iniciativas internas e também com parceiros que possam usar a tecnologia para resolver os problemas mencionados anteriormente.