Proof of ParticipationSistema Tokenizado em Blockchain para Prova de Presença

O Problema com os Sistemas de Comprovação de Presença Atuais

Os métodos tradicionais de comprovação de presença são amplamente vulneráveis a fraudes e ineficiências. Muitas vezes, participantes conseguem validar sua presença mesmo sem estar fisicamente no local, utilizando sistemas suscetíveis a falhas humanas ou técnicas, como listas manuais, aplicativos pouco seguros ou cartões de ponto. Isso não apenas compromete a credibilidade do evento ou treinamento, mas também prejudica a rastreabilidade e a transparência para organizadores e participantes.

Em um contexto onde confiança, segurança e automação são imprescindíveis, um sistema inovador de prova de presença presencial baseado em blockchain se torna não apenas uma solução, mas um padrão a ser seguido.

A Solução: Proof of Participation

O Proof of Participation é uma plataforma tokenizada que registra presenças em eventos, cursos, treinamentos, hackathons, inspeções, trabalho e outras atividades presenciais de forma automatizada e imutável. Utilizando blockchain como base para autenticação, o sistema garante que a presença registrada não pode ser alterada ou falsificada.

Simplicidade de Uso: A Jornada do Usuário

  1. Ao chegar no evento, o participante escaneia um QR Code exibido no local.
  2. O sistema solicita apenas o endereço de e-mail e, de forma automática, registra dados como geolocalização, horário e IP.
  3. O usuário recebe um e-mail com um link único para finalizar seu cadastro e pode inserir informações adicionais, como nome completo.
  4. Durante o evento, outros QR Codes permitem registrar a participação em atividades específicas.
  5. Ao término do evento os certificados são gerados e enviados automaticamente por e-mail aos participantes.
  6. Os certificados podem ser verificados publicamente por qualquer pessoa, utilizando a blockchain como prova de autenticidade.

Sem necessidade de apps, senhas ou processos complexos. Um celular com acesso à internet é suficiente para participar e gerenciar os dados.

Por que o Sistema é Revolucionário?

  • Segurança: Certificados registrados em blockchain são imutáveis e auditáveis.
  • Simplicidade: Interface amigável sem a necessidade de aplicativos ou senhas.
  • Automação: Geração automática de certificados com validação de autenticidade integrada.
  • Rastreabilidade: Cada registro de presença é documentado com geolocalização, horário e IP.

Tecnologias e Ferramentas Utilizadas

  • AWS CloudFront: Distribuição de conteúdo com alta disponibilidade e baixo custo.
  • Amazon S3: Armazenamento de arquivos, incluindo a imagem dos certificados e metadados JSON.
  • Amazon DynamoDB: Banco de dados NoSQL para armazenar chaves públicas, metadados e registros do usuário.
  • API Gateway: Gerenciamento seguro das APIs que conectam o frontend ao backend.
  • AWS Lambda: Execução de rotinas serverless para manipulação de dados, interação com blockchain e geração de certificados.
  • Pillow (Python): Biblioteca gráfica para criação de certificados personalizados a partir de camadas gráficas.
  • React: Frontend responsivo e intuitivo para interações do usuário.
  • Blockchain: Registro imutável de certificados, garantindo autenticidade e rastreabilidade.

Por que este Sistema Deve Ser um Padrão?

O Proof of Participation redefine como a presença é registrada e validada, eliminando vulnerabilidades dos sistemas tradicionais. Ao adotar esta tecnologia:

  • Organizadores ganham credibilidade e automação.
  • Participantes têm acesso rápido e seguro aos seus certificados.
  • Empresas e instituições reduzem custos operacionais e fraudes.

Criado pela Comunidade Python Floripa, este projeto representa uma abordagem colaborativa, inovadora e de impacto social, alinhada com os princípios de código aberto. Ele está aberto a voluntários interessados em contribuir para o avanço da tecnologia blockchain e a melhoria contínua da plataforma.

Evolução do Projeto

Repositório GitHub

Primeiro Meeting – 06/11/24

Segundo Meeting – 13/11/24

Terceiro Meeting – 20/11/24

Release da Reunião – Proof of Participation

