{"id":22331,"date":"2024-08-19T08:39:32","date_gmt":"2024-08-19T08:39:32","guid":{"rendered":"https:\/\/www.crossjoin.pt\/?p=22331"},"modified":"2026-06-29T12:48:15","modified_gmt":"2026-06-29T12:48:15","slug":"crossapp-from-cefi-to-defi","status":"publish","type":"post","link":"https:\/\/crossjoin.com\/pt\/crossapp-from-cefi-to-defi\/","title":{"rendered":"CrossApp: De CeFi para DeFi"},"content":{"rendered":"<h1 class=\"wp-block-heading\">Transformar desafios em oportunidades \u00e9 o que fazemos todos os dias.<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">A proatividade traz inova\u00e7\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No in\u00edcio de novembro de 2021, a Crossjoin anunciou uma parceria com um restaurante nas proximidades para fornecer refei\u00e7\u00f5es de alta qualidade com um desconto de 50% para os funcion\u00e1rios (tamb\u00e9m conhecidos como Crossers). A elevada ades\u00e3o a este benef\u00edcio criou um estrangulamento num \u00fanico Crosser, que tinha de recolher os recibos do restaurante de outros Crossers e inserir a informa\u00e7\u00e3o numa folha de c\u00e1lculo para calcular quanto a Crossjoin tinha de pagar nesse dia ao restaurante. Quando soube deste problema, a primeira coisa que me veio \u00e0 cabe\u00e7a foi \u201cBlockchain\u201d.<sup><\/sup><sup><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A 3 de dezembro de 2021, o meu interesse em sistemas distribu\u00eddos i<sup><\/sup>levou-me a escrever um e-mail ao diretor executivo com uma proposta para resolver o problema atrav\u00e9s da cria\u00e7\u00e3o de um sistema de pagamentos baseado numa blockchain. Decidi ent\u00e3o consultar outros membros da Crosser sobre esta ideia, e isto foi<sup><\/sup>Foi quando conheci um colega que tinha uma ideia semelhante. Na altura, eu tinha mais tempo livre do que ele porque estava \u00e0 espera que um projeto come\u00e7asse, por isso, no in\u00edcio, tive de intervir e impulsionar esta iniciativa de inova\u00e7\u00e3o.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Usar a ferramenta certa para o trabalho<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Todos os engenheiros sabem que escolher a tecnologia certa \u00e9 crucial e pode impactar a efici\u00eancia, a escalabilidade e o sucesso do projeto. Investimos muito tempo nesta parte. As blockchains s\u00e3o relativamente novas. No entanto, a variedade de sabores \u00e9 avassaladora.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Temos blockchains que s\u00e3o geridas de forma privada por uma organiza\u00e7\u00e3o (com permiss\u00f5es), como o Hyperledger Fabric e o Sawtooth. Por outro lado, temos blockchains p\u00fablicas, e toda a gente pode criar aplica\u00e7\u00f5es DeFi e escrutinar cada transa\u00e7\u00e3o que \u00e9 submetida, como a Bitcoin, a Ethereum e a Algorand.<sup><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Na busca pela melhor ferramenta para o trabalho, decidimos n\u00e3o avan\u00e7ar com uma blockchain autorizada porque cada participante teria de executar um n\u00f3 para fazer parte da mesma <sup><\/sup>o protocolo e ter garantias de que n\u00e3o existe um participante bizantino a alterar as transa\u00e7\u00f5es a seu favor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Escolhemos <strong>Algorand<\/strong>, uma cadeia de blocos (*blockchain*) sem permiss\u00f5es, porque oferece tudo o que precisamos, tais como:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Os tokens fung\u00edveis e n\u00e3o fung\u00edveis s\u00e3o tratados como cidad\u00e3os de primeira classe.<\/li>\n\n\n\n<li>Finalidade de bloco r\u00e1pida, por volta de 3,3 segundos.<\/li>\n\n\n\n<li>Baixas taxas de transa\u00e7\u00e3o.<\/li>\n\n\n\n<li>Escrito em Golang, tornando o c\u00f3digo da blockchain direto de analisar.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Para o *front-end*, tivemos outra decis\u00e3o dif\u00edcil a tomar entre escrever as aplica\u00e7\u00f5es na respetiva linguagem nativa da plataforma, mantendo c\u00f3digos-fonte diferentes, ou escolher <strong>Flutter com Dart<\/strong> como um \u00fanico c\u00f3digo-fonte que compilaria para as v\u00e1rias plataformas (Android e iOS). Decidimos optar pela segunda op\u00e7\u00e3o porque \u00e9ramos apenas dois programadores e n\u00e3o pod\u00edamos dispor do tempo extra para desenvolver a mesma coisa duas vezes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Desafios<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A Web3 era um terreno virgem para n\u00f3s. Na minha tese, tinha alterado c\u00f3digo em blockchains para integrar assinaturas de limiar, mas nunca tinha tido a oportunidade de escrever um contrato inteligente para resolver um problema real.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O primeiro desafio surgiu quando come\u00e7\u00e1mos a desenvolver o contrato inteligente puramente em TEAL (linguagem de m\u00e1quina de pilha). A nossa primeira solu\u00e7\u00e3o foi simples de escrever, mas dif\u00edcil de manter, pelo que adot\u00e1mos o PyTEAL como a nossa abstra\u00e7\u00e3o sobre o TEAL.<sup><\/sup><sup><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isto levou ao nosso segundo desafio: o ritmo acelerado de evolu\u00e7\u00e3o da Algorand e de outras tecnologias Web3 \u00e9 impressionante. Coisas que inicialmente t\u00ednhamos desenhado e n\u00e3o consegu\u00edamos implementar tornaram-se poss\u00edveis passadas apenas algumas semanas. Tivemos de rever a nossa solu\u00e7\u00e3o 2 ou 3 vezes para usar a melhor abordagem para o problema. No momento em que escrevo isto, existem<sup><\/sup> S\u00e3o novos ab<sup><\/sup>abstra\u00e7\u00f5es sobre TEAL e frameworks de testes unit\u00e1rios que poder\u00edamos adotar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Um dos nossos \u00faltimos desafios foi garantir que n\u00e3o haveria problemas de seguran\u00e7a no contrato inteligente. Resolv\u00edamos este problema analisando diferentes caminhos de execu\u00e7\u00e3o e simulando transa\u00e7\u00f5es bizantinas.<sup><\/sup><sup><\/sup><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Para onde ir a partir daqui?<sup><\/sup><sup><\/sup><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O primeiro conceito da Crossapp tinha um objetivo simples: permitir que os Crossers pagassem o almo\u00e7o recorrendo a um benef\u00edcio de copagamento da empresa. Na minha opini\u00e3o, foi um sucesso;<sup><\/sup> no entanto, h\u00e1 margem para melhorias e para a adi\u00e7\u00e3o de novas funcionalidades \u00e0 aplica\u00e7\u00e3o.<sup><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por exemplo, poder\u00edamos adicionar pontos de fidelidade ou pontos de fitness<sup><\/sup>para introduzir um pouco de gamifica\u00e7\u00e3o nas tarefas do dia-a-dia. Em resumo, esta aplica\u00e7\u00e3o oferece in\u00fameras oportunidades que ainda podemos explorar, e encorajo todos os Crossers a impulsionarem a inova\u00e7\u00e3o, ajudando-nos a tornar a nossa Crossapp ainda melhor ou promovendo novas iniciativas, tal como eu fiz.<sup><\/sup><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">por: <strong>Jorge Pereira<\/strong> Consultor<\/p>","protected":false},"excerpt":{"rendered":"<p>Turning challenges into opportunities is what we do every day. Proactivity brings Innovation In early November 2021, Crossjoin released a partnership with a nearby restaurant to<span class=\"excerpt-hellip\"> [\u2026]<\/span><\/p>\n","protected":false},"author":2,"featured_media":22342,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rs_blank_template":"","rs_page_bg_color":"","slide_template_v7":"","footnotes":""},"categories":[74],"tags":[],"class_list":["post-22331","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles"],"acf":[],"_links":{"self":[{"href":"https:\/\/crossjoin.com\/pt\/wp-json\/wp\/v2\/posts\/22331","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/crossjoin.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/crossjoin.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/crossjoin.com\/pt\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/crossjoin.com\/pt\/wp-json\/wp\/v2\/comments?post=22331"}],"version-history":[{"count":1,"href":"https:\/\/crossjoin.com\/pt\/wp-json\/wp\/v2\/posts\/22331\/revisions"}],"predecessor-version":[{"id":27373,"href":"https:\/\/crossjoin.com\/pt\/wp-json\/wp\/v2\/posts\/22331\/revisions\/27373"}],"wp:attachment":[{"href":"https:\/\/crossjoin.com\/pt\/wp-json\/wp\/v2\/media?parent=22331"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/crossjoin.com\/pt\/wp-json\/wp\/v2\/categories?post=22331"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/crossjoin.com\/pt\/wp-json\/wp\/v2\/tags?post=22331"}],"curies":[{"name":"bom jogo","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}