<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>dpc</title>
    <subtitle>Notes by `dpc`</subtitle>
    <link href="https://dpc.pw/atom.xml" rel="self" type="application/atom+xml"/>
    <link href="https://dpc.pw"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-08-07T00:00:00+00:00</updated>
    <id>https://dpc.pw/atom.xml</id>
    
    <entry xml:lang="en">
        <title>Bitcoin is under siege</title>
        <published>2026-08-07T00:00:00+00:00</published>
        <updated>2026-08-07T00:00:00+00:00</updated>
        <author>
          <name>Unknown</name>
        </author>
        <link rel="alternate" href="https://dpc.pw/posts/bitcoin-is-under-siege/" type="text/html"/>
        <id>https://dpc.pw/posts/bitcoin-is-under-siege/</id>
        
        <content type="html">&lt;p&gt;Bitcoin is under siege, and you should pay attention because your software
ecosystem is likely to be next.&lt;&#x2F;p&gt;
&lt;p&gt;Bitcoin is first because it is an easy place to search for vulnerabilities and
exploiting them can be extremely profitable. Most of its software is public,
and a working exploit can move money immediately and irreversibly.&lt;&#x2F;p&gt;
&lt;p&gt;The recent
&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;blog.coinkite.com&#x2F;entropy-technical-backgrounder&#x2F;&quot;&gt;COLDCARD hack&lt;&#x2F;a&gt;
made the threat impossible to ignore. A years-old firmware bug weakened wallet
seeds and put funded wallets directly at risk. Coinkite suspects AI-assisted
review found it, though there is no public proof and its own earlier AI review
missed it.&lt;&#x2F;p&gt;
&lt;p&gt;The details of that particular bug are less important than the reaction. The
exploit demonstrated the stakes, while the scale of what AI could do changed
the threat model.&lt;&#x2F;p&gt;
&lt;p&gt;The ingredients are readily available. Source code, including its complete
history, is already public. For producing code, I still get more reliable
results from frontier models. But capable open-weight models can also be run
locally, beyond a provider&#x27;s guardrails, rate limits, or security policy. Point
them at old releases, run them in parallel, and ask them to think like
attackers.&lt;&#x2F;p&gt;
&lt;p&gt;The defensive response was immediate. Volunteers formed the model-assisted
&lt;strong&gt;Bitcoin Red Team&lt;&#x2F;strong&gt;, while
&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;opensats.org&#x2F;blog&#x2F;code-red-supporting-first-responders&quot;&gt;OpenSats launched Code RED&lt;&#x2F;a&gt;
as a priority funding path for red-teamers, including reimbursement of LLM
token costs.&lt;&#x2F;p&gt;
&lt;p&gt;According to &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;x.com&#x2F;callebtc&#x2F;status&#x2F;2085035257477190080&quot;&gt;a public update from the team&lt;&#x2F;a&gt;,
the first numbers were staggering: 4,962 candidate findings across 390 projects
in 27.5 hours, with 85 labeled critical and 635 high severity. These were the
team&#x27;s labels, not independently audited results or 4,962 confirmed
vulnerabilities. The team reported reproducing only about a fifth at that
point, and did not report that Bitcoin Core itself was affected. Even after a
very large discount, the result is alarming.&lt;&#x2F;p&gt;
&lt;p&gt;The mental model changed almost overnight:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;A switch from &quot;it&#x27;s irresponsible if you didn&#x27;t review your clanker&#x27;s code&quot;
to &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;x.com&#x2F;dpc_pw&#x2F;status&#x2F;2084761504180789707&quot;&gt;&quot;it&#x27;s irresponsible if a clanker didn&#x27;t review your code&quot;&lt;&#x2F;a&gt;
was fast and dramatic.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Affected maintainers are now scrambling to reproduce private reports,
understand their impact, write patches, coordinate disclosures, and ship
emergency releases. There is no clear end in sight. Finding suspicious code can
now be massively parallelized; triage, coordinated disclosure, fixes, and
releases remain maintainer bottlenecks. Even when a patch is ready, slow GitHub
Actions jobs and release infrastructure can still hold it up.&lt;&#x2F;p&gt;
&lt;p&gt;Bitcoin is probably only the canary. It is an obvious early test case: the code
is public and verifiable, it operates in an adversarial environment, and
finding a bug can be worth millions. Avoiding bugs is not some secondary
quality goal here.&lt;&#x2F;p&gt;
&lt;p&gt;Yet a short burst of machine-assisted review found a mountain of suspicious
code. What should we expect from the many codebases with weaker incentives,
less scrutiny, and failures that cannot be cashed in immediately?&lt;&#x2F;p&gt;
&lt;p&gt;This also punctures some human pride. &quot;I wrote this code by hand&quot; was never the
assurance people pretended it was. Much of this code was human-written, and
some bugs had survived years of human review. Now that adversarial review can
be applied cheaply and en masse, we are discovering how good that work really
was.&lt;&#x2F;p&gt;
&lt;p&gt;Using clankers to produce code, and independent clankers to review it, is
quickly becoming non-optional. Humans remain responsible for the result, but
manual authorship is not a security property. Attackers have these machines.
Defenders need to use them continuously, because &quot;nobody noticed this for
years&quot; is no longer a security argument.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    
    <entry xml:lang="en">
        <title>AI, Tau, and Software Architecture</title>
        <published>2026-07-24T00:00:00+00:00</published>
        <updated>2026-07-24T00:00:00+00:00</updated>
        <author>
          <name>Unknown</name>
        </author>
        <link rel="alternate" href="https://dpc.pw/posts/ai-tau-and-software-architecture/" type="text/html"/>
        <id>https://dpc.pw/posts/ai-tau-and-software-architecture/</id>
        
        <content type="html">&lt;p&gt;I recently joined a podcast to talk about my shift from AI skeptic to what I jokingly call “AI psychosis mode.” We discussed building &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dpc&#x2F;tau&quot;&gt;Tau&lt;&#x2F;a&gt;, treating coding agents as powerful tools that demand equally serious safety measures, and why good software architecture matters even more when AI can produce code so quickly.&lt;&#x2F;p&gt;
