Fhenix

ERC55 Meetups · 2 Sept 2025 · 1:05:59

A Fhenix developer explains in Portuguese how fully homomorphic encryption lets Ethereum contracts compute on encrypted values, motivated by the fact that EVM state is public. The design is a coprocessor: contracts on the host chain hold only pointers to encrypted values, an access-control contract checks who may handle them, and decryption goes to a network whose parties each decrypt a part. In Solidity, if-else branches would reveal which path ran, so a select function evaluates both paths at higher cost, and the speaker says a trusted dealer still bootstraps the key and admits not knowing several answers.

Topics

From ERC55 Meetups, hosted by ERC55.

Transcript

Pronto. >> Beleza. Podemos >> já >> v chegar lá. Microfone do boné novo.

Isso aqui é o microfone. >> E a a imagem tá boa ainda? Podemos. Bom, bom dia. Eu sou sou Alexandre, mas a maioria das pessoas que me conhecem como Alex, meu amigo mais fácil até pro pessoal de fora, né? Eh, eu sou sou engenheiro dev na Fênix, mas eu não tô na parte core de desenvolvimento, de desenvolver os esquemas, de uma parte mais externa de desenvolver em

cima da da própria arquitetura, da própria biblioteca da Pix. Então, é um pouco isso que eu que eu vou começar. Primeiro, por favor, me interrompam o complemento. Eu não quero ser muito só uma palestra, um tal que workshop. Acho que eu sei uma parte mais superficial. Então, se quiser colaborar com qualquer outro outra coisa, perguntar também, mandem perguntas bem difíceis que eu não vou saber responder porque depois eu consigo levar isso pro time lá e até melhorar as próximas apresentações. Então, então tragam perguntas difíceis, podem interromper.

Eh, bom, vai ser a ideia falar sobref até você me perguntou, acabou de perguntar sobre porque é fênix com FHE. E eu acho que essa tem sempre tem que ter essa trocadilha, né? Esses negócios porque fênix é com FHE, né? Aí o Coffee também porque é um é um coprocessor, né? Ele coloca cof aí FHE. Então parece que tudo tem que ter esse trocadilho, né? Essa é modinha, né? Mas funciona um pouco né? Bom, então aqui o que que eu que eu pretendo falar hoje? Falar, acho que já rolou, né, um papo sobre FHE, posso falar FIT, tudo bem? Tô acostumado mais.

E então eu vou passar um pouco por cima sobre o que que é feiti e depois explicar um pouco sobre a arquitetura do do que que a FIX tá fazendo e depois um overview sobre um pouco de de como implementa isso no contrato e a biblioteca em JavaScript também na parte do cliente para entender como que como que funciona. Então acho que o que falou hoje esse aqui já foi um pouco falado. Então, o problema da das EVMs do Etérium principalmente, né, é tudo público, né?

Então, eh, tudo, todo o estado, saldos públicos, votos, é tudo que você faz, tudo é possível você entender o que tá acontecendo né? Talvez a gente já chegou no momento que que isso já tá se tornando uma barreira de crescimento, até acho que é uma parte financeira, institucional que tem um pouco de ressalva entrar no mercado por conta de transparência e privacidade, né? Então acho que alguns anos atrás não era um problema, mas aparentemente tá começando a ser, né? A gente ia ver algumas instituição tem esse tipo de problema.

Então aqui explicando basicamente o que é apeti, eh, a palavra homomorphe, né, semelhante transformar, basicamente é um esquema que a gente vai transformar plan em cypertext com mantendo a mesma estrutura pra gente conseguir trabalhar em cima desses desses dados ainda em criptografados, né? Então é isso, permite a computação em dados criptografados e sem revelar absolutamente nada e sem esse processo inteiro a gente consegue eh ser visível e acompanhar ele todo longo caso e sem conseguir deduzir nada sobre ele.

