Como criar uma exchange de criptomoedas: o *Guia definitivo da Instinctools

Publicados: 2022-12-03

Apesar das flutuações da moeda digital, o interesse das pessoas por ela continua alto. De acordo com Statista, espera-se que a receita no segmento de criptomoedas apresente uma taxa de crescimento anual (CAGR 2022-2027) de 16,43%. É definitivamente uma boa notícia para aqueles que estão tendo uma visão de longo prazo do mercado de ativos digitais. Além disso, no painel “Future of the crypto exchange” realizado em Londres em setembro, os representantes das mundialmente famosas plataformas de negociação de criptomoedas, como Binance, Huobi, etc., se gabaram dos prolíficos resultados alcançados durante um ano bastante árduo. Inspirados pelo sucesso dos grandes players, muitas startups estão planejando ganhar com o comércio e querem saber como criar sua própria exchange de criptomoedas.

Os sistemas de pagamento globais também estão se movendo na direção da criptografia e forjando novas conexões entre moedas digitais e tradicionais. Por exemplo, a Mastercard permite liquidações usando criptografia em sua rede, e a Visa se tornou a primeira grande rede de pagamento a liquidar transações em USDC.

Grandes marcas, incluindo TAG Heuer, Hublot e Breitling, também aceitam criptomoedas para pagamento com a ajuda de processadores especiais de pagamento criptográfico que permitem aos clientes fazer compras com, digamos, Bitcoin ou Ethereum, enquanto a empresa pode obter instantaneamente a quantia equivalente paga em dólares.

Se você quiser saber como criar uma troca de criptografia e torná-la uma solução verdadeiramente lucrativa, verifique como lidamos com os desafios ao construir uma das primeiras trocas de criptografia de marca branca na Europa.

O que é uma plataforma de troca de criptomoedas?

Determinar o que você deseja obter é crucial, pois “uma troca de criptografia” pode implicar em coisas diferentes.

  • Uma plataforma de negociação completa onde os usuários têm mais do que um entendimento básico de cripto e estão dispostos a se tornar negociadores de cripto bem-sucedidos. É uma solução técnica sofisticada e um sério investimento de recursos e dinheiro. Por exemplo, você precisará desenvolver um software de troca de criptografia, como um mecanismo de correspondência de pedidos (OME), que é a espinha dorsal e o coração pulsante de uma plataforma de negociação de criptografia que reúne e sincroniza dados em vários pares de negociação.
  • Uma troca instantânea de criptomoedas para transações cripto-para-fiat e fiat-para-cripto . Ao contrário de um gateway de pagamento criptográfico, incorporado à sua solução existente, uma troca criptográfica é um negócio completo. É uma opção prática para usuários que não querem negociar e precisam converter uma criptomoeda em outra ou em moeda fiduciária. Nesse caso, você precisa lidar com desafios como integrações bancárias. Porém, a carga de trabalho é muito menor em comparação com uma plataforma de negociação.

Qualquer solução pode se tornar uma oportunidade lucrativa para o seu negócio. Neste artigo, focamos principalmente nas trocas instantâneas de criptomoedas. Vamos investigar os pontos problemáticos que nossos especialistas destacaram com mais detalhes.

Tipos de plataformas de troca de criptografia

As trocas de criptografia podem ser centralizadas (CEX, gerenciadas de forma privada) ou descentralizadas (DEX, sem propriedade central). Muitas empresas falam sobre DEX sem saber o que realmente significa e se um negócio pode realmente se beneficiar de tal opção.

Escolher entre uma troca centralizada ou descentralizada é um acéfalo, já que a DEX ainda é a utopia dos entusiastas de criptomoedas. As plataformas de troca de criptomoedas descentralizadas são difíceis de gerenciar devido aos ativos distribuídos. Além disso, eles costumam ter problemas com falta de liquidez. Se na CEX a gestão centralizada garante liquidez graças aos seus bancos parceiros, a DEX depende principalmente do dinheiro do cliente e usa esquemas complicados para cumprir o pool de liquidez. Portanto, se os usuários repentinamente correrem para vender criptomoedas, uma plataforma de troca descentralizada provavelmente funcionará por algumas horas e parará, pois o dinheiro terá acabado e não haverá de onde obtê-lo.

