Skip to content

hugozz26/InterAcad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 AcadChain: Blockchain Acadêmica, Célula Econômica & Banco Digital InterAcad

O AcadChain é um ecossistema completo e integrado de blockchain acadêmica, sistema monetário local descentralizado e banco digital de alto desempenho. O projeto combina um backend robusto e criptograficamente seguro desenvolvido puramente em Node.js (ES6+) com um frontend ultra-premium em Next.js (App Router), Tailwind CSS e TypeScript, inspirado no design fluido e minimalista de bancos digitais como o Banco Inter.

Esta plataforma foi customizada para o IFB (Instituto Federal de Brasília), unindo conceitos de sistemas distribuídos, criptografia assimétrica por curvas elípticas, precificação algorítmica de ativos, halving dinâmico e uma experiência de usuário bancária impecável e de alto impacto visual.


🎨 O Ecossistema Visual (Next.js Frontend)

O frontend do AcadChain (localizado no diretório /dashboard) oferece duas experiências integradas e cinematográficas para o usuário:

1. InterAcad: O Banco Digital da Blockchain (/banco)

Uma réplica de um aplicativo bancário moderno em Orange Dark Mode premium, com as seguintes seções funcionais:

  • Login Criptográfico sem Senhas: Login Zero-Knowledge provando a posse da chave privada PEM através de um protocolo de desafio-resposta.
  • Wallet Generator HUD: Permite gerar carteiras na hora, baixar credenciais em formato .json e preencher os dados de autenticação com um único clique.
  • Painel de Cotação e Saldo: Exibe o saldo da carteira em NEXUS e faz a conversão em tempo real para a moeda estável simulada BRL_SIM, com base no preço algorítmico da bolsa interna.
  • Extrato Inteligente: Linha do tempo vertical animada filtrando transações recebidas (Entradas), enviadas (Saídas) e blocos minerados (Coinbase).
  • Área PIX (Transferências): Interface rápida para transferência de valores assinados digitalmente.
  • Console de Mineração (CPU Miner PoW): Painel interativo que simula Proof of Work em tempo real diretamente da interface, atualizando saldos ao concluir o cálculo do nonce.
  • Área de Deflação (Burn): Interface para queima voluntária de moedas para redução instantânea da oferta e valorização do tokenomics.

2. Dashboard Cyberpunk Industrial (/)

Uma tela de controle no estilo cyberpunk industrial com animações fluidas (via GSAP & Lenis Scroll) que permite ativar/desativar módulos em tempo real:

  • Mempool: Visualização dinâmica em cartões flutuantes das transações pendentes.
  • Ledger: Cadeia horizontal de blocos minerados interconectados com SVGs auto-desenháveis.
  • Terminal: Logs de rede e eventos criptográficos simulando o processamento do ledger.
  • Carteira: Gerador e gerenciador futurista de curvas elípticas secp256k1.

🛠️ Pilares Criptográficos & Econômicos (Backend)

1. Autenticação Zero-Knowledge (Challenge-Response)

  • Zero Senhas: O usuário se identifica apenas por seu endereço público (acad_...).
  • Desafio de Uso Único: O servidor emite um desafio aleatório contendo um carimbo de data/hora (timestamp), válido por 5 minutos para neutralizar Ataques de Repetição (Replay Attacks).
  • Assinatura Local: O cliente assina o desafio localmente usando sua chave privada. O servidor valida se a assinatura é legítima (createVerify('SHA256')) e se a chave pública de fato gera o endereço público fornecido.
  • Sessão Deslizante (Sliding Session): Uma vez aprovado, o servidor gera um token estável (x-auth-token) válido por 30 minutos em memória, cuja expiração é renovada automaticamente a cada chamada de rota sensível.

2. Halving e Curva de Emissão Programada

  • A recompensa de mineração (Coinbase) diminui geometricamente ao longo do tempo para emular a escassez matemática dos criptoativos: $$\text{Recompensa} = \frac{50}{2^{\lfloor (\text{index_bloco_atual} - 1) / 5 \rfloor}}$$
  • A recompensa inicial é de 50 NEXUS, caindo pela metade a cada 5 blocos minerados (50 -> 25 -> 12.5 -> 6.25...).

3. Precificação Algorítmica (Exchange Interna)

  • A cotação oficial da moeda NEXUS pareada com BRL_SIM é recalculada dinamicamente: $$\text{Preço} = \frac{2^{\text{dificuldade}} \times 1000}{\text{Supply_Circulante}}$$
  • Supply Circulante: Quantidade total de moedas emitidas por Coinbase menos as moedas destruídas por queimas.
  • Custo Computacional: Quanto maior a dificuldade da rede (mais computação exigida), maior é o valor de cotação intrínseca do token (pressão de alta).