aqui alguns news cases, então, analytics, oracles, aí o pagamento, como tava falando suave, transferências confidenciais, eh, MV, que ainda é um ainda é um problema, existem diversas tentativas de soluções diferentes, de repente pode ser uma dessas soluções para resolver esse problema. Eh, e aí aí agentes privados e acho que você, Thago fez um exemplo de leilão né? Ah, de plantação, mas acho que funciona meio que parecido com com o leilão, né?

É, você faz todo o processo do leilão de forma secreta e no final você reserva. Você consegue garantir que todo o processo foi feito de forma correta, sem conseguir identificar o os lances do leilão. Eh, agora falando sobre aí já entrando na Feniênix em si, né? Então, o que que a gente tá desenvolvendo? No começo a fênix era uma L2. e mudou a estratégia para processor com a ideia de você rodar efeitinho em outras networkes, né? No momento a gente tá na na Arbitrum, só em testnet, na Arbitrum e na mainetória, né? E aí então é o que tá escrito aqui, uma

engine de computação offchain, processos dados smart contract sem fazer o declip, né? Quero mostrar aqui. Sei se dá leitura. Não, eu não vou entrar muito em código

aqui. Aí, já >> agora tá bom. Bom, então aqui eu vou explicar algum um pouco da da dos componentes de como funciona uma operação, as etapas quando você executa uma transação. Eu vou passar por alguns diferentes, né? Aqui primeiro é quando você faz um um encrypt, quando você eh sai do do ponto inicial do cliente com valor normal e pentext, você vai passar e vaiografar e

vai começar a trabalhar com esse com esse dado. Então aqui aqui desse lado eu tenho a aplicação. Então aqui é o é a aplicação com o cofre JS. Aqui é a SDK e a biblioteca em JavaScript que que o usuário vai interagindo. Pronto. Aqui no meio é a parte onchain. Então aqui no caso que eu falei, né, a gente tá na Etum e na árbitro. Então essa parte aqui nesse nessa etapa não passa por aqui. Então depois a gente volta ali. E aí aqui é a parte do coprocessador da Phoenix Cí composto por algumas partes que a gente vai passar um pouco por cada, né? Então aqui na parte quando você vai gerar esse primeiro valorado, eh, através da aplicação, o usuário, eu

quero lá fazer um swap fotografado, ele vai ele vai mandar esse valor, sei lá, um Etherum que seja, e dentro da da biblioteca JavaScript aqui, o SK, ele vai fazer essa essa etapa grafar e ao mesmo tempo ele vai gerar um ZCA e OK, group of knowled de de qu para garantir que esse que esse dado foi gerado de forma correta, que o usuário sabe aquele valor e e ele não tem nada de de errado com aquele valor. Então ele ele gera esse valor e gera os zap. E aí esse dado é mandado pro pro processador da da FINS. E aí

esse processador que vai mandar pro agregador. O agregador é basicamente é onde tá controlando todos os ponteiros onde e onde tá apontando para para esses dados fotografados na network privada da Pix. Aham. Sim, até até onde eu sei, eh, a parte a

biblioteca da Zama que a gente usa por trás, tá tá nessa parte aqui, ó, que é a parte onde faz a e tem uma parte aqui também, né, que é onde faz a parte matemática de de de gerar esse dado. Mas é toda a arquitetura aqui. Eu não sei da Zama, como funciona, mas eu eu imagino que não seja tão diferente. Mas aqui essa parte de arquitura é nossa, né? A biblioteca da Zama tá em alguns pontos >> aqui, né?

Isso >> então aqui não tem o contrato ainda. Essa parte é só offchain. A gente, eu vou passar depois, mas essa parte aqui é só a primeira etapa de ah, eu vou vou gerar esse dado, esse esse valor, esse número. Isso aqui é off. Parte do c. >> Ah, então é isso, a parte de a parte

inicial. E aí aqui também mais é aqui é a parte on chang. Então aqui é a parte onde onde vai pra transação? Então eh imagina que primeiro tem aquela etapa de você gerar esse esse esse cyber text e aí você vai mandar ele pr pra network. você vai executar o contrato e aí tudo que que você for usar na Phoenix, ele vai passar por esse contrato refeitir sol aqui. E aí esse e esse contrato ele vai chamar alguns outros contratos aqui, o Tes Manager e o ACL. Basicamente, eh, o ACL é para garantir que você tem permissão de de manipular aqueles CTEX, de você

adicionar um valor nele, que você eh fazer CCS, que vai vai mostrar se o usuário ou não pode trabalhar em cima daquele dado. E o Tesk manager vai emitir um evento que o COP vier, o COP vai tá ouvindo, né? E aí esse cofre o processador da vai vai ouvir esse evento com esse valor, vai fazer o trabalho, vai fazer a soma, a subtração ou qualquer que seja a operação e depois devolve pro pro contrato. É basicamente isso.

Não tem nenhum grande grande segredo. Deixa eu ver se eu perdi algumas coisas aqui. Pergunta assim. Tá? Eh, sobre onde tá esse dado. Então,

é aqui a gente como se fosse é uma outra network, né, privada do Penix. Onde tá dado? >> É, você consegue ver, você não consegue ver o o Play Tex, né? Você só é só um ponteiro pro na na natrio, na árbitro, você só tem o ponteiro para para o valor que tá acabado, né? Assim como todo mundo.

Não, não, não consegue. Ninguém consegue. É, é, é uma das próximas etapas aqui também. É, é isso que é a questão. Ela é uma uma network. Acho que aqui são duas coisas, são duas coisas, né? Tem o private, tem a network e tem a parte do do do COF, que onde vai realizar esse processamento, né?

ponteiro não, ponteiro tá na na na etérium, na árbitro, não tá tá um tempo. >> Não sei se eu entendi, ó, o ponteiro tá aqui na na host chain, que é a Etherum, e paraa outra network da Phênix, que é onde tá, é que é essa outra network. Então eu não tenho tanta informação, é, mas é são boas perguntas que eu preciso.

Depois a gente esclarece no Discord até como que funciona essa private. É, eu acredito que sim. Espero que sim também. Acho que é o que que faz mais sentido. E deixa eu ver a próxima etapa. É com zoom. É mesmo, pô. Era só ter pedido o zoom antes, pô.

Posso posso tirar um pouco o zoom só assim? Tá bom ainda. >> Então aqui é sobre o processo de de decrypt, sobre o processo de converter esse valor novamente para para PL test, né? Então aqui o processo começa no contrato. Então é um contrato, uma função, um valor que tá no contrato tá em Cypertext. E o usuário vai eh vai solicitar esse executar uma função que retorna esse dado e ele vai passar esse dado, ele vai mandar pro pr pra biblioteca do JSET, ó, quero quero saber o valor disso daqui, né? E aí ele manda manda pr pra

biblioteca o valor e a permissão. Ele vai assinar offchain, vai botar uma permissão para com as informações da carteira dele, né? E aí ele vai mandar isso para para cá, para thrash Network, que é quem vai poder, a gente vai entrar um pouco depois aqui, mas sobre quem quem consegue fazer esse esse deit e transformar, voltar esse valor normal para novamente para test. E aí a Fash World vai fazer o quê? vai pegar assinatura, vai pegar a permissão, voltar lá um chain na CL para confirmar se o usuário realmente tem permissão para verificar aquele valor. Esse no caso off chain, tá? tem um

e aí ele garantindo que o usuário pode fazer essa pode verificar, consultar aquele valor a permissão, ah, a cash network vai retornar esse valor pro usuário. Eh, e onchain não funciona, não funciona tão diferente assim. A única questão é que não passa pelo pelo JS aqui. Basicamente o contrato eh vai chamar o test manager. O Tesk manager vai fazer esse essa etapa aqui de interagir com a Fashual Network, garantir que ele o contrato quem quem quer que seja no tenha permissão para para converter aquele valor e vai retornar aquele valor. E aí, acho que a uma das discussões mais legais aqui e críticas

