Blockchain (substantivo): Uma máquina de coordenação que permite aos participantes de todo o mundo colaborar ao longo de um conjunto de regras comuns acordadas sem a intervenção de terceiros.
Os computadores são projetados para fazer três coisas: armazenar dados, computar e comunicar entre si e com os humanos. As blockchains adicionam uma quarta dimensão: garantias adicionais de que essas três coisas (armazenamento, computação e comunicação) aconteçam de forma acordada. Essas garantias permitem a cooperação entre estranhos sem uma terceira parte confiável para facilitá-la (descentralizada).
Essas garantias adicionais podem ser econômicas (teoria do jogo de confiança e incentivos/desincentivos) ou criptográficas (matemática de confiança), mas a maioria das aplicações utiliza uma combinação dos dois - criptoeconômica. Isso atua como um contraste acentuado com o status quo atual de sistemas amplamente baseados em reputação.
Embora o Web3 seja frequentemente descrito como "ler, escrever, possuir", acreditamos que uma melhor noção para a terceira iteração da internet é "ler, escrever, verificar", dado que o principal benefício das blockchains públicas écomputação garantidae fácil verificação de que essas garantias foram honradas. A propriedade pode ser um subconjunto de computação garantida se construirmos artefatos digitais que possam ser comprados, vendidos e controlados. No entanto, muitos casos de uso de blockchains beneficiam da computação garantida, mas não envolvem diretamente a propriedade. Por exemplo, se a sua saúde em um jogo totalmente na cadeia for 77/100 - você possui essa saúde ou ela é apenas aplicável na cadeia de acordo com regras comumente acordadas? Nós argumentaríamos que é esta última, mas Chris Dixonpode discordar.
Web3 = Ler, Escrever, Verificar
As blockchains oferecem muito para se entusiasmar, mas o modelo descentralizado também adiciona sobrecarga e ineficiência por meio de funções adicionais como mensagens P2P e consenso. Além disso, a maioria das blockchains ainda valida transições de estado corretas por reexecução, o que significa que cada nó na rede tem que reexecutar transações para verificar a correção da transição de estado proposta. Isso é desperdiçador e em forte contraste com o modelo centralizado onde apenas uma entidade executa. Embora um sistema descentralizado sempre contenha alguma sobrecarga e replicação, o objetivo deve ser se aproximar assintoticamente de um benchmark centralizado em termos de eficiência.
Mesmo que a infraestrutura subjacente tenha melhorado significativamente na última década, ainda há muito trabalho a fazer antes que as blockchains possam lidar com a escala ao nível da internet. Vemos compromissos ao longo de dois eixos principais - expressividade e dificuldade - e acreditamos que a modularidade permite uma experimentação mais rápida ao longo da fronteira de compromisso, enquanto o ZK a expande:
A modularidade é o grau em que os componentes de um sistema podem ser separados e recombinados. Através de ciclos de feedback mais rápidos e barreiras de entrada mais baixas com menos capital necessário (tanto econômico quanto humano) - a modularidade permite uma experimentação mais rápida e especialização. A questão da modularidade versus integração não é binária, mas sim um espectro para experimentar e descobrir quais partes fazem sentido para desacoplar e quais não fazem.
As Provas de Conhecimento Zero, ou ZKPs, por outro lado, permitem que uma parte (o provador) prove a outra parte (o verificador) que sabem que algo é verdadeiro, sem revelar qualquer informação adicional além da sua validade. Isso pode aumentar a escalabilidade e eficiência, evitando a reexecução (passando de um modelo de todos executam para verificar, para um modelo em que um executa, todos verificam), bem como a expressividade, permitindo a privacidade (com limitações). As ZKPs também melhoram a dificuldade das garantias, substituindo garantias criptoeconômicas mais fracas por mais fortes, o que é representado empurrando a fronteira de compensação para fora (referenciando o gráfico acima).
Acreditamos que tanto a modularidade como a "ZKficação de tudo" são tendências que continuarão a acelerar. Embora ambas forneçam lentes interessantes através das quais explorar o espaço individualmente - estamos particularmente interessados na intersecção das duas. As duas questões-chave em que estamos interessados são:
No entanto, antes de podermos abordar essas questões, precisamos de uma visão atualizada de como a pilha modular se parece em 2024.
A imagem frequentemente usada da pilha modular com quatro componentes (execução, publicação de dados, consenso, liquidação) é útil como um modelo mental simples, mas não consideramos mais uma representação adequada, dada a evolução do espaço modular. A desconstrução adicional leva a novos componentes que anteriormente eram considerados parte de um todo maior, criando também novas dependências e a necessidade de interoperabilidade segura entre os diferentes componentes (mais sobre isso mais tarde). Dada a velocidade com que o espaço está avançando, pode ser difícil manter-se atualizado em todas as inovações nos diferentes níveis da pilha.
Tentativas anteriores de explorar a pilha web3 incluem as feitas por Kyle Samani(Multicoin) - originalmente publicado em2018 e atualizado em 2019. Abrange tudo, desde o acesso à internet descentralizado até ao último quilómetro (como Héliopara gestão de chaves de utilizador final. Embora os princípios por trás disso possam ser reciclados, algumas peças, como a prova e verificação, estão completamente em falta.
Com isso em mente, tentamos criar uma representação atualizada de como a pilha modular se parece em 2024, expandindo a pilha modular existente de quatro partes. Ela está dividida por componente em vez de funcionalidade, o que significa que a rede P2P, por exemplo, está incluída no consenso em vez de ser separada como um componente distinto - principalmente porque é difícil construir um protocolo em torno dela.
Agora que temos uma visão atualizada da pilha modular, podemos começar a olhar para a questão real, ou seja, quais partes da pilha o ZK já penetrou e quais problemas abertos poderiam ser resolvidos introduzindo o ZK (evitando re-execução ou recursos de privacidade). Abaixo está um resumo de nossas descobertas, antes de nos aprofundarmos em cada componente separadamente.
Os utilizadores atuais das blockchains precisam de navegar por várias cadeias, carteiras e interfaces, o que é complicado e atua como um obstáculo para uma adoção mais ampla. A abstração da operação do utilizador é um termo genérico para qualquer tentativa de abstrair esta complexidade e permitir que os utilizadores interajam apenas com uma interface (por exemplo, uma aplicação específica ou carteira), com toda a complexidade a acontecer nos bastidores. Alguns exemplos de abstrações ao nível da infraestrutura incluem:
As transações precisam de ser ordenadas antes de serem adicionadas a um bloco, o que pode ser feito de várias maneiras: ordenando por rentabilidade para o proponente (transações mais lucrativas primeiro), na ordem em que foram submetidas (primeiro a entrar, primeiro a sair), dando prioridade às transações das mem pools privadas, etc.
Outra questão é quem fica responsável por ordenar as transações. Num mundo modular, várias partes diferentes podem fazê-lo, incluindo o sequenciador de rollup (centralizado ou descentralizado), a sequência L1 (baseada em rollups) e uma rede de sequenciamento partilhada (rede descentralizada de sequenciadores usada por vários rollups). Todos estes têm diferentes pressupostos de confiança e capacidades de escalaNa prática, a ordenação real das transações e o agrupamento delas em um bloco também podem ser feitos fora do protocolo por atores especializados (construtores de blocos).
A camada de execução contém a lógica de como o estado é atualizado e é onde os contratos inteligentes são executados. Além de retornar uma saída da computação, os zkVMs também permitem provar que as transições de estado foram feitas corretamente. Isso permite que outros participantes da rede verifiquem a execução correta apenas verificando a prova, em vez de terem que reexecutar transações.
Para além da verificação mais rápida e eficiente, outro benefício da execução comprovável é permitir uma computação mais complexa, uma vez que não se depara com os problemas típicos de gás e recursos limitados on-chain com a computação off-chain. Isto abre a porta a aplicações inteiramente novas que são computacionalmente mais intensivas para serem executadas em blockchains e aproveitam a computação garantida.
A consulta de dados, ou a leitura de dados a partir da blockchain, é uma parte essencial da maioria das aplicações. Embora grande parte da discussão e esforços ao longo dos últimos anos tenham se concentrado na escalabilidade das escritas (execução) - a escalabilidade das leituras é ainda mais importante devido ao desequilíbrio entre as duas (particularmente num ambiente descentralizado). A relação entre leitura/escrita difere entre blockchains, mas um ponto de dados é Estimativa da Sigque >96% de todas as chamadas para nós em Solana eram chamadas de leitura (com base em 2 anos de dados empíricos) - uma taxa de leitura/escrita de 24:1.
A escalabilidade de leituras inclui tanto obter mais desempenho (mais leituras/segundo) com clientes validadores dedicados (como Sig na Solana) quanto permitir consultas mais complexas (combinando leituras com computação), por exemplo com a ajuda de co-processadores.
Outra perspetiva consiste em descentralizar os métodos de consulta de dados. Hoje, a maioria das solicitações de consulta de dados em blockchains é facilitada por terceiros confiáveis (baseados na reputação), como nós RPC (Infura) e indexadores (Dune. Exemplos de opções mais descentralizadas incluem O Gráficoe operadores à prova de armazenamento (que também são verificáveis). Também existem várias tentativas de criar uma rede RPC descentralizada, como Infura DINouRede Lava(além do RPC descentralizado, a Lava visa oferecer mais tarde serviços adicionais de acesso a dados).
Com mais e mais aplicações a incorporar ZKPs, a prova e a verificação estão a tornar-se rapidamente uma parte essencial da pilha modular. No entanto, hoje em dia, a maioria da infraestrutura de prova ainda é permitida e centralizada, com muitas aplicações a depender de um único provador.
Embora a solução centralizada seja menos complexa, descentralizar a arquitetura de prova e dividi-la num componente separado na pilha modular traz vários benefícios. Um benefício chave surge na forma de garantias de vitalidade que são cruciais para aplicações que dependem da geração frequente de provas. Os utilizadores também beneficiam de uma maior resistência à censura e de taxas mais baixas impulsionadas pela concorrência e pela partilha da carga de trabalho entre vários provadores.
Acreditamos que as redes de provadores de propósito geral (muitos aplicativos, muitos provadores) são superiores às redes de provadores de aplicativos únicos (um aplicativo, muitos provadores) devido à maior utilização do hardware existente e menor complexidade para os provadores. Uma maior utilização também beneficia os utilizadores em termos de taxas mais baixas, uma vez que os provadores não precisam de ser compensados pela redundância através de taxas mais elevadas (ainda é necessário cobrir custos fixos).
Figment Capitalforneceu uma boa visão geral do estado atual da cadeia de suprimentos de prova, que consiste tanto na geração de prova quanto na agregação de prova (que por si só é geração de prova, mas apenas pegando dois argumentos como entrada em vez de rastreamento de execução).
Fonte: Capital de Figment
Origem: Figment Capital
A publicação de dados (DP) garante que os dados estejam disponíveis e facilmente recuperáveis por um curto período (1-2 semanas). Isso é crucial tanto para a segurança (os rollups otimistas requerem dados de entrada para verificar a execução correta por reexecução durante o período de desafio, 1-2 semanas) quanto para a vivacidade (mesmo que um sistema utilize provas de validade, os dados de transação subjacentes podem ser necessários para comprovar a propriedade do ativo para escotilhas de fuga, transações forçadas ou para verificar se as entradas correspondem às saídas). Os usuários (como pontes zk e rollups) enfrentam um pagamento único, que cobre o custo de armazenar transações e estado por um curto período até que sejam podados. As redes de publicação de dados não são projetadas para armazenamento de dados a longo prazo (em vez disso, consulte a próxima seção para possíveis soluções).
Celestiafoi a primeira camada DP alternativa a lançar a sua mainnet (31 de outubro), mas em breve haverá muitas alternativas para escolher como Aproveite, EigenDA, e Perto de DAsão todos esperados para serem lançados durante 2024. Além disso, EIP 4844 da Ethereumatualização da publicação de dados em escala na Ethereum (além de criar um mercado separado de taxas para armazenamento de blob) e preparar o terreno para o dank-sharding completo. DP também está se expandindo para outros ecossistemas - um exemplo sendo @nubit_org/riema-secures-angel-investment-for-launching-the-first-bitcoin-native-data-availability-layer-49ccf0487380">Nubit que visa construir DP nativo sobre Bitcoin.
Muitas soluções de DP também oferecem serviços para além da simples publicação de dados, incluindo segurança partilhada para rollups soberanos (como CelestiaeDisponível) ou uma interoperabilidade mais suave entre rollups (como o Avail'sNexus. Existem também projetos (DomiconeZero Gravity) que oferecem tanto a publicação de dados como o armazenamento de estado a longo prazo, o que é uma proposta convincente. Este é também um exemplo de reagrupamento de dois componentes na pilha modular, algo que provavelmente veremos mais no futuro (experimentação tanto com a desagregação adicional como com o reagrupamento).
Armazenar dados históricos é importante principalmente para fins de sincronização e atendimento a pedidos de dados. No entanto, não é viável para cada nó completo armazenar todos os dados e a maioria dos nós completos elimina dados antigos para manter os requisitos de hardware razoáveis. Em vez disso, dependemos de partes especializadas (nós de arquivo e indexadores) para armazenar todos os dados históricos e disponibilizá-los a pedido dos usuários.
Também existem fornecedores de armazenamento descentralizado, como FilecoinouArweave, que oferecem soluções de armazenamento descentralizado a longo prazo a um preço razoável. Embora a maioria das blockchains não tenha um processo formal de armazenamento de arquivos (simplesmente confiam em alguém para armazená-los), os protocolos de armazenamento descentralizado são bons candidatos para armazenar informações históricas e adicionar alguma redundância (pelo menos X nós armazenam os dados) através dos incentivos incorporados na rede de armazenamento.
Dado que as blockchains são sistemas distribuídos P2P, não há uma terceira parte confiável que determine a verdade global. Em vez disso, os nós da rede concordam sobre qual é a verdade atual (qual bloco é o correto) por meio de um mecanismo chamado consenso. Os métodos de consenso baseados em PoS podem ser categorizados como baseados em BFT (onde o quórum tolerante a falhas bizantinas de validadores decide o estado final) ou baseados em cadeia (onde o estado final é decidido retrospectivamente pela regra de escolha do garfo). Embora a maioria das implementações existentes de consenso PoS sejam baseadas em BFT, Cardanoé um exemplo de implementação da cadeia mais longa. Há também um interesse crescente em mecanismos de consenso baseados em DAG, como Narwhal-Bullshark que é implementado em algumas variações em Aleo, Aptos e Sui.
O consenso é uma parte crucial de muitos componentes diferentes da pilha modular, incluindo sequenciador compartilhado, provas descentralizadas e redes de publicação de dados baseadas em blockchain (não baseadas em comitê, como EigenDA).
A liquidação é semelhante ao tribunal de justiça mais alto - a fonte final da verdade onde a correção das transições de estado é verificada e as disputas são resolvidas. Uma transação é considerada final no momento em que se torna irreversível (ou no caso de finalidade probabilística - no momento em que seria suficientemente difícil revertê-la). O tempo de finalização depende da camada de liquidação subjacente usada, que por sua vez depende da regra de finalidade específica usada e do tempo de bloco.
A finalidade lenta é particularmente um problema na comunicação entre rollups, onde os rollups precisam esperar pela confirmação do Ethereum antes de poderem aprovar uma transação (7 dias para rollups otimistas, 12 minutos e tempo de prova para rollups de validade). Isso resulta numa experiência de utilizador fraca. Existem vários esforços para resolver este problema usando pré-confirmações com um certo nível de segurança. Exemplos incluem soluções específicas do ecossistemaPolygon AggLayerouzkSync HyperBridge) e soluções de uso geral como Camada de Finalidade Rápida da Nearque visa conectar vários ecossistemas de rollup diferentes, aproveitando a segurança econômica da EigenLayer. Existe também a opção depontes de rollup nativas que tiram partido da EigenLayerpara confirmações suaves para evitar esperar pela plena finalidade.
A segurança está relacionada com a solidez das garantias e é uma parte crucial da proposta de valor das blockchains. No entanto, criar segurança cripto-económica é difícil - aumentando as barreiras à entrada e atuando como fricção para a inovação nas aplicações que mais precisam dela (vários middleware e L1s alternativos).
A ideia de segurança compartilhada é usar a segurança econômica existente das redes PoS e sujeitá-la a riscos adicionais de penalização (condições de punição), em vez de cada componente tentar inicializar o seu próprio. Já houve algumas tentativas anteriores de fazer o mesmo em redes PoWmineração combinada.)), mas os incentivos desalinhados tornaram mais fácil para os mineiros colaborarem e explorarem um protocolo (mais difícil punir comportamentos inadequados, uma vez que o trabalho ocorre no mundo físico, ou seja, mineração usando poder computacional). A segurança do PoS é mais flexível para ser usada por outros protocolos, uma vez que possui incentivos positivos (rendimento de participação) e negativos (penalização).
Protocolos construídos em torno da premissa de segurança partilhada incluem:
A interoperabilidade segura e eficiente continua a ser um grande problema num mundo multi-cadeias, exemplificado pelo $2.8bn perdidos em hacks de pontesNos sistemas modulares, a interoperabilidade torna-se ainda mais importante - Não só está a comunicar entre outras cadeias, mas as blockchains modulares também requerem que diferentes componentes comuniquem entre si (como a camada DA e de liquidação). Por conseguinte, já não é viável simplesmente executar um nó completo ou verificar uma única prova de consenso como nas blockchains integradas. Isto adiciona mais peças em movimento à equação.
A interoperabilidade inclui tanto a ponte de tokens como a passagem de mensagens mais geral entre blockchains. Existem várias opções diferentes disponíveis que fazem todos diferentes compromissos em termos de segurança, latência e custo. Otimizar para os três é muito difícil, o que normalmente requer sacrificar pelo menos um. Além disso, diferentes padrões entre as cadeias tornam as implementações em novas cadeias mais difíceis.
Embora ainda falte uma definição clara dos diferentes tipos de clientes leves (ou nós), esta publicação por Dino(co-fundador da Fluent & Modular Media) dá uma boa introdução. A maioria dos clientes leves hoje em dia apenas verifica o consenso, mas idealmente teríamos clientes leves que pudessem verificar a execução e o DA também para reduzir as suposições de confiança. Isso permitiria chegar perto da segurança de um nó completo, sem os altos requisitos de hardware.
Supondo que possamos chegar a um estado em que a geração de ZKPs se torne muito rápida (quase à velocidade da luz) e incrivelmente barata (quase gratuita), como será o resultado final? Em outras palavras, quando é que ZK comeu o conjunto modular?
De um modo geral, acreditamos que duas coisas seriam verdadeiras neste estado do mundo:
Uma terceira condição seria em torno da privacidade (ou gestão do fluxo de informação), mas é mais complicado. ZKPs podem ser usados para algumas aplicações de privacidade com comprovação do lado do cliente, o que plataformas como Aleo, Aztec ou Polygon Miden estão construindo, mas alcançar privacidade em grande escala para todos os casos de uso potenciais depende do progresso de MPC e FHE também - um tópico potencial para um futuro post no blog.
E se estivermos errados e o futuro não for nem modular nem ZK'fied? Alguns riscos potenciais para a nossa tese incluem:
Tanto os utilizadores como os programadores sofrem com o número cada vez maior de cadeias. Os utilizadores precisam de gerir fundos em várias cadeias (e potencialmente várias carteiras). Por outro lado, os programadores de aplicações têm menos estabilidade e previsibilidade, dado o quanto o espaço ainda está a evoluir, tornando mais difícil decidir em que cadeia construir. Também precisam de pensar na fragmentação do estado e da liquidez. Isto é particularmente verdade agora, enquanto ainda estamos a experimentar ao longo da fronteira sobre quais componentes fazem sentido desacoplar e quais serão recoplados. Acreditamos que a abstração da operação do utilizador, bem como soluções de interoperabilidade seguras e eficientes, são partes cruciais para resolver este problema.
Não há como contornar o facto de que a geração de provas demora demasiado tempo e o custo tanto da prova como da verificação ainda é demasiado elevado nos dias de hoje. Soluções concorrentes como ambientes de execução confiáveis/TEEs (privacidade) ou soluções de segurança otimistas/cruptoeconómicas (custo) ainda fazem mais sentido para muitas aplicações hoje em dia.
Está a ser feito muito trabalho no que diz respeito à otimização de software e à aceleração de hardware para ZKPs. A agregação de prova ajudará a reduzir ainda mais os custos de verificação, distribuindo o custo por várias partes diferentes (custo inferior/utilizador). Também existe a possibilidade de adaptar a camada base para ser mais otimizada para a verificação de ZKPs. Um desafio relativo à aceleração de hardware para ZKPs é o rápido desenvolvimento de sistemas de prova. Isto torna difícil a criação de hardware especializado (ASICs), uma vez que correm o risco de ficar rapidamente obsoletos se/ quando os padrões dos sistemas de prova subjacentes evoluem.
Ingonyamatentou criar algum referencial para o desempenho do provador através de uma métrica comparável chamada ZK score. Baseia-se no custo da execução da computação (OPEX) e acompanha MMOPS/WATT, onde MMOPS significa operações de multiplicação modular por segundo. Para mais leitura sobre o tema, recomendamos blogs de@Cysic/BJQcpVbXn?ref=blog.succinct.xyz">Cysic and @ingonyama/revisitar-paradigmas-aceleracao-de-hardware-para-provas-de-zero-conhecimento-5dffacdc24b4">Ingonyama, bem como esta palestra por Wei Dai.
ZKPs só podem ser usados para alcançar privacidade para estado pessoal, não estado compartilhado onde múltiplas partes precisam calcular em dados criptografados (como um Uniswap privado). FHE e MPC também são necessários para privacidade completa, mas estes precisam melhorar muitas ordens de magnitude em termos de custo e desempenho antes de serem opções viáveis para uso em maior escala. Dito isto, ZKPs ainda são úteis para certos casos de uso que não requerem um estado compartilhado privado, como soluções de identidade ou pagamentos. Nem todos os problemas precisam ser resolvidos com a mesma ferramenta.
Então, onde isso nos deixa? Embora estejamos progredindo a cada dia, ainda há muito trabalho a fazer. As questões mais prementes a resolver são como o valor e a informação podem fluir com segurança entre diferentes componentes modulares sem sacrificar a velocidade ou o custo, além de abstrair tudo isso do consumidor final, para que ele não precise se preocupar em fazer a ponte entre diferentes redes, trocar de carteiras, etc.
Embora estejamos atualmente ainda muito na fase de experimentação, as coisas devem estabilizar ao longo do tempo, à medida que descobrimos onde no espectro estão os trade-offs ótimos para cada caso de uso. Isso, por sua vez, dará espaço para que padrões (informais ou formais) surjam e proporcionem mais estabilidade aos construtores em cima dessas cadeias.
Hoje em dia, ainda existem muitos casos de uso que recorrem à segurança cripto-econômica por defeito devido ao custo e complexidade da geração de ZKPs e alguns que requerem uma combinação dos dois. No entanto, essa quota deve diminuir ao longo do tempo à medida que projetamos sistemas de prova mais eficientes e hardware especializado para reduzir o custo e a latência de prova e verificação. Com cada redução exponencial de custo e velocidade, novos casos de uso são desbloqueados.
Embora este artigo se tenha concentrado especificamente nas ZKPs, estamos também cada vez mais interessados em como as soluções de criptografia moderna (ZKPs, MPC, FHE e TEE) acabarão por interagir - algo que já estamos a ver.
Obrigado por ler!
Blockchain (substantivo): Uma máquina de coordenação que permite aos participantes de todo o mundo colaborar ao longo de um conjunto de regras comuns acordadas sem a intervenção de terceiros.
Os computadores são projetados para fazer três coisas: armazenar dados, computar e comunicar entre si e com os humanos. As blockchains adicionam uma quarta dimensão: garantias adicionais de que essas três coisas (armazenamento, computação e comunicação) aconteçam de forma acordada. Essas garantias permitem a cooperação entre estranhos sem uma terceira parte confiável para facilitá-la (descentralizada).
Essas garantias adicionais podem ser econômicas (teoria do jogo de confiança e incentivos/desincentivos) ou criptográficas (matemática de confiança), mas a maioria das aplicações utiliza uma combinação dos dois - criptoeconômica. Isso atua como um contraste acentuado com o status quo atual de sistemas amplamente baseados em reputação.
Embora o Web3 seja frequentemente descrito como "ler, escrever, possuir", acreditamos que uma melhor noção para a terceira iteração da internet é "ler, escrever, verificar", dado que o principal benefício das blockchains públicas écomputação garantidae fácil verificação de que essas garantias foram honradas. A propriedade pode ser um subconjunto de computação garantida se construirmos artefatos digitais que possam ser comprados, vendidos e controlados. No entanto, muitos casos de uso de blockchains beneficiam da computação garantida, mas não envolvem diretamente a propriedade. Por exemplo, se a sua saúde em um jogo totalmente na cadeia for 77/100 - você possui essa saúde ou ela é apenas aplicável na cadeia de acordo com regras comumente acordadas? Nós argumentaríamos que é esta última, mas Chris Dixonpode discordar.
Web3 = Ler, Escrever, Verificar
As blockchains oferecem muito para se entusiasmar, mas o modelo descentralizado também adiciona sobrecarga e ineficiência por meio de funções adicionais como mensagens P2P e consenso. Além disso, a maioria das blockchains ainda valida transições de estado corretas por reexecução, o que significa que cada nó na rede tem que reexecutar transações para verificar a correção da transição de estado proposta. Isso é desperdiçador e em forte contraste com o modelo centralizado onde apenas uma entidade executa. Embora um sistema descentralizado sempre contenha alguma sobrecarga e replicação, o objetivo deve ser se aproximar assintoticamente de um benchmark centralizado em termos de eficiência.
Mesmo que a infraestrutura subjacente tenha melhorado significativamente na última década, ainda há muito trabalho a fazer antes que as blockchains possam lidar com a escala ao nível da internet. Vemos compromissos ao longo de dois eixos principais - expressividade e dificuldade - e acreditamos que a modularidade permite uma experimentação mais rápida ao longo da fronteira de compromisso, enquanto o ZK a expande:
A modularidade é o grau em que os componentes de um sistema podem ser separados e recombinados. Através de ciclos de feedback mais rápidos e barreiras de entrada mais baixas com menos capital necessário (tanto econômico quanto humano) - a modularidade permite uma experimentação mais rápida e especialização. A questão da modularidade versus integração não é binária, mas sim um espectro para experimentar e descobrir quais partes fazem sentido para desacoplar e quais não fazem.
As Provas de Conhecimento Zero, ou ZKPs, por outro lado, permitem que uma parte (o provador) prove a outra parte (o verificador) que sabem que algo é verdadeiro, sem revelar qualquer informação adicional além da sua validade. Isso pode aumentar a escalabilidade e eficiência, evitando a reexecução (passando de um modelo de todos executam para verificar, para um modelo em que um executa, todos verificam), bem como a expressividade, permitindo a privacidade (com limitações). As ZKPs também melhoram a dificuldade das garantias, substituindo garantias criptoeconômicas mais fracas por mais fortes, o que é representado empurrando a fronteira de compensação para fora (referenciando o gráfico acima).
Acreditamos que tanto a modularidade como a "ZKficação de tudo" são tendências que continuarão a acelerar. Embora ambas forneçam lentes interessantes através das quais explorar o espaço individualmente - estamos particularmente interessados na intersecção das duas. As duas questões-chave em que estamos interessados são:
No entanto, antes de podermos abordar essas questões, precisamos de uma visão atualizada de como a pilha modular se parece em 2024.
A imagem frequentemente usada da pilha modular com quatro componentes (execução, publicação de dados, consenso, liquidação) é útil como um modelo mental simples, mas não consideramos mais uma representação adequada, dada a evolução do espaço modular. A desconstrução adicional leva a novos componentes que anteriormente eram considerados parte de um todo maior, criando também novas dependências e a necessidade de interoperabilidade segura entre os diferentes componentes (mais sobre isso mais tarde). Dada a velocidade com que o espaço está avançando, pode ser difícil manter-se atualizado em todas as inovações nos diferentes níveis da pilha.
Tentativas anteriores de explorar a pilha web3 incluem as feitas por Kyle Samani(Multicoin) - originalmente publicado em2018 e atualizado em 2019. Abrange tudo, desde o acesso à internet descentralizado até ao último quilómetro (como Héliopara gestão de chaves de utilizador final. Embora os princípios por trás disso possam ser reciclados, algumas peças, como a prova e verificação, estão completamente em falta.
Com isso em mente, tentamos criar uma representação atualizada de como a pilha modular se parece em 2024, expandindo a pilha modular existente de quatro partes. Ela está dividida por componente em vez de funcionalidade, o que significa que a rede P2P, por exemplo, está incluída no consenso em vez de ser separada como um componente distinto - principalmente porque é difícil construir um protocolo em torno dela.
Agora que temos uma visão atualizada da pilha modular, podemos começar a olhar para a questão real, ou seja, quais partes da pilha o ZK já penetrou e quais problemas abertos poderiam ser resolvidos introduzindo o ZK (evitando re-execução ou recursos de privacidade). Abaixo está um resumo de nossas descobertas, antes de nos aprofundarmos em cada componente separadamente.
Os utilizadores atuais das blockchains precisam de navegar por várias cadeias, carteiras e interfaces, o que é complicado e atua como um obstáculo para uma adoção mais ampla. A abstração da operação do utilizador é um termo genérico para qualquer tentativa de abstrair esta complexidade e permitir que os utilizadores interajam apenas com uma interface (por exemplo, uma aplicação específica ou carteira), com toda a complexidade a acontecer nos bastidores. Alguns exemplos de abstrações ao nível da infraestrutura incluem:
As transações precisam de ser ordenadas antes de serem adicionadas a um bloco, o que pode ser feito de várias maneiras: ordenando por rentabilidade para o proponente (transações mais lucrativas primeiro), na ordem em que foram submetidas (primeiro a entrar, primeiro a sair), dando prioridade às transações das mem pools privadas, etc.
Outra questão é quem fica responsável por ordenar as transações. Num mundo modular, várias partes diferentes podem fazê-lo, incluindo o sequenciador de rollup (centralizado ou descentralizado), a sequência L1 (baseada em rollups) e uma rede de sequenciamento partilhada (rede descentralizada de sequenciadores usada por vários rollups). Todos estes têm diferentes pressupostos de confiança e capacidades de escalaNa prática, a ordenação real das transações e o agrupamento delas em um bloco também podem ser feitos fora do protocolo por atores especializados (construtores de blocos).
A camada de execução contém a lógica de como o estado é atualizado e é onde os contratos inteligentes são executados. Além de retornar uma saída da computação, os zkVMs também permitem provar que as transições de estado foram feitas corretamente. Isso permite que outros participantes da rede verifiquem a execução correta apenas verificando a prova, em vez de terem que reexecutar transações.
Para além da verificação mais rápida e eficiente, outro benefício da execução comprovável é permitir uma computação mais complexa, uma vez que não se depara com os problemas típicos de gás e recursos limitados on-chain com a computação off-chain. Isto abre a porta a aplicações inteiramente novas que são computacionalmente mais intensivas para serem executadas em blockchains e aproveitam a computação garantida.
A consulta de dados, ou a leitura de dados a partir da blockchain, é uma parte essencial da maioria das aplicações. Embora grande parte da discussão e esforços ao longo dos últimos anos tenham se concentrado na escalabilidade das escritas (execução) - a escalabilidade das leituras é ainda mais importante devido ao desequilíbrio entre as duas (particularmente num ambiente descentralizado). A relação entre leitura/escrita difere entre blockchains, mas um ponto de dados é Estimativa da Sigque >96% de todas as chamadas para nós em Solana eram chamadas de leitura (com base em 2 anos de dados empíricos) - uma taxa de leitura/escrita de 24:1.
A escalabilidade de leituras inclui tanto obter mais desempenho (mais leituras/segundo) com clientes validadores dedicados (como Sig na Solana) quanto permitir consultas mais complexas (combinando leituras com computação), por exemplo com a ajuda de co-processadores.
Outra perspetiva consiste em descentralizar os métodos de consulta de dados. Hoje, a maioria das solicitações de consulta de dados em blockchains é facilitada por terceiros confiáveis (baseados na reputação), como nós RPC (Infura) e indexadores (Dune. Exemplos de opções mais descentralizadas incluem O Gráficoe operadores à prova de armazenamento (que também são verificáveis). Também existem várias tentativas de criar uma rede RPC descentralizada, como Infura DINouRede Lava(além do RPC descentralizado, a Lava visa oferecer mais tarde serviços adicionais de acesso a dados).
Com mais e mais aplicações a incorporar ZKPs, a prova e a verificação estão a tornar-se rapidamente uma parte essencial da pilha modular. No entanto, hoje em dia, a maioria da infraestrutura de prova ainda é permitida e centralizada, com muitas aplicações a depender de um único provador.
Embora a solução centralizada seja menos complexa, descentralizar a arquitetura de prova e dividi-la num componente separado na pilha modular traz vários benefícios. Um benefício chave surge na forma de garantias de vitalidade que são cruciais para aplicações que dependem da geração frequente de provas. Os utilizadores também beneficiam de uma maior resistência à censura e de taxas mais baixas impulsionadas pela concorrência e pela partilha da carga de trabalho entre vários provadores.
Acreditamos que as redes de provadores de propósito geral (muitos aplicativos, muitos provadores) são superiores às redes de provadores de aplicativos únicos (um aplicativo, muitos provadores) devido à maior utilização do hardware existente e menor complexidade para os provadores. Uma maior utilização também beneficia os utilizadores em termos de taxas mais baixas, uma vez que os provadores não precisam de ser compensados pela redundância através de taxas mais elevadas (ainda é necessário cobrir custos fixos).
Figment Capitalforneceu uma boa visão geral do estado atual da cadeia de suprimentos de prova, que consiste tanto na geração de prova quanto na agregação de prova (que por si só é geração de prova, mas apenas pegando dois argumentos como entrada em vez de rastreamento de execução).
Fonte: Capital de Figment
Origem: Figment Capital
A publicação de dados (DP) garante que os dados estejam disponíveis e facilmente recuperáveis por um curto período (1-2 semanas). Isso é crucial tanto para a segurança (os rollups otimistas requerem dados de entrada para verificar a execução correta por reexecução durante o período de desafio, 1-2 semanas) quanto para a vivacidade (mesmo que um sistema utilize provas de validade, os dados de transação subjacentes podem ser necessários para comprovar a propriedade do ativo para escotilhas de fuga, transações forçadas ou para verificar se as entradas correspondem às saídas). Os usuários (como pontes zk e rollups) enfrentam um pagamento único, que cobre o custo de armazenar transações e estado por um curto período até que sejam podados. As redes de publicação de dados não são projetadas para armazenamento de dados a longo prazo (em vez disso, consulte a próxima seção para possíveis soluções).
Celestiafoi a primeira camada DP alternativa a lançar a sua mainnet (31 de outubro), mas em breve haverá muitas alternativas para escolher como Aproveite, EigenDA, e Perto de DAsão todos esperados para serem lançados durante 2024. Além disso, EIP 4844 da Ethereumatualização da publicação de dados em escala na Ethereum (além de criar um mercado separado de taxas para armazenamento de blob) e preparar o terreno para o dank-sharding completo. DP também está se expandindo para outros ecossistemas - um exemplo sendo @nubit_org/riema-secures-angel-investment-for-launching-the-first-bitcoin-native-data-availability-layer-49ccf0487380">Nubit que visa construir DP nativo sobre Bitcoin.
Muitas soluções de DP também oferecem serviços para além da simples publicação de dados, incluindo segurança partilhada para rollups soberanos (como CelestiaeDisponível) ou uma interoperabilidade mais suave entre rollups (como o Avail'sNexus. Existem também projetos (DomiconeZero Gravity) que oferecem tanto a publicação de dados como o armazenamento de estado a longo prazo, o que é uma proposta convincente. Este é também um exemplo de reagrupamento de dois componentes na pilha modular, algo que provavelmente veremos mais no futuro (experimentação tanto com a desagregação adicional como com o reagrupamento).
Armazenar dados históricos é importante principalmente para fins de sincronização e atendimento a pedidos de dados. No entanto, não é viável para cada nó completo armazenar todos os dados e a maioria dos nós completos elimina dados antigos para manter os requisitos de hardware razoáveis. Em vez disso, dependemos de partes especializadas (nós de arquivo e indexadores) para armazenar todos os dados históricos e disponibilizá-los a pedido dos usuários.
Também existem fornecedores de armazenamento descentralizado, como FilecoinouArweave, que oferecem soluções de armazenamento descentralizado a longo prazo a um preço razoável. Embora a maioria das blockchains não tenha um processo formal de armazenamento de arquivos (simplesmente confiam em alguém para armazená-los), os protocolos de armazenamento descentralizado são bons candidatos para armazenar informações históricas e adicionar alguma redundância (pelo menos X nós armazenam os dados) através dos incentivos incorporados na rede de armazenamento.
Dado que as blockchains são sistemas distribuídos P2P, não há uma terceira parte confiável que determine a verdade global. Em vez disso, os nós da rede concordam sobre qual é a verdade atual (qual bloco é o correto) por meio de um mecanismo chamado consenso. Os métodos de consenso baseados em PoS podem ser categorizados como baseados em BFT (onde o quórum tolerante a falhas bizantinas de validadores decide o estado final) ou baseados em cadeia (onde o estado final é decidido retrospectivamente pela regra de escolha do garfo). Embora a maioria das implementações existentes de consenso PoS sejam baseadas em BFT, Cardanoé um exemplo de implementação da cadeia mais longa. Há também um interesse crescente em mecanismos de consenso baseados em DAG, como Narwhal-Bullshark que é implementado em algumas variações em Aleo, Aptos e Sui.
O consenso é uma parte crucial de muitos componentes diferentes da pilha modular, incluindo sequenciador compartilhado, provas descentralizadas e redes de publicação de dados baseadas em blockchain (não baseadas em comitê, como EigenDA).
A liquidação é semelhante ao tribunal de justiça mais alto - a fonte final da verdade onde a correção das transições de estado é verificada e as disputas são resolvidas. Uma transação é considerada final no momento em que se torna irreversível (ou no caso de finalidade probabilística - no momento em que seria suficientemente difícil revertê-la). O tempo de finalização depende da camada de liquidação subjacente usada, que por sua vez depende da regra de finalidade específica usada e do tempo de bloco.
A finalidade lenta é particularmente um problema na comunicação entre rollups, onde os rollups precisam esperar pela confirmação do Ethereum antes de poderem aprovar uma transação (7 dias para rollups otimistas, 12 minutos e tempo de prova para rollups de validade). Isso resulta numa experiência de utilizador fraca. Existem vários esforços para resolver este problema usando pré-confirmações com um certo nível de segurança. Exemplos incluem soluções específicas do ecossistemaPolygon AggLayerouzkSync HyperBridge) e soluções de uso geral como Camada de Finalidade Rápida da Nearque visa conectar vários ecossistemas de rollup diferentes, aproveitando a segurança econômica da EigenLayer. Existe também a opção depontes de rollup nativas que tiram partido da EigenLayerpara confirmações suaves para evitar esperar pela plena finalidade.
A segurança está relacionada com a solidez das garantias e é uma parte crucial da proposta de valor das blockchains. No entanto, criar segurança cripto-económica é difícil - aumentando as barreiras à entrada e atuando como fricção para a inovação nas aplicações que mais precisam dela (vários middleware e L1s alternativos).
A ideia de segurança compartilhada é usar a segurança econômica existente das redes PoS e sujeitá-la a riscos adicionais de penalização (condições de punição), em vez de cada componente tentar inicializar o seu próprio. Já houve algumas tentativas anteriores de fazer o mesmo em redes PoWmineração combinada.)), mas os incentivos desalinhados tornaram mais fácil para os mineiros colaborarem e explorarem um protocolo (mais difícil punir comportamentos inadequados, uma vez que o trabalho ocorre no mundo físico, ou seja, mineração usando poder computacional). A segurança do PoS é mais flexível para ser usada por outros protocolos, uma vez que possui incentivos positivos (rendimento de participação) e negativos (penalização).
Protocolos construídos em torno da premissa de segurança partilhada incluem:
A interoperabilidade segura e eficiente continua a ser um grande problema num mundo multi-cadeias, exemplificado pelo $2.8bn perdidos em hacks de pontesNos sistemas modulares, a interoperabilidade torna-se ainda mais importante - Não só está a comunicar entre outras cadeias, mas as blockchains modulares também requerem que diferentes componentes comuniquem entre si (como a camada DA e de liquidação). Por conseguinte, já não é viável simplesmente executar um nó completo ou verificar uma única prova de consenso como nas blockchains integradas. Isto adiciona mais peças em movimento à equação.
A interoperabilidade inclui tanto a ponte de tokens como a passagem de mensagens mais geral entre blockchains. Existem várias opções diferentes disponíveis que fazem todos diferentes compromissos em termos de segurança, latência e custo. Otimizar para os três é muito difícil, o que normalmente requer sacrificar pelo menos um. Além disso, diferentes padrões entre as cadeias tornam as implementações em novas cadeias mais difíceis.
Embora ainda falte uma definição clara dos diferentes tipos de clientes leves (ou nós), esta publicação por Dino(co-fundador da Fluent & Modular Media) dá uma boa introdução. A maioria dos clientes leves hoje em dia apenas verifica o consenso, mas idealmente teríamos clientes leves que pudessem verificar a execução e o DA também para reduzir as suposições de confiança. Isso permitiria chegar perto da segurança de um nó completo, sem os altos requisitos de hardware.
Supondo que possamos chegar a um estado em que a geração de ZKPs se torne muito rápida (quase à velocidade da luz) e incrivelmente barata (quase gratuita), como será o resultado final? Em outras palavras, quando é que ZK comeu o conjunto modular?
De um modo geral, acreditamos que duas coisas seriam verdadeiras neste estado do mundo:
Uma terceira condição seria em torno da privacidade (ou gestão do fluxo de informação), mas é mais complicado. ZKPs podem ser usados para algumas aplicações de privacidade com comprovação do lado do cliente, o que plataformas como Aleo, Aztec ou Polygon Miden estão construindo, mas alcançar privacidade em grande escala para todos os casos de uso potenciais depende do progresso de MPC e FHE também - um tópico potencial para um futuro post no blog.
E se estivermos errados e o futuro não for nem modular nem ZK'fied? Alguns riscos potenciais para a nossa tese incluem:
Tanto os utilizadores como os programadores sofrem com o número cada vez maior de cadeias. Os utilizadores precisam de gerir fundos em várias cadeias (e potencialmente várias carteiras). Por outro lado, os programadores de aplicações têm menos estabilidade e previsibilidade, dado o quanto o espaço ainda está a evoluir, tornando mais difícil decidir em que cadeia construir. Também precisam de pensar na fragmentação do estado e da liquidez. Isto é particularmente verdade agora, enquanto ainda estamos a experimentar ao longo da fronteira sobre quais componentes fazem sentido desacoplar e quais serão recoplados. Acreditamos que a abstração da operação do utilizador, bem como soluções de interoperabilidade seguras e eficientes, são partes cruciais para resolver este problema.
Não há como contornar o facto de que a geração de provas demora demasiado tempo e o custo tanto da prova como da verificação ainda é demasiado elevado nos dias de hoje. Soluções concorrentes como ambientes de execução confiáveis/TEEs (privacidade) ou soluções de segurança otimistas/cruptoeconómicas (custo) ainda fazem mais sentido para muitas aplicações hoje em dia.
Está a ser feito muito trabalho no que diz respeito à otimização de software e à aceleração de hardware para ZKPs. A agregação de prova ajudará a reduzir ainda mais os custos de verificação, distribuindo o custo por várias partes diferentes (custo inferior/utilizador). Também existe a possibilidade de adaptar a camada base para ser mais otimizada para a verificação de ZKPs. Um desafio relativo à aceleração de hardware para ZKPs é o rápido desenvolvimento de sistemas de prova. Isto torna difícil a criação de hardware especializado (ASICs), uma vez que correm o risco de ficar rapidamente obsoletos se/ quando os padrões dos sistemas de prova subjacentes evoluem.
Ingonyamatentou criar algum referencial para o desempenho do provador através de uma métrica comparável chamada ZK score. Baseia-se no custo da execução da computação (OPEX) e acompanha MMOPS/WATT, onde MMOPS significa operações de multiplicação modular por segundo. Para mais leitura sobre o tema, recomendamos blogs de@Cysic/BJQcpVbXn?ref=blog.succinct.xyz">Cysic and @ingonyama/revisitar-paradigmas-aceleracao-de-hardware-para-provas-de-zero-conhecimento-5dffacdc24b4">Ingonyama, bem como esta palestra por Wei Dai.
ZKPs só podem ser usados para alcançar privacidade para estado pessoal, não estado compartilhado onde múltiplas partes precisam calcular em dados criptografados (como um Uniswap privado). FHE e MPC também são necessários para privacidade completa, mas estes precisam melhorar muitas ordens de magnitude em termos de custo e desempenho antes de serem opções viáveis para uso em maior escala. Dito isto, ZKPs ainda são úteis para certos casos de uso que não requerem um estado compartilhado privado, como soluções de identidade ou pagamentos. Nem todos os problemas precisam ser resolvidos com a mesma ferramenta.
Então, onde isso nos deixa? Embora estejamos progredindo a cada dia, ainda há muito trabalho a fazer. As questões mais prementes a resolver são como o valor e a informação podem fluir com segurança entre diferentes componentes modulares sem sacrificar a velocidade ou o custo, além de abstrair tudo isso do consumidor final, para que ele não precise se preocupar em fazer a ponte entre diferentes redes, trocar de carteiras, etc.
Embora estejamos atualmente ainda muito na fase de experimentação, as coisas devem estabilizar ao longo do tempo, à medida que descobrimos onde no espectro estão os trade-offs ótimos para cada caso de uso. Isso, por sua vez, dará espaço para que padrões (informais ou formais) surjam e proporcionem mais estabilidade aos construtores em cima dessas cadeias.
Hoje em dia, ainda existem muitos casos de uso que recorrem à segurança cripto-econômica por defeito devido ao custo e complexidade da geração de ZKPs e alguns que requerem uma combinação dos dois. No entanto, essa quota deve diminuir ao longo do tempo à medida que projetamos sistemas de prova mais eficientes e hardware especializado para reduzir o custo e a latência de prova e verificação. Com cada redução exponencial de custo e velocidade, novos casos de uso são desbloqueados.
Embora este artigo se tenha concentrado especificamente nas ZKPs, estamos também cada vez mais interessados em como as soluções de criptografia moderna (ZKPs, MPC, FHE e TEE) acabarão por interagir - algo que já estamos a ver.
Obrigado por ler!