Data: 20/11/2024
Duração: 98 minutos
Participantes: Jardel Godinho, Lucas Oliveira, Luiz Bruno Vianna, Ricardo May

Definições

1. Estratégia para Contribuições Comunitárias:

  • Publicação das tarefas no GitHub com prazos definidos (deadlines).
  • Após o prazo, caso não haja contribuições, a equipe interna assume a execução da tarefa.
  • Incentivar a comunidade por meio de divulgação ativa, destacando os benefícios de participar.

2. Arquitetura e Uso de Tecnologias:

  • Continuidade com o uso do Amazon S3 como principal solução de armazenamento.
  • Consideração de uso complementar do IPFS (InterPlanetary File System) para distribuição descentralizada de arquivos.
  • Implementação inicial de serviços serverless com AWS Lambda e API Gateway.

3. Certificados:

  • Utilização da biblioteca Pillow (Python) para manipulação de camadas gráficas e geração de certificados em formato otimizado para divulgação (PNG/JPEG).
  • Certificados serão públicos, com dados sensíveis mascarados, mas autenticação e validação garantidas pela blockchain.

4. Divulgação e Identidade Visual:

  • Os certificados terão elementos visuais padronizados que remetam à identidade da Python Floripa, garantindo autenticidade e divulgação da marca.
  • As empresas ou eventos parceiros poderão personalizar elementos gráficos (e.g., logo, selos), respeitando os padrões estabelecidos.

5. Princípios de Segurança e Confiança:

  • Blockchain como base para garantir autenticidade imutável dos certificados.
  • Redundância no armazenamento para mitigar riscos de perda de dados.

Próximos Passos

1. Tarefas de Prioridade:

  • Configuração inicial de GitHub para organização das tarefas e controle de versões.
  • Implementação do fluxo de autenticação (código 2FA enviado por e-mail).
  • Desenvolvimento do serviço para validação de tokens enviados ao usuário.

2. Estruturação do MVP:

  • Implementação do processo de check-in e registro de presença.
  • Geração de certificados em lotes ao término do evento.
  • Armazenamento de certificados prontos no S3 para otimização de consultas futuras.

3. Divulgação e Envolvimento Comunitário:

  • Preparação de postagens para redes sociais (Instagram, LinkedIn) incentivando a contribuição ao projeto.
  • Realização de um release para atrair mais desenvolvedores, detalhando as tarefas disponíveis e os próximos marcos.

Compromissos Assumidos

Jardel Godinho:

  • Coordenar a publicação de tarefas no GitHub e definir deadlines.
  • Preparar materiais para divulgação nas redes sociais.
  • Prototipar templates de certificados com elementos visuais definidos.

Lucas Oliveira:

  • Desenhar fluxo detalhado de comunicação do backend com blockchain.
  • Validar tokens recebidos no backend e garantir a segurança do fluxo.
  • Garantir a conformidade com os princípios de blockchain e segurança.

Luiz Bruno Vianna:

  • Testar e avaliar o uso do IPFS para armazenamento complementar e propor cenários de uso.
  • Desenvolver métodos, modelos e definir cadencia de comunicação por e-mail com o usuário, dispensando uso de senhas.
  • Prototipar e apresentar soluções para montagem dinâmica de certificados.

Ricardo May:

  • Estruturar o esquema inicial do banco de dados no DynamoDB.
  • Avaliar estratégias para redundância no armazenamento de arquivos.
  • Propor melhorias para integração entre backend e blockchain.
  • Desenvolver estratégias de otimização dos serviços AWS.

A reunião reforçou o comprometimento da equipe com prazos e a importância de envolver a comunidade no projeto. Com um MVP bem definido, a Python Floripa visa tornar este sistema um padrão em eventos presenciais, garantindo segurança, eficiência e simplicidade.

Quarto Meeting – 27/11/24

Release da Reunião – 27/11/2024

Data: 27/11/2024
Duração: 93 minutos
Participantes: Jardel Godinho, Jonathan Batista, Luiz Bruno Vianna, Maxson Almeida, Otavio Augusto, Ricardo May