que eu concordo com muitas delas é sobre a FashW Network. Eu até vi acho que um pouco no Discord eh alguns comentários sobre isso. Acho que é um é um ponto bem legal e vou mostrar um pouco assim, tá bom? Sei a 20 vai é a TRW network.

Então, para você fazer o o a etapa inicial do encrypt, criptografar, é uma chave global. Network, ela tem uma chave, eh, você usa só a PUB, então qualquer um pode fazer sem sem nenhuma dificuldade. problema, a controvérsia, as coisas que têm que ser melhoradas é na outra etapa, na etapa de voltar pro test, que aí você precisa que a Thrash Network faça isso, mas aí como que você garante que essa Thrashfold Network tá totalmente segura, que ela não vai conseguir ver o meu dado em nenhum momento, que só eu no ponto final que eu vou conseguir ver, porque aí para fazer isso você precisa do do private key da Thrashfold Network que faz esse resultado, que é o que eu vou mostrar aqui agora.

É, acho que até você deve saber muito melhor que eu, né? Mas isso é um MPC, né? Não, ele tá totalmente offend, não é um

contrato, tá? E é um nem um servidor, né? servidor da da da fin de alguém quiser cumprimentar explicar de forma melhor para isso. Então sobre o que você tava falando aí é sabe sabe explicou muito melhor. Mas é isso. Network é a parte mais eh acho que é a parte mais complexa, mais difícil do do processo como um todo, de assim garantir que que é que é confiável todo o esquema, né? Então é o que você falou, o usuário vai mandar pra network a a intenção decifrar

o valor. E a Tw Network PC, ela vai trabalhar comos seus part members. E cada um vai, cada um vai, vai, vai, vai decifrar uma parte, né? Depois ele junta tudo, junta, você que junta tudo depois. E a parte Isso aí é com a com a chave do usuário

que ele consegue. >> Não, isso é como funciona. da sua carteira normal, da sua da sua da sua wallet que você tá usando. senão você, senão você coorden, o

coordenator aqui, ele vai ter acesso à informação, né? Então você precisa garantir que só o usuário vai chegar uma informação privada pro usuário e ele com a chave dele vai ter acesso à aquele valor, só ele. E aí o o legal de todo esse processo é que acho que a Zama também é é é a engenharia que usa tudo, né? Usa FT, usa Z, usa NPC, usa TI, usa usa simplesmente tudo. É uma uma mistura de tudo né? Se que me diga. E >> a gente tá em testnet, né? Tá pronto para usar em testnet ainda. Não, acho que não tem nenhum protocolo isso daqui que tá tá em Minnet, mas acho que tá bem perto. Tá bem perto. Talvez

fim do ano, ano que vem. Eu também não sei, né? Só tô chutando. Acho que a gente deve começar a ver mais. Tomara que esse ano ainda. E aí uma parte que é que é o que a gente faz hoje, que é um pouco problemática e já tá no no load de ser eliminado, é essa parte aqui do trust dealer, que é o que você falou no começo, a etapa inicial para ser formato é show network, hoje é um trusted dealer, então é alguém tá alguém dentro de um que tá que vai gerar, que vai pegar essa secret quebrar em várias e vai espalhar pela cash networking. Mas isso mesmo tando d objetivo. Objetivo é essa essa secret que nunca existir combinada, né? Ela tá ela exatamente o

que você tá falando. Só vai existir separada em vários pedaços e ela nunca existiu previamente como uma chave única. Ah, eu eu posso falar a minha opinião. Eu acho que eu acho que sim. Eu acho que tanto que até o que a Fênix quer, ela quer de eliminar essa parte. ela quer que eu saiba não. Não. E aí a gente quer eliminar isso, garantir que essa que essa secret ela nunca existiu. Elas ela

ela já surge de uma forma totalmente já distribuída dentro da trash over. E a gente não precisa ter um proceduro, né? Isso é uma ideia. A gente não precisa ter uma entidade que a gente vai confiar para para distribuir essa chave. Sim. Não sei, não sei se dizer.

