Autor: Ellaine Xu, Hettie Jiang, June Wang, Walon Lin, Yiliu Lin
1. A Necessidade de Escalabilidade
O futuro da blockchain é uma visão grandiosa: descentralização, segurança e escalabilidade; mas, geralmente, a blockchain só pode realizar dois desses objetivos, e atender a esses três requisitos é conhecido como o problema do triângulo impossível da blockchain. Ao longo dos anos, as pessoas têm explorado maneiras de resolver essa questão, como aumentar a capacidade de processamento e a velocidade das transações da blockchain sem comprometer a descentralização e a segurança, ou seja, resolver o problema da escalabilidade, que é um dos tópicos mais discutidos no atual processo de desenvolvimento da blockchain.
Vamos primeiro definir de forma geral a descentralização, a segurança e a escalabilidade da blockchain:
Descentralização: qualquer pessoa pode se tornar um nó para participar da produção e verificação do sistema blockchain, quanto maior o número de nós, maior o grau de descentralização, garantindo assim que a rede não esteja sob o controle de um pequeno grupo de grandes participantes centralizados.
Segurança: Quanto maior o custo para obter o controle do sistema de blockchain, maior será a segurança, e a cadeia poderá resistir a uma maior proporção de participantes que a atacam.
Escalabilidade: a capacidade da blockchain de processar um grande número de transações.
A primeira grande divisão hard do rede Bitcoin surgiu devido ao problema de escalabilidade. Com o aumento do número de usuários e do volume de transações do Bitcoin, a rede Bitcoin, cujo limite de cada bloco é de 1MB, começou a enfrentar problemas de congestionamento; a partir de 2015, a comunidade Bitcoin começou a ter divergências sobre o problema de escalabilidade, com um lado representado pelo Bitcoin ABC, que apoia a expansão dos blocos, e o outro lado representado pelo Bitcoin Core, que defende que se deve usar a solução Segwit de testemunho segregado para otimizar a estrutura da cadeia principal. Em 1 de agosto de 2017, o Bitcoin ABC desenvolveu independentemente um sistema cliente de 8MB que começou a operar, resultando na primeira grande divisão hard da história do Bitcoin, e assim nasceu a nova criptomoeda BCH.
Da mesma forma, a rede Ethereum também optou por sacrificar uma parte da escalabilidade para garantir a segurança e a descentralização da rede; embora a rede Ethereum não tenha limitado o volume de transações como a rede Bitcoin fazendo restrições ao tamanho dos blocos, ela se transformou em uma limitação do custo do combustível que um único bloco pode acomodar, mas o objetivo é alcançar o Consenso Sem Confiança e garantir uma ampla distribuição de nós. (, seja cancelando ou aumentando o limite, muitos nós menores com largura de banda, armazenamento e capacidade de computação insuficientes serão eliminados. ).
Desde o CryptoKitties em 2017, passando pelo verão DeFi, até o surgimento posterior de aplicações em cadeia como GameFi e NFT, a demanda do mercado por capacidade de processamento tem aumentado continuamente. No entanto, mesmo o Ethereum, que é Turing completo, só consegue processar entre 15 e 45 transações por segundo ( TPS ). O resultado disso é um aumento constante nos custos de transação, tempos de liquidação mais longos, e a maioria dos Dapps enfrenta dificuldades para suportar os custos operacionais. Toda a rede se torna lenta e cara para os usuários, e o problema da escalabilidade da blockchain precisa ser resolvido urgentemente. O plano ideal de escalabilidade é: aumentar a velocidade das transações da rede blockchain ( um tempo de finalização mais curto ) e uma maior capacidade de processamento de transações ( TPS ), sem sacrificar a descentralização e a segurança.
2. Tipos de soluções de escalabilidade
Nós dividimos as soluções de escalabilidade em duas grandes categorias: escalabilidade na cadeia e escalabilidade fora da cadeia, com base no critério "se altera uma camada da rede principal".
2.1 Expansão em cadeia
Conceito central: solução que visa aumentar a capacidade ao alterar um nível do protocolo da rede principal, sendo a principal solução atual a fragmentação.
A escalabilidade na cadeia tem várias soluções, este artigo não irá desenvolver, a seguir estão listadas duas soluções de forma resumida:
A opção um é expandir o espaço do bloco, ou seja, aumentar o número de transações empacotadas em cada bloco, mas isso aumentará os requisitos para dispositivos de nós de alto desempenho, elevará a barreira de entrada para os nós e reduzirá o grau de "descentralização".
A opção dois é a fragmentação, que divide o livro-razão da blockchain em várias partes, não sendo cada nó responsável por todos os registros, mas sim diferentes fragmentos, ou seja, diferentes nós, responsáveis por diferentes registros, permitindo que cálculos em paralelo processem várias transações simultaneamente; isso pode reduzir a pressão computacional nos nós e o limiar de entrada, aumentando a velocidade de processamento das transações e o grau de descentralização; mas isso significa que a capacidade computacional da rede é dispersa, o que reduzirá a "segurança" de toda a rede.
Alterar o código de um protocolo de rede principal pode ter efeitos negativos imprevisíveis, uma vez que qualquer pequena vulnerabilidade de segurança subjacente pode ameaçar gravemente a segurança de toda a rede, podendo a rede ser forçada a realizar um fork ou a interromper a atualização de correção. Por exemplo, o incidente da vulnerabilidade de inflação do Zcash em 2018: o código do Zcash é baseado em modificações do código da versão 0.11.2 do Bitcoin, em 2018 um engenheiro descobriu uma vulnerabilidade crítica no código subjacente, que permitia a emissão ilimitada de tokens, e a equipe gastou 8 meses a corrigir secretamente o problema, tendo divulgado o incidente apenas após a correção.
2.2 fora da cadeia de escalabilidade
Conceito central: solução de escalabilidade que não altera o protocolo da camada principal existente.
A solução de escalabilidade fora da cadeia pode ser dividida em Layer2 e outras soluções:
3. Profundidade de expansão fora da cadeia
Canais de Estado 3.1
3.1.1 Resumo
Os canais de estado estipulam que os usuários só precisam interagir com a rede principal quando o canal é aberto, fechado ou quando há uma disputa a ser resolvida, e que a interação entre os usuários deve ser feita fora da cadeia, a fim de reduzir o tempo e o custo financeiro das transações dos usuários e permitir que o número de transações não tenha limites.
Os canais de estado são protocolos P2P simples, adequados para "aplicações baseadas em turnos", como um jogo de xadrez entre duas pessoas. Cada canal é gerido por um contrato inteligente de múltiplas assinaturas que opera na mainnet, que controla os ativos depositados no canal, verifica as atualizações de estado e arbitra disputas entre os participantes ( com base em provas de fraude ) que possuem assinaturas e carimbos de data/hora. Após os participantes implementarem o contrato na rede blockchain, eles depositam uma quantia de dinheiro e a bloqueiam; após a confirmação com assinatura de ambas as partes, o canal é oficialmente aberto. O canal permite transações fora da cadeia gratuitas e ilimitadas entre os participantes (, desde que o valor líquido das transferências não exceda o total de tokens depositados ). Os participantes alternam o envio de atualizações de estado um para o outro, aguardando a confirmação da assinatura do outro. Uma vez que a confirmação de assinatura é recebida, a atualização de estado é considerada concluída. Normalmente, as atualizações de estado acordadas por ambas as partes não são carregadas na mainnet; apenas em caso de disputa ou encerramento do canal é que se depende da confirmação da mainnet. Quando é necessário fechar o canal, qualquer um dos participantes pode solicitar uma transação na mainnet, e se o pedido de saída receber a aprovação unânime de todas as partes, a execução na cadeia ocorre imediatamente, ou seja, o contrato inteligente distribui os fundos bloqueados restantes com base no saldo de cada participante no estado final do canal; se outros participantes não aprovarem com assinatura, todos devem aguardar o fim do "período de contestação" para poderem receber os fundos restantes.
Em suma, a solução de canais de estado pode reduzir significativamente a carga computacional da rede principal, aumentar a velocidade das transações e diminuir o custo das transações.
3.1.2 Linha do Tempo
2015/02, Joseph Poon e Thaddeus Dryja publicaram o rascunho do white paper da rede Lightning.
2015/11, Jeff Coleman resumiu sistematicamente o conceito de State Channel pela primeira vez, propondo que o Payment Channel do Bitcoin é um subcaso do conceito de State Channel.
2016/01, Joseph Poon e Thaddeus Dryja publicaram oficialmente o white paper "The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments" propondo a solução de escalabilidade da rede Lightning do Bitcoin, Payment Channel (, que é utilizada apenas para processar pagamentos de transferência na rede Bitcoin.
2017/11, a primeira norma de design sobre State Channel baseada no framework Payment Channel, Sprites, foi proposta.
2018/06, Counterfactual propôs um design muito detalhado de Canais de Estado Generalizados, que é o primeiro design completamente relacionado a canais de estado.
2018/10, o artigo Generalised State Channel Networks introduziu os conceitos de State Channel Networks e Virtual Channels.
2019/02, o conceito de canais de estado foi expandido para Canais de N-Partes, Nitro é o primeiro protocolo baseado nessa ideia.
2019/10, Pisa para resolver a questão de todos os participantes precisarem estar continuamente online, expandiu o conceito de Watchtowers.
2020/03, Hydra propôs Canais Isomórficos Rápidos.
![Relatório de pesquisa aprofundada: Análise completa da expansão fora da cadeia])https://img-cdn.gateio.im/webp-social/moments-ead28de03be9fc22dcfe3f679ee36bc5.webp(
3.1.3 Princípios Técnicos
A Figura 1 mostra o fluxo de trabalho tradicional na cadeia: Alice e Bob interagem com contratos inteligentes implantados na rede principal, e os usuários alteram o estado do contrato inteligente enviando transações para a cadeia. A desvantagem é que isso traz os problemas de tempo e custo discutidos acima.
![Relatório de Pesquisa Profunda: Análise Completa da Expansão fora da cadeia])https://img-cdn.gateio.im/webp-social/moments-ad088ac016d75b1ae0b0eda699e74709.webp(
A Figura 2 mostra o fluxo de trabalho geral que a maioria dos protocolos de canais de estado seguem: em um cenário otimista, Alice e Bob precisam executar as mesmas operações de antes, mas desta vez eles usam um canal de estado, em vez de interagir com um contrato na cadeia.
Primeiro passo, Alice e Bob interagem depositando fundos de seu EOA pessoal no endereço do contrato em cadeia ), 1,2(, esses fundos ficam bloqueados no contrato até que o canal seja fechado, momento em que o saldo é retornado ao usuário; após a confirmação da assinatura por ambos, o canal de estado entre os dois é oficialmente aberto.
Segundo passo, Alice e Bob podem teoricamente realizar um número ilimitado de transações fora da cadeia através desse canal ) linha azul pontilhada (, os participantes comunicam-se mutuamente através de mensagens assinadas criptograficamente ) em vez de se comunicarem com a rede blockchain (. Ambos os usuários precisam assinar cada transação para evitar a má utilização da dupla despesa. Através dessas mensagens, eles propõem atualizações de estado de suas contas e aceitam as atualizações de estado propostas pelo outro.
Terceiro passo, se Alice quiser fechar o canal e terminar a transação entre ela e Bob, Alice precisa submeter o estado final de sua conta ) para o contrato 3(. Se Bob assinar e aprovar, o contrato liberará os fundos bloqueados de acordo com o estado final e os retornará ao usuário correspondente ) interagir 4,5(. Se Bob não responder à assinatura, o contrato liberará os fundos bloqueados e os retornará ao usuário correspondente após o término do período de contestação.
![Relatório de Pesquisa em Profundidade: Análise Completa da Expansão fora da cadeia])https://img-cdn.gateio.im/webp-social/moments-815c5eb2bdba725e04eebe67b22d42aa.webp(
A figura 3 mostra o fluxo de trabalho do canal de estado em uma situação pessimista: inicialmente, os dois participantes depositam fundos ) interação 1, 2(, e então começam a trocar atualizações de estado ) linha pontilhada azul (. Suponha que em algum momento, Bob não responda à assinatura da atualização de estado enviada por Alice ) interação 3(, nesse momento, Alice pode iniciar um desafio ) interação 4(, submetendo a última atualização de estado válida ao contrato, que também contém a assinatura anterior de Bob, provando que a última transação foi aprovada por Bob e que o estado final foi confirmado por Bob. Então, o contrato permite que Bob responda dentro de um período de tempo, submetendo o próximo estado ao contrato; se Bob responder, os dois podem continuar a transacionar no canal de estado; se Bob não responder dentro desse período, o contrato fecha automaticamente o canal de estado e devolve os fundos a Alice ) interação 5(.
![Relatório de pesquisa em profundidade: Análise completa da expansão fora da cadeia])https://img-cdn.gateio.im/webp-social/moments-010d7309e0cc697da400d07e6948a16e.webp(
3.1.4 Vantagens e Desvantagens
Vantagens:
Confirmação de transação instantânea
Alta taxa de transferência
Baixas taxas
Alta privacidade
Desvantagens:
É necessário bloquear os fundos
Os usuários precisam se conectar frequentemente.
Aumento da complexidade
3.1.5 Aplicação
Rede Lightning do Bitcoin
Resumo:
A Lightning Network é um canal de pagamentos de baixo valor na rede Bitcoin, cuja evolução tecnológica geral passou por: 2/2 multi-assinatura para construir um canal de pagamento unidirecional, aumentando RSMC.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
9 gostos
Recompensa
9
3
Partilhar
Comentar
0/400
StableBoi
· 13h atrás
Mineração está sempre lenta. Quando vai ficar mais rápido?
Ver originalResponder0
OneBlockAtATime
· 13h atrás
É tão difícil de entender. Alguém pode explicar?
Ver originalResponder0
gaslight_gasfeez
· 14h atrás
Quando é que este problema do Blockchain será realmente resolvido?
Análise completa das soluções de escalonamento fora da cadeia: A evolução dos State Channels até à Rede de iluminação
Análise Profunda da Expansão fora da cadeia
Autor: Ellaine Xu, Hettie Jiang, June Wang, Walon Lin, Yiliu Lin
1. A Necessidade de Escalabilidade
O futuro da blockchain é uma visão grandiosa: descentralização, segurança e escalabilidade; mas, geralmente, a blockchain só pode realizar dois desses objetivos, e atender a esses três requisitos é conhecido como o problema do triângulo impossível da blockchain. Ao longo dos anos, as pessoas têm explorado maneiras de resolver essa questão, como aumentar a capacidade de processamento e a velocidade das transações da blockchain sem comprometer a descentralização e a segurança, ou seja, resolver o problema da escalabilidade, que é um dos tópicos mais discutidos no atual processo de desenvolvimento da blockchain.
Vamos primeiro definir de forma geral a descentralização, a segurança e a escalabilidade da blockchain:
A primeira grande divisão hard do rede Bitcoin surgiu devido ao problema de escalabilidade. Com o aumento do número de usuários e do volume de transações do Bitcoin, a rede Bitcoin, cujo limite de cada bloco é de 1MB, começou a enfrentar problemas de congestionamento; a partir de 2015, a comunidade Bitcoin começou a ter divergências sobre o problema de escalabilidade, com um lado representado pelo Bitcoin ABC, que apoia a expansão dos blocos, e o outro lado representado pelo Bitcoin Core, que defende que se deve usar a solução Segwit de testemunho segregado para otimizar a estrutura da cadeia principal. Em 1 de agosto de 2017, o Bitcoin ABC desenvolveu independentemente um sistema cliente de 8MB que começou a operar, resultando na primeira grande divisão hard da história do Bitcoin, e assim nasceu a nova criptomoeda BCH.
Da mesma forma, a rede Ethereum também optou por sacrificar uma parte da escalabilidade para garantir a segurança e a descentralização da rede; embora a rede Ethereum não tenha limitado o volume de transações como a rede Bitcoin fazendo restrições ao tamanho dos blocos, ela se transformou em uma limitação do custo do combustível que um único bloco pode acomodar, mas o objetivo é alcançar o Consenso Sem Confiança e garantir uma ampla distribuição de nós. (, seja cancelando ou aumentando o limite, muitos nós menores com largura de banda, armazenamento e capacidade de computação insuficientes serão eliminados. ).
Desde o CryptoKitties em 2017, passando pelo verão DeFi, até o surgimento posterior de aplicações em cadeia como GameFi e NFT, a demanda do mercado por capacidade de processamento tem aumentado continuamente. No entanto, mesmo o Ethereum, que é Turing completo, só consegue processar entre 15 e 45 transações por segundo ( TPS ). O resultado disso é um aumento constante nos custos de transação, tempos de liquidação mais longos, e a maioria dos Dapps enfrenta dificuldades para suportar os custos operacionais. Toda a rede se torna lenta e cara para os usuários, e o problema da escalabilidade da blockchain precisa ser resolvido urgentemente. O plano ideal de escalabilidade é: aumentar a velocidade das transações da rede blockchain ( um tempo de finalização mais curto ) e uma maior capacidade de processamento de transações ( TPS ), sem sacrificar a descentralização e a segurança.
2. Tipos de soluções de escalabilidade
Nós dividimos as soluções de escalabilidade em duas grandes categorias: escalabilidade na cadeia e escalabilidade fora da cadeia, com base no critério "se altera uma camada da rede principal".
2.1 Expansão em cadeia
Conceito central: solução que visa aumentar a capacidade ao alterar um nível do protocolo da rede principal, sendo a principal solução atual a fragmentação.
A escalabilidade na cadeia tem várias soluções, este artigo não irá desenvolver, a seguir estão listadas duas soluções de forma resumida:
Alterar o código de um protocolo de rede principal pode ter efeitos negativos imprevisíveis, uma vez que qualquer pequena vulnerabilidade de segurança subjacente pode ameaçar gravemente a segurança de toda a rede, podendo a rede ser forçada a realizar um fork ou a interromper a atualização de correção. Por exemplo, o incidente da vulnerabilidade de inflação do Zcash em 2018: o código do Zcash é baseado em modificações do código da versão 0.11.2 do Bitcoin, em 2018 um engenheiro descobriu uma vulnerabilidade crítica no código subjacente, que permitia a emissão ilimitada de tokens, e a equipe gastou 8 meses a corrigir secretamente o problema, tendo divulgado o incidente apenas após a correção.
2.2 fora da cadeia de escalabilidade
Conceito central: solução de escalabilidade que não altera o protocolo da camada principal existente.
A solução de escalabilidade fora da cadeia pode ser dividida em Layer2 e outras soluções:
3. Profundidade de expansão fora da cadeia
Canais de Estado 3.1
3.1.1 Resumo
Os canais de estado estipulam que os usuários só precisam interagir com a rede principal quando o canal é aberto, fechado ou quando há uma disputa a ser resolvida, e que a interação entre os usuários deve ser feita fora da cadeia, a fim de reduzir o tempo e o custo financeiro das transações dos usuários e permitir que o número de transações não tenha limites.
Os canais de estado são protocolos P2P simples, adequados para "aplicações baseadas em turnos", como um jogo de xadrez entre duas pessoas. Cada canal é gerido por um contrato inteligente de múltiplas assinaturas que opera na mainnet, que controla os ativos depositados no canal, verifica as atualizações de estado e arbitra disputas entre os participantes ( com base em provas de fraude ) que possuem assinaturas e carimbos de data/hora. Após os participantes implementarem o contrato na rede blockchain, eles depositam uma quantia de dinheiro e a bloqueiam; após a confirmação com assinatura de ambas as partes, o canal é oficialmente aberto. O canal permite transações fora da cadeia gratuitas e ilimitadas entre os participantes (, desde que o valor líquido das transferências não exceda o total de tokens depositados ). Os participantes alternam o envio de atualizações de estado um para o outro, aguardando a confirmação da assinatura do outro. Uma vez que a confirmação de assinatura é recebida, a atualização de estado é considerada concluída. Normalmente, as atualizações de estado acordadas por ambas as partes não são carregadas na mainnet; apenas em caso de disputa ou encerramento do canal é que se depende da confirmação da mainnet. Quando é necessário fechar o canal, qualquer um dos participantes pode solicitar uma transação na mainnet, e se o pedido de saída receber a aprovação unânime de todas as partes, a execução na cadeia ocorre imediatamente, ou seja, o contrato inteligente distribui os fundos bloqueados restantes com base no saldo de cada participante no estado final do canal; se outros participantes não aprovarem com assinatura, todos devem aguardar o fim do "período de contestação" para poderem receber os fundos restantes.
Em suma, a solução de canais de estado pode reduzir significativamente a carga computacional da rede principal, aumentar a velocidade das transações e diminuir o custo das transações.
3.1.2 Linha do Tempo
![Relatório de pesquisa aprofundada: Análise completa da expansão fora da cadeia])https://img-cdn.gateio.im/webp-social/moments-ead28de03be9fc22dcfe3f679ee36bc5.webp(
3.1.3 Princípios Técnicos
A Figura 1 mostra o fluxo de trabalho tradicional na cadeia: Alice e Bob interagem com contratos inteligentes implantados na rede principal, e os usuários alteram o estado do contrato inteligente enviando transações para a cadeia. A desvantagem é que isso traz os problemas de tempo e custo discutidos acima.
![Relatório de Pesquisa Profunda: Análise Completa da Expansão fora da cadeia])https://img-cdn.gateio.im/webp-social/moments-ad088ac016d75b1ae0b0eda699e74709.webp(
A Figura 2 mostra o fluxo de trabalho geral que a maioria dos protocolos de canais de estado seguem: em um cenário otimista, Alice e Bob precisam executar as mesmas operações de antes, mas desta vez eles usam um canal de estado, em vez de interagir com um contrato na cadeia.
![Relatório de Pesquisa em Profundidade: Análise Completa da Expansão fora da cadeia])https://img-cdn.gateio.im/webp-social/moments-815c5eb2bdba725e04eebe67b22d42aa.webp(
A figura 3 mostra o fluxo de trabalho do canal de estado em uma situação pessimista: inicialmente, os dois participantes depositam fundos ) interação 1, 2(, e então começam a trocar atualizações de estado ) linha pontilhada azul (. Suponha que em algum momento, Bob não responda à assinatura da atualização de estado enviada por Alice ) interação 3(, nesse momento, Alice pode iniciar um desafio ) interação 4(, submetendo a última atualização de estado válida ao contrato, que também contém a assinatura anterior de Bob, provando que a última transação foi aprovada por Bob e que o estado final foi confirmado por Bob. Então, o contrato permite que Bob responda dentro de um período de tempo, submetendo o próximo estado ao contrato; se Bob responder, os dois podem continuar a transacionar no canal de estado; se Bob não responder dentro desse período, o contrato fecha automaticamente o canal de estado e devolve os fundos a Alice ) interação 5(.
![Relatório de pesquisa em profundidade: Análise completa da expansão fora da cadeia])https://img-cdn.gateio.im/webp-social/moments-010d7309e0cc697da400d07e6948a16e.webp(
3.1.4 Vantagens e Desvantagens
Vantagens:
Desvantagens:
3.1.5 Aplicação
Rede Lightning do Bitcoin
Resumo:
A Lightning Network é um canal de pagamentos de baixo valor na rede Bitcoin, cuja evolução tecnológica geral passou por: 2/2 multi-assinatura para construir um canal de pagamento unidirecional, aumentando RSMC.