[Akitando] #66 - Entendendo Supremacia Qu√Ęntica

2019 November 06, 11:00 h

DESCRIPTION

Errata:

Em 8:20 eu somei errado ūü§¶‚Äć‚ôāÔłŹ a soma devia dar 108722. Akita n√£o sabe fazer soma kkkkk

Na hist√≥ria do xadrez eu falei errado 230 toneladas em vez de 230 milh√Ķes de toneladas. Mas mesmo assim seriam 2 mil anos de produ√ß√£o pra chegar nos 18 sextilh√Ķes :-D

Hoje vai ser mais um v√≠deo realmente longo porque eu quero dar uma repassada por tudo que voc√™ precisa saber pra entender o que √© computa√ß√£o qu√Ęntica e finalmente conseguir ter uma id√©ia do que significa a "Supremacia Qu√Ęntica" que o Google diz que conseguiu alcan√ßar semana passada.

Vou aproveitar pra retornar √† introdu√ß√£o da computa√ß√£o pra quem √© iniciante ter uma id√©ia do que de fato √© um computador, onde estamos na evolu√ß√£o, qual a rela√ß√£o com coisas como GPUs, como as coisas est√£o evoluindo e onde computa√ß√£o qu√Ęntica se encaixa nisso.

E enquanto eu falar sobre computa√ß√£o qu√Ęntica vamos tocar nos assuntos que muitos esperam ver como a resposta da IBM refutando o que o Google clamou, os algoritmos qu√Ęnticos que podem quebrar os algoritmos de criptografia e o que isso tudo realmente significa.

E mesmo com mais de 1h de vídeo eu ainda não vou ter tocado no pico do iceberg. Eu pesquisei vários lugares e escolhi alguns links pra vocês estudarem também mas isso deixou a descrição tão longa que o YouTube! reclamou do comprimento kkk então eu compilei tudo num Gist:

SCRIPT

Ol√° pessoal, Fabio Akita

O episódio dessa semana tá atrasado porque eu ia falar de um assunto mas nos quarenta e cinco do segundo tempo eu resolvi mudar o assunto e reescrever o script do zero. Parte do assunto original era eu rapidamente falar sobre alguns conceitos básicos de criptografia e segurança. Acho que todo mundo pelo menos ouviu falar no termo Quantum Supremacy que o Google anunciou semana passada, alguns dizem até que o preço do Bitcoin despencou 1000 dólares entre dia 23 de outubro por causa do medo de que o Bitcoin estivesse com os dias contados. Claro, tudo exagero da mídia e o preço do Bitcoin já subiu de novo mais 2000 dólares em cima da baixa.

Na verdade, criptomoedas √© o menor dos seus problemas se real supremacia qu√Ęntica representasse uma amea√ßa hoje. Basicamente toda encripta√ß√£o assim√©trica, de tudo, teria chances reais de ser quebrada hoje. Ent√£o, se o Google atingiu a tal Supremacia Qu√Ęntica, tamos ferrados ent√£o? Todos os nudes do seu whatsapp encriptado podia vazar ent√£o? Calma, n√£o suem ainda.

A m√≠dia n√£o especializada, como sempre, quer vender not√≠cias, ent√£o eles precisam colocar t√≠tulos dram√°ticos, exagerados e √†s vezes simplesmente errados. Drama, not√≠cia ruim e fake news vende. Not√≠cia boa n√£o vende. Eu n√£o sou especialista em computa√ß√£o qu√Ęntica, pouca gente √©, mas j√° que eu j√° falei de criptomoedas no canal e justamente eu estava pensando em falar sobre o tema de seguran√ßa, acho que aproveitar o embalo da supremacia qu√Ęntica pra falar sobre a funda√ß√£o da computa√ß√£o pode ser uma boa.

Primeiro, vamos definir Supremacia Qu√Ęntica, que √© um termo que foi cunhado pelo f√≠sico John Preskill em 2012 onde um computador qu√Ęntico deveria ser capaz de executar um c√°lculo, qualquer c√°lculo na real, mais r√°pido do que conseguir√≠amos fazer no computador mais r√°pido que existe hoje. Agora se segurem que por 2 minutos eu vou falar um monte de jarg√Ķes que voc√™ certamente n√£o vai ter a m√≠nima id√©ia do que eu t√ī falando, mas vamos l√°:

O Google construiu um computador qu√Ęntico de cinquenta e quatro qubits. O teste que foi usado pra medi√ß√£o √© um tipo de gerador de n√ļmeros "verdadeiramente" aleat√≥rios. O paper do Google diz que esse computador conseguiu executar esse c√°lculo com cinquenta e tr√™s dos cinquenta e quatro qubits durante 3 minutos e 20 segundos e a parte da supremacia √© que o Google afirmou que levaria 100 mil computadores convencionais o equivalente a mil anos pra executar o mesmo c√°lculo, bem longe do que seria pr√°tico e portanto eles atingiram a defini√ß√£o de supremacia do Preskill. Mais especificamente o paper mostra que o experimento implementou um circuito com um depth ou profundidade 20, com 430 gates de 2 qubits e 1.113 gates de 1 qubit.

Essa not√≠cia causou furor na m√≠dia e a IBM entrou no drama dizendo que o resultado √© bom mas n√£o √© t√£o dram√°tico assim. E que se usar o Oak Ridge Summit, o super computador da IBM que ocupa o espa√ßo de 2 campos de basquete com seus 250 petabytes de espa√ßo em disco, eles poderiam escrever os 9 quadrilh√Ķes de amplitudes em disco, quebrando a premissa de escrever o vetor inteiro em uma simula√ß√£o de tipo Schroedinger pra uma simula√ß√£o de Schroedinger-Feynman fazendo trade-off de espa√ßo por tempo. E fazendo isso, em vez dos mil anos que o Google disse que ia levar, o IBM Summit poderia simular o mesmo c√°lculo em algo pr√≥ximo de dois dias e meio, que √© uma ordem de grandeza muito menor.

Hahahaha, se voc√™ entendeu 100% de tudo que eu falei at√© agora, parab√©ns, que diabos voc√™ t√° fazendo aqui neste canal? Agora, se como eu voc√™ entendeu s√≥ uma parte ou praticamente nada, eu quero tentar explicar em mais detalhes. Preciso come√ßar pedindo desculpas porque o script de hoje n√£o √© 1% do que eu gostaria de escrever. Por√©m, ele seria 100 vezes mais longo e levaria semanas pra eu escrever. Se voc√™s forem nas descri√ß√Ķes do v√≠deo abaixo e ver a quantidade de coisas que eu linkei pra voc√™s, n√£o √© metade do que eu estudei pra escrever esta vers√£o. Eu peguei emprestado muita coisa de muitos canais muito bons que eu vou mostrando ao longo do video. S√©rio o assunto √© denso demais pra s√≥ em uma semana eu virar expert no assunto. E mesmo ainda nem comecei, √© um assunto extremamente fascinante que eu provavelmente vou continuar estudando daqui pra frente.

Antes de entrar na parte sobre computa√ß√£o qu√Ęntica, como eu sei que tem muitos iniciantes assistindo, eu vou fazer uma tangente em computa√ß√£o cl√°ssica e apresentar algumas coisas que todo programador j√° deveria saber, todo cientista ou engenheiro da computa√ß√£o j√° sabe, mas se voc√™ √© autodidata ou fez um curso que n√£o √© de an√°lise de software ou sistemas de informa√ß√£o, talvez nunca tenha visto ou s√≥ viu muito por cima. N√£o se preocupem n√£o vou me alongar demais nisso, s√≥ relembrar alguns conceitos muito b√°sicos.

Vamos l√°, sendo hiper simplista. Toda a revolu√ß√£o da computa√ß√£o come√ßa com um conceito muito simples. Um bit. Pra qualquer pessoa normal que aprendeu na escola a calcular tudo com sistema num√©rico de base 10 √© bem estranho ter intui√ß√£o sobre outras bases. Mas base 10 √© o mais intuitivo, temos 10 dedos nas m√£os. Um computador n√£o tem 10 dedos, ele tem s√≥ 1 dedo, que antigamente nos primeiros computadores poderia ser uma v√°lvula. Na verdade qualquer coisa que consiga guardar dois estados serve como bit. Pode ser uma l√Ęmpada, ligado representa 1, desligado √© 0. Pode ser um interruptor, ligado e desligado. Assumindo que conseguimos criar um sistema com v√°rios desses dispositivos em s√©rie, podemos armazenar um dado em bin√°rio.

Por exemplo, se tiv√©ssemos oito interruptores em s√©rie e quis√©ssemos armazenar o n√ļmero 42 em base 2 voc√™ vai dividindo o n√ļmero 42 por 2 e vai acumulando o resto, e a sequ√™ncia dos restos √© o n√ļmero em base 2 ou bin√°rio. Ent√£o no caso 42 √© 1 0 1 0 1 0. Uma sequ√™ncia de 8 bits √© o que chamamos de um byte. Em um byte podemos representar a combina√ß√£o de dois elevado a 8 n√ļmeros, que d√° um m√°ximo de at√© duzentos e cinquenta e seis n√ļmeros. Cada um bit que adicionamos dobra a quantidade de n√ļmeros que podemos representar. Ent√£o se fosse uma sequ√™ncia de 9 bits seria 2 elevado a 9 que √© 512.

