Universidade de Aveiro 2021
Edson Gabriel Pinto dos Santos
Sistema de Cripto-Pagamentos para Transportes
P´ ublicos
Universidade de Aveiro 2021
Edson Gabriel Pinto dos Santos
Sistema de Cripto-Pagamentos para Transportes P´ ublicos
Disserta¸c˜ao apresentada `a Universidade de Aveiro para cumprimento dos re- quisitos necess´arios `a obten¸c˜ao do grau de Mestre em Engenharia Eletr´onica e Telecomunica¸c˜oes, realizada sob a orienta¸c˜ao cient´ıfica de Paulo Bartolo- meu, Investigador Auxiliar do Instituto de Telecomunica¸c˜oes da Universidade de Aveiro.
Este trabalho ´e financiado pela FCT/MCTES atrav´es de fundos nacionais e quando aplic´avel cofinanciado por fundos comunit´arios no ˆambito do projeto UIDB/50008/2020-UIDP/50008/2020.
o j´uri / the jury
presidente / president Professor Doutor Telmo Reis Cunha Professor Associado, Universidade de Aveiro
vogais / examiners committee Doutor Paulo Jorge de Campos Bartolomeu
Investigador Doutorado, Instituto de Telecomunica¸c˜oes da Universidade de Aveiro (orientador)
Professor Doutor M´ario Jo˜ao Barata Calha Professor Auxiliar, Universidade de Lisboa
agradecimentos / acknowledgements
Agrade¸co ao meu orientador por todo o apoio prestado na realiza¸c˜ao deste trabalho. E dedico um agradecimento muito especial aos meus pais e irm˜ao, por tudo o que fizeram por mim.
palavras-chave transportes p´ublicos, micropagamentos, criptomoedas, Hedera Hashgraph, sistemas BLE
resumo A tendˆencia de crescimento da popula¸c˜ao em ´areas metropolitanas e o au- mento da temperatura do planeta, exigem medidas que permitam melhorar a mobilidade urbana atrav´es do investimento no crescimento do uso de trans- portes p´ublicos. Motivado por um ecossistema de aplica¸c˜oes cada vez mais rico e heterog´eneo temos assistido `a massifica¸c˜ao do uso de smartphones em v´arios contextos do nosso dia-a-dia. Esta disserta¸c˜ao procura inovar os m´etodos de pagamento praticados em transportes p´ublicos, propondo um sistema em que o pagamento ´e realizado de modo transparente usando os smartphones pessoais dos passageiros. Para projetar o sistema, foram explorados diversos sistemas CIBO (Check-in/Be-out) e BIBO (Be-in/Be- out), que procuram a integra¸c˜ao de smartphones, substituindo os sistemas RFID por sistemas em que os check-ins e check-outs s˜ao efetuados com recurso `a tecnologia BLE (Bluetooth Low Energy). No caso das transa¸c˜oes monet´arias propriamente ditas, foi estudada a viabilidade do uso de crip- tomoedas para efetuar micropagamentos, com base nas suas taxas por transa¸c˜ao, velocidade da transa¸c˜ao e capacidade computacional exigida.
O sistema proposto integra uma aplica¸c˜ao executada num smartphone que recebe informa¸c˜ao proveniente de sinalizadores BLE (beacons) integrados em ve´ıculos p´ublicos e a usa para efetuar o respetivocheck-in/outno servi- dor do operador de transportes. Este ´e um processo que permite realizar o pagamento autom´atico da viagem atrav´es de transa¸c˜oes HBAR da cripto- moeda Hedera Hashgraph. De forma a testar o desempenho do sistema de pagamento proposto, foram desenvolvidos prot´otipos para a aplica¸c˜ao m´ovel dos passageiros e para o servidor do operador de transportes p´ublicos. Os resultados da avalia¸c˜ao experimental mostram que o pagamento de trans- portes p´ublicos recorrendo `a criptomoeda HBAR n˜ao s´o ´e tecnicamente vi´avel como permitir´a um maior conforto para os passageiros. Adicional- mente, para o operador de transportes, permite um maior “fluxo de caixa”
face ao recebimento quase em tempo-real do servi¸co prestado.
keywords public transportation, micropayments, cryptocurrencies, Hedera Hashgraph, BLE systems
abstract The population growth in metropolitan areas and the rising temperature of the planet, ask for measures as investing in public transportation to improve urban mobility. We also witness the massification of smartphones motiva- ted by a new landscape of uses cases, making them convenient to be part of our daily routines. The main goal of this master thesis is to innovate the payment methods currently used in public transportation, by proposing a system in which the payments are made in a transparent way using the passengers’ personal smartphones. Before the system proposal, this thesis explores CIBO (Check-in/Be-out) and BIBO (Be-in/Be-out) systems which intend to replace RFID technology by using smartphones and BLE (Blueto- oth Low Energy) technology in the detection of check-ins and check-outs.
As for the payments themselves, it was studied the viability of existing cryp- tocurrencies based on their fees, speed and computational power required by their transactions. The passenger’s smartphone in the proposed system receives information sent by BLE beacons installed in public vehicles and, through a mobile app, performs the check-in and check-out on the public transport operator server, automatically. This process allows the payment to be made automatically as well, using HBAR transactions of the chosen public distributed ledger - Hedera Hashgraph. To test the performance of the system’s transactions, prototypes were developed for the passengers’ app and the operator’s server. Results show that the micropayments performed by the chosen cryptocurrency are not only viable for public transportation but will allow a more comfortable environment for the passengers. Additio- nally, it will improve the cash flow of the operator, receiving the payments’
amount almost in real-time as the passengers check-in.
Conte´ udo
Conte´udo i
Lista de Figuras iii
Lista de Tabelas v
1 Introdu¸c˜ao 1
1.1 Contexto . . . 1
1.2 Objetivos . . . 2
1.3 Organiza¸c˜ao . . . 3
2 Sistemas BLE aplicados a transportes p´ublicos 5 2.1 BIBOLinz . . . 5
2.2 CIBOLisboa . . . 7
2.3 SEAT . . . 8
2.4 Anda . . . 12
2.5 Compara¸c˜ao de sistemas BLE . . . 13
3 Criptomoedas aplicadas a micropagamentos 15 3.1 IOTA . . . 15
3.1.1 IOTApass . . . 17
3.1.2 An´alise comparativa do sistema IOTApass . . . 18
3.2 Nano . . . 19
3.3 Hedera Hashgraph . . . 21
3.4 Compara¸c˜ao de criptomoedas . . . 23
4 Micropagamentos em transportes p´ublicos atrav´es de Hedera Hashgraph 25 4.1 HederaPass . . . 26
4.1.1 Arquitetura . . . 26
4.1.2 Funcionamento Global . . . 27
4.1.3 Mecanismo de Seguran¸ca . . . 28
4.2 An´alise comparativa do sistema HederaPass . . . 32
4.3 Aplica¸c˜oes m´oveis . . . 34
4.3.1 Registo . . . 34
4.3.2 Viagem . . . 34
4.4 Testnet . . . 39
5 Implementa¸c˜ao 43
5.1 Servidor do operador . . . 43
5.1.1 Registo do utilizador . . . 45
5.1.2 Autentica¸c˜ao do utilizador . . . 46
5.1.3 Autentica¸c˜ao dosbeacons . . . 47
5.1.4 Check-in . . . 48
5.1.5 Paragem interm´edia . . . 48
5.1.6 Check-out . . . 48
5.2 Aplica¸c˜ao m´ovel para passageiros . . . 50
5.2.1 Comunica¸c˜ao com o servidor . . . 51
5.2.2 Registo eLogin . . . 52
5.2.3 Menu . . . 54
5.2.4 Processamento dos an´uncios de paragem . . . 54
5.2.5 Paragem interm´edia . . . 55
5.2.6 Check-in . . . 55
5.2.7 Check-out . . . 56
5.2.8 Hist´orico de viagens . . . 56
5.2.9 Estado . . . 58
5.2.10 Detalhes . . . 58
5.2.11 Saldo . . . 59
6 Resultados 60 6.1 Testes `a aplica¸c˜ao m´ovel para passageiros . . . 60
6.2 Testes ao servidor do operador . . . 66
7 Conclus˜oes 73 7.1 S´ıntese . . . 73
7.2 Trabalho futuro . . . 74
Bibliografia 75
Lista de Figuras
2.1 Arquitetura do sistema BIBOLinz . . . 6
2.2 Dete¸c˜ao dos passageiros no sistema BIBOLinz . . . 7
2.3 M´etodo de pagamento do sistema BIBOLinz . . . 8
2.4 Arquitetura do sistema CIBOLisboa . . . 9
2.5 Arquitetura do sistema SEAT . . . 10
2.6 Comunica¸c˜oes do sistema SEAT . . . 10
2.7 Arquitetura do sistema Anda . . . 11
3.1 Estruturatangle . . . 16
3.2 Arquitetura do sistema IOTApass . . . 17
3.3 Blockchains Nano . . . 19
3.4 Estruturablock-lattice . . . 20
3.5 Estruturahashgraph . . . 22
4.1 Arquitetura do sistema HederaPass . . . 27
4.2 Encripta¸c˜ao de dados no sistema HederaPass . . . 28
4.3 Desencripta¸c˜ao de dados no sistema HederaPass . . . 29
4.4 Check-in no sistema HederaPass . . . 30
4.5 Processo de paragem interm´edia no sistema HederaPass . . . 31
4.6 Check-out no sistema HederaPass . . . 32
4.7 Registo na aplica¸c˜ao de passageiros . . . 35
4.8 Cria¸c˜ao de uma conta Hedera Hashgraph na aplica¸c˜ao de passageiros . . . 35
4.9 C´odigo recebido por SMS na aplica¸c˜ao de passageiros . . . 36
4.10 Login na aplica¸c˜ao de passageiros . . . 36
4.11 Menu da aplica¸c˜ao de passageiros . . . 37
4.12 Saldo insuficiente na aplica¸c˜ao de passageiros . . . 38
4.13 Menu da aplica¸c˜ao de revisores . . . 38
4.14 Aplica¸c˜oes em caso de falha na liga¸c˜ao `a Internet . . . 39
4.15 Aplica¸c˜oes em caso de falha na liga¸c˜ao BLE . . . 40
4.16 Taxas numa transferˆencia de HBARs . . . 41
4.17 Exemplo de uma transferˆencia de 1 HBAR . . . 41
5.1 M´odulos que constituem o prot´otipo do servidor do operador . . . 43
5.2 Modelo de dados do servidor . . . 44
5.3 Resposta a umrequest HTTP decheck-in . . . 48
5.4 Registo de uma viagem completa na base de dados . . . 49
5.5 Registo das transa¸c˜oes de uma viagem completa na base de dados . . . 49
5.6 POSTs recebidos pelo servidor . . . 50
5.7 Bibliotecas que constituem o prot´otipo da aplica¸c˜ao HederaPass . . . 51
5.8 Ecr˜a de login implementado . . . 53
5.9 Ecr˜a de registo implementado . . . 53
5.10 Ecr˜a do menu implementado . . . 54
5.11 Ecr˜a implementado para o envio de an´uncios . . . 55
5.12 Ecr˜a de Hist´orico implementado . . . 57
5.13 Ecr˜as de Estado durante uma viagem com 1 paragem interm´edia . . . 57
5.14 Ecr˜a de Detalhes implementado . . . 58
5.15 Ecr˜a de Saldo implementado . . . 59
6.1 Setup de testes `a aplica¸c˜ao m´ovel do passageiro . . . 61
6.2 Linha de comandos “Logcat” . . . 61
6.3 Intervalos temporais testados no processo decheck-in de um passageiro . . . 62
6.4 Diagrama das amostras dos tempos decheck-in na aplica¸c˜ao . . . 63
6.5 Intervalo temporal testado no processo de identifica¸c˜ao de paragem . . . 63
6.6 Diagrama das amostras do tempo de identifica¸c˜ao de paragens na aplica¸c˜ao . 64 6.7 Intervalo temporal testado no processo decheck-out de um passageiro . . . . 64
6.8 Diagrama das amostras do tempo decheck-out na aplica¸c˜ao . . . 65
6.9 Setup de testes ao servidor . . . 67
6.10 Gr´aficos da resposta do servidor ao processo de check-in . . . 68
6.11 Gr´aficos da resposta do servidor ao processo de identifica¸c˜ao de paragem . . . 69
6.12 Gr´aficos da resposta do servidor ao processo de check-out (100/5) . . . 71
6.13 Gr´aficos da resposta do servidor ao processo de check-out (100/1) . . . 72
Lista de Tabelas
2.1 Compara¸c˜ao dos sistemas BLE . . . 13
2.2 Compara¸c˜ao dos sistemas BLE do ponto de vista do utilizador . . . 13
3.1 Caracter´ısticas do sistema IOTApass . . . 18
3.2 Compara¸c˜ao de criptomoedas . . . 23
4.1 Caracter´ısticas do sistema HederaPass . . . 33
6.1 Tempos de resposta no processo de check-in . . . 62
6.2 Tempos de resposta na identifica¸c˜ao de paragens . . . 63
6.3 Tempos de resposta no processo de check-out . . . 65
6.4 Requests e tempos de resposta do servidor no processo de check-in . . . 67
6.5 Requests e tempos de resposta do servidor na identifica¸c˜ao de paragens . . . . 68
6.6 Requests e tempos de resposta do servidor no processo de check-out . . . 70
Cap´ıtulo 1
Introdu¸ c˜ ao
1.1 Contexto
A tendˆencia de crescimento das zonas urbanas [4], aponta a que no futuro o trˆansito nas grandes cidades experiencie um aumento no seu congestionamento, provocado pelo aumento do transporte rodovi´ario particular de passageiros. Atualmente, estes ve´ıculos representam cerca de 32%1 [2] das emiss˜oes de gases de efeito de estufa, respons´aveis pelo aumento da temperatura do planeta. De forma a limitar o congestionamento nas grandes cidades e o aumento da temperatura a 2ºC2, o futuro reside no investimento em transportes p´ublicos que, para incentivar a ades˜ao de novos passageiros, dever˜ao continuar a evoluir no sentido de melhorar a sua pegada ecol´ogica, aumentar o seu conforto e otimizar o m´etodo de pagamento para evitar filas de espera e diminuir o tempo de paragem dos ve´ıculos.
Paralelamente ao potencial crescimento dos transportes p´ublicos, o acesso a smartphones aumentou mundialmente cerca de 74% nos ´ultimos 6 anos [5] e n˜ao d´a sinais de parar, fazendo destes fortes candidatos a serem utilizados no pagamento de transportes p´ublicos. Assim, um passageiro deixa de ter a preocupa¸c˜ao de perder bilhetes ou cart˜oes, tendo `a sua disposi¸c˜ao o seu pr´oprio smartphone que `a partida estaria consigo, tanto no caso de ir viajar, como em qualquer outra situa¸c˜ao.
Nos dias de hoje, a maioria dos transportes p´ublicos onde ossmartphones dos passageiros fazem parte dos seus sistemas, recorrem a tecnologias como c´odigos QR ou NFC. Sistemas com estas tecnologias tˆem em comum o facto de necessitarem que os passageiros validem a informa¸c˜ao que reside nos seus smartphones atrav´es de um contacto pr´oximo com um equipamento da empresa de transporte p´ublico, que usa esta tecnologia para ler a informa¸c˜ao, tipicamente dentro dos ve´ıculos, onde os passageiros necessitam de efetuar o seucheck-ine, no caso da viagem n˜ao ser pr´e-paga, tamb´em o seucheck-out. Este fator introduz uma fragilidade nos sistemas, tendo em conta que, caso haja um n´umero elevado de passageiros a querer efetuar um check-in/out e um passageiro estiver com dificuldades em efetuar o seu, este pode dar origem a uma longa fila de espera. Uma solu¸c˜ao para evitar este tipo de constrangimentos, ´e a transi¸c˜ao para sistemas BLE (Bluetooth Low Energy), onde ossmartphones dos passageiros poder˜ao interagir com equipamentos da empresa de transportes p´ublico `a distˆancia. Nesta disserta¸c˜ao, os sistemas com esta tecnologia ser˜ao identificados como BIBO (Be-In/Be-Out) no caso de n˜ao exigirem qualquer intera¸c˜ao do passageiro com o seusmartphone em situa¸c˜oes
1Estat´ısticas de 2017, assumindo as proje¸c˜oes pr´e pandemia [3]
2Valor estabelecido pelo Acordo de Paris assinado em 2016 pelos membros do UNFCCC [1]
decheck-in echeck-out, e CIBO (Check-in/Be-Out), se estes necessitarem que os passageiros interajam com a aplica¸c˜ao instalada no seus smartphones para efetuarem os seus check-ins.
Estes sistemas CIBO, apesar de carecerem da intera¸c˜ao dos passageiros com as suas aplica¸c˜oes, os passageiros podem fazˆe-lo j´a nos devidos lugares do ve´ıculo, evitando assim um ambiente prop´ıcio `a forma¸c˜ao de filas.
Em rela¸c˜ao aos poss´ıveis m´etodos de pagamento, hoje em dia, a maioria dos pagamentos online recorre awallets digitais como o PayPal, por´em o crescimento de criptomoedas descen- tralizadas, como a Bitcoin e Ethereum, que nos ´ultimos 5 anos obtiveram um crescimento de 8.600% e 27.000%3, acarreta um grande foco para o mundo das criptomoedas que, `a medida que provar ser de confian¸ca, far´a com que certas criptomoedas se possam vir a juntar `a lista de m´etodos de pagamento mais comuns [6].
Criptomoedas como Bitcoin e Ethereum, que recorrem `a tecnologia blockchain, exigem uma elevada capacidade de processamento para manter a integridade das suas estruturas e assegurar a seguran¸ca dos sistemas. A cada bloco de transa¸c˜oes das blockchains, est´a asso- ciado um problema matem´atico complexo que exige um elevado esfor¸co computacional para ser resolvido, resultando num elevado consumo energ´etico. Os envolvidos na resolu¸c˜ao des- tes problemas s˜ao os mineiros (miners), que s˜ao recompensados com um determinado valor monet´ario que ´e cobrado sob a forma de uma taxa a quem fez transa¸c˜oes da criptomoeda, desfavorecendo o uso destas criptomoedas para micropagamentos, tendo em conta o valor das taxas e o longo compasso de espera at´e que as transa¸c˜oes sejam validadas. Criptomoedas como IOTA, NANO e HBAR, por sua vez, foram desenvolvidas com vista a ultrapassar os limites impostos pela minera¸c˜ao. Ao eliminarem a necessidade de mineiros, foi resolvida a problem´atica das elevadas taxas por transa¸c˜ao, a rapidez das transa¸c˜oes aumentou e a capa- cidade de processamento necess´ario para as processar diminuiu, tornando estas criptomoedas ideais para efetuar micropagamentos e, consequentemente, fortes candidatas a fazer parte do m´etodo de pagamento de transportes p´ublicos, como sugerem os objetivos esta disserta¸c˜ao.
1.2 Objetivos
O principal foco desta disserta¸c˜ao, ´e o desenvolvimento de um sistema de pagamento autom´atico, para transportes p´ublicos, que efetue transa¸c˜oes atrav´es de uma criptomoeda.
Ap´os o estudo e an´alise de criptomoedas existentes no mercado, a criptomoeda escolhida para as transa¸c˜oes deve ser a que satisfa¸ca melhor as condi¸c˜oes impostas pelo sistema: ta- xas por transa¸c˜ao negligenci´aveis, transa¸c˜oes validadas num curto espa¸co de tempo, baixas exigˆencias a n´ıvel de processamento e, de preferˆencia, um SDK (Software Development Kit) favor´avel `a programa¸c˜ao das intera¸c˜oes do sistema com a plataforma da criptomoeda.
O sistema, atrav´es da tecnologia BLE, deve permitir que os smartphones dos passageiros comuniquem combeacons BLE instalados nos ve´ıculos, o que introduz amea¸cas `a seguran¸ca do sistema comospoofing ouhijacking, sendo que no primeiro caso a entidade maliciosa faz-se passar por um beacon do sistema atrav´es de umbeacon seu, enquanto que no segundo a enti- dade maliciosa obt´em o controlo de umbeacon pertencente ao sistema e pode fazer altera¸c˜oes
`
a informa¸c˜ao transmitida. Para evitar este tipo de situa¸c˜oes, o sistema deve garantir a auten- ticidade e integridade da informa¸c˜ao que chega aos passageiros, atrav´es do desenvolvimento de um sistema de encripta¸c˜ao.
3Equivalente a subidas de valor de$500 para$43.000 e$11 para$3.000.
O sistema, tamb´em deve incluir uma aplica¸c˜ao m´ovel para passageiros que permita o envio autom´atico da informa¸c˜ao proveniente dosbeacons para o servidor da empresa de transporte p´ublico, permitindo efetuar check-ins e check-outs sem requerer a intera¸c˜ao dos passageiros com a aplica¸c˜ao ou qualquer outro dispositivo, fazendo deste sistema, um sistema BIBO. O mesmo processo automatizado, aplica-se ao pagamento das viagens que deve ser realizado atrav´es de transa¸c˜oes de uma criptomoeda vi´avel para este efeito. A aplica¸c˜ao, al´em de permitir a comunica¸c˜ao direta com o servidor da empresa de transporte p´ublico, tamb´em deve oferecer uma interfaceuser-friendlyque permita aos seus utilizadores obterem funcionalidades como: facilitar o carregamento do saldo da conta, auxiliar na orienta¸c˜ao (ex.: mostrar o nome da ´ultima paragem efetuada e da paragem seguinte) e apresentar um hist´orico de viagens.
De forma a assegurar que os passageiros procedem de acordo com as regras preestabeleci- das para o bom funcionamento do sistema, este deve ainda incluir uma aplica¸c˜ao m´ovel para revisores que os auxilia a verificar se os passageiros viajam legalmente e, no caso de haver falhas de Internet ou BLE nosmartphone de um passageiro, estes poderem estabelecer algum tipo de comunica¸c˜ao com a aplica¸c˜ao do passageiro para que este possa, mesmo assim, viajar legalmente.
Por fim, para testar o sistema desenvolvido, dever˜ao ser desenvolvidos prot´otipos para os elementos da arquitetura respons´aveis pelas transa¸c˜oes, de forma a implementar um ambiente favor´avel a testes que estudem a viabilidade do uso da criptomoeda neste contexto.
1.3 Organiza¸ c˜ ao
Contando com a Introdu¸c˜ao, a disserta¸c˜ao ´e constitu´ıda por sete cap´ıtulos. O Cap´ıtulo 2 analisa e compara quatro sistemas BLE projetados para transportes p´ublicos. O Cap´ıtulo 3 analisa e compara trˆes criptomoedas com caracter´ısticas favor´aveis a micropagamentos, al´em de analisar um novo sistema BLE que tamb´em ´e comparado com os sistemas analisados no Cap´ıtulo 2. O Cap´ıtulo 4 foca-se em micropagamentos em transportes p´ublicos atrav´es da criptomoeda Hedera Hashgraph, e divide-se em quatro sec¸c˜oes: a Sec¸c˜ao 4.1 descreve uma proposta de arquitetura de um sistema BLE que usa a Hedera Hashgraph nos seus pagamentos (HederaPass), al´em de descrever o seu funcionamento e mecanismo de seguran¸ca; a Sec¸c˜ao 4.2 compara o sistema HederaPass aos sistemas BLE analisados anteriormente; a Sec¸c˜ao 4.3 faz uma descri¸c˜ao mais detalhada das aplica¸c˜oes m´oveis que fazem parte do HederaPass; e a Sec¸c˜ao 4.4 explica o processo de cria¸c˜ao de contas Hedera Hashgraph e transa¸c˜oes entre elas numa plataforma de testes (Testnet). O Cap´ıtulo 5 descreve a implementa¸c˜ao dos prot´otipos do servidor e aplica¸c˜ao para passageiros que fazem parte do HederaPass. O Cap´ıtulo 6 descreve os testes feitos `a aplica¸c˜ao do passageiro e ao servidor implementados, apresenta os resultados e analisa-os. Por fim, o Cap´ıtulo 7 termina a disserta¸c˜ao com uma an´alise geral da disserta¸c˜ao e propostas de trabalho futuro.
Cap´ıtulo 2
Sistemas BLE aplicados a transportes p´ ublicos
Tendo o objetivo de melhorar a experiˆencia de utiliza¸c˜ao de transportes p´ublicos, ´e ne- cess´ario abordar o tempo gasto em filas de espera para efetuar a compra e valida¸c˜ao de bilhetes. Uma forma de melhorar este aspeto, ´e construir um sistema baseado na tecnologia BLE, que permita a dete¸c˜ao das entradas e sa´ıdas dos passageiros `a distˆancia.
Neste cap´ıtulo ser˜ao analisados sistemas BIBO (Be-in/Be-out) como [7] e [10], e sistemas que necessitam da confirma¸c˜ao manual de check-in, tamb´em conhecidos por CIBO (Check- in/Be-out), como o [9] e [11, 12] onde, apesar de ocheck-in n˜ao ser autom´atico, este poder´a ser efetuado com o smartphone do utilizador depois de este ocupar o seu devido lugar no transporte p´ublico, evitando tamb´em a forma¸c˜ao de filas de espera.
2.1 BIBOLinz
Este projeto [7, 8] desenvolvido na Universidade Johannes Kepler no ˆambito da inici- ativa austr´ıaca IV2Splus, tem o objetivo de melhorar a mobilidade de pessoas fisicamente incapacitadas, crian¸cas e idosos, em autocarros, atrav´es de um sistema BIBO que usa a tec- nologia BLE. N˜ao tendo sido encontrado um nome para este sistema na bibliografia, este ser´a referenciado como BIBOLinz para facilitar a sua referˆencia.
Dentro de cada autocarro, a arquitetura do sistema ´e composta por umbeaconpertencente ao passageiro (1) ou umsmartphone (2), um m´odulo “OBS” (On-Board-System), constitu´ıdo por uma unidade de processamento (Raspberry Pi) (3) com um dongle BLE acoplado (4), o computador de bordo do pr´oprio autocarro (5) e uma base de dados local (6) que guarda a informa¸c˜ao proveniente da unidade de processamento: ID dos clientes associados `as suas localiza¸c˜oes nos momentos de scanning do sistema e timestamps correspondentes. Fora dos autocarros, a arquitetura ´e constitu´ıda por um servidor remoto (backend) que, ao associar a informa¸c˜ao pessoal dos passageiros (7) `a informa¸c˜ao da viagem (8), ´e respons´avel por tax´a-los (9). O OBS comunica com o computador de bordo e funciona como uma unidade central que estabelece a liga¸c˜ao entre o smartphone e obackend, como se verifica na Figura 2.1.
Neste sistema BIBO, o check-in e check-out dos passageiros ´e autom´atico, e o papel de- sempenhado pelos smartphones ´e o de fazer broadcasts ao OBS para anunciar a presen¸ca dos respetivos passageiros no autocarro. Tendo em conta a simplicidade da fun¸c˜ao dossmartpho- nes, n˜ao s˜ao especificados quaisquer detalhes em rela¸c˜ao a aplica¸c˜oes m´oveis.
Figura 2.1: Arquitetura do sistema BIBOLinz.
Durante a viagem, para confirmar a presen¸ca dos passageiros, o OBS faz scansperi´odicos despoletados por eventos do computador de bordo, de forma a realiz´a-los em momentos em que o ve´ıculo n˜ao se encontra perto de paragens, para n˜ao identificar dispositivos BLE que n˜ao perten¸cam a passageiros. Partindo deste princ´ıpio, o OBS pode efetuar um scan 30 segundos ap´os o computador de bordo sinalizar que as portas do autocarro foram fechadas.
Um dispositivo BLE identificado por um determinado n´umero de scans, ´e identificado como um passageiro do autocarro.
Como se pode verificar na Figura 2.2, os beacons/smartphones, para estabelecerem um handshake com o OBS, come¸cam por fazer um broadcast BLE (1), que ´e recebido pelo OBS (2). Ap´os estas primeiras intera¸c˜oes, o OBS envia uma key AES de 128 bits encriptada (3) que, do lado do cliente, ´e desencriptada, concatenada ao ID do cliente (“client ID”) e encriptada novamente (4), que acaba por ser lida e desencriptada pelo OBS (5). Caso akey inicial consiga ser restaurada atrav´es da sua desencripta¸c˜ao, o OBS valida o ID do cliente, guarda-o e envia-lhe a indica¸c˜ao de que pode parar de fazerbroadcasts BLE (6) at´e voltarem a comunicar no pr´oximo scan.
Com base em informa¸c˜ao guardada antes do in´ıcio da viagem - nomes das paragens as- sociados `as suas localiza¸c˜oes GPS ou associados `a sequˆencia de scans peri´odicos realizados pelo OBS - o ID dos clientes fica associado ao nome das paragens por onde passam, com os respetivostimestamps, na base de dados do OBS. Esta informa¸c˜ao ´e transmitida, via Internet, ao servidor remoto (backend) onde ´e calculado o custo da viagem.
Quanto ao m´etodo de pagamento, este tem o banco do cliente como mediador entre o cliente e a empresa de transporte p´ublico, em que o banco fornece uma key ao utilizador, que o mesmo associa ao pagamento das viagens, como demonstra a Figura 2.3. Assim, a empresa de transporte p´ublico n˜ao tem acesso a informa¸c˜ao delicada do utilizador e o banco n˜ao tem a informa¸c˜ao de onde e quando o seu cliente viajou, limitando-se a retirar mensalmente da
Figura 2.2: Dete¸c˜ao dos passageiros no sistema BIBOLinz.
conta do seu cliente a quantia acumulada das viagens efetuadas pelo mesmo.
2.2 CIBOLisboa
Este sistema [9] desenvolvido no Instituto Superior T´ecnico de Lisboa, adaptado `a CAR- RIS1, prop˜oe uma arquitetura que usa funcionalidades dossmartphones dos passageiros como GPS e sensores de movimento, para substituir a instala¸c˜ao de uma unidade central de pro- cessamento no ve´ıculo (ex.: Raspberry Pi) ou liga¸c˜ao ao computador de bordo do mesmo. O sistema ser´a referenciado como CIBOLisboa, para facilitar a sua referˆencia.
Este sistema ´e composto por quatrobeacons por autocarro comum da CARRIS (seis por articulado), umbackend e osmartphone do passageiro. Osbeacons enviam, periodicamente, informa¸c˜ao est´atica aosmartphonepara confirmar a presen¸ca do passageiro no autocarro, e o smartphone reencaminha essa informa¸c˜ao para obackend da empresa de transporte p´ublico, que ´e o respons´avel pela an´alise e processamento de dados. Al´em destes trˆes elementos distintos da arquitetura, h´a ainda um revisor, que a qualquer momento pode confirmar se o
1Empresa de transporte p´ublico de Lisboa.
Figura 2.3: M´etodo de pagamento do sistema BIBOLinz.
passageiro est´a a viajar legalmente. A arquitetura do sistema encontra-se representada na Figura 2.4.
Quanto ao seu funcionamento, o utilizador come¸ca por fazer odownload da aplica¸c˜ao no seu smartphone e registar-se. Ap´os efetuar o login na aplica¸c˜ao, deve confirmar o seu saldo e, caso esteja abaixo da quantia m´ınima estipulada para dar in´ıcio `a viagem, ter´a de efetuar um carregamento. J´a dentro do autocarro, com saldo suficiente, o smartphone identifica os beacons mais pr´oximos e a aplica¸c˜ao deve selecionar automaticamente o autocarro no qual se encontra o utilizador, opera¸c˜ao que, em caso de falha, o utilizador deve confirmar manualmente o devido autocarro. Para dar in´ıcio `a viagem, sucede-se o check-in manual na aplica¸c˜ao, clicando no bot˜ao “Check-in”, e ´e esta a¸c˜ao que vai enviar a localiza¸c˜ao GPS do smartphone aobackend, identificando a esta¸c˜ao/paragem de partida. Nesta fase, o passageiro apenas ter´a de interagir novamente com a aplica¸c˜ao, caso o revisor pe¸ca que este prove que est´a a viajar legalmente, ao que o passageiro deve proceder a um clique num bot˜ao espec´ıfico da sua aplica¸c˜ao para esta situa¸c˜ao, que vai gerar um c´odigo QR e o revisor confirma-o com a cˆamara do seu pr´oprio smartphone. No final da viagem, o smartphone do utilizador, ao sair do autocarro, deixa de identificar o n´umero m´ınimo de beacons definido pelo sistema e a aplica¸c˜ao d´a por terminada a viagem automaticamente (Be-Out), voltando a enviar a localiza¸c˜ao GPS ao backend, que a associa a uma esta¸c˜ao. O backend, ap´os o check-out, calcula o custo da viagem, baseado nas esta¸c˜oes percorridas pelo passageiro e cobra-lhe esse montante. O hist´orico de viagens e o custo das mesmas podem ser consultados a qualquer momento no smartphone do utilizador.
2.3 SEAT
O sistema SEAT [10] desenvolvido na TU Delft, consiste numa nova perspetiva de um sistema BIBO. Este projeto aborda um sistema que difere dos anteriores, por usar diferentes tipos de dispositivos dentro dos ve´ıculos para efetuar check-ins,check-outs e comunicar com o backend.
A sua arquitetura, apresenta um dispositivo para registar ocheck-in (“vehicle check-in”),
Figura 2.4: Arquitetura do sistema CIBOLisboa.
outro para registar o check-out (“vehicle check-out”), um dispositivo central (“vehicle cen- tral”), umbackend (“back-end”) e osmartphonedo passageiro (“passenger”). Os dispositivos de check-in e check-out, tˆem a fun¸c˜ao de receber a informa¸c˜ao do smartphone do passageiro em rela¸c˜ao `a sua permanˆencia no autocarro e comunic´a-la ao dispositivo central que, al´em de comunicar com estes, tamb´em comunica diretamente com o backend.
Al´em destes elementos distintos da arquitetura, este sistema tamb´em recorre a um revisor, que a qualquer momento pode confirmar se um passageiro est´a a viajar legalmente, comu- nicando com o dispositivo central ou diretamente com o smartphone do passageiro. Esta arquitetura encontra-se representada na Figura 2.5.
O dispositivo de check-in, que comunica com o smartphone do passageiro por BLE, identifica-o na sua entrada para o autocarro. Esta identifica¸c˜ao de check-in ´e registada pelo dispositivo central, que comunica a informa¸c˜ao ao dispositivo decheck-out que, por sua vez, envia mensagens encriptadas ao smartphone do passageiro, tamb´em por BLE, para este as desencriptar e confirmar que se mant´em presente no autocarro. A partir do momento em que o smartphone deixa de responder a esta troca de informa¸c˜ao, ´e identificado ocheck-out.
Com base na informa¸c˜ao agregada por estes dois dispositivos, o dispositivo central regista localmente a informa¸c˜ao dos s´ıtios em que o passageiro efetuou ocheck-in e ocheck-out e re- encaminha essa informa¸c˜ao aobackend atrav´es de uma comunica¸c˜ao 3G ou, em modooffline, pode comunic´a-la apenas no final do dia de servi¸co2.
Para o correto funcionamento do sistema, o utilizador necessita de fazer o download da aplica¸c˜ao no seu smartphone e registar-se, enviando o registo para o backend que guarda o perfil do utilizador para efeitos de autentica¸c˜ao. Sendo este um sistema BIBO, ap´os efetuar o login na aplica¸c˜ao, o utilizador n˜ao requer qualquer intera¸c˜ao adicional com o seusmartphone
2O tipo de comunica¸c˜ao n˜ao ´e especificada na bibliografia
Figura 2.5: Arquitetura do sistema SEAT.
Figura 2.6: Processo decheck-ine verifica¸c˜ao de permanˆencia do passageiro no sistema SEAT.
durante a viagem, necessitando apenas de o fazer caso o revisor o requisite. Nesse caso, o passageiro fornece ao revisor um c´odigo dispon´ıvel na sua aplica¸c˜ao, que o revisor valida no seu pr´oprio dispositivo3.
Quanto `a sua seguran¸ca, o sistema recorre a um esquema complexo de distribui¸c˜ao de keys composto por certificados, encripta¸c˜ao assim´etrica, c´odigos para autentica¸c˜ao de men- sagens (MAC)4, assinaturas digitais e encripta¸c˜ao sim´etrica, em que as chaves s˜ao trocadas recorrendo ao m´etodo Diffie-Hellman. Obackend funciona como uma CA (Autoridade de Cer- tifica¸c˜ao)5, onde tem um par de chaves assim´etricas ECC (Criptografia de Curva El´ıtica)6, em que aprivate key ´e usada para assinar os certificados etokens atribu´ıdos aos dispositivos registados no sistema, e a public key ´e distribu´ıda pelos mesmos dispositivos, para estes po- derem verificar a validade dessas assinaturas. Enquanto isso, o dispositivo central e o revisor tamb´em geram os seus pares de chaves ECC, de validade limitada e seguran¸ca inferior, e enviam as public keys desses pares aobackend, para que este lhes atribua um certificado tem- por´ario, permitindo-lhes estabelecer uma comunica¸c˜ao segura com os passageiros atrav´es de
3A bibliografia n˜ao especifica o tipo de dispositivo.
4Message Authentication Code
5Certification Authority
6Elliptic-Curve Cryptography
Figura 2.7: Arquitetura do sistema Anda.
tokens e assinaturas digitais. As comunica¸c˜oes do dispositivo do revisor com os passageiros e dispositivo central, recorrem a “session keys” - chaves sim´etricas de encripta¸c˜ao AES de 128 bits - sistema de encripta¸c˜ao tamb´em usado na comunica¸c˜ao do smartphone do passageiro com o dispositivo de check-in, que usa uma chave tempor´aria, que ser´a referida como “CT”.
A comunica¸c˜ao do smartphone do passageiro com o dispositivo de check-in, segue a ordem de eventos representada na Figura 2.6 (1-4). Inicialmente, o dispositivo de check-in envia um certificado com a sua public key ao passageiro (1), que usa essa chave para encriptar a chave CT, enviada junto da DH-17e um MAC criado com a pr´opria chave CT (2). Segue-se a resposta do dispositivo com a DH-2 e um MAC para esta chave criado tamb´em pela chave CT (3). Assim, fica estabelecida uma liga¸c˜ao segura entre os dois elementos e ´e criada uma chave
“KeyJ”, que ´e usada para osmartphone encriptar o seutoken e envi´a-lo para o dispositivo de check-in (4). Mais tarde, na comunica¸c˜ao do smartphone do passageiro com o dispositivo de check-out (5-6), o dispositivo decheck-out vai enviar mensagens encriptadas pela chave KeyJ ao smartphone (5), que o smartphone desencripta e responde com mensagens de “Ok” (6), confirmando a sua presen¸ca.
Por fim, o respons´avel por calcular e cobrar o custo da viagem do passageiro, com base na sua distˆancia percorrida, ´e o backend. Tendo em conta que, independentemente do modo (online ou offline) a comunica¸c˜ao do dispositivo central com o backend s´o ´e feita no final da viagem do passageiro, pode-se depreender que este sistema ´e p´os-pago.
2.4 Anda
O sistema Anda [11, 12] desenvolvido na FEUP, prop˜oe melhorar o sistema Andante que atualmente comunica por RFID em esta¸c˜oes da ´area metropolitana do Porto, atrav´es da sua transi¸c˜ao para a tecnologia BLE. Para isso, prop˜oe duas arquiteturas diferentes, uma para autocarros e outra para transportes ferrovi´arios.
Para autocarros, o sistema prop˜oe o uso de um ou maisbeacons ligados por cabo ao com- putador de bordo dos ve´ıculos, um servidor remoto (backend) e o smartphone do utilizador.
Os beacons recebem informa¸c˜ao acerca das paragens proveniente do computador de bordo e transmitem-na aosmartphone do passageiro, que a comunica ao backend. Este backend ´e da responsabilidade da empresa de transporte p´ublico e ´e l´a que a informa¸c˜ao ´e analisada e processada.
No caso dos transportes ferrovi´arios, a arquitetura tamb´em ´e constitu´ıda por um servidor remoto, osmartphone do utilizador e beacons, por´em n˜ao necessita do computador de bordo dos ve´ıculos e os beacons s˜ao instalados nos atuais postos de valida¸c˜ao do sistema RFID Andante, situados em paragens/esta¸c˜oes. Estes beacons apresentam um funcionamento mais simples que os beacons para o sistema de autocarros, por apenas necessitarem de enviar informa¸c˜ao para o smartphone acerca da paragem/esta¸c˜ao onde est˜ao instalados. Enquanto que a informa¸c˜ao enviada pelosbeacons no sistema para autocarros ´e dinˆamica, a informa¸c˜ao enviada pelos beacons no sistema para transportes ferrovi´arios ´e est´atica, o que simplifica a complexidade destes segundos, por´em aumenta a complexidade da aplica¸c˜ao m´ovel dos passageiros. Estas duas arquiteturas podem ser consultadas na Figura 2.7.
Do ponto de vista do utilizador, o funcionamento do sistema para autocarros ´e idˆentico ao sistema para transportes ferrovi´arios. O utilizador come¸ca por fazer odownload da aplica¸c˜ao para o seusmartphonee registar-se. Ap´os efetuar ologin na aplica¸c˜ao, osmartphoneidentifica osbeacons detetados nas proximidades e o utilizador necessita de fazer um check-in manual, selecionando a paragem/esta¸c˜ao onde vai dar in´ıcio `a sua viagem (beacon pertencente ao sistema, que est´a mais pr´oximo).
Iniciando a sua viagem, a aplica¸c˜ao recebe informa¸c˜ao proveniente do autocarro ou para- gens/esta¸c˜oes, onde o utilizador pode verificar as paragens por onde j´a passou e as paragens por onde ainda vai passar at´e chegar ao seu destino. Durante a viagem, o revisor pode pe- dir ao utilizador que prove estar a viajar legalmente e este apenas necessita de mostrar um c´odigo alfanum´erico dispon´ıvel na sua aplica¸c˜ao gerado para esta situa¸c˜ao, que o revisor valida introduzindo-o no seu pr´oprio smartphone. Chegando ao destino, o check-out ´e autom´atico.
Osmartphone ao ficar fora do alcance dosbeaconsque fazem parte da rota do ve´ıculo, deteta a quebra da sequˆencia debeacons esperada e a viagem ´e dada por terminada, fazendo com que este seja um sistema CIBO (Check-In/Be-Out). Com a viagem conclu´ıda, obackend analisa o trajeto efetuado e calcula o seu custo, seguindo o m´etodo atual do Andante, com tarifas por zonas. Este sistema acumula o custo das viagens e, no final do mˆes, retira o montante total da conta do utilizador, sujeito a otimiza¸c˜oes de tarifa que beneficiam os passageiros. O hist´orico de viagens e o custo das mesmas tamb´em podem ser consultados, a qualquer momento, no smartphone do utilizador.
BIBOLinz[7] CIBOLisboa[9] SEAT[10] Anda[11, 12]
Complex. Arq elevada moderada elevada elevada/moderada
Adaptabilidade baixa moderada baixa baixa/elevada
Seguran¸ca AM,unlink. - AM,unlink.,PFS -
Tabela 2.1: Compara¸c˜ao dos sistemas BLE.
BIBOLinz[7, 8] CIBOLisboa[9] SEAT[10] Anda[11, 12]
Usabilidade f´acil complexa moderada complexa
M´etodo Paga. banco mediador - - -
Pontualidade Paga. mensal fim da viagem fim da viagem mensal
Custo Inicial Paga. 0 valor de entrada - 0
C´alculo Tarifa n.ºparagens n.ºparagens distˆancia zonas Tabela 2.2: Compara¸c˜ao dos sistemas BLE do ponto de vista do utilizador.
2.5 Compara¸ c˜ ao de sistemas BLE
Para comparar os sistemas analisados anteriormente, foram avaliadas as seguintes ca- racter´ısticas na Tabela 2.1: complexidade das arquiteturas, adaptabilidade aos ve´ıculos e seguran¸ca dos sistemas. Nos casos em que n˜ao foi encontrada informa¸c˜ao suficiente na pre- sente bibliografia, a caracter´ıstica est´a representada por um h´ıfen. De salientar ainda que no sistema Anda, foram avaliadas, separadamente, a arquitetura projetada para autocarros (`a esquerda) e a arquitetura projetada para transportes ferrovi´arios (`a direita).
A complexidade das arquiteturas foi avaliada com base no n´umero de componentes que as integram e a complexidade de cada um dos elementos, fatores que tamb´em definem a adap- tabilidade das mesmas. Come¸cando pelo sistema BIBOLinz, este necessita de uma unidade de processamento por autocarro, com liga¸c˜ao ao computador de bordo do ve´ıculo, tal como na arquitetura projetada para autocarros do sistema Anda, o que eleva a complexidade dos sistemas e dificulta a sua adapta¸c˜ao aos sistemas atuais. J´a o sistema SEAT, apesar de n˜ao usar o computador de bordo do ve´ıculo, ´e complexo dado o n´umero de dispositivos diferentes que envolve e a complexidade dos mesmos, fatores que resultam numa baixa adaptabilidade, tendo em conta o elevado n´umero de novos dispositivos a adicionar aos ve´ıculos e o seu custo total. Quanto `a complexidade da arquitetura do sistema CIBOLisboa, esta ´e moderada tal como a do sistema Anda para transportes ferrovi´arios, por n˜ao necessitarem de uma unidade central de processamento nos ve´ıculos ou liga¸c˜ao ao computador de bordo e usarembeacons que transmitem informa¸c˜ao est´atica, o que faz com que a complexidade seja “transferida”
para as aplica¸c˜oes m´oveis dos utilizadores. Quanto `a adaptabilidade destes sistemas, esta distingue-se pela necessidade que o CIBOLisboa tem de instalar pelo menos doisbeacons por autocarro, enquanto que no sistema Anda para transportes ferrovi´arios, os beacons s˜ao co- locados nos postos de valida¸c˜ao RFID j´a existentes, fazendo com que este seja o sistema de melhor adaptabilidade.
7DH-1 - Primeira parte da chave Diffie-Hellman; DH-2 - Segunda parte
Por fim, no cap´ıtulo da seguran¸ca, o sistema BIBOLinz, atrav´es de umhandshake AES- 128 do smartphone dos passageiros com a OBS do ve´ıculo, oferece autentica¸c˜ao m´utua e unlinkability, enquanto que, no caso do sistema SEAT, al´em destes tamb´em h´a PFS (Perfect Forward Secrecy) no seu complexo sistema de distribui¸c˜ao dekeyse protocolos de comunica¸c˜ao entre os elementos da arquitetura.
Na Tabela 2.2 foram analisadas as seguintes caracter´ısticas de cada sistema do ponto de vista do utilizador: usabilidade do sistema, m´etodo de pagamento, pontualidade do paga- mento, custo inicial da viagem (dinheiro que o utilizador precisa de ter dispon´ıvel para dar in´ıcio `a viagem) e c´alculo da tarifa.
Come¸cando pela usabilidade, no sistema BIBOLinz o smartphone tem apenas a fun¸c˜ao de beacon para registar a presen¸ca do passageiro, fazendo com que este seja o sistema com a usabilidade mais simples. No outro sistema BIBO, o SEAT, a usabilidade ´e moderada, tendo em conta que o utilizador necessita de se registar e efetuar ologin na aplica¸c˜ao, para o check-in e check-out serem registados automaticamente, s´o necessitando de interagir com a sua aplica¸c˜ao novamente caso o revisor o requisite. Enquanto isso no caso dos sistemas CIBOLisboa e Anda, estes apresentam uma usabilidade mais complexa, dado que os sistemas requerem que o utilizador se registe, fa¸calogin na aplica¸c˜ao e, antes de cada viagem, efetuem ocheck-in manualmente na aplica¸c˜ao, podendo ainda de ter de fornecer um c´odigo ao revisor, caso este o requisite durante a viagem.
Em rela¸c˜ao ao m´etodo de pagamento dos sistemas, o sistema BIBOLinz apresenta uma solu¸c˜ao que tem o banco do cliente como mediador entre o cliente e a empresa de transporte p´ublico, em que o banco fornece umakey ao utilizador, que o mesmo associa ao pagamento das viagens. Os restantes sistemas n˜ao apresentam detalhes em rela¸c˜ao ao m´etodo de paga- mento, sendo que o sistema CIBOLisboa apenas faz referˆencias `a possibilidade da utiliza¸c˜ao de pagamentos por smartphone atrav´es do Apple Pay, Google Wallet e PayPal, tal como o sistema Anda, que referencia o Apple Pay e o Android Pay. Quanto `a pontualidade do pagamento dos sistemas e custo inicial das viagens, este ´e mensal, sem necessidade de saldo positivo no in´ıcio das viagens, nos casos dos sistemas BIBOLinz e Anda, enquanto que, no caso do sistema CIBOLisboa, ´e necess´ario um valor inicial de entrada para que o utilizador possa dar in´ıcio a uma viagem, e o pagamento ´e efetuado no check-out. O sistema SEAT apenas refere que obackend ´e o respons´avel por cobrar o montante da viagem do passageiro, no final da viagem. Por fim, o c´alculo da tarifa dos sistemas BIBOLinz e CIBOLisboa ´e baseado no n´umero de paragens por onde passa o passageiro, no sistema SEAT ´e baseado na distˆancia percorrida e, no sistema Anda, o c´alculo ´e efetuado com base nas zonas por onde circula o passageiro, como no atual sistema Andante.
Cap´ıtulo 3
Criptomoedas aplicadas a micropagamentos
Os m´etodos de pagamento atualmente praticados pelas empresas de transporte p´ublico, geralmente requerem que os passageiros fa¸cam uma compra pr´evia das suas viagens, como ´e o caso da compra de bilhetes f´ısicos e cart˜oes RFID, que al´em de sujeitarem os passageiros `a sua perda ou esquecimento, tamb´em podem fazˆe-los esperar em filas para os adquirirem. A problem´atica das filas de espera recorrentes pode ser mitigada atrav´es da aquisi¸c˜ao de passes pr´e-pagos, ou passes com pagamentos feitos pelos passageiros no fim de cada mˆes. Por´em, poder´a levar os passageiros a pagar por viagens que n˜ao v˜ao fazer ou, no caso de pagamentos mensais, poder´a prejudicar a empresa de transporte p´ublico por ter de esperar pelo fim do mˆes para receber o montante.
Uma forma de resolver estes problemas, ´e substituir estes m´etodos de pagamento por um m´etodo de pagamento que permita aos passageiros pagarem as suas viagens, durante as pr´oprias viagens, sem a necessidade de adquirirem objetos f´ısicos. O que pode ser implemen- tado recorrendo a criptomoedas que possam ser transferidas rapidamente e com taxas muito reduzidas, atrav´es dos smartphones pessoais dos passageiros.
3.1 IOTA
A criptomoeda IOTA [16], foi criada a pensar na IoT (Internet of Things) para resolver problemas de descentraliza¸c˜ao, escalabilidade e custo de transa¸c˜oes, atrav´es da tangle.
A tangle ´e uma DLT (Distributed Ledger Technology) baseada no conceito matem´atico DAG (Directed Acyclic Graph), que elimina a necessidade de mineiros (miners) e melhora a sua eficiˆencia quanto maior for o n´umero de transa¸c˜oes registadas no seu hist´orico.
Em tecnologiasblockchain, como a Bitcoin, cada bloco da sequˆencia exige a resolu¸c˜ao de um problema matem´atico complexo, para que possa fazer parte da sequˆencia de blocos que definem o hist´orico de transa¸c˜oes do sistema. Este problema, denominado de PoW (Prova de Trabalho)1, ´e resolvido por um mineiro que, ao ter chegado primeiro `a resposta, ´e recompen- sado pelo esfor¸co computacional que o problema lhe exigiu, com um certo valor monet´ario proveniente de taxas que os utilizadores que submeteram transa¸c˜oes nesse bloco tiveram de pagar. Assim, este sistema apresenta custos elevados a quem pretende fazer transa¸c˜oes e
1Proof-of-Work
Figura 3.1: Estrutura datangle.[14]
falhas na sua descentraliza¸c˜ao, tendo em conta que, na “ca¸ca `a recompensa”, apenas os mi- neiros com maiores recursos computacionais poder˜ao adicionar blocos `ablockchain. No caso datangle, n˜ao existem recompensas nem mineiros, resultando tamb´em na inexistˆencia de ta- xas a quem pretende efetuar transa¸c˜oes. Apesar desta plataforma tamb´em requerer provas de trabalho, estas s˜ao mais simples porque em vez de terem o objetivo de construir a rede, s˜ao apenas uma ferramenta para evitar o spam de transa¸c˜oes ilegais efetuado por entidades maliciosas.
Os dispositivos respons´aveis por assegurar a integridade datangle, s˜ao os n´os (nodes). Es- tes recebem as transa¸c˜oes dos utilizadores e anexam-nas `atangle. Para efetuar uma transa¸c˜ao, um n´o procede da seguinte forma: escolhe duas outras transa¸c˜oes para validar (de acordo com um determinado algoritmo), vˆe se as valida¸c˜oes n˜ao entram em conflito com a estrutura e, por fim, para que a pr´opria transa¸c˜ao seja validada, realiza a PoW anteriormente referida, gerandohashes at´e encontrar umnonce que valida a transa¸c˜ao. Al´em destas funcionalidades, os n´os tamb´em sincronizam a estrutura, registam o saldo dos utilizadores e fornecem APIs aos mesmos. Esta estrutura ´e retratada pela Figura 3.1, em que o tempo aumenta da esquerda para a direita, cada quadrado representa uma transa¸c˜ao e, cada seta, representa a valida¸c˜ao de uma transa¸c˜ao (uma transa¸c˜ao com uma seta apontada na sua dire¸c˜ao, ´e uma transa¸c˜ao validada pela transa¸c˜ao da origem da seta) e, sempre que uma nova transa¸c˜ao ´e registada, esta deve validar pelo menos duas outras transa¸c˜oes anteriormente registadas na estrutura.
As transa¸c˜` oes que aguardam aprova¸c˜ao, ´e-lhes atribu´ıdo o termo “tip”.
Um dos crit´erios mais relevantes para definir o n´ıvel de confian¸ca de uma transa¸c˜ao,
´e o peso acumulado (cumulative weight), em que o peso de uma transa¸c˜ao ´e proporcional
`
a “quantidade de trabalho” da PoW investida pelos n´os que a anexaram `a rede. Este ´e resultante da soma do peso da pr´opria transa¸c˜ao com o peso de todas as transa¸c˜oes que a aprovam, direta ou indiretamente. Quanto maior for o peso acumulado, maior ser´a o n´ıvel de confian¸ca que uma transa¸c˜ao possui e quanto menor for o n´ıvel de confian¸ca, menor dever´a ser a probabilidade dessa transa¸c˜ao ser validada. A primeira e mais importante transa¸c˜ao efetuada na tangle IOTA ´e conhecida por transa¸c˜ao “genesis”, que ´e aprovada, direta ou indiretamente, por todas as transa¸c˜oes existentes. Esta origem de toda a tangle, ´e a origem de todos os tokens existentes (2.779.530.283 MIOTA).
Figura 3.2: Arquitetura do sistema IOTApass.
3.1.1 IOTApass
Uma das aplica¸c˜oes da plataforma IOTA s˜ao os pagamentos em transportes p´ublicos, como se verifica no caso do IOTApass [15]. Este sistema alia um m´etodo de pagamento que recorre `a transa¸c˜ao de criptomoedas IOTA, ao facto de ser um sistema BIBO com comunica¸c˜ao atrav´es de BLE.
A sua arquitetura, representada na Figura 3.2, ´e constitu´ıda por beacons dinˆamicos com uma base de dados local, um servidor remoto (backend), osmartphonedo utilizador e atangle IOTA. O sistema est´a ainda adaptado a revisores que, a qualquer momento, podem confirmar se o passageiro est´a a viajar legalmente.
Em rela¸c˜ao `a comunica¸c˜ao entre os elementos da arquitetura, os beacons transmitem informa¸c˜ao sob a forma de hashes, que a base de dados local recebe do backend. Estas hashes apontam para atangle, onde est´a guardada a informa¸c˜ao necess´aria para desencadear as transa¸c˜oes monet´arias entre o passageiro e a empresa de transporte p´ublico e, tendo em conta que diferentes pontos da viagem devem corresponder a diferentes custos, estashashes dependem da localiza¸c˜ao GPS do ve´ıculo. Al´em das hashes, os beacons tamb´em enviam para osmartphone do passageiro os seus IDs e coordenadas GPS do ve´ıculo, que a aplica¸c˜ao reencaminha para obackend (aquando do seucheck-in echeck-out), junto do ID do utilizador (“user ID”), obtido atrav´es do seu registo na aplica¸c˜ao.
Antes de dar in´ıcio a uma viagem, o passageiro introduz o seu nome de utilizador (user- name), palavra-passe e, opcionalmente, o seu VAT2. Ao submeter estes dados, a aplica¸c˜ao cria um par de chaves, em que aprivate key ´e usada para assinar as mensagens enviadas em nome do utilizador e envia, junto das informa¸c˜oes introduzidas no registo, apublic key para o backend, que por sua vez responde com a atribui¸c˜ao de um user ID ao utilizador e lhe fornece apublic key do pr´oprio servidor.
Com o login efetuado, ao entrar no ve´ıculo, o check-in ´e feito automaticamente com a
2Corresponde ao NIF (N´umero de Identifica¸c˜ao Fiscal).
aplica¸c˜ao a enviar uma mensagem de check-in para o backend, composta pela informa¸c˜ao proveniente dos beacons(ID e coordenadas GPS), junto da identifica¸c˜ao do pr´oprio utilizador (user ID). Ap´os o envio da mensagem, a aplica¸c˜ao acede `a hash, valida a assinatura com a public key da empresa de transporte p´ublico e, atrav´es dessahash obt´em o endere¸co IOTA da empresa de transporte p´ublico e o valor a transferir que corresponde `a tarifa da viagem mais longa da rota do ve´ıculo, em IOTAs, a partir o seu check-in. A pr´opria transa¸c˜ao, al´em de transferir o montante referido, tamb´em identifica o passageiro e ´e assinada pela sua private key, ao que obackend responde, com uma mensagem que confirma o pagamento. De salientar que, enquanto a transferˆencia do montante ´e efetuada mesmo que o servidor estejaoffline, a mensagem de confirma¸c˜ao apenas se realizar´a com o servidoronline.
Durante a viagem, os passageiros apenas ter˜ao de interagir com os seussmartphones, caso um revisor o solicite. Nesta situa¸c˜ao, a aplica¸c˜ao do utilizador gera um c´odigo QR que d´a acesso `a sess˜ao de check-in em curso, que o revisor lˆe e valida no seu pr´oprio smartphone, atrav´es de uma aplica¸c˜ao desenvolvida especificamente para este efeito.
No fim da viagem, a aplica¸c˜ao recebe os mesmos parˆametros provenientes dos beacons e envia uma mensagem de check-out ao servidor remoto, semelhante `a descrita anteriormente no check-in. Neste caso, a aplica¸c˜ao cria uma transa¸c˜ao na tangle, que identifica o utiliza- dor e solicita o reembolso, com a informa¸c˜ao das coordenadas GPS onde o ve´ıculo estava no momento em que o utilizador o abandonou. Caso o utilizador n˜ao tenha sa´ıdo na ´ultima pa- ragem, este receber´a de volta parte do montante transferido nocheck-in, em IOTAs, de forma a pagar apenas o custo referente `a sua viagem. O c´alculo deste montante ´e flex´ıvel, podendo ser adaptado a sistemas que atualmente funcionam por zonas, por n´umero de paragens ou distˆancia total percorrida.
3.1.2 An´alise comparativa do sistema IOTApass IOTApass
Complex. Arq elevada
Adaptabilidade moderada
Seguran¸ca -
Usabilidade moderada
M´etodo Paga. IOTA
Pontualidade Paga. in´ıcio da viagem c/reembolso no fim Custo Inicial Paga. valor total
C´alculo Tarifa flex´ıvel
Tabela 3.1: Caracter´ısticas do sistema IOTApass.
Comparando este sistema aos sistemas BLE analisados anteriormente com base nas ca- racter´ısticas descritas nas Tabelas 2.1 e 2.2, da Sec¸c˜ao 2.5, foi constru´ıda a Tabela 3.1. O sistema IOTApass apresenta uma arquitetura de complexidade elevada atendendo `a comple- xidade dosbeacons, que al´em de serem dinˆamicos, transmitem informa¸c˜ao que depende de um m´odulo GPS, sendo este mais um elemento a considerar na sua implementa¸c˜ao. Enquanto isso, a adaptabilidade afetada pelo custo dos elementos a arquitetura, ´e mitigada pelo facto
Figura 3.3: Blockchains Nano.
do sistema ser vers´atil em rela¸c˜ao ao transporte p´ublico ao qual ´e aplicado, fazendo desta mo- derada. Em rela¸c˜ao ao sistema do ponto de vista dos passageiros, a usabilidade da aplica¸c˜ao m´ovel ´e moderada devido ao facto desta n˜ao requerer a intera¸c˜ao dos passageiros durante a viagem a n˜ao ser que os revisores do ve´ıculo o requisitem, mas necessitar do registo pr´evio, login ativo e liga¸c˜oes BLE e Internet dispon´ıveis. Quanto ao m´etodo de pagamento, este consiste no envio e rece¸c˜ao de transa¸c˜oes IOTA, sendo que o passageiros paga a viagem no seucheck-in atrav´es de uma transa¸c˜ao correspondente ao custo m´aximo da rota do ve´ıculo a partir dessa paragem e, aquando docheck-out, recebe um reembolso atrav´es de uma transa¸c˜ao IOTA por parte da empresa de transporte p´ublico para a sua conta, caso n˜ao tenha sa´ıdo na ´ultima paragem. Apesar das transa¸c˜oes serem feitas na primeira e ´ultima paragens dos passageiros, o c´alculo da tarifa ´e flex´ıvel, podendo-se basear no n´umero de paragens, distˆancia ou zonas percorridas pelos passageiros durante a viagem.
3.2 Nano
A criptomoeda Nano [18], distingue-se pela sua escalabilidade ilimitada, transa¸c˜oes r´apidas e sem custos, atrav´es de uma arquitetura block-lattice.
Block-lattice ´e uma estrutura de dados que permite aos utilizadores terem contas indi- viduais onde controlam a sua pr´opria blockchain, assincronamente, em rela¸c˜ao ao conjunto global de contas (ledger), fazendo com que as transa¸c˜oes sejam quase instantˆaneas.
E chamada de conta, a´ public key que adv´em do par de chaves de uma assinatura digital, sendo esta um endere¸co p´ublico para os restantes participantes da rede. Um utilizador pode controlar diversas contas, mas cada conta apenas possui um endere¸co p´ublico. Uma conta ´e
Figura 3.4: Estrutura block-lattice.
criada atrav´es da forma¸c˜ao do primeiro bloco da sequˆencia (bloco 0), representado na Figura 3.3, aquando da primeira rece¸c˜ao de fundos (transa¸c˜ao open). `As contas, est˜ao associados blocos que representam a codifica¸c˜ao digital de transa¸c˜oes individuais, assinadas pelaprivate key do par de chaves anteriormente referido. De um ponto de vista mais pr´atico, cada bloco representa o saldo da conta nesse instante e a blockchain acaba por ser uma representa¸c˜ao do hist´orico do saldo da conta. A primeira conta a ter sido criada no sistema, ´e chamada de conta “genesis” e cont´em o saldo “genesis”, que ´e o saldo m´aximo do sistema (133.248.297 NANO) e nunca poder´a ser ultrapassado pela soma total dos saldos de todas as contas.
Para transferir fundos entre contas, as blockchains individuais comunicam entre si no ledger, como demonstra a Figura 3.4. Cada transferˆencia envolve dois blocos/transa¸c˜oes: um de envio (transa¸c˜aosend), criado na conta do remetente e que lhe deduz a quantia do saldo, e um de rece¸c˜ao (transa¸c˜aoreceive), criado na conta do destinat´ario e que adiciona a quantia ao seu saldo. Assim que o bloco de envio do remetente ´e assinado, este ´e imut´avel e os fundos s˜ao deduzidos do saldo da conta, mesmo antes do destinat´ario assinar a rece¸c˜ao. Este sistema de dois blocos permite manter as transa¸c˜oes pequenas para caberem em pacotes UDP, minimizar o rastreio de dados, isolar as transa¸c˜oes validadas das n˜ao validadas (n˜ao incorporadas no saldo cumulativo do destinat´ario) e ordenar a chegada de transferˆencias n˜ao sincronizadas.
V´arias contas remetentes podem estar a enviar fundos para a mesma conta destinat´aria em simultˆaneo e esta decide que transferˆencia chegou primeiro, e representa essa decis˜ao atrav´es da ordem das assinaturas dos blocos que recebe, na suablockchain.
De um ponto de vista high-level, a arquitetura do sistema, al´em de ser composta pelos utilizadores e estrutura de contas anteriormente definida, ´e constitu´ıda por n´os (nodes). Os n´os s˜ao o software dos dispositivos respons´aveis por assegurar a integridade da rede Nano
e que permitem aos utilizadores interagirem com a mesma. Todas as transa¸c˜oes tˆem um campo “work” que deve ser preenchido corretamente atrav´es da concatena¸c˜ao de umnonce, computado pelo criador da transa¸c˜ao, com um determinado campo dessa mesma transa¸c˜ao, o que define a PoW realizada pelo n´o, que no caso da Nano ´e apenas realizada como uma ferramentaanti-spam3.
Al´em das transa¸c˜oes do tipoopen,send e receive, anteriormente referidas, existem ainda transa¸c˜oeschange, que permitem ao dono de uma conta mudar o n´o representante (represen- tative). Este representante, ´e o respons´avel por votar em nome da conta, caso haja conflitos entre blocos. Quando s˜ao detetados dois blocos que na pr´opria blockchain apontam para o mesmo bloco anterior, o representante da conta cria um voto dedicado a esse bloco e transmite-o para a rede. O representante observa os outros representantes online e os votos s˜ao contados durante 1 minuto, tendo em conta que o peso do voto de um n´o representante ´e a soma dos saldos de todas as contas que o nomearam como representante. No fim da vota¸c˜ao, o bloco que obteve mais votos permanece associado ao seu bloco predecessor e o bloco menos votado ´e descartado. O pr´oprio utilizador pode ser representante, por´em para muitos utiliza- dores n˜ao ´e pratic´avel adquirir um n´o que requer recursos de rede elevados para observar o tr´afego de votos de outros representantes e publicar os seus pr´oprios votos. A Nano oferece diferentes configura¸c˜oes de n´os, caracterizados pelos recursos que consomem. Destacando algumas configura¸c˜oes, existem: n´os transaction generating - os que requerem mais CPU, para realizarem a PoW que permite criar novas transa¸c˜oes; n´os representantive - requerem um CPU b´asico para verificar assinaturas de blocos, mas o m´aximo de recursos de rede para observar os restantes representantes e votar; n´os observer - n˜ao votam e apenas requerem um CPU semelhante aos representantes para gerar a assinatura; n´os historical - requerem a maior quantidade de mem´oria para guardar o registo completo de todas as transa¸c˜oes da Nano; n´oscurrent - s´o guardam localmente o ´ultimo bloco de cada conta; e, por fim, n´oslight - n˜ao guardam qualquer registo local e s´o observam a atividade de contas do seu interesse ou, opcionalmente, criam transa¸c˜oes com asprivate keys que possuem.
3.3 Hedera Hashgraph
A plataforma Hedera [19] ´e administrada por um grupo descentralizado de mais de 20 entidades4 e pretende colmatar falhas nas DLT atuais, atrav´es de uma arquiteturahashgraph.
Esta arquitetura, ´e uma estrutura de dados onde todas as transa¸c˜oes s˜ao registadas por ordem cronol´ogica e s˜ao comunicadas atrav´es de um protocologossip. O princ´ıpio dogossiping pode ser simplificado da seguinte forma: caso um membro submeta uma mensagem, esta vai ser transmitida para um membro aleat´orio da estrutura e, esse membro, vai enviar essa mesma mensagem para um outro membro aleat´orio e assim sucessivamente, at´e chegar a todos os membros.
No caso da Hedera Hashgraph, ´e usado o chamado “gossip about a gossip”, representado na Figura 3.5, onde o tempo evolui de baixo para cima, cada fila representa um membro/n´o (node) da rede -software dos dispositivos respons´aveis pelo controlo e intera¸c˜ao dos utilizado- res com a rede - e cada c´ırculo representa uma mensagem/evento, composta pela assinatura
3Assim como no sistema IOTA.
4Avery Dennison, Boeing, Chainlink Labs, Dentons, Deutsche Telekom, DLA Piper, EDF, eftpos, FIS, Google, IBM, IIT Madras, LG, LSE, Magalu, Nomura Holdings, Shinhan Bank, Standard Bank, Swirlds, Tata Group, UCL, Wipro, Zain Group.
Figura 3.5: Estruturahashgraph.
de quem a criou, hora a que foi criada, transa¸c˜oes que cont´em (tal como num bloco de uma blockchain),hashda ´ultima mensagem criada pelo membro antes desta ehashda ´ultima men- sagem recebida pelo membro. Assim, a Alice, ao enviar uma mensagem (c´ırculo vermelho), est´a a transmitir a um membro aleat´orio da estrutura (Carol), n˜ao s´o informa¸c˜ao da pr´opria mensagem, mas a sua liga¸c˜ao `as mensagens representadas por c´ırculos azuis, pelo que, indire- tamente, cada n´o consegue interligar toda a informa¸c˜ao de eventos hashgraph, obtendo uma c´opia de toda a rede e n˜ao s´o ficam a conhecer a cria¸c˜ao de todos os eventos, mas tamb´em sabem quando estes foram criados.
No momento em que pelo menos 2/3 dos membros ficarem informados da cria¸c˜ao de um evento, ´e assinalado o fim de uma ronda degossiping. Nesse momento, cada n´o calcula o novo estado da hashgraph processando todos os eventos efetuados nessa ronda e nas anteriores, assina a hash desse novo estado (hashgraph completa), cria um evento com essa informa¸c˜ao, faz gossip para o resto da rede e come¸ca uma nova ronda. Um utilizador no exterior da hashgraph, pode avaliar a validade deste estado, requisitando uma prova (proof), que inclui um livros de endere¸cos -public keys de todos os n´os e respetivos saldos - e ainda um hist´orico de livros de endere¸cos, onde cada livro de endere¸cos corresponde a um estado e ´e assinado por n´os suficientes de forma a que o saldo somado seja superior a 2/3 das criptomoedas totais da rede. Este hist´orico mostra os eventos at´e ao “genesis”, momento em que aHedera Hashgraph foi criada, tal como o total de criptomoedas que existir´a na rede (50.000.000.000 HBAR). Para que haja consenso na organiza¸c˜ao da hashgraph e cada n´o guarde uma c´opia idˆentica da mesma, ´e realizada uma vota¸c˜ao entre n´os, sem a necessidade de os n´os trocarem mensagens entre si, sobrecarregando a rede. Como cada n´o tem uma c´opia da hashgraph atrav´es do gossip about a gossip, um n´o, como o da Alice, tem as mesmas informa¸c˜oes que, por exemplo, o Bob e assim sabe qual seria o voto do Bob caso este participasse fisicamente na vota¸c˜ao. Assim a vota¸c˜ao ´e virtual e tem a capacidade de ordenar cronologicamente os eventos, calculando a mediana dos timestamps registados pelos rel´ogios dos computadores que hospedaram os n´os, de quando esses n´os receberam cada evento.
De salientar ainda, que cada n´o tem acesso ao saldo dos restantes e, que o peso de cada
voto, ´e definido pela quantidade de criptomoedas (HBAR) que cada n´o det´em, fazendo, com que haja PoS (Proof-of-Stake). O algoritmo hashgraph diz-se “Byzantine Fault Tolerant”
ass´ıncrono (aBFT), tendo em conta que, desde que as entidades maliciosas que estejam a atacar a rede detenham menos de 1/3 da quantia total de HBARs, mais cedo ou mais tarde o consenso acabar´a por ser atingido.
Para os utilizadores (clients) da Hedera efetuarem transa¸c˜oes, nomeadamente trans- ferˆencias de criptomoedas, estes n˜ao precisam de adquirir n´os, basta criarem um par de chaves para a sua assinatura digital. No entanto, est˜ao sujeitos a pagar taxas que revertem a favor dos n´os que participam na rede, como forma de incentivo pela sua participa¸c˜ao. H´a v´arios tipos de taxas, tais como: taxa por n´o (node fee) - o utilizador paga o envio da transa¸c˜ao que pretende efetuar ao n´o que a vai enviar para a rede; taxa de rede (network fee) - quantia que ser´a transferida para os n´os que v˜ao participar no gossiping; e taxa de servi¸co (service fee) - taxa proporcional ao tamanho e tempo que o conte´udo de uma transa¸c˜ao necessita de ficar na rede. Cada transa¸c˜ao da criptomoeda tem um custo de$0,0001.
3.4 Compara¸ c˜ ao de criptomoedas
IOTA[16] Nano[18] Hedera Hashgraph[19]
Estrutura Tangle Block-lattice Hashgraph
Valida¸c˜ao de Transa¸c˜oes PoW PoW aBFT
Grau de Confian¸ca peso acumulado PoS PoS
Taxa por Transa¸c˜ao $0 $0 $0,0001
Criptomoeda MIOTA NANO HBAR
n.ºCriptomoedas 2.779.530.283 133.248.297 50.000.000.000 n.º Cripto. Circula¸c˜ao 2.779.530.283 133.248.297 6.760.903.627
Valor Total (USD) $1.045.625.530 $366.597.960 $263.700.800 Tabela 3.2: Compara¸c˜ao de criptomoedas.
A Tabela 3.2, compara as criptomoedas analisadas em rela¸c˜ao `as suas estruturas, processos de valida¸c˜ao de transa¸c˜oes, a forma como s˜ao atribu´ıdos graus de confian¸ca `as transa¸c˜oes, a taxa a pagar pelo utilizador em cada transa¸c˜ao, o nome da criptomoeda, o n´umero total de criptomoedas existentes, o n´umero de criptomoedas em circula¸c˜ao e, por fim, o valor monet´ario total das criptomoedas em circula¸c˜ao.
A escalabilidade necess´aria ´e conseguida pelas trˆes criptomoedas, atrav´es de estruturas diferentes, que vˆem substituir ablockchain usada em criptomoedas como a Bitcoin. A IOTA usa atangle, onde cada nova transa¸c˜ao aprova 2 ou mais transa¸c˜oes adicionadas anteriormente
`
a rede; a Nano usa block-lattice, estruturada por contas, onde cada conta tem a sua pr´opria blockchain; e a Hedera Hashgraph, que atrav´es daHashgraph, regista as transa¸c˜oes por ordem cronol´ogica e comunica-as para toda a rede atrav´es de “gossip about a gossip”.
Para controlar ataques aos sistemas, estas criptomoedas exigem algum tipo de prova aos n´os da rede, de forma a validar a sua autenticidade. No caso dos sistemas IOTA e Nano, estes tˆem metodologias semelhantes no requistos de provas aos os n´os envolvidos nas transa¸c˜oes, exigindo uma PoW que envolve a computa¸c˜ao de umnonce. Em rela¸c˜ao `a Hedera Hashgraph,
´e referido o “Byzantine Fault Tolerant” ass´ıncrono (aBFT), que permite que haja consenso desde que os atacantes da rede detenham menos de 1/3 da sua riqueza.
Em rela¸c˜ao `a atribui¸c˜ao de um grau de confian¸ca a uma transa¸c˜ao, as trˆes criptomoedas assumem comportamentos distintos. Na IOTA, o fator mais relevante ´e o peso acumulado de uma transa¸c˜ao, que consiste na soma do peso da pr´opria transa¸c˜ao ao peso de todas as transa¸c˜oes que a aprovam direta ou indiretamente. No caso da Nano e Hedera Hashgraph, estas adotam um sistema de votos para assegurar o consenso dos n´os da rede em rela¸c˜ao
`
as transa¸c˜oes, ou seja, a confian¸ca das transa¸c˜oes est´a dependente do poder que os n´os tˆem nas vota¸c˜oes. Ambas envolvem vota¸c˜oes com base numa PoS, mas os crit´erios que definem o poder de cada n´o numa vota¸c˜ao s˜ao diferentes. No caso da Nano, os n´os que votam s˜ao os n´os representantes e, o peso de cada um, ´e definido pela soma dos saldos das contas que cada um representa, enquanto que no caso da Hedera Hashgraph, todos os n´os votam e o peso de cada um ´e definido pelo seu pr´oprio saldo.
Quanto `a taxa por cada transa¸c˜ao efetuada, atrav´es da IOTA e Nano, nenhum custo recai sobre o utilizador, enquanto que, no caso da Hedera Hashgraph, o utilizador necessita de pagar um montante muito pouco significativo, tipicamente de$0,0001.
Apesar de referidas como criptomoedas, IOTA5, Nano e Hedera Hashgraph, s˜ao as plata- formas que suportam as respetivas criptomoedas: MIOTA, NANO e HBAR. Aquando dos “ge- nesis” das mesmas, foram criadas 2.779.530.283 MIOTA, 133.248.297 NANO e 50.000.000.000 HBAR, estando todas em circula¸c˜ao no caso das plataformas IOTA e Nano, e 6.760.903.627 das 50 mil milh˜oes de HBAR6. Atualmente, estas tˆem um valor total de mercado respetivo de$1.045.625.530, $366.597.960 e $263.700.800 [20].
5IOTA ´e tamb´em uma unidade da criptomoeda (1 MIOTA = 1.000.000 IOTA)
6At´e ao momento.