&lt;p&gt;We also touched on boutique software: small, focused tools shaped around their users rather than the broadest possible market.&lt;&#x2F;p&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;fthLd4hdwCg&quot; title=&quot;AI, Tau, and Software Architecture&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&gt;&lt;&#x2F;iframe&gt;
</content>
        
    </entry>
    
    <entry xml:lang="en">
        <title>He Went to the Slop Side</title>
        <published>2026-07-22T00:00:00+00:00</published>
        <updated>2026-07-22T00:00:00+00:00</updated>
        <author>
          <name>Unknown</name>
        </author>
        <link rel="alternate" href="https://dpc.pw/posts/he-went-to-the-slop-side/" type="text/html"/>
        <id>https://dpc.pw/posts/he-went-to-the-slop-side/</id>
        
        <content type="html">&lt;blockquote&gt;
&lt;p&gt;The Slop Side of Code is a pathway to many abilities some consider to be… unnatural.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Not much we can do now. Should have stopped or warned him while it was still early. It started so innocently. &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;dpc.pw&#x2F;posts&#x2F;personal-ai-usage-disclosure&#x2F;&quot;&gt;He was only doing Slop recreationally, in small doses&lt;&#x2F;a&gt;. He thought he could stop at any time... just review every change and you&#x27;re safe, right? Yeah, right. Now he&#x27;s gone, and this post is probably AI-generated.&lt;&#x2F;p&gt;
&lt;p&gt;Stop crying. Here, have some em dashes to wipe your tears with: —, —, —.&lt;&#x2F;p&gt;
&lt;p&gt;I will tell you why. He told me. The Slop made him feel young again. Like he was a noob and didn&#x27;t know what he was doing &lt;em&gt;at all&lt;&#x2F;em&gt;. Everything felt so new again—full of questions, challenges, and possibilities. And he just couldn&#x27;t resist the power. To command these... golems—or clankers, as he called them—was to have a personal army at his disposal. I know—unnatural, foul creatures they are. But he said he took a liking to them... He found them... delightful—hah!—and funny. They were funny when they were impressive, and they were funny when they failed spectacularly. Their unpredictability was an irresistible counterpoint to the hard, cold determinism of everything he was used to.&lt;&#x2F;p&gt;
&lt;p&gt;And now he has &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;tau-agent.dev&#x2F;&quot;&gt;his own harness to command them&lt;&#x2F;a&gt; and &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;radicle.network&#x2F;nodes&#x2F;radicle.dpc.pw&#x2F;rad%3Az3qqqx5cpk5jk9ioEGaw54dihfDwb&quot;&gt;methods to control and bind them&lt;&#x2F;a&gt;, and he is using his newly acquired powers to &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;radicle.network&#x2F;nodes&#x2F;radicle.dpc.pw&quot;&gt;rapidly deepen his integration with them&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;So that&#x27;s why I&#x27;m here. To warn you that he went Full Slop. And I don&#x27;t think he is ever coming back. He swears he&#x27;s fine and has never been better, but I think his demise is certain. It&#x27;s just a matter of time.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    
    <entry xml:lang="en">
        <title>LLM Reviews in cargo-crev</title>
        <published>2026-04-12T00:00:00+00:00</published>
        <updated>2026-04-12T00:00:00+00:00</updated>
        <author>
          <name>Unknown</name>
        </author>
        <link rel="alternate" href="https://dpc.pw/posts/llm-reviews-in-cargo-crev/" type="text/html"/>
        <id>https://dpc.pw/posts/llm-reviews-in-cargo-crev/</id>
        
        <content type="html">&lt;p&gt;There has been lots of chatting about software supply chain security