Existe uma lenda indiana ou algo assim sobre o inventor do tabuleiro de xadrez. Ele mostrou pro imperador da √ćndia que ficou t√£o impressionado que ofereceu uma recompensa. E o tal criador disse que s√≥ queria um gr√£o de arroz pra come√ßar e pra cada casa do tabuleiro ele queria que a quantidade fosse dobrando. Ent√£o dois gr√£os pra segunda casa, quatro gr√£os pra terceira casa, oito gr√£os pra quarta casa e assim por diante, acumulando os das casas anteriores claro, at√© a casa sessenta e quatro do tabuleiro. O imperador pensou como qualquer um assistindo aqui pensaria: ah, isso √© uma mis√©ria de arroz e aceitou.

Mas da√≠ o tesoureiro voltou pro imperador alguns dias depois falando: fodeu, voc√™ prometeu uma quantidade de arroz absurda. Seria mais de 18 sextilh√Ķes de gr√£os. O Brasil inteiro produz mais de 230 toneladas de arroz. 100 gr√£os de arroz pesa 2 gramas e meio. Isso d√° 9 bilh√Ķes de gr√£os. Ou seja, se eu n√£o errei a conta, o Brasil sozinho levaria 2 bilh√Ķes de anos pra produzir os 18 sextilh√Ķes que o indiano ficou devendo. Detalhe, a Terra tem 4 bilh√Ķes e meio de anos. N√£o √© intuitivo se voc√™ n√£o est√° acostumado, mas esse exponencial rapidamente. Contei essa lenda pra voc√™s terem uma no√ß√£o na cabe√ßa sobre grandes n√ļmeros, dimens√Ķes que voc√™ n√£o tem muita refer√™ncia no dia a dia. Mas se um dia te oferecerem um milh√£o de d√≥lares ou, um centavo todo dia, sendo dobrado todo dia durante um m√™s, escolha a segunda op√ß√£o.

Mas voltando, a representa√ß√£o bin√°ria tem algumas vantagens na hora de representar c√°lculos aritm√©ticos. Relembrando aritm√©tica cl√°ssica, somar dois n√ļmeros inteiros √© simples. Voc√™ coloca um em cima do outro e vai somando o n√ļmero de cima com o de baixo, se der maior que 10 voc√™ tem o ‚Äúvai 1‚ÄĚ pra cima do logo √† esquerda, voc√™ agora tem tr√™s n√ļmeros pra somar, e vai fazendo isso. Com bin√°rio √© exatamente a mesma coisa.

Agora, num mundo onde voc√™ tem bits, como fazer uma m√°quina bin√°ria calcular, por exemplo, a soma de dois n√ļmeros bin√°rios? Em cima de c√°lculo bin√°rio voc√™ tem toda uma gama de opera√ß√Ķes que podem ser feita com zeros e uns. Somar √© uma opera√ß√£o mais complexa que pode ser montada com outras opera√ß√Ķes mais simples. Se voc√™ √© programador j√° sabe algumas delas como o operador bin√°rio AND ou OR. AND √© simples, se voc√™ tem um e um vai dar um, se for um e zero vai dar um, se for zero e um vai dar um e se for zero e zero vai dar zero, ou seja, AND √© sempre um com exce√ß√£o se for os dois zeros. O OR √© diferente, √© tudo zero com exce√ß√£o se os dois valores forem um. Mas existe uma opera√ß√£o mais b√°sica, √© o que chamamos de NAND ou NOT-AND onde zero e zero √© um, zero e um e um e zero √© um, e s√≥ se for um e um vai dar zero, √© o oposto do AND.

O NAND √© interessante porque voc√™ pode construir todas as outras fun√ß√Ķes booleanas como AND, NOT e OR s√≥ com o NAND se quis√©ssemos, √© uma propriedade tanto do NAND quanto do NOR que √© o NOT-OR. Essas opera√ß√Ķes podem ser constru√≠das com transistores num circuito, o que chamamos de gates ou portas l√≥gicas em eletr√īnica e l√≥gica booleana. Quando falamos de l√≥gica, √© aqui que come√ßamos. Toda porta l√≥gica tem uma ou duas entradas e uma sa√≠da. Pense em portas como fun√ß√Ķes que tem argumentos e retorna resultados. Podemos compor uma porta com outra gerando novas portas, assim como fazemos com fun√ß√Ķes. Uma porta NAND √© feito com uns 4 transistores, uma porta NOT com 2 transistores e assim por diante. Se voc√™ ligar a sa√≠da de uma porta NAND com a entrada de uma porta NOT voc√™ tem a porta AND por exemplo.

Se voc√™ estudou l√≥gica booleana conhece essas opera√ß√Ķes. Se n√£o, estude, isso √© super fundamental. Vamos voltar pra soma de n√ļmeros. Todo mundo sabe somar n√ļmeros decimais. Em soma bin√°ria, toda vez que tem um e um, daria dois, mas da√≠ n√£o cabe no bit, ent√£o ‚Äúvai um‚ÄĚ pra esquerda e voc√™ coloca zero no bit atual. Quando √© zero e um ou um e zero, da√≠ a soma √© um. E quando √© zero e zero √© zero mesmo. Soma em n√ļmeros bin√°rios √© a mesma coisa. Se ignorar a parte do vai um, o que acabamos de descrever √© a tabela verdade da porta XOR ou eXclusive OR ent√£o podemos come√ßar por essa porta.

Pra fazer o que se chama de half-adder ou somador parcial, podemos adicionar uma porta AND pra receber os mesmos dois par√Ęmetros e se for um e um ele vai devolver um, e esse √© o ‚Äúvai um‚ÄĚ, da√≠ repassa os dois valores pra porta XOR e essa √© a soma parcial. Agora podemos conectar duas somas parciais com mais algumas portas como XOR e pra n√£o ficar muito longa a explica√ß√£o terminamos com um full adder ou somador completo, mas de 1 bit. Pra somar n√ļmeros de 4 bits, conectamos 4 full adders e assim por diante.

Pense que um CPU acess√≠vel de hoje em dia tem bilh√Ķes de transistors. Assim voc√™ come√ßa a entender como de princ√≠pios muito simples √© poss√≠vel programar coisas mais complicadas. A ci√™ncia da computa√ß√£o estuda e cria as funda√ß√Ķes. Coisas simples como propriedades associativa e comutativa dos valores numa porta l√≥gica. No dia a dia a gente assume que se alguma fun√ß√£o funciona pra um ou dois valores, deve funcionar pra tudo. Mas em matem√°tica a gente √© mais formal que isso: eu preciso conseguir testar pra todos os inteiros, por exemplo, de menos infinito at√© mais infinito e garantir que funciona, ou quais exatamente s√£o as exce√ß√Ķes. N√£o basta dizer ‚Äú√© √≥bvio que vai funcionar‚ÄĚ. Da√≠ temos todas as premissas ou axiomas pra come√ßar a provar tudo que tem em c√°lculo, √°lgebra e assim por diante.

Tudo que usamos em termos de c√°lculo de n√ļmeros bin√°rios obedece regras, e podemos demonstrar que a matem√°tica sempre consegue prever o comportamento f√≠sico das portas l√≥gicas montadas com transistors por exemplo. Da√≠ temos certeza que num circuito desenhado corretamente com 100 transistors, isso vai escalar pra mil transistors ou bilh√£o. √Č dif√≠cil de explicar isso mas pense na matem√°tica como uma linguagem, ou seja, um vocabul√°rio e uma gram√°tica pra descrever com precis√£o o comportamento f√≠sico desses materiais. Matem√°tica eu gosto de pensar como a melhor linguagem pra descrever a natureza e o universo, nossas l√≠nguas faladas simplesmente s√£o primitivas demais e n√£o tem palavras suficientes pra descrever tudo, por isso √© dif√≠cil de explicar muita coisa com precis√£o. Entenda matem√°tica e voc√™ come√ßa a enxergar o comportamento preciso da natureza. Guarde esse conceito.

Do transistor vamos pra portas l√≥gicas e da√≠ pra circuitos mais complicados, da√≠ chegamos na arquitetura b√°sica de um CPU e coisas como registradores, contador de programa, e opera√ß√Ķes mais complexas que s√£o as instru√ß√Ķes de m√°quinas que programamos em Assembly. Com esse Assembly podemos criar linguagens mais f√°ceis de programar como um C, por exemplo, e com C podemos criar todas as outras linguagens que conhecemos hoje. Cada nova camada vai facilitando o uso do computador, com o trade-off de diminuir a efici√™ncia do uso da m√°quina. Mas como temos algumas dezenas pra bilh√Ķes de transistors, podemos nos dar ao luxo de tornar as linguagens mais pr√≥ximas do programador e mais longe da m√°quina.

Pra gente que √© de ci√™ncias da computa√ß√£o, tem toda uma √°rea que n√≥s s√≥ aceitamos que existe e funciona, que √© eletr√īnica. Por isso n√£o vou nem raspar a ponta do pico desse iceberg hoje. A gente comumente ouve falar que antigamente existia v√°lvula e depois inventaram os transistores e a revolu√ß√£o dos computadores nasceu. Existem d√©cadas de hist√≥ria que envolve a experimenta√ß√£o de novos materiais e t√©cnicas de fabrica√ß√£o. A gente n√£o usa materiais como sil√≠cio e cobre do nada, foram anos de experimenta√ß√£o. Transistores em conceito fazem a mesma coisa que uma v√°lvula ou uma l√Ęmpada fazem. S√≥ que no caso em escalas de milion√©simos de mil√≠metro. Aplicando uma voltagem d√° pra criar uma barreira magn√©tica que impede a passagem de corrente, e isso chamamos de zero, ou quando ele libera essa barreira e da√≠ passa corrente e seria um. Os transistores mais comuns hoje s√£o os MOS ou MOSFET que √© sigla pra metal-oxide-semiconductor field-effect transistor, que √© o que eu acabei de explicar.

