<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Martin Kleppmann’s Blog]]></title><description><![CDATA[Distributed systems, databases, and information security]]></description><link>https://martinkl.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!bzia!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fmartinkl.substack.com%2Fimg%2Fsubstack.png</url><title>Martin Kleppmann’s Blog</title><link>https://martinkl.substack.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 04 Nov 2026 11:49:32 GMT</lastBuildDate><atom:link href="iframe.php?url=https%3A%2F%2Fmartinkl.substack.com%2Ffeed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Martin Kleppmann]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[martinkl@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[martinkl@substack.com]]></itunes:email><itunes:name><![CDATA[Martin Kleppmann]]></itunes:name></itunes:owner><itunes:author><![CDATA[Martin Kleppmann]]></itunes:author><googleplay:owner><![CDATA[martinkl@substack.com]]></googleplay:owner><googleplay:email><![CDATA[martinkl@substack.com]]></googleplay:email><googleplay:author><![CDATA[Martin Kleppmann]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Announcing the Centre for Cryptographic Trust Infrastructure (CCTI)]]></title><description><![CDATA[You&#8217;re getting this email because you subscribed to my blog posts at martin.kleppmann.com.]]></description><link>https://martinkl.substack.com/p/announcing-the-centre-for-cryptographic</link><guid isPermaLink="false">https://martinkl.substack.com/p/announcing-the-centre-for-cryptographic</guid><dc:creator><![CDATA[Martin Kleppmann]]></dc:creator><pubDate>Wed, 07 Oct 2026 11:46:03 GMT</pubDate><content:encoded><![CDATA[<p>Hi! You&#8217;re getting this email because you subscribed to my blog posts at <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F">martin.kleppmann.com</a>.</p><p>Today I am happy to <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F2026%2F10%2F07%2Fcentre-for-cryptographic-trust-infrastructure.html">announce</a> a very exciting new research project that I&#8217;ve been working towards for years!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://martinkl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Martin Kleppmann&#8217;s Blog! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>We are establishing the <strong>Centre for Cryptographic Trust Infrastructure (CCTI)</strong>, funded initially by a &#163;2.4m grant from the <a href="iframe.php?url=https%3A%2F%2Faria.org.uk%2F">Advanced Research + Invention Agency</a> (ARIA) through the <a href="iframe.php?url=https%3A%2F%2Faria.org.uk%2Fopportunity-spaces%2Ftrust-everything-everywhere%2Fscaling-trust">Scaling Trust programme</a>. CCTI is a collaboration between the <a href="iframe.php?url=https%3A%2F%2Fwww.cst.cam.ac.uk%2F">University of Cambridge Department of Computer Science and Technology</a>, the nonprofit <a href="iframe.php?url=https%3A%2F%2Fsine.foundation%2F">SINE Foundation</a>, my longstanding collaborators at <a href="iframe.php?url=https%3A%2F%2Fwww.inkandswitch.com%2F">Ink &amp; Switch</a>, and the startup <a href="iframe.php?url=https%3A%2F%2Flightsquares.dev%2F">Light Squares</a>.</p><p>The overall goal of the ARIA Scaling Trust programme is to enable AI agents to coordinate securely on their owners&#8217; behalf, across both the digital and physical worlds. The programme is funding several teams that are investigating the use of cryptography to enable such coordination.</p><p>ARIA is a fairly new funding body in the UK, started only 3 years ago. It is modelled after <a href="iframe.php?url=https%3A%2F%2Fwww.darpa.mil%2F">DARPA</a>, but with a civilian rather than military remit. ARIA&#8217;s goal is to fund ambitious research that, if successful, will have a huge positive impact on society. For the last year ARIA has already been funding a lot of my collaborators&#8217; work on <a href="iframe.php?url=https%3A%2F%2Fautomerge.org%2F">Automerge</a> through the <a href="iframe.php?url=https%3A%2F%2Faria.org.uk%2Fopportunity-spaces%2Ftrust-everything-everywhere%2Fsafeguarded-ai%2Ffunded-projects%3FtabId%3Dtooling-platforms%26amp%3BcardId%3Dgaios">Safeguarded AI programme</a>, and now I am extremely grateful for their support for CCTI as well!</p><h2>Introducing CCTI</h2><p>Imagine you&#8217;re a manufacturing company, and you have an AI agent that is tasked with finding a supplier for a particular component you need. Your agent may contact various potential suppliers, even interacting with their agents if they have them. But it&#8217;s a messy world out there. How is your agent supposed to know if the other agents are telling the truth? They might be fraudsters, pretending to have the product you want while actually giving you something else (or nothing at all). If you don&#8217;t already have some sort of prior history or another way of establishing reputation, there is no way for the agents to know whether they can trust each other.</p><p>The traditional economy solves this problem through trusted third parties such as certification bodies, and by using expensive, slow, and manual processes for vetting potential suppliers (for example, flying someone over to inspect their factory in person). But maybe our brave new AI world will allow us to do this faster, cheaper, and more reliably?</p><p>Our hypothesis is that <strong>cryptographic protocols</strong> such as zero-knowledge proofs provide a way for one agent to prove to another that it is telling the truth, but without revealing commercially sensitive data. For example, it would allow a supplier to prove that its products were indeed manufactured using a particular process as claimed. If this works, we believe that it will unlock huge economic opportunities.</p><p>But wait, I hear you ask: cryptography can only prove something about the relationship between one number and another number. How could it ever prove something about the physical world? Well, as it happens, for the last two years my PhD student <a href="iframe.php?url=https%3A%2F%2Fwww.cst.cam.ac.uk%2Fpeople%2Fpsjm3">Jessica</a> and I have already been busy using cryptography to prove things about the physical world, and CCTI is a generalisation of this line of work.</p><p>In our <a href="iframe.php?url=https%3A%2F%2Fdl.acm.org%2Fdoi%2Fpdf%2F10.1145%2F3744255.3811720">Emission Impossible</a> paper, Jessica and I show how the operator of a datacenter could cryptographically prove to its customers what carbon emissions have arisen from each customer&#8217;s use of computing resources in the datacenter. Since it&#8217;s about emissions, it&#8217;s about the physical world. We chose datacenters as the use case for that paper because it allowed us to make some simplifying assumptions; in particular, we considered only electricity as the source of emissions and ignored, say, hardware manufacturing. But in subsequent work we&#8217;ve been chipping away at these assumptions, and generalising the technique to other use cases.</p><p>From the carbon emissions example you can see that we&#8217;re interested in sustainability issues. We have also looked into using similar techniques for other sustainability concerns, such as verifying that agricultural commodities were not grown on recently deforested land (as required by the <a href="iframe.php?url=https%3A%2F%2Fenvironment.ec.europa.eu%2Ftopics%2Fforests%2Fdeforestation%2Fregulation-deforestation-free-products_en">EU Deforestation Regulation</a>). CCTI is broader than this &#8211; we&#8217;re interested in any case of mutually untrusting parties wanting to establish a trust relationship &#8211; but I believe the approach is particularly valuable in the context of sustainability, where companies have a tendency of making dubious claims (&#8220;greenwashing&#8221;), but where accuracy is important if we want to actually achieve our sustainability goals, such as reducing carbon emissions.</p><h2>But how does it work?</h2><p>I will leave a more detailed explanation of our technical approach to another post, but for now I wanted to give a brief outline of how we intend to actually make this work, since otherwise this project may seem outlandish.</p><p>Say you want to prove a property about some physical production process (e.g., that your company&#8217;s steel was manufactured with a low-carbon process, such as <a href="iframe.php?url=https%3A%2F%2Fwww.sciencedirect.com%2Fscience%2Farticle%2Fpii%2FS0959652618326301">direct reduction</a> with green hydrogen and using an electric arc furnace powered by renewable electricity, rather than a blast furnace). Analysing a sample of the material itself may tell you the process, but it does not tell you what carbon intensity was associated with the hydrogen and the electricity. Thus, we need to prove a property that is not directly observable.</p><p>However, indirect facts are observable, and indeed cryptographically attestable. We can download a list of financial transactions from the company&#8217;s bank account, and prove using <a href="iframe.php?url=https%3A%2F%2Ftlsnotary.org%2F">TLSNotary</a> or a similar tool that the transactions are genuine (assuming you trust the bank&#8217;s TLS certificate). We can verifiably associate each financial transaction with a digital invoice, and attach product and emissions data to the invoices. That way, you could prove cryptographically that the steel company did not buy any coke, but it did buy a lot of renewable electricity and a lot of green hydrogen (themselves attested through recursively validated proofs). You also need to prove that the company is not reselling high-emissions steel from another producer. And if you can do that, the result is compelling evidence that the steel is indeed green as claimed.</p><p>Additionally, the proof process could take input from many other sources: sensor data from trusted sensors can be digitally signed, emails can be authenticated via DKIM signatures, company identities can be attested by government websites, and certification bodies can issue digital certificates. All of these cryptographically attested facts can then feed into a big zero-knowledge proof that deduces the fact you want to prove using domain-specific logic.</p><p>There is a lot more to this project &#8211; we are exploring game-theoretic models to help agents establish what further evidence would be needed to come to an agreement, allowing us to weigh up the cost of producing the evidence against the benefits it would bring. We are looking into real-world use cases from several different industries to inform the design of the whole system, and we will use LLM-based prototypes to measure the degree to which cryptographic protocols increase the ability of untrusting agents to establish trust and come to an agreement.</p><p>If that sounds very ambitious &#8211; well, it is. But we think that we have a viable plan for making it happen. And if it works, this project will be hugely impactful, potentially changing the way the world economy works by enabling new business models that would have been infeasible previously. And maybe we can even embed sustainability concerns in every single purchasing decision &#8211; which will be critical for decarbonising the economy.</p><p>CCTI doesn&#8217;t have a website yet, as we&#8217;re just getting started. But we&#8217;ll be writing more about our work as it progresses. Stay tuned!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://martinkl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Martin Kleppmann&#8217;s Blog! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[AI will make formal verification go mainstream]]></title><description><![CDATA[New blog post]]></description><link>https://martinkl.substack.com/p/ai-will-make-formal-verification</link><guid isPermaLink="false">https://martinkl.substack.com/p/ai-will-make-formal-verification</guid><dc:creator><![CDATA[Martin Kleppmann]]></dc:creator><pubDate>Mon, 08 Dec 2025 22:43:16 GMT</pubDate><content:encoded><![CDATA[<p>Hi! You&#8217;re getting this email because you subscribed to my blog posts at <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F">martin.kleppmann.com</a>.</p><p>I just published a short post in which I argue that <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F2025%2F12%2F08%2Fai-formal-verification.html">AI will make formal verification go mainstream</a>. There are three reasons why I think this:</p><ol><li><p>A future where LLMs can write proofs of correctness fully automatically, without human input, seems within reach. That will make formalisation vastly cheaper than it has been for the last few decades.</p></li><li><p>If you generate code using AI, but then have to carefully review it by hand, you don&#8217;t save much time overall. But if the AI proves that the code is correct, you can confidently use it without having to even look at it.</p></li><li><p>LLMs are great at making up plausible-sounding nonsense, but automated proof checkers won&#8217;t be fooled by this, which makes it much safer to use LLMs in this context.</p></li></ol><p>For comments, please find me <a href="iframe.php?url=https%3A%2F%2Fbsky.app%2Fprofile%2Fmartin.kleppmann.com">on Bluesky</a>!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://martinkl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Martin Kleppmann&#8217;s Blog! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Pudding: user discovery for anonymity networks]]></title><description><![CDATA[New paper!]]></description><link>https://martinkl.substack.com/p/pudding-user-discovery-for-anonymity</link><guid isPermaLink="false">https://martinkl.substack.com/p/pudding-user-discovery-for-anonymity</guid><dc:creator><![CDATA[Martin Kleppmann]]></dc:creator><pubDate>Fri, 05 Jul 2024 10:20:25 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Fyoutube%2Fw_728%2Cc_limit%2FEEUdslTwYZ8" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi! You&#8217;re getting this email because you subscribed to my blog posts at <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F">martin.kleppmann.com</a>.</p><p>I&#8217;d like to introduce an exciting new research paper I worked on! It&#8217;s about a system called <a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F2311.10825">Pudding</a>, and it was presented by <a href="iframe.php?url=https%3A%2F%2Ftwitter.com%2Fckocaogullar1">Ceren</a> at the <a href="iframe.php?url=https%3A%2F%2Fsp2024.ieee-security.org">IEEE Symposium on Security and Privacy</a>, one of the top academic conferences on computer security, in May. <a href="iframe.php?url=https%3A%2F%2Fwww.danielhugenroth.com%2F">Daniel</a> and <a href="iframe.php?url=https%3A%2F%2Fwww.cl.cam.ac.uk%2F%7Earb33%2F">Alastair</a> also worked on this project. Ceren&#8217;s presentation <a href="iframe.php?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DEEUdslTwYZ8">is now available</a>:</p><div id="youtube2-EEUdslTwYZ8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;EEUdslTwYZ8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="iframe.php?url=https%3A%2F%2Fwww.youtube-nocookie.com%2Fembed%2FEEUdslTwYZ8%3Frel%3D0%26amp%3Bautoplay%3D0%26amp%3Bshowinfo%3D0%26amp%3Benablejsapi%3D0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Let me briefly explain what the paper is about.</p><p>Anonymity systems allow internet users to hide who is communicating with whom &#8211; for example, think a whistleblower talking to a journalist, or a group of activists organising protests against their repressive regime. <a href="iframe.php?url=https%3A%2F%2Fwww.torproject.org%2F">Tor</a> is the most popular anonymity network; <a href="iframe.php?url=https%3A%2F%2Fnymtech.net%2F">Nym</a> is a more recent design with stronger security (and incidentally, one of the better cryptocurrency applications I&#8217;ve seen). Nym is based on a research system called <a href="iframe.php?url=https%3A%2F%2Fwww.usenix.org%2Fconference%2Fusenixsecurity17%2Ftechnical-sessions%2Fpresentation%2Fpiotrowska">Loopix</a>.</p><p>The trouble with these anonymity networks is that if you want to contact someone, you need to know their public key, and sometimes a bunch of other information as well. In the case of Tor, this is encoded in a &#8220;<a href="iframe.php?url=https%3A%2F%2Fcommunity.torproject.org%2Fonion-services%2F">onion service</a>&#8221; URL, which is an unreadable sequence of random letters and numbers (sometimes service operators use brute force to pick a public key so that the first few letters of the hostname spell out the name of the service, but the rest remains random). In Nym, it&#8217;s an <a href="iframe.php?url=https%3A%2F%2Fnymtech.net%2Fdocs%2Fclients%2Faddressing-system.html">even longer base58 string</a>. How are users supposed to find the correct key for the person they&#8217;re trying to contact? If they send the key via a non-anonymous channel or query a server, they leak the information of who is talking to who, which defeats the entire purpose of the anonymity network.</p><p>Having to manually exchange public keys is a huge step backwards in terms of usability. A big part of why WhatsApp and Signal succeeded in bringing end-to-end encryption to billions of users, while PGP failed, is that today&#8217;s secure messaging apps allow you to find your friends using only a phone number or some other friendly username, while PGP encouraged <a href="iframe.php?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FKey_signing_party">weird, nerdy, in-person meetings</a> for exchanging keys.</p><p>Pudding brings friendly usernames to the Loopix/Nym anonymity networks, so that users don&#8217;t have to deal with long random strings. We used email addresses rather than phone numbers, for reasons explained in the paper, but the idea is the same. The challenge is providing the username lookup in a way that doesn&#8217;t leak who is talking to who. In fact, Pudding even goes further and hides whether a given username is registered to the network or not.</p><p>If you&#8217;re wondering how this work on anonymity relates to my other work on <a href="iframe.php?url=https%3A%2F%2Fcrdt.tech%2F">CRDTs</a>/<a href="iframe.php?url=https%3A%2F%2Fwww.inkandswitch.com%2Flocal-first%2F">local-first software</a>: I see anonymity networks as one possible transport layer on top of which we can build decentralised collaboration software. Not all collaboration apps will need the metadata privacy of an anonymity network, but it&#8217;s nice to be able to support high-risk users, such as investigative journalists, who do have strong security needs.</p><p>If you want to learn more, please <a href="iframe.php?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DEEUdslTwYZ8">watch the talk</a>, <a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F2311.10825">read the paper</a>, or <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fckocaogullar%2Fpudding-protocol">check out the source code</a>! Just note that the implementation is a research prototype and not fit for production use. We&#8217;re hoping that Nym might officially adopt something like Pudding in the future.</p>]]></content:encoded></item><item><title><![CDATA[Bluesky and the AT Protocol: Usable Decentralized Social Media]]></title><description><![CDATA[New paper!]]></description><link>https://martinkl.substack.com/p/bluesky-and-the-at-protocol-usable</link><guid isPermaLink="false">https://martinkl.substack.com/p/bluesky-and-the-at-protocol-usable</guid><dc:creator><![CDATA[Martin Kleppmann]]></dc:creator><pubDate>Wed, 07 Feb 2024 21:32:47 GMT</pubDate><content:encoded><![CDATA[<p>Hi! You&#8217;re getting this email because you subscribed to my blog posts at martin.kleppmann.com.</p><p>Yesterday (sorry for not sending the announcement sooner) the <a href="iframe.php?url=https%3A%2F%2Fbsky.social%2Fabout">Bluesky</a> team and I published a paper that&#8217;s a bit like a long blog post in PDF format. It&#8217;s called &#8220;<a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F2402.03239">Bluesky and the AT Protocol: Usable Decentralized Social Media</a>&#8221;; it describes the architecture and of the Bluesky social network and the underlying AT Protocol, and more importantly, it explains the rationale of why things are designed that way. The paper is a result of me advising the Bluesky team over the course of the last two years.</p><p>Social media requires lots of difficult choices, because humans are complicated, but I believe Bluesky does a really good job of balancing the trade-offs. It&#8217;s also getting quite popular, having just jumped from about 3 million to 4 million users yesterday! You can find me at <a href="iframe.php?url=https%3A%2F%2Fbsky.app%2Fprofile%2Fmartin.kleppmann.com">@martin.kleppmann.com</a>.</p>]]></content:encoded></item><item><title><![CDATA[My year 2023 in review]]></title><description><![CDATA[New blog post!]]></description><link>https://martinkl.substack.com/p/my-year-2023-in-review</link><guid isPermaLink="false">https://martinkl.substack.com/p/my-year-2023-in-review</guid><dc:creator><![CDATA[Martin Kleppmann]]></dc:creator><pubDate>Thu, 04 Jan 2024 13:35:01 GMT</pubDate><content:encoded><![CDATA[<p>Hi! You&#8217;re getting this email because you subscribed to my blog posts at martin.kleppmann.com. It&#8217;s been a long time since my last post.</p><p>I just posted a review of my year 2023 on my blog: <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F2024%2F01%2F04%2Fyear-in-review.html">https://martin.kleppmann.com/2024/01/04/year-in-review.html</a></p><p>It&#8217;s been an eventful year: my wife and I had a baby, I got a new job (faculty in Cambridge), my industrial collaborations with Automerge and Bluesky have been very successful, local-first software is catching on, I&#8217;ve made some progress with the second edition of my book, I organised events and gave talks, and I have published a couple of new research papers.</p><p>Hope you have a good 2024!</p>]]></content:encoded></item><item><title><![CDATA[Verifying distributed systems with Isabelle/HOL]]></title><description><![CDATA[Hi there!]]></description><link>https://martinkl.substack.com/p/verifying-distributed-systems-with</link><guid isPermaLink="false">https://martinkl.substack.com/p/verifying-distributed-systems-with</guid><dc:creator><![CDATA[Martin Kleppmann]]></dc:creator><pubDate>Wed, 12 Oct 2022 12:56:10 GMT</pubDate><content:encoded><![CDATA[<p>Hi there! Not posted for a while. In case you&#8217;re wondering, you&#8217;re getting this email because you subscribed to my blog posts at <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F">martin.kleppmann.com</a>.</p><p>There&#8217;s a new post on my blog: &#8220;<a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F2022%2F10%2F12%2Fverifying-distributed-systems-isabelle.html">Verifying distributed systems with Isabelle/HOL</a>&#8221;. In this post, I share we&#8217;ve learnt about formally proving the correctness of distributed systems algorithms using the Isabelle proof assistant. This is software that can automatically check whether your proofs are correct.</p><p>Isabelle doesn&#8217;t have any built-in support for distributed systems, but fortunately it&#8217;s not too difficult to model a distributed system using the built-in primitives of Isabelle/HOL (one of the standard libraries for Isabelle). This post shows how it&#8217;s done.</p><p><a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F2022%2F10%2F12%2Fverifying-distributed-systems-isabelle.html">https://martin.kleppmann.com/2022/10/12/verifying-distributed-systems-isabelle.html</a></p><p>It&#8217;s a blog version of a <a href="iframe.php?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DUav5jWHNghY">video</a> I made a few years ago. It&#8217;s also cross-posted on <a href="iframe.php?url=https%3A%2F%2Flawrencecpaulson.github.io%2F2022%2F10%2F12%2Fverifying-distributed-systems-isabelle.html">Larry Paulson&#8217;s blog</a> (he&#8217;s one of the creators of Isabelle).</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://martinkl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Martin Kleppmann&#8217;s Blog! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Book Review: The Future of Fusion Energy]]></title><description><![CDATA[Happy new year!]]></description><link>https://martinkl.substack.com/p/book-review-the-future-of-fusion</link><guid isPermaLink="false">https://martinkl.substack.com/p/book-review-the-future-of-fusion</guid><dc:creator><![CDATA[Martin Kleppmann]]></dc:creator><pubDate>Mon, 03 Jan 2022 15:08:07 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21c-Nn%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%252Fpublic%252Fimages%252F39de98cd-209f-4da8-bb24-051f7201e176_800x1067.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Happy new year! Today&#8217;s <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F2022%2F01%2F03%2Ffuture-of-fusion-energy.html">blog post</a> is a short review of a popular science book on fusion energy (<em><a href="iframe.php?url=https%3A%2F%2Famzn.to%2F3sUypW6">The Future of Fusion Energy</a></em> by Jason Parisi and Justin Ball).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21c-Nn%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%252Fpublic%252Fimages%252F39de98cd-209f-4da8-bb24-051f7201e176_800x1067.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c-Nn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F39de98cd-209f-4da8-bb24-051f7201e176_800x1067.jpeg 424w, https://substackcdn.com/image/fetch/$s_!c-Nn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F39de98cd-209f-4da8-bb24-051f7201e176_800x1067.jpeg 848w, https://substackcdn.com/image/fetch/$s_!c-Nn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F39de98cd-209f-4da8-bb24-051f7201e176_800x1067.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!c-Nn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F39de98cd-209f-4da8-bb24-051f7201e176_800x1067.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21c-Nn%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%252Fpublic%252Fimages%252F39de98cd-209f-4da8-bb24-051f7201e176_800x1067.jpeg" width="366" height="488.1525" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/39de98cd-209f-4da8-bb24-051f7201e176_800x1067.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:null,&quot;height&quot;:1067,&quot;width&quot;:800,&quot;resizeWidth&quot;:366,&quot;bytes&quot;:236869,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!c-Nn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F39de98cd-209f-4da8-bb24-051f7201e176_800x1067.jpeg 424w, https://substackcdn.com/image/fetch/$s_!c-Nn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F39de98cd-209f-4da8-bb24-051f7201e176_800x1067.jpeg 848w, https://substackcdn.com/image/fetch/$s_!c-Nn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F39de98cd-209f-4da8-bb24-051f7201e176_800x1067.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!c-Nn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F39de98cd-209f-4da8-bb24-051f7201e176_800x1067.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>For a while I&#8217;ve been looking for a book that would explain what, precisely, the obstacles to using fusion for commercial power generation are &#8212;&nbsp;a technology that has been hyped for decades, but seemingly never produced convincing results. This book is exactly what I was looking for: enough technical detail to get informed about the state of the technology, but still accessible to non-physicists.</p><p>See my <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F2022%2F01%2F03%2Ffuture-of-fusion-energy.html">blog post for the details</a>.</p><p>Cheers,<br>Martin</p>]]></content:encoded></item><item><title><![CDATA[Peritext: A CRDT for Rich-Text Collaboration]]></title><description><![CDATA[Our new paper just landed!]]></description><link>https://martinkl.substack.com/p/peritext-a-crdt-for-rich-text-collaboration</link><guid isPermaLink="false">https://martinkl.substack.com/p/peritext-a-crdt-for-rich-text-collaboration</guid><dc:creator><![CDATA[Martin Kleppmann]]></dc:creator><pubDate>Wed, 24 Nov 2021 11:05:28 GMT</pubDate><content:encoded><![CDATA[<p>Google Docs is great if you want to collaborate synchronously: that is, if you want every keystroke to be seen immediately by your collaborators. But that&#8217;s not always what users want. Sometimes it&#8217;s better to work in isolation for a while, and to share your work when it&#8217;s ready. We call this <em>asynchronous</em> collaboration.</p><p>When several people work on a document asynchronously, at some point the time comes when you want to merge those changes, and that&#8217;s where things get difficult. Our latest paper, on <a href="iframe.php?url=https%3A%2F%2Fwww.inkandswitch.com%2Fperitext%2F">Peritext</a>, addresses this problem. It allows several users&#8217; edits to a rich-text document to be merged while preserving each user&#8217;s edits as much as possible. Peritext brings a Git-like collaboration model (with arbitrary branching and merging) to rich text, but without manual resolution of merge conflicts.</p><p>Besides the <a href="iframe.php?url=https%3A%2F%2Fwww.inkandswitch.com%2Fperitext%2F">article</a>, our prototype implementation is also <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Finkandswitch%2Fperitext">open source</a>. Hope you find it interesting!</p>]]></content:encoded></item><item><title><![CDATA[Several podcast interviews]]></title><description><![CDATA[I have given a bunch of interviews for podcasts lately &#8212; three interviews just this summer, and about a dozen over the last couple of years, covering a range of topics.]]></description><link>https://martinkl.substack.com/p/several-podcast-interviews</link><guid isPermaLink="false">https://martinkl.substack.com/p/several-podcast-interviews</guid><dc:creator><![CDATA[Martin Kleppmann]]></dc:creator><pubDate>Wed, 01 Sep 2021 11:05:17 GMT</pubDate><content:encoded><![CDATA[<p>I have given a bunch of interviews for podcasts lately &#8212;&nbsp;three interviews just this summer, and about a dozen over the last couple of years, covering a range of topics. To make them more easily discoverable for anyone who is interested, I have just published a <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F2021%2F09%2F01%2Fpodcast-interviews.html">blog post</a> containing a list of those interviews.</p><p>You can find it here: <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F2021%2F09%2F01%2Fpodcast-interviews.html">https://martin.kleppmann.com/2021/09/01/podcast-interviews.html</a></p><p>Just don&#8217;t listen to them all at once &#8212;&nbsp;you&#8217;ll get sick of me droning on and on!</p><p>&#8212;&nbsp;Martin</p>]]></content:encoded></item><item><title><![CDATA[Harm reduction for cryptographic backdoors]]></title><description><![CDATA[We keep hearing from law enforcement and politicians that end-to-end encryption creates safe spaces for child abusers and other terrible people, and counterarguments from information security people that it would be unacceptable to weaken the security of these systems.]]></description><link>https://martinkl.substack.com/p/harm-reduction-for-cryptographic</link><guid isPermaLink="false">https://martinkl.substack.com/p/harm-reduction-for-cryptographic</guid><dc:creator><![CDATA[Martin Kleppmann]]></dc:creator><pubDate>Fri, 16 Jul 2021 18:58:22 GMT</pubDate><content:encoded><![CDATA[<p>We keep hearing from law enforcement and politicians that end-to-end encryption creates safe spaces for child abusers and other terrible people, and counterarguments from information security people that it would be unacceptable to weaken the security of these systems. The debate has kept repeating over the last 30 years.</p><p>My <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F2021%2F07%2F16%2Fcryptographic-backdoors-hotpets.html">latest blog post</a> is a short paper that I presented today at the 14th Workshop on Hot Topics in Privacy Enhancing Technologies (<a href="iframe.php?url=https%3A%2F%2Fpetsymposium.org%2F2021%2Fhotpets.php">HotPETs 2021</a>). It&#8217;s a proposal for a potential compromise: a way of adding a backdoor to end-to-end encrypted communication systems without opening the door to mass surveillance.</p><p>You can find it here: <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F2021%2F07%2F16%2Fcryptographic-backdoors-hotpets.html">https://martin.kleppmann.com/2021/07/16/cryptographic-backdoors-hotpets.html</a></p><p>I expect this is going to be controversial! Constructive responses welcome as always.</p><p>&#8212;&nbsp;Martin</p>]]></content:encoded></item><item><title><![CDATA[It’s time to say goodbye to the GPL]]></title><description><![CDATA[In my latest blog post I reflect on the FSF&#8217;s role in today&#8217;s software ecosystem, in particular as the steward of the GNU General Public License (GPL), the software license used e.g.]]></description><link>https://martinkl.substack.com/p/its-time-to-say-goodbye-to-the-gpl</link><guid isPermaLink="false">https://martinkl.substack.com/p/its-time-to-say-goodbye-to-the-gpl</guid><dc:creator><![CDATA[Martin Kleppmann]]></dc:creator><pubDate>Mon, 19 Apr 2021 09:36:49 GMT</pubDate><content:encoded><![CDATA[<p>In <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F2021%2F04%2F14%2Fgoodbye-gpl.html">my latest blog post</a> I reflect on the FSF&#8217;s role in today&#8217;s software ecosystem, in particular as the steward of the GNU General Public License (GPL), the software license used e.g. by Linux. I argue that the GPL and related licenses have failed to achieve their goal of improving the freedom of software users, explain why freedom has in fact become worse since the 1980s and 1990s in which the GPL originated, and suggest what we can do about it.</p><p>You can find it here: <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F2021%2F04%2F14%2Fgoodbye-gpl.html">https://martin.kleppmann.com/2021/04/14/goodbye-gpl.html</a></p><p>Please let me know your thoughts!</p><p>(Sorry that this email notification is delayed by a few days &#8212;&nbsp;I was having some trouble with Substack.)</p><p>&#8212;&nbsp;Martin</p>]]></content:encoded></item><item><title><![CDATA[Building the future of computing, with your help]]></title><description><![CDATA[Hi everyone!]]></description><link>https://martinkl.substack.com/p/building-the-future-of-computing</link><guid isPermaLink="false">https://martinkl.substack.com/p/building-the-future-of-computing</guid><dc:creator><![CDATA[Martin Kleppmann]]></dc:creator><pubDate>Tue, 23 Feb 2021 20:43:24 GMT</pubDate><content:encoded><![CDATA[<p>Hi everyone! First of all, if you have been subscribed to my blog posts for a while, you will notice that this email looks different from usual. That&#8217;s because I have moved the email setup over to <a href="iframe.php?url=https%3A%2F%2Fmartinkl.substack.com%2F">Substack</a>. I have experimented with several email services, and found them either rather expensive or bad in terms of getting emails marked as spam. Let&#8217;s hope this one is better!</p><p>Substack is actually a service for sending email newsletters. However, I am not planning to change my blog into a newsletter, since I like my <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F">self-hosted setup</a>. I am simply using it as a way of sending email notifications about new blog posts to anyone who wants to receive them.</p><p>If you no longer want to receive these messages, apologies for the intrusion, and there should be a link at the bottom to unsubscribe.</p><p><strong>New blog post: Building the future of computing, with your help</strong></p><p>Moving on to today&#8217;s actual news. I have <a href="iframe.php?url=https%3A%2F%2Fwww.patreon.com%2Fmartinkl">launched a Patreon account</a>! Since most of my work is given away for free (conference talks, educational videos, research papers, open source code, blog posts), I rely on other sources of funding. At the moment I am funded by a charitable research grant, but this is a non-renewable fixed-term contract, and so I am looking to Patreon as a way of hopefully building up a sustainable income that will allow me to continue doing my work when this contract ends.</p><p><a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F2021%2F02%2F23%2Fpatreon.html">My blog post</a> goes into more details on what I am planning to do over the next few years, and the <a href="iframe.php?url=https%3A%2F%2Fwww.patreon.com%2Fmartinkl">Patreon profile</a> details what you get in return for supporting me. Think of it not as a donation, but as an investment in my future work. I aim to give you a good return on your investment through producing teaching materials and research that you will hopefully find useful. I will continue giving away most of my work for free, but as a supporter on Patreon you will be the first to see any new work as it is created.</p><p>If you have found my work useful &#8211; for example, if you have applied ideas from my talks in your work, or if my book helped you get a job &#8211; then I would be especially delighted to welcome you as a supporter on Patreon!</p><p>Thanks for your support and best wishes,</p><p>Martin</p>]]></content:encoded></item><item><title><![CDATA[Notification when I write a new blog post at martin.kleppmann.com]]></title><description><![CDATA[Welcome to Martin Kleppmann&#8217;s blog.]]></description><link>https://martinkl.substack.com/p/coming-soon</link><guid isPermaLink="false">https://martinkl.substack.com/p/coming-soon</guid><dc:creator><![CDATA[Martin Kleppmann]]></dc:creator><pubDate>Thu, 14 Jan 2021 12:43:15 GMT</pubDate><content:encoded><![CDATA[<p>Welcome to Martin Kleppmann&#8217;s blog. I&#8217;m a researcher in distributed systems at the University of Cambridge, and author of <a href="iframe.php?url=https%3A%2F%2Fdataintensive.net%2F">Designing Data-Intensive Applications</a>.</p><p>I&#8217;ve set up Substack as a way of sending notification emails when I write something new on my blog, <a href="iframe.php?url=https%3A%2F%2Fmartin.kleppmann.com%2F">martin.kleppmann.com</a>. I mostly write about distributed systems, databases, and information security. My blog posts are infrequent (typically a handful per year) so this is a very low-volume email list.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://martinkl.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fmartinkl.substack.com%2Fsubscribe%3F"><span>Subscribe now</span></a></p><p>You can also <a href="iframe.php?url=https%3A%2F%2Fmartinkl.substack.com%2Fp%2Fcoming-soon%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare">tell your friends</a>!</p>]]></content:encoded></item></channel></rss>