Além disso, DEX implica anonimato, que é sinônimo de zona não regulamentada e um dos maiores desafios da criptomoeda hoje. E isso, por sua vez, contradiz completamente a condução legal dos negócios.

— Dmitry Gursky, chefe da linha de serviços criptográficos, *instinctools

Arquitetura de exchange de criptomoedas explicada

Vamos falar sobre como construir uma plataforma de troca de criptomoedas em termos de arquitetura. Sua solução pode ser monolítica (construída em um único servidor) ou baseada em microsserviços (cada componente está localizado em um servidor separado).

arquitetura monolítica

Com essa abordagem, todo o código é armazenado em um único repositório, em vez de ser fragmentado em diferentes serviços. Portanto, você precisará de desenvolvedores de primeira linha, pois nem todos podem operar com esse volume de código.

Devido à alta conectividade, a arquitetura monolítica é difícil de testar. Mas é possível dividir os dados em camadas e trabalhar com elas para agilizar o processo. Além disso, você gastará muito menos com suporte em comparação com microsserviços.

— Maksim Zhuravel, líder técnico da Blockchain

Esse tipo de arquitetura é especialmente adequado para projetos MVP ou para testar uma hipótese. Por exemplo, as pessoas usarão sua solução na medida do esperado, se você fizer sua própria troca de criptografia?

Microsserviços

A arquitetura de microsserviços é conhecida por sua flexibilidade e escalabilidade. Facilita a operação em um sistema distribuído ou quando muitas mudanças são necessárias. Além disso, você não está limitado a uma linguagem de programação e pode aproveitar diferentes linguagens para microsserviços separados.

Você tem uma ampla escolha de especialistas que podem criar microsserviços separados para sua solução, pois diferentes linguagens se adequam a isso. Seja Python, Java, PHP ou outra linguagem; você pode implementar a funcionalidade da parte criptográfica em quase qualquer um deles.

— Maksim Zhuravel, líder técnico da Blockchain

Uma arquitetura de microsserviço também abre caminho para a criação de soluções com alta carga de trabalho e velocidade de desempenho, como plataformas de negociação de criptomoedas, porque você pode confiar no Kubernetes (K8s). Esse sistema de orquestração garante a criação de ambientes de autocorreção enquanto o sistema é dimensionado. Sempre que o K8s detecta uma falha de infraestrutura, o sistema pode reiniciar, replicar ou dimensionar automaticamente para manter a infraestrutura confiável. Mas considere que você precisa de uma equipe forte de DevOps para configurar o Kubernetes e que uma arquitetura de microsserviço é cara para construir e manter. Custos adicionais são condicionados pela complexidade que os microsserviços impõem ao sistema e pela necessidade de contratar mais desenvolvedores com habilidades de primeira linha.

Em geral, esta opção é adequada para organizações que já possuem um produto maduro com tendência de crescimento e desenvolveram detalhadamente os requisitos para a solução técnica.

Se o seu sistema não deve aceitar um milhão de mensagens por segundo, você pode executá-lo de maneira confortável e eficiente em um monólito. Os microsserviços são mais convenientes se estivermos falando de uma equipe muito distribuída, como 50 desenvolvedores trabalhando em diferentes recursos em diferentes fusos horários. Os microsserviços são mais fáceis de lidar, pois cada microsserviço é uma parte dedicada da lógica. E é sempre mais fácil trabalhar com uma pequena quantidade de código do que com uma grande.

Portanto, a questão é sempre sobre a escala da sua solução e o tamanho da sua equipe. Pela minha experiência, 90% das startups têm uma arquitetura monolítica. Sim, os microsserviços escalam melhor e mais rápido, mas isso não significa que projetos de grande escala não possam ser construídos em um monólito. Mesmo os bancos funcionam com sucesso em uma arquitetura monolítica.

— Maksim Zhuravel, líder técnico da Blockchain

