Estruturando diferentes aplicações com Blockchain
A tecnologia Bockchain é ideal para transações de informações que necessitam de confiança, como no caso de bitcoin e outras criptos, o que justifica seu crescimento. Neste artigo para a SBC Horizontes, os autores Roben e Avelino, pesquisadores da área, discutem-na sob uma visão de quatro camadas e apresentam usos potenciais em diferentes áreas. Boa leitura!
Clodis Boscarioli – Editor da Coluna Artigos
Estruturando diferentes aplicações com Blockchain
Por Roben Castagna Lunardi e Avelino Francisco Zorzo
Após mais de 10 anos da primeira transação da moeda digital Bitcoin, inicialmente idealizada como forma de realizar transferências monetárias garantindo privacidade (sem que um usuário precisasse se identificar com dados pessoais) e com controle distribuído (sem um ponto único de falha ou ataques) (NAKAMOTO, 2008), blockchain se popularizou e hoje existem diferentes aplicações que a utilizam para estruturar sua forma de funcionamento. Com o passar do tempo, novas implementações de blockchain surgiram com diversos aprimoramentos, dentre eles, a possibilidade de utilização em ambientes corporativos (controlados por uma ou mais empresa) e até a execução de programas pelos participantes da blockchain de forma distribuída. Não é por acaso que, nos últimos anos, blockchain e suas aplicações aparecem constantemente entre as 10 tendências de negócios para os próximos anos (GARTNER, 2020).
Uma blockchain utiliza conceitos comuns na área de Computação, ou seja, lista encadeada, função resumo (hash functions), criptografia assimétrica e redes peer-to-peer (P2P). A lista encadeada é utilizada para organizar os blocos da blockchain; função resumo é utilizada para o encadeamento entre blocos e também para garantir integridade destes blocos; criptografia assimétrica é utilizada para assinatura de transações armazenadas nos blocos e para identidade dos participantes da blockchain; e, redes P2P são utilizadas para a distribuição em diversos nós, eliminando, por exemplo, ponto único de falha. Outros conceitos fundamentais aplicados à blockchain são os de algoritmos de consenso, utilizados para inclusão de blocos, e contratos inteligentes (smart contracts), para execução de código.
Diferentes blockchains foram propostas para que pudessem se adaptar aos diferentes problemas existentes no mundo real. Por exemplo, após o surgimento do Bitcoin, blockchains com diferentes propósitos foram criadas, tais como: Namecoin para endereçamentos de sites de forma distribuída, Ethereum para possibilitar o uso de contratos inteligentes, Hyperledger (inicialmente com o framework Fabric) para prover ambiente de blockchain para ambientes organizacionais, Ripple para transações financeiras internacionais, IOTA para pagamentos Máquina-a-Máquina (M2M).
BLOCKCHAIN: UMA VISÃO EM 4 CAMADAS
Para entender as diferenças no funcionamento entre os sistemas de blockchain, utilizamos a seguir uma visão de 4 camadas: camada de comunicação, camada de consensos, camada de dados e camada de aplicação (ZORZO et al., 2018).
Camada de Comunicação. Inicialmente, blockchain foi introduzida como uma solução onde qualquer nó poderia fazer parte igualmente do sistema, praticamente sem controle de quais nós poderiam ingressar ou participar da rede, em um ambiente Peer-to-Peer (P2P) completamente distribuído. Porém, após diferentes propostas, estes conceitos foram flexibilizados e novas nomenclaturas surgiram.
Em relação ao acesso à blockchain tem-se a Pública, Privada ou Consórcio. Pode-se dizer que a blockchain é pública quando não há restrição de qual usuário pode interagir e fazer parte da rede. Por exemplo, na rede do Bitcoin qualquer usuário pode realizar uma transação ou acessar dados da blockchain. Por outro lado, uma entidade terá regras para permitir o acesso de usuários em uma rede. Por exemplo, a Ethereum é uma blockchain que permite ser utilizada como pública (também conhecida como rede principal da Ethereum), mas também é possível configurar ambientes privados com controles para o acesso. Similar às redes privadas, uma blockchain do tipo consórcio tem controle de acesso, mas é gerida por um conjunto de entidades/órgãos (DEDEOGLU et al., 2020).
Permissionless ou Permissioned. Em uma blockchain permissionless qualquer usuário (nó) na rede pode gerir e inserir informações na blockchain. Desta forma, não existe distinção entre os nós, todos podem atuar como clientes (apenas usar a blockchain) ou atuar como nós responsáveis por manter o seu funcionamento. Muitas blockchains utilizadas para trocas de criptomoedas, que tem como propósito a privacidade (por exemplo, Bitcoin, Ethereum, Litecoin, etc), são do tipo permissionless, especialmente para que seja evitado o controle centralizado da produção de informação. Por outro lado, blockchains permissioned tem por objetivo controlar a inclusão de informações. Este tipo de solução é adotado especialmente por blockchains para ambientes corporativos e governamental, onde quem tem acesso à informação e à inserção da informação deve ser um número restrito de nós, por exemplo, Ripple, Hyperledger Fabric, dentre outras (DEDEOGLU et al., 2020).
Dependendo do acesso e controle da blockchain, diferentes arquiteturas entre os nós podem ser adotadas. As 3 principais arquiteturas são: totalmente distribuída, hierárquica e blockchain como serviço (Blockchain-as-a-Service – BaaS). Na arquitetura totalmente distribuída, todos os nós podem se comunicar diretamente e ter acesso à blockchain. Na arquitetura hierárquica existe uma divisão de tarefas entre os nós, podendo haver 2 ou mais tipos de nós na blockchain. Como exemplo de arquitetura hierárquica, podemos pensar em uma blockchain onde podem existir nós que irão produzir e solicitar inclusão de informação, nós que irão processar, inserir e validar a informação, nós que irão validar a informação, e nós que irão prover acesso à informação (LUNARDI et al., 2019). Em arquiteturas do tipo BaaS, a blockchain é utilizada como um serviço ou terceira parte confiável (similar ao modelo de entidades certificadoras).
Camada de Consenso. Algoritmos de consenso são uma parte vital para garantir confiança entre nós em um ambiente não confiável. Para garantir a confiança de que os blocos na blockchain são legítimos, é necessário verificar a validade de um novo bloco ao inseri-lo. Desta forma, os nós (ou parte deles) devem validar cada inserção. Para realizar esta validação, esses nós devem atingir um consenso entre eles. Esse processo de consenso é atingido por meio de um algoritmo de consenso utilizado pela blockchain. Todavia, cada blockchain pode utilizar uma variação de diferentes algoritmos de consenso. Dentre os principais algoritmos de consenso estão o Proof-of-Work (PoW) e Practical Byzantine Fault Tolerance (PBFT).
- Proof-of-Work (PoW). A prova de trabalho (Proof-of-Work) é um tipo de algoritmo de loteria, ou seja, um determinado valor sorteado é o vencedor. Usualmente no PoW é realizado um cálculo de valor hash do cabeçalho do bloco candidato a ser inserido na blockchain. A dificuldade na geração deste hash pode ser definido, usualmente estabelecendo a quantia de bits zero que devem existir mais à esquerda desse hash. Uma vez resolvido este quebra-cabeça, a informação é enviada para os demais nós da rede, que ao identificar que o valor está de acordo com a regra, o bloco é então inserido na blockchain. Esta verificação realizada pelos demais nós é muito rápida, diferentemente da prova de trabalho. Existem diferentes algoritmos de hash que podem ser utilizados (SHA256, SHA3 etc.) e diferentes formas de operação do protocolo e validação. Uma desvantagem deste tipo de algoritmo se encontra no alto uso computacional (processamento, memória, energia etc.). Diferentes variações do PoW são utilizadas em blockchains como Bitcoin, Ethereum, Litecoin, IOTA, dentre outras.
- Practical Byzantine Fault Tolerance. O PBFT é um algoritmo que busca o consenso por votação. Para isso, um líder (que é eleito em cada rodada de consenso) irá enviar um bloco para todos os nós. Cada nó verifica a validade das informações e envia seu voto para os demais nós da rede. Assim que mais de ⅔ dos nós votarem favoravelmente em uma janela de tempo definida, o novo bloco é inserido, caso contrário, um novo líder inicia uma nova rodada com um novo bloco. Um grande problema encontrado por esses algoritmos é a necessidade da troca de muitas mensagens. Por este motivo, algumas variações buscam reduzir o número de troca de mensagens necessárias ou reduzir o número de nós que participam do consenso. A categoria de algoritmos conhecida como consenso bizantino (que inclui as variações/adaptações como o dBFT, FBA e protocolo de consenso do Ripple) é o mais utilizado em blockchains permissionadas, tais como Hyperledger Fabric, Ripple, Stellar e outros.
O algoritmo de consenso tem impacto na aplicação da blockchain. Um algoritmo com maior demanda de processamento pode não ser adequado em um ambiente com nós limitados, enquanto um algoritmo que utiliza votação pode gerar maior número de mensagens (algumas adaptações buscam reduzir esses problemas). Ainda, existem diversos outros algoritmos de consenso, como Proof-of-Stake, Proof-of-Authority, Proof-of-Burn. Desta forma, algumas blockchains permitem o uso de diferentes algoritmos de consenso dependendo da aplicação (LUNARDI et al., 2019).
Camada de Dados. Blockchain recebeu este nome devido a característica de como os seus dados são organizados, ou seja, através de uma cadeia de blocos (tradução livre para blockchain). Desta forma, todas as blockchains possuem algumas características comuns, dentre elas o uso de assinaturas digitais e algoritmos de hash. Em todos os sistemas de blockchain, o usuário precisa de uma carteira, isto é, um par de chaves assimétricas. Desta forma, o usuário é representado por sua chave pública (ou endereço gerado a partir dela). Sempre que este usuário realiza uma operação, este deve assinar essa solicitação com sua chave privada. Os outros usuários poderão conferir a autenticidade da operação analisando a assinatura digital, o dado original, e a chave pública. O algoritmo de hash, por sua vez, é utilizado para garantir a integridade dos dados. Esse algoritmo pode ser utilizado em diferentes partes do sistema, no consenso (no caso de algoritmo de PoW), para encadear os blocos (usando o hash do bloco anterior) ou para assegurar a integridade das transações em um bloco. Na Figura 1, pode ser visto um exemplo de utilização de hash para encadear os blocos.
Figura 1. Blocos ligados por hash em uma blockchain
Existem diferentes formas de estruturar os dados de uma blockchain. Usualmente, existem 2 partes principais: cabeçalho e transações. O cabeçalho é composto por um conjunto essencial de informações para que seja garantido o funcionamento da blockchain (informações de versão dos algoritmos utilizados, por exemplo), o hash do cabeçalho do bloco anterior (para garantir a integridade dos blocos anteriores, uma marca de tempo (Timestamp na Figura 1), além de outras informações específicas de cada blockchain (como dificuldade de um algoritmo de PoW). Ainda, o cabeçalho usualmente utiliza uma sumarização de todas as transações que deve ser incluída no cabeçalho (representado como TxRoot na Figura 1). As formas mais comuns de realizar essa sumarização são através da utilização de uma Merkle Tree (como por exemplo, no Bitcoin) ou Merkle Patricia Trie (utilizado na Ethereum). Esses algoritmos garantem que qualquer modificação em uma transação seja refletida na sumarização (TxRoot) e facilmente identificada, tornando o bloco inválido. Existem outras formas de estruturar as transações, tais como o uso de grafos acíclicos direcionados (DAG), usado no Tangle (algoritmo proposta na IOTA) (POPOV, 2016) ou em uma cadeia de hashes como proposta na SpeedyChain (Lunardi et al., 2019).
Existe uma discussão sobre a terminologia, em especial que alguns sistemas deveriam ser tratados como distributed ledgers, pois algumas estruturas não formam uma sequência única de blocos (como o Tangle na IOTA) ou parte das informações são armazenadas fora da estrutura (como no R3 CORDA). Porém, ainda não existe consenso em relação a nomenclatura mais adequada.
Camada de Aplicação. As blockchains podem ser utilizadas como base para diferentes aplicações tais como sistemas para controle de acesso em na Internet das Coisas (Internet of Things – IoT), controle de ciclo de vida de produtos, em redes de cadeia de suprimentos, prontuários médicos, dentre outros. Para isso é necessário que seja fornecido uma interface segura e compatível com diferentes plataformas. Desta forma, diferentes blockchains propõem a adoção de interfaces para comunicação com os nós da blockchain.
Algumas blockchains vão além de uma simples interface de acesso aos dados, permitindo que os usuários possam requisitar a execução de programas ou trecho de códigos por outros nós, de forma que o resultado seja validado e salvo de forma segura na blockchain. Esta funcionalidade é chamada de smart contracts (contratos inteligentes, em tradução livre). Os smart contracts são trechos de códigos (ou um conjunto definido de operação em algumas blockchains) que podem ser executados na blockchain. Existem diferentes propostas, mas a linguagem Solidity vem sendo a mais utilizada para este fim. No caso de muitas blockchains que possuem smart contracts, o código fonte deve ser compilado e enviado para a blockchain. Uma boa prática em smart contracts, é a definição de quem poderá solicitar execução de cada função/trecho de código, evitando que usuários não autorizados solicitem a alteração de uma variável do código, por exemplo.
Desta forma, blockchains podem ser utilizadas como base para a execução de uma extensa gama de aplicações. A seguir, serão apresentados alguns potenciais usos de blockchains, com grande atenção da Academia e da Indústria.
POTENCIAIS USOS DE BLOCKCHAINS
Nos últimos anos, tanto as pesquisas acadêmicas quanto empresas vêm propondo diferentes soluções – além de apenas como criptomoeda – com o uso de blockchains. Muitas dessas aplicações ainda passam por fase de amadurecimento, especialmente pela novidade e falta de conhecimento em relação à tecnologia. Dentre as principais áreas que estão recebendo grande atenção, destacam-se o Governo Eletrônico, IoT, Sistemas de Saúde, e Programas de Fidelidade.
- Governo Eletrônico. Inicialmente, a tecnologia de blockchain foi vista como um possível problema para governos de diferentes países. Este fato se deu, principalmente, para o uso de criptomoedas em atividades ilegais. Com o passar do tempo, e compreensão da tecnologia, diferentes governos estão propondo a adoção de blockchain para solucionar problemas em sistemas fundamentais do governo. Um exemplo interessante é o caso de controle de migração em países. O Homeland Security dos Estados Unidos estuda utilizar blockchain para controle de movimentos migratórios, evitando problemas no registro de cada passo da movimentação de pessoas, bem como evitando a adulteração de informações US Homeland Security (2019). Outro exemplo interessante para o uso de blockchain em sistemas governamentais é a possibilidade de voto eletrônico seguro, como o que vem sendo avaliado em diferentes países, com destaque para a Coréia do Sul (ZDNet, 2020). Recentemente, o governo brasileiro publicou Decreto Nº 10.332, de 28 de abril de 2020 no qual prevê “Disponibilizar, pelo menos, nove conjuntos de dados por meio de soluções de blockchain na administração pública federal até 2022″ (BRASIL, 2020).
- Internet das Coisas. Os primeiros sistemas de blockchains possuíam características que tornariam inviável o uso em IoT: alta latência, alto consumo de recursos computacionais, e alto consumo de energia. Porém, com o passar do tempo, diferentes soluções foram propostas com o objetivo de reduzir a latência e não sobrecarregar os dispositivos de IoT. Em sua maioria, propostas que adotam blockchain e IoT usam algum modelo de hierarquia dos nós (DORRI, KANHERE, JURDAK e GAURAVARAM, 2017), (LUNARDI, MICHELIN, NEU e ZORZO, 2018) , reduzindo o consumo de energia, processamento ou memória dos dispositivos. Além disso, algumas propostas adotam algoritmos de consenso mais rápidos para que seja possível reduzir a latência (POPOV, 2016), (DEDEOGLU et al., 2020). E ainda, algumas soluções propõem estrutura de dados diferentes para facilitar ainda mais a sua adoção (POPOV, 2016), (LUNARDI, MICHELIN, NEU e ZORZO, 2018). Além da possibilidade de salvar os dados de forma segura, garantindo a origem e integridade dos dados, os dispositivos de IoT podem se beneficiar da execução de códigos de forma distribuída. Com o uso de smart contracts, tarefas podem ser delegadas para os nós da blockchain. Além disso, poderia se garantir, por exemplo, uma atualização de firmware igual para todos os dispositivos.
- Sistemas de Saúde. Sistemas de saúde, em geral, lidam com quantidades elevadas de dados de diferentes tipos. Hospitais, por exemplo, devem lidar com dados de órgãos reguladores, dados governamentais, dados de suprimentos e compras, dados de equipamentos, dados de funcionários, dados de pacientes, dentre outros. A maioria destes dados possuem sigilo ou tem potencial de ter grande impacto em caso de adulteração ou registro indevido. Desta forma, blockchains podem auxiliar na garantia da integridade dos dados e, até mesmo, na execução de contratos inteligentes para lidar com fornecedores e pacientes. Além disso, do ponto de vista do paciente (Figura 2), um sistema com blockchain poderia facilitar o acesso e registro ao seu histórico/prontuário, de forma descentralizada, por diferentes entidades ou pessoas (LUNARDI, 2019b). Um grande desafio nestes sistemas é a necessidade de privacidade dos dados, visto que o paciente deve ter a capacidade ocultar determinadas informações de caráter pessoal.
Figura 2. Área da saúde e blockchain
- Programas de Fidelidade. Seguindo o uso de criptomoedas, tokens (fichas em tradução livre) são extremamente populares em aplicações de blockchains. Um token nada mais é do que uma moeda gerenciada por um smart contract. A relação entre tokens e programas de fidelidade é direta, 1 token pode representar 1 ponto em um programa de fidelidade (AGRAWAL et al., 2018). Adicionalmente, pode se estabelecer valor comercial deste token (ou programa de fidelidade) para a troca por descontos e produtos, até mesmo através do uso de smart contracts em blockchains públicas, como a Ethereum. Desta forma, a transferência e troca de pontos pode ser facilitada, e o histórico de pontuação pode ser transparente para o usuário, além de reduzir os custos de manutenção para a companhia do programa de fidelidade.
- Registros Cartoriais. Sistemas de cartórios podem se beneficiar de propriedades intrínsecas das blockchains, tais como a criação de registros imutáveis, histórico de todas as transações registradas, e identificação única dos usuários. Devido a isto, diferentes propostas comerciais foram introduzidas nos últimos anos, com a utilização de sistemas que utilizam diferentes frameworks de blockchain, como PropertyClub e RealBlocks (DALEY, 2019), ou em parcerias com empresas e governo (CHROMAWAY, 2017).A maioria das soluções adotam blockchains permissionadas, na qual os cartórios possuem o controle de acesso dos usuários. No Brasil, existem algumas iniciativas para adoção de blockchains para registros cartoriais. Um exemplo utilizando a blockchain Ethereum (pública e permissionless) para registro de ata notarial foi apresentado pelo 2º Tabelionato de Notas de São Paulo em 2019 (ANOREG, 2019). Blockchain pode mudar como os usuários transacionam imóveis, autenticam documentos, e realizam negócios reconhecidos e autenticados, porém, regulamentações são necessárias para sua implantação.
PALAVRAS FINAIS
Blockchain evoluiu rapidamente em pouco mais de 10 anos de existência. Milhares de propostas acadêmicas e comerciais foram disponibilizadas nesse período, com mudanças em diferentes aspectos arquiteturais, criptográficos, de protocolos e de aplicações. Muitas empresas e governos perceberam o potencial da tecnologia, ganhando atenção da academia, da indústria e da mídia. Todavia, como apontado por diferentes órgãos (como os relatórios da Gartner (2020)), blockchain não está ‘madura’, e ainda precisa evoluir, seja em aspectos técnicos ou em ferramental e aspectos práticos para a sua adoção. Por ora, ficamos a nos perguntar: Como será o cenário quando essa tecnologia chegar à sua ‘maioridade’?
Referências
AGRAWAL, D., JURECZEK, N., GOPALAKRISHNAN, G., GUZMAN, M. N., MCDONALD, M., & and KIM, H. (2018) Loyalty Points on the Blockchain. Business and Management Studies 4(3), 80-92, September 8, 2018.
ANOREG. 2º Tabelião de Notas de São Paulo faz sua primeira ata notarial de Blockchain (2019). Disponível em: https://www.anoreg.org.br/site/2019/11/19/2o-tabeliao-de-notas-de-sao-paulo-faz-sua-primeira-ata-notarial-de-blockchain/, acesso em 02 de Maio de 2020.
BRASIL (2020). DECRETO Nº 10.332, DE 28 DE ABRIL DE 2020. Disponível em: http://www.planalto.gov.br/ccivil_03/_ato2019-2022/2020/decreto/D10332.htm, acesso em 02 de Maio de 2020.
CHROMAWAY (2017). The Land Registry in the blockchain – testbed: A development project with Lantmäteriet, Landshypotek Bank, SBAB, Telia company, ChromaWay and Kairos Future (2017). Disponível em: https://chromaway.com/papers/Blockchain_Landregistry_Report_2017.pdf, acesso em 02 de Dezembro de 2020.
DALEY, S. 17 Blockchain Companies Boosting the Real Estate Industry, In Builtin, 2019. Disponível em: https://builtin.com/blockchain/blockchain-real-estate-companies, acesso em 02 de Maio de 2020.
DEDEOGLU, V., JURDAK, R., DORRI, A., LUNARDI, R. C., MICHELIN, R., ZORZO, A. F., & Kanhere, S. S. (2020) Blockchain technologies for IoT. In Advanced applications of Blockchain technology (Studies in Big Data, Volume 60). Springer, Singapore, pp. 55-89.
DORRI, A., KANHERE, S. S., JURDAK, R., & GAURAVARAM, P. (2017). Blockchain for IoT security and privacy: The case study of a smart home. In 2017 IEEE International Conference on Pervasive Computing and Communications Workshops (PerCom Workshops), pp. 618-623. IEEE.
GARTNER. (2020) Gartner top 10 strategic technology trends for 2020. Disponível em: https://www.gartner.com/smarterwithgartner/gartner-top-10-strategic-technology-trends-for-2020/, acesso em 02 de Maio de 2020.
LUNARDI, R. C., MICHELIN, R. A., NEU, C. V., & ZORZO, A. F. (2018). Distributed access control on IoT ledger-based architecture. In 2018 IEEE/IFIP Network Operations and Management Symposium (NOMS). pp. 1-7. IEEE.
LUNARDI, R. C., MICHELIN, R. A., NEU, C. V., NUNES, H. C., ZORZO, A. F., & KANHERE, S. S. (2019). Impact of consensus on appendable-block blockchain for IoT. In 16th EAI International Conference on Mobile and Ubiquitous Systems: Computing, Networking and Services (MobiQuitous ’19), pp. 228–237. ACM.
LUNARDI, R. C., NUNES, H. C., BRANCO, V. D. S., LIPPER, B. H., NEU, C. V., & ZORZO, A. F. (2019b). Performance and Cost Evaluation of Smart Contracts in Collaborative Health Care Environments. In 15th International Conference for Internet Technology and Secured Transactions (ICITST-2019), London, UK, pp. 1-6.
NAKAMOTO, S. (2008) Bitcoin: A peer-to-peer electronic cash system. Disponível em: http:// bitcoin.org/ bitcoin.pdf, acesso em 02 de Maio de 2020.
Popov, S. (2016) The Tangle. Disponível em: https://iota.org/IOTA_Whitepaper.pdf, acesso em 02 de Maio de 2020.
US Homeland Security (2019). Snapshot: S&T’s Blockchain program focuses on security, privacy, interoperability & standards. Disponível em: https://www.dhs.gov/science-and-technology/news/2019/07/09/snapshot-blockchain-and-dhs, acesso em 02 de Maio de 2020.
ZDNet (2020). South Korea to develop blockchain voting system. Disponível em: https://www.zdnet.com/article/south-korea-to-develop-blockchain-voting-system/#ftag=RSSbaffb68, acesso em 02 de Maio de 2020.
ZORZO, A. F., NUNES, H. C., LUNARDI, R. C., MICHELIN, R. A., & KANHERE, S. S. (2018). Dependable IoT using blockchain-based technology. In 2018 Eighth Latin-American Symposium on Dependable Computing (LADC), IEEE. pp. 1-9.
Autores:
Roben Castagna Lunardi é Associado da Sociedade Brasileira de Computação (SBC) e da IEEE. Possui bacharelado em Ciência da Computação pela Universidade Federal de Santa Maria (UFSM) e mestrado em Computação pela Universidade Federal do Rio Grande do Sul (UFRGS). Atualmente é professor do Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul – Campus Restinga (IFRS – Campus Restinga) e doutorando em Ciência da Computação pela Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS). Tem experiência na área de Ciência da Computação, com ênfase em Redes de Computadores, Segurança de Sistemas e IoT, atuando principalmente nos seguintes temas: Blockchain, Algoritmos de Consenso e Blockchain em ambientes IoT. Participou de diferentes projetos com Blockchain, sendo um dos autores da SpeedyChain (registrada no INPI). Ainda, realizou intercâmbio em 2018 – financiado pela Australian Academy of Science – na University of New South Wales (UNSW) para pesquisar blockchains em IoT e fez estágio de pesquisa (doutorado sanduíche) na Newcastle University sobre algoritmos de consenso.
Avelino Francisco Zorzo é associado da Sociedade Brasileira de Computação (SBC) e da IEEE. Possui graduação em Ciência da Computação pela Universidade Federal do Rio Grande do Sul (1986-1989), mestrado em Ciência da Computação pela Universidade Federal do Rio Grande do Sul (1990-1994), doutorado em Ciência da Computação pela University of Newcastle Upon Tyne (1995-1999) e pós-doutorado na área de segurança no Cybercrime and Computer Security Centre da Newcastle University (2012-2013). Atualmente é professor titular da Escola Politécnica da Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS), Coordenador de Programas Profissionais da área de Computação da CAPES/MEC, avaliador de condições de ensino do Ministério da Educação, consultor ad hoc do CNPq, CAPES e da FAPERGS.
Como citar esse artigo:
LUNARDI, R. C.; ZORZO, A. F. Estruturando diferentes aplicações com Blockchain. SBC Horizontes, dez. 2020. ISSN 2175-9235. Disponível em: <http://horizontes.sbc.org.br/index.php/2020/12/estruturando-diferentes-aplicacoes-com-blockchain/>. Acesso em: DD mês. AAAA.