Introdução:
Este artigo fornece uma introdução prospectiva a um paradigma de design de infraestrutura Web3 um tanto convencional: o Paradigma de Consenso Baseado em Armazenamento (SCP). Este modelo de design diverge significativamente das soluções de blockchain modular mainstream como Ethereum Rollups na teoria. No entanto, demonstra alta viabilidade em termos de simplicidade na implementação e integração com plataformas Web2. SCP não pretende limitar-se a um caminho estreito de realização como Rollups. Em vez disso, visa adotar um framework mais amplo e aberto para fundir plataformas Web2 com infraestrutura Web3. Esta abordagem pode ser vista como altamente imaginativa e inovadora.

Vamos imaginar uma solução de escalabilidade de blockchain público com as seguintes características:
Tem velocidades comparáveis às aplicações ou exchanges Web2 tradicionais, superando em muito qualquer blockchain público, Layer 2 (L2), rollups, sidechains, etc.
Não há taxas de gás, e o custo de uso é quase zero.
Alta segurança financeira, superando instalações centralizadas como bolsas, inferior a Rollups mas maior ou igual a sidechains.
Uma experiência do utilizador idêntica à Web2, sem requerer qualquer conhecimento das chaves públicas e privadas da blockchain, carteiras, infraestrutura, etc.
Uma solução como esta é realmente muito emocionante: por um lado, atingiu essencialmente o auge em termos de escalabilidade; por outro lado, lança uma base sólida para a adoção em massa do Web3, essencialmente aproximando a experiência do usuário do Web2 e Web3. No entanto, parece que temos poucas soluções abrangentes como esta, uma vez que as discussões e práticas mainstream são de fato muito escassas.
Usamos o conhecido tópico de escalabilidade como introdução acima, mas o SCP não se limita aos casos de uso de escalabilidade. Sua inspiração de design realmente vem das soluções de escalabilidade e discussões da comunidade de blockchains públicos como Bitcoin e Ethereum. Sua visão e aplicação prática é construir uma nova geração de infraestrutura sem confiança, até mesmo plataformas computacionais não baseadas em estruturas de blockchain.
Camada de Disponibilidade de Dados: Gerida por uma blockchain pública amplamente reconhecida e bem testada, ou por instalações de armazenamento que funcionam como a camada de disponibilidade de dados, como Ethereum, Arweave, Celestia, etc.
Camada de execução: Um servidor, usado para receber transações de usuário e executá-las, enquanto também submete em lote os dados de transação assinados para a camada DA, semelhante aos sequenciadores em Rollups. No entanto, a camada de execução não necessariamente precisa de uma estrutura de cadeia estilo blockchain; pode ser inteiramente um sistema de banco de dados + computação Web2, mas todo o sistema de computação deve ser de código aberto, com transparência.
Camada de Consenso: Composta por um grupo de nós que retiram os dados enviados para a camada de DA pela camada de execução e usam o mesmo algoritmo da camada de execução para processar esses dados, confirmando se a saída da camada de execução está correta e pode servir como uma redundância de recuperação de desastres para a camada de execução. Os usuários também podem ler os dados retornados pelos nós da camada de consenso para garantir que não haja comportamento fraudulento na camada de execução.
Camada de Liquidação: Composta por um grupo de nós e contratos ou endereços em outras cadeias, responsável por lidar com os depósitos do utilizador no SCP, ou levantamentos do SCP, algo semelhante à operação de pontes entre cadeias. Os nós da camada de liquidação controlam a função de levantamento do endereço de depósito através de contratos multisig ou endereços baseados em TSS. Para depósitos, os utilizadores transferem ativos para um endereço designado na sua cadeia; para levantamentos, enviam um pedido, e depois de os nós da camada de liquidação lerem os dados, libertam os ativos através de multisig ou TSS. O nível de segurança da camada de liquidação depende do mecanismo entre cadeias utilizado.


Podemos gritar este slogan: "A próxima geração de infraestrutura sem confiança não necessariamente tem que depender de protocolos de consenso, mas deve ser um sistema de código aberto com uma rede de nós Peer-to-Peer (P2P)." A intenção original de inventar e usar blockchain era alcançar a descentralização, a consistência do livro-razão, a imutabilidade e a rastreabilidade, como explicitamente declarado no whitepaper do Bitcoin. No entanto, após o Ethereum, quer seja as soluções de expansão da cadeia pública antiga, Rollups, ou blockchains modulares, houve uma mentalidade fixa: o que estamos a criar deve ser ou uma blockchain (composta por protocolos de consenso dos nós) ou algo como Rollup (que parece ser uma cadeia com estruturas de dados de blockchain, mas sem trocas diretas de mensagens de consenso entre nós). Agora, sob o framework baseado no SCP (Stellar Consensus Protocol), é evidente que mesmo sem ser uma blockchain, é possível alcançar descentralização, consistência do livro-razão, imutabilidade e rastreabilidade, desde que haja mais detalhes de implementação explícitos.
Trocas. Usando SCP, pode-se construir uma troca pública e transparente com altas Taxas de Transação por Segundo (TPS), combinando as características rápidas e sem custos de uma Troca Centralizada (CEX) e a descentralização de uma Troca Descentralizada (DEX). Aqui, a distinção entre CEX e DEX torna-se turva.
Redes de Pagamento. Semelhante ao Alipay, PayPal, etc.
Máquinas Virtuais/Blocos de Cadeia que Suportam Programas/Contratos Carregáveis. Qualquer programador pode implementar qualquer aplicação nela, partilhando todos os dados do utilizador com outros programas e operando de acordo com as instruções do utilizador.
O padrão de design do SCP, que suporta qualquer ambiente de execução, tem suas vantagens únicas: não há necessidade de confiar em componentes com bagagem histórica, especialmente conceitos como a “abstração de conta” única para a comunidade Ethereum. Para o SCP, o conceito de abstração de conta é intrinsecamente desnecessário. Na arquitetura do SCP, não há conceito de abstração de conta — é possível adotar livremente contas padrão Web2 e contas de blockchain, etc. A partir desse ponto de vista, muitos casos de uso maduros do Web2 não precisam ser repensados e reconstruídos para serem diretamente aplicáveis ao SCP. Esse aspecto pode ser onde o SCP tem uma vantagem sobre os Rollups.