Os primeiros circuitos integrados tinham da ordem de meia d√ļzia de diodos, transistores, resistores e capacitores. De l√° pra c√° os processos de fabrica√ß√£o e materiais mudaram bastante e o processo atual do que se chama de VLSI ou very large-scale integration que √© a id√©ia de criar chips ultra densos com milh√Ķes ou bilh√Ķes de transistores √© o CMOS ou complementary MOS. Um Intel Core i7 de oitava gera√ß√£o tem da ordem de mais de 2 bilh√Ķes de transistores. Os processos de fabrica√ß√£o buscam solu√ß√Ķes pra diminuir cada vez mais o tamanho dos transistores ao mesmo tempo que tentam diminuir o desperd√≠cio de energia. Novos processos de fabrica√ß√£o e materiais continuam sendo pesquisados, ent√£o este formato de computador n√£o vai deixar de existir t√£o cedo.

Agora precisamos fazer um salto de conceitos. Primeiro voc√™s precisam entender teoria qu√Ęntica e mec√Ęnica qu√Ęntica. Estamos ainda numa fase onde a palavra ‚Äúqu√Ęntico‚ÄĚ entrou no zeitgeist, todo mundo repete a palavra qu√Ęntico e ningu√©m sabe o que diabos √© um quantum. Se voc√™ quiser fazer qualquer porcaria parecer da hora, s√≥ gruda a palavra quantum do lado e j√° era. N√£o ajuda muito que Richard Feynman, um dos melhores f√≠sicos de todos os tempos, soltou a famosa frase dizendo ‚Äúse voc√™ acha que entende f√≠sica qu√Ęntica, voc√™ n√£o entende f√≠sica qu√Ęntica‚ÄĚ. E isso levou √† interpreta√ß√£o err√īnea de que nem os cientistas entendem f√≠sica qu√Ęntica e isso deu passe livre pra qualquer idiota achar que a interpreta√ß√£o de qualquer pessoa √© t√£o boa quanto dos cientistas. E por sua vez isso abriu caminho pras bobagens que o povo de New Age e os atuais coaches qu√Ęnticos repetem que nem gralhas.

Eu j√° disse no outro v√≠deo, opini√£o √© que nem bunda, todo mundo tem um. Opini√Ķes n√£o tem valor por si s√≥, s√≥ o que pode ser cientificamente demonstrado tem valor, todo o resto √© capim. O meu capim vale tanto quanto o seu. E aqui vou afirmar categoricamente: a teoria qu√Ęntica e mec√Ęnica qu√Ęntica definem muito bem tudo o que funciona e o que n√£o funciona. Hoje sabemos como fazer os c√°lculos qu√Ęnticos com a linguagem da matem√°tica, e diversos experimentos comprovam os resultados. A matem√°tica √© a √ļnica linguagem que deve ser usada. Qualquer outra coisa que qualquer um de New Age ou coach qu√Ęntico inventar √© 100% bullshit, bobagem, e devem ser totalmente ignorados sem nenhuma chance de absolutamente nada.

A pr√≥xima coisa que um coach desses vai dizer √© que eu n√£o consigo provar que ele t√° errado na interpreta√ß√£o dele. E essa √© outra forma de bullshit. O √īnus da prova √© de quem faz a afirma√ß√£o, sempre. E prova n√£o √© uma historinha, ou uma ‚Äúevid√™ncia‚ÄĚ que mostra alguma correla√ß√£o. O famoso ‚Äúah, mas eu conhe√ßo casos‚ÄĚ que √© a mesma coisa que bullshit. Uma evid√™ncia n√£o comprova uma hip√≥tese. Todo experimento cient√≠fico precisa ser independentemente testado e funcionar todas as vezes. N√£o basta funcionar uma vez e chamar de ‚Äúprova‚ÄĚ. Funcionar uma vez √© coincid√™ncia. Teorias como de Darwin, Einstein, Schroedinger e outros s√£o consideradas s√≥lidas porque ao longo das d√©cadas, dezenas ou centenas de outros cientistas repetiram os experimentos de forma independente e toda vez os resultados batem, sem ambiguidade. Toda vez que o experimento demonstra uma falha, por menor que seja, a matem√°tica inteira precisa ser revista. √Č que nem seu c√≥digo, n√£o adianta parecer que funciona s√≥ uma vez, na sua m√°quina. Coloca em produ√ß√£o e deixa eu ver se realmente funciona. Se quebrar, precisa arrumar o c√≥digo. √Č o mesmo processo.

Os comportamentos qu√Ęnticos s√≥ funcionam no mundo das part√≠culas subat√īmicas. Quando tamos falando de coisas como el√©ctrons ou f√≥tons. Elas n√£o se manifestam nos materiais do nosso mundo macrosc√≥pico. N√≥s n√£o somos ‚Äúfeitos de energia‚ÄĚ, n√≥s n√£o temos ‚Äúconsci√™ncia coletiva‚ÄĚ, n√£o existe isso de energia do pensamento positivo ou qualquer outro bullshit assim. N√£o √© assim que a ci√™ncia funciona. No mundo do nosso tamanho, assuma f√≠sica newtoniana. No mundo cosmol√≥gico, assuma relatividade especial de Einstein. E no mundo subat√īmico, use mec√Ęnica qu√Ęntica. √Č s√≥ isso. Os estudos sobre f√≠sica qu√Ęntica ainda n√£o est√£o completos, mas na pr√°tica isso n√£o importa muito porque os efeitos qu√Ęnticos s√£o reais e experimentalmente demonstr√°veis e mensur√°veis. Ent√£o existem dois campos de pesquisa: a procura do ‚Äúporqu√™‚ÄĚ os efeitos se manifestam da forma como se manifestas e o ‚Äúcomo‚ÄĚ podemos usar esses efeitos na pr√°tica. Um √© a f√≠sica te√≥rica e a outra √© a f√≠sica aplicada.

Pensa assim, faz s√©culos que os exploradores olharam pros c√©us e entenderam que era poss√≠vel usar as estrelas pra se localizar e navegar na dire√ß√£o certa. Ningu√©m daquela √©poca sabia exatamente o que eram aquelas coisas brilhantes no c√©u, mas voc√™ podia saber exatamente onde elas estariam a cada noite. Era poss√≠vel calcular a posi√ß√£o das estrelas mas n√£o era poss√≠vel ainda entender o que elas eram. Eram deuses? Eram alien√≠genas? Eram velas incandescentes penduradas numa redoma? Levou s√©culos at√© descobrirmos que s√£o gigantescas bolas de g√°s incandescentes sofrendo rea√ß√Ķes de fus√£o nuclear formando um corpo celestre com a for√ßa da gravidade. F√≠sica qu√Ęntica √© um pouco parecido, n√≥s sabemos navegar, calcular com precis√£o, mas s√≥ n√£o descobrimos ainda o que realmente s√£o. Qualquer tentativa de interpreta√ß√£o vai cair na categoria de velas penduradas numa redoma.

Essa √© uma das partes que eu estou mais me co√ßando pra tentar explicar mas eu acho que levaria semanas pra eu conseguir compilar todas as hist√≥rias do s√©culo XX inteiro em pesquisa de teoria qu√Ęntica e o video teria horas e horas. Ent√£o eu vou me conter por agora. Pra quem j√° se interessou √© a parte onde come√ßaria falando como Max Planck encontrou a constante de Planck, como Einstein usou isso pra descobrir o efeito fotoel√©trico e postular a id√©ia de que a luz √© formada por pequenos pacotes de energia, a menor quantidade poss√≠vel, que √© o f√≥ton ou quantum e, dois Nobels depois, inicia a revolu√ß√£o dessa nova f√≠sica chamada mec√Ęnica qu√Ęntica. Da√≠ vai passar por todos os nomes que em algum momento voc√™ j√° ouviu falar como Werner Heisenberg, Louis de Broglie, Erwin Schr√∂dinger, Max Born, John von Neumann, Paul Dirac, Enrico Fermi, Wolfgang Pauli, e muitos outros, at√© chegar na controversa interpreta√ß√£o de Copenhagen de Niels Bohr.

Então só acreditem que existe mais de um século de pesquisas, diversas histórias dramáticas e brigas como os papers de Einstein Podolski e Rosen e o gato de Schroedinger, o teorema de John Bell. E como o Einstein, que sem querer deu início à essa nova física, até o fim tentou demonstrar como essa teoria era incompleta, e toda tentativa dele de quebrar a teoria no final acabou colaborando pra novas descobertas que acabaram resolvendo os paradoxos que ele mesmo levantou. Como falei antes, neste momento ainda não sabemos tudo, de fato, mas é como eu falei sobre as estrelas. Hoje temos o suficiente pra aplicar o que se sabe em problemas reais. O porquê elas funcionam é o que ainda vai levar décadas ou séculos pra sabermos. Foi assim com a física clássica. Qualquer interpretação como a hipótese de existir um multiverso, é só isso, uma teoria por mais que nosso fandom pela Marvel fosse adorar se isso fosse verdade.

Neste ponto eu recomendo 4 canais que eu gosto bastante e que j√° gravaram bastante material explicando a parte da f√≠sica, a parte da matem√°tica e as aplica√ß√Ķes. Vou deixar os links nas descri√ß√Ķes abaixo mas s√£o as playlists sobre mec√Ęnica qu√Ęntica dos canais MinutePhysics, PBS Space Time e Infinite Space, o excelente 3Blue1Brown e o reconhecido Veritasium. Tem outros ainda mas pra come√ßar, esses s√£o suficientes, s√£o v√°rias horas de divers√£o. Mas n√£o d√° pra resumir tudo isso em 15 minutos, infelizmente.

