![Cúpula do floco de neve precipita avalanche de IA](https://optimuscloud.com.br/wp-content/uploads/2024/06/Cupula-do-floco-de-neve-precipita-avalanche-de-IA-150x150.jpg)
Cúpula do floco de neve precipita avalanche de IA
7 de junho de 2024![A ferrugem cresce mais rápido, mas o JavaScript reina supremo](https://optimuscloud.com.br/wp-content/uploads/2024/06/1717785844_A-ferrugem-cresce-mais-rapido-mas-o-JavaScript-reina-supremo-150x150.jpg)
A ferrugem cresce mais rápido, mas o JavaScript reina supremo
7 de junho de 2024Estudei criptografia na universidade na mesma época em que o Bitcoin surgiu como um conceito novo e não convencional. Em um dos meus cursos, analisamos os blocos de construção criptográficos de uma criptomoeda muito semelhante ao Bitcoin. Embora admirasse o brilho dos algoritmos e protocolos, não estava particularmente entusiasmado com a tecnologia blockchain. A minha principal reserva foi que, apesar do seu design inovador, não abordou quaisquer questões que eu pessoalmente considerasse significativas.
Meu ceticismo em relação ao blockchain persistiu até alguns meses atrás, quando colaborei com um dos clientes recentes da Aerospike, a Associação BSV. Ele usa blockchain para resolver com elegância um desafio de engenharia que, até onde sei, não foi abordado de forma eficaz em outro lugar, especialmente não de forma tão perfeita – a criação de um sistema bancário central ilimitado e linearmente escalável.
Estou optando por usar “sistema bancário central” em vez de “criptomoeda” para evitar as várias conotações associadas ao último termo. Para esta discussão, podemos pensar numa criptomoeda simplesmente como um sistema que permite aos clientes criar contas, depositar, levantar e transferir fundos — funções que refletem as dos sistemas bancários centrais tradicionais.
Na minha opinião, os sistemas bancários centrais representam exemplos por excelência de aplicações complexas, de missão crítica, seguras e precisas que, apesar de esforços consideráveis, resistiram consistentemente à modernização.
Os não modernizáveis
Muitos sistemas bancários básicos não são escaláveis ou são ineficientemente escaláveis, fazendo com que as empresas de serviços financeiros despendam recursos e esforços significativos apenas para aumentos mínimos na capacidade de carga de trabalho. Normalmente, essas limitações de escalabilidade decorrem da dependência de sistemas de gerenciamento de banco de dados relacionais (RDBMS), como mainframes ou Oracle, que inerentemente carecem da escalabilidade necessária.
Atualizar o coração e a alma dos principais sistemas bancários de RDBMS para bancos de dados NoSQL escalonáveis, mais rápidos, mais econômicos e eficientes provou ser excepcionalmente desafiador. Isto se deve em grande parte às características inerentes do RDBMS, que são ideais para a construção de sistemas complexos. No entanto, uma variedade de aplicações inicialmente desenvolvidas usando uma abordagem relacional fizeram a transição com sucesso para o NoSQL.
Durante a transição do RDBMS para o NoSQL, a camada de armazenamento de dados inevitavelmente perde certas características principais enquanto ganha outras. Esses recursos perdidos são essenciais para a funcionalidade do aplicativo e não podem ser ignorados. Portanto, é essencial abordar a ausência desses recursos na camada de aplicação, e é exatamente por isso que é tão difícil migrar sistemas altamente complexos e de missão crítica para longe do RDBMS.
Além disso, as operações do RDBMS são apoiadas por provas matemáticas, fornecendo garantias inquebráveis de integridade dos dados, mesmo na presença de bugs na camada de aplicação. Em contraste, no domínio NoSQL, a autoridade máxima é um cara que ganha a vida testando os bancos de dados (com todo o respeito). O máximo que ele pode afirmar é que nenhum bug foi encontrado na versão testada de uma tecnologia. Claramente, este nível de garantia é insuficiente para ambientes críticos, como os sistemas bancários principais. Portanto, se pretendemos abandonar as garantias matemáticas oferecidas pelo modelo relacional, devemos implementar garantias semelhantes na camada de aplicação.
Um método para obter essas garantias é através de métodos formais. No entanto, dada a complexidade dos principais sistemas bancários, construir um sistema exclusivamente utilizando esta abordagem é altamente desafiador.
O potencial do Blockchain
Tirando os chavões, Blockchain é fundamentalmente um algoritmo de confiança zero matematicamente comprovado. Assim, pode ser implantado na camada de aplicação para compensar a ausência de garantias matemáticas no modelo de armazenamento subjacente. Além disso, o sucesso do Bitcoin mostra que a tecnologia blockchain pode de fato ser usada de forma eficaz para construir um sistema bancário central.
No entanto, o Bitcoin e inúmeras outras criptomoedas baseadas em blockchain são significativamente limitados pelo seu rendimento de transações, que é consideravelmente inferior ao dos sistemas tradicionais de transações financeiras não escaláveis. Consequentemente, neste aspecto específico, as criptomoedas existentes não oferecem melhorias substanciais em relação aos sistemas financeiros tradicionais.
Solução da BSV para desafios de rendimento de blockchain
Sem entrar em detalhes excessivos, o rendimento limitado em criptomoedas baseadas em blockchain decorre principalmente do tamanho dos blocos de blockchain. Por exemplo, o tamanho do bloco da implementação mais famosa do White Paper do Bitcoin, o Bitcoin, é limitado a 1 MB, restringindo-o ao processamento de apenas sete transações por segundo, um número embaraçosamente baixo. Em contraste, a implementação do Bitcoin Cash conseguiu aumentar o rendimento para mais de 100 transações por segundo, aumentando o tamanho do bloco para 32 MB, embora este número também permaneça decepcionantemente baixo.
Bitcoin Satoshi Vision, ou BSV, é outra implementação do Bitcoin White Paper. O principal objetivo do projeto do BSV é superar as limitações de rendimento, eliminando o limite de tamanho de bloco, permitindo teoricamente um rendimento ilimitado. No entanto, esta modificação apresenta um desafio substancial de engenharia.
As criptomoedas construídas com base no White Paper do Bitcoin usam o modelo Unspent Transaction Output (UTXO), ao contrário do modelo de contabilidade tradicional usado nos principais sistemas bancários. As informações UTXO são recuperadas e atualizadas na loja UTXO para verificar se uma transação Bitcoin pode ser gasta. Quaisquer atrasos no processamento de um UTXO reduziriam bastante o desempenho de um nó Bitcoin, levando à perda de receita para os mineradores.
Para agilizar este processo, é essencial que os UTXOs estejam acessíveis o mais rapidamente possível. Armazenar UTXOs na memória forneceria a velocidade necessária para operações eficientes. No entanto, esta abordagem traz implicações de custos significativas: milhões de transações por segundo resultam em trilhões de UTXOs, exigindo dezenas de terabytes de RAM. Essas elevadas exigências de recursos poderiam tornar a solução proibitivamente dispendiosa, representando uma grande barreira à adoção generalizada e à escalabilidade.
Aerospike: a chave para o futuro escalável do BSV
O uso de unidades de estado sólido comuns em vez de RAM para armazenamento de dados, como o Aerospike, reduz significativamente os custos do BSV associados à manutenção de UTXOs em armazenamento rápido de dados, garantindo eficiência e acessibilidade, o que, por sua vez, promove uma adoção mais ampla da rede.
É importante ressaltar que a consistência e integridade do armazenamento UTXO são cruciais para o bom funcionamento do nó. Se o armazenamento UTXO for corrompido, o nó não poderá participar com sucesso em atividades geradoras de receita por vários ciclos, resultando em danos indesejados, mas limitados. Portanto, os nós BSV contam com o modo Strong Consistency do Aerospike para mitigar esse risco.
No entanto, a exatidão geral do protocolo, incluindo a precisão dos saldos e transferências, que podem levar a danos ilimitados se corrompidos, depende das fortes garantias matemáticas fornecidas pela blockchain na camada de aplicação.
Quebrando barreiras: capacidade de transação sem precedentes
Na fase de testes, a rede BSV demonstrou capacidade de sustentar 1 milhão de transações por segundo durante um longo período (semanas). Em comparação, o sistema de pagamento Visa pode lidar com até 65 mil transações por segundo.
Para gerenciar 1 milhão de transações por segundo, cada nó BSV, conhecido como Teranode, gera aproximadamente 3 milhões de solicitações por segundo em seu cluster Aerospike, um número significativo, mas modesto em comparação com alguns outros clientes.
Por exemplo, a Criteo, uma renomada empresa francesa de AdTech, usa o Aerospike para lidar com 280 milhões de solicitações por segundo, indicando que nem o Aerospike nem o tamanho do bloco seriam um fator limitante no dimensionamento da rede BSV.
Em um universo paralelo
Ao longo da última década, ajudei diversas instituições financeiras a dimensionar os seus sistemas para novos casos de utilização, tais como serviços bancários móveis e iniciativas de conformidade regulamentar como o Open Banking. Um tema recorrente nestes projetos é a implementação de soluções para melhorar as limitações de rendimento dos sistemas subjacentes. Em um artigo anterior, expliquei extensivamente por que tais abordagens são incrivelmente ineficientes.
Normalmente, essas soluções empregam um banco de dados escalonável que recupera dados de um RDBMS não escalonável por meio de um processo complexo de extração, transformação e carregamento (ETL). Embora estes sistemas aumentem a capacidade de carga de trabalho, necessitam de investimentos substanciais em novas infra-estruturas, exigem milhões de horas de trabalho de engenharia e resultam na criação de sistemas complexos que são difíceis de manter. Isso é o que chamo de escalonamento ineficiente.
Posso imaginar um universo paralelo onde os sistemas centrais são ilimitadamente e linearmente escaláveis. Num mundo assim, acomodar um novo caso de utilização que aumente a procura no sistema principal poderia ser simplesmente gerido através da expansão da infraestrutura existente. Não haveria necessidade de construir sistemas cujo único propósito fosse proteger o elo mais fraco. Sem complexidade crescente. Não há projetos plurianuais e de bilhões de dólares apenas para lançar um aplicativo.
Foi essa visão que mudou minha opinião sobre o blockchain.
Saiba mais sobre a latência de milissegundos altamente escalável do Aerospike, banco de dados em tempo real.
A postagem Por que mudei de idéia sobre Blockchain apareceu pela primeira vez no The New Stack.