Enquanto eu lia sobre a Arquitetura dos Protocolos Newton, uma coisa chamou minha atenção. Eles decidiram separar a lógica de política, computação e execução em três camadas.
* A primeira camada é chamada de Camada de Política. Aqui as políticas são definidas, configuradas e conectadas a oráculos que fornecem dados. Esta camada determina quais regras devem ser aplicadas, como limites de gastos, verificações de sanções ou requisitos de conheça seu cliente.
A segunda camada é Compute & Consensus. Ao verificar políticas na blockchain, a Newton envia tarefas para uma rede de operadores por meio de um Gateway. Esses operadores obtêm os dados, avaliam a política e criam assinaturas.
* Um agregador então combina essas assinaturas em uma única prova depois que operadores suficientes concordam.
A Camada de Verificação e Execução entra em cena depois disso.
* Aqui o PolicyClient verifica a prova por meio do AttestationValidator antes que a transação possa acontecer.
* O contrato inteligente verifica o resultado de refazer o trabalho de política.
Do ponto de vista de engenharia, essa separação ajuda.
* Mantém tudo claro e separado.
* A Camada de Política define apenas regras.
* A Camada de Computação e Consenso só produz uma avaliação.
* A Camada de Verificação só verifica a prova antes da execução.
Por causa dessa separação, as regras de política podem mudar sem afetar os contratos de verificação.
* A verificação permanece separada de como os operadores avaliam as políticas.
* Isso também cria um fluxo de trabalho.
* Os desenvolvedores definem políticas uma vez.
* Os operadores avaliam isso fora da blockchain.
* Contratos inteligentes só verificam a prova antes de executar transações.
Newton torna a avaliação de políticas um serviço separado que produz provas para contratos.
* Achei essa separação interessante na documentação.
Conforme a autorização on-chain se torna mais complexa, faz mais sentido separar a definição, a avaliação e a verificação de políticas, em vez de colocar a lógica de autorização diretamente em contratos inteligentes @NewtonProtocol #Newt $NEWT