Seja qual for a sua escolha, lembre-se de que há espaço para mudanças. Um monólito pode ser dividido em microsserviços. É possível projetar a arquitetura da solução de forma que a migração para microsserviços não demore mais de um mês. E, vice-versa, os microsserviços podem ser montados em uma arquitetura monolítica se forem muito problemáticos para gerenciar.

Quatro desafios para lidar ao construir uma exchange de criptomoedas

Aqui vem a parte mais complicada, onde você tem que resolver problemas em um nível granular. Envolve a escolha de blocos funcionais apropriados para a solução, desenvolvendo um design UX/UI intuitivo, garantindo medidas de segurança adequadas e testando a plataforma antes de entrar no ar.

1. Seleção dos módulos funcionais com base na história de sucesso do nosso cliente

Cada plataforma de troca de criptografia é composta de blocos funcionais. A seleção deles depende do seu desejo de se destacar da concorrência, das necessidades do cliente e dos requisitos regulamentares. Por exemplo, você deve investigar se pode armazenar os dados pessoais dos usuários na nuvem. No caso de plataformas de câmbio cripto a cripto, pode ser aceitável. Mas no caso de soluções cripto para fiduciário, os serviços em nuvem provavelmente não são uma opção, como aconteceu com nosso projeto de troca de criptomoedas na Europa, quando o regulador impôs a proibição de armazenar dados confidenciais dos usuários na nuvem.

Além das limitações relacionadas à construção de uma troca de criptografia de marca branca, tivemos que considerar as expectativas do cliente em relação aos recursos técnicos da solução. Tinha que incluir cobertura altamente inteligente e um alto grau de personalização da calculadora, dependendo de vários parâmetros. Intrigado? Então vamos nos aprofundar no que está sob o capô e no que está na superfície neste caso.

O software de troca de criptografia, como qualquer software, inclui desenvolvimento de back-end e front-end.

A parte de trás

Na solução de troca de criptografia que criamos, os seguintes blocos funcionais estão vinculados ao back-end:

  • Processadores Blockchain . Este módulo é responsável pelas integrações de blockchain e fornece acesso a operações de criptomoeda.
  • Processadores de cartões . Um módulo adicional se você quiser alcançar mais usuários e oferecer uma troca de criptomoedas por moeda fiduciária. É o bloco de integrações com os bancos ou provedores de serviço PSP, como PayPal nos Estados Unidos e Europa, e Alipay na Ásia.
  • Módulo admin . Aqui você gerencia usuários despersonalizados, transações (e corrige transações suspensas) e a própria troca (você lida com taxas, comissões, etc.). Há dois pontos nos quais você deve prestar atenção especial ao fazer hedge e interagir com seu provedor de liquidez.

Cobertura . É um processo automatizado de equilibrar seus ativos fiduciários e criptográficos no nível das transações diárias. Quando um usuário troca $ 100 por cripto, a cobertura automática é responsável por uma compra espelhada de criptomoeda de seu provedor de liquidez.

No software de troca de criptografia que criamos, a cobertura não é apenas automatizada, mas inteligente. Em vez de proteger todas as transações, o sistema mantém um certo corredor de saldo fiat e criptomoeda. Simplificamos o processo de cobertura para que o sistema possa interagir com o provedor de liquidez somente quando as transações saírem do corredor de saldo.

— Dmitry Gursky, chefe da linha de serviços criptográficos, *instinctools

Nas interações com seus provedores de liquidez . Você precisa deles para abastecer sua plataforma de troca de criptomoedas com criptomoedas e dinheiro fiduciário. Em contraste com o hedge, aqui estamos falando sobre equilibrar uma quantia de dinheiro dentro de um giro de 2 a 3 dias de sua plataforma de troca de criptomoedas.

Em um mundo de sonho, as operações de câmbio são equilibradas. No entanto, a realidade interfere nesse sonho, mostrando uma desproporção constante seja do lado da criptomoeda, seja do lado do fiduciário. É por isso que você deve manter o dedo no pulso para entrar em contato com seus provedores de liquidez a tempo.

