Pode-se entender o AO como uma Fragmentação infinita, uma rede de expansão infinita. Cada processo é uma Fragmentação.
Escrito por: 0xmiddle
Revisão: Sandy
Fonte: Conteúdo Guilda - Investimento em Pesquisa
AO não é uma blockchain no sentido tradicional. O seu design é contra-intuitivo e não convencional, o que pode levar os investigadores que estão a começar a compreender o AO a ficarem confusos em certos pontos, especialmente quando tentam enquadrar o AO numa arquitetura de blockchain tradicional:
Não PoS, não PoW, qual é o mecanismo de consenso exato que a AO chama de ‘consenso holográfico’?
Sem cadeia de hash, nem mesmo blocos, como é que o AO garante a imutabilidade dos dados?
Sem um centro de coordenação, como pode o AO garantir a consistência do estado global?
Não há mecanismo de redundância de computador, quem garante a confiabilidade dos cálculos? O que fazer se houver erros de cálculo?
Sem segurança compartilhada, como garantir a interoperabilidade entre processos?
Eu vou ajudar todos a atravessar do conhecido para o desconhecido, transformando o desconhecido em conhecido, e compreender o AO em um nível emocional, usando 3 perspectivas familiares do blockchain.
Após a educação em várias blockchains como Ethereum 2.0, Polkadot, Near, etc., todos devem estar familiarizados com a ‘Fragmentação’.
Conceito de Fragmentação: Na blockchain, a fragmentação é uma solução para aumentar a escalabilidade da rede, dividindo-a em várias fragmentações. Cada fragmentação valida e processa transações de forma independente, gerando seus próprios blocos e melhorando a eficiência geral da rede. A comunicação síncrona é possível dentro de uma fragmentação, enquanto a comunicação assíncrona entre fragmentações é realizada por meio de um protocolo específico.
Polkadot é o exemplo mais típico da arquitetura de Fragmentação. No Polkadot, cada cadeia paralela é uma Fragmentação, coletando e empacotando independentemente sua própria cadeia de blocos, e sendo validada por um grupo de verificadores atribuído aleatoriamente pela cadeia de retransmissão. As cadeias paralelas se comunicam usando o formato de mensagem XCM unificado para alcançar a interoperabilidade.
A Fragmentação extrema do AO
Olhando para AO a partir da perspetiva de Fragmentação, pode-se compreendê-lo como uma forma extrema de ‘Fragmentação’: cada processo é uma Fragmentação. Imagine, por um momento, como seria se cada contrato inteligente do Ethereum fosse executado numa Fragmentação separada? Isso mesmo, seria o AO. Cada processo é independente e as chamadas entre processos são conduzidas por mensagens, de forma totalmente assíncrona.
Mas descobrimos um ponto-chave: no design do Polkadot, existe uma “cadeia de retransmissão”, e no ETH2.0, existe uma “cadeia de farol”, que funcionam como uma camada de consenso unificada para fornecer segurança compartilhada. A camada de consenso unificada é responsável por fornecer serviços de verificação direta ou indireta para todas as Fragmentação e mensagens entre Fragmentação. Parece que o AO não tem este componente, então como é que o consenso do AO é projetado?
A camada de consenso da AO é na verdade Arweave. Do ponto de vista modular, a AO pode ser entendida como a L2 da Arweave, um Rollup da Arweave como L1. Todos os logs de mensagens gerados durante a operação da rede AO são carregados no armazenamento permanente da Arweave, ou seja, há um registro imutável da operação da rede AO na Arweave. Agora você pode estar se perguntando como o Arweave verifica os dados enviados pela rede AO.
A resposta é: Arweave não verifica, a rede AO possui um mecanismo de arbitragem otimista próprio. Arweave não rejeita dados de mensagens enviadas para a rede AO, cada mensagem contém o ID do processo do remetente e a assinatura da CU (unidade de computação) que a executa, também contém a assinatura da SU (unidade de ordenação) que a ordena. Em caso de disputa, é possível recalcular com mais nós, com base nos registros imutáveis de mensagens no Arweave, para criar um fork correto, descartando os forks incorretos existentes e penalizando as apostas de CU ou SU com erros no fork correto. É importante notar que o MU é responsável apenas por coletar mensagens a serem enviadas pelos Processos, transmitindo-as para a SU, sendo um processo sem confiança, sem penalidades ou apostas.
AO é muito parecido com um Optimistic Rollup com Arweave como L1, exceto que o processo de desafio de verificação não ocorre em L1, mas sim dentro da própria rede AO.
No entanto, há aqui um problema, não é possível esperar que cada mensagem seja confirmada após ser incluída no Arweave, na verdade, o tempo de formação final da determinação de Arweave excede meia hora. Portanto, o AO terá sua própria camada de consenso suave, assim como os Rollups da Ethereum têm sua própria camada de consenso suave, a maioria das transações não espera pela confirmação L1 antes de serem registradas.
O Processo em AO é na verdade auto-determinante da intensidade de verificação.
Como destinatário da mensagem, o Process deve decidir se deve processar a mensagem somente após a confirmação da Arweave ou logo após a confirmação no nível de consenso suave. Mesmo no estágio de confirmação de consenso suave, o Process pode adotar uma estratégia flexível, que pode ser processada após a confirmação de um único CU ou após a confirmação redundante de vários CUs e verificação cruzada, e a redundância é determinada pelo Process.
Na aplicação prática, a intensidade da verificação geralmente está relacionada ao valor da transação, por exemplo
Este é o que AO chama de modelo de ‘consenso holográfico’ + ‘validação elástica’, que adota uma abordagem completamente diferente da prática tradicional de blockchain, desacoplando a ‘verificabilidade’ e o próprio comportamento de ‘validação’. A responsabilidade pela verificação de mensagens também não está na própria rede, mas sim no Processo receptor em si, ou seja, nos desenvolvedores de aplicativos.
É precisamente devido à adoção deste modelo de consenso que a AO pode adotar o modelo de expansão ilimitada ‘Fragmentação extrema’ sem hub.
Naturalmente, a verificação elástica resulta em diferentes intensidades de verificação de processos, o que pode levar a quebra da cadeia de confiança em interações complexas. Uma falha em um componente individual em uma cadeia de chamadas longa pode resultar em falha ou erro na transação como um todo. Na verdade, durante a fase de teste da rede AO, esse tipo de problema já foi exposto. Acredito que a AO deverá estabelecer um padrão de intensidade mínima de verificação para todas as tarefas de verificação, e estamos ansiosos para ver que tipo de novos designs a rede formal da AO trará.
No sistema tradicional de blockchain, os recursos são abstraídos como ‘espaço de bloco’, que pode ser entendido como a coleção de recursos de armazenamento, computação e transmissão fornecidos pelos nós e combinados organicamente pelos blocos na cadeia, fornecendo um veículo para a execução de aplicativos na cadeia. O espaço de bloco é um recurso limitado, e em blockchains tradicionais, diferentes aplicativos competem por espaço de bloco e pagam por ele, enquanto os nós lucram com esses pagamentos.
AO não tem o conceito de blocos, tampouco o conceito de “espaço de bloco”. No entanto, como os contratos inteligentes em outras blockchains, cada Processo em execução na AO também consome recursos. Ele precisa de nós para armazenar temporariamente transações e dados de estado, e também consome recursos de computação dos nós para executar tarefas computacionais. As mensagens que ele emite precisam ser transmitidas para o Processo de destino através de MU e SU.
No AO, os nós são divididos em três tipos: CU (Unidade de Cálculo), MU (Unidade de Mensagem) e SU (Unidade de Ordenação), sendo o CU o núcleo responsável pelas tarefas de cálculo. O MU e o SU, por sua vez, são responsáveis pelas tarefas de comunicação. Quando um processo precisa interagir com outros processos, uma mensagem é gerada e armazenada na fila de saída. O CU que está executando esse processo assina a mensagem, o MU extrai a mensagem da fila de saída e a envia para o SU. O SU atribui um número de sequência único à mensagem e a envia para o armazenamento permanente na Arweave. Em seguida, o MU encaminha a mensagem para a fila de entrada do processo de destino, concluindo assim a entrega da mensagem. O MU pode ser entendido como o coletor e entregador de mensagens, e o SU como o responsável pela ordenação e upload das mensagens.
No que diz respeito aos recursos de armazenamento, o MU na rede AO só precisa armazenar os dados temporários necessários para o cálculo e pode descartá-los após a conclusão do cálculo. O Arweave é responsável pelo armazenamento permanente. Embora o Arweave não possa ser dimensionado horizontalmente, o limite de desempenho de armazenamento é muito alto, e as necessidades de armazenamento da rede AO não conseguirão alcançar o limite do Arweave num futuro previsível.
Descobrimos que os recursos de computação, transferência e armazenamento na rede AO são desacoplados. Além dos recursos de armazenamento unificado fornecidos pela Arweave, os recursos de computação e transferência podem ser escalados horizontalmente independentemente, sem restrições.
Quanto mais nós de CU, com maior desempenho, se juntarem à rede, mais poder de computação a rede terá e poderá suportar a execução de mais processos; da mesma forma, quanto mais nós de MU e SU, com maior desempenho, se juntarem à rede, mais eficiente será a transmissão da rede. Isso significa que o ‘espaço do bloco’ em AO pode ser constantemente criado. Para aplicativos, é possível comprar serviços de nós públicos CU, MU e SU no mercado aberto, ou executar nós privados para atender aos próprios aplicativos. Se o negócio do aplicativo se expandir, é possível melhorar o desempenho expandindo seus próprios nós, assim como os aplicativos Web2 fazem. Isso é impensável em blockchain tradicional.
Ao nível da fixação de preços dos recursos, o AO pode ser ajustado de forma flexível através da oferta e procura, permitindo assim que o fornecimento de recursos se ajuste à procura. Este ajuste é altamente sensível, com a adição e remoção de nós a serem realizadas rapidamente. Se olharmos para o Ethereum, veremos que, quando a procura de recursos aumenta drasticamente, a única opção é suportar os elevados custos do Gas, pois o Ethereum não pode aumentar o seu desempenho através da expansão do número de nós.
Acima, começamos com conceitos conhecidos pela maioria dos pesquisadores de criptografia, como ‘Fragmentação’, ‘Modularidade’, ‘Rollup’, ‘Espaço de Bloco’, etc., e mergulhamos nos princípios e mecanismos do AO, ajudando a entender como o AO alcança escalabilidade quase infinita através de inovação disruptiva.
Agora, olhando para trás, você entendeu as primeiras perguntas?
1. Não PoS, não PoW, o que exatamente é o mecanismo de consenso holográfico mencionado pela AO?
O mecanismo de consenso da AO é, na verdade, um design semelhante ao Op Rollup. Na camada de consenso rígido, depende do Arweave, enquanto na camada de consenso suave, cada processo pode decidir independentemente a força da validação e quantos nós de CU redundantes devem ser calculados.
**2. Sem corrente de hash, nem mesmo blocos, como é que o AO garante a imutabilidade dos dados?
Os dados do DA carregados no Arweave são imutáveis, fornecendo verificabilidade para todos os processos de cálculo e transferência na AO. A AO em si não precisa limitar a capacidade de processamento em unidades de tempo, portanto não é necessário definir blocos. Em vez disso, a Arweave possui estruturas como ‘cadeias de hash’ e ‘blocos’ para garantir a imutabilidade dos dados.
3. Sem um centro de coordenação, como pode o AO garantir a consistência do estado global?
Cada Processo é uma “Fragmentação” independente, gerenciando suas transações e estado de forma independente. Os Processos interagem por meio de mensagens conduzidas. Portanto, não é necessária uma consistência de estado global. O armazenamento permanente do Arweave fornece verificabilidade global e capacidade de rastreamento histórico, combinado com um mecanismo de desafio otimista, que pode ser usado para resolver disputas.
4. Não há mecanismo de redundância, quem garante a confiabilidade do cálculo? O que fazer em caso de erro de cálculo?
AO não tem um mecanismo de computação redundante globalmente forçado, cada Processo pode decidir por si só como verificar a confiabilidade de cada mensagem recebida. Se houver um erro de cálculo, pode ser descoberto e corrigido por meio de desafio otimista.
O Processo precisa gerir autonomamente a credencial de cada Processo com o qual interage, podendo adotar diferentes níveis de verificação para Processos com diferentes níveis de segurança. Para interoperabilidade com cadeias de chamadas mais complexas, a fim de evitar custos elevados de correção devido a quebras na cadeia de confiança, a AO pode exigir um nível mínimo de verificação.