Executando verificação de segurança...
1

Desbravando Fronteiras: Criando Meu Próprio Banco OpenSource com JavaScript

Olá, vim até aqui para contar á você o maior desafio que me propûs á fazer, criar um banco digital utilizando Javascript como stack principal. No início parecia interminável, o design não estava nada legal e os desafios pareciam insuperáveis. A cada dia questões como segurança, transações, experiência do usuário e autenticação pareciam assuntos intermináveis, porém, focando em cada coisa de cada vez foi possível chegar em um nível muito bacaninha.

Autenticação

Esse foi um assunto Difícil, tive que pensar de trás para frente, e se alguém estivesse escutando a comunicação entre cliente e servidor para roubar as credenciais? E se o banco de dados fosse vazado? Bem a solução foi implementar o módulo nativo de Javascript de ponta á ponta. A comunicação segue criptografada para o servidor, através de um hash que expira em poucos segundos, esse hash ao bater no banco sofre uma segunda camada de criptografia Através de algoritmos como SHA256 e BCrypt.
-"Ah Cyro, mas porque você não implementou JWT?"
Aqui tenho que confessar que não tenho o entendimento completo de JWT e acreditei ser mais seguro implementar criptografia personalizada de modo á controlar a segurança de ponta á ponta

Transações

Esse tema é interessante, desde o início sabia que queria lidar com transações em Blockchain, a proposta do meu banco é privacidade, segurança e transparência. E dificilmente eu conseguiria ser mais transparente e seguro que a própria blockchain do bitcoin.
Descobrir como implementar em js parecia impossível, posto que o suporte não seria somente ao Bitcoin, como também a Ethereum e dolar Tether. Porém o uso de bibliotecas como web3Js e bitcore-lib , puderam me auxiliar na verificação de saldo e realização de transações.
Sobre os desafios em si, o bitcoin tem me dado mais trabalho, diferente do ecossistema Ethereum o Bitcoin leva um tempo grande para confirmar a transação, as vezes é interessante reverter transações, além de diversos protocolos de segurança e carteiras que a própria rede implementa, e você pode imaginar que a internet não é tão rica assim de conteúdos tão específicos quanto a implementação de Transações de bitcoin pela rede.

Design

No estágio mais inicial do projeto o foco era fazer funcionar, o design realmente não convencia, porém ao longo do tempo tive a oportunidade de conhecer pessoas incríveis que trabalham com design e conseguiram acelerar essa demanda aqui na Credit Black.

Arquitetura openSource

Pensar em um sistema que lida com altos valores monetários, código aberto e segurança é um desafio em si. A solução surgiu na implementação de ambientes de desenvolvimento: Basicamente o ambiente de desenvolvimento e produção tem arquiteturas espelhadas, mas completamente apartados um do outro. Com outras chaves de criptografia e usuários mocados. Além disso rodamos testes de invasão no modelo de bug bounty, e avaliamos dessa maneira se há brechas na segurança que não foram exploradas.

A arquitetura em si passa pelo cliente React Native que se comunica com uma API GraphQL, que se comunica com o banco de dados e um serviço de pagamentos especializado em contratos ERC20.

Como Contribuir

Como eu disse, a Credit é um sistema de código aberto e está sempre olhando para a inovação. Você será muito bem vindo para contribuir com sua expertise, seja front, back, mobile ou web. Seja com Criptografia, Inteligência Artificial, Web3 e Blockchain. As ideias mais ousadas são muito bem vindas na Credit, até porque eu espero que a Credit seja útil também para você.

Aqui está o nosso projeto: https://github.com/Black-Bank

E aqui temos mais detalhes sobre o projeto em emu LinkedIn próprio: https://www.linkedin.com/posts/cyro-renato-3971031b2_criptos-algoritmos-coding-activity-7070423469989007360-kVrB?utm_source=share&utm_medium=member_desktop

Lembrem se que: Black-Wallet é o repositório front/React-native, BlackWallet-node é a camada graphQL e Black-pay é a camada que lida com contratos ERC20. Sejam muito bem vindos para contribuir e seguindo os fluxos de desenvolvimento vigentes.

Carregando publicação patrocinada...