Caindo em computa√ß√£o qu√Ęntica, vamos come√ßar do come√ßo, como voc√™ constr√≥i um qubit? Pegando emprestado a explica√ß√£o do canal Veritasium, por exemplo, com √°tomos de f√≥sforo em um cristal de sil√≠cio bem do lado de um transistor. Esses √°tomos tem um spin, como voc√™ j√° deve ter aprendido no colegial em f√≠sica eletromagn√©tica. Spin pra cima e spin pra baixo como chamamos. Pra resetar a orienta√ß√£o do spin desses √°tomos pro estado de menor energia, spin pra baixo, voc√™ precisa de um campo el√©trico de um supercondutor. Pra mudar o spin voc√™ aplica energia, e n√£o precisa de muito, s√≥ o calor ambiente j√° seria suficiente pra fazer esses √°tomos ficarem mudando de spin que nem doido. Por isso voc√™ coloca esse aparato num ambiente com h√©lio l√≠quido, completamente isolado, pra chegar em temperaturas de fra√ß√Ķes de 1 Kelvin, quase perto do zero absoluto. E agora, pra mudar o spin de forma controlada de um √°tomo de cada vez, voc√™ envia microondas numa frequ√™ncia espec√≠fica.

Agora, existe uma intera√ß√£o entre um portal de el√©trons do transistor de sil√≠cio que reage com o √°tomo de f√≥sforo e aplicando frequ√™ncias espec√≠ficas √© poss√≠vel medir esse √°tomo. Mais do que isso, podemos mudar e medir o spin do n√ļcleo de um √°tomo de f√≥sforo. O spin desse n√ļcleo pode ser medido e visto num oscilosc√≥pio, indiretamente atrav√©s da intera√ß√£o com um el√©tron. O n√ļcleo √© mais est√°vel e mais isolado que um el√©tron e consegue conservar esse spin por um per√≠odo de tempo consider√°vel e com isso conseguimos armazenar um valor 1 ou 0 nele, como num transistor tradicional. Esse n√ļcleo √© o qubit. Veja o v√≠deo do Veritasium pra mais detalhes mas o importante √© dizer que j√° conseguimos manipular um n√ļcleo do √°tomo de f√≥sforo individualmente pra encodar bits.

Agora voc√™ vai precisar acreditar no que eu falei antes: no um s√©culo de evolu√ß√£o da f√≠sica qu√Ęntica e os efeitos que j√° sabemos que funciona e s√£o control√°veis. Esse qubit obedece as leis da mec√Ęncia qu√Ęntica e conseguimos realizar algumas opera√ß√Ķes nele. Uma delas √© mudar o spin pra cima ou pra baixo de forma controlada e que podemos ler depois. Ent√£o sabemos como encodar valores bin√°rios numa cadeia de qubits. Podemos fazer mais. Podemos colocar o qubit num estado de superposi√ß√£o. Esse √© o estado que todo mundo co√ßa a cabe√ßa pra entender. √Č o tal estado do gato morto vivo de Schroedinger. O gato t√° vivo ou morto dentro da caixa? Isso √© um exerc√≠cio te√≥rico e tem mais a ver com a subst√Ęncia radioativa dentro da caixa que seria o gatilho pra matar o gato do que o gato em si. Mas falando puramente de forma simb√≥lica, a resposta √© que ele n√£o t√° nem vivo nem morto, o que significaria mais exatamente um estado 100% vivo ou 100% morto. Em matem√°tica n√£o existe ‚Äúmais ou menos‚ÄĚ, √© sempre um estado definido nem que seja probabil√≠stico. Ent√£o o gato, ou mais precisamente o √°tomo da subst√Ęncia radioativa, est√° num estado probabil√≠stico 50% vivo e 50% morto.

‚ÄúMas isso quer dizer o que?‚ÄĚ e a resposta √©: n√£o importa, esse √© o estado seja l√° o que na realidade isso signifique. N√£o existe um estado desse na nossa realidade macrosc√≥pica por isso nos falta vocabul√°rio pra descrever, mas matematicamente √© um estado bem definido. Era o grande problema do Einstein e Schroedinger, de que √© dif√≠cil conciliar a realidade macrosc√≥pia com a matem√°tica qu√Ęntica, por mais que na matem√°tica fa√ßa sentido. √Č como se fosse um terceiro estado, que seria uma range de probabilidades entre os dois estados. S√≥ faz sentido dizer se √© vivo ou morto depois de medirmos e ver se depois de abrir a caixa o gato de fato est√° vivo ou de fato est√° morto. Mas n√£o √© que o estado j√° existia e a gente s√≥ n√£o estava conseguindo ver. Esse estado n√£o tem localidade e nem causalidade, √© um estado n√£o determin√≠stico real. Verdadeira aleatoriedade. Antes de abrir a caixa ele √© indefinido. Por isso √© melhor evitar met√°foras com o mundo real o quanto poss√≠vel. Sem a matem√°tica pra descrever, vira essa hist√≥ria mal contada de gato morto ou vivo indefinido.

Esse conceito √© importante porque toda vez que ouvir falar de superposi√ß√£o vai ouvir esse palavreado de ‚Äúmedir‚ÄĚ e ‚Äúcolapsar‚ÄĚ. O que n√£o √© intuitivo pra mim e acho que pra muita gente √©, Beleza! Digamos que eu engula esse estado completamente aleat√≥rio que pode ser 50% 1 ou 50% zero. Como eu fa√ßo c√°lculos com isso? Existem outros mecanismos que voc√™ precisa entender. O pr√≥ximo √© o tamb√©m controverso entanglement. Voc√™ pode colocar dois qubits em superposi√ß√£o e depois em entanglement. Da√≠ quando voc√™ medir um deles - que vai causar o colapso do seu estado pra 1 ou 0 -, quando medir o outro qubit ele vai estar no mesmo estado.

Se j√° era dif√≠cil colocar na cabe√ßa que uma part√≠cula pode ter um estado indefinido antes de medir, entanglement √© acreditar que duas part√≠culas podem estar correlacionadas e se manter assim mesmo se separadas. A propriedade do entanglement √© que uma vez correlacionadas eu posso separar as duas e ‚Äútransportar‚ÄĚ pra muito longe. No exato instante que eu medir uma a outra automaticamente vai t√° no mesmo estado quando for medido. Ou seja, se antes de medir elas tavam numa superposi√ß√£o de 50% de chance de ser um ou 50% de chance de ser zero, quando eu medir a primeira e der um, a outra part√≠cula s√≥ tem 100% de chance de ser um.

Mas cuidado, isso n√£o √© uma comunica√ß√£o, ou seja, n√£o existe a possibilidade da primeira part√≠cula, depois que medimos e colapsamos seu estado tenha enviado essa informa√ß√£o pra segunda part√≠cula. Ou seja, n√£o existe possibilidade de um Skype qu√Ęntico. Essa foi uma controv√©rsia que Einstein odiava porque se fosse esse o caso a informa√ß√£o teria que viajar mais r√°pido que a velocidade da luz. E nada viaja acima da velocidade da luz, √© imposs√≠vel. Mas ent√£o, pelo senso comum, as part√≠culas j√° teriam que ter ‚Äúcombinado‚ÄĚ antes de serem separadas qual seria o estado final no colapso. Mas √© o que o teorema de John Bell j√° provou que n√£o √© o caso, ou seja, existe um experimento que prova que n√£o haveria como as part√≠culas terem qualquer informa√ß√£o do estado final antes de medirmos.

Novamente, essa √© uma das partes onde n√£o vamos chegar em lugar nenhum se ficarmos especulando se a estrela √© uma vela pendurada numa redoma no c√©u ou o qu√™. Ainda n√£o temos informa√ß√£o suficiente pra afirmar nada. S√≥ podemos afirmar que √© exatamente isso que acontece. J√° foi testado exaustivamente, de forma independente. Por exemplo, em 2017 um experimento chin√™s foi capaz de colocar dois f√≥tons em superposi√ß√£o e entanglement e enviar um deles via um laser pra um sat√©lite a mais de 1200 km de dist√Ęncia e realizar a medi√ß√£o e o colapso. V√°rios desses experimentos j√° foram feitos. Vamos s√≥ aceitar que superposi√ß√£o e entanglement existem. Nos v√≠deos dos canais que eu recomendei eles explicam em mais detalhes sobre isso tamb√©m.

Ali√°s, s√≥ pra finalizar os efeitos n√£o intuitivos. Uma vez tendo essas propriedades voc√™ acaba tendo teletransporte tamb√©m. - O que, ah, vai se fuder, t√° de brincadeira, isso √© Star Trek agora puta que pariu - ufff Pois √©! √Č poss√≠vel um efeito de cut and paste ou ‚Äúrecortar e colar‚ÄĚ. √Č poss√≠vel teletransportar o valor de um qubit pra outro qubit de forma destrutiva, ou seja n√£o √© um clone, √© uma teletransporte. Por exemplo, Alice e Bob podem ter dois qubits pr√©-entangled. Da√≠ Alice prepara um terceiro qubit e faz entanglement com o dela. Ela prepara um payload qualquer e ao medir os dois √© feito o teletransporte desse payload - cujo valor √© destru√≠do nesse instante - pro do Bob atrav√©s do pr√©-entanglement que eu falei que j√° tinha entre os qubits da Alice e do Bob, que vai funcionar como um cabo de rede entre os dois.