Registo de Conta: Os utilizadores introduzem um nome de utilizador e uma palavra-passe na página de registo da aplicação. Para proteger a palavra-passe do utilizador, o servidor processa-a através de uma função de hash ao recebê-la. Para aumentar a complexidade do hash e defender-se contra ataques de tabela arco-íris, uma string gerada aleatoriamente (conhecida como "salt") é normalmente apendada a cada palavra-passe do utilizador antes do hashing. O nome de utilizador, salt e hash são armazenados em texto simples na base de dados do fornecedor de serviços e não são tornados públicos. No entanto, mesmo assim, o salting e o processamento seguro são necessários para prevenir ameaças internas e ataques.
Login do utilizador: Os utilizadores inserem o seu nome de utilizador e palavra-passe no formulário de login. O sistema compara o hash da palavra-passe processada com o hash armazenado na base de dados. Se os dois hashes coincidirem, isso indica que o utilizador forneceu a palavra-passe correta e o processo de login prossegue.
Autenticação de operação: Após a verificação bem-sucedida do login, o sistema cria uma sessão para o utilizador. Tipicamente, a informação da sessão é armazenada no servidor e o servidor envia um identificador (como um cookie ou token) para o navegador ou aplicação do utilizador. Durante operações subsequentes, os utilizadores já não precisam de inserir repetidamente o seu nome de utilizador e palavra-passe: o navegador ou aplicação guarda o identificador do cookie e inclui-o em cada pedido, indicando que têm a permissão do servidor associada ao cookie.
Login do utilizador: Utilizar a blockchain não requer fazer login. A maioria das dApps não possui um processo de login, mas em vez disso conectam-se a uma carteira. Algumas dApps, após se conectarem a uma carteira, podem exigir que os utilizadores assinem uma verificação para garantir que realmente possuem a chave privada, em vez de apenas terem submetido um endereço de carteira à interface do utilizador.
Autenticação de operação: Os utilizadores submetem diretamente os dados assinados aos nós. Após validação, os nós difundem a transação para toda a rede blockchain. Uma vez que a operação é confirmada pelo consenso da rede blockchain, fica finalizada.
A diferença entre esses dois modos é causada por fatores simétricos e assimétricos. Em uma arquitetura servidor-usuário, ambas as partes possuem o mesmo segredo. Em uma arquitetura blockchain-usuário, apenas o usuário possui o segredo. Embora a camada de execução do SCP (Plataforma de Contrato Inteligente) possa não ser uma blockchain, todos os dados precisam ser sincronizados com uma camada de DA (Disponibilidade de Dados) publicamente visível. Portanto, os métodos de login e verificação de operação do SCP devem ser assimétricos. No entanto, para evitar ações complicadas como gerenciamento de chaves privadas e uso de carteiras, que podem dificultar a adoção generalizada devido a uma experiência do usuário ruim, há uma forte demanda por logins de autenticação de terceiros tradicionais ID-senha ou OAuth em aplicativos construídos no SCP. Então, como combinamos os dois? Devido à natureza assimétrica da criptografia e das provas de conhecimento zero, imagino duas soluções possíveis:

Independentemente do método utilizado, ambos são mais dispendiosos em termos de desenvolvimento e operação do que os métodos tradicionais, mas este é um preço necessário a pagar pela descentralização. Claro, se o projeto não considerar a extrema descentralização necessária, ou tiver diferentes marcos em diferentes fases de desenvolvimento, é possível avançar sem esses designs, uma vez que a descentralização não é preto e branco, mas existe numa área cinzenta.
Tornar a ponte testemunha o mais descentralizada possível é um tópico de pesquisa para muitas pontes inter-cadeias. Devido a limitações de espaço, isso não será elaborado aqui. Uma plataforma SCP bem projetada na prática também deve ter parceiros reputáveis de múltiplas assinaturas descentralizadas de pontes. Alguns podem perguntar por que SCP não usa uma cadeia com contratos inteligentes como a camada DA? Isso permitiria camadas de liquidação sem confiança com base em contratos. A longo prazo, superando algumas dificuldades técnicas, se a camada DA for colocada no Ethereum ou em outras camadas DA habilitadas para contratos e contratos de verificação correspondentes puderem ser construídos, SCP também pode alcançar a mesma segurança de liquidação que o Rollup, sem a necessidade de múltiplas assinaturas.### Na prática, esta pode não ser a melhor escolha:- O Ethereum não foi especificamente projetado para armazenamento de dados e, em comparação com blockchains dedicados exclusivamente ao armazenamento de dados, é bastante caro. Para o paradigma SCP, um custo de armazenamento suficientemente baixo ou fixo é crucial. Apenas assim pode suportar a taxa de transferência ao nível do Web2.
Portanto, a solução Rollup é apenas mais viável na prática em circunstâncias específicas. Se planeia implementar um sistema mais amplo e aberto, afastando-se do quadro EVM para integrar mais funcionalidades Web2, então a abordagem do Ethereum Rollup não é adequada. O SCP não é apenas um plano de expansão para uma determinada blockchain pública, mas uma arquitetura de plataforma de computação Web3 mais ampla. Portanto, claramente não precisa de seguir a abordagem da camada 2 do Ethereum.






