Eu estava arrumando uma carteira velha hoje, revogando uma penca de aprovações de tokens que eu nem lembrava que tinha. Uma delas era para uma DEX que eu usei exatamente uma vez, há mais de um ano, para um único swap. Mesmo assim, ela ficou com a aprovação de gastos ilimitados lá, esse tempo todo. Não é algo raro: a carteira de todo mundo tem três ou quatro desses fantasmas.

Então, enquanto eu clicava em revoke.cash por uma paranoia leve, acabei pensando em como as permissões ainda são estranhamente binárias na maioria do DeFi. Ou você aprova um contrato, ou não. Quando você aprova, não é "aprovado apenas para esta ação", é geralmente aprovado para praticamente qualquer coisa, para sempre, até você lembrar de desfazer isso. E a maioria das pessoas não lembra.

E foi aí que caiu a ficha para mim — as perdas que destroem as pessoas quase nunca vêm de algum exploit genial. Elas vêm de uma permissão ampla demais, deixada ali quieta, por meses, depois que ninguém mais lembra de ter concedido. O erro não é dramático. É pequeno. Só… fica aberto.

Por curiosidade, voltei ao que a Newton Protocol tem construído, já que eu tinha visto $NEWT surgir em um tópico sobre exatamente esse problema. O que é diferente não é que a Newton adicione mais “teatro de segurança” por cima; é que permissões não são um simples botão de sim/não. Cada transação é verificada contra uma política no momento em que acontece — limites de gasto, pagadores aprovados, limites de mandato — em vez de depender de alguma aprovação “genérica” que você deu seis meses atrás e esqueceu.

O que as pessoas presumem: quando você confia em um contrato, essa confiança deveria simplesmente… persistir, e revogar é seu trabalho para lembrar. O que realmente acontece com um setup assim: essa “confiança” não fica ali como uma aprovação permanente esperando para ser abusada; ela é reavaliada por transação. Então, mesmo que algo dê errado do outro lado, não existe uma porta gigante aberta: existe um checkpoint toda vez.

Mas é aqui que isso me incomoda um pouco. Isso só realmente te protege se cada transação relevante passar por aquela verificação de política. No segundo em que você interagir com algo fora desse escopo — um contrato aleatório, uma aprovação antiga que você concedeu antes mesmo de mexer com a Newton, um dApp totalmente não relacionado — você volta direto para o modelo antigo de permissão binária. Não corrige retroativamente sua bagunça atual. Eu quase sempre esqueço dessa parte, honestamente; eu queria que fosse uma correção “para sempre”, tipo um ajuste universal, mas não é.

Eu pensei primeiro que isso fosse principalmente uma história sobre uma melhor experiência de usuário para instituições, curadores de cofre, esse tipo de coisa. Mas, na prática, quanto mais eu fiquei pensando, mais parece ser realmente sobre a escala do raio de explosão. Um pequeno erro — uma aprovação descuidada, uma permissão ampla demais — costumava conseguir ficar lá, quieto, e eventualmente acabar custando tudo naquela carteira. Reduzir o tamanho do que qualquer permissão individual consegue fazer é meio que o jogo inteiro aqui, mais do que qualquer recurso chamativo de segurança.

O que mais importa são as contas que as pessoas não verificam com frequência. Carteiras de tesouraria, cofres em modo automático, qualquer coisa com um agente ou bot acoplado que toma decisões sem alguém ficar olhando todo dia. O que fica ali, quieto por meses, é exatamente o que acaba sendo desmontado quando finalmente dá errado.

De qualquer forma. Ainda estava analisando minhas aprovações antigas e, na real, encontrei mais duas que eu nem lembrava de ter concedido. Dá um pouco de desconforto como isso é normal. Provavelmente vou continuar de olho em como o modelo de políticas da Newton se sai quando mais essas carteiras antigas e mais bagunçadas começarem a passar por ele, em vez de apenas carteiras novas.
@NewtonProtocol #Newt