Fooling around with encrypted reasoning blobs

(blog.cryptographyengineering.com)

75 points | by supermatou 3 days ago

7 comments

  • glitchc 4 hours ago
    Very interesting. The state management is the really insightful find here.

    I always wondered how these large AI companies managed access for millions of simultaneous users without having to allocate a dedicated LLM instance for each user. Pushing the complete state down to the user after every call makes perfect sense. The LLM itself stays memoryless and ready to respond to an arbitrary prompt. Very nice.

    • geocar 4 hours ago
      N.B. This is exactly how seaside, vba, and even arc[1] do server-side state generally: by encrypting the blob-representing-state and sending to the client to be sent back on future requests (where it will be decrypted and rehydrated).

      It's an old trick that everyone designing protocols should know, since there are lots of applications beyond AI companies.

      [1]: As in, pg's lisp: https://arclanguage.github.io/ref/srv.html#:~:text=The%20pre...

      • tn1 57 minutes ago
        And don't forget the venerable .NET Forms with its kilobytes of __VIEWSTATE
    • londons_explore 33 minutes ago
      Except the providers also cache the parsing of the prompt (the KV cache), and that has substantial cost savings (easily an 80% saving on typical coding use cases).

      That caching is done server side and not passed to the client. Which in turn means they still need state management on the server side, although it perhaps doesn't need the same level of global replication and availability.

    • b65e8bee43c2ed0 2 hours ago
      the exchange rate between text and its representation in memory is brutal. here's a bit from a recent article:

      >An 82 GB footprint in DDR3 on a 2016 Xeon. About 25 GB of weights and 56 GB of KV cache at the full 262K context. The KV cache is larger than the model.

      262k tokens is not much at all. with ~5 characters per token, that's only 1.3 MB of plaintext.

      • londons_explore 30 minutes ago
        The providers must have a more efficient approach. Most cache every request for 12+ hours, and they certainly can't spare 100GB of ram per request for 12 hours.
  • Groxx 3 hours ago
    One possible use for the "replay across accounts": if you can get a reasoning block that jailbreaks the model, you could share that block without sharing how you did it, and others can immediately take advantage of it too.
    • denysvitali 2 hours ago
      Not necessarily for the "without sharing" part, but to increase the reliability of the jailbreak. The same prompt isn't guaranteed to return the same result, but combining the internal thinking with the prompt might be a more effective way
  • hhh 1 hour ago
    Awesome write-up. Seems like a great way to play with model responses now that prefill is gone.
  • Retr0id 5 hours ago
    Very cool idea to use thinking duration (either in tokens or in wall time) as a side-channel!
  • Reubend 5 hours ago
    Super cool side channel attack. I tend to agree that it's pretty impractical, but it's such a fun discovery!
  • haeseong 3 hours ago
    [dead]