Pronto, fodeu, ficou bem abstrato isso. Vamos ver na pr√°tica como isso poderia funcionar. Pois bem, esse √© o diagrama do circuito de tr√™s qubits em entanglement. Aqui temos os qubits de Alice e Bob sendo colocados em entanglement. Agora temos a prepara√ß√£o do payload no terceiro qubit. Agora a Alice faz o entanglement do qubit do payload com o qubit dela. E finalmente teletransportamos o payload pro Bob. √Č literalmente como se fosse um recortar e colar, sem um intermedi√°rio fazendo isso. E no passo final o Bob pode verificar que de fato o payload chegou nele.

Isso que voc√™ t√° vendo √© como representamos um circuito qu√Ęntico. Cada linha representa um qubit e temos 5 deles. Cada um desses quadradinhos √© uma quantum gate ou o equivalente a uma porta l√≥gica de um computador cl√°ssico que eu expliquei l√° no come√ßo. Temos portas como X ou Y ou Z que s√£o portas de Pauli. Basicamente o X faz um bitflip como uma porta l√≥gica NOT. O H √© um Hadamard que se eu entendi direito coloca o qubit em superposi√ß√£o. O mais comprido que puxa uma linha entre dois qubits com um sinal de mais no meio √© uma porta chamada CNOT ou controlled NOT, e na pr√°tica ele coloca os dois qubits em entanglement. No final onde temos um √≠cone que parece um medidor, e √© justamente isso, a opera√ß√£o que faz a medi√ß√£o do qubit n√£o √© uma porta l√≥gica porque um requerimento pra ser uma porta l√≥gica √© que toda opera√ß√£o qu√Ęntica seja revers√≠vel. Esse princ√≠pio √© matematicamente importante, mas pra gente basta entender agora que dizer costuma ser o fim do circuito.

Esse diagrama √© uma representa√ß√£o visual de um c√≥digo, que √© escrito no formato OpenQASM. E o que diabos √© isso que eu t√ī mostrando? Esse √© o site IBM Q Experience. Eles tem uma plataforma online com documenta√ß√£o explicando alguns conceitos e eles tem online tanto um editor pra voc√™ montar seus pr√≥prios circuitos qu√Ęnticos visualmente ou via c√≥digo, e rodar tanto num simulador quando em computadores qu√Ęnticos de verdade! Claro que vers√Ķes fraquinhas de no m√°ximo 5 qubits e alguns com taxa de erro elevada. Mas d√° pra brincar um pouco, √© como se voc√™ estivesse montando um circuito eletr√īnico num simulador com o CircuitLab onde voc√™ pode montar circuitos tradicionais com portas l√≥gicas, como a m√°quina de somar que mostrei no come√ßo.

Se voc√™ tem interesse em molhar os dedos no b√°sico, pode baixar o Qiskit que √© um projeto open source feito em Python, onde voc√™ pode escrever programinhas em OpenQASM como mostrei antes e rodar localmente na sua m√°quina ou conectando no simulador da IBM. Uma coisa que talvez voc√™ n√£o sabia √© que √© poss√≠vel simular qubits num computador tradicional. Obviamente voc√™ n√£o consegue simular quantos qubits quiser, porque vai ficando exponencialmente mais pesado. Mas alguns poucos qubits d√°. E pra aprender, com cinco qubits j√° d√° pra testar muita coisa. Por exemplo, em computa√ß√£o cl√°ssica voc√™ viu que com poucos transistores voc√™ consegue montar um somador completo de 1 bit com portas l√≥gicas tradicionais. Da√≠ vai adicionando v√°rios pra conseguir somar n√ļmeros de 8 bits e assim por diante. Mas voc√™ sabe que se funciona com 2 ou 3 bits, vai funcionar pra 8 ou 16 bits. Voc√™ consegue escrever manualmente, no papel, as tabelas verdade pra verificar.

Em computa√ß√£o qu√Ęntica, √© mais complicado. A representa√ß√£o na m√£o √© feita com nota√ß√£o de √°lgebra linear. No diagrama voc√™ v√™ os qubits representado por essa nota√ß√£o estranha de um pipe, um n√ļmero e um bracket de maior. Essa √© a nota√ß√£o de Dirac pra vetores. E toda a √°lgebra linear, multiplica√ß√£o de matrizes e tudo mais funciona. Essa portas qu√Ęnticas que falei, √© basicamente representado com uma multiplica√ß√£o de matrizes com o vetor que s√£o os qubits. Do ponto de vista da ci√™ncia da computa√ß√£o voc√™ pode visualizar as m√°quinas de estado dos qubits como valores num c√≠rculo - se estiver representando s√≥ com inteiros - onde cada valor √© uma probabilidade da superposi√ß√£o. Na realidade a matem√°tica √© usando n√ļmeros complexos e os valores caem num espa√ßo de Hilbert. Lembra que eu falei que em superposi√ß√£o voc√™ tem valores num espa√ßo probabil√≠stico? Pra entender a quantidade, pense em pontos na superf√≠cie de uma esfera por exemplo.

O Hello World de programar um computador qu√Ęntico √© justamente colocar uma porta Hadamard pra colocar um qubit em superposi√ß√£o e uma porta CNOT pra fazer o entanglement com outro qubit e depois medir pra colapsar o estado. Como s√£o dois qubits temos quatro poss√≠veis estados zero zero, zero um, um zero, e um um. Igual nas tabelas verdade das portas l√≥gicas que expliquei no come√ßo. Um programa qu√Ęntico a gente n√£o roda s√≥ uma vez, precisa rodar v√°rias vezes e fazer um histograma dos resultados de cada estado. Se fosse um sistema completamente aleat√≥rio, voc√™ esperaria que sa√≠sse qualquer um dos quatro estados um quarto ou 25% das vezes. Mas como estamos com um sistema em entanglement, se rodarmos v√°rias vezes, no exemplo, os estados zero zero e um um saem mais que os outros. Justamente porque se eu medir o primeiro e der zero, o outro em entanglement tem que dar zero tamb√©m, mesma coisa com um. Os resultados zero um e um zero que aparece √© devido a erro no sistema, se fosse perfeito deveriam aparecer zero vezes. Vou falar de erro depois, guardem isso.

Eu vou dizer que me falta intui√ß√£o matem√°tica - falta de pr√°tica mesmo - pra entender direito o que tudo isso significa. Intuitivamente eu consigo ter uma no√ß√£o. Na pr√°tica voc√™ t√° lidando com vari√°veis aleat√≥rias, por√©m via essas portas l√≥gicas e coisas como entanglement, voc√™ consegue influenciar coisas como a amplitude e a fase, na pr√°tica, voc√™ influencia as probabilidades dentro da superposi√ß√£o. Da√≠ voc√™ roda esse programa centenas de vezes e plota num histograma, onde o sinal for mais forte √© onde a barra do histograma vai ser maior, ou seja, √© o resultado que aparece mais vezes. Numa met√°fora de pobre, como se fosse uma moeda onde voc√™ pudesse influenciar o resultado durante o giro dela, e a√≠ come√ßa a ser mais cara que coroa por exemplo. Ent√£o um insight que eu n√£o tinha √© que um programa qu√Ęntico n√£o d√° uma resposta absoluta como estamos acostumados em programa√ß√£o com portas l√≥gicas, ou qualquer coisa em cima disso, como linguagens de programa√ß√£o tradicional.

O c√°lculo com qubits tr√°s um resultado dentro de um espa√ßo de probabilidades. N√≥s manipulamos a aleatoriedade do princ√≠pio da incerteza de Heisenberg pra conseguir manipular um espa√ßo de poss√≠veis probabilidades. Cada qubit pode estar num range de resultados diferentes em superposi√ß√£o, e com entanglement podemos conectar um qubit com v√°rios outros qubits, formando um campo de influ√™ncia. Pense como v√°rias ondas como na f√≠sica ac√ļstica, uma onda causando interfer√™ncia na outra. Dois picos em duas ondas, uma amplifica a outra, duas ondas inversas, uma cancela a outra. E se configurar essas portas qu√Ęnticas corretamente voc√™ come√ßa a ter a possibilidade de fazer c√°lculos com v√°rios estados em superposi√ß√£o, ao mesmo tempo, o que leva √† conclus√£o que computadores qu√Ęnticos poderiam resolver problemas em uma ordem de grandeza menos tempo; problemas que hoje, em computadores tradicionais, levaria tempo exponencial.

Pra entender um pouco mais da matem√°tica dessa representa√ß√£o eu recomendo come√ßar com estes v√≠deos da s√©rie da PBS Infinite Space falando sobre a matem√°tica por tr√°s dos qubits. E depois ver essa apresenta√ß√£o da Microsoft de computa√ß√£o qu√Ęntica pra cientistas da computa√ß√£o, onde √© explicado passo a passo como fazer c√°lculos com os vetores e matrizes na m√£o com algumas portas qu√Ęnticas mais simples e como, com isso, voc√™ consegue implementar um algoritmo muito simples, como o Deutsch Oracle.