A reunião teve como objetivo discutir o desenvolvimento de um sistema para geração e validação de certificados digitais durante eventos, com foco em usabilidade, eficiência e integração com tecnologias modernas, como blockchain. Durante o encontro, foram apresentadas as soluções já implementadas, testados fluxos e definidos próximos passos para evolução do projeto.

Definições

1. Estrutura do Sistema:

O sistema será composto por três níveis de usuários:

  • Participante: Responsável por acessar e atualizar seus próprios dados.
  • Colaborador do Evento: Com capacidade de visualizar e corrigir informações de participantes no contexto do evento.
  • Administrador do Evento: Pode cadastrar eventos, gerenciar participantes e colaboradores, além de finalizar eventos para a geração de certificados.

•Os certificados incluirão selos de atividades realizadas pelos participantes, destacando sua participação nas palestras e trilhas do evento.

2. Login por Magic Link:

Foi validado o fluxo de autenticação sem senha via magic link, enviado para o e-mail do usuário. O processo foi bem recebido e será mantido como padrão.

3. Geração de Certificados:

Cada certificado conterá:

  • Nome completo do participante.
  • Códigos de validação únicos em formato hexadecimal.
  • Selos das atividades realizadas.
  • Os certificados serão gerados e enviados de forma cadenciada, para otimizar recursos e evitar bloqueios por servidores de e-mail.

4. Registro de Localização e Horário:

Durante o check-in nas atividades, será registrado o horário e a localização do usuário, proporcionando maior confiabilidade aos certificados.

5. Uso de Blockchain:

Por enquanto, um simulador de blockchain será utilizado para armazenar os dados. Futuramente, a solução será migrada para redes reais, como a Stellar, devido à sua eficiência energética e econômica.

Próximos Passos

1. Teste no Evento de 30/11/2024:

O sistema será testado no 81º Encontro Python Floripa, enviando certificados ao término do evento e observando a reação dos participantes.

Verificar adesão e engajamento dos usuários com os certificados, especialmente publicações em redes sociais como LinkedIn.

2. Evolução do Sistema:

Implementar interface administrativa para geração e gerenciamento de QR Codes associados às atividades do evento.

Explorar o registro de check-out dos participantes para futuros eventos que demandem controle de tempo de permanência.

3. Aprimoramento da Infraestrutura:

Estudar soluções para reduzir o impacto no envio de e-mails em massa, incluindo escalonamento por filas e melhorias na credibilidade do domínio.

Avaliar ferramentas mais performáticas para manipulação de imagens e geração de certificados.

4. Benchmarking Energético:

Avaliar o consumo energético do sistema atual e realizar comparações entre Stellar, Ethereum e Bitcoin para fundamentar decisões futuras.


A reunião consolidou pontos críticos do projeto e definiu um caminho claro para os próximos testes e melhorias. O sistema será validado em um ambiente real no evento de 30/11/2024, proporcionando insights valiosos para ajustes futuros.

Release da Reunião – 11/12/2024

Data: 11/12/2024
Duração: 81 minutos
Participantes: Jardel Godinho, Jonathan Batista, Luiz Bruno Vianna, Ricardo May

A reunião teve como objetivo discutir o desenvolvimento do sistema de emissão e validação de certificados com integração a blockchain, explorando pontos técnicos, desafios de implementação e privacidade, além de definir os próximos passos e responsabilidades para os membros da equipe.

Definições

1. Estrutura do Certificado:

  • O certificado será representado por um hash único gerado a partir da imagem ou dos dados.
  • Incluirá informações básicas como nome do evento, data, hora e localização (latitude/longitude).
  • Um hash será registrado na blockchain para validação posterior, preservando a privacidade do usuário.
  • O hash será enviado ao usuário, garantindo validação do certificado na primeira versão.
  • Avanços de versão devem prever o envio da chave publica e privada permitindo a portabilidade e validação independente.

2. Privacidade e LGPD:

Nenhum dado pessoal, como nome ou e-mail, será armazenado diretamente na blockchain. Hashs derivados desses dados serão utilizados para preservar a privacidade.

3. Intermediação da Plataforma:

A plataforma será a intermediária no registro e validação dos certificados, mas a estrutura será preparada para futura descentralização, permitindo independência do sistema.

4. Interfaces do Usuário:

