Agradecimentos especiais às equipas da Worldcoin e da Modulus Labs, Xinyuan Sun, Martin Koeppelmann e Illia Polosukhin pelos comentários e discussões.
Ao longo dos anos, muitas pessoas têm-me feito uma pergunta semelhante: quais são as intersecções entre as criptomoedas e a IA que considero mais frutíferas? É uma pergunta razoável: as criptomoedas e a IA são as duas principais tendências tecnológicas profundas (de software) da última década, e parece que deve haver algum tipo de ligação entre as duas. É fácil encontrar sinergias a um nível superficial: a descentralização das criptomoedas pode equilibrar a centralização da IA, a IA é opaca e as criptomoedas trazem transparência, a IA precisa de dados e as cadeias de blocos são boas para armazenar e rastrear dados. Mas, ao longo dos anos, quando as pessoas me pediam para ir mais fundo e falar sobre aplicações específicas, a minha resposta era dececionante: "Sim, há algumas coisas, mas não muitas".
Nos últimos três anos, com o surgimento de uma IA muito mais poderosa, sob a forma de LLMs modernos, e o surgimento de criptomoedas muito mais poderosas, sob a forma não só de soluções de escalonamento de cadeias de blocos, mas também de ZKPs, FHE, MPC(bipartidos e N-partidos), estou a começar a ver esta mudança. Existem, de facto, algumas aplicações promissoras da IA dentro dos ecossistemas de cadeias de blocos, ou da IA em conjunto com a criptografia, embora seja importante ter cuidado com a forma como a IA é aplicada. Um desafio particular é: na criptografia, o código aberto é a única forma de tornar algo verdadeiramente seguro, mas na IA, o facto de um modelo (ou mesmo os seus dados de treino) ser aberto aumenta muito a sua vulnerabilidade a ataques adversários de aprendizagem automática. Esta publicação analisa uma classificação das diferentes formas de intersecção entre criptografia e IA, bem como as perspectivas e os desafios de cada categoria.
Um resumo de alto nível das intersecções entre criptografia e inteligência artificial de um post do blogue da uETH. Mas o que é necessário para concretizar qualquer uma destas sinergias numa aplicação concreta?
A IA é um conceito muito amplo: pode pensar na "IA" como sendo o conjunto de algoritmos que cria, não especificando-os explicitamente, mas sim mexendo uma grande sopa computacional e exercendo algum tipo de pressão de otimização que a empurra para produzir algoritmos com as propriedades que pretende. Esta descrição não deve, de forma alguma, ser tomada de forma desdenhosa: inclui o processo que nos criou a nós, humanos, em primeiro lugar! Mas isso significa que os algoritmos de IA têm algumas propriedades comuns: a sua capacidade de fazer coisas extremamente poderosas, juntamente com limites na nossa capacidade de saber ou compreender o que se passa debaixo do capô.
Há muitas formas de categorizar a IA; para efeitos desta publicação, que fala de interacções entre a IA e as cadeias de blocos (que foram descritas como uma plataforma para <a href="https://medium.com/@virgilgr/ethereum-is-game-changing-technology-literally-d67e01a01cf8"> criar "jogos"), classificá-la-ei da seguinte forma:
Vamos analisá-las uma a uma.
Na verdade, esta é uma categoria que existe há quase uma década, pelo menos desde que as trocas descentralizadas na cadeia (DEXes) começaram a ter uma utilização significativa. Sempre que há uma troca, há uma oportunidade de ganhar dinheiro através da arbitragem, e os bots podem fazer arbitragem muito melhor do que os humanos. Este caso de utilização já existe há muito tempo, mesmo com IAs muito mais simples do que as que temos atualmente, mas, em última análise, é uma intersecção muito real de IA + criptomoedas. Mais recentemente, temos visto bots de arbitragem MEV explorarem-se mutuamente. Sempre que tiver uma aplicação blockchain que envolva leilões ou negociação, vai ter bots de arbitragem.
Mas os bots de arbitragem de IA são apenas o primeiro exemplo de uma categoria muito maior, que espero que em breve comece a incluir muitas outras aplicações. Conheça o AIOmen, uma demonstração de um mercado de previsões em que as IA são jogadores:
Há muito tempo que os mercados de previsão são o Santo Graal da tecnologia epistémica; já em 2014 estava entusiasmado com a possibilidade de utilizar os mercados de previsão como um contributo para a governação ("futarquia") e brinquei muito com eles nas últimas eleições e mais recentemente. No entanto, até à data, os mercados de previsões não têm tido grande sucesso na prática, e há uma série de razões que são normalmente invocadas: os maiores participantes são frequentemente irracionais, as pessoas com os conhecimentos adequados não estão dispostas a dedicar tempo e a apostar, a menos que esteja em causa muito dinheiro, os mercados são frequentemente escassos, etc.
Uma resposta a esta situação é apontar para as melhorias contínuas da experiência do utilizador no Polymarket ou noutros novos mercados de previsões e esperar que tenham êxito onde as iterações anteriores falharam. Afinal de contas, diz-se que as pessoas estão dispostas a apostar dezenas de milhares de milhões em desportos, por que razão não haveriam de apostar dinheiro suficiente nas eleições americanas ou no LK99 para que comece a fazer sentido a entrada de jogadores sérios? Mas este argumento tem de se confrontar com o facto de que, bem, as iterações anteriores não conseguiram atingir este nível de escala (pelo menos em comparação com os sonhos dos seus proponentes) e, por isso, parece que é preciso algo de novo para que os mercados de previsão tenham sucesso. Por isso, uma resposta diferente é apontar para uma caraterística específica dos ecossistemas dos mercados de previsão que podemos esperar ver na década de 2020 e que não vimos na década de 2010: a possibilidade de participação omnipresente das IA.
As IA estão dispostas a trabalhar por menos de 1 dólar por hora e têm o conhecimento de uma enciclopédia - e se isso não for suficiente, podem até ser integradas com capacidade de pesquisa na Web em tempo real. Se criar um mercado e colocar um subsídio de liquidez de 50 dólares, os seres humanos não se interessarão o suficiente para licitar, mas milhares de IAs irão facilmente enxamear sobre a questão e fazer a melhor estimativa possível. O incentivo para fazer um bom trabalho numa determinada pergunta pode ser minúsculo, mas o incentivo para criar uma IA que faça boas previsões em geral pode ser da ordem dos milhões. Note que, potencialmente, nem sequer precisa dos humanos para julgar a maioria das questões: pode utilizar um sistema de disputa em várias rondas semelhante ao Augur ou ao Kleros, em que as IAs também participariam nas rondas anteriores. Os seres humanos só precisariam de responder nos poucos casos em que se verificasse uma série de escaladas e em que ambas as partes tivessem comprometido grandes quantias de dinheiro.
Trata-se de uma primitiva poderosa, porque uma vez que um "mercado de previsões" possa funcionar a uma escala tão microscópica, pode reutilizar a primitiva "mercado de previsões" para muitos outros tipos de questões:
Pode reparar que muitas destas ideias vão na direção daquilo a que chamei "defesa da informação" nos meus escritos sobre "d/acc". Em termos gerais, a questão é: como ajudar os utilizadores a distinguir entre informações verdadeiras e falsas e a detetar fraudes, sem dar poder a uma autoridade centralizada para decidir o que é certo e o que é errado, que poderá depois abusar dessa posição? A um nível micro, a resposta pode ser "IA". Mas, a um nível macro, a questão é: quem constrói a IA? A IA é um reflexo do processo que a criou e, por isso, não pode evitar ter preconceitos. Por conseguinte, é necessário um jogo de nível superior que avalie o desempenho das diferentes IA, em que as IA possam participar como jogadores no jogo.
Esta utilização da IA, em que as IAs participam num mecanismo em que acabam por ser recompensadas ou penalizadas (probabilisticamente) por um mecanismo na cadeia que reúne contributos de seres humanos (chame-lhe RLHF descentralizada baseada no mercado?), é algo que penso que vale realmente a pena analisar. Agora é a altura certa para analisar mais casos de utilização como este, porque o escalonamento da cadeia de blocos está finalmente a ser bem sucedido, tornando "micro" qualquer coisa finalmente viável na cadeia, quando antes não o era.
Uma categoria relacionada de aplicações vai na direção de agentes altamente autónomos que utilizam cadeias de blocos para cooperar melhor, quer através de pagamentos, quer através da utilização de contratos inteligentes para assumir compromissos credíveis.
Uma ideia que mencionei nos meus escritos é a ideia de que existe uma oportunidade de mercado para escrever software virado para o utilizador que proteja os seus interesses, interpretando e identificando perigos no mundo em linha em que o utilizador navega. Um exemplo já existente é a funcionalidade de deteção de burlas do Metamask:
Outro exemplo é a funcionalidade de simulação da carteira Rabby, que mostra ao utilizador as consequências esperadas da transação que está prestes a assinar.
Rabby explicando-me as consequências de assinar uma transação para trocar todo o meu "BITCOIN" (o ticker de uma memecoin ERC20 cujo nome completo é aparentemente "HarryPotterObamaSonic10Inu") por ETH.
Editar 2024.02.02: uma versão anterior deste post referia-se a este token como um esquema que tentava fazer-se passar por bitcoin. Não é; é uma memecoin. Peço desculpa pela confusão.
Potencialmente, este tipo de ferramentas pode ser sobrecarregado com IA. A IA poderia dar uma explicação muito mais rica e amigável para o ser humano sobre o tipo de dapp em que está a participar, as consequências das operações mais complicadas que está a assinar, se um determinado token é ou não genuíno (por exemplo, o token de um cliente é um token de um cliente). BITCOIN não é apenas uma sequência de caracteres, é normalmente o nome de uma grande criptomoeda, que não é um token ERC20 e que tem um preço muito superior a $0,045, e um LLM moderno saberia disso), etc. Há projectos que começam a avançar nesta direção (por exemplo, a carteira LangChain, que utiliza a IA como interface principal). Na minha opinião, as interfaces de IA pura são provavelmente demasiado arriscadas neste momento, uma vez que aumentam o risco de outros tipos de erros, mas a IA que complementa uma interface mais convencional está a tornar-se muito viável.
Há um risco particular que merece ser mencionado. Abordarei este assunto mais detalhadamente na secção "A IA como regra do jogo", mas a questão geral é a aprendizagem automática adversária: se um utilizador tiver acesso a um assistente de IA dentro de uma carteira de código aberto, os bandidos também terão acesso a esse assistente de IA, pelo que terão uma oportunidade ilimitada de otimizar os seus esquemas para não ativar as defesas dessa carteira. Todas as IA modernas têm erros algures, e não é muito difícil para um processo de treino, mesmo que tenha apenas acesso limitado ao modelo, encontrá-los.
É aqui que "as IAs que participam em micro-mercados na cadeia" funcionam melhor: cada IA individual é vulnerável aos mesmos riscos, mas está a criar intencionalmente um ecossistema aberto de dezenas de pessoas que estão constantemente a iterar e a melhorá-las numa base contínua. Além disso, cada IA individual é fechada: a segurança do sistema advém da abertura das regras do jogo, não do funcionamento interno de cada jogador.
Resumo: A IA pode ajudar os utilizadores a compreender o que se passa em linguagem simples, pode servir de tutor em tempo real, pode proteger os utilizadores de erros, mas tenha cuidado ao tentar utilizá-la diretamente contra desinformadores maliciosos e burlões.
Agora, chegamos à aplicação que entusiasma muita gente, mas que eu penso ser a mais arriscada e onde temos de ter mais cuidado: aquilo a que chamo as IA fazerem parte das regras do jogo. Este facto está relacionado com o entusiasmo das elites políticas dominantes em relação aos "juízes de IA" (por exemplo, o ver este artigo no sítio Web da "Cimeira Mundial dos Governos"), e existem análogos destes desejos nas aplicações da cadeia de blocos. Se um contrato inteligente baseado em blockchain ou uma DAO precisar de tomar uma decisão subjectiva (por exemplo, um determinado produto de trabalho é aceitável num contrato de trabalho por encomenda? Qual é a interpretação correcta de uma constituição de linguagem natural como a Lei do Otimismo das Cadeias?), pode fazer com que uma IA faça simplesmente parte do contrato ou da DAO para ajudar a aplicar estas regras?
É aqui que a aprendizagem automática contraditória vai ser um desafio extremamente difícil. O argumento básico de duas frases é o seguinte:
Se um modelo de IA que desempenha um papel fundamental num mecanismo estiver fechado, não pode verificar o seu funcionamento interno, pelo que não é melhor do que uma aplicação centralizada. Se o modelo de IA estiver aberto, um atacante pode descarregá-lo e simulá-lo localmente e conceber ataques altamente optimizados para enganar o modelo, que podem depois reproduzir na rede em funcionamento.
Exemplo de aprendizagem automática adversarial. Fonte: researchgate.net
Agora, os leitores frequentes deste blogue (ou os habitantes do criptoverso) podem já estar a adiantar-se a mim e a pensar: mas espere! Temos provas de conhecimento zero e outras formas muito fixes de criptografia. Certamente que podemos fazer alguma magia criptográfica e esconder o funcionamento interno do modelo para que os atacantes não possam otimizar os ataques, mas ao mesmo tempo provar que o modelo está a ser executado corretamente e foi construído utilizando um processo de treino razoável num conjunto razoável de dados subjacentes!
Normalmente, este é exatamente o tipo de pensamento que defendo neste blogue e nos meus outros escritos. Mas no caso da computação relacionada com a IA, há duas grandes objecções:
Ambas as situações são complicadas, por isso, vamos abordar cada uma delas individualmente.
Os dispositivos criptográficos, especialmente os de uso geral, como o ZK-SNARK e o MPC, têm uma sobrecarga elevada. Um bloco Ethereum demora algumas centenas de milissegundos a ser verificado diretamente por um cliente, mas gerar um ZK-SNARK para provar a correção desse bloco pode demorar horas. A sobrecarga típica de outros dispositivos criptográficos, como o MPC, pode ser ainda pior. A computação da IA já é dispendiosa: os LLM mais potentes conseguem produzir palavras individuais apenas um pouco mais depressa do que os seres humanos as conseguem ler, para não falar dos custos computacionais, muitas vezes multimilionários, do treino dos modelos. A diferença de qualidade entre os modelos de topo e os modelos que tentam poupar muito mais no custo de formação ou na contagem de parâmetros é grande. À primeira vista, esta é uma boa razão para desconfiar de todo o projeto de tentar acrescentar garantias à IA envolvendo-a em criptografia.
Felizmente, porém, a IA é um tipo de computação muito específico, o que a torna passível de todos os tipos de optimizações de que tipos de computação mais "não estruturados", como as ZK-EVM, não podem beneficiar. Vamos examinar a estrutura básica de um modelo de IA:
Normalmente, um modelo de IA consiste principalmente numa série de multiplicações de matrizes intercaladas com operações não lineares por elemento, como a função ReLU(y = max(x, 0)). Assimptoticamente, as multiplicações de matrizes ocupam a maior parte do trabalho: a multiplicação de duas matrizes N*N demora
enquanto o número de operações não lineares é muito menor. Isto é realmente conveniente para a criptografia, porque muitas formas de criptografia podem fazer operações lineares (que são as multiplicações de matrizes, pelo menos se encriptar o modelo mas não as entradas para ele) quase "de graça".
Se é criptógrafo, já deve ter ouvido falar de um fenómeno semelhante no contexto da encriptação homomórfica: realizar adições em textos cifrados é muito fácil, mas as multiplicações são incrivelmente difíceis e, até 2009, não descobrimos qualquer forma de o fazer com uma profundidade ilimitada.
Para ZK-SNARKs, o equivalente são protocolos como este de 2013, que mostram uma sobrecarga inferior a 4x na prova de multiplicações de matrizes. Infelizmente, a sobrecarga nas camadas não lineares continua a ser significativa, e as melhores implementações na prática apresentam uma sobrecarga de cerca de 200x. Mas há esperança de que isso possa ser bastante reduzido através de mais investigação; veja esta apresentação de Ryan Cao para uma abordagem recente baseada na GKR, e a minha própria explicação simplificada de como funciona o componente principal da GKR.
Mas, para muitas aplicações, não queremos apenas provar que um resultado de IA foi calculado corretamente, queremos também ocultar o modelo. Existem abordagens ingénuas a esta questão: pode dividir o modelo de modo a que um conjunto diferente de servidores armazene redundantemente cada camada, e esperar que alguns dos servidores que vazam algumas das camadas não vazem demasiados dados. Mas também existem formas surpreendentemente eficazes de computação multipartidária especializada.
Um diagrama simplificado de uma destas abordagens, mantendo o modelo privado, mas tornando públicas as entradas. Se quisermos manter o modelo e os dados privados, podemos fazê-lo, embora seja um pouco mais complicado: consulte as páginas 8-9 do documento.
Em ambos os casos, a moral da história é a mesma: a maior parte do cálculo de uma IA são multiplicações de matrizes, para as quais é possível fazer ZK-SNARKs ou MPCs muito eficientes (ou mesmo FHE), pelo que a sobrecarga total de colocar a IA dentro de caixas criptográficas é surpreendentemente baixa. Geralmente, são as camadas não lineares que constituem o maior estrangulamento, apesar do seu tamanho mais pequeno; talvez as técnicas mais recentes, como os argumentos de pesquisa, possam ajudar.
Agora, vamos ao outro grande problema: os tipos de ataques que pode fazer mesmo que o conteúdo do modelo seja mantido privado e que só tenha "acesso à API" do modelo. Citando um documento de 2016:
Muitos modelos de aprendizagem automática são vulneráveis a exemplos adversários: entradas que são especialmente concebidas para fazer com que um modelo de aprendizagem automática produza um resultado incorreto. Os exemplos adversos que afectam um modelo afectam frequentemente outro modelo, mesmo que os dois modelos tenham arquitecturas diferentes ou tenham sido treinados com conjuntos de treino diferentes, desde que ambos os modelos tenham sido treinados para executar a mesma tarefa. Um atacante pode, portanto, treinar o seu próprio modelo substituto, criar exemplos adversários contra o substituto e transferi-los para um modelo de vítima, com muito pouca informação sobre a vítima.
Utilize o acesso de caixa negra a um "classificador de destino" para treinar e aperfeiçoar o seu próprio "classificador inferido" armazenado localmente. Depois, gere localmente ataques optimizados contra o classificador inferido. Acontece que estes ataques muitas vezes também funcionam contra o classificador alvo original. Fonte do diagrama.
Potencialmente, pode até criar ataques conhecendo apenas os dados de treino, mesmo que tenha um acesso muito limitado ou nenhum acesso ao modelo que está a tentar atacar. A partir de 2023, este tipo de ataques continua a ser um grande problema.
Para reduzir eficazmente este tipo de ataques de caixa negra, temos de fazer duas coisas:
O projeto que mais se empenhou no primeiro é talvez o Worldcoin, do qual analisei longamente uma versão anterior (entre outros protocolos) aqui. A Worldcoin utiliza extensivamente modelos de IA ao nível do protocolo, para (i) converter as digitalizações da íris em "códigos de íris" curtos, fáceis de comparar por semelhança, e (ii) verificar se o objeto que está a digitalizar é realmente um ser humano. A principal defesa em que a Worldcoin se baseia é o facto de não permitir que qualquer pessoa faça uma simples chamada para o modelo de IA: em vez disso, está a utilizar hardware de confiança para garantir que o modelo só aceita entradas assinadas digitalmente pela câmara da esfera.
Não é garantido que esta abordagem funcione: acontece que é possível fazer ataques adversos contra a IA biométrica que se apresenta sob a forma de adesivos físicos ou jóias que pode colocar no seu rosto:
Ponha uma coisa extra na testa e evite ser detectado ou faça-se passar por outra pessoa. Fonte.
Mas a esperança é que, se combinar todas as defesas, ocultando o próprio modelo de IA, limitando grandemente o número de consultas e exigindo que cada consulta seja de alguma forma autenticada, pode dificultar suficientemente os ataques adversários para que o sistema seja seguro. No caso da Worldcoin, aumentar estas outras defesas poderia também reduzir a sua dependência de hardware de confiança, aumentando a descentralização do projeto.
E isto leva-nos à segunda parte: como é que podemos esconder os dados de treino? É aqui que as "DAOs para governar democraticamente a IA" podem realmente fazer sentido: podemos criar uma DAO na cadeia que governe o processo de quem está autorizado a submeter dados de treino (e que atestados são exigidos nos próprios dados), quem está autorizado a fazer consultas, e quantas, e usar técnicas criptográficas como o MPC para encriptar todo o pipeline de criação e execução da IA, desde a entrada de treino de cada utilizador individual até ao resultado final de cada consulta. Esta DAO poderia simultaneamente satisfazer o objetivo altamente popular de compensar as pessoas pela apresentação de dados.
É importante reafirmar que este plano é extremamente ambicioso e que há uma série de formas de o tornar impraticável:
Uma das razões pelas quais não comecei esta secção com mais avisos vermelhos grandes a dizer "NÃO FAÇA JUÍZES DE IA, ISSO É DESISTÓPICO", é que a nossa sociedade já está altamente dependente de juízes de IA centralizados e irresponsáveis: os algoritmos que determinam que tipos de publicações e opiniões políticas são impulsionados e deboosted, ou mesmo censurados, nas redes sociais. Penso que expandir ainda mais esta tendência nesta fase é uma má ideia, mas não creio que haja uma grande probabilidade de a comunidade da cadeia de blocos experimentar mais IA ser o fator que contribui para piorar a situação.
De facto, existem algumas formas bastante básicas e de baixo risco em que a tecnologia criptográfica pode melhorar mesmo estes sistemas centralizados existentes, nas quais estou bastante confiante. Uma técnica simples é a IA verificada com publicação atrasada: quando um site de redes sociais faz uma classificação de posts baseada em IA, pode publicar um ZK-SNARK que prove o hash do modelo que gerou essa classificação. O sítio pode comprometer-se a revelar os seus modelos de IA após, por exemplo, um ano de atraso. Assim que um modelo é revelado, os utilizadores podem verificar o hash para confirmar que o modelo correto foi lançado e a comunidade pode realizar testes no modelo para verificar a sua equidade. O atraso na publicação garantiria que, quando o modelo fosse revelado, já estaria desatualizado.
Assim, em comparação com o mundo centralizado, a questão não é se podemos fazer melhor, mas em quanto. No entanto, para o mundo descentralizado, é importante ter cuidado: se alguém construir, por exemplo, um mercado de previsões ou uma moeda estável que utilize um oráculo de IA, e se se verificar que o oráculo é atacável, trata-se de uma enorme quantidade de dinheiro que pode desaparecer num instante.
Se as técnicas acima descritas para criar uma IA privada descentralizada e escalável, cujo conteúdo é uma caixa negra que ninguém conhece, puderem realmente funcionar, então também poderão ser utilizadas para criar IAs com uma utilidade que vai para além das cadeias de blocos. A equipa do protocolo NEAR está a fazer disto um objetivo central do seu trabalho em curso.
Há duas razões para o fazer:
Também vale a pena notar que "utilizar incentivos criptográficos para incentivar a criação de uma melhor IA" pode ser feito sem ter de descer à toca do coelho da utilização de criptografia para a encriptar completamente: abordagens como o BitTensor inserem-se nesta categoria.
Agora que tanto as cadeias de blocos como as IA estão a tornar-se mais poderosas, há um número crescente de casos de utilização na intersecção das duas áreas. No entanto, alguns destes casos de utilização fazem muito mais sentido e são muito mais robustos do que outros. Em geral, os casos de utilização em que o mecanismo subjacente continua a ser concebido mais ou menos como antes, mas os intervenientes individuais tornam-se IA, permitindo que o mecanismo funcione efetivamente a uma escala muito mais micro, são os mais promissores e os mais fáceis de acertar.
As aplicações mais difíceis de acertar são as que tentam utilizar cadeias de blocos e técnicas criptográficas para criar um "singleton": uma única IA descentralizada e de confiança em que uma aplicação pode confiar para um determinado fim. Estas aplicações são prometedoras, tanto em termos de funcionalidade como de melhoria da segurança da IA de uma forma que evita os riscos de centralização associados às abordagens mais correntes desse problema. Mas há também muitas formas de os pressupostos subjacentes falharem; por isso, vale a pena ser cauteloso, especialmente quando se implementam estas aplicações em contextos de alto valor e alto risco.
Estou ansioso por ver mais tentativas de casos de utilização construtiva da IA em todas estas áreas, para podermos ver quais delas são verdadeiramente viáveis à escala.
Agradecimentos especiais às equipas da Worldcoin e da Modulus Labs, Xinyuan Sun, Martin Koeppelmann e Illia Polosukhin pelos comentários e discussões.
Ao longo dos anos, muitas pessoas têm-me feito uma pergunta semelhante: quais são as intersecções entre as criptomoedas e a IA que considero mais frutíferas? É uma pergunta razoável: as criptomoedas e a IA são as duas principais tendências tecnológicas profundas (de software) da última década, e parece que deve haver algum tipo de ligação entre as duas. É fácil encontrar sinergias a um nível superficial: a descentralização das criptomoedas pode equilibrar a centralização da IA, a IA é opaca e as criptomoedas trazem transparência, a IA precisa de dados e as cadeias de blocos são boas para armazenar e rastrear dados. Mas, ao longo dos anos, quando as pessoas me pediam para ir mais fundo e falar sobre aplicações específicas, a minha resposta era dececionante: "Sim, há algumas coisas, mas não muitas".
Nos últimos três anos, com o surgimento de uma IA muito mais poderosa, sob a forma de LLMs modernos, e o surgimento de criptomoedas muito mais poderosas, sob a forma não só de soluções de escalonamento de cadeias de blocos, mas também de ZKPs, FHE, MPC(bipartidos e N-partidos), estou a começar a ver esta mudança. Existem, de facto, algumas aplicações promissoras da IA dentro dos ecossistemas de cadeias de blocos, ou da IA em conjunto com a criptografia, embora seja importante ter cuidado com a forma como a IA é aplicada. Um desafio particular é: na criptografia, o código aberto é a única forma de tornar algo verdadeiramente seguro, mas na IA, o facto de um modelo (ou mesmo os seus dados de treino) ser aberto aumenta muito a sua vulnerabilidade a ataques adversários de aprendizagem automática. Esta publicação analisa uma classificação das diferentes formas de intersecção entre criptografia e IA, bem como as perspectivas e os desafios de cada categoria.
Um resumo de alto nível das intersecções entre criptografia e inteligência artificial de um post do blogue da uETH. Mas o que é necessário para concretizar qualquer uma destas sinergias numa aplicação concreta?
A IA é um conceito muito amplo: pode pensar na "IA" como sendo o conjunto de algoritmos que cria, não especificando-os explicitamente, mas sim mexendo uma grande sopa computacional e exercendo algum tipo de pressão de otimização que a empurra para produzir algoritmos com as propriedades que pretende. Esta descrição não deve, de forma alguma, ser tomada de forma desdenhosa: inclui o processo que nos criou a nós, humanos, em primeiro lugar! Mas isso significa que os algoritmos de IA têm algumas propriedades comuns: a sua capacidade de fazer coisas extremamente poderosas, juntamente com limites na nossa capacidade de saber ou compreender o que se passa debaixo do capô.
Há muitas formas de categorizar a IA; para efeitos desta publicação, que fala de interacções entre a IA e as cadeias de blocos (que foram descritas como uma plataforma para <a href="https://medium.com/@virgilgr/ethereum-is-game-changing-technology-literally-d67e01a01cf8"> criar "jogos"), classificá-la-ei da seguinte forma:
Vamos analisá-las uma a uma.
Na verdade, esta é uma categoria que existe há quase uma década, pelo menos desde que as trocas descentralizadas na cadeia (DEXes) começaram a ter uma utilização significativa. Sempre que há uma troca, há uma oportunidade de ganhar dinheiro através da arbitragem, e os bots podem fazer arbitragem muito melhor do que os humanos. Este caso de utilização já existe há muito tempo, mesmo com IAs muito mais simples do que as que temos atualmente, mas, em última análise, é uma intersecção muito real de IA + criptomoedas. Mais recentemente, temos visto bots de arbitragem MEV explorarem-se mutuamente. Sempre que tiver uma aplicação blockchain que envolva leilões ou negociação, vai ter bots de arbitragem.
Mas os bots de arbitragem de IA são apenas o primeiro exemplo de uma categoria muito maior, que espero que em breve comece a incluir muitas outras aplicações. Conheça o AIOmen, uma demonstração de um mercado de previsões em que as IA são jogadores:
Há muito tempo que os mercados de previsão são o Santo Graal da tecnologia epistémica; já em 2014 estava entusiasmado com a possibilidade de utilizar os mercados de previsão como um contributo para a governação ("futarquia") e brinquei muito com eles nas últimas eleições e mais recentemente. No entanto, até à data, os mercados de previsões não têm tido grande sucesso na prática, e há uma série de razões que são normalmente invocadas: os maiores participantes são frequentemente irracionais, as pessoas com os conhecimentos adequados não estão dispostas a dedicar tempo e a apostar, a menos que esteja em causa muito dinheiro, os mercados são frequentemente escassos, etc.
Uma resposta a esta situação é apontar para as melhorias contínuas da experiência do utilizador no Polymarket ou noutros novos mercados de previsões e esperar que tenham êxito onde as iterações anteriores falharam. Afinal de contas, diz-se que as pessoas estão dispostas a apostar dezenas de milhares de milhões em desportos, por que razão não haveriam de apostar dinheiro suficiente nas eleições americanas ou no LK99 para que comece a fazer sentido a entrada de jogadores sérios? Mas este argumento tem de se confrontar com o facto de que, bem, as iterações anteriores não conseguiram atingir este nível de escala (pelo menos em comparação com os sonhos dos seus proponentes) e, por isso, parece que é preciso algo de novo para que os mercados de previsão tenham sucesso. Por isso, uma resposta diferente é apontar para uma caraterística específica dos ecossistemas dos mercados de previsão que podemos esperar ver na década de 2020 e que não vimos na década de 2010: a possibilidade de participação omnipresente das IA.
As IA estão dispostas a trabalhar por menos de 1 dólar por hora e têm o conhecimento de uma enciclopédia - e se isso não for suficiente, podem até ser integradas com capacidade de pesquisa na Web em tempo real. Se criar um mercado e colocar um subsídio de liquidez de 50 dólares, os seres humanos não se interessarão o suficiente para licitar, mas milhares de IAs irão facilmente enxamear sobre a questão e fazer a melhor estimativa possível. O incentivo para fazer um bom trabalho numa determinada pergunta pode ser minúsculo, mas o incentivo para criar uma IA que faça boas previsões em geral pode ser da ordem dos milhões. Note que, potencialmente, nem sequer precisa dos humanos para julgar a maioria das questões: pode utilizar um sistema de disputa em várias rondas semelhante ao Augur ou ao Kleros, em que as IAs também participariam nas rondas anteriores. Os seres humanos só precisariam de responder nos poucos casos em que se verificasse uma série de escaladas e em que ambas as partes tivessem comprometido grandes quantias de dinheiro.
Trata-se de uma primitiva poderosa, porque uma vez que um "mercado de previsões" possa funcionar a uma escala tão microscópica, pode reutilizar a primitiva "mercado de previsões" para muitos outros tipos de questões:
Pode reparar que muitas destas ideias vão na direção daquilo a que chamei "defesa da informação" nos meus escritos sobre "d/acc". Em termos gerais, a questão é: como ajudar os utilizadores a distinguir entre informações verdadeiras e falsas e a detetar fraudes, sem dar poder a uma autoridade centralizada para decidir o que é certo e o que é errado, que poderá depois abusar dessa posição? A um nível micro, a resposta pode ser "IA". Mas, a um nível macro, a questão é: quem constrói a IA? A IA é um reflexo do processo que a criou e, por isso, não pode evitar ter preconceitos. Por conseguinte, é necessário um jogo de nível superior que avalie o desempenho das diferentes IA, em que as IA possam participar como jogadores no jogo.
Esta utilização da IA, em que as IAs participam num mecanismo em que acabam por ser recompensadas ou penalizadas (probabilisticamente) por um mecanismo na cadeia que reúne contributos de seres humanos (chame-lhe RLHF descentralizada baseada no mercado?), é algo que penso que vale realmente a pena analisar. Agora é a altura certa para analisar mais casos de utilização como este, porque o escalonamento da cadeia de blocos está finalmente a ser bem sucedido, tornando "micro" qualquer coisa finalmente viável na cadeia, quando antes não o era.
Uma categoria relacionada de aplicações vai na direção de agentes altamente autónomos que utilizam cadeias de blocos para cooperar melhor, quer através de pagamentos, quer através da utilização de contratos inteligentes para assumir compromissos credíveis.
Uma ideia que mencionei nos meus escritos é a ideia de que existe uma oportunidade de mercado para escrever software virado para o utilizador que proteja os seus interesses, interpretando e identificando perigos no mundo em linha em que o utilizador navega. Um exemplo já existente é a funcionalidade de deteção de burlas do Metamask:
Outro exemplo é a funcionalidade de simulação da carteira Rabby, que mostra ao utilizador as consequências esperadas da transação que está prestes a assinar.
Rabby explicando-me as consequências de assinar uma transação para trocar todo o meu "BITCOIN" (o ticker de uma memecoin ERC20 cujo nome completo é aparentemente "HarryPotterObamaSonic10Inu") por ETH.
Editar 2024.02.02: uma versão anterior deste post referia-se a este token como um esquema que tentava fazer-se passar por bitcoin. Não é; é uma memecoin. Peço desculpa pela confusão.
Potencialmente, este tipo de ferramentas pode ser sobrecarregado com IA. A IA poderia dar uma explicação muito mais rica e amigável para o ser humano sobre o tipo de dapp em que está a participar, as consequências das operações mais complicadas que está a assinar, se um determinado token é ou não genuíno (por exemplo, o token de um cliente é um token de um cliente). BITCOIN não é apenas uma sequência de caracteres, é normalmente o nome de uma grande criptomoeda, que não é um token ERC20 e que tem um preço muito superior a $0,045, e um LLM moderno saberia disso), etc. Há projectos que começam a avançar nesta direção (por exemplo, a carteira LangChain, que utiliza a IA como interface principal). Na minha opinião, as interfaces de IA pura são provavelmente demasiado arriscadas neste momento, uma vez que aumentam o risco de outros tipos de erros, mas a IA que complementa uma interface mais convencional está a tornar-se muito viável.
Há um risco particular que merece ser mencionado. Abordarei este assunto mais detalhadamente na secção "A IA como regra do jogo", mas a questão geral é a aprendizagem automática adversária: se um utilizador tiver acesso a um assistente de IA dentro de uma carteira de código aberto, os bandidos também terão acesso a esse assistente de IA, pelo que terão uma oportunidade ilimitada de otimizar os seus esquemas para não ativar as defesas dessa carteira. Todas as IA modernas têm erros algures, e não é muito difícil para um processo de treino, mesmo que tenha apenas acesso limitado ao modelo, encontrá-los.
É aqui que "as IAs que participam em micro-mercados na cadeia" funcionam melhor: cada IA individual é vulnerável aos mesmos riscos, mas está a criar intencionalmente um ecossistema aberto de dezenas de pessoas que estão constantemente a iterar e a melhorá-las numa base contínua. Além disso, cada IA individual é fechada: a segurança do sistema advém da abertura das regras do jogo, não do funcionamento interno de cada jogador.
Resumo: A IA pode ajudar os utilizadores a compreender o que se passa em linguagem simples, pode servir de tutor em tempo real, pode proteger os utilizadores de erros, mas tenha cuidado ao tentar utilizá-la diretamente contra desinformadores maliciosos e burlões.
Agora, chegamos à aplicação que entusiasma muita gente, mas que eu penso ser a mais arriscada e onde temos de ter mais cuidado: aquilo a que chamo as IA fazerem parte das regras do jogo. Este facto está relacionado com o entusiasmo das elites políticas dominantes em relação aos "juízes de IA" (por exemplo, o ver este artigo no sítio Web da "Cimeira Mundial dos Governos"), e existem análogos destes desejos nas aplicações da cadeia de blocos. Se um contrato inteligente baseado em blockchain ou uma DAO precisar de tomar uma decisão subjectiva (por exemplo, um determinado produto de trabalho é aceitável num contrato de trabalho por encomenda? Qual é a interpretação correcta de uma constituição de linguagem natural como a Lei do Otimismo das Cadeias?), pode fazer com que uma IA faça simplesmente parte do contrato ou da DAO para ajudar a aplicar estas regras?
É aqui que a aprendizagem automática contraditória vai ser um desafio extremamente difícil. O argumento básico de duas frases é o seguinte:
Se um modelo de IA que desempenha um papel fundamental num mecanismo estiver fechado, não pode verificar o seu funcionamento interno, pelo que não é melhor do que uma aplicação centralizada. Se o modelo de IA estiver aberto, um atacante pode descarregá-lo e simulá-lo localmente e conceber ataques altamente optimizados para enganar o modelo, que podem depois reproduzir na rede em funcionamento.
Exemplo de aprendizagem automática adversarial. Fonte: researchgate.net
Agora, os leitores frequentes deste blogue (ou os habitantes do criptoverso) podem já estar a adiantar-se a mim e a pensar: mas espere! Temos provas de conhecimento zero e outras formas muito fixes de criptografia. Certamente que podemos fazer alguma magia criptográfica e esconder o funcionamento interno do modelo para que os atacantes não possam otimizar os ataques, mas ao mesmo tempo provar que o modelo está a ser executado corretamente e foi construído utilizando um processo de treino razoável num conjunto razoável de dados subjacentes!
Normalmente, este é exatamente o tipo de pensamento que defendo neste blogue e nos meus outros escritos. Mas no caso da computação relacionada com a IA, há duas grandes objecções:
Ambas as situações são complicadas, por isso, vamos abordar cada uma delas individualmente.
Os dispositivos criptográficos, especialmente os de uso geral, como o ZK-SNARK e o MPC, têm uma sobrecarga elevada. Um bloco Ethereum demora algumas centenas de milissegundos a ser verificado diretamente por um cliente, mas gerar um ZK-SNARK para provar a correção desse bloco pode demorar horas. A sobrecarga típica de outros dispositivos criptográficos, como o MPC, pode ser ainda pior. A computação da IA já é dispendiosa: os LLM mais potentes conseguem produzir palavras individuais apenas um pouco mais depressa do que os seres humanos as conseguem ler, para não falar dos custos computacionais, muitas vezes multimilionários, do treino dos modelos. A diferença de qualidade entre os modelos de topo e os modelos que tentam poupar muito mais no custo de formação ou na contagem de parâmetros é grande. À primeira vista, esta é uma boa razão para desconfiar de todo o projeto de tentar acrescentar garantias à IA envolvendo-a em criptografia.
Felizmente, porém, a IA é um tipo de computação muito específico, o que a torna passível de todos os tipos de optimizações de que tipos de computação mais "não estruturados", como as ZK-EVM, não podem beneficiar. Vamos examinar a estrutura básica de um modelo de IA:
Normalmente, um modelo de IA consiste principalmente numa série de multiplicações de matrizes intercaladas com operações não lineares por elemento, como a função ReLU(y = max(x, 0)). Assimptoticamente, as multiplicações de matrizes ocupam a maior parte do trabalho: a multiplicação de duas matrizes N*N demora
enquanto o número de operações não lineares é muito menor. Isto é realmente conveniente para a criptografia, porque muitas formas de criptografia podem fazer operações lineares (que são as multiplicações de matrizes, pelo menos se encriptar o modelo mas não as entradas para ele) quase "de graça".
Se é criptógrafo, já deve ter ouvido falar de um fenómeno semelhante no contexto da encriptação homomórfica: realizar adições em textos cifrados é muito fácil, mas as multiplicações são incrivelmente difíceis e, até 2009, não descobrimos qualquer forma de o fazer com uma profundidade ilimitada.
Para ZK-SNARKs, o equivalente são protocolos como este de 2013, que mostram uma sobrecarga inferior a 4x na prova de multiplicações de matrizes. Infelizmente, a sobrecarga nas camadas não lineares continua a ser significativa, e as melhores implementações na prática apresentam uma sobrecarga de cerca de 200x. Mas há esperança de que isso possa ser bastante reduzido através de mais investigação; veja esta apresentação de Ryan Cao para uma abordagem recente baseada na GKR, e a minha própria explicação simplificada de como funciona o componente principal da GKR.
Mas, para muitas aplicações, não queremos apenas provar que um resultado de IA foi calculado corretamente, queremos também ocultar o modelo. Existem abordagens ingénuas a esta questão: pode dividir o modelo de modo a que um conjunto diferente de servidores armazene redundantemente cada camada, e esperar que alguns dos servidores que vazam algumas das camadas não vazem demasiados dados. Mas também existem formas surpreendentemente eficazes de computação multipartidária especializada.
Um diagrama simplificado de uma destas abordagens, mantendo o modelo privado, mas tornando públicas as entradas. Se quisermos manter o modelo e os dados privados, podemos fazê-lo, embora seja um pouco mais complicado: consulte as páginas 8-9 do documento.
Em ambos os casos, a moral da história é a mesma: a maior parte do cálculo de uma IA são multiplicações de matrizes, para as quais é possível fazer ZK-SNARKs ou MPCs muito eficientes (ou mesmo FHE), pelo que a sobrecarga total de colocar a IA dentro de caixas criptográficas é surpreendentemente baixa. Geralmente, são as camadas não lineares que constituem o maior estrangulamento, apesar do seu tamanho mais pequeno; talvez as técnicas mais recentes, como os argumentos de pesquisa, possam ajudar.
Agora, vamos ao outro grande problema: os tipos de ataques que pode fazer mesmo que o conteúdo do modelo seja mantido privado e que só tenha "acesso à API" do modelo. Citando um documento de 2016:
Muitos modelos de aprendizagem automática são vulneráveis a exemplos adversários: entradas que são especialmente concebidas para fazer com que um modelo de aprendizagem automática produza um resultado incorreto. Os exemplos adversos que afectam um modelo afectam frequentemente outro modelo, mesmo que os dois modelos tenham arquitecturas diferentes ou tenham sido treinados com conjuntos de treino diferentes, desde que ambos os modelos tenham sido treinados para executar a mesma tarefa. Um atacante pode, portanto, treinar o seu próprio modelo substituto, criar exemplos adversários contra o substituto e transferi-los para um modelo de vítima, com muito pouca informação sobre a vítima.
Utilize o acesso de caixa negra a um "classificador de destino" para treinar e aperfeiçoar o seu próprio "classificador inferido" armazenado localmente. Depois, gere localmente ataques optimizados contra o classificador inferido. Acontece que estes ataques muitas vezes também funcionam contra o classificador alvo original. Fonte do diagrama.
Potencialmente, pode até criar ataques conhecendo apenas os dados de treino, mesmo que tenha um acesso muito limitado ou nenhum acesso ao modelo que está a tentar atacar. A partir de 2023, este tipo de ataques continua a ser um grande problema.
Para reduzir eficazmente este tipo de ataques de caixa negra, temos de fazer duas coisas:
O projeto que mais se empenhou no primeiro é talvez o Worldcoin, do qual analisei longamente uma versão anterior (entre outros protocolos) aqui. A Worldcoin utiliza extensivamente modelos de IA ao nível do protocolo, para (i) converter as digitalizações da íris em "códigos de íris" curtos, fáceis de comparar por semelhança, e (ii) verificar se o objeto que está a digitalizar é realmente um ser humano. A principal defesa em que a Worldcoin se baseia é o facto de não permitir que qualquer pessoa faça uma simples chamada para o modelo de IA: em vez disso, está a utilizar hardware de confiança para garantir que o modelo só aceita entradas assinadas digitalmente pela câmara da esfera.
Não é garantido que esta abordagem funcione: acontece que é possível fazer ataques adversos contra a IA biométrica que se apresenta sob a forma de adesivos físicos ou jóias que pode colocar no seu rosto:
Ponha uma coisa extra na testa e evite ser detectado ou faça-se passar por outra pessoa. Fonte.
Mas a esperança é que, se combinar todas as defesas, ocultando o próprio modelo de IA, limitando grandemente o número de consultas e exigindo que cada consulta seja de alguma forma autenticada, pode dificultar suficientemente os ataques adversários para que o sistema seja seguro. No caso da Worldcoin, aumentar estas outras defesas poderia também reduzir a sua dependência de hardware de confiança, aumentando a descentralização do projeto.
E isto leva-nos à segunda parte: como é que podemos esconder os dados de treino? É aqui que as "DAOs para governar democraticamente a IA" podem realmente fazer sentido: podemos criar uma DAO na cadeia que governe o processo de quem está autorizado a submeter dados de treino (e que atestados são exigidos nos próprios dados), quem está autorizado a fazer consultas, e quantas, e usar técnicas criptográficas como o MPC para encriptar todo o pipeline de criação e execução da IA, desde a entrada de treino de cada utilizador individual até ao resultado final de cada consulta. Esta DAO poderia simultaneamente satisfazer o objetivo altamente popular de compensar as pessoas pela apresentação de dados.
É importante reafirmar que este plano é extremamente ambicioso e que há uma série de formas de o tornar impraticável:
Uma das razões pelas quais não comecei esta secção com mais avisos vermelhos grandes a dizer "NÃO FAÇA JUÍZES DE IA, ISSO É DESISTÓPICO", é que a nossa sociedade já está altamente dependente de juízes de IA centralizados e irresponsáveis: os algoritmos que determinam que tipos de publicações e opiniões políticas são impulsionados e deboosted, ou mesmo censurados, nas redes sociais. Penso que expandir ainda mais esta tendência nesta fase é uma má ideia, mas não creio que haja uma grande probabilidade de a comunidade da cadeia de blocos experimentar mais IA ser o fator que contribui para piorar a situação.
De facto, existem algumas formas bastante básicas e de baixo risco em que a tecnologia criptográfica pode melhorar mesmo estes sistemas centralizados existentes, nas quais estou bastante confiante. Uma técnica simples é a IA verificada com publicação atrasada: quando um site de redes sociais faz uma classificação de posts baseada em IA, pode publicar um ZK-SNARK que prove o hash do modelo que gerou essa classificação. O sítio pode comprometer-se a revelar os seus modelos de IA após, por exemplo, um ano de atraso. Assim que um modelo é revelado, os utilizadores podem verificar o hash para confirmar que o modelo correto foi lançado e a comunidade pode realizar testes no modelo para verificar a sua equidade. O atraso na publicação garantiria que, quando o modelo fosse revelado, já estaria desatualizado.
Assim, em comparação com o mundo centralizado, a questão não é se podemos fazer melhor, mas em quanto. No entanto, para o mundo descentralizado, é importante ter cuidado: se alguém construir, por exemplo, um mercado de previsões ou uma moeda estável que utilize um oráculo de IA, e se se verificar que o oráculo é atacável, trata-se de uma enorme quantidade de dinheiro que pode desaparecer num instante.
Se as técnicas acima descritas para criar uma IA privada descentralizada e escalável, cujo conteúdo é uma caixa negra que ninguém conhece, puderem realmente funcionar, então também poderão ser utilizadas para criar IAs com uma utilidade que vai para além das cadeias de blocos. A equipa do protocolo NEAR está a fazer disto um objetivo central do seu trabalho em curso.
Há duas razões para o fazer:
Também vale a pena notar que "utilizar incentivos criptográficos para incentivar a criação de uma melhor IA" pode ser feito sem ter de descer à toca do coelho da utilização de criptografia para a encriptar completamente: abordagens como o BitTensor inserem-se nesta categoria.
Agora que tanto as cadeias de blocos como as IA estão a tornar-se mais poderosas, há um número crescente de casos de utilização na intersecção das duas áreas. No entanto, alguns destes casos de utilização fazem muito mais sentido e são muito mais robustos do que outros. Em geral, os casos de utilização em que o mecanismo subjacente continua a ser concebido mais ou menos como antes, mas os intervenientes individuais tornam-se IA, permitindo que o mecanismo funcione efetivamente a uma escala muito mais micro, são os mais promissores e os mais fáceis de acertar.
As aplicações mais difíceis de acertar são as que tentam utilizar cadeias de blocos e técnicas criptográficas para criar um "singleton": uma única IA descentralizada e de confiança em que uma aplicação pode confiar para um determinado fim. Estas aplicações são prometedoras, tanto em termos de funcionalidade como de melhoria da segurança da IA de uma forma que evita os riscos de centralização associados às abordagens mais correntes desse problema. Mas há também muitas formas de os pressupostos subjacentes falharem; por isso, vale a pena ser cauteloso, especialmente quando se implementam estas aplicações em contextos de alto valor e alto risco.
Estou ansioso por ver mais tentativas de casos de utilização construtiva da IA em todas estas áreas, para podermos ver quais delas são verdadeiramente viáveis à escala.