Falando em algoritmos, os primeiros exerc√≠cios como o Deutsch Oracle, Deustch Josza, Simon come√ßaram a aparecer no come√ßo dos anos 90. Lembram que falamos bastante sobre a natureza da fun√ß√£o de onda e como ela descreve o poss√≠vel espa√ßo de resultados? Se falamos de ondas voc√™ que √© engenheiro vai se lembrar de Fourier. Fourier pode ser usado pra centenas de aplica√ß√Ķes que vai de processamento de sinais at√© bioengenharia. Recomendo assistir o v√≠deo do 3Blue1Brown que explica visualmente como a transformada de Fourier funciona pra separa√ß√£o de ondas e coisas como limpeza de barulhos, especialmente de barulhos com per√≠odos constantes, como o barulho do motor de avi√£o, que √© a base de como cancelamento de barulho ou noise cancelling avan√ßado funciona em fones de ouvido bons. E existe uma implementa√ß√£o chamada tranformada qu√Ęntica de Fourier. Ela n√£o √© exatamente o equivalente do Fourier tradicional, mas serve para v√°rios casos.

Em particular ela permite o algoritmo de Shor, inspirado no algoritmo anterior de Simon. Esse √© o temido algoritmo que chamou a aten√ß√£o do mundo pra computa√ß√£o qu√Ęntica e causou furor quando foi publicado pela primeira vez nos anos 90. Se n√£o me engano o primeiro algoritmo com potencial uso real que poderia mudar a forma como usamos computadores. O algoritmo de Shor consegue, em alguns casos, cerca de trinta e sete porcento das vezes, conseguir fatorar n√ļmeros inteiros nos seus fatores primos. Isso √© extremamente invi√°vel de se fazer num computador tradicional. Pegue dois n√ļmeros primos gigantes, digamos de dois mil e quarenta e oito bits de comprimento. Multiplique os dois. Todos os computadores do mundo podem gastar bilh√Ķes de anos pra conseguir encontrar os dois fatores primos originais.

O algoritmo n√£o √© perfeito. Voc√™ n√£o consegue passar um n√ļmero gigante e ele automaticamente cospe os fatores pra voc√™. Na realidade voc√™ come√ßa com um chute e com as propriedades de aritm√©tica modular e o teorema de Fermat voc√™ consegue ir chutando n√ļmeros melhores que, em quase 40% dos casos pode chegar na fatora√ß√£o. Eu fiquei pensando se descrevia o algoritmo aqui ou n√£o mas acho que vai muito al√©m do que precisa pra este epis√≥dio. O canal MinutePhysics junto com o 3Blue1Brown fizeram alguns v√≠deos muito bons que explicam passo a passo como √© o processo pra encontrar esses fatores. E o canal PBS Infinite Space tem outro um pouco mais pesado nos conceitos que vale a pena assistir depois pra entender os passos.

Sem entender aritm√©tica modular n√£o d√° pra entender como funciona isso de quebrar a fatora√ß√£o. Mas entenda que o processo que existe hoje √© basicamente brute force, testar um n√ļmero atr√°s do outro. Com as caracter√≠sticas de superposi√ß√£o, entanglement, e aplicando a transformada qu√Ęntica de Fourier, √© poss√≠vel fazer o c√°lculo que levaria centenas de anos em alguns minutos. Hoje em dia o algoritmo de Shor j√° foi executado em computadores qu√Ęnticos de verdade e conseguiu fatorar os n√ļmeros 15 e 27 que √© o atual recorde. T√° beeeem longe ainda de um n√ļmero de 2048 bits. A raz√£o toda de porque todo mundo ficou hist√©rico com a afirma√ß√£o do Google ter alcan√ßado Supremacia Qu√Ęntica √© a possibilidade deles conseguirem usar o algoritmo de Shor na pr√°tica com mais qubits.

Recapitulando o que eu disse no come√ßo.‚ÄĚO Google construiu um computador qu√Ęntico de cinquenta e quatro qubits.‚ÄĚ - E agora voc√™ sabe o que √© um qubit. - ‚ÄúO teste que foi usado pra medi√ß√£o √© um tipo de gerador de n√ļmeros "verdadeiramente" aleat√≥rios.‚ÄĚ - e agora voc√™ tem uma intui√ß√£o do verdadeiramente aleat√≥rio por causa da superposi√ß√£o. Diferente de pseudo-aleat√≥rio que √© o que usamos em computadores tradicionais onde voc√™ produz n√ļmeros que estatisticamente parecem aleat√≥rios mas na realidade n√£o s√£o. ‚ÄúO paper do Google diz que esse computador conseguiu executar esse c√°lculo com cinquenta e tr√™s dos cinquenta e quatro qubits‚ÄĚ - guarde esta informa√ß√£o - ‚Äúdurante 3 minutos e 20 segundos e a parte da supremacia √© que o Google afirmou que levaria 100 mil computadores convencionais o equivalente a mil anos pra executar o mesmo c√°lculo, bem longe do que seria pr√°tico e portanto eles atingiram a defini√ß√£o de supremacia do Preskill.‚ÄĚ - s√≥ enfatizando, veja que foi um c√°lculo de muitos minutos e n√£o instant√Ęneo. Muita gente pensa que computador qu√Ęntico √© instant√Ęneo, mas n√£o √©. - ‚ÄúMais especificamente o paper mostra que o experimento implementou um circuito com um depth ou profundidade 20, com 430 gates de 2 qubits e 1.113 gates de 1 qubit.‚Äú - Essa profundidade √© a quantidade de portas qu√Ęnticas na maior sequ√™ncia, que nem voc√™ viu no diagrama que mostrei antes pra teleporta√ß√£o ou hello world. Quatrocentos e trinta gates de 2 qubits, seria como uma porta CNOT pra entanglement por exemplo e mil cento e treze portas de 1 qubit seriam como o X de Pauli ou Hadamard ou Phase Shift e outras portas l√≥gicas, todas de um qubit.

No segundo par√°grafo da cita√ß√£o eu falei o seguinte: ‚ÄúEssa not√≠cia causou furor na m√≠dia e a IBM entrou no drama dizendo que o resultado √© bom mas n√£o √© t√£o dram√°tico assim. E que se usar o Oak Ridge Summit, o super computador da IBM que ocupa o espa√ßo de 2 campos de basquete com seus 250 petabytes de espa√ßo em disco, eles poderiam escrever os 9 quadrilh√Ķes de amplitudes em disco, quebrando a premissa de escrever o vetor inteiro em uma simula√ß√£o de tipo Schroedinger pra uma simula√ß√£o de Schroedinger-Feynman fazendo trade-off de espa√ßo por tempo. E fazendo isso, em vez dos mil anos que o Google disse que ia levar, o IBM Summit poderia simular o mesmo c√°lculo em algo pr√≥ximo de dois dias e meio, que √© uma ordem de grandeza muito menor.‚ÄĚ

Em resumo, eu falei que eles usaram cinquenta e tr√™s qubits nesse c√°lculo que √© um espa√ßo de 2 elevado a cinquenta e tr√™s e isso d√° 9 quadrilh√Ķes de valores poss√≠veis. Transformando isso em petabytes seria uns 8 petabytes, ou seja, poder√≠amos literalmente escrever um a um todos os valores poss√≠veis em disco e colocar no storage de duzentos e cinquenta petabytes. Da√≠ em vez de computar os valores podemos buscar o valor no disco. Eu estou simplificando bastante, claro. Isso √© bem menos trivial do que parece s√≥ dizendo. Por exemplo, parece que o IBM Summit consegue escrever em disco na velocidade de 2.2 terabits por segundo de dados sequenciais, algo em torno de 275 gigabytes por segundo.

Pra escrever 8 petabytes, sem processar nada, s√≥ escrever sem parar, ia levar nada menos que 9 horas s√≥ pra escrever. Por isso eu imagino que o argumento da IBM seria que levaria 2 dias e meio em vez dos mil anos que o Google falou, √© o tempo de computar e gravar todos os valores em disco, o jeito mais brute force poss√≠vel. Mas isso √© o tempo mais otimista poss√≠vel usando o valor que √© o pico de velocidade e voc√™ sabe que nenhum drive consegue sustentar o pico o tempo inteiro. Digamos que ele decaia pra na m√©dia metade da velocidade. J√° aumenta o tempo pra quase um dia inteiro s√≥ escrevendo os dados todos! Em resumo o argumento da IBM tem alguma l√≥gica mas at√© ser experimentado √© s√≥ uma teoria. E considere que s√£o 2.5 dias usando o supercomputador mais r√°pido do mundo em m√°xima capacidade s√≥ pra cuspir um n√ļmero aleat√≥rio. Pense em quanto isso custa.

Se voc√™ seguiu com aten√ß√£o at√© agora voc√™ tem uma intui√ß√£o de como come√ßa o que o Google fez. Mas temos o problema do erro que eu falei pra voc√™ guardar na cabe√ßa, lembra? Cinquenta e quatro qubits parece bastante coisa, por√©m as chaves que usando hoje pra criptografia assim√©trica com algoritmos como RSA tem tamanho de 2048 bits. Se eu n√£o entendi errado, seria necess√°rio no m√≠nimo essa quantidade de qubits funcionando em entanglement ao mesmo tempo pra se fazer o c√°lculo, a menos que seja poss√≠vel particionar o problema. Na minha falta de matem√°tica, eu chutaria que n√£o d√° porque estamos procurando fatores primos desse comprimento. Pra particionar precisaria haver uma forma de fatorar esse primo, o que obviamente n√£o √© poss√≠vel, portanto voc√™ precisa procurar o n√ļmero inteiro de uma vez s√≥. E isso √© literalmente metade do problema.

