Blockchain 19
Blockchain 19
Blockchain 19
net/publication/353325802
CITATIONS READS
0 236
3 authors:
Péricles Sobreira
Universidade Estadual de Santa Cruz
17 PUBLICATIONS 87 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Jauberth Abijaude on 19 August 2021.
4
Blockchain e Contratos Inteligentes para Aplica-
ções em IoT, Uma Abordagem Prática
Abstract
The Internet of Things aggregates devices able to capture information and interfere in
the environment, in such a way to obtain, generate and send data on a large scale to
different domain application systems, such as agriculture, industry, trade, and govern-
ments. These systems need a security layer to guarantee, among other requirements, the
irrefutability of transactions and the integrity of the manipulated data. In this sense, an in-
tegration with the blockchain technology, through smart contracts, would meet this need.
Blockchain is a disruptive technology that offers a digital trust network for conducting
transactions between peers, often unknown. This chapter presents a recent boarder rese-
arch of IoT with blockchain; introduces a classification of layered blockchain technology
and conducts a comprehensive study on consensus strategies and IoT applications with
blockchain. In the end, it offers a guide with information that allows interested parties to
design training in this area, including the realization of practical exercises.
Resumo
4.2.1. Blockchain
A primeira rede blockchain, apresentada em 2008, permitia transacionar valores digitais
através de uma estrutura computacional distribuída [Nakamoto 2008]. Tal trabalho esta-
belecia as bases de um sistema econômico alternativo à base de uma moeda digital (ou
criptomoeda), o Bitcoin. Em 2009, através da implementação de uma máquina de estados
simplificada, foi lançada a primeira versão do software com um arranjo até então inédito,
que proporcionou eliminar a terceira parte de confiança, necessária para as transações
financeiras tradicionais.
Os elementos básicos e seminais desta tecnologia, combinados de forma enge-
nhosa, sustentam de forma teórica/prática o desenvolvimento de aplicações descentrali-
zadas, dentre elas as diversas criptomoedas. São eles:
Em 2013, surge uma nova plataforma, a Ethereum, que evolui para além das tran-
sações de uma criptomoeda. Implementada sob um modelo de máquina de turing com-
pleta, com uma nova criptomoeda, e ancorada sob alguns conceitos de seu antecessor,
esta nova plataforma inova ao permitir que programas de computador possam ser arma-
zenados e executados nas cadeias de blocos. Tais programas, conhecidos como contratos
inteligentes não são em si uma novidade, pois já haviam sido propostos e definidos como
um um conjunto de cláusulas contratuais, especificado em formato digital, incluindo pro-
tocolos nos quais as partes cumprem estas cláusulas[Szabo 1997].
A rede Ethereum oferece uma máquina de estados determinística completa, que
consiste em um estado único acessível globalmente, e uma máquina virtual que aplica mu-
danças a esse estado. Sob uma perspectiva mais prática, a Ethereum é uma infraestrutura
de computação globalmente descentralizada e de código aberto que executa programas
chamados contratos inteligentes. Ela usa a blockchain para sincronizar e armazenar as
mudanças de estado do sistema, incorpora a criptomoeda ether e gas, sendo esta última
para medir e restringir os custos dos recursos de execução [Antonopoulos 2017].
As transações, compostas de mensagem com remetente, destinatário, valor e carga
útil de dados, dentre outros, são processadas pela Máquina Virtual Ethereum (EVM, do
inglês Ethereum Virtual Machine). Esta máquina virtual é baseada em uma pilha que
executa os bytecodes (instruções em linguagem de máquina), resultantes do processo de
compilação dos contratos inteligentes [EVM 2020]. O estado da rede Ethereum é arma-
zenado localmente em cada nó como um banco de dados, que contém as transações e o
estado do sistema em uma estrutura de dados em hash serializada chamada de Merkle
Patricia Tree [Merkle-Patricia-Tree 2020].
O modelo de consenso utilizado pela Ethereum é o mesmo do Bitcoin. Assim,
ele emprega blocos sequenciais, com uma impressão digital de dados (hash) único, pon-
derados em importância pelo protocolo de consenso Ethash [Etash 2020], baseado em
prova de trabalho (PoW, do inglês proof of work), para determinar a cadeia mais longa e,
portanto, o estado atual. No entanto, por diversas razões, a Ethereum 2.0 usa o Casper,
baseado em prova de posse ou participação (PoS, do inglês Proof of Stake).
Estas duas blockchains, a Bitcoin e a Ethereum, são de caráter público. Elas são
também conhecidas como não permissionadas ou de acesso aberto, com acesso anônimo,
sem nenhum controle sobre a entrada e saída de nós na rede e sem confiança mútua entre
si. Existem também as blockchains permissionadas ou federadas, onde os nós são co-
nhecidos e precisam ser autenticados. São redes voltadas normalmente para ambientes
corporativos, onde cada participante tem um papel definido. A BC Hyperledger Fabric é
um exemplo de BC privada.
1 www.leewayhertz.com
e empresas usando o contrato inteligente Ethereum. A Ecotrace 2 , empresa brasileira que
atua na área de rastreabilidade de alimentos emprega blockchain, inteligência artificial e
IoT para unir os elos da cadeia produtiva usando a blockchain Hyperledger.
A última categoria, a de armazenamento, aplica-se a aplicativos de armazena-
mento de dados que vêem a blockchain como um banco de dados seguro e distribuído. A
Factom 3 é um desses exemplos, que utiliza APIs (Application Programming Interface)
bem definidas para persistir informação de plataformas Web tradicionais na blockchain.
Apesar dos evidentes benefícios proporcionados pela integração tecnológica en-
tre blockchain e IoT, há muito ainda a ser feito. Uma das iniciativas promissoras é a
blockchain IOTA 4 , que promete alta escalabilidade, ausência de protocolos de consenso
baseado em provas e promessa de realização de transferências quase instantâneas a custo
zero [Silvano and Marcelino 2020].
blockchain através de uma estrutura LSB (Lightweight Scalable Blockchain) que garante
a segurança e privacidade [Dorri et al. 2019].
LO3 Energy 5 oferece energia solar usando uma rede P2P. A camada física é com-
posta por painéis solares. Eles capturam a geração de energia e remetem para a blockchain
usando uma token própria (Exergy Token) e uma rede de baixa latência. Os clientes com-
pram a energia por meio de aplicativos.
O “Slock.it” 6 , adquirido pela Blockchains Company, controla fechaduras eletrô-
nicas que são desbloqueadas através de um token. A arquitetura é simples e consiste em
aplicativos distribuídos, blockchain Ethereum, rede comercial e bloqueios eletrônicos.
Os aplicativos como serviço são softwares de suporte que se conectam em um
sistema blockchain-IoT. Tendo como camada central um middleware, estes aplicativos
integram dispositivos IoT e blockchain com uma plataforma de gerenciamento simples
para desenvolvedores. Rotinas como verificação de contratos e de informações precisam
estar disponíveis e acessíveis nas camadas de blockchain e rede.
O “Hybrid-IoT” [Sagirlar et al. 2018] é uma plataforma classificada nesta catego-
ria que implementa consenso baseado nos algoritmos PoW e BFT. A plataforma para a
IoT aplicada à indústria BPIIoT [Bahga and Madisetti 2016] permite a criação de DApps.
Os dispositivos IoT precisam ser registrados na rede blockchain.
A plataforma de blockchain “JD Blockchain Open Platform” 7 fornece serviços de
gateway, de nó e de consenso na blockchain. Baseada em consenso BFT, possui protocolo
de autenticação para controlar o número de acessos à rede blockchain.
Uma estrutura para implementar integridade e segurança de dados de IoT com
base na plataforma Ethereum, onde o dispositivo de IoT é responsável por gerar e gravar
dados na blockchain, dispensando uma autoridade certificadora, e posteriormente, pro-
porcionando ao usuário a verificação da integridade dos dados por meio de um aplicativo
5 https://lo3energy.com/
6 https://www.blockchains.com/
7 http://ledger.jd.com/
de usuário de dados é definida em [Liu et al. 2017].
A IotChain combina a arquitetura OSCAR [Vučinić et al. 2015] à estrutura de au-
torização ACE [Seitz et al. 2017]. Cada usuário registrado tem um token autorizado que
identifica um conjunto de recursos.O dispositivo IoT é responsável pela geração de dados.
O proprietário dos dados é responsável por enviar os dados para a blockchain, a arquite-
tura OSCAR e a estrutura de autorização ACE responsáveis por garantir a segurança dos
dados do usuário [Alphand et al. 2018].
4.4. Consenso
O consenso é um problema fundamental em computação distribuída e permite com que
um conjunto de participantes (ou nós) numa rede chegue a um acordo sobre um conjunto
de transações, ou sobre um determinado estado do sistema, apesar da ocorrência de falhas
ou da presença de nós maliciosos, que podem subverter o sistema [Greve et al. 2018].
O consenso, portanto, mantém o estado consistente das réplicas e a disponibilidade do
sistema. No contexto da IoT, o consenso da blockchain precisa ser bem elaborado para
atender aos requisitos de falta de recursos (computacional, espaço, etc.). Desta forma, as
exigências de aplicativos de IoT, com altos custos de manutenção e fraco suporte a usos
de tempo crítico, podem ser resolvidas com a introdução de um mecanismo de consenso
distribuído adequado.
Esta seção apresenta os protocolos de consenso Prova de Trabalho - PoW, PoS,
Variantes do PoW e PoS, Consenso Tolerante à Falhas Bizantinas - BFT e Grafo Direci-
onado Acíclico - DAG (Directed Acyclic Graph). Em seguida faremos um comparativo
entre os protocolos de consenso, ilustrados na Figura 4.4 e abordamos as características
de protocolos de consenso para IoT. O termo PoX (Proof of Somethings) é uma forma de
referir-se genericamente aos protocolos que necessitam de alguma prova para alcançar o
consenso [Lao et al. 2020].
18 https://nem.io/
Tendermint
O Tendermint [Kwon 2014] é um protocolo de consenso BFT quase assíncrono,
baseado em validadores, propondo blocos de transações e votando neles. Ele requer
apenas duas rodadas de votação para chegar a um consenso. Em cada rodada, há três
etapas (ou seja, propor, prevenir, pré-comprometer). Quando mais de 2/3 dos votos pré-
comprometidos forem recebidos para alcançar o consenso em uma rodada, o consenso
para a próxima rodada começará.
Ripple
O Ripple Protocol Consensus Algorithm (RPCA) [Todd 2015] utiliza sub-redes
confiáveis coletivamente dentro da rede maior para chegar a um consenso para o Pro-
blema Geral Bizantino. No Ripple, a Unique Node List (UNL) é um conjunto de outros
servidores mantidos por cada servidor, que desempenha um papel importante quando um
servidor faz consultas para determinar o consenso. Apenas os votos dos servidores na
UNL são considerados na determinação do consenso. Esta é uma diferença óbvia de
muitos algoritmos de consenso. A UNL representa um subconjunto da rede que exige
sabedoria coletiva para chegar a um consenso. A premissa da RPCA é que cada servi-
dor confia nos outros servidores da UNL e acredita que eles não entrarão em conluio.
A RPCA procede em várias rodadas para chegar a um consenso. Em cada rodada, cada
servidor primeiro coleta o máximo de transações para se preparar para o consenso e torná-
las públicas na forma de “conjunto de candidatos”. Em seguida, cada servidor faz uma
união dos conjuntos candidatos dos servidores em seu UNL e vota em cada transação.
De acordo com o resultado da votação, as transações que obtiverem votos abaixo de um
percentual mínimo serão descartadas ou colocadas em candidatos definidos no próximo
consenso para o próximo bloco do livro-razão, enquanto aqueles que obtiverem votos
suficientes irão para o próximo turno [Wu et al. 2019]
Stellar
O Stellar Consensus Protocol (SCP) [Mazieres 2015] é um protocolo do acordo
bizantino federado (FBA). Ele é considerado o primeiro mecanismo de consenso com-
provadamente seguro a desfrutar simultaneamente de quatro propriedades principais: con-
trole descentralizado, baixa latência, confiança flexível e segurança assintótica. Segurança
assintótica significa que a segurança do SCP depende de assinaturas digitais e famílias de
hash cujos parâmetros podem ser ajustados de forma realista para proteger contra adver-
sários com um poder de computação inimaginavelmente vasto.
A rede Ethereum, embora empregue o consenso PoW, e em breve deva migrar para
o PoS é usada por Atonomi [Atonomi 2019] e consegue manter um ecossistema saudável
que permite a desenvolvedores e fabricantes de IoT um ambiente de confiança universal.
Através da blockchain, a aplicação valida a identidade imutável dos dispositivos de forma
interoperável. O sistema Ethereum é detalhado na Seção 4.5.
4.5. Aplicações
A blockchain é amplamente utilizada em campos como indústria, governo, saúde, logís-
tica, comércio, etc. Esta seção descreve a evolução da blockchain desde o seu lançamento
até os dias atuais, classificando as aplicações em sidechains e contratos inteligentes. Ao
final, será demonstrada uma aplicação de IoT com a blockchain Ethereum, como forma
de ilustrar os conhecimentos aqui abordados.
A rede P2P é composta por nós que disputam o direito de publicar um bloco
com as transações feitas pelos usuários e premia o vencedor com novas moedas recém
emitidas. Através deste mecanismo de incentivo, do livro razão distribuído e da prova de
trabalho, era possível então manter o estado da rede e evitar possíveis fraudes. Isto serviu
de inspiração para pesquisas e novas aplicações, inclusive o lançamento de novas moedas
digitais.
O Litecoin apareceu como uma das primeiras alternativas ao Bitcoin. Em 2011, a
mineração de Bitcoin exigia um hardware cada vez mais especializado e caro, tornando
difícil para as pessoas comuns minerarem Bitcoin. O Litecoin é basicamente o mesmo
que o Bitcoin em tecnologia, mas é mais leve. O algoritmo Litecoin tenta permitir que
qualquer pessoa com um computador comum participe do processo de mineração.
Outras moedas digitais também ganham seus próprios recursos. Por exemplo,
Dash é uma moeda digital que suporta transações instantâneas e protege a privacidade do
usuário. Ela é baseada em Bitcoin e possui uma rede única de camada dupla que inclui
mineradores e nós mestres. Ela melhora o Bitcoin em dois aspectos principais: velocidade
de transação e anonimato. Esta tecnologia de pagamento permite que as transações sejam
concluídas quase que instantaneamente e usa técnicas de combinação de moedas para
garantir a privacidade das transações [Wu et al. 2019].
A rede Ethereum, lançada em 2015, implementou os contratos inteligentes, permi-
tindo transacionar, em suas redes, programas de computador, além do ether, que é a sua
criptomoeda. Tais contratos são os representantes da Blockchain 2.0, ampliando a fun-
cionalidade da rede. Na blockchain Ethereum, as pessoas também podem minerar para
obterem criptomoedas recém emitidas, pois o mecanismo base foi importado do Bitcoin.
O núcleo desta plataforma é a Máquina Virtual Ethereum, que pode realizar a
codificação de algoritmos complexos. O Ethereum é adequado para a construção de apli-
cativos que interagem automaticamente e diretamente entre pares ou que facilitam as ati-
vidades de coordenação de aplicativos P2P. Em teoria, qualquer atividade ou transação
financeira complexa pode ser codificada de forma automática e confiável no Ethereum.
Além dos aplicativos financeiros, a Internet das coisas será fortemente beneficiada e in-
fluenciada, pois possui cenários que requerem uma camada de segurança, principalmente
nos dados gerados pelos dispositivos.
O projeto Hyperledger também é uma blockchain representante do ciclo 2.0.
Composta por núcleos técnicos, Capítulos e apoio da Linux Foundation, esta blockchain é
composta de uma biblioteca de código-fonte aberta, permitindo que os interessados criem
soluções personalizadas. É uma comunidade crescente, com implementações relevantes,
entre elas a Hyperledger Sawtooth e a Hyperledger Fabric.
A terceira versão da blockchain é marcada pelo avanço das DApps. Estas apli-
cações descentralizadas podem ser definidas como um aplicativo que é maioritariamente
ou totalmente descentralizado [Antonopoulos 2017]. Esta possibilidade de desenvolver
aplicativos que se apóiam em um sistema distribuído, em especial a blockchain e os con-
tratos inteligentes, causam um enorme impacto na economia e na academia. Enquanto
que no primeiro eles modificam boa parte das relações contratuais vigentes, entregando
a um sistema computacional a decisão e execução de determinadas ações, no segundo é
uma fonte de pesquisa e estudos para criar novos conhecimentos, melhorar o desempe-
nho, segurança e ampliar os horizontes para os mais diversos domínios. A literatura está
repleta de publicações que abrangem a tecnologia, finanças econômicas, contabilidade,
impostos e regulamentação, saúde, etc.
A blockchain X.0 sugere a continuidade desta evolução. A próxima sessão irá
detalhar as categorias de aplicação para a Blockchain 3.0, com enfase em aplicações que
envolvem IoT.
19 www.liskrestaurant.com:3000/History
20 https://loomx.io/
21 https://www.poa.network/
uma sidechain Ethereum pública de código aberto para o desenvolvimento de contratos
inteligentes que usa PoA. O Liquid 22 é uma sidechain comercial que permite a movi-
mentação instantânea de fundos entre as exchanges. Por último, o Root Stock-RSK 23 é
uma sidechain de código aberto atrelada à rede principal do Bitcoin para a execução de
contratos inteligentes.
Os contratos inteligentes são sistemas que movem ativos digitais automaticamente
de acordo com regras pré-especificadas. Normalmente são escritos em uma linguagem de
alto nível, como Solidity. Os contratos só são executados se forem chamados por uma
transação. Um contrato pode chamar outro contrato que pode chamar outro contrato e
assim por diante, mas o primeiro contrato nesta cadeia de execução sempre terá sido
chamado por uma transação de uma conta de usuário.
As transações dos contratos inteligentes, independente da cadeia de execução, são
sempre atômicas. Quaisquer mudanças no estado global (contratos, contas, etc.) são
efetivadas apenas se toda a execução for encerrada com sucesso. Se a execução falhar
devido a um erro, todos os seus efeitos (mudanças no estado) são “revertidos” como se a
transação nunca tivesse sido executada. Uma transação com falha ainda é registrada como
tentativa e terá de pagar as taxas de execução [Antonopoulos 2017].
Como as aplicações blockchain-IoT passam por contratos inteligentes, mais deta-
lhes e exemplos encontram-se descritos na seção seguinte.
22 https://blockstream.com/liquid/
23 www.rsk.co
Figura 4.8. Classificação de aplicações que usam blockchain. Fonte:[Wu et al. 2019]
4.5.4. Prática
Esta prática auxilia na criação de um ambiente de desenvolvimento e ilustra a interação
entre um dispositivo de IoT ou um emulador que envia dados de temperatura e umidade e
um contrato inteligente implementado na blockchain Ethereum. O material completo e um
tutorial pode ser encontrado na página com informações complementares deste capítulo
em [Abijaude et al. 2021].
Ainda não há um Ambiente de Desenvolvimento Integrado (IDE, do inglês In-
tegrated Development Environment) ou um ambiente amigável para o desenvolvimento
dos contratos e de DApps. Pode-se usar editores on-line, como por exemplo o Remix
ou preparar um ambiente de desenvolvimento local. Esta última solução é a utilizada
pelos autores e já testada em cursos na Universidade Estadual de Santa Cruz (UESC),
Universidade Estadual do Sudoeste da Bahia (UESB) e Universidade Federal da Bahia
(UFBA).
Para tanto, usa-se o o Node.js e um editor de código de sua preferência instalados
e configurados no computador. Após isto, deve-se instalar uma carteira para ter acesso à
rede Ethereum. Aqui usamos a extensão Metamask.
Os seguintes pacotes adicionais para o Node.js precisam ser instalados: a) solc:
compilador Solidity; b) mocha: framework para testar os contratos antes de implementá-
los em uma rede BC; c) web3: coleção de bibliotecas que permite interagir com um nó
Ethereum local ou remoto usando HTTP; d) ganache-cli: é uma BC pessoal para
desenvolvimento rápido de aplicativos distribuídos Ethereum e Corda em um ambiente
seguro e determinístico; e) truffle-hdwallet-provider: para realizar as assina-
turas usando as palavras mnemônicas.
Estas palavras são informadas ao usuário no momento da instalação do metamask
e devem ser guardadas, pois através delas conseguiremos autorizar as transações.
Com o ambiente pronto (na página do curso existe um tutorial completo para isto),
deve-se criar uma pasta, fazer o download do projeto e descompactá-lo.
A pasta deploySensor possui o contrato inteligente (Sensor.sol, ilustrado
na Figura 4.9) e os arquivos necessários para compilação (compile.sol) e implemen-
tação (deploy.js). O processo de compilação gera duas saídas: os bytecodes que pre-
cisam ser enviados para a rede blockchain e a ABI (do inglês Aplication Binary Interface)
que precisa ser fornecida à aplicação, para que se tenha acesso aos contratos.
REST, simulando o middleware. Através dela conseguiremos enviar os dados para serem
recepcionados, e em seguida enviados para o contrato inteligente.
A Linha 20 cria a rota /insert_data para receber os dados enviados pelo sensor. Na
Linha 27 comparamos se o hash enviado pelo sensor é previamente conhecido para que
os dados sejam aceitos.
Em (b) temos a pasta src onde estão os arquivos sensor.js, web3.js,
App.js e index.js. O primeiro arquivo, sensor.js informa o endereço do con-
trato inteligente implementado na rede blockchain e a ABI gerada no momento da com-
pilação do contrato. O arquivo web3.js cria uma instância da web3 e a injeta na apli-
cação. Este passo é fundamental para que o arquivo App.js possa utilizar funções de
manipulação do contrato.
Figura 4.12. Código que demonstra a interação do sistema com um contrato inteligente.
Figura 4.15. Arquitetura que exemplifica uma das formas de uma DApp trocar
informações com a IoT.
4.6.1. Infraestrutura
O hardware empregado para o desenvolvimento dos laboratórios é bastante simples, uma
vez que não há plataformas que necessitem de muitos recursos computacionais. Nos
3 treinamentos ministrados havia computadores equipados com processadores que vão
desde o Core 2 Duo com 4 Gb de RAM, até o Core i7 com 32 Gb de RAM. O espaço
em disco também não é um fator limitante, uma vez que a maioria das máquinas possui
espaço de armazenamento suficiente para os experimentos realizados.
O conjunto de softwares necessários à realização de todas as atividades práticas do
treinamento é composto por navegadores, extensões para navegadores, ferramentas, pa-
cotes e aplicativos hospedados em sites. Os softwares são compatíveis com praticamente
todos os sistemas operacionais, como por exemplo Windows, Linux, Unix e MacOs.
• The Web Ledger Protocol 1.0: Publicado pelo grupo de blockchain da W3C com o
objetivo principal de proporcionar a flexibilidade e conectividade entre algoritmos
[Sporny and D. 2017].
4.8. Conclusão
Este capítulo conduziu um levantamento das principais pesquisas na área de Internet das
Coisas, blockchain e contratos inteligentes, desenvolvendo conceitos iniciais para nive-
lamento, descrevendo a arquitetura básica, os protocolos de consenso, as aplicações de
blockchain e IoT, a montagem de um curso para estas tecnologias, os principais desafios
e uma prática.
A Seção 4.2 trouxe conceitos de blockchain, contratos inteligentes, Internet das
coisas e blockchain para IoT como objetivo de nivelar os conhecimentos.
A Sessão 4.3 apresentou as arquiteturas de blockchain de aplicações blockchain-
IoT, e apresentou uma tabela comparativa entre as aplicações que usam blockchain e
IoT, contemplando a camada de middleware, plataforma de blockchain, camada de rede,
camada física e a classe de aplicação.
A Seção 4.4 apresentou os protocolos de consenso, agrupando-os em PoX, BFT
e DAG. Os protocolos PoX são divididos em dois grandes grupos (PoW e PoS) e suas
variantes. Logo após, os protocolos da família BFT e DAG foram descritos. Esta sessão
também apresentou uma tabela comparativa entre estes protocolos, salientando as suas
respectivas vantagens, desvantagens e aplicações.
A Seção 4.5 apresentou um histórico da evolução da blockchain e seus principais
marcos, seguidas de uma análise das aplicações possíveis para a blockchain, agrupadas em
: Mercado, Governo, saúde, Aplicações Gerais e IoT. Para encerrar esta seção, os autores
apresentaram a prática e a página do minicurso com informações complementares, além
de um tutorial para a execução.
Direcionamentos de como implementar um curso que contemple o conteúdo deste
minicurso foram abordados na Seção 4.6. Por fim, a Seção 4.7 apresentou os desafios de
pesquisa atuais nesta área do conhecimento.
Referências
[Abijaude et al. 2021] Abijaude, J., Serra, H., Sobreira, P., and Greve, F. (2021). Mini-
curso blockchain e contratos inteligentes para aplicações em iot, uma abordagem prá-
tica. https://github.com/lifuesc/jai2021. Acessado em 14/05/2021.
[Ahmad et al. 2021] Ahmad, R. W., Salah, K., Jayaraman, R., Yaqoob, I., Ellahham, S.,
and Omar, M. (2021). The role of blockchain technology in telehealth and telemedi-
cine. International Journal of Medical Informatics, 148:104399.
[Alladi et al. 2019] Alladi, T., Chamola, V., Rodrigues, J. J., and Kozlov, S. A. (2019).
Blockchain in smart grids: A review on different use cases. Sensors, 19(22):4862.
[Alphand et al. 2018] Alphand, O., Amoretti, M., Claeys, T., Dall’Asta, S., Duda, A.,
Ferrari, G., Rousseau, F., Tourancheau, B., Veltri, L., and Zanichelli, F. (2018). Iot-
chain: A blockchain security architecture for the internet of things. In 2018 IEEE
wireless communications and networking conference (WCNC), pages 1–6. IEEE.
[Araujo et al. 2019] Araujo, P., Viana, W., Veras, N., Farias, E. J., and de Castro Filho,
J. A. (2019). Exploring students perceptions and performance in flipped classroom
designed with adaptive learning techniques: A study in distributed systems courses. In
Brazilian Symposium on Computers in Education (Simpósio Brasileiro de Informática
na Educação-SBIE), volume 30, page 219.
[Atonomi 2019] Atonomi (2019). Atonomi—bringing trust and security to iot. https:
//atonomi.io/. Acessado em 04/05/2021.
[Azaria et al. 2016] Azaria, A., Ekblaw, A., Vieira, T., and Lippman, A. (2016). Medrec:
Using blockchain for medical data access and permission management. In 2016 2nd
International Conference on Open and Big Data (OBD), pages 25–30. IEEE.
[Bach et al. 2018] Bach, L. M., Mihaljevic, B., and Zagar, M. (2018). Comparative
analysis of blockchain consensus algorithms. In 2018 41st International Convention on
Information and Communication Technology, Electronics and Microelectronics (MI-
PRO), pages 1545–1550. IEEE.
[Back et al. 2014] Back, A., Corallo, M., Dashjr, L., Friedenbach, M., Maxwell, G.,
Miller, A., Poelstra, A., Timón, J., and Wuille, P. (2014). Enabling block-
chain innovations with pegged sidechains. URL: http://www. opensciencereview.
com/papers/123/enablingblockchain-innovations-with-pegged-sidechains, 72.
[Bahga and Madisetti 2016] Bahga, A. and Madisetti, V. K. (2016). Blockchain platform
for industrial internet of things. Journal of Software Engineering and Applications,
9(10):533–546.
[Balasubramaniam et al. 2020] Balasubramaniam, A., Gul, M. J. J., Menon, V. G., and
Paul, A. (2020). Blockchain for intelligent transport system. IETE Technical Review,
pages 1–12.
[Berdik et al. 2021] Berdik, D., Otoum, S., Schmidt, N., Porter, D., and Jararweh, Y.
(2021). A survey on blockchain for information systems management and security.
Information Processing & Management, 58(1):102397.
[Bessani et al. 2014] Bessani, A., Sousa, J., and Alchieri, E. E. (2014). State machine re-
plication for the masses with bft-smart. In 2014 44th Annual IEEE/IFIP International
Conference on Dependable Systems and Networks, pages 355–362. IEEE.
[Bogner et al. 2016] Bogner, A., Chanson, M., and Meeuw, A. (2016). A decentralised
sharing app running a smart contract on the ethereum blockchain. In Proceedings of
the 6th International Conference on the Internet of Things, pages 177–178. ACM.
[Buterin et al. 2014] Buterin, V. et al. (2014). A next-generation smart contract and de-
centralized application platform. white paper.
[Cannavo and Lamberti 2020] Cannavo, A. and Lamberti, F. (2020). How blockchain,
virtual reality and augmented reality are converging, and why. IEEE Consumer Elec-
tronics Magazine.
[Castro et al. 1999] Castro, M., Liskov, B., et al. (1999). Practical byzantine fault tole-
rance. In OSDI, volume 99, pages 173–186.
[Chaer et al. 2019] Chaer, A., Salah, K., Lima, C., Ray, P. P., and Sheltami, T. (2019).
Blockchain for 5g: opportunities and challenges. In 2019 IEEE Globecom Workshops
(GC Wkshps), pages 1–6. IEEE.
[Chen 2020] Chen, H. (2020). Quantum relay blockchain and its applications in key
service. In Proceedings of the 2020 4th International Conference on Cryptography,
Security and Privacy, pages 95–99.
[Chowdhury et al. 2018] Chowdhury, M. J. M., Colman, A., Kabir, M. A., Han, J., and
Sarda, P. (2018). Blockchain as a notarization service for data sharing with personal
data store. In 2018 17th ieee international conference on trust, security and privacy in
computing and communications/12th ieee international conference on big data science
and engineering (TrustCom/BigDataSE), pages 1330–1335. IEEE.
[Christin 2013] Christin, N. (2013). Traveling the silk road: A measurement analysis
of a large anonymous online marketplace. In Proceedings of the 22nd international
conference on World Wide Web, pages 213–224.
[Cocco et al. 2017] Cocco, L., Pinna, A., and Marchesi, M. (2017). Banking on block-
chain: Costs savings thanks to the blockchain technology. Future internet, 9(3):25.
[Croman et al. 2016] Croman, K., Decker, C., Eyal, I., Gencer, A. E., Juels, A., Kosba,
A., Miller, A., Saxena, P., Shi, E., Sirer, E. G., et al. (2016). On scaling decentralized
blockchains. In International conference on financial cryptography and data security,
pages 106–125. Springer.
[Dashkevich et al. 2020] Dashkevich, N., Counsell, S., and Destefanis, G. (2020). Block-
chain application for central banks: A systematic mapping study. IEEE Access,
8:139918–139952.
[De Angelis et al. 2018] De Angelis, S., Aniello, L., Baldoni, R., Lombardi, F.,
Margheri, A., and Sassone, V. (2018). Pbft vs proof-of-authority: Applying the cap
theorem to permissioned blockchain.
[Deepa et al. 2020] Deepa, N., Pham, Q.-V., Nguyen, D. C., Bhattacharya, S., Prabadevi,
B., Gadekallu, T. R., Maddikunta, P. K. R., Fang, F., and Pathirana, P. N. (2020). A
survey on blockchain for big data: Approaches, opportunities, and future directions.
arXiv preprint arXiv:2009.00858.
[Dennis and Owen 2015] Dennis, R. and Owen, G. (2015). Rep on the block: A next
generation reputation system based on the blockchain. In 2015 10th International
Conference for Internet Technology and Secured Transactions (ICITST), pages 131–
138. IEEE.
[Díaz et al. 2016] Díaz, M., Martín, C., and Rubio, B. (2016). State-of-the-art, chal-
lenges, and open issues in the integration of internet of things and cloud computing.
Journal of Network and Computer applications, 67:99–117.
[Dorri et al. 2016] Dorri, A., Kanhere, S. S., and Jurdak, R. (2016). Blockchain in inter-
net of things: Challenges and solutions. CoRR, abs/1608.05187.
[Dorri et al. 2017] Dorri, A., Kanhere, S. S., Jurdak, R., and 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), pages 618–623. IEEE.
[Dorri et al. 2019] Dorri, A., Kanhere, S. S., Jurdak, R., and Gauravaram, P. (2019). Lsb:
A lightweight scalable blockchain for iot security and anonymity. Journal of Parallel
and Distributed Computing, 134:180–197.
[Dziembowski et al. 2015] Dziembowski, S., Faust, S., Kolmogorov, V., and Pietrzak, K.
(2015). Proofs of space. In Annual Cryptology Conference, pages 585–605. Springer.
[Ekramifard et al. 2020] Ekramifard, A., Amintoosi, H., Seno, A. H., Dehghantanha, A.,
and Parizi, R. M. (2020). A systematic literature review of integration of blockchain
and artificial intelligence. Blockchain cybersecurity, trust and privacy, pages 147–160.
[Etash 2020] Etash (2020). Etash protocol. https://eth.wiki/en/concepts/
ethash/ethash. Acessado em 04/05/2021.
[Fakhri and Mutijarsa 2018] Fakhri, D. and Mutijarsa, K. (2018). Secure iot communi-
cation using blockchain technology. In 2018 International Symposium on Electronics
and Smart Devices (ISESD), pages 1–6. IEEE.
[Greve et al. 2018] Greve, F., Sampaio, L., Abijaude, J., Coutinho, A., Valcy, Í., and
Queiroz, S. (2018). Blockchain e a revolução do consenso sob demanda. Minicursos do
Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos (Minicursos_-
SBRC), 36.
[Guo and Liang 2016] Guo, Y. and Liang, C. (2016). Blockchain application and outlook
in the banking industry. Financial Innovation, 2(1):1–12.
[Huh et al. 2017] Huh, S., Cho, S., and Kim, S. (2017). Managing iot devices using
blockchain platform. In 2017 19th international conference on advanced communica-
tion technology (ICACT), pages 464–467. IEEE.
[Ikeda 2018] Ikeda, K. (2018). Security and privacy of blockchain and quantum compu-
tation. In Advances in Computers, volume 111, pages 199–228. Elsevier.
[Ji et al. 2018] Ji, Y., Zhang, J., Ma, J., Yang, C., and Yao, X. (2018). Bmpls: blockchain-
based multi-level privacy-preserving location sharing scheme for telecare medical in-
formation systems. Journal of medical systems, 42(8):1–13.
[Jiang et al. 2016] Jiang, J., Wen, S., Yu, S., Xiang, Y., and Zhou, W. (2016). Identifying
propagation sources in networks: State-of-the-art and comparative studies. IEEE Com-
munications Surveys & Tutorials, 19(1):465–481.
[Khan and Salah 2018] Khan, M. A. and Salah, K. (2018). Iot security: Review, block-
chain solutions, and open challenges. Future Generation Computer Systems, 82:395–
411.
[Kiayias et al. 2017] Kiayias, A., Russell, A., David, B., and Oliynykov, R. (2017). Ouro-
boros: A provably secure proof-of-stake blockchain protocol. In Annual International
Cryptology Conference, pages 357–388. Springer.
[Kuperberg et al. 2019] Kuperberg, M., Kemper, S., and Durak, C. (2019). Blockchain
usage for government-issued electronic ids: A survey. In International Conference on
Advanced Information Systems Engineering, pages 155–167. Springer.
[Kwon 2014] Kwon, J. (2014). Tendermint: Consensus without mining. Draft v. 0.6,
fall, 1(11).
[Lamport et al. 1982] Lamport, L., Shostak, R., and Pease, M. (1982). The byzantine
generals problem. ACM Trans. Program. Lang. Syst., 4(3):382–401.
[Lao et al. 2020] Lao, L., Li, Z., Hou, S., Xiao, B., Guo, S., and Yang, Y. (2020). A
survey of iot applications in blockchain systems: Architecture, consensus, and traffic
modeling. ACM Computing Surveys (CSUR), 53(1):1–32.
[Lee and Lee 2015] Lee, I. and Lee, K. (2015). The internet of things (iot): Applications,
investments, and challenges for enterprises. Business Horizons, 58(4):431–440.
[Leng et al. 2020] Leng, J., Zhou, M., Zhao, L. J., Huang, Y., and Bian, Y. (2020). Block-
chain security: A survey of techniques and research directions. IEEE Transactions on
Services Computing.
[Lin and Liao 2017] Lin, I.-C. and Liao, T.-C. (2017). A survey of blockchain security
issues and challenges. IJ Network Security, 19(5):653–659.
[Liu et al. 2020] Liu, B., Xiao, L., Long, J., Tang, M., and Hosam, O. (2020). Se-
cure digital certificate-based data access control scheme in blockchain. IEEE Access,
8:91751–91760.
[Liu et al. 2017] Liu, B., Yu, X. L., Chen, S., Xu, X., and Zhu, L. (2017). Blockchain
based data integrity service framework for iot data. In 2017 IEEE International Con-
ference on Web Services (ICWS), pages 468–475. IEEE.
[Liu 2016] Liu, P. T. S. (2016). Medical record system using blockchain, big data and
tokenization. In International conference on information and communications security,
pages 254–261. Springer.
[Matthews 2015] Matthews, C. M. (2015). Silk road creator found
guilty of cybercrimes,. https://www.wsj.com/articles/
silk-road-creator-found-guilty-of-cybercrimes-1423083107.
Acessado em 04/05/2021.
[Mazieres 2015] Mazieres, D. (2015). The stellar consensus protocol: A federated model
for internet-level consensus. Stellar Development Foundation, 32.
[Mehmood et al. 2017] Mehmood, Y., Ahmad, F., Yaqoob, I., Adnane, A., Imran, M.,
and Guizani, S. (2017). Internet-of-things-based smart cities: Recent advances and
challenges. IEEE Communications Magazine, 55(9):16–24.
[Meiklejohn et al. 2013] Meiklejohn, S., Pomarole, M., Jordan, G., Levchenko, K., Mc-
Coy, D., Voelker, G. M., and Savage, S. (2013). A fistful of bitcoins: characterizing
payments among men with no names. In Proceedings of the 2013 conference on Inter-
net measurement conference, pages 127–140.
[Mendling et al. 2018] Mendling, J., Weber, I., Aalst, W. V. D., Brocke, J. V., Cabanil-
las, C., Daniel, F., Debois, S., Ciccio, C. D., Dumas, M., Dustdar, S., et al. (2018).
Blockchains for business process management-challenges and opportunities. ACM
Transactions on Management Information Systems (TMIS), 9(1):1–16.
[Milutinovic et al. 2016] Milutinovic, M., He, W., Wu, H., and Kanwal, M. (2016).
Proof of luck: An efficient blockchain consensus protocol. In proceedings of the 1st
Workshop on System Software for Trusted Execution, pages 1–6.
[Mistry et al. 2020] Mistry, I., Tanwar, S., Tyagi, S., and Kumar, N. (2020). Blockchain
for 5g-enabled iot for industrial automation: A systematic review, solutions, and chal-
lenges. Mechanical Systems and Signal Processing, 135:106382.
[Narayanan et al. 2016] Narayanan, A., Bonneau, J., Felten, E., Miller, A., and Goldfe-
der, S. (2016). Bitcoin and cryptocurrency technologies. Princeton University Press.
[Park et al. 2018] Park, J.-S., Youn, T.-Y., Kim, H.-B., Rhee, K.-H., and Shin, S.-U.
(2018). Smart contract-based review system for an iot data marketplace. Sensors,
18(10).
[Pavithra et al. 2019] Pavithra, S., Ramya, S., and Prathibha, S. (2019). A survey on
cloud security issues and blockchain. In 2019 3rd International Conference on Com-
puting and Communications Technologies (ICCCT), pages 136–140. IEEE.
[PoET 2018] PoET (2018). Poet 1.0 specification. https://sawtooth.
hyperledger.org/docs/core/releases/1.0/architecture/poet.
html. Acessado em 04/05/2021.
[Popov et al. 2020] Popov, S., Moog, H., and et al. (2020). The coordicide. white paper
Iota Foundation.
[Rahimi et al. 2020] Rahimi, P., Khan, N. D., Chrysostomou, C., Vassiliou, V., and Nazir,
B. (2020). A secure communication for maritime iot applications using blockchain te-
chnology. In 2020 16th International Conference on Distributed Computing in Sensor
Systems (DCOSS), pages 244–251. IEEE.
[Rao and Dave 2019] Rao, A. R. and Dave, R. (2019). Developing hands-on laboratory
exercises for teaching stem students the internet-of-things, cloud computing and block-
chain applications. In 2019 IEEE Integrated STEM Education Conference (ISEC),
pages 191–198. IEEE.
[Rathee et al. 2021] Rathee, G., Balasaraswathi, M., Chandran, K. P., Gupta, S. D.,
and Boopathi, C. (2021). A secure iot sensors communication in industry 4.0 using
blockchain technology. Journal of Ambient Intelligence and Humanized Computing,
12(1):533–545.
[Ruta et al. 2017] Ruta, M., Scioscia, F., Ieva, S., Capurso, G., and Di Sciascio, E. (2017).
Semantic blockchain to improve scalability in the internet of things. Open Journal of
Internet Of Things (OJIOT), 3(1):46–61.
[Sagirlar et al. 2018] Sagirlar, G., Carminati, B., Ferrari, E., Sheehan, J. D., and Rag-
noli, E. (2018). Hybrid-iot: Hybrid blockchain architecture for internet of things-
pow sub-blockchains. In 2018 IEEE International Conference on Internet of Things
(iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE
Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData),
pages 1007–1016. IEEE.
[Saint-Andre et al. 2004] Saint-Andre, P. et al. (2004). Extensible messaging and pre-
sence protocol (xmpp): Core.
[Samaniego et al. 2016] Samaniego, M., Jamsrandorj, U., and Deters, R. (2016). Block-
chain as a service for iot. In 2016 IEEE international conference on internet of things
(iThings) and IEEE green computing and communications (GreenCom) and IEEE cy-
ber, physical and social computing (CPSCom) and IEEE smart data (SmartData), pa-
ges 433–436. IEEE.
[Seitz et al. 2017] Seitz, L., Selander, G., Wahlstroem, E., Erdtman, S., and Tschofenig,
H. (2017). Authentication and authorization for constrained environments (ace). In-
ternet Engineering Task Force, Internet-Draft draft-ietf-aceoauth-authz-07.
[Shae and Tsai 2017] Shae, Z. and Tsai, J. J. (2017). On the design of a blockchain
platform for clinical trial and precision medicine. In 2017 IEEE 37th international
conference on distributed computing systems (ICDCS), pages 1972–1980. IEEE.
[Sharma et al. 2017] Sharma, P. K., Singh, S., Jeong, Y.-S., and Park, J. H. (2017). Dist-
blocknet: A distributed blockchains-based secure sdn architecture for iot networks.
IEEE Communications Magazine, 55(9):78–85.
[Shelby et al. 2014] Shelby, Z., Hartke, K., and Bormann, C. (2014). The constrained
application protocol (coap).
[Silvano and Marcelino 2020] Silvano, W. F. and Marcelino, R. (2020). Iota tangle: A
cryptocurrency to communicate internet-of-things data. Future Generation Computer
Systems, 112:307–319.
[Sornin et al. 2015] Sornin, N., Luis, M., Eirich, T., Kramp, T., and Hersent, O. (2015).
Lorawan specification. LoRa alliance.
[Sousa et al. 2018] Sousa, J., Bessani, A., and Vukolic, M. (2018). A byzantine fault-
tolerant ordering service for the hyperledger fabric blockchain platform. In 2018
48th annual IEEE/IFIP international conference on dependable systems and networks
(DSN), pages 51–58. IEEE.
[Sporny and D. 2017] Sporny, M. and D., L. (2017). The web ledger protocol 1.0.
http://standards.ieee.org/develop/project/2418.html. Aces-
sado em 04/05/2021.
[Sztajnberg et al. 2018] Sztajnberg, A., da Silva Macedo, R., and Stutzel, M. (2018). Pro-
tocolos de aplicação para a internet das coisas: conceitos e aspectos práticos. Socie-
dade Brasileira de Computação.
[Ta-Shma et al. 2017] Ta-Shma, P., Akbar, A., Gerson-Golan, G., Hadash, G., Carrez, F.,
and Moessner, K. (2017). An ingestion and analytics architecture for iot applied to
smart city use cases. IEEE Internet of Things Journal, 5(2):765–774.
[Vinoski 2006] Vinoski, S. (2006). Advanced message queuing protocol. IEEE Internet
Computing, 10(6):87–89.
[Vučinić et al. 2015] Vučinić, M., Tourancheau, B., Rousseau, F., Duda, A., Damon, L.,
and Guizzetti, R. (2015). Oscar: Object security architecture for the internet of things.
Ad Hoc Networks, 32:3–16.
[Wu et al. 2019] Wu, M., Wang, K., Cai, X., Guo, S., Guo, M., and Rong, C. (2019).
A comprehensive survey of blockchain: From theory to iot applications and beyond.
IEEE Internet of Things Journal, 6(5):8114–8154.
[Xie et al. 2020] Xie, R., Wang, Y., Tan, M., Zhu, W., Yang, Z., Wu, J., and Jeon, G.
(2020). Ethereum-blockchain-based technology of decentralized smart contract certi-
ficate system. IEEE Internet of Things Magazine, 3(2):44–50.
[Xu et al. 2017] Xu, C., Wang, K., and Guo, M. (2017). Intelligent resource management
in blockchain-based cloud datacenters. IEEE Cloud Computing, 4(6):50–59.
[Xu et al. 2019] Xu, X., Zhang, X., Gao, H., Xue, Y., Qi, L., and Dou, W. (2019). Be-
come: blockchain-enabled computation offloading for iot in mobile edge computing.
IEEE Transactions on Industrial Informatics, 16(6):4187–4195.
[Yoo and Ko 2020] Yoo, H. and Ko, N. (2020). Blockchain based data marketplace sys-
tem. In 2020 International Conference on Information and Communication Technology
Convergence (ICTC), pages 1255–1257. IEEE.
[Yue et al. 2016] Yue, X., Wang, H., Jin, D., Li, M., and Jiang, W. (2016). Healthcare
data gateways: found healthcare intelligence on blockchain with novel privacy risk
control. Journal of medical systems, 40(10):1–8.
[Zhang and Chen 2020] Zhang, C. and Chen, Y. (2020). A review of research relevant
to the emerging industry trends: Industry 4.0, iot, blockchain, and business analytics.
Journal of Industrial Integration and Management, 5(01):165–180.
[Zhang et al. 2020] Zhang, W., Luo, Y., Fu, S., and Xie, T. (2020). Privacy-preserving
reputation management for blockchain-based mobile crowdsensing. In 2020 17th An-
nual IEEE International Conference on Sensing, Communication, and Networking
(SECON), pages 1–9. IEEE.
[Zheng et al. 2017] Zheng, Z., Xie, S., Dai, H., Chen, X., and Wang, H. (2017). An
overview of blockchain technology: Architecture, consensus, and future trends. In
2017 IEEE international congress on big data (BigData congress), pages 557–564.
IEEE.