Painel Administrador do Evento

  • Registrar / Editar Evento: Data, Horário, Local, Atividades, Background Certificado, Logo, Selos (referente as atividades), Definir dados do form pós-checkin, Incluir Staff, Checkout (S/N).
  • Gera URLs / QR-CODEs de checkin, atividades e checkout.
  • Gerar Certificados (validar se os dados necessários existem e submeter apenas os com dados completos) e Lista de presença.

Painel Participante do Evento

  • Enriquecer / Editar dados pessoais, ver os proprios certificados, definir se deseja dar acesso publico ao certificado ou não.

Página do usuario

  • Exibe certificados públicos do usuário.

Pagina de validação do certificado

  • Permite que qualquer pessoa valide um certificado a partir do seu código.

5. Blockchain e Registro:

Serão realizados testes com uma rede blockchain de teste (Stellar). O hash será gerado com base na imagem ou dados do certificado e registrado para validação futura.

Próximos Passos

1. Interface do Usuário:

Jonathan Batista desenvolverá as telas principais em React, incluindo cadastro de eventos, check-in/check-out e validação de certificados.

2. Fluxo de Validação:

Luiz Bruno Vianna criará um fluxograma detalhado do processo de validação e registro, destacando o uso de blockchain e hash. Também iniciará os testes de integração com a Stellar.

3. Geração de Certificados:

Jardel Godinho coordenará ajustes na geração de certificados com Maxson, com propósito de aperfeiçoar o processo que já funcionou bem nos testes preliminares realizados durante o ultimo Python Floripa.

4. Segurança e Testes:

Ricardo May se ocupará de integrar com o Jonathan o serviço de Magic Link e disparos automatizados de e-mails com a submição dos forms de checkin e confirmações de atualização de dados.


A próxima reunião será em 18/12/2024, com o objetivo de revisar as entregas de cada membro e será avaliado o início de testes de integração entre as funcionalidades desenvolvidas.

Release da Reunião – 18/12/2024

Data: 18/12/2024
Duração: 91 minutos
Participantes: Jardel Godinho, Jonathan Batista, Luiz Bruno Vianna, Ricardo May

A reunião focou em detalhar os fluxos de geração e validação de certificados digitais integrados a blockchain, bem como as definições de arquitetura e próximos passos para o desenvolvimento do projeto.

Definições

1. Arquitetura do Sistema:

  • O sistema usará AWS DynamoDB para armazenamento de dados com partições específicas para eventos, organizações e usuários.
  • Haverá quatro perfis de usuário: participante, staff do evento, administrador do evento e super administrador.
  • As operações do sistema serão distribuídas via AWS Lambda, garantindo escalabilidade e manuseio de falhas com SQS (fila).
  • Os certificados serão gerados como imagens, armazenados no S3, apartir das quais serão geradas hash’s para serem vinculadas à blockchain para validação pública.

2. Fluxo de Participantes:

  • Participantes realizarão check-in via QR Code ou URL, validando identidade por Magic Link enviado por e-mail.
  • Serão gerados certificados automaticamente para todos os inscritos no evento.
  • O acesso aos certificados será feito por um painel com login protegido, exibindo uma lista de eventos e certificados.

3. Geração de Certificados:

  • Certificados serão processados em lotes utilizando SQS e AWS Lambda para evitar sobrecarga e custos elevados.
  • Será usado um sistema de controle de concorrência para evitar duplicidades ou falhas.
  • Hashes dos certificados serão gerados e registrados na blockchain para garantir autenticidade.

4. Painel Administrativo:

  • Administração incluirá criação de eventos, cadastro de atividades e geração de certificados com relatórios de participantes.
  • Painel exibirá estatísticas de eventos e permitirá gerenciar a emissão e envio de certificados.
  • Funcionalidade de envio automático de e-mails com certificados para participantes ao término do evento.

5. Validação de Certificados:

  • Certificados poderão ser validados publicamente por um código único associado a cada hash na blockchain.
  • A interface de validação será acessível a todos e integrada ao sistema de armazenamento.

Próximos Passos

1. Fluxo de Participantes:

  • Jonathan Batista desenvolverá telas e fluxos para participantes, staff, administradores de evento e painel de certificados.