É uma boa pergunta, mas não sei. Mas isso isso é uma preocupação também assim, é a quantidade de notas dessa porque ela depende, tudo tá em volta dela, né? Se ela der um problema ali, acabou, né?

É, eu também não sei que eu que Па. Aqui fecha o outro.

Não, acho que não. >> Ela é quem? >> Calma aí. Pode perguntar. Ó, a a última última atualização que eu

tive é que é não o modelo modelo de negócio ainda não tá totalmente definido. É uma preocupação também onde que assim como ele é o objetivo ele ser totalmente um serviço com chain para você trabalhar das duas networks. O modelo óbvio normal é isso, né? Uma fuma dentro da da transação, né? Porque a gente tá executando essa operação >> é porque é, você vai pagar, essas operações são mais caras, né? Você quando você vai executar, ele vai chamar esse contrato aqui, o FT Sol, que é onde vai fazer as operações e tal. Então, sua transação vai ser mais cara, naturalmente, vai ter mais. Só que eu não sei se a gente cobra uma F testet,

acho que não é nenhuma fia extra, né? Tipo lá, como que funciona? Então, para mim, na teoria, o dado tá

aqui, né? Tá num outro network, né? >> Sim, como assim? Espero que sim, né? Acho que sim. Acho que obtivo é esse, mas o custo é não sei a quê?

Não entendi. É uma boa pergunta. E quem faz? Uhum.

Não é válido demais. Não, mas é uma pergunta muito boa. >> Exato. Não, mas é isso. precisa garantir que a da tá funcionando e ela tem a durabilidade. pegar

É aí >> não são questionamentos. Eu >> eu vou eu vou eu vou questionar e a gente continua no Discord. Mas eu não tenho a resposta, mas é muito importante essa informação. Com certeza você não sabe quando quanto tempo quanto tempo o usuário vai demorar para paraquisitar. >> Sim, sim.

Com certeza. Cybertex vai ficar na própria no na própria network. sobre sobre a Não, não sei,

mas eu anotei aqui, me comprometo a investigar aqui falando um pouco mais, acho que a gente já discutiu exatamente esses pontos ali atrás. É só só retomando. Então, eh, qualquer pessoa pode usa para a escrevi errado aqui. Private escrevi errado. Eh, todo mundo pode usar auk para criptografar e a secretaria que é dividida pela rede, que é a responsável para fazer o declip depois no sistema de MPC.

E aí agora um pouco um pouco mais em prático como que funciona a implementação, como que funciona basicamente alguns exemplos de contrato, como que a gente inicia e como é é simples para quem já tá trabalhando com mais cont. Então aqui é é o que a gente comentou. O usuário vai gerar esse dado, vai interagir com contrato e aí você precisa garantir um um permissão para aquele usuário conseguir manipular aquele dado novamente no futuro. O usuário assina a permissão e depois ele ele pode

consultar aquele valor. Aqui é o que os componentes. Então, a parte a biblioteca Solidit, a parte biblioteca JavaScript e a gente falou. Não, não, não sei dizer, mas é que eu não, se ela for muito grande, ela pode ser um problema de de de tempo, de resposta, né, de demora. É,

acho que são os problemas comum do do acho que de todos os MPC, né? >> Não sei, não sei. Acho que, mas acho que não tá não é uma coisa para pedra assim. Acho que eu apostaria que não também, mas eu não tenho mais posta oficial. >> Sim, sim.

>> Então eu não entendo tanto de MPC, mas eu acho que não é o que é comum, né, usar MPCs mais abertas assim. Então aqui mostrando um pouco de de

código. Espero que ninguém durma, mas prometo que vai ser um pouquinho. Então, basicamente em solito. Daqui você vai importar a nossa biblioteca, que essa daqui é basicamente é ela é a principal. E aqui numa operação, então só uma soma simples, o o tipo aí existem dois tipos, né? Existe o esse in e o int s e wind. que basicamente o init é o que tá vendo, tá vindo do cliente, né? Quando o usuário manda, ele tem que mandar nesse dado porque além do dado que fado, ele tem, ele tem alguns metadados, tem outras informações a mais eh nessa nessa variável. E aí quando você for

