<?xml version='1.0' encoding='utf-8'?>
<rss version="2.0">
  <channel>
    <title>Pieter Wuille</title>
    <link>https://wuille.net</link>
    <description>Posts by Pieter Wuille</description>
    <lastBuildDate>Thu, 16 Apr 2026 00:00:00 +0000</lastBuildDate>
    <item>
      <title>Efficient division-free randomness extraction</title>
      <link>https://wuille.net/posts/binomial-randomness-extractors/</link>
      <guid>https://wuille.net/posts/binomial-randomness-extractors/</guid>
      <pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate>
      <description>This post introduces an approach for [randomness extraction](https://en.wikipedia.org/wiki/Randomness_extractor) from sequences of independent observations from an *unknown* but unchanging probability distribution (including coin tosses, dice rolls, thermal noise observations, ...). It only requires basic arithmetic ($+$, $-$, $\times$) and a *count trailing zeroes* (ctz) operation on fixed-width integers, and can be implemented without table lookups or other timing side-channels. Variants are provided for binary and multi-valued input symbols. We analyze how much entropy it can extract, and its performance.
&lt;p&gt;&lt;a href="https://wuille.net/posts/binomial-randomness-extractors/"&gt;Read more…&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>libsecp256k1 tutorial</title>
      <link>https://wuille.net/posts/secp256k1-tutorial/</link>
      <guid>https://wuille.net/posts/secp256k1-tutorial/</guid>
      <pubDate>Sun, 22 Jun 2025 00:00:00 +0000</pubDate>
      <description>This is a summary on groups and fields as abstract mathematical objects, and the properties that will be relevant to us. It's something between a cheat sheet and a full course, without proofs or rigorous theorems, but there are links for further reading.
&lt;p&gt;&lt;a href="https://wuille.net/posts/secp256k1-tutorial/"&gt;Read more…&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bitcoin's steady-state difficulty adjustment</title>
      <link>https://wuille.net/posts/bitcoin-difficulty-adjustment/</link>
      <guid>https://wuille.net/posts/bitcoin-difficulty-adjustment/</guid>
      <pubDate>Thu, 30 Jun 2022 00:00:00 +0000</pubDate>
      <description>In this document, we analyze the probabilistic behavior of Bitcoin's difficulty adjustment rules under the following assumptions:
&lt;p&gt;&lt;a href="https://wuille.net/posts/bitcoin-difficulty-adjustment/"&gt;Read more…&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Private authentication protocols</title>
      <link>https://wuille.net/posts/private-authentication-protocols/</link>
      <guid>https://wuille.net/posts/private-authentication-protocols/</guid>
      <pubDate>Tue, 17 May 2022 00:00:00 +0000</pubDate>
      <description>Authentication protocols are used to verify that network connections are not being monitored through a man-in-the-middle attack (MitM). But the commonly used constructions for authentication&amp;mdash;often some framework surrounding a digital signature or key exchange protocol&amp;mdash;reveal considerable amounts of identifying information to the participants (and MitMs). This information can potentially be used to track otherwise anonymous users around the network and correlate users across multiple services, if keys are reused.
&lt;p&gt;&lt;a href="https://wuille.net/posts/private-authentication-protocols/"&gt;Read more…&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Elligator Squared for BN-like curves</title>
      <link>https://wuille.net/posts/elligator-square-for-bn/</link>
      <guid>https://wuille.net/posts/elligator-square-for-bn/</guid>
      <pubDate>Sun, 10 Oct 2021 00:00:00 +0000</pubDate>
      <description>This document explains how to efficiently implement the Elligator Squared algorithm for BN curves and BN-like curves like `secp256k1`.
&lt;p&gt;&lt;a href="https://wuille.net/posts/elligator-square-for-bn/"&gt;Read more…&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Extracting multiple uniform numbers from a hash</title>
      <link>https://wuille.net/posts/uniform-range-extraction/</link>
      <guid>https://wuille.net/posts/uniform-range-extraction/</guid>
      <pubDate>Sat, 17 Jul 2021 00:00:00 +0000</pubDate>
      <description>This document introduces a technique for extracting multiple numbers in any range from a single hash function result, while optimizing for various uniformity properties.
&lt;p&gt;&lt;a href="https://wuille.net/posts/uniform-range-extraction/"&gt;Read more…&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Minimizing the redundancy in Golomb Coded Sets</title>
      <link>https://wuille.net/posts/minimizing-golomb-filters/</link>
      <guid>https://wuille.net/posts/minimizing-golomb-filters/</guid>
      <pubDate>Thu, 24 May 2018 00:00:00 +0000</pubDate>
      <description>A Golomb Coded Set (GCS) is a set of $N$ distinct integers within the range $[0..MN-1]$, whose order does not matter, and stored by applying a Golomb-Rice coder with parameter $B$ to the differences between subsequent elements after sorting. When the integers are hashes of elements from a set, this is an efficient encoding of a probabilistic data structure with false positive rate $1/M$. It is asymptotically $1 / \log(2)$ (around 1.44) times more compact than Bloom filters, but harder to update or query.
&lt;p&gt;&lt;a href="https://wuille.net/posts/minimizing-golomb-filters/"&gt;Read more…&lt;/a&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>