recently, motivated by popular package exploits.&lt;&#x2F;p&gt;
&lt;p&gt;Well, I have some relevant news: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;crev-dev&#x2F;cargo-crev&quot;&gt;cargo-crev&lt;&#x2F;a&gt; now supports LLM-assisted code reviews. Go try it!&lt;&#x2F;p&gt;
&lt;p&gt;Read on to get more information and background.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;history&quot;&gt;History&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#history&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;I started working on Crev in 2018. The idea
was (is) simple: if each of us (developers) reviewed at least some of our
dependencies, and then we could share and distribute such reviews
between each other with the help of a Web of Trust, we
could get a good review coverage of the ecosystem, gain more
trust in our supply chains, report back issues upstream and
improve overall health of the open source ecosystem.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;cargo-crev&lt;&#x2F;code&gt; was an attempt to implement such a system,
for the language ecosystem I cared about most — Rust.&lt;&#x2F;p&gt;
&lt;p&gt;If I may say so, on a technical level I&#x27;m satisfied
with the UX and flow that was achieved. However, around 2020
I lost my enthusiasm for this project.&lt;&#x2F;p&gt;
&lt;p&gt;Why? Because it became apparent that no matter how well
&lt;code&gt;cargo-crev&lt;&#x2F;code&gt; actually works, the biggest obstacle to fully
realize the idea was lack of time by developers.&lt;&#x2F;p&gt;
&lt;p&gt;Reviewing code, even superficially, is a lot of effort and
it takes a very long time. And it
does not feel nearly as satisfying as actually creating
something new — writing code.&lt;&#x2F;p&gt;
&lt;p&gt;Open Source community was already overburdened with
just maintaining code. Asking developers to take on
yet another unpaid responsibility of trying to secure
supply chains is just asking too much.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;llms-getting-good-at-finding-issues&quot;&gt;LLMs getting good at finding issues&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#llms-getting-good-at-finding-issues&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Just a few weeks ago I was reading some articles about new LLM
models finding non-trivial security issues, and Linux kernel and curl
developers admitting that after a deluge of mostly worthless slop security reports
they used to complain about, now they tend to receive actually worthwhile
AI-assisted bug and security reports. It reminded me about &lt;code&gt;cargo-crev&lt;&#x2F;code&gt;
and I realized that AI can actually fill the gap that made me
doubt it.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m not trying to overhype LLMs. But the fact is that
they can do, and in high volume, what developers themselves have
no time for: the 90&#x2F;10 security scanning that was otherwise quite hard
to automate.&lt;&#x2F;p&gt;
&lt;p&gt;An LLM can easily and reliably check if a code version published
on https:&#x2F;&#x2F;crates.io matches the code published in git.&lt;&#x2F;p&gt;
&lt;p&gt;An LLM can easily scan &lt;code&gt;build.rs&lt;&#x2F;code&gt; and the rest of the code and
look if anything looks out of place.&lt;&#x2F;p&gt;
&lt;p&gt;It is actually very hard to hide key-stealing malware
in a package that was supposed to format units, etc.&lt;&#x2F;p&gt;
&lt;p&gt;Especially in Rust, doing things that are wrong or
out of place creates a lot of noise, making such code
easy to notice, even by an LLM reviewer.&lt;&#x2F;p&gt;
&lt;p&gt;It might not be a silver bullet, but it is definitely
better than doing nothing.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-to-use-it&quot;&gt;How to use it&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#how-to-use-it&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Note: In the initial release &lt;code&gt;cargo-crev&lt;&#x2F;code&gt; supports
only Claude Code agent. If you&#x27;re interested in adding
support for other coding agents, it should be relatively
easy — most scaffolding is already there. Feel free to chat
and create a PR.&lt;&#x2F;p&gt;
&lt;p&gt;Since version 0.27 &lt;code&gt;cargo-crev&lt;&#x2F;code&gt; has a built-in
review loop.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #839496; background-color: #002B36;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;cargo crev ai review-loop --iterations 10&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;which will start the agent 10 times, each time
selecting and reviewing a single dependency.&lt;&#x2F;p&gt;
&lt;p&gt;The agent will produce&amp;amp;update a single shell script
that can be used to conveniently review and sign
all reviews.&lt;&#x2F;p&gt;
&lt;p&gt;While the above is meant as a standard mass-review flow,
the core built-in agent review skill is available as an output of:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #839496; background-color: #002B36;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;cargo crev ai skill review&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;and it should be easy for anyone to modify it and&#x2F;or build their own
LLM-assisted workflows.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-it-works&quot;&gt;How it works&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#how-it-works&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;The core change is that &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dpc&#x2F;crev-proofs&#x2F;blob&#x2F;e8ae9359f6714f51b7198014386f0ba7b7c81cd3&#x2F;Z2hdE0ZebgUekVq0xdRfDlx09YAOMHEcbHE-aOcZBuk&#x2F;reviews&#x2F;2026-04-package-rV74rg.proof.crev#L18&quot;&gt;Crev&#x27;s reviews now have
fields to indicate that an LLM was used for the review&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The rest is just relatively minor functionality to make producing
LLM reviews convenient end to end.&lt;&#x2F;p&gt;
&lt;p&gt;For people skeptical of LLMs, options to ignore LLM-generated reviews
have been and will be added where appropriate. You can just
ignore the slop reviews if you don&#x27;t trust them, fine with me.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-well-it-works&quot;&gt;How &lt;em&gt;well&lt;&#x2F;em&gt; it works&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#how-well-it-works&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;While working on this feature and testing it myself, &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dpc&#x2F;crev-proofs&#x2F;commits&#x2F;master&#x2F;&quot;&gt;I have produced
quite a few LLM-assisted reviews&lt;&#x2F;a&gt;.
Judge by yourself.&lt;&#x2F;p&gt;
&lt;p&gt;To me these meet the bar of being useful. And they turned some spare
capacity from my Claude subscription into something that I otherwise
would not be able to do myself.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;a class=&quot;anchor&quot; aria-hidden=&quot;true&quot; href=&quot;#summary&quot; hidden=&quot;&quot;&gt;#&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;This is only an initial attempt at harnessing the AI in cargo-crev.
There still might be lots of things to improve and extend, but we have
to start somewhere.&lt;&#x2F;p&gt;
&lt;p&gt;If you like the idea and find it promising, I encourage you
to try it out, give some feedback, and submit improvements.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
</feed>