2. Integração com Blockchain:

  • Luiz Bruno Vianna realizará testes com o registro de hashes na blockchain e ajustes na integração com Stellar.

3. Geração de Certificados:

  • Jardel Godinho definirá os ajustes finais para geração de certificados em lotes e validação do fluxo de emissão.

4. Testes e Segurança:

  • Ricardo May implementará validações adicionais para garantir consistência e segurança nos fluxos de autenticação e geração de certificados.

A próxima reunião será em 08/01/2025 para revisão de tarefas, validação de implementações e preparação para testes iniciais do sistema.

Release da Reunião – 29/01/2025

Data: 29/01/2025

Duração: 65 minutos

Participantes: Daniel Soares Martins, Jardel Godinho, Jonathan Batista, Luiz Bruno Vianna, Ricardo May

A reunião teve como objetivo discutir a implementação dos fluxos de autenticação e geração de certificados digitais, além das integrações necessárias com serviços AWS e blockchain.

Definições

1. Arquitetura do Sistema:

• A estrutura será baseada em serviços AWS (S3, API Gateway, Lambda, Cognito e DynamoDB).

• O armazenamento das informações será feito em buckets S3 e na base de dados DynamoDB.

• Front-end utilizará React, distribuído por meio do CloudFront, com comunicação via API Gateway.

• AWS Lambda será utilizada para processamento de funções específicas, incluindo autenticação e geração de certificados.

• O registro dos certificados será feito em lote na blockchain Stellar.

2. Fluxo de Participantes:

• O check-in será feito por QR Code ou URL, validando o e-mail do participante com Magic Link.

• Os dados geográficos (latitude e longitude) serão coletados automaticamente no check-in.

• Em caso de falha na verificação de localização, o sistema registrará a tentativa no banco de dados, mas sem bloquear o processo.

3. Geração e Validação de Certificados:

• Os certificados serão gerados em lotes após o término dos eventos, com uma hash registrada na blockchain.

• O certificado incluirá dados como nome, evento, data, local e hash para validação futura.

• A validação dos certificados será feita via QR Code, com verificação cruzada entre as informações armazenadas na blockchain e no banco de dados.

4. Painel Administrativo:

• O painel permitirá o gerenciamento de eventos, configuração de atividades e emissão de certificados.

• Haverá opções para ativar ou desativar requisitos como validação de localização.

• Relatórios de participação e logs de validação estarão disponíveis no painel.

Próximos Passos

1. Integração e Implementação:

Jonathan Batista: Desenvolverá as telas do front-end, com foco no login e fluxo de check-in.

Luiz Bruno Vianna: Irá desenvolver o Smart Contract para registro das hashes na blockchain.

Daniel Soares Martins: Assumirá a documentação dos micro serviços (APIs, endpoints e respostas) usando OpenAPI.

Ricardo May: Criará a estrutura para funções Lambda, aprimorando as integrações com API Gateway e Cognito.

Considerações Gerais:

• O projeto terá etapas iterativas, com validações constantes para ajuste da arquitetura.

• A documentação do sistema será essencial para garantir consistência no desenvolvimento.

• A equipe buscará expandir a aplicação do sistema para outros cenários além de eventos, como validações presenciais em locais remotos.

Encerramento:

A reunião foi concluída às 16h01min, com a definição das tarefas imediatas e próximos pontos de validação.

background-sample
profile-picture

Jardel Godinho6 contribuições

Sou um empreendedor e desenvolvedor comprometido em fortalecer conexões humanas e impulsionar o crescimento no mundo digital. Com um e-commerce especializado em flores e cestas, minha missão é aproximar as pessoas por meio de gestos de amor e carinho. Paralelamente, lidero uma software house que desenvolve soluções avançadas para e-commerces e MVPs inovadores para startups. Na comunidade Python Floripa, atuo como Host dos eventos, promovendo a união e a troca de conhecimento. Acredito que a colaboração supera a competição, permitindo que todos cresçam juntos e tornem nossa comunidade mais forte. Minha paixão pela Python Floripa se reflete em meu trabalho para criar um ambiente onde ideias, projetos e, principalmente, pessoas possam prosperar coletivamente.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Entrar

Rolar para cima