manipular, quando você for interagir com com essa com essa variável, você precisa converter ela. Então você faz esse essa conversão que é isso aqui, t sente e transforma variável. E aí você faz uma operação normal, que é a soma. Então é bem simples mesmo. E aí você precisa lembrar de sempre definir o acesso. Toda vez que você, como ela é um ponteiro, toda vez que você alterar esse esse resultado, você vai estar apontando para outro lugar e você precisa eh definir quem vai ter o acesso a conseguir manipular esse dado num novo numo lugar. Então, sempre que você alterar algum alguma alguma variável, algum estado, você precisa decidir quem

quem tem o acesso a ele. Pode pode você atualizar quando você quiser, mas é aquilo assim, você imagina um balance de um token, né? Então você define quem você vai definir lá o usuário, o próprio usuário tem acesso ao ao dado dele ou então alguma alguma coisa que talvez o próprio contrato igual esse daqui, né? A laud. Então você você permite o contrato fazer alguma coisa com aquele dado né?

Exato. Aí você vai você vai trabalhar onde você vai dar essa permissão. Us o o contrato porque o usuário não consegue manipular o dado direto, né? vai comunicular só através de um smartphone. Não, acho tá perdido. Então, o cof ele é tem a parte você interage com ele através de duas maneiras, através do compact. Então, quando você aqui dá esse importe na PTI, esse contrato internamente vai tá

firmando lá o COP servidor e através da biblioteca do do JavaScript, mas de quem então dentro do cliente, usuário. >> Uhum. Não mais aqui o dis, então é tá permitindo o contrato a a ver esse resultado ou ou o é ao result. Então, isso, isso é bom.

É isso. >> Entendi. Entendi. Então acho que eu vou te dar o exemplo aqui. Talvez fique fique mais f explicando um pouco melhor isso aqui, né? Então imagina que essa result é só uma variável dentro do do contrato. E toda vez que você executa essa operação de você tá adicionando um valor nesse result. Então você toda vez que você altera esse result para permitir que o que o que esse contrato consiga executar essa essa segunda operação de novo, porque na próxima vez que você executar essa operação ED, se se o contrato não tiver

permissão, isso aqui vai dar vai reverter, porque o contrato não vai ter a permissão de de adicionar um valor nesse resulto, entendeu? Isso, isso. Nessa, nessa variável específica aí você pode definir quem que você quer dar permissão, contrato um usuário, por exemplo. >> É, a gente tem as duas versões, vou mostrar também.

A gente tem a outra versão do AL que é pro usuário que você vai só passar o endereço. Você passa a variável, o endereço de quem pode pode adicionar aqui a parte do cliente. Então também não tem muito para quem para quem já mexeu com a parte de fronte de Vienno, aqui segue segue o mesmo até usa por se a gente usa só o Wters por trás, acho que tem umas variações de vi também para quem para quem mexe nessa parte. Então aqui é onde você vai iniciar uma instância do do COVID js para

gerar esses esse cyber text e mandar vol. aqui. Então, aqui é só um exemplozinho de como faz essa parte no client. Eh, inicializa os, passo as informações da carteira do usuário aqui, conhecido, pode ser do provider, pode ser sua carteira normal do usuário e do injector né?

E você depois recebe esse incrí que é onde você depois vai mandar no no nação com contrato. Aqui é um pouco daquele mesmo outro slide, mostrando aqui um pouco mais. Aí é aquele exemplo que eu tava te falando, né? Tem tem o counter e aí você precisa set counter aqui você faz o set counter em cima do valor que o usuário passou por exemplo e depois você precisa dar um allow desse counter para você permitir que na próxima vez que você executar essa essa função, o contrato tenha permissão para você para fazer essa operação no coiso.