4. Ajuste Dinâmico de Dificuldade (Proof of Work)

  • O tempo de bloco alvo é de 15 segundos.
  • Ajuste: Se o bloco for minerado em menos de 7.5 segundos (alto hashpower), a dificuldade sobe. Se demorar mais de 30 segundos, a dificuldade cai (regulada dinamicamente entre 2 e 6 para fins didáticos).

📁 Estrutura do Projeto

blockchain/
├── package.json                   # Dependências do backend
├── src/
│   ├── app.js                     # Inicialização do servidor backend (porta 3001)
│   ├── api/
│   │   └── server.js              # Servidor REST API, CORS e endpoints
│   └── blockchain/
│       ├── Block.js               # Lógica de blocos e Proof of Work
│       ├── Transaction.js         # Transações e assinaturas assimétricas
│       ├── Wallet.js              # Carteiras secp256k1 baseadas em curvas elípticas
│       ├── AuthChallenge.js       # Logins criptográficos ZK e controle de sessões
│       └── Blockchain.js          # Core do Ledger e regras econômicas
├── scratch/
│   └── simulate.js                # Simulador automatizado de transações e tokenomics
└── dashboard/                     # Frontend Next.js (App Router, Tailwind, TypeScript)
    ├── package.json               # Dependências do dashboard
    ├── src/
    │   ├── app/
    │   │   ├── page.tsx           # Dashboard Cyberpunk modular
    │   │   ├── banco/
    │   │   │   └── page.tsx       # Interface do banco digital InterAcad
    │   │   └── components/        # Componentes visuais do HUD e animações
    │   │       └── modules/       # Módulos interativos (Ledger, Mempool, Terminal, etc.)

🚀 Como Iniciar e Configurar

Certifique-se de ter o Node.js (LTS) instalado no computador.

Passo 1: Inicializar o Servidor REST (Backend)

  1. Acesse o diretório raiz do projeto e instale as dependências:
    npm install
  2. Inicie o servidor Express (que roda por padrão na porta 3001 para evitar conflitos):
    npm start
  3. O console mostrará: 🎓 [AcadChain API v2.0] Servidor da Blockchain Acadêmica Online na Porta 3001!

Passo 2: Inicializar a Interface Web (Frontend Next.js)

  1. Em outro terminal, acesse o diretório /dashboard e instale as dependências:
    cd dashboard
    npm install
  2. Inicialize o servidor de desenvolvimento na porta 3000:
    npm run dev
  3. Abra o seu navegador no endereço: http://localhost:3000/banco

📡 Referência Rápida da API REST (Porta 3001)

A API REST do backend comunica-se puramente por meio de payloads em JSON:

  • POST /wallet — Gera um par de chaves assimétricas secp256k1 e endereço público.
  • POST /wallet/sign — Rota auxiliar segura para assinar dados (desafios/transações) no frontend usando sua chave privada PEM.
  • POST /auth/challenge — Emite um desafio criptográfico temporário de uso único baseado em timestamp.
  • POST /auth/verify — Valida a assinatura digital do desafio e retorna o token de acesso deslizante de 30 minutos.
  • POST /transaction — [PROTEGIDO] Submete uma nova transação assinada para a Mempool.
  • GET /mine — [PROTEGIDO] Executa o Proof of Work e consolida os blocos da mempool, creditando a recompensa Coinbase.
  • GET /market/ticker — Retorna os dados oficiais de cotação (NEXUS/BRL_SIM), dificuldade e oferta circulante da corretora.
  • POST /market/burn — [PROTEGIDO] Destrói moedas enviando-as para a carteira nula, valorizando unitariamente os ativos ativos.
  • GET /dashboard/:address — Panorama completo e histórico de transações estruturado de uma carteira específica.

🧪 Script de Simulação Rápida (Sem Frontend)

Se quiser rodar uma auditoria completa de lógica de backend de forma automatizada no terminal:

npm run simulate

Este comando inicializa um servidor temporário na porta 3001, gera carteiras para Alice e Bob, realiza login criptográfico, executa minerações consecutivas para demonstrar a curva de Halving, queima moedas para verificar a valorização deflacionária imediata na corretora e audita o histórico detalhado em JSON de forma 100% autônoma!

About

Academic blockchain ecosystem with digital banking, tokenomics, cryptographic authentication and cyberpunk dashboard built in Node.js + Next.js.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors