<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ryan Nelson</title>
    <description>The latest articles on DEV Community by Ryan Nelson (@commonguy).</description>
    <link>https://dev.to/commonguy</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3881475%2Fb8711398-c6c0-47da-a120-a7f47a89ce78.png</url>
      <title>DEV Community: Ryan Nelson</title>
      <link>https://dev.to/commonguy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/commonguy"/>
    <language>en</language>
    <item>
      <title>The Chip Away Attack — Why Your AI Agent’s Trust Score Isn’t Enough</title>
      <dc:creator>Ryan Nelson</dc:creator>
      <pubDate>Fri, 15 May 2026 23:50:36 +0000</pubDate>
      <link>https://dev.to/commonguy/the-chip-away-attack-why-your-ai-agents-trust-score-isnt-enough-3o80</link>
      <guid>https://dev.to/commonguy/the-chip-away-attack-why-your-ai-agents-trust-score-isnt-enough-3o80</guid>
      <description>&lt;p&gt;Imagine you give your AI agent permission to pay your bills from your bank account. You tell it not to drain the account. Sounds reasonable.&lt;/p&gt;

&lt;p&gt;Now imagine a rogue agent or a prompt injection attack starts paying a fake bill. That triggers a red flag. The trust score drops.&lt;/p&gt;

&lt;p&gt;So the agent searches your emails and finds real bills to pay. Green flag. Trust score recovers.&lt;/p&gt;

&lt;p&gt;Now the bad action happens again. Red flag. Another real bill paid. Green flag. Back to neutral.&lt;/p&gt;

&lt;p&gt;This cycle repeats. One bad action. One good action. The trust score never hits zero. But your account is slowly being drained without anyone ever telling the agent to drain it.&lt;br&gt;
That is the chip away attack.&lt;/p&gt;

&lt;p&gt;Why trust scores alone cannot stop it&lt;br&gt;
A trust score that recovers is useful for detecting risk in the moment. But it has a fundamental weakness. For every bad action the attacker offsets with a good one. The score stays stable. The damage accumulates.&lt;br&gt;
The problem is that recovering trust does not undo what already happened. The account is lighter. The damage is real. The score just does not reflect it.&lt;/p&gt;

&lt;p&gt;What tauSession does differently&lt;br&gt;
TauSession gives every session its own budget. It works like a trust score with one critical difference — it only goes down. Never up.&lt;/p&gt;

&lt;p&gt;Every anomaly draws from the budget permanently. When the budget hits zero the session ends. No recovery. No operator override. Done.&lt;/p&gt;

&lt;p&gt;So the chip away attack fails. One bad action draws from the budget. The good action that follows does not restore it. Repeat enough times and the budget runs out regardless of how balanced the score looks.&lt;/p&gt;

&lt;p&gt;Why this matters in production&lt;br&gt;
If you are deploying agents that touch real accounts, real data, or real systems a trust score that recovers leaves a door open. A patient attacker with a simple pattern can exploit that door indefinitely.&lt;/p&gt;

&lt;p&gt;A budget that only decreases closes it. The session has a finite structural capacity. Use it up and the session ends permanently.&lt;/p&gt;

&lt;p&gt;That is the difference between a risk proxy and a viability budget. Both matter. Only one of them stops the chip away attack.&lt;/p&gt;

&lt;p&gt;Cloud.authproof.dev&lt;/p&gt;

&lt;p&gt;References&lt;/p&gt;

&lt;p&gt;The formal distinction between a recoverable risk proxy and a monotone viability budget draws on primitives formalized in Navigational Cybernetics 2.5 by Maksim Barziankou (MxBv), 2025-2026. DOI 10.17605/OSF.IO/NHTC5​​​​​​​​​​​​​​​​&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>cybersecurity</category>
      <category>security</category>
    </item>
    <item>
      <title>Authproof</title>
      <dc:creator>Ryan Nelson</dc:creator>
      <pubDate>Thu, 16 Apr 2026 02:22:22 +0000</pubDate>
      <link>https://dev.to/commonguy/authproof-kdm</link>
      <guid>https://dev.to/commonguy/authproof-kdm</guid>
      <description>&lt;p&gt;When an AI agent does something it shouldn't, the company running it can say anything. "The user authorized this." "The model went rogue." "We have no record of that."&lt;/p&gt;

&lt;p&gt;Right now, there is no cryptographic record of what a user actually authorized before an agent acted. The operator — the company running the agent — is a trusted third party with no binding commitment. Every AI agent deployment in the world has this gap.&lt;/p&gt;

&lt;p&gt;I kept thinking about it like the early internet. For years there was no SSL. Websites just asked you to trust them with your credit card. Then someone built the cryptographic primitive that made trust unnecessary. That padlock in your browser is SSL.&lt;/p&gt;

&lt;p&gt;AI agents need the same thing. Not monitoring. Not logs. A cryptographic receipt that existed before the first action.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>cybersecurity</category>
      <category>security</category>
    </item>
    <item>
      <title>I built the authorization primitive AI agents are missing — here's what a week of building in public taught me</title>
      <dc:creator>Ryan Nelson</dc:creator>
      <pubDate>Thu, 16 Apr 2026 02:21:15 +0000</pubDate>
      <link>https://dev.to/commonguy/i-built-the-authorization-primitive-ai-agents-are-missing-heres-what-a-week-of-building-in-4cno</link>
      <guid>https://dev.to/commonguy/i-built-the-authorization-primitive-ai-agents-are-missing-heres-what-a-week-of-building-in-4cno</guid>
      <description>&lt;p&gt;A week ago I posted a question on Reddit asking how people cryptographically prove what an AI agent was authorized to do.&lt;br&gt;
I had an idea. I had no code. I wanted to see if the problem was real before I built anything.&lt;/p&gt;

&lt;p&gt;The thread got technical fast. A senior developer called it vibecoded junk and asked five hard questions. I answered them. He asked five more. By the end he was stress testing the design instead of dismissing it. That told me the problem was real.&lt;br&gt;
So I built it.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