— Dmitry Gursky, chefe da linha de serviços criptográficos, *instinctools

  • CRM . Como mencionamos anteriormente, no caso do nosso cliente, o regulador tinha uma exigência estrita de armazenar os dados pessoais dos clientes apenas no país de sua cidadania. Além disso, por questões de segurança, apenas um grupo limitado de funcionários tem acesso ao módulo CRM, onde são armazenadas todas as informações sobre os usuários e o histórico das interações com cada um deles.
  • Apoiar. Este serviço está interligado com o CRM, uma vez que, para aceder aos tickets de um determinado utilizador, primeiro é necessário obter os seus dados no CRM.

Front-end do cliente

É a versão web da sua plataforma de troca de criptomoedas com a qual os usuários interagem. Além da janela de serviço principal, inclui uma conta pessoal que funciona de forma semelhante a uma conta pessoal em um aplicativo bancário típico.

Uma calculadora é crucial para o front-end do software de troca de criptografia.

Uma calculadora pode ser simples quando a taxa de câmbio da criptomoeda é a mesma para todos os usuários registrados. No entanto, em nossa solução de troca de criptografia, a calculadora é altamente personalizada e calcula a taxa de câmbio individualmente para cada usuário considerando uma infinidade de parâmetros. Por exemplo, a taxa será diferente para portadores de cartões de diferentes bancos, proprietários de cartões básicos e premium, clientes comuns e VIP. Também dependerá de um método de transferência (cartão ou conta bancária), da disponibilidade de um código promocional único ou permanente, etc. A calculadora, neste caso, é um microsserviço difícil de construir no nível do código, pois você tem que lidar com um número incompreensível de possíveis erros. Por exemplo, com toda a personalização, você deve considerar o AML e os limites do cartão para cada usuário.

— Dmitry Gursky, chefe da linha de serviços criptográficos, *instinctools

Aqui está o esquema de interconexão entre os módulos de back-end e front-end na solução de troca de criptografia que construímos para nosso cliente.

2. UX/UI intuitiva

Trocar cripto por fiduciário e vice-versa levanta mais questões do que transações de câmbio regulares. É por isso que o design adequado de UX/UI é vital para fornecer aos usuários todas as informações necessárias sem sobrecarregá-los com informações.

Nunca subestime a complexidade de criar uma solução simples. Por um lado, você pode querer colocar o máximo possível de informações significativas na tela da calculadora. Métodos de pagamento, taxas de serviço e blockchain, taxas de câmbio padrão e taxas exclusivas para os titulares de cartões de um determinado banco, limites, suporte técnico, etc. – todos parecem igualmente importantes. Por outro lado, você precisava criar uma plataforma de troca de criptografia concisa que os usuários pudessem entender intuitivamente.

— Dmitry Gursky, chefe da linha de serviços criptográficos, *instinctools

Aqui estão as interfaces móveis e de desktop finais da troca de criptografia de marca branca criada por nosso cliente.

3. Questões de segurança

O desafio aqui não é apenas como criar uma plataforma de troca de criptomoedas, mas também como construir uma solução segura externa e internamente. Vamos resolver as coisas.

A segurança externa de uma troca de criptografia refere-se à infraestrutura e ao serviço.

  • Segurança de infraestrutura . Você pode hospedar sua solução de criptografia na AWS, Azure, Google Cloud ou serviços de nuvem semelhantes. Qualquer provedor de nuvem oferece proteção básica contra ataques cibernéticos externos. Se usarmos o AWS como exemplo, ele pode detectar e mitigar automaticamente a maioria dos ataques externos.

Seu provedor garante um conjunto completo de mecanismos de proteção contra vários eventos perigosos. E se você estiver construindo uma solução auto-hospedada, terá que assumir a responsabilidade e garantir a proteção contra diversos riscos sozinho ou com a ajuda de um parceiro de desenvolvimento confiável.

  • Segurança do serviço . Aplica-se ao tratamento de seu banco de dados, dados confidenciais de clientes e chaves públicas e privadas. Vejamos cada caso.