A parte importante √© quando eles falaram que 1 dos qubits n√£o funcionou, ent√£o o c√°lculo foi feito com cinquenta e tr√™s qubits. Esse √© o calcanhar de Aquiles de toda a computa√ß√£o qu√Ęntica. Lembram que eu descrevi como um qubit fica totalmente isolado, mantido a quase zero absoluto, num ambiente o mais livre de interfer√™ncia poss√≠vel? Qualquer coisa pode excitar o n√ļcleo e mudar o spin dele ou pior, tirar o n√ļcleo do estado de superposi√ß√£o. Uma part√≠cula em superposi√ß√£o colapsa no instante que alguma coisa observa ele; e o ambiente est√° constantemente tentando observar a part√≠cula. Micro vibra√ß√Ķes, campos eletromagn√©ticos, f√≥tons, outras part√≠culas subat√īmicas, qualquer coisa que chegar perto pode flipar esse n√ļcleo. Ent√£o nesse momento o que se consegue construir √© extremamente fr√°gil. E eu disse que o n√ļcleo consegue manter seu estado por mais tempo, mas esse tempo n√£o √© dias ou horas, pode ser minutos ou segundos. Quanto maior a profundidade de portas qu√Ęnticas, maiores as chances de um dos qubits colapsar no meio do caminho e voc√™ tem que come√ßar tudo de novo. Existe um efeito chamado ‚Äúcrosstalk‚ÄĚ onde um qubit por causar interfer√™ncia no outro tamb√©m.

Decoherence ou decoer√™ncia √© quando um qubit em superposi√ß√£o √© colapsado nos bits cl√°ssicos antes do tempo por exemplo. Ou quanto o entanglement falha. E como eu disse qualquer coisa pode causar isso. O sistema precisaria estar 100% isolado pra garantir coer√™ncia permanente. S√≥ que voc√™ precisa conseguir enviar microondas e ler os resultados, em algum momento voc√™ precisa causar decoherence pra ler o resultado, por exemplo e isso torna o sistema aberto com o ambiente. A maior quantidade qubits que j√° se colocou junto √© no computador da D-Wave que j√° tem 2048 qubits mas ele n√£o √© igual os computadores da IBM ou do Google, a princ√≠pio ele n√£o √© universalmente program√°vel, √© hardcoded pra opera√ß√Ķes espec√≠ficas e teoricamente n√£o √© capaz de rodar o algoritmo de Shor.

Sobre o m√≠nimo necess√°rio de qubits, na realidade √© mais do que parece. Segundo algumas estimativas, com a implementa√ß√£o do algoritmo que se sabe fazer, seria necess√°rio no m√≠nimo 4000 qubits pra conseguir quebrar os algoritmos de chave p√ļblica que usam o conceito da dificuldade de fatora√ß√£o de inteiros. Isso √© o que teoricamente quebraria o mecanismo de troca de chaves que usamos hoje. Estamos falando especificamente de RSA e Diffie-Hellman. Troca de chaves √© o que acontece toda vez que voc√™ conecta num site com certificado SSL ou TLS ou quando voc√™ se conecta via SSH em algum servidor. Esse sistema normalmente √© usado pra autenticar a identidade dos participantes e depois pra trocar um segredo entre eles. Esse segredo √© usado em algoritmos sim√©tricos como RC4 e AES pra de fato realizar a encripta√ß√£o da comunica√ß√£o.

Pra entender esse conceito recomendo assistir os seguintes vídeos do Computerphile e da PBS Space Time que explica em mais detalhe. Talvez eu faça um vídeo resumindo esses conceitos depois. Mas entenda que RSA é um sistema de encriptação assimétrica cara. Por custar caro ela não é usada comumente pra encriptação dos dados em si. Ela é usada pra autenticar as partes e daí trocar uma chave simétrica, que tem tempo de duração curta, e que daí é usada por algoritmos como RC4 ou AES pra encriptar a comunicação num comunicador por exemplo.

AES, que √© um algoritmo de encripta√ß√£o sim√©trica, ou seja, uma fun√ß√£o revers√≠vel, √© que voc√™ usa pra encriptar e decriptar os dados da parti√ß√£o do seu disco por exemplo. √Č literalmente inquebr√°vel. O algoritmo de Shor n√£o vai quebrar ela. E ainda n√£o tem um algoritmo conhecido que possa fazer isso. O problema que se encontra no AES √© sempre na implementa√ß√£o, algum bug que exp√Ķe a chave sim√©trica que deveria ser secreta. Por exemplo, ficou sobrando na mem√≥ria RAM e um malware consegue interceptar da mem√≥ria. Ele n√£o quebrou o AES, ele s√≥ roubou a chave que ficou na mem√≥ria por engano. Por isso mesmo eu sempre falo: jamais tente implementar um algoritmo como RC4 ou AES voc√™ mesmo pra usar em algum projeto seu, voc√™ necessariamente vai implementar errado. Mesmo quem tem anos de experi√™ncia implementa errado, voc√™ que nunca fez isso vai com certeza absoluta implementar errado. Eu implementaria completamente errado. Fa√ßa como exerc√≠cio mas jamais pra usar de verdade. Pra isso j√° existem bibliotecas abertas que j√° foram escrutinizadas por milhares de pessoas e tem maior garantia que funcionam como no cl√°ssico OpenSSL ou nos mais recentes como libsodium.

S√≥ pra ningu√©m comentar que esqueci de mencionar. Algoritmos de encripta√ß√£o sim√©trica como AES poderiam sofrer ataques usando o algoritmo qu√Ęntico de Grover, que poderia ser usado pra aumentar muito a velocidade numa pesquisa num banco de dados n√£o indexado por exemplo. Ou a defini√ß√£o que mais interessa que seria inverter uma fun√ß√£o, por exemplo uma fun√ß√£o de encripta√ß√£o sim√©trica pra fazer ela decriptar. Por√©m Grover n√£o √© m√°gica, √© um algoritmo que tr√°s uma aumento quadr√°tico em velocidade se comparado com o que temos hoje, mas mesmo isso n√£o √© suficiente se a chave for grande o suficiente. Hoje usamos AES-256 bits como o mais seguro, bastaria dobrar pra 512 ou at√© 1024 e nem um computador qu√Ęntico conseguiria quebrar. Esse √© o poder da exponencia√ß√£o. E falando especificamente de criptomoedas ainda n√£o h√° ind√≠cios que computa√ß√£o qu√Ęntica poderia comprometer os algoritmos atuais e mesmo os mais paran√≥icos j√° tem altcoins que usam algoritmos teoricamente mais resistentes a uma eventual real supremacia qu√Ęntica. O IOTA √© um deles.

O campo de estudo de algoritmos qu√Ęnticos ainda est√° no come√ßo. Existem poucos algoritmos ainda. Com as caracter√≠sticas e potenciais de reduzir processamentos com complexidade exponencial em uma complexidade menor tipo logaritmica, isso abre a fantasia pra resolver diversos problemas que hoje custa muito caro ou √© simplesmente invi√°vel num computador tradicional. Por isso se fala em aplica√ß√£o na ind√ļstria gen√©tica ou farmac√™utica pra simular mol√©culas e drogas de forma melhor. Mas isso √© como sonhar com as possibilidades de renderiza√ß√£o 3D em tempo real em 4K quando o transistor nem foi inventado ainda. Estamos a d√©cadas de dist√Ęncia disso.

A realidade parece ser mais a seguinte: todo o futuro da computa√ß√£o qu√Ęntica depende de algu√©m descobrir como reduzir drasticamente o problema de noise e decoherence pra ser pr√°tico colocar milhares de qubits em superposi√ß√£o e entanglement e o sistema inteiro n√£o colapsar antes do tempo. N√£o existe um jeito padr√£o eficiente de fabrica√ß√£o como temos CMOS e MOSFET pra transistores hoje em dia. Estamos realmente nos primeiros dias ainda. Por isso √© um campo extremamente interessante e fascinante. Eu mesmo j√° t√ī viciado em estudar a respeito. Eu tive que me for√ßar a parar pra escrever o script de hoje porque tem centenas de coisas que eu ainda n√£o entendi direito e queria conseguir verbalizar melhor. √Č como se eu estivesse em 1948 quando o transistor acabou de ser inventado. Ningu√©m tinha id√©ia de pra onde podia ir. Os transistors originais eram feitos do elemento germ√Ęnio, s√≥ depois descobriram que sil√≠cio era melhor. Qubits √© a mesma coisa, eu mencionei √°tomos de f√≥sforo, mas n√£o √© o √ļnico elemento vi√°vel. E nem a forma de fabrica√ß√£o com cristais de sil√≠cio. Tem muito ch√£o pela frente ainda.

Quando o Google anunciou a Supremacia Qu√Ęntica, n√≥s que nos inserimos dentro das ci√™ncias da computa√ß√£o ficamos otimistas na possibilidade de vermos um uso pr√°tico de computa√ß√£o qu√Ęntica ainda dentro do nosso tempo de vida, ou seja, antes de morrermos. Por isso eu chuto que estamos a algumas d√©cadas de dist√Ęncia de come√ßarmos a usar em alguma escala √ļtil em vez de s√≥ experimental e acad√™mico como √© hoje.

Se um computador qu√Ęntico de 4000 qubits existisse hoje, poder√≠amos descobrir chaves privadas de algoritmos como RSA hoje. Mas como eu disse estamos longe disso. Mas at√© esse computador existir, o resto do mundo n√£o est√° parado. J√° existem diversos estudos de algoritmos p√≥s-computa√ß√£o qu√Ęntica. Algoritmos que n√£o usam a dificuldade de fatora√ß√£o de n√ļmeros primos ou problemas de logaritmos discretos ou problemas de logaritmos discretos de curva el√≠ptica.

