Meetup #11 - Zero-knowledge Proofs - Maturidade da Tecnologia - Eduardo Morais
ERC55 Meetups · 6 Aug 2024 · 1:40:21
A cryptographer from a privacy consultancy asks how mature zero knowledge proofs are, weighing standardization, tooling, use cases and regulation. Proofs are explained as verifying a property, such as being over 18, without revealing the underlying data, and are set beside homomorphic encryption and multi-party computation as connected building blocks. Maturity signals include a standardization effort running since 2018, growing numbers of papers and engineering jobs, and digital signatures as a special case already accepted by law. Open obstacles include trusted setup ceremonies, circuit auditing, incompatible circuit formats and the cost of proving Ethereum's hash function for bridges, with regulation named as the last missing piece.
Speakers
Topics
From ERC55 Meetups, hosted by ERC55.
Transcript
como que eu cheguei aqui hã um resumo do que eu vou falar é um uma pequena introdução eh contar em linhas Gerais como funciona a tecnologia mostrar um pouco da linha do tempo eh falar bastante sobre a padronização processo de padronização que tá em andamento desde 2018 também eh falar sobre casos de uso e tentar de alguma forma Explicar sobre a maturidade embora seja um conceito bem relativo Então vou trazer algumas ideias aqui e discutir com vocês Como que tá a maturidade da tecnologia hoje em dia e finalmente algas
finais a ã eu eh gosto de matemática gosto muito de matemática eu comecei a a estudar matemática nas Olimpíadas de Matemática ainda no colegial e e nessa época eu comecei a estudar assuntos que você não aprende na escola um pouco de teoria dos números conceitos mais divertidos de matemática Então me interessei por uma forma diferente de ver a matemática eu então decidi fazer computação fiz engenharia de computação na Unicamp eu eh no último ano da Computação eu descobri a área de criptografia e percebi essa conexão com tudo aquilo que
eu estudava nas olimpiadas de matemática e como eu gostava muito desse assunto falei é isso que eu que eu preciso fazer eu preciso estudar mais e me aprofundar nesse assunto da criptografia Então decidi fazer mestrado eh antes eu fiz uma iniciação científica mas logo depois eu emendei no no mestrado onde eu estudei curvas elípticas emparelhamentos bilineares eh que hoje em dia são bastante usados na na construção de de zero knowledge e naquela época Ainda não era eh isso era 2006 até 2009 mais ou menos então eu eu estudei com o professor Ricardo da rab na Unicamp um criptógrafo um dos mais importantes do Brasil e um
bom grupo de pesquisa lá na Unicamp bem prático aplicada pesquisa bastante voltada para otimização e construção eficiente de protocolos criptográficos e eu fiz uma o eu eu vim para São Paulo trabalhar na Bovespa fiquei aqui quase do anos e aí eu Fi com saudade da criptografia Decidi voltar para pro doutorado Aí Já Era 2010 mais ou menos eu eu decidi também mudar um pouco o assunto fazer uma coisa eh um pouco diferente porque curvas elípticas Apesar do nome é uma tecnologia bastante usada na prática O pessoal já sabe como fazer não tem muita muito mais o que ser pesquisado nesse assunto não é verdade mas e decidi
alguma fazer alguma coisa que mexesse com a flexibilidade da crip criptografia E aí eu descobri o primeiro a criptografia pós quântica mas dentro da criptografia pós quântica tem essa área que permite você fazer coisas que parecem de de alguma forma Parece Mágica porque a criptografia é para ser uma coisa bem robusta e difícil de manipular E na verdade a gente tem um novas técnicas não tão novas assim mas em termos de performance elas as ideias são novas que permite colocar em prática esse tipo de conceito e basicamente eh a técnica chama encriptação mórfica eu ainda não tava estudando zero knowledge
nessa época só que essa tecnologia ela envolve a construção de circuitos circuitos de somas e multiplicações que são chamados circuitos algébricos nada a ver com eletricidade nada disso eh é um terminologia da da área mas que eu fiquei muito eh interessado e comecei a implementar essas coisas e aí eu terminei o meu meu doutorado tentei achar alguma forma de aplicar essa tecnologia aqui no Brasil trabalhei numa empresa em Campinas chamada cryptos onde eh é feito um monte de projeto muito interessante muitas coisas em cibersegurança que não é Definitivamente a a a minha praia mas
com algumas coisinhas de criptografia mas que também não são as coisas que eu tava estudando há anos e anos basicamente de 2006 até 2016 eu tava fazendo mestrado e doutorado e essas coisas não estavam aparecendo na indústria no mundo prático então eu comecei a procurar ali no no Linkedin como onde que essas coisas estão sendo feitas ao redor do mundo comecei a aplicar apliquei para muitas e muitas vagas eh exigiu bastante paciência no começo e me adaptando pras entrevistas em inglês e tudo mais processo seletivo Mas uma hora deu certo fui para o anda H um comentário importante deixa eu
voltar aqui um comentário importante é que eu fui pelo Ciências sem Fronteiras para Nova Zelândia no meu último ano de doutorado e eu considero que isso foi o que abriu as portas paraa parte internacional conheci criptógrafos ao redor do mundo fui para conferências fiz algumas conexões e amizades que que duram até hoje então eu considero como sendo a semente do que eu tô fazendo hoje foi essa o sem fronteiras foi foi bem importante aí na parte profissional eu comecei a trabalhar na criptos depois do doutorado e só que eu não tava fazendo aquela criptografia flexível essa criptografia que parece mágica então eu
eu procurei no Linkedin apliquei apliquei para meses aplicando até que eu consegui no banco da Holanda fui pro banco in E lá eles estav comeando a trabalhar com zero knowledge proofs eles estavam fazendo provas relativamente simples mas eles não tinham alguém da criptografia para desenvolver então foi feit um uma implementação open source e que choveu críticas Pessoas de de da diferentes universidades dizendo que a implementação tava insegura então eles decidiram contratar um criptógrafo e foi assim que eu fui morar com a minha família na Holanda por quase 2 anos e aí a coisa foi evoluindo relativamente
rápido eu comecei a fazer parte do processo de padronização em 2018 o banco ing me enviou para ser o o mensageiro vamos dizer assim e e defendeu o as aplicações que eles estavam interessados e ser o nome do banco nesse processo de padronização da tecnologia eh eu eu fui lá eh implementando provas mais simples de Range proofs depois eu comecei implementar um negócio um pouquinho mais complicado chamado set membership depois eu implementei o Bullet proofs E aí foi um momento que eu que eu percebi que que o zeron estava crescendo exponencialmente não só se
encaixou muito bem no meu eh no meu trabalho de maneira geral porque eu não me considerava apenas um acadêmico Eu queria colocar as coisas em prática e E com isso eu comecei a a procurar Quais são os próximos passos e aí eu fui pro mercado blockchain não que o banco IMG não esteja interessado em blockchain mas não é só isso o interesse deles mas aí eu fui sugado pela pela indústria fui trabalhar remoto Voltei pro Brasil eh comecei a trabalhar na na iod que antigamente chamava i k e eles desenvolveram participei do projeto Midnight que agora foi colocado em
prática era um projeto secreto e basicamente é a construção de sistema análogo ao zecche mas com com multi assets não só um tipo de asset mas vários assets num outro sistema chamado Sonic que era um sistema naquele momento super novo de zero knowledge com algumas vantagens que eu vou comentar mais para frente mas que hoje em dia já já ficou no passado eh uma função de RH nova chamada posidon naquele momento ela Era Nova hoje em dia ela é bastante usada várias implementações mas era nova naquele momento aí eu eu saí e fui para ail
Oi você não tá conf não hã trouxe nada alguém tá sem o mudo hã estamos ouvindo vozes ã então eu comecei a trabalhar com esse compilador da alil em particular com a configuração confiável o trusted setup e um um pouquinho depois eu eu eu eu queria conhecer melhor o compilador não é uma coisa que eu seja especialista mas eu tava muito interessado em participar da implementação do compilador e na li eu tava um pouco mais focado nessa parte do setup e eu recebi uma proposta para
trabalhar na protocol Labs para desenvolver a linguagem lurk E aí sim eu entrei de cabeça na na implementação do do compilador eh um circuito chamado circuito Universal que permite você provar qualquer programa escrito nessa linguagem e um desafio enorme na minha carreira porque eu não imaginava trabalhar com compiladores e e é é muito elegante na verdade a construção é uma linguagem parecida com lisp e de certo modo eu fiquei muito surpreendido quando eu vi que o compilador tava inteiro em um basicamente um único arquivo o resto era funções auxiliares eu perguntei pro meu chefe Cadê o compilador tá
aqui como enfim aprendi bastante nesse projeto e hoje em dia eu tô na invers Tech é uma consultoria a gente trabalha com zero knowledge proofs mas não só isso a gente trabalha com privacidade e computação segura em geral e isso significa que a gente usa três tecnologias criptográficas eh uma delas é o zkp mas a gente também trabalha com encriptação homófona mas um assunto muito interessante também então essas três técnicas são importantíssimas para paraa
construção de soluções de privacidade eh hoje em dia não só blockchain mas em geral a gente faz pesquisa e desenvolvimento na parte de pesquisa tem um paper recente eh esse é o endereço eprint Esse é um site onde a maioria dos papers de criptografia são previamente compartilhados nesse site depois eles vão ser publicados em jornais e conferências Mas é uma forma de compartilhar com a comunidade Então quem quiser abrir esse site ficar lá de olho nos papers de tempos em tempos vai ter alguma coisa de zero knowledge e nesse Paper A gente fala sobre a a programade nessa área de construção de
sistemas com privacidade focado principalmente em zkp mas também nessas outras áreas que Eu mencionei a gente também faz consultoria de diferentes tipos de consultoria desde auditorias eh design prototipagem desenvolvimento otimização ou mesmo educação e treinamento eh a gente tá bastante engajado com com a comunidade essa empresa eh ela foi fundada por pelo Daniel benw Ele é da Espanha Ele É O organizador principal do evento de padronização que eu disse que começou em 2018 eu conheci ele lá quando o banco ing me mandou e desde então a gente se
encontra várias vezes pelo ao redor do mundo algumas vezes por ano nessas conferências no no evento de padronização e depois de alguns anos que trabalhando em outras empresas eu acabei sendo contratado pela consultoria que eu trabalho com ele hoje em dia a nossa visão ela é eh trabalhar para fazer a diferença engajado com a comunidade valorizando a a importância da da privacidade como um aspecto importante pra humanidade e também nas questões de engenharia de de de colocar as coisas para funcionar resolver os problemas matemáticos de engenharia ou de criptografia e e é um time pequeno com pessoas eh
surpreendentemente boas nas suas respectivas áreas as pessoas que que fizeram a diferença nos projetos por onde passaram então é um equilíbrio muito interessante de habilidades eh de criptografia matemática e engenharia e a gente tem alguns eh projetos a gente tem essas conexões com eh principalmente por causa do evento de padronização a gente encontra nesse evento pessoas da indústria pessoas da academia professores como Dan bonet então a gente se tiver dúvida a gente manda uma mensagem para um professor como Dan bonet e e recebe um toneladas de papers pra gente procurar um deles e
ver qual é o que a gente prefere para implementar então é eh realmente um privilégio ter a possibilidade de poder mandar um e-mail pro pro danon ou para outros pesquisadores e e interagir com eles eh é é muito bom e e dentro dos projetos que a gente eh já trabalhou até hoje são projetos muito relevantes alguns que a gente eh trabalhou aqui por exemplo da do Word coin é um projeto para eh oferecer privacidade para para biometria Então existe um banco de dados eh de biometria você se você perder a sua senha já é uma coisa grave perder a sua biometria não tem volta então você precisa realmente
eh da proteção dos seus dados biométricos a expectativa é um banco de dados com milhões de de entradas podendo chegar até bilhões de entradas então é eh a gente precisa de escalabilidade a escalabilidade é um é um requisito essencial porque cada biometria é um dado relativamente grande muitos bits e multiplicado por milhões ou um bilhão que seja sempre vai ser um número muito grande então as técnicas que a gente usa precisam ser escaláveis a gente precisa que que a tecnologia esteja madura também para para porque essas soluções vão ser regulamentadas elas vão ser
colocadas então não não vai ter a mínima possibilidade de você usar biometria em instituições financeiras no no Estados Unidos e e essas coisas não estarem regulamentadas então tem tem alguns desafios n nesse sentido eh tem um outro projeto também bem interessante da B Labs que é assinaturas com limar então Eh multi assinaturas né então você tem você pega sua chave privada divide ela em em várias partes aí vamos supor 10 partes se tiver sete pessoas daquelas 10 assinando a sua assinatura vai ser válida Então você tem um limar acima daquele limar assinatura é válida baixo você não consegue gerar
naura e essas coisas ganharam bastante atenção por causa de blockchain que a gente quer mecanismos para e oferecer uma forma as pessoas não podem perder a sua chave senão elas perdem perdem todos os seus tokens criptomoedas Então você precisa de eh alguma forma oferecer uma forma de de replicar essa chave com o limar de forma que você ainda consiga assinar mesmo que uma das chaves eh se perca também também tem esse projeto Iron Fish que é privacidade para criptomoedas é parecido com os sistemas de Cash então também muito interessante uma consultoria que a gente deu análise de segurança auditoria
ã Agora eu vou começar um pouco mais na parte da criptografia em si ã a criptografia em geral ela não é flexível se você quiser fazer qualquer coisa com aqueles dados que estão criptografados você precisa primeiro decifrar fazer aquilo que você quer encriptar de novo e aí pronto isso em geral mas as técnicas que Eu mencionei alguns slides para trás elas permitem a gente realizar cálculos tarefas computacionais de diferentes tipos e Sabores e ainda assim manter a segurança manter a privacidade então zkp o tema de
hoje mas eu vou colocar alguns pontos em relação às outras tecnologias também para dar uma ideia de como elas funcionam Mas elas permitem essa mágica permitem sair do do do Comum que não é comum você poder fazer alguma coisa minimamente e verificável ou válida com uma informação criptografada você o que você quer da criptografia que aquelas informações pareçam aleatórias Então como que uma coisa parece totalmente aleatória mas mesmo assim você consegue manipular ou ou calcular algoritmos com aquilo então no no caso particular de de z kps o que a gente consegue fazer é provar qualquer predicado um predicado é
um é alguma coisa cuja saída é zero ou um falso ou verdadeiro então qualquer algoritmo cuja a saída desse algoritmo seja falso ou verdadeiro é um predicado então a gente diz que zero proofs eh são feitas para validações verificações você verifica que uma propriedade ela é verdadeira ou falsa então você tem seus dados relações matemáticas ou relações computacionais desses dados estabelecendo algum tipo de propriedade você quer provar aquelas propriedades sem mostrar que o dado eh qual é o dado por trás daquilo por exemplo mostrar que eu sou maior de 18 anos eh se eu quiser
consumir Algum serviço uma não sei uma bebida alcoólica você precisa provar que é maior de 18 anos você talvez tivesse que mostrar o seu RG Mas você poderia fazer isso com uma prova de conhecimento zero em que eu não falo quantos anos eu tenho mas eu eu demonstro que eu tô apto eu vou ser verificado então a saída ela é binária 0 falso verdadeiro de forma que se aquela propriedade for mentira probabilidade essa mentira vai ser detectada então é uma garantia fortíssima uma garantia criptográfica de que aquela propriedade realmente é válida e
que você pode continuar usando o sistema sem sem revelar seus dados privados e a gente tem muitos e muitos tipos diferentes de zero no início da tecnologia as er pouco eficientes com muitas interações comunicação entre as partes é o que estão e hoje em dia a gente tem provas não interativas então eu que vou fazer a prova eu eu calculo na minha máquina ou seja lá onde for calculo uma prova envio PR pessoa que vai verificar e a pessoa simplesmente roda o algoritmo de
verifica então rounds não tem eu não preciso fazer um pingpong de 10 rodadas para tentar convencer o verificador eu consigo convencer ele com com blob de dados que ele roda o algoritmo de verificação aceita ou não aceita e a verificação ela é extremamente eficiente surpreendentemente eficiente normalmente se você quiser verificar alguma propriedade você tem que basicamente recalcular aquela propriedade no caso do a gente tá fazendo isso sobre informações que estão escondidas então esses se o dado tem um certo tamanho dentro de da da se ela tiver protegida por knowledge esse essas
informações podem adquirir um tamanho maior para para ter a aleatoriedade necessária para esconder os dados Então como que a verificação vai ser surpreendentemente eficiente Então o que aconteceu é que na verdade os o tamanho da prova passou a ser cada vez menor muito menor do que os dados necessários representar aquela propriedade então é como se fosse uma compressão Então são ideias matemáticas Geniais que foram sendo acumuladas ao longo das décadas e que chegamos agora nesse ponto em que a verificação ela tão eficiente e que a gente pode usar para propósitos não só de segurança a gente pode usar essa tecnologia PR escalabilidade de outras
construções Então você pode por exemplo você todo mundo deveria estar verificando o histórico dos blockchains e a gente sabe que muitas entidades que deveriam estar verificando tudo se recusam porque é um processo caríssimo então Um dos problemas que a gente tem nas blockchains quem tá verificando tudo isso então poucos aceitam essa tarefa ua de de verificar todo o histórico e com ziron a gente consegue tornar essa verificação de todo o histórico muito mais eh eficiente então é é surpreendente do ponto de vista algorítmico hã e por fim a gente tem recentemente a proposta de construções recursivas em
que você eh consegue acumular n provas e verificar o equivalente a uma única prova mas que eh como consequência valida todas as anteriores então isso tornou ainda mais eficiente esse processo de verif verção Principalmente nesse uso de de verificação de blockchain né as ZK raps que você consegue validar eh muito eficientemente e a gente tá em estágio avançado de padronização é um é um passo essencial para qualquer tecnologia a gente viu O processo de outras tecnologias não relacionadas com com criptografia necessariamente por exemplo a TV digital
aqui no Brasil ela tem que passar por esse processo de padronização a gente Olha o que outros países estão fazendo padroniza escolhe a tecnologia regulamenta E aí aos poucos as pessoas vão vão implementando e e montando seus negócios com a com a tecnologia nova e então a gente tá nesse nessa etapa de de padronização e um diagrama aqui que eu montei para exemplificar como funciona a criptografia de conhecimento zero a gente tem os dados privados de um lado com o Bob e ele vai vai escolher um predicado o predicado é a idade é maior que 18 sim ou não verdadeiro ou falso ou
alguma coisa bem mais complicado essa transação tem um valor esse valor é maior que zero e é menor do que um algum valor máximo enfim é uma é uma transação válida sim ou não então Alice ela vai receber essa prova vai valid panto quanto a api a a interface é simples é bastante simples não tem muitas funções pro usuário final gerar prova verificar prova e uma etapa inicial de de setup claro que as coisas vão ficando complicadas no detalhe mas pro usuário final a interface relativamente simples já com encriptação homom a gente
tem uma situação um pouco diferente a gente não tem esses predicados a gente não tem essa função que a resposta é verdadeira ou falsa o que a gente tem é a possibilidade de pegar uma mensagem que normalmente é um número tudo no computador é um número a gente consegue criptografar então Suponha que a gente tem o número cinco e o número sete a gente criptografa e obtém dois blogs que não tem nada a ver com cinco ou com sete a gente pode somar O resultado vai dar um outro blob se você cifrar da 12 você pode multiplicar Se você pegar o blob resultante decifrar vai dar 35 então parece mágica porque você consegue somar
e multiplicar os blobs aquelas coisas que são ininteligíveis podem ser somadas e multiplicadas e mesmo assim na hora que você descifra você tem o resultado que você queria ou seja a gente consegue pegar nossos dados criptografa manda pra Cloud a Cloud faz qualquer coisa que você você quiser porque qualquer coisa pode ser decomposta em somas e multiplicações claro que a gente gostaria de escrever Nossos programas com ifs e Loops mas daria para escrever os mesmos programas com somas e multiplicações muito mais trabalhoso mas dá eh então com isso a gente resolve pelo menos na teoria a gente resolve o problema de privacidade de uma forma
muito poderosa Basta ver se a eficiência é suficiente para resolver qualquer tipo de problema o que realmente não é tão simples mas a gente tá usando esse tipo de tecnologia por exemplo para fazer machine learning você criptografa os dados joga no na machine learning recebe o resultado criptografado decifra e tem a classificação ou o resultado que você quiser claro que o limite da do machine learning ainda e tem um certo limite não é qualquer tipo de machine learning que vai funcionar por causa da eficiência mas assim que que a engenharia avançar mais um um pouco a gente vai conseguir rodar com com exemplos ainda maiores e machine
learning ainda mais poderoso e E essas técnicas elas podem ser eh usadas para resolver o problema MPC o problema MPC ele é de certo modo o problema mais geral que eu vou falar un alguns slides mais para frente eu vou explicar um pouco melhor aqui eu queria só exemplificar e mostrar o que que tá acontecendo com a encriptação hom mórfica Então vamos supor que a gente tenha dados privados d0 D1 DK números e a gente criptografa cada um deles então c0 é encriptação do d0 C1 é encriptação do do D1 e assim por diante
a gente manda esses c0 C1 C2 até onde for manda PR Alice PR Cloud ou um servidor Alice consegue somar e multiplicar esses textos cifrados Cis c0 então por exemplo ela pode calcular essa fórmula então tem a fórmula c0 mais C1 multiplicado por C2 + C3 ela calcula isso Esses blobs são números gigantes ou polinômios ou matrizes ou alguma estrutura matemática relativamente grande e aí quando decifra você magicamente tem d0 mais D1 ve D 2 mais D3 Então você tem aquela mesma
fórmula aplicada com os seus dados privados E e essa é uma tecnologia pós quântica então além de tudo além de ser super interessante ela ainda resiste a ataques de computadores quânticos que em algum momento do Futuro provavelmente vão existir e aqui um um slide para para mostrar como que funciona o o sistema chamado MPC eh MPC significa multipart computation então é uma espécie de uma generalização do zero knowledge o zero knowledge você tem duas entidades o o provador e o
verificador no MPC a gente não tem só duas entidades a gente tem n e todos são ao mesmo tempo provadores e verificadores de certo modo eles eles ao final do protocolo eles T certeza que tudo aconteceu de forma como foi eh planejado então é uma espécie de uma verificação intrínseca e todos eles provam de certo modo que eles estão eh agindo de forma correta e a resposta não é só Falso ou Verdadeiro a resposta é genérica então cada um tem o seu dado privado eu Ten o meu ele tem o seu você tem o seu a gente quer calcular uma função Não sei a média o máximo alguma função matemática de
desses dados privados alguma estatística eu não sei só que você não quer me mostrar o seu dado Privado não quero mostrar o meu mas a gente quer achar o resultado o output o output não é só 0 1 o output é um um valor qualquer Então esse essa técnica ela é exatamente a que proporciona uma solução para esse problema genérico eh maior do que os hron de certo modo porque ele permite calcular funções que não cuja saída não é só 01 E aí e tem muitas variações muitos modelos de segurança eh segurança eh passiva ou ativa eh maioria desonesta maioria honesta para
cada uma dessas configurações vai ter uma solução ligeiramente diferente mas de novo a gente tem o que a gente chama de circuitos algébricos então que essas três áreas a gente tem que sempre decompor em somas e multiplicações e que trabalhar com esse esse nível abstrato de somas e multiplicações em vez de de programas com ifs e Loops ã essa tecnologia MPC de certo modo é a mais interessante é a mais ambiciosa com a encriptação protocolo porque a gente não sabe se os
participantes do protocolo tão tão agindo da maneira honesta e com zkp a gente força os participantes do protocolo a agirem de maneira honesta Então essas coisas estão todas intimamente conectadas desde a teoria até a prática você por exemplo também consegue implementar zero knowledge com MPC né só de um sentido pro outro então essas coisas são totalmente conectadas entre elas existe uma técnica chamada MPC In The Head que permite que você faça zero knowledge proofs usando essa tecnologia então a matemática ela é muito interessante bonita e e o conjunto de aplicações é é é maior do que as aplicações que a
gente discute com zero knowledge mas inclui todas essas construções que também são úteis para para zero knowledge a nossa visão de zkp ela tem três componentes principais em primeiro lugar a questão da segurança e da privacidade a gente tem eh muito enfoque na questão da privacidade a gente vê muito essa discussão de que zero knowledge proofs a questão de ser zero é porque não tem vazamento nenhum então é é zero em relação ao vazamento das suas informações privadas mas ela também tem outras características quando você consegue eh provar que que um um certo predicado ele é verdadeiro que uma que
um certo programinha de computador executou exatamente aquilo que você queria isso também é um componente de segurança você tá forçando a o participante do protocolo a a a agir daquela maneira e não e ter uma prova de que aquilo foi feito daquela maneira como como é esperado e isso é importantíssimo paraa construção de de de de qualquer tipo de protocolo e a gente chama isso de computação verificável Então essa computação verificável por por si só ela já tem muitas aplicações a privacidade ela é um requisito de da regulamentação então a gente nem tem muita escolha a gente precisa por ela a gente precisa da privacidade senão não é uma uma solução
aceita pela regulamentação e a gente tem a questão da da escalabilidade a escalabilidade ela ela é uma surpresa mas ela te permite um grau de liberdade na hora de de fazer o design do seu sistema jogando vamos dizer o peso eh de um lado pro outro já que a verificação é extremamente mais eficiente a gente a gente pode eh usar mais a verificação e tirar proveito disso então o o que a gente vê que essas eh eh Essas tecnologias podem ser encaradas como caixinhas fundamentais caixinhas básicas módulos blocos básicos que a gente pode brincar de LEGO
e e construir implementações seguras para problemas práticos genéricos Ah o processo de padronização começou como eu falei em 2018 eh eu eu faço parte do do processo porque eu tava no banco ing e eles me mandaram mas depois quando eu fui paraas outras empresas todas elas também patrocinavam o evento de padronização e me mandavam também para continuar sendo o mensageiro da da das empresas então todas as empresas que eu trabalhei eh queriam que eu de fato fosse todos os os anos às vezes mais de uma vez por ano para participar da padronização e e e
fazer com que a tecnologia que a gente tá desenvolvendo na dentro de casa seja mais e mais aceita pela pela comunidade então só que o que parecia tá bem estabelecido em 2018 muitas soluções tudo é muito bonitinho eficiente por exemplo o protocolo grow 16 Super eficiente para que que a gente quer alguma coisa melhor do que isso né Já já vamos padronizar essa solução já bota lá e pronto acabou mas não hora que chegou o evento de padronização a comunidade científica viu que tinha um uma atração enorme no desenvolvimento da
tecnologia startups nascendo instituições envolvidas muitos professores saíram das suas universidades e foram para pequenas empresas passaram a trabalharem projetos que às vezes depois de 10 20 30 anos na academia as pessoas por que aquele Professor saiu el famoso lá na universidade porque a tecnologia tá realmente ganhando maturidade e os projetos estão precisam de gente implos for puxou essa essas pessoas da academia pra indústria e aí o a o número de propostas cresceu exponencialmente
eh por exemplo plonk plonk 2 plonk 3 Hyper plonk depois Nova Super Nova Hyper nova eh então cada nova ideia gerava muitos outros tipos de de de otimizações e as ideias Se multiplicaram rapidamente isso gerou eh um atraso na padronização Claro que teve que de ano para ano avaliar novas ideias Mas por outro lado permitiu um enriquecimento muito grande do do dos protocolos da segurança e e de muitos outros detalhes importantíssimos para colocar Essas tecnologias na para
funcionar na prática então aqui aqui é uma foto de 2019 nove na verdade eh é basicamente meio a meio em relação à academia e Indústria não tá fácil me achar eu também não tava um pouco diferente não tinha barba eu tô do lado da professora shaf Gold vaster que é a inventora do Zon tô lá atrás na sombra Hã Tem outras pessoas por aqui o o Daniel que é o meu atual chefe e o líder do do evento ã pessoas da da indústria ã esse cara da da IBM essa mulher aqui do do Google ah baila de amarelo
ã aqui de vermelho o cara do Facebook enfim é bastante gente da indústria professores super importantes só o fato de ter a Chef Gold vaster o Grove o Grove 16 é esse cara é o Grove Ah enfim Canet muitas pessoas super importantes então é um orgulho mesmo fazer parte eu não imaginava que estaria no meio de um grupo como esses assim tão importante fazendo parte aprendendo muito então é devido a participar desse processo de padronização que eu
basicamente crci na minha carreira Isso foi me conectando com com outras empresas pessoas pessoas que eu sou amigo até hoje aqui do meu lado é O Armando é um um aluno de doutorado da Unicamp que é mexicano e que trabalha na cloudfare então e é mais uma indústria que tá trabalhando com a tecnologia e portanto eu eu eu queria que vocês se puderem dê uma olhada no no site lá tem bastante material com recomendações e palestras eh material para aprender como a tecnologia funciona eh definições de por exemplo camadas de software para ser
uma camada comum então a gente chamou de ZK interface que a gente conecta o backend com o Front frontend de uma maneira padronizada então coisas muito interessantes em andamento mas como a gente pode imaginar vocês trabalham em empresas eh imagino a maioria são empresas grandes então a gente sabe que o ritmo das coisas não é super veloz como seria numa Startup Então dependendo de da vontade de uma Startup você vai lá já implementa e sai usando mas no mercado financeiro com instituições Banco Central vários bancos centrais ao redor do mundo então convergir para uma solução única não é não é tão simples pessoal do Z tá aqui defendendo o peixe
deles então eles querem que que padronize um certo tipo de construção S outros Estão interessados em outras construções então é um é uma envolve um pouco de de da parte técnica mas também um pouco de de Business Hã A Linha do Tempo diria da da era dos dinossauros né no século passado lá pelos anos 70 a gente começou a ver a criação de casos eh ideias específicas para implementar MPC para problemas bem específicos E aí com essa primeira sugestão isso veio em paralelo com o conceito de
criptografia moderna a criptografia antes ela era eh não não havia aquilo que a gente chama de segurança demonstrável haviam heurísticas e os os melhores ataques então a gente constrói sistemas cujos melhores ataques não vão quebrar e então esses ataques não funcionam na prática então projeta os parâmetros para resistir aos ataques e assim que era feita a criptografia Mas a partir dos anos 70 80 a própria Chef Gold vass Fez parte desse processo zeron também é importante nesse processo a criptografia demonstrável passou a ser o carro chefe então nada era proposto na teoria sem
que tivesse essa demonstração de segurança e aí a gente foi vendo a evolução exponencial conforme o tempo foi passando com certeza tem centenas de papers todos os anos aqui eu tô colocando só os mais importantes então o sistema 2 PC que em vez de multi é só dois então não são n part mas só duas que podem fazer um protocolo genérico depois veio o zkp depois veio o MPC genérico não só para duas partes mas para n partes depois as provas não interativas provas deor a gente separa o conceito de zkp que você chama prova de
conhecimento disso que foi proposto aqui proof of knowledge que uma coisa é você saber que um problema tem ou não solução e outra coisa você você saber qual é a solução então o que a gente quer Hoje em Dia com o uso de snarks é provar que você sabe exatamente qual é a solução e não que por exemplo no início a gente queria mostrar que grafos Gigantes são coloris então era uma aplicação bem teórica hoje em dia a gente quer mostrar que uma certa transação no blockchain tem um valor com uma certa propriedade e isso já é uma coisa que você tem que provar o conhecimento específico de um valor específico aí mais recentemente a a gente viu a transformação desses
esquemas que eram mais teóricos para começarem a funcionar na prática de forma eficiente eh para para problemas do mundo real então o que abriu essa linha de trabalhos foi Z snark 2006 então em 2006 veio a primeira na verdade isso na teoria já existia Mas que que pode ser implementado na prática foi em 2006 a gente viu MPC implantado para um produto auctions de de betab na Dinamarca Então as coisas já estão entrando funcion na prática desde do começo dos anos ali Acho que é 2008 então junto com a
invenção ali do Bitcoin as coisas já estavam sendo colocadas para funcionar na prática com o mercado esse mercado de de auctions para beterraba é um mercado grande então bastante dinheiro envolvido e tá funcionando até hoje aí lá para 2016 em diante a gente viu essa explosão exponencial muitas construções nov trabalhos acadmicos mas também implanta sistemas na prática Zin oin por exemplo o maior circuito que a gente Pelo menos era no meu conhecimento maior circuito até um tempo
atrás não sei se alguém fez um circuito maior que o deles hoje em dia mas esses circuitos estão ficando com tamanho absurdamente grande milhões de Gates e em 2018 a padronização começou e depois da padronização a gente viu plonk plonk 2 3 Hyper nova e aqui bem recentemente a gente viu esses papers laço e que deixam as coisas ainda mais eficientes são tabelas de de lookup com propriedades mais interessantes que as tabelas deup do Então existe uma uma de construções é é muito rica a parte matemática e e na prática as
coisas estão convergindo rapidamente a gente tem alguns tradeoffs que que acho que é importante aqui mencionar eh alguns sistemas tem uma confiança maior do que outros porque já estão sendo propostos há décadas Enquanto algumas pessoas mais recentemente tiveram ideias de fazer otimizações mas mudando o modelo de as hipóteses de segurança Então existe todo um debate teórico para para aceitar essas novas ideias existem diferentes formatos para você definir um circuito eh você só precisa definir o que que tá sendo somado ou multiplicado mas as pessoas na prática definem formatos R1 CS CCS plonk Sonic
então cada um desses formatos não é tão fácil de eh não tem uma interoperabilidade entre eles você até consegue na teoria transformar mas na prática é um pouco de um PES mod delo tentar transformar uma coisa na outra tem a questão do setup o setup é chamado de confiável porque para você gerar os parâmetros para usar o Zon você precisa fazer uma cerimônia inicial em que existe uma espécie de uma chave mestre e essa chave mestre ela permite você gerar provas falsas então é uma coisa que parece meio catastrófica e de fato é muito preocupante você Poderia gerar dinheiro do nada usando esse tipo de de construção se o setup não for feito da
maneira correta e e o que a gente usa pra Construção desse setup são técnicas de mpc Então aí tá mais um exemplo de como as coisas estão conectadas a gente precisa de mpc para fazer setup prology então de novo Eh no início o grow 16 ele tinha um setup que ele cada vez que você faz um circuito você tem que fazer um setup do tamanho daquele circuito se você mexer um fiozinho um Gate mudar uma variável de lugar você tem que fazer o setup todo de novo ISO muito ruim na prática e também é muito ruim de você explicar essa questão do do da chave mestra para qualquer pessoa daárea de Business então
ess é um requisito difícil de vender eu diria e Então teve uma pesquisa toda para criar setups atualizáveis setups universais em que esses problemas vão sendo minimizados então com com o Sonic por exemplo a gente tem setup atualizável Se Você atualizou seu circuito você consegue atualizar o setup de uma forma eficiente e o setup universal ele serve para qualquer circuito Então essas eh evoluções são coisas que a gente põe aqui nos slides justamente para reforçar a questão da maturidade eu não acho que a tecnologia seria madura se a gente tivesse que sempre confiar no setup para algumas eh
situações isso é completamente indesejado Aí vem uma questão importante porque quando a gente fala de circuitos somas e multiplicações Isso parece muito matemático muito abstrato de fato é bastante complicado como que um programador comum vai implementar um circuito existe muito muita margem para erro fazer uma coisinha Pode ser catastrófico então duas coisas que eu queria comentar aqui é que zero serve para você verificar mas quem vai verificar que você fez o circuito do jeito certo então você você precisa de auditoria as pessoas especialistas precisam auditar o seu circuito não só
uma vez uma duas três vezes auditoria interna externa se você passou um tempo mexeu naquilo vai fazer auditoria de novo ou então uma técnica mais teórica que são os métodos formais que permite você eh ter total confiança que você saiu de um programa de computador gerou um circuito de forma 100% confiável então é é é uma coisa maluca porque você precisa verificar o próprio zero knowledge então tem essa questão de verificar se o zero knowledge foi implementado do jeito certo e aí a gente começa a confiar então nos compiladores de certo modo esse problema existe na programação comum você tem que conf que o compilador fez aquilo que
você programou para fazer ele pode botar um qualquer coisa insegura no seu programa Você tem que confiar no seu compilador ho a gente confia no nosso compilador o tempo todo então com métodos formais a gente consegue avançar um pouco e colocar uma garantia teórica que que a compilação foi feita da maneira correta aí a questão eu fiquei pensando bastante para essa apresentação como que eu vou definir ou discutir a respeito da da maturidade é uma coisa pouco palpável ou não é exata Não é matemática não tem um número aqui para me dizer A maturidade é 42 enfim aí eu
trouxe informações e itens aqui que que ajudam a aumentar a maturidade o nível de maturidade Mas é uma coisa relativa o que eu acho que que contribui para essa discussão é você analisar quantidade de papers a quantidade de White papers posts blogs vídeos escolas de criptografia dedicadas ao tema conferências agora a gente tem ZK hack ZK podcast ZK tudo então a gente pelo número de de de trabalhos que que surgiram a gente consegue ver que pelo menos a tração dessa área cresceu e em nenhum momento
ela decaiu vagas de trabalho startups dinheiro investido o a quantidade de engenheiros em comparação com pesquisadores né No começo a gente via muitos pesquisadores agora a gente vê muito mais vagas de engenharia pessoal fazendo trabalhos para otimizar em hardware otimização de diferentes níveis que não são mais na matemática são na parte de programação pessoal fazia as suas provas de conceito lá os criptógrafos mas não tava dedicando tempo para para otimizar os detalhes então agora a gente vê as empresas fazendo essa otimização da da das camadas de de engenharia do do do das Lay de engenharia a gente vê também
prêmios sendo oferecidos para vulnerabilidades encontradas e o próprio processo de padronização internacional ou então regulamentação essa é uma questão importante a regulamentação ela é um se padronização é um processo lento a regulamentação é pior ainda porque ela envolve a política e Mas por outro lado a regulamentação já tá lá o banco central já já já existe a gente já tem o o problema já existe só vai mudar a solução do problema então a a questão da da privacidade já tá regulamentada a gente é obrigado a fazer a gente não pode talvez mexa a
regulamentação para para mudar algum aspecto pode ser necessário mas a regulamentação já tá lá então a gente tem regulamentação na Europa aí aqui no Brasil a gente seguiu os mesmos Passos isso são regulamentações novas em relação à privacidade mas não tem uma regulamentação dizendo essa técnica de criptografia vai ser aceita como solução para esse problema assinaturas digitais já é é aceito pela lei então uma assinatura digital é tão boa quanto uma assinatura de punho e assinatura digital é uma prova de conhecimento zero 11 KP bastante simples a resposta é falsa ou verdadeira assinatura é falsa ou
verdadeira então já e é é um outro argumento a favor da maturidade essa tecnologia já tá aí assinatura digital é uma prova de conhecimento zero bastante específica e aceita pela lei o que a gente precisa expandir a regulamentação para encaixar novos casos de uso adaptar conforme for necessário colocar Talvez um pouco de de pressão como a gente dá área técnica a gente eh tentar usar o melhor da nossa comunicação para explicar que realmente isso é uma coisa nova não é uma Hype não é um um uma especulação para vender criptomoedas não é isso a gente eh tem realmente uma tecnologia diferenciada não precisa ter
relação nenhuma com blockchain e de fato tem aplicações na na prática que não tem relação nenhuma e eu acho que essa é a é a parte final que falta para para maturidade o o o pedacinho a peça final desse quebra-cabeças é a regulamentação Porque mesmo os casos de uso a implantação já tá acontecendo Então o que falta é é é ser aceito oficialmente e que muitas vezes vem depois a gente muitas vezes na prática usa tecnologia antes da regulamentação mas a regulamentação vai ser o a peça final da da da maturidade da tecnologia alguns casos de uso que a gente vê eh Se
você começar a procurar em blogs em vídeos vão ser mais ou menos essas as os casos de uso que vão ser mais mencionados então muita coisa relacionada com identidades kyc então provar informações privadas relacionadas a ao cliente e não ter que refazer isso toda vez todo banco tem que refazer o mesmo processo Vamos fazer uma vez só e reutilizar eh pagamentos privados zcash e exchanges descentralizadas Smart contracts privados Z VM Z evm Zik um monte de coisa né Zik e-mail por exemplo no
começo eu não via muito por zmail é interessante zmail eu fiquei procurando fui ver hum muito interessante na verdade a gente já usa e-mail como forma de autenticação a gente usa o Google Gmail para se autenticar então se eu conseguir provar que eu recebi um um e-mail na verdade isso tem muita força no mundo prático que a gente não usa porque a gente não a situação é diferente mas com o zero knowledge a gente pode usar uma um zmail de uma forma completamente Inesperada fazer transações você pode fazer uma transação mandando e-mail É uma uma ideia talvez maluca vamos ver se resiste com o tempo mas assim a gente precisa da expansão das ideias para depois convergir algumas talvez alguns
desses IKS vão talvez desaparecer no futuro mas talvez outro outros vão vão se consolidar a gente tem também as Zik Brides e ZK raps que que são eh muito discutidas né Acho que as as maiores somas de dinheiro investido tão na construção de dzk bridges e e raps em particular para para ethereum então provar que que uma transação é válida no etheron não é nada simples porque a função de has que Eles escolheram não é muito amigável Então não é fácil você fazer uma construção zero knowledge paraa função de rest que Eles escolheram embora eh alguns outros resultados aí na prática com bastante esforço de
engenharia já tão chegando lá hum eh já tem ZK brids mas o que se Pensava que ia ser uma explosão de de brids não é tão simples não é tão simples fazer o Zon funcionar de maneira geral no eum Existem algumas famílias de construções que funcionam bem no e outras famílias que são muito boas no laptop num celular mas no não funcionam tão bem por causa da função de por causa de decisões de design do e que essas coisas vão aos poucos evoluir até porque o Vital gosta muito das Z ele sabe que as tecnologias que foram
adaptadas até agora são só uma pequena parte e não são as melhores Então as coisas mais recentes ainda precisam ser implementadas no e de uma forma eficiente e por fim cbdc né criptomoedas aplicadas para banco central existem vários trabalhos nessa área Esse é exemplo que contribui muito pra discussão da maturidade porque eu mergulhei um pouco nesse assunto nesses últimos dias nessas últimas duas semanas para entender o que aconteceu nos últimos anos 5 anos atrás dá para ver um monte de White Paper trabalhos de diferentes países falando que ziron
ainda não estava pronto e trabalhos de 1 2 anos atrás mudando de ideia já falando não zeron e não só tá pronto em termos de eficiência Como resolve o problema de regulamentação a questão da privacidade da Computação segura e eles ainda não ainda não não tem nenhum nenhum projeto concreto que está usando o zero de forma concreta mas a recomendação agora é estudar ir atrás desse assunto então pelo menos na regul no eh na parte Europeia o Daniel né da meu chefe ele ele participou de um do de um de um relatório da da União Europeia
que justamente recomenda o zero knowledge e esse foi um relatório aceito pelas diferentes entidades então agora a posição da da da da comunidade da indústria mudou aqui eh o SL O slide anterior eu falei caso de uso porque muitas vezes ele ele aparece de forma genérica eu não sei se foi eh feito de verdade por alguma empresa plado ou não aí que eu resolvi falar de casos em uso o que que realmente foi feito na prática e que tá E que foi implantada então a Claudia flir né ela ela fez um projeto dos mais interessantes o Private pass que é acesso anônimo de de websites então é um
projeto muito interessante muito Poderoso em termos de aplicações o signal também para credenciais anônimas na um pouco mais na parte exploratória de pesquisa a a Microsoft eh com a pesquisa relacionada ao nova hypernova Supernova que é um sistema zero knowledge muito interessante com com uma Nova Visão da matemática e que que tem um potencial de se tornar muito eficiente principalmente em termos de de arquitetura e também a a questão da da Computação verificável porque eles têm toda a parte de Cloud computing que eles querem oferecer pro pro usuário
programador Microsoft uma plataforma que que tem essa capacidade da Computação verificável não sei se o interesse deles é tanto na privacidade Pelo menos eu não ouço tanto falar dessa parte até porque o sistema nova que tá lá no github Até hoje ainda falta o componente de zero knowledge Então não é zero knowledge é o zc nesse caso nem no nome eles não colocaram pelo menos foram consistentes como uma tarefa futura vamos adicionar oson depois porque a privacidade no caso deles é menos importante do que a parte da Computação verificável então
fazendo linguagens plataformas ferramentas e querendo aplicar isso a machine learning ibmm tem um grupo de pesquisa M fores deo mu startups eles ainda TM esse grupo forte principalmente na parte de credenciais anônimas Ou seja a parte de identidades e eles estão construindo um sistema para colocar para funcionar na na prática e e para grandes clientes então eles têm um inúmeros projetos inúmeros grupos de pesquisa na Suíça nos Estados Unidos enfim é é é bastante recurso investido pela pela IBM o Google chegou um pouco depois
mas chegou tem tem projetos relacionados a todas essas áreas enpa mórfica Zon e bastante coisa voltada para machine learning então o investimento do Google tá crescendo eles estão aparecendo cada vez mais apesar de ter chegado um pouco por último aí no processo de padronização Mas eles estão chegando cada vez com mais força e a Intel pelo menos no que eu conheço eles estão focados mais na parte de ação H mórfica construindo um hardware que vai ter dentro do Hardware a as instruções necessárias para fazer a encriptação mórfica ord ordens de magnitude mais
eficiente outros casos de uso aqui mas agora voltados para blockchain ã tem muito mais do que isso é uma quantidade absurda eu tô aqui enfatizando alguns que eu que eu gosto mais o semafor que a gente tem um projeto com eles também é um um projeto importante que você consegue fazer o membership você prova que você faz parte de um certo conjunto de entidades consegue trocar mensagens e provar coisas Nesse contexto de de pertencimento a um certo grupo e troca de de mensagens Z uma linguagem funciona no ainda atrel primeiras formas de zero
knowledge que ainda precisam do TR de setup mas com a pesquisa na direção de sair dessa dependência o o polygon a VM da da polygon que é um é um é uma família que chama starks então usando essa família starks eles conseguiram vencer os desafios de de fazer o Deploy no eum poucos projetos estão conseguindo fazer isso de uma maneira bem consistente e essa família chamada starks tem algumas vantagens que permite maior eficiência no eum Risk zero também é da mesma família eles também dependem desses starks é uma
mistura de plonk E starks então com essa mistura de de tabelas de lookup mais o as funções de hash usadas no no starks eles conseguem fazer coisas na evm tls not muito interessante esse projeto você consegue montar uma conexão tls em vez de ter só um cliente um servidor você tem um servidor igual é era antes mas o cliente ele é dividido em duas partes o provador e o verificador Então você forma uma uma conexão TS com o servidor eeg
V Para uma terceira parte que vai verificar que a sua conexão tls tem alguma propriedade lá dentro então tem um uma uma um campo criptografado dentro do tls Você pode falar acabei de comprar alguma coisa na Amazon Mas como que você vai provar Para uma terceira parte você consegue fazer isso com tls not você convence uma terceira parte ela pode verificar e você não abre todo todo os dados que estão dentro da conexão tls só só abre alguma coisa muito específica que é exatamente aquilo que você quer provar isso também é o tipo da coisa que eu no começo encarei igual os Zik e-mail Quais são as aplicações mas depois de
ver algumas palestras eu eu percebi que isso é super é um produto com modelo de negócio é impressionante digital asset a empresa de Nova York que que é importantíssima e que também no começo num não tava fazendo muita coisa com o zero knowledge nunca menosprezou digamos assim mas não investiu muito e agora ela tá se debruçando sobre o problema porque ela viu que é basicamente o melhor caminho junto com com outras eh entidades financeiras dos Estados Unidos eles estão eh montando uma super uma empresa grande nessa área e que vai usar na prática de uma forma
eh mais podos porque envolve o mercado financeiro dos Estados Unidos então a gente vê os Big players entrando quando a gente olha digital asset e a Starlight que que é um uma solução muito interessante lá no começo do ether com zero a gente viu oates que era uma forma de de criar os Smart contracts com zer mas muito baixo nível muito difícil de de usar o Sócrates a intenção era facilitar a vida dos desenvolvedores mas ainda tava engatinhando na no anos atrás hoje o projeto já desenvolveu bem então a gente
tem é uma questão que é importante que é é permitir que um programador comum não especialista não eh especialista em criptografia ou matemáticas um simples programador mortal vai lá e quer construir a sua aplicação com ziron não precisa ser igual a gente quer fazer um https a gente não precisa ser um criptógrafo para montar uma conexão segura então a gente só precisa configurar né então a gente não não precisa de um nível avançado de conhecimento e o Starlight é uma das Ferramentas que que a gente pode destacar como cumprindo esse papel de facilitar a vida do do programador aqui também tem muitas
ideias e muitas outras coisas fora do e eu eu destaquei só essas três mas tem muito mais o projeto mina é um projeto que que faz Smart contracts privado de uma forma muito eficiente porque eles tomaram decisões totalmente diferentes do etheron Eles vieram depois eles puderam olhar pro passado e falar hum isso aqui não funciona muito bem com o zeron por causa dessa decisão por causa dessa última decisão então eles re eles analisaram o o design do etherum e fizeram uma outra construção com com outra forma de de outras funções de hash outra arquitetura completamente
diferente em que a aplicação de zeron nesse caso ela fica bastante eficiente ela ela só que por outro lado não temha o volume de de usuários se tivesse o mesmo volume de usuários do Eon seria mil maravilhas tornaria 10 100 vezes mais rápido tudo aquilo que você sofre para fazer no etum no projeto mina a a demonstração e eh de conhecimento zero seria muito mais eficiente Iron Fish que é uma ferramenta que eu já mencionei eh para pagamentos parecido com zcash mas generalizada moneiro que usa o Bullet proofs para fazer uma prova de
conhecimento zero bem específica mas já tá usando há bastante tempo então a gente pode usar o moneiro como um exemplo de uma já já estamos eh fazendo plantação disso há alguns anos aí pelo menos acho que 2018 alguma coisa assim eles eles já tavam usando Bullet proofs Então já já tem aí se anos que que o zeron tá funcionando nessa blockchain ã para cbdcs especificamente eu eu tentei fazer um apanhado geral bem High level dos componentes criptográficos que são necessários o que a gente em geral vê é um componente que chama
commitment em inglês ou compromisso traduzindo aqui pro português um compromisso criptográfico homr Isso significa que a gente pode realizar as operações algébricas em geral eh apenas a soma porque o que a gente quer em geral é fazer o controle de balanço então a gente só tá somando e subtraindo pagamentos de uma de uma conta não tem multiplicação você só soma e subtrai valores eh da sua conta e portanto você só precisa de somas a gente tem árvores Merkel que são usadas em muitas aplicações não só em em blockchain a
gente viu árvores merkle elas foram inventadas nos anos 70 são usadas em Torrent github então um monte de coisa que a gente não tem nem ideia que tá usando ávore Merkel já tá usando isso há décadas há pelo menos uns 20 anos que que a gente cons porque o problema original era a gente quer validar a consistência dos dados a gente pega um filme Gigante calcula o hash dá um negocinho pequenininho Mas você calcular o hash de um filme de gigab não não vai terminar tão rápido o que você faz é quebrar em pedacinhos e montar uma árvore então a árvore merc já é usada há muito tempo e são provas de conhecimento zero e você prova você basicamente prova que
aqueles bytes fazem parte do total então é uma espécie de um set membership antigo e muito eficiente então aí as próprias funções de R que são usadas para construção de árvores elas são importantes não só paraas árvores mas também para para outras partes do processo de validação de uma de uma transação qualquer assinatura digital antes de fazer assinatura você precisa calcular o hash e a gente muitas vezes quer provar que aquele hash foi calculado da maneira correta usando zeron knowledge então mais uma vez os componentes criptográficos sendo usados em diferentes formas Entrelaçados de diferentes maneiras e e a gente pode
usar zero knowledge Mas a gente pode trocar por exemplo o commitment a gente pode trocar por encriptação homom a gente pode trocar árvore Merkel por um outro sistema de de acumulação então tem tem como você trocar os componentes e usar outras tecnologias então tem muitas decisões de de de arquitetura possíveis e diferentes empresas estão basicamente testando quase todas essas combinações porque é muito difícil saber qual que vai te dar o o sistema mais eficiente só com estimativas Então tem muito muita experimentação prática eh aquilo que você vê no paper que a a complexidade assintótica é n log n com a
isso na prática não funciona funciona muito bem você coloca para funcionar e os resultados que a teoria diz que um é mais eficiente que o outro por causa do n log n n Quad você vai ver Às vezes na prática não as coisas se invertem as constantes podem ser muito grandes e tudo se inverte então não é fácil você fazer uma Estimativa de como as coisas vão funcionar na prática se você for pro eion é diferente de você calcular num celular ou num computador então muito complexo tentar entender a complexidade uso de memória as várias variáveis envolvidas no nesse tipo de de construção
criptográfica a gente tem um caso específico de Israel que tava construindo tá construindo o o sistema cbdc deles eles estavam numa fase exploratória agora eles abriram para as empresas por volta de 15 empresas participarem da da construção de soluções uma dessas empresas é a empresa que o que o Daniel meu chefe era Líder antes é cedit então é um caso que tá também ganhando maturidade nesse assunto específico e a gente tem esses relatórios Eh que que mostram a evolução dessa área a gente tem alguns cbdcs já
implantados se não me engano na Jamaica alguma coisa assim mas não usando essa tecnologia zero então é é uma é um assunto que ganhou muito volume e a maioria não tá focado em zeron mas todos esses que não estão focados em zeron ainda tem um problema de de privacidade então é sempre a mesma história um banco não quer ver as transações do outro banco e Em algum momento eles descobrem que isso tá acontecendo e eles percebem que tem que usar algum tipo de ferramenta criptográfica algumas considerações finais ã os sistemas precisam para melhorar a maturidade eles precisam ser mais amigáveis pro programador pro usuário
final a gente precisa de ferramentas plataformas compiladores cursos treinamentos livros e essas coisas estão aparecendo eh cada vez mais a gente precisa eh entender a questão da programade versus performance a gente tem meia dúa de compiladores talvez até mais 10 compiladores que transformam um programa do tipo Rust em zero knowledge transforma um programa de do Tipo C em zero knowledge enfim tem tem uma série de de coisas implementadas do ponto de vista de automação fazer um compilador mas aí você perde em performance Então
você tem que entender se vale a pena você jogar tanto fora em termos de performance Para você ganhar em termos de usabilidade então para alguns problemas mais simples provavelmente sim mas para machine learning provavelmente não então não dá para eu tentar usar um compilador que vai gerar automaticamente o meu machine learning já com zero knowledge você tem que botar Talvez um criptógrafo para dar uma apertadinha nos parafusos para deixar o negócio mais eficiente e por fim eh enfatizar a questão aí da da regulamentação e é o passo final e é uma é um passo difícil pra gente que é da parte técnica que vai envolver política Business mas a gente precisa disso para para que as coisas funcionem
de acordo com a lei e e acho que uma coisa importante para eh Ops enfatizar aqui na regulamentação é que os primeiros players em geral T alguma vantagem então se você tiver essa coragem de ser um dos primeiros players um banco eh que quiser ter a coragem o banco ing por exemplo que foi um dos primeiros eles vão ter algum tipo de vantagem eles estavam na fase de experimentação anos atrás quando eu trabalhava tá agora eles já estão investindo em outras empresas não é mais um grupo dentro do banco de experimentação Mas eles estão colocando dinheiro do próprio banco em projetos reais em particular para eh wallets com assinatura distribuída multi multi
assinaturas Então essa é esse é o assunto que eles decidiram investir na quando tá relacionado com zero knowledge E pelo fato dees serem os os primeiros a chegar e de alguma forma indireta eles eles têm algum tipo de vantagem porque eles já tão e eles já aprenderam a usar tecnologia já já experimentaram Já implementaram e agora eles estão usufruindo e se você chegar tarde aí talvez seja tarde demais então eu queria incentivar aqui a as os primeiros players a enfrentar o problema regulamentar e e pô para funcionar mesmo que não esteja perfeito nunca vai ter
perfeição em criptografia é um jogo de gato e rato né o próprio tls você queer SS L1 2 3 e aí tem ataques aí você conserta os ataques faz recomendações Então não vai chegar um ponto em que alguém vai falar zeron é 100% seguro nenhuma tecnologia de criptografia vai ser 100% segura e elas vão ser regulamentadas e usadas na prática existe uma probabilidade de um é você sortear uma um átomo dentre os átomos do universo vai alguma coisa ruim pode acontecer então sei lá pode acontecer é uma questão de probabilística então Eh como conclusões
aqui também o a tecnologia ela tá em processo avançado de padronização a gente já entende todos os aspectos teóricos e práticos tradeoffs e e talvez a gente possa começar a dizer que os trabalhos teóricos vão começar a diminuir o que vai reforçar a questão da maturidade porque eh não existe como otimizar a matemática para sempre a gente vai encontrar um teto em algum momento Então esse teto parece Tá começando a se aproximar não dá para fazer uma mágica muito poderosa a gente sabe os limites teóricos e a gente tá chegando perto deles os casos de uso na prática demonstram a a viabilidade técnica da
da tecnologia e por ser uma um bloquinho básico de LEGO que você pode construir outras coisas usando zero knowledge a a maturidade das outras tecnologias depende da maturidade do do zero knowledge então para colocar a encriptação homr ou o MPC para funcionar na prática a gente Primeiro vai ter que colocar os Zon então por isso que que essa tecnologia tá um passo à frente eh eh eu queria aqui também deixar a à disposição para contatos quiserem entrar em contato com com a gente e aqui tá o o site meu e-mail
eh para qualquer coisa participar desses eventos para mim é um prazer obrigado pelo convite é um prazer eh ver que as coisas estão acontecendo Eu tô trabalhando remoto e agora vi que que chegou no Brasil com a palestra do Jeff e falei vamos conversar mais porque eh trabalho com isso há alguns anos e ainda não tava vendo o espaço aqui no Brasil e agora fico bastante feliz de de poder discutir as questões técnicas por aqui em português ã um pouco de material auxiliar H quiserem ver livros eh podcasts eh algumas referências aí para para
vocês buscarem esse último aqui um pouco de atualizado mas muita coisa lá do do início e é isso perguntas [Aplausos] Opa Putz primeiro obrigado assim Fantástico Às vezes você encontra no Brasil você vê caramba tinha uma pessoa
que já tava nesse evento com os criadores impressionante assim muito legal de você vir compartilhar com a gente Cara eu tenho uma pergunta sobre Sua percepção né no começo do ano lá no etério samba eu me propus para forar o aprendizado a fazer um leilão à cegas né estudei na época lá que leilão à cegas ele é um bom caso de uso para quando o governo da licitação E aí os participantes não querem ver os Bids dos dos concorrentes né Aí eu fui tentar fazer isso em circon na época não conheci Starlight ainda que facilitava essa implementação cara em circo eu eu eu não sou matemático de background sou
engenheiro e eu comecei a tomar uns erros lá no compilador de a linearize o seu polinômio diminui o grau do e eu falei meu Deus do céu Tipo eu tava apanhando para conseguir implementar uma aplicação simples e eh pô 10 anos de programação eu tenho background de engenheiro eu falei nossa isso daqui é até chegar e eu ia dar uma palestra para Universitário Eh aí eu comecei a pesquisar umas alternativas e eu encontrei o Zama o Zama já com essa proposta né ambiciosa de ZK e VM né você só mudar lá o a keywords e você consegui parecido até um pouco com o Starlight de já abstrair tudo né ah programa solidity
você só muda lá uma chave reservada e ele consegue fazer isso para você só que eu fui ler que ainda muito lento né pra geração do de tudo da da do homomorfa bem por for eu gostaria de ouvir sua opinião que ainda tá a entre homomorfa e o zkp parece tem um abismo aqui de escalabilidade né e mas eu mas parecia que o [Música] homófono a composability errado
mas eu resolvi colocar a mão na massa e o pessoal falar Ah não isso tá longe da gente não vai escalar a gente não consegue a gente precisa que a gente precisa que funcione em milisegundos mas tá levando para cada operação tá demorando muitos segundos e então não tem como botar isso para milhões de de registros no no banco de dados Impossível aí eu comecei a fazer uma ação aí eu tirei um componente que era desnecessário aí eu fiz um uma experimentação Zinha básica deu 50 e poucos segundos 59 segundos para calcular um peso de raming e eu teria que multiplicar por milhões um o número
de enfiadas no banco de dados são fator multiplicativo então 59 segundos vezes milhões esquece aí duas semanas depois 10 segundos Du semanas depois 1 segundo depois de mais duas semanas a cada Sprint eu fui reduzindo uma ordem de grandeza aí depois a a última deu um pouco mais de trabalho passou um mês o pessoal até falar ah um segundo ainda não dá chegou no limite aí você não consegue fazer mais aí eu tentei eu voltei lá no meu doutorado aí baixou para 2 msos no meu laptop sem Amazon Então as coisas não são tão simples a a visão geral tá certa se você usar o compilador da Zama vai foi o que eu usei
Demorou 59 segundos aí a hora que eu vi que aquele sistema de criptografia não era o ideal para aquela solução tinha outros papers aí eu voltei pros papers comecei a fazer a pesquisa de novo o que que é mais adequado para esse problema específico aí eu baixei quatro ordens de magnitude quatro zeros do então se eu tenho milhões que são seis zeros e eu tava acrescentando dois multiplicando por 59 segundos basicamente aí eu passei a tirar três porque ficou 2 msos Então o que a gente quer que demore alguns minutos já vai ser alguma coisa prática o cara vai lá eh cadastrar a biometria e talvez não não seja instantâneo mas antes do dia seguinte
ele tem uma uma resposta enquanto antes ele podia esperar o ano todo que não ia porque você tem que ver se aquela biometria tá ou não dentre os milhões ali e a verificação disso não é uma igualdade a biometria nunca bate exatamente com a outra ela tem um um é fuz né então ela ela isso aí torna as coisas muito complicadas e enfim é é sempre possível dar uma otimizada quando você tem um problema específico e é muito difícil fazer isso quando você tem um compilador Genérico e a Zama tem esse compilador genérico Então bate muito com esse último slide que eu falei que você tem a progr programade vai fazer perder um pouco da performance a gente vai juntando essas coisas aos poucos mas se você tiver um
problema que não tá dando a escalabilidade você chamar alguém para ir lá dar uma otimizada manualmente ver se diminui o tamanho do circuito enfim voltar um pouco para pra pesquisa aí você entende Qual é a técnica melhor aí sim você vai de novo paraa Engenharia e otimiza a implementação de novo então tem essa essa questão o zero knowledge ele vai ser usado junto com a encriptação a fórmula que tá calculada então o zeron ele vem por cima da encriptação homr e hoje em dia o pessoal considera que o
zeron vai ser o gargalo porque a encriptação homr ela ela é lenta relativamente lenta mas você colocar un ziron por cima de uma coisa lenta vai ficar mais lento ainda então o ziron para uma coisa grande complica então colocar o zeron por cima do encriptação mórfica aí eu concordo uma coisa complexa mas eh se você quiser uma coisa mais específica customizada lá que você eh faz eh um processo de otimização voltado para aquele problema dá para resolver muita coisa no mundo real e e até mesmo com escalabilidade de milhões
eh de entradas no banco de dados então é bem relativo legal obrigado eh Parabéns pela pela apresentação muito boa acho que foi uma das mais completas nessa área eh quando eu penso no zero kolic pro e sendo executado dentro de um Smart Contract que pode eh ter uma função genérica né eu posso trabalhar com dados estruturados dados não estruturados posso ter centenas de funções ali posso ter Chaves posso ter posso ter Elf posso ter muitas condicionais e às vezes até
interação de um contrato inteligente com outro contrato inteligente como você vê a questão da utilização do zer dentro desse contexto você acha que ela limita a compos abilidade Ou seja a interação entre múltiplos contratos inteligentes um pouco muito por causa da do zoológico de construções tanta pesquisa e tantas coisas acontecendo em paralelo que tem muita coisa que não é interoperável mas isso não é uma coisa teórica é uma coisa da prática então a gente sabe como resolver isso na teoria e na prática mas como Cada um tá cada um por
si vamos dizer a gente ainda não vê uma grande solução de interoperabilidade então é realmente difícil fazer um circuito funcionar com outro se eles tiverem sistemas diferentes mas o zero knowledge ele é poderoso o suficiente para resolver essa Isso não é um problema teórico é um problema bem prático porque na teoria as coisas são completamente modulares você consegue a flexibilidade total e e por exemplo na parte de mpc a gente tem um teorema que chama o c de Universal composability Então isso é um teorema muito poderoso matemático
que mostra que a gente consegue compor qualquer coisa com qualquer coisa então a teoria ela é muito poderosa agora já na prática são empresas concorrentes e aí você nem vê às vezes todos os detalhes na especificação coisas escondidas por exemplo o sistema nova eles você lê o paper e olha o código são coisas diferentes decisões diferentes devia no paper não tá no paper Então as coisas começa f como que eu vou fazer a interoperabilidade essa especificação não é a mesma da implementação então o buraco é mais embaixo Por uma questão mais prática do que teórica é um é um grande desafio eu eu eu já ouo falar disso há 5 se anos desde
a época do banco ing e eu não vejo um projeto que resolve isso usando o que a gente propôs na padronização a gente na padronização propôs um ZQ interface mas não a gente não tá vendo as empresas usando o ZK interface então a gente precisa talvez botar um pouco de pressão falar assim se vocês não usarem isso não vai ser carimbado pelo pelo padrão eh enfim as ferramentas ideias e conceitos estão aí mas é difícil colocarem em prática Muito obrigado ô pessoal Se vocês não forem
perguntando eu vou perguntando aqui é o uma outra pergunta que eu Tino sobre você falou zck brids nos casos de uso né e Putz eu fui no naquele defi Security summit ano retrasado e era a cada dois sei lá dois da Cada três hacks eram so breeds né E aí era essa promessa de a z Bridge vai trazer essa solução porque hoje Bridge é super frágil aquela coisa que você precisa não tem trustless né se você puder comentar de alguns casos de pessoas implementando para resolver esse problema que você dá uma olhada é legal é acompanhando o desafio todo mundo quer ZK brid pro
etherum E aí o etheron ele usa uma função de hash que não é amigável para zero knowledge é uma função de hash que ela não é algébrica ela não é facilmente Expressa em termos de som e multiplicações ela é é mais fácil de expressar em termos de operações de bits e essas coisas desperdiçam muito você tem que colocar um bit dentro de um de uma variável enorme Então você coloca um monte de zeros e um bit lá no final isso é um desperdício enorme Então essa esse é um dos principais gargalos é ter que se prender a função kchak que é a função do eum se trocassem essa função kac lá no etherum ia mudar completamente
faz interoperabilidade entre blockchain que usando em ve do estão usando problema Basic resolvido 300 con circuito tem mais ou menos 300 GAT dezenas de milhares ção de hash muitas pessoas entraram fal Ah isso aí é só otimizar na engenharia aí implementa demora minutos horas e E aí não não funcionou Não sei então tem uma questão das decisões
tomadas pelo e se você quiser fazer Brides entre outros é muito mais fácil do que fazer brid pro e só que todo mundo quer fazer brid proa Você chegou a ver algum projeto implementando o o projeto LK da linguagem lerk ele ele tá justamente n nesse desafio atual a linguagem lerk quer poder fazer essa interoperabilidade só que e é o que eu falei o circuito 300 de tamanho 300 para uma função de h e 50.000 para outra função de hash só que uma árvore merkle tem 32 andares de de função de hash Então você multiplica o tamanho daquele circuito por 32 Então as coisas V vão sendo multiplicadas e e E e
esse desperdício de você ter que colocar zeros e onos e em vez de colocar números gigantes então e é um é uma coisa que que não tem uma solução fácil de você mexer no etherum de repente trocar a função de hash não é uma coisa trivial mas tem soluções pelo outro lado da criptografia novas ideias de criptografia que tão eh em vez de trabalhar com variáveis de 256 bits igual no Tonton estão fazendo 32 ou 64 bits diminui um pouco o desperdício então o pessoal tá tentando tem implementações mas poucas comparado com o marketing que foi feito no passado boa
valeu é acho que a gente tá estourando o tempo também ó tem pergunta no chat eh esse do Juliano do Juliano aqui eu acho que eu vou ler voz alta aqui o pessoal eh verificação de provas on chain ao invés de T trusted setup poderia comentar os prós e contras prós e contras do Trace de setup eh Eu entendi sim ao invés de Tee ah do te é o o o te é uma polêmica que que há há um tempo atrás O pessoal falava em vez de fazer zeron ou criptografia Vamos
botar tudo dentro do te Então tinha lá no banco ing um pessoal fazendo a criptografia mas tinha um outro grupo outro time a gente faz tudo com te porque muito mais simples não sei só que é outro modelo de confiança tem que confiar no fabricante inúmeras vezes a gente viu falhas de segurança ataques aos sistemas sgx da da Intel Então a nossa visão agora na invers Tech é que te é um bloco básico uma pecinha de LEGO que a gente coloca em lugares específicos mas não para barcar a solução inteira Então se a gente colocar por exemplo te para fazer o o trân de setup vai ajudar a tornar o TR setup
menos problemático mas não é uma solução uma única tecnologia que resolve tudo ele vai auxiliar ele vai deixar em particular o ataque o atacante o o adversário ele vai ter que gastar mais dinheiro para te atacar isso é crucial Então se o ataque for muito mais caro ótimo mas no é uma solução comparável com criptografia a criptografia você confia na matemática e o te você confia no no fabricante é é totalmente diferente então se tiver uma questão entre países um já não vai confiar no fabricante do outro então para big players já é uma questão mais complicada o pessoal usa hsm eh dá para fazer um monte de coisa hoje em dia dessa forma é
assim que funciona né o te é a solução atual a gente não tem Z a gente tem te em todo quant lugar mas ainda não não é uma solução que resolve todos os problemas a gente tá vendo questão de escalabilidade privacidade computação verificável e vulnerabilidades dentro das tees então a gente precisa é usar te como uma solução Extra se você tiver por exemplo com problema de escalabilidade você pode tirar um componente de criptografia e colocar aquilo dentro do te mas não na solução como um todo essa seria a comendação acho que é isso então pessoal Alguém tem uma última pergunta
aí parou boa eh valeu de novo gente a gente tem um pouquinho de comida em refri ali para quem tá morrendo de fome e aí a gente pode até ver de organizar um R hour aí né de valeu vu C