Seu banco de dados deve ser armazenado adequadamente em um servidor separado. Leve em consideração os requisitos de armazenamento do seu regulador ao criar uma troca de criptografia. Por exemplo, mesmo que seu código esteja armazenado na nuvem, os reguladores podem insistir em manter o banco de dados localmente nos servidores de sua empresa. Além disso, certifique-se de que seu código interaja com o banco de dados de forma segura e que as informações não possam ser interceptadas.

A violação dos dados de seus clientes (por exemplo, uma lista com os nomes de seus clientes) não pode resultar em retirada de dinheiro, mas traz riscos à reputação de sua empresa. Portanto, há etapas gerais que você deve seguir para garantir a segurança dos dados confidenciais, como ter bancos de dados despersonalizados e armazenar dados pessoais em um local separado.

Ao criar uma troca de criptografia, mais um ponto a considerar é a segurança das chaves públicas (usadas para identificação dos usuários) e chaves privadas (necessárias para autenticação e criptografia). Por exemplo, todas as chaves privadas devem ser criptografadas e armazenadas de forma distribuída para torná-las inacessíveis de fora.

A segurança interna também inclui trabalhar com dados pessoais e garantir proteção adequada contra seus administradores, pois eles têm acesso aos endereços do sistema. Os direitos de acesso e disposição desses endereços devem ser automatizados. Caso contrário, se os funcionários tiverem permissão para realizar pagamentos, seus direitos precisam ser estritamente limitados ou verificados com um sistema de assinatura múltipla, o que significa que outro funcionário, como um oficial de segurança, aprova a transação.

Já mencionamos a importância de uma equipe forte de DevOps na arquitetura da sua solução criptográfica. Os especialistas em DevOps também são responsáveis ​​por configurar e proteger a infraestrutura interna. Eles garantem que os bancos de dados permaneçam inalterados – qualquer tentativa de invadir os dados é registrada e monitorada para evitar que invasores cubram seus rastros.

4. Peculiaridades de teste

O teste é uma parte indispensável dos projetos de desenvolvimento de exchanges de criptomoedas. Existem diferentes tipos de testes, que examinamos no artigo sobre testes de desempenho. No entanto, você não precisa executá-los todos. Escolha aqueles que são particularmente cruciais para suas necessidades. Com base na experiência de nossos especialistas em criptografia, podemos dizer que é vital realizar testes de carga, estresse e pico.

Por exemplo, você escolheu inicialmente uma arquitetura de microsserviços para sua plataforma de troca de criptomoedas que pode lidar com mil transações por segundo. Nesse caso, você precisa testar se a solução pode sustentar tal carga. É o tipo de teste de carga. Os testes de estresse e pico são os próximos da fila.

A maioria dos blockchains tem um testnet. É uma cópia da mainchain, um ambiente ao vivo onde você pode realizar transações com qualquer quantidade de tokens usando seus endereços de teste e nós com risco zero.

Trabalhar com o testnet tem suas peculiaridades. Portanto, é melhor ter um parceiro técnico experiente ao seu lado, que saiba como configurar um processo de desenvolvimento adequado.

— Dmitry Gursky, chefe da linha de serviços criptográficos, *instinctools

Se sua plataforma de troca de criptomoedas permitir não apenas operações criptográficas, mas também transações criptográficas para fiduciárias, você também precisará testar o lado fiduciário. Se você se integrar aos bancos, eles oferecerão seus sandboxes para executar transações em modo de teste.

Encontrar um parceiro técnico confiável para criar uma troca de criptomoedas é metade da batalha

Iniciar sua própria troca centralizada de criptomoedas pode parecer complicado e assustador. Até encontrar um parceiro de tecnologia experiente que possa criar uma troca de criptomoedas da forma mais adequada às suas necessidades de negócios e às expectativas dos clientes. Um aliado técnico confiável escolhe a arquitetura apropriada e identifica os módulos funcionais adequados para sua solução, além de criar um design UX/UI intuitivo, fornecer à plataforma de troca de criptografia um nível adequado de segurança e executar testes com responsabilidade.


O artigo foi originalmente publicado aqui.