Como √ļltima tangente, nos √ļltimos 5 anos atingimos um teto na Lei de Moore que voc√™ j√° deve ter ouvido falar, que inclusive n√£o √© uma lei mas uma observa√ß√£o, de que a cada 2 anos voc√™ consegue dobrar o poder computacional de um processador ao mesmo pre√ßo. Mas n√≥s batemos no teto do Gigahertz, e desde ent√£o n√£o aumentamos os clocks com a mesma velocidade de antes. Da√≠ come√ßamos a ter multi-cores, primeiro com o IBM POWER4 e depois com o AMD Athlon 64 e finalmente com o Intel Core 2 Duo. Na √ļltima d√©cada tamb√©m os GPUs come√ßaram a despontar e a diferen√ßa √© a densidade de cores ou o que a NVIDIA chamaria de CUDA cores. Nesse per√≠odo viemos quebrando programas feitos pra rodar num √ļnico core e tentando quebrar em trabalhos que podem ser divididos em m√ļltiplos cores tanto na CPU ou se forem trabalhos envolvendo vetores, matrizes ou tensors, que √© justamente o tipo de trabalho necess√°rio pra processamento gr√°fico e machine learning, usamos GPUs.

Mas nem todo trabalho é paralelizável e existe outra lei que andamos esbarrando que é a Lei de Amdahl, na realidade é uma fórmula pra calcular o máximo de melhoria de performance que podemos ter pra determinados trabalhos paralelos. Na prática quer dizer que temos um limite pros nossos algoritmos de até onde dá pra melhorar a performance só aumentando cores na máquina e você já deve ter visto isso. Vou deixar linkado abaixo o video do canal Coreteks que explica em detalhes a evolução dos processos de fabricação de processadores e as mudanças em arquiteturas e pra onde ainda vamos com isso.

Um GPU ou unidade de processamento gráfico funciona em um SIMD ou Single Instruction Multiple Data ou SIMT que é Single Instruction Multiple Threads, que é uma versão um pouco modificada de um SIMD com funcionalidade de multithreading. Comparado com um CPU ele tem muito mais cores mas cada um é muito mais simples e é mais lento. O que a quantidade de cores permite é o aumento do throughput. Mesmo que uma tarefa individual demore mais comparado a um CPU. Um GPU é tão simples que nem tem um contador de programa. Muitas threads trabalham juntos num warp que no caso de uma Nvidia são grupos de 32 threads. Então todas as threads em warp precisam estar executando a mesma instrução ao mesmo tempo.

O que ajuda a performance de uma GPU √© a mem√≥ria mais r√°pida que ela tem. GPUs normalmente tem mais banda o que ajuda a alimentar a enorme quantidade de cores com dados o suficiente pra eles n√£o ficarem sem nada pra fazer. O que torna um GPU especial √© a capacidade de ter um grande n√ļmero de tarefas simples e independentes rodando em paralelo. Tradicionalmente GPUs eram usadas s√≥ pra trabalhar gr√°ficos, j√° que c√°lculo de vetores e matrizes √© particularmente bom pra processar matrizes de pixels que comp√Ķe cada frame de uma anima√ß√£o por exemplo. Mas com a melhoria nos GPUs e algoritmos, finalmente conseguimos programar coisas mais sofisticadas com coisas com GPGPU. Treinamento de Machine Learning √© a aplica√ß√£o de fun√ß√Ķes de otimiza√ß√£o em pontos de dados que √© o tipo de coisa que GPUs fazem melhor.

Porém um GPU não substitui um CPU pela limitação na sua lógica de controle, pelo menos até agora, e depende do CPU pra organizar e delegar as tarefas e dados pra ele. Mesmo GPUs, que são desenvolvidos com tecnologias similares a CPUs em termos de transistors e materiais como silício, levou décadas pra chegar no ponto que estão hoje. E se você ver os vídeos do canal Coretek vai ver que ainda tem bastante coisa que já está em desenvolvimento em relação a otimização pra aumentar ainda mais a performance e baixar o uso de energia, em particular colocar o CPU e GPU no mesmo chip e mudar de arquitetura pra ARM ou RISC V por exemplo. Ainda temos décadas de evolução em cima do que já temos.

O computador qu√Ęntico eu vejo mais sendo um QPU, e o que ter√≠amos no futuro seria um h√≠brido de CPUs, GPUs e QPUs. O CPU continuaria sendo o coordenador. Veja os exemplos de simuladores como o Qiskit que mencionei antes pra ver que √© exatamente assim que √© montado hoje: um programa tradicional conecta numa QPU virtual e manda as opera√ß√Ķes, assim como fazemos com GPUs hoje. Trabalhos facilmente paraleliz√°veis continuariam sendo delegados pra coisas como as GPUs do futuro e trabalhos que possam tirar vantagem das propriedades de superposi√ß√£o e entanglement, como a transformada qu√Ęntica de Fourier, poderiam ir pra essa QPU.

N√£o imagine um computador qu√Ęntico como sendo o substituto do computador atual. Um computador qu√Ęntico n√£o deve rodar Linux e certamente n√£o vai rodar Crisis. Assim como uma GPU √© um hardware especializado que n√£o substitui um CPU, um QPU seria a mesma coisa. Tecnicamente ela parece ser Turing Complete mas √© o caso onde tarefas triviais seriam ainda executadas melhor e de forma mais r√°pidas por CPUs. Ent√£o a QPU seria mais como uma terceira placa - no dia que for poss√≠vel diminuir o aparato que temos hoje pro formato de algo parecido com uma placa. Na pr√°tica por muitos anos ela vai ser mais como os super computadores, como os da Cray ou o IBM Summit, computadores hiper caros pra usos espec√≠ficos em ag√™ncias de governo ou grandes empresas, n√£o vai ser algo acess√≠vel pra popula√ß√£o em geral at√© que fa√ßamos o salto equivalente da v√°lvula pro transistor. Na realidade eu diria que ainda n√£o temos o equivalente ao transistor no mundo dos qubits.

Por √ļltimo, quero repetir de novo. Os comportamentos qu√Ęnticos como superposi√ß√£o, entanglement e coisas assim s√≥ fazem sentido no mundo subat√īmico. E segundo a interpreta√ß√£o de Copenhagen n√£o faz muito sentido ficar especulando demais a natureza por tr√°s disso, porque ainda nem n√£o temos elementos suficientes pra discutir. Vamos direto aos c√°lculos e aos experimentos que de fato funcionam. Como diria o professor David Mermim ‚ÄúShut up and calculate‚ÄĚ.

Portanto, como eu j√° disse no come√ßo, esque√ßa qualquer coisa pseudo pop cient√≠fica que fica prometendo solu√ß√Ķes qu√Ęnticas pra sua vida. Mais energia. Mais conectividade. Mais empatia ou qualquer bobagem pseudo-qu√Ęntica. Guarde isso pra fic√ß√£o cient√≠fica. N√£o existe isso no mundo macrosc√≥pico. Por√©m, os efeitos qu√Ęnticos s√£o reais e observ√°veis. Seu computador, os sensores da sua c√Ęmera digital, raios laser que voc√™ usa pra operar os olhos, basicamente todo uso avan√ßado do efeito fotoel√©trico √© baseado em mec√Ęnica qu√Ęntica. Toda essa teoria n√£o √© s√≥ acad√™mica ou experimental, n√≥s j√° nos beneficiamos da mec√Ęnica qu√Ęntica em tudo que √© microeletr√īnico e em particular que trabalha a luz de alguma forma.

No canal do MinutePhysics tem outro video explicando o efeito estranho usando filtros polarizadores pra mostrar um efeito qu√Ęntico com a luz. E este v√≠deo do canal Domain Science explica os usos na vida real em mais detalhes e vou deixar os dois linkados abaixo tamb√©m. O que voc√™ precisa levar de tudo isso que eu ruminei nesse v√≠deo √© que mec√Ęnica qu√Ęntica √© algo real, matematicamente calcul√°vel, e usado na pr√°tica. Semicondutores obedecem as leis da f√≠sica qu√Ęntica por exemplo. E computadores qu√Ęnticos realmente existem, podem ser usados hoje e simulados por voc√™ mesmo em casa. Ainda n√£o sabemos se vai ser de fato pr√°tica de ser constru√≠da e usada mas isso √© especula√ß√£o de futuro, algo na ordem de d√©cadas ainda, com sorte enquanto ainda estivermos vivos.

E √© isso a√≠, nem vou perguntar se voc√™s tem d√ļvidas, porque hoje eu n√£o consegui nem raspar o pico do iceberg. Milhares de pessoas est√£o aprendendo isso em cursos na faculdade ao redor do mundo hoje, e eu sou nada al√©m de um mero iniciante nisso. Mas, fazer seu primeiro qubit realizar uma coisa considerada fic√ß√£o cient√≠fica como teletransporte √© fascinante! De qualquer forma, se voc√™ tem mais informa√ß√Ķes cient√≠fica pra compartilhar n√£o deixem de mandar nos coment√°rios abaixo, se curtiram o video deixem um joinha, compartilhem com seus amigos e n√£o deixem de assinar ao canal e apertar o sininho pra n√£o perder os pr√≥ximos epis√≥dios. A gente se v√™, at√© mais!

tags: google akitando criptomoedas ibm Supremacia Qu√Ęntica Computa√ß√£o Qu√Ęntica Mec√Ęnica Qu√Ęntica Shor Criptografia

Comments

coment√°rios deste blog disponibilizados por Disqus