Criptomoedas, ICOs e a indústria de fintech experimentaram um verdadeiro boom desde o surgimento do bitcoin. Seus altos e baixos atraem a atenção não apenas de traders, mas também de empreendedores que veem isso como uma oportunidade de criar um negócio de sucesso. Neste artigo, contaremos como construir uma exchange de criptomoedas do zero e quais etapas são necessárias para isso.
O bitcoin subiu mais de 10.000% desde seu lançamento, revolucionando o mundo financeiro. Os céticos iniciais mudaram de opinião quando viram os lucros fabulosos dos primeiros investidores. Muitas pessoas fizeram fortunas investindo em criptomoedas: carros de luxo, iates e estilo de vida livre se tornaram símbolos da nova geração digital. No entanto, o mercado de criptomoedas mudou significativamente nos últimos anos.
A seguir, daremos uma olhada nos principais componentes e desafios que você pode encontrar no caminho para lançar uma plataforma de criptomoeda.
A situação mudou nos últimos seis meses. A Austrália abriu as fronteiras para todas as criptomoedas e permitiu o pagamento de contas, incluindo serviços públicos, por meio do Bitcoin. Agora é um meio de pagamento legal. Em muitas lojas e cafés de Brisbane, você verá placas confirmando o pagamento por Bitcoins.
A situação em torno da maior bolsa de criptomoedas Binance fez com que todos entendessem que Malta é um dos melhores lugares para fazer negócios na indústria de criptomoedas. Vamos dar uma olhada nos tipos de exchanges existentes.
1. Exchange de criptomoedas simples (cripto-fiat) Este modelo é adequado para iniciantes que não têm experiência com criptomoedas. A principal vantagem é uma interface simplificada e a ausência de ferramentas complexas, como ordens de limite ou stop-limit. O usuário faz a troca diretamente com o administrador, o que garante a simplicidade e a velocidade das transações.
2. Troca P2P É um modelo que fornece uma plataforma para compradores e vendedores interagirem sem o envolvimento direto da troca nas transações. A plataforma atua como intermediária, cobrando uma comissão por cada transação.
3. Troca Descentralizada (DEX) Este tipo de troca funciona diretamente com o blockchain, dando aos usuários controle total sobre seus fundos. DEXs vêm em três variedades: on-chain (operando no blockchain), off-chain (fora do blockchain) e cross-chain (conectado a vários blockchains).
4. Troca com negociação de margem A negociação de margem e a alavancagem se tornaram uma nova tendência no setor. Essas trocas permitem que os usuários negociem com fundos alavancados, aumentando os lucros e os riscos potenciais.
Como escolher o modelo certo? Sua escolha depende de seus recursos e objetivos de negócios:
Soluções combinadas
As tendências modernas possibilitam a integração das funções de diferentes tipos de plataformas. Por exemplo, crie uma exchange centralizada com serviços P2P ou adicione negociação de margem no DEX. Essa abordagem não só atrai mais usuários, mas também garante a competitividade da plataforma.
O desenvolvimento da indústria de criptomoedas abriu novos mercados. A NASDAQ trabalhou 40 anos e atingiu um faturamento de US$ 500 milhões por dia, tendo mais de 10.000 funcionários. Quantos funcionários você precisa para executar ou manter uma plataforma de negociação.
Recomendo no primeiro estágio contratar uma equipe técnica terceirizada com experiência no desenvolvimento e suporte de plataformas de negociação. Você e seus parceiros devem estar envolvidos em marketing e promoção da marca.
Monolith. Esta é uma plataforma de negociação que tem arquitetura tudo-em-um. O módulo de carteiras, pagamentos, contas e administração estão no mesmo servidor. A implantação de tal plataforma leva menos tempo. Mas tem problemas com altas cargas. Tecnicamente, toda a funcionalidade implementada pode estar em um servidor, mas este servidor não será capaz de atender milhares, sem mencionar os milhões de usuários.
Arquitetura de microsserviços. Ela assume que a plataforma de negociação consiste em módulos independentes e facilmente gerenciáveis. Por exemplo, o módulo de carteiras, o módulo de usuários, o mecanismo de negociação e assim por diante. Cada módulo está localizado em um servidor dedicado separado, o que imediatamente permite que ele suporte altas cargas. Especialmente se você usar o provedor de hospedagem correto. Deve-se observar que o suporte e a modificação de tal arquitetura são os mais convenientes.
Cada uma das arquiteturas mencionadas acima é bem adequada para o respectivo tipo de plataforma. Monolith é o mais eficaz para plataformas pequenas e para grandes bolsas - arquitetura de microsserviços.
Deve ser dito que a escalabilidade da plataforma de negociação não é uma ocorrência comum. Embora você possa usar escala horizontal ou vertical. O aumento da produtividade é alcançado aumentando a capacidade do servidor, otimizando scripts, alterando a arquitetura ou recodificando módulos individuais em outra linguagem de programação.
Depois de definir as principais funções, você pode prosseguir para o desenvolvimento dos componentes que formarão a base da sua bolsa. O sucesso da plataforma depende em grande parte da escolha certa de tecnologias e sua implementação.
Ainda é discutível se deve criar uma versão móvel separada ou limitar-se ao design adaptável. No entanto, uma coisa é clara: uma bolsa de criptomoedas deve ser otimizada para dispositivos móveis. Com a mobilidade global dos usuários e o rápido crescimento do tráfego móvel, ter uma versão móvel se torna não apenas uma vantagem, mas uma necessidade para atrair e reter clientes.
As tendências modernas sugerem que a interface deve ser adaptável, flexível e levar em consideração as necessidades de novatos e traders experientes. Na prática, isso significa que a plataforma deve fornecer acesso rápido a todas as funções principais por meio de dispositivos móveis, incluindo negociação, monitoramento de cotações, gerenciamento de carteira e retirada.
Cada módulo pode ser um monólito, como mencionado acima, para ser distribuído ou descentralizado. Existem vantagens e desvantagens para cada tipo, é importante saber e lembrar seus objetivos. Os módulos geralmente consistem em camadas que se comunicam internamente entre si. O dia atual é a comunicação de API mais eficaz com transferência de dados em formato JSON. Este é um padrão aceito que fornece e aceita dados facilmente em quase qualquer linguagem de programação moderna.
O mais importante é o backend. Este é o núcleo do sistema. Todas as operações de negociação e cálculos passam por scripts centrais. É muito importante no primeiro estágio prestar atenção suficiente ao design da arquitetura do projeto.
O frontend desempenha o papel de shell no qual o aplicativo é encapsulado. Um aplicativo da web, um aplicativo móvel para Android ou iOS e até mesmo um aplicativo nativo em seu macOS ou Windows são executados no mesmo núcleo de backend. Erros na arquitetura podem afetar significativamente a velocidade e diminuir o nível de segurança. Recomendamos escolher equipes que tenham experiência em projetar sistemas semelhantes.
Se falamos sobre aprender moeda fiduciária, há duas maneiras de integrar esse recurso. Você pode usar transferências bancárias diretas no modo manual ou Visa/Mastercard no modo automático. A transferência bancária é a maneira mais fácil de implementar. Você recebe dinheiro no modo manual. Os usuários recebem uma conta dentro do sistema e enviam dinheiro diretamente para sua conta bancária. Você vê o valor e confirma o depósito do usuário. As vantagens desse método são a facilidade de integração. Os desenvolvedores podem concluir essa tarefa em 1 semana. A desvantagem é que você sempre precisa verificar a conta bancária para confirmar o depósito do usuário.
Claro, você pode usar transações automáticas via Visa/Mastercard. Mas há algumas dificuldades. As transações automáticas são realizadas no lado dos gateways de pagamento e muitos deles não suportam sistemas de criptomoeda. Você pode conectar Paypal, Stripe, mas depois de algumas horas, sua conta será bloqueada ou não passará na verificação. Existem vários sistemas que permitem conectar Visa e MasterCard para uma transação.
Por exemplo, simplex.com, zotapay.com etc. Mas, como regra, eles têm regras muito rígidas. Se você decidir usar Visa ou Mastercard, recomendamos encontrar um gateway de pagamento certo e discutir os detalhes da integração.
A primeira é escolher um provedor de liquidez. O provedor pode fornecer liquidez apenas para certos pares de moedas, por exemplo, BTC/ETH, BTC/USD. Em pares menos populares como HKD/XRP, TRY/ETH, você dificilmente encontrará um provedor, ou sua taxa será alta. Cada provedor tem sua própria taxa. Às vezes, pares de moedas diferentes têm uma taxa diferente. Ao projetar sua própria criptomoeda, você precisa levar em conta a taxa deles, para que seu negócio não se torne não lucrativo.
Market Makers. Em uma exchange de criptomoedas, os market makers são bots de trading criados usando inteligência artificial. Ele faz negócios usando um algoritmo especial para cada par de trading. Os market makers têm as seguintes vantagens:
A empresa Merehead desenvolveu seus próprios market makers que são usados com sucesso nos projetos de nossos clientes.
Que tipo de liquidez é melhor usar. Esta é uma pergunta difícil. Cada um tem suas próprias vantagens. Os provedores de liquidez são fáceis de usar e fáceis de integrar na plataforma. Mas, como regra, a taxa da sua plataforma será significativamente maior do que a dos seus concorrentes. Já que você tem que compensar os custos do provedor e adicionar sua taxa interna. Se você planeja conquistar o mercado internacional, aumentar a comissão é errado. Ela deve ser mínima e atrair usuários. Além disso, ao trabalhar com qualquer provedor de liquidez, você precisa ter reservas internas de dinheiro. Sem elas, esse método não funcionará.
Por outro lado, temos os formadores de mercado. Seu potencial é ilimitado. O formador de mercado pode ser usado para qualquer par de moedas. Pode ser usado como um bot-bot ou bot-user. No primeiro caso, uma emulação de liquidez será criada. Não há necessidade de fundos para a operação da plataforma. Em outro caso, o bot irá interagir com os usuários. Aqui você precisará de um estoque de fundos para conduzir transações no modo automático. Se você tiver alguma dúvida, pode entrar em contato com nosso especialista que lhe contará em detalhes o princípio de trabalho e o que é melhor usar no seu caso.
2. Suporte a aplicativos complexos
Alguns sistemas adicionam tipos mais sofisticados de ordens, como stop-limit e stop-loss. Essas ferramentas são particularmente úteis para traders experientes, permitindo que eles protejam suas posições de flutuações repentinas no mercado. No entanto, ao projetar uma bolsa, é importante considerar seu público-alvo. Se no estágio de teste 30-100 usuários em potencial não estiverem familiarizados com essas ferramentas ou não planejam usá-las, pode valer a pena focar em opções mais simples. Isso ajudará a evitar sobrecarregar a interface e reduzir os riscos de criar uma UX complexa e confusa.
3. Desempenho e escalabilidade
Ao projetar um mecanismo de negociação, questões de desempenho e escalabilidade são igualmente importantes. A bolsa deve suportar o processamento instantâneo de um grande número de ordens, proporcionando uma experiência tranquila para os usuários, mesmo em altos volumes de negociação. É importante implementar tecnologias que permitam que o sistema seja dimensionado rapidamente conforme o número de usuários e os volumes de negociação aumentam. Soluções baseadas em tecnologias distribuídas e arquitetura de blockchain podem melhorar significativamente a estabilidade do sistema.
O painel de administração deve permitir que você delineie funções para diferentes funcionários, por exemplo:
Gerentes KYC - com direitos de acesso limitados para processar apenas documentos do usuário.
Moderadores - responsáveis pela comunicação e suporte do usuário.
Parceiros - com acesso a todas as funções administrativas, se necessário.
Essa distinção permite que você minimize os riscos e gerencie sua equipe de forma eficaz.
KYC (know-your-customer) é o procedimento para identificar seu cliente. Ele se tornou mais famoso por suas plataformas financeiras e é em colaboração com o estado e outras ferramentas financeiras. Você deve ter se deparado com ele em outros sistemas, só que era chamado de forma diferente.
Sua essência é extremamente simples - identificá-lo como um usuário. Saiba um nome real, data de nascimento, série e número de documentos de identidade. Frequentemente é um passaporte internacional, carteira de identidade ou carteira de motorista. Algumas bolsas de criptomoedas exigem um sistema de verificação de usuário multinível.
O segundo nível geralmente requer uma conta de serviços públicos. Ele permite que a plataforma identifique seu local de residência. Um documento com mais de 6 meses já é considerado inválido, pois o usuário pode mudar seu local de residência. Se você alugar um apartamento, mas não estiver listado nesses documentos, infelizmente, você não passará deste nível.
O terceiro nível consiste na aprovação da carta de que você trabalha com o site. Neste caso, a plataforma fornece um modelo de contrato no qual você concorda em cumprir os termos de serviço.
Mas por que precisamos de uma identificação de usuário, contrato e local de residência? Como regra, em 90% dos casos isso é necessário para serviços financeiros. Cada bolsa de criptomoedas tem a capacidade de depositar e sacar dinheiro. O depósito é muito fácil de integrar e executar. Ao sacar fundos, há perguntas para uma contraparte. Os sistemas de pagamento devem entender para quem eles enviam dinheiro e se essa pessoa não é terrorista ou não participa de ações fraudulentas.
Além disso, a identificação do usuário permite que você determine com mais precisão a localização do usuário. Assim, você pode restringir o acesso à plataforma no modo manual. Por exemplo, residentes da China, Coreia do Norte ou Crimeia. Isso pode ser necessário para você se você cooperar com sistemas de pagamento internacionais que não podem atender aos residentes de certos países ou regiões. Se você quebrar o acordo, poderá ser banido e desconectado do sistema financeiro.
Como regra, as restrições são encontradas em plataformas de ICO, muito menos frequentemente em bolsas. Para bolsas não são requisitos tão rigorosos. No entanto, este procedimento é necessário para ICO para não violar as regras da SEC
KYC em uma bolsa de criptomoedas tem 2 estágios. Primeiro, um usuário com uma conta pessoal preenche um formulário e carrega documentos para se verificar. Depois disso, esses documentos devem passar pela verificação de identidade.
A integração com o serviço é realizada por meio da API e todos os dados são enviados no modo automático. A plataforma de criptomoeda recebe apenas a resposta do status de verificação. Não há nada difícil. Mas, como mencionado anteriormente, o custo depende da base de usuários e a taxa é cobrada para verificar cada usuário.
Por exemplo, o sistema Jumio cobra US$ 2 a US$ 3 por usuário (dependendo dos documentos que precisam ser verificados). Se você precisa verificar 100 a 200 usuários todos os dias, este serviço pode esvaziar seu bolso rapidamente. Adicione solicitações repetidas aqui se a primeira vez que a verificação falhar (por exemplo, um documento de baixa qualidade). Nós da Merehead entregamos trocas de criptomoedas e contatamos cerca de 60 provedores. Alguns dos mais baratos cobram cerca de US$ 0,6 por usuário.
Mas isso não é tudo. Há um risco oculto. Grandes sistemas ganham muito dinheiro e têm suas próprias regras do jogo. Alguns serviços funcionam com um depósito. O dinheiro é gasto na verificação do usuário. Parece algo assim: O provedor exige $ 50.000 em depósito. Cada usuário custa $ 2. Então, você pode verificar 25.000 usuários. Parece que está tudo bem, mas o dinheiro no depósito é apenas algum tempo.
Normalmente são 3 meses. Se você não os gastou durante esse período, eles são queimados e você deve pagar novamente. Essas despesas no primeiro estágio do desenvolvimento da troca de criptomoedas afetarão seriamente isso. Portanto, recomendamos verificar os usuários você mesmo e, em seguida, ir ao provedor.
Das vantagens de trabalhar com um provedor - quanto maior, maior é a base de usuários. Isso significa que a verificação ocorrerá quase instantaneamente se o usuário já existir. Vamos passar para a próxima pergunta sobre como construir nosso próprio software de exchange de criptomoedas.
Qualquer plataforma que lide com dinheiro real ou cripto deve ser protegida por métodos modernos. Vamos dar uma olhada nos métodos mais populares de hackear uma exchange de criptomoedas.
Recomendamos excluir o acesso aos fundos por meio do sistema de administração. Você pode ter uma pergunta sobre como sacar seu próprio dinheiro? A resposta é simples - um armazenamento híbrido de carteiras, construído com base no armazenamento a frio. Não recomendamos usar um servidor offline ou uma rede interna (Intranet) que armazenará todo o dinheiro. Esta não é uma maneira eficaz.
No momento, uma solução mais conveniente e flexível é o uso de carteiras de hardware Ledger ou Trezor. Ambas são modernas, protegidas externa e internamente e têm suporte para várias moedas (mais de 500). O tamanho do dispositivo se assemelha a uma unidade USB. É fácil de usar e confortável. Além disso, as carteiras são geradas por uma frase semente, o que significa que se a carteira for perdida, você pode recuperá-la facilmente.
Hacking de usuário. O usuário é o primeiro alvo de qualquer intruso. Em primeiro lugar, os hackers escolhem uma vítima por um longo tempo, porque é extremamente difícil hackear todos. Além disso, em média, o usuário vende um pequeno orçamento de até US$ 1.000. O objetivo do hacker é encontrar os usuários mais ricos que tenham um saldo de mais de US$ 10.000. Eles analisam as informações disponíveis em detalhes. Se você costuma escrever nas redes e na comunidade cripto sobre investimentos, ou até mesmo joga capturas de tela do seu portfólio, você é uma grande presa de hackers. Primeiro de tudo, refere-se ao Reddit, porque a comunidade cripto é uma das maiores.
Sempre garanta que não haja anti-phishing e que o 2FA esteja habilitado. Além disso, verifique novamente o e-mail para usar o 2FA. Normalmente, os hackers começam a hackear a partir do e-mail.
O mais perigoso é a engenharia social. Infelizmente, não há cura para esse tipo de hacking, e depende completamente da disciplina e atenção do usuário. Nunca envie suas senhas para ninguém (mesmo por e-mail). É perigoso até mesmo enviar seu endereço de e-mail, porque os dados na Internet são quase impossíveis de excluir. Nesse caso, é melhor ser anônimo, não espalhar informações sobre você e seu dinheiro. O dinheiro adora silêncio.
Recomendamos ter funções para rastrear autorização do dispositivo, localização, duração da sessão e endereço IP. Com dados semelhantes, o administrador ou sistema pode prever atividades suspeitas do usuário. E, neste caso, solicitar dados adicionais para autorização do usuário.
Engenharia social. Somos seres sociais e sentimos a necessidade de comunicação, cuidado e quaisquer outros sentimentos humanos. Muitas pessoas percebem outra pessoa como boa a priori até que ela prove o contrário. Este é um dos problemas mais sérios da engenharia social. O chamado "hacking man". É frequentemente praticado por fraudadores no setor financeiro que exigem dados pessoais de cartão. Normalmente, os fraudadores são representados por funcionários de um banco ou outra instituição financeira onde eles têm certeza de que o usuário está registrado. Tenha cuidado ao enviar quaisquer dados pessoais. Não recomendamos fazer isso.
Processo fraudulento baseado em permissão. O sistema de permissões para partes administrativas é estruturado de forma a criar funções e dividir tarefas para cada funcionário. Por exemplo, no sistema de administração, pode ser um moderador, administrador e superadministrador, financiador, etc. Além disso, você pode criar qualquer outro usuário (admin) com suas permissões.
Assim, há uma probabilidade de abuso de confiança. As permissões alocadas permitirão que o administrador forneça dados ao invasor para hackear a plataforma. Como regra, uma plataforma de criptomoeda acumula muito dinheiro de usuários. Tenha cuidado ao selecionar funcionários e delegar permissões a eles.
Hacking de servidor. Este é um problema sério e, para evitá-lo, é melhor não economizar no provedor. Não recomendamos usar seus próprios servidores ou usar os serviços de pequenos provedores. A segurança é primordial. Você pode prestar atenção a provedores como Amazon Web Services ou Microsoft Azure. Hoje, o ecossistema AWS é considerado um dos melhores e oferece muitas oportunidades: proteção contra ataques DDoS, serviço de e-mail, migração, serviços de mídia, firewall, etc.
Processos maliciosos. Programas maliciosos podem causar danos à sua plataforma de criptomoeda, mas como se proteger neste caso? Primeiro, vamos pensar em como processos ou programas maliciosos podem chegar ao seu servidor.
A maneira mais comum é fazer upload de um programa malicioso usando as ferramentas externas da plataforma. Se o sistema permitir que você faça upload de fotos para KYC - então elas definitivamente estão armazenadas em algum lugar. Uma arquitetura furada oferece muitas oportunidades para intrusos. Portanto, troca de criptomoedas de código aberto é extremamente perigosa. De acordo com a análise de 2015, 88% das trocas construídas em código de código aberto ou usam plataforma de exchange de white label e têm buracos e vulnerabilidades. Adicionar validação permite que você evite o upload de arquivos maliciosos, códigos binários ou programas exe.
Além disso, deve-se dizer que alguns programas maliciosos são carregados por freelancers. Tivemos um caso em que um cliente veio até nós com um problema de desempenho do sistema. Após uma análise detalhada dos processos no servidor, notamos um pequeno script de mineração. Ele estava minerando moedas. O script funcionou por cerca de 2 meses e só roubou o desempenho do servidor. O cliente não recebeu danos significativos, mas tenha cuidado e confie no desenvolvimento apenas de equipes confiáveis.
Vulnerabilidades por meio de sistemas ou ferramentas externas. O ponto menos óbvio, mas não é menos perigoso do que os anteriores. A bolsa raramente pode operar como uma unidade independente. Sejamos realistas, para os dias atuais, dificilmente qualquer plataforma pode funcionar de forma independente. Gateways de pagamento, integração do sistema de autorização são redes sociais, e-mail, integração de chamadas e SMS, sistema de CRM, serviço de suporte - essas são apenas as principais funções que usam serviços externos.
Se você olhar mais profundamente, poderá ver a integração de scripts de exchange de bitcoin, CDN, a integração de bibliotecas e outras ferramentas. Qualquer um desses sistemas ou plug-ins pode ser hackeado e, portanto, todas as plataformas nas quais eles estão instalados são automaticamente colocadas em risco. Existe alguma solução? Apenas algumas: siga as atualizações, escolha apenas serviços confiáveis e use um número limitado de ferramentas externas. Deve haver uma solução sólida entre velocidade e segurança.
Finalmente, sobre segurança. Sempre ative o 2FA, deixe que seja seu novo hábito ao trabalhar com dinheiro. Você pode usar o Google ou SMS. Não importa.
Falei muito sobre a segurança de uma exchange de criptomoedas, estágios de desenvolvimento e arquitetura. No entanto, vamos agora ao custo e à estimativa. O que é necessário para desenvolver uma plataforma de exchange de criptomoedas? Posso fazer isso sozinho ou com um amigo?