Proof of Participation – Sistema 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
- Ao chegar no evento, o participante escaneia um QR Code exibido no local.
- O sistema solicita apenas o endereço de e-mail e, de forma automática, registra dados como geolocalização, horário e IP.
- O usuário recebe um e-mail com um link único para finalizar seu cadastro e pode inserir informações adicionais, como nome completo.
- Durante o evento, outros QR Codes permitem registrar a participação em atividades específicas.
- Ao término do evento os certificados são gerados e enviados automaticamente por e-mail aos participantes.
- 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
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.

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.