E aqui a mesma coisa diferenças aqui. Toda vez que você altera um valor você precisa permitir dar permissão novamente. Aí aqui é os dois métodos de de de fazer esse esse play text para hypertext para text. um chain blockchain que a gente já discutiu um pouco, né, sobre eh um pouco onde você vai usar cada um.

Então é o que a gente falou do leilão, você vai fazer um leilão, você quer que esse resultado final do leilão esteja público com chain. Então você consegue fazer um decryption chain e quando acaba o leilão você simplesmente faz o decrypt daquele valor e todo mundo consegue acessar aquele valor on change, mas você garante que durante todo o processo doilão aquele valor não não pode ser acessado, não pode ser visto como plan. E o o Ancio é a mesma coisa, mas ele é offin, que é quando o usuário vai solicitar através da da dessa ali de ele serve para isso. Usuário que o balance dele, esse esse esse valor nunca vai tá público com cha, mas o usuário

precisa ter acesso à aquele valor, então ele consegue conferir o valor delecha. E aí aquilo que a gente falou, sempre opchain, esse contrato só não tem um sobre as permissões. Então é é isso o isal. Então, eh, o que você vai permitir você reutilizar aquele valor porque você tá mudando, mudando o ponteiro dele, então você precisa garantir sempre a permissão. Então aqui a etapa, a etapa de uma

operação é essa daqui. Tá dando para entender? Então aqui o vai interagir essa parte inicial que vai interagir com contrato, Tesk Manager, que é os contratos internos da Pix, vai passar, vai verificar a a permissão, vai mandar pro, pro cof que vai fazer essa operação e dentro do cof ele vai mandar aqui a etapa a etapa sete. É um evento. Isso, isso, isso é o evento. vai mandar, vai, vai garantir a, vai validar a permissão, manda um evento, tá ouvindo esse evento, depois ele vai atualiza através depois ele atualiza aqui na Sim.

você para fazer com todas as operações em repetir, ele vai ter que passar por todo esse processo. Ah, mas aí ele vai ele vai ter que armazenar o valor depois, né? O valor final aqui da operação. Ele tá

armazenando lá no que o counter ele tá lá na tá lá, né? Vai, ele vai fazer essa operação e depois ele vai paraa outra camada. Agora entendi. Sim.

Eu entendi até lembro o ponto que ele falou que talvez eh não talvez em um momento não exista mais essa e esses dados fiquem na própria network que ele tá hospedado, né? É mais ou menos isso que você tá falando. Então ela não precisa estar numa outra network lá se for um dado que você não tá fazendo nada. Isso. Não precisa passar um ponteiro para outro lugar, não. Uhum.

aqui alguns exemplinos besta, mas eh para entender aqui que dentro do contrato ele não consegue saber que é entrando numa em design patterns, né? Então ele contrato não consegue, você não consegue fazer um comparativo normal se um dado é maior que o outro, esse dado tá em efetiv na na no biblioteca normal da Solit, né? Então é isso que o contrato tá enxergando. Você não consegue fazer uma comparação assim maior igual direto de Solidos. E aqui também você não consegue fazer uma ordenação dos números, porque é isso que a sua tá enxergando, é tudo dado para ele. Não não não não não significa nada, né?

Então, por isso que a gente precisa tomar, seguir alguns caminhos diferentes quando vai fazer algumas operações, algumas coisas, porque eh tem a noção que as operações normais dentro do contract não vão funcionar com esses dados né ografados. aqui alguns exemplos. Acho que é o último, é um exemplo eh disso. Então eu vou ler. É um ifelce, ele não vai funcionar com com IP simplesmente porque por ser todo tudo público, se você faz um if você vai conseguir saber o resultado daquele dado. Mas se você faz um if else consegue saber qual qual ramo que que o

smart contract tomou. Então, se você consegue saber qual ramo, você consegue saber o valor daquele dado, né? Se você tem um um bulean criptografado, se você faz um ifal, se você consegue saber se ele é tru ou false, porque você consegue saber se qual caminho ele ele seguiu. Então aqui é um um exemplo que você vai ter que sempre você que tem que fazer loops, né, qualquer essas comparações, você vai ser sempre ter que seguir todos os caminhos possíveis. Então, no caso de um FL, você precisa considerar os dois caminhos. O smart cont que ele vai ver os dois caminhos, ele não vai conseguir saber porque se você sabe qual caminho, você sabe o que que o que que é aquele dado, por favor.

É, tem a gente tem aí também o Não, não pode, pode. É que eu vou te mostrar. Você não pode usar o if normal do Solidity, >> você usa o da nossa própria biblioteca, que é o Select. E o Select aqui, caso ele vai, ele dentro da da Solidity, ele vai interpretar os dois caminhos. Por isso também se torna a operação mais cara, com certeza isso vai gastar mais. Sem,

mas é isso. É a biblioteca, ela vai considerar os dois caminhos sempre, porque você precisa considerar tudo. Então você não pode fazer um if um if else um um maior igual ou um maior. Você não pode fazer essas operações com esses dados. Eu precisa sempre usar a nossa biblioteca ou no caso da Zam da Zamo, claro, para fazer essas operações, essas comparações, esse select, porque aí a gente internamente a biblioteca vai fazer essa essa ramificação interna sem vazar na concha. Qual qual o ramo ramificação foi foi seguida nesse?

Vou dar off Não, a Fênix não, a Zama tem. A Zama tem as bibliotecas de FT off chain para outras utilidades, machine learning e tal. A fênix não, fênix é só é só o coprocessor, é só tá só nessa parte onrange mais outras coisas. Então é, lembra, lembra algumas coisas, lembra bastante o circon nesse sentido de você precisar até algumas coisas de de constrain do circone precisa diretamente garantir que você tá cobrindo todos os casos, que você eh tá validando se não se o dado não tá se não

tem nenhum link de informação em algum dado, mesmo se você não tá descriptografando, mas indiretamente talvez você consiga descobrir alguma informação e tal. atés apenas do do do do design pé. Então são algumas preca precauções que você precisa tomar a a usar uma uma bate pack de de isso aqui. É um convite para quem tiver aí na web Connect Novembro a gente vai ter um description day lá, um evento, um evento da Penix, né?

anúncios, palestras, focado em encryption, então não só é ter, vai ter de tudo. Espero estar lá, não tenho certeza ainda mas convido a todos e fazer um pouco de jabá, sem querer fazer muito jabá, a gente eh tá num momento muito bom, graças a quem veio antes, a América Latina tá ganhando um espaço legal. A Phoenix faz parte disso e a gente tá com um programa novo de de bount, tá querendo fortalecer, então acho que tem tem muita coisa para ser criada ainda, ainda é muito tudo

muito muito novo de repetir. Então para quem tiver participando de jacatron e quiser desenvolver alguma coisa e procurar e procurar que a gente tem tem boun, tem bastante coisa rolando e jeito de ajudar também projetos. E é isso. Mais perguntas, coisas? Não, espero que sim, né? Mas sei lá, né? Vocês Espero que eles me mandem, né? Ainda não tenho certeza, mas acho que sim.

Manda votação. Sì.

Aham. Que é o que você que adiciona zero, né? Adiciona o zero e aí o valor muda. Você não sabe se você adiciona zero ou não. Se você adiciona um valor ou se você adiciona zerção. Acho que eu tô entendendo um pouco.

Então, eu acho que acho que até o Luiz, né, deve saber entender melhor essa etapa, mas eu acho que quando você tiver executando smart contact dentro da sua etapa, você vai ainda vai vazar se você não fizer todas essas operações, porque você vai conseguir raspear etapa por etapa, upe por up code ali dentro da da chain. >> Exato. Algum momento ele vai ter que saber Cara,

é que é uma etapa mais se o valor é zero, teoricamente você não precisaria fazer nada, né? Mas no caso você precisa adicionar o zero para poder enganar que que fez alguma coisa. É isso.

Compartilhe. E aí, tem tem outros outros material para compartilhar também? Parou a gravação aí.