<?xml version="1.0" encoding="UTF-8" ?> <?xml-stylesheet type="text/xsl" href="rss.xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title>anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</title><description>Taiwan-anchored volunteer observatory tracking networked freedom across the Sinophone Asia-Pacific region — OONI measurements, Tor relay monitoring, and on-the-ground community context.</description><link>https://ipfs.anoni.net/en/</link><atom:link href="https://ipfs.anoni.net/en/feed_rss_created.xml" rel="self" type="application/rss+xml" /> <managingEditor>anoni.net Volunteer</managingEditor><docs>https://github.com/anoni-net/docs</docs><language>en</language> <pubDate>Wed, 26 Aug 2026 09:24:12 -0000</pubDate> <lastBuildDate>Wed, 26 Aug 2026 09:24:12 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.19.0</generator> <image> <url>None</url> <title>anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</title> <link>https://ipfs.anoni.net/en/</link> </image> <item> <title>Eight new tools on the docs site, all running in the reader&#39;s own browser</title> <author>anoni.net Community</author> <category>Community</category> <category>Privacy</category> <category>Technology</category> <description>&lt;h1 id=&#34;Eight-new-tools-on-the-docs-site-all-running-in-the-readers-own-browser&#34;&gt;Eight new tools on the docs site, all running in the reader&#39;s own browser&lt;a class=&#34;headerlink&#34; href=&#34;#Eight-new-tools-on-the-docs-site-all-running-in-the-readers-own-browser&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;We are a group of volunteers working on anonymity networks and internet freedom, based in Taiwan. We maintain &lt;a href=&#34;../../../../&#34;&gt;this documentation site&lt;/a&gt;, a practical guide to privacy and anonymity sorted by scenario for everyday life, sensitive work and high risk.&lt;/p&gt; &lt;p&gt;The articles on this site explain how to protect yourself. The &lt;a href=&#34;../../../../utils/&#34;&gt;tools section&lt;/a&gt; holds the things you can actually press. All eight compute in the reader&#39;s browser, send nothing anywhere, and keep working with the network off once stored on a device.&lt;/p&gt; &lt;p&gt;&lt;img alt=&#34;The tools index, eight cards each naming a tool and what it is for&#34; src=&#34;https://assets.anoni.net/blog/utils-index-en.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;It-started-with-photo-metadata&#34;&gt;It started with photo metadata&lt;a class=&#34;headerlink&#34; href=&#34;#It-started-with-photo-metadata&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href=&#34;../../../../basics/metadata/&#34;&gt;What metadata is&lt;/a&gt; covers how a photograph carries capture time, camera model and GPS coordinates, and how stripping EXIF before uploading is the cheapest protection available to anyone today.&lt;/p&gt; &lt;p&gt;Almost every online remover asks you to upload the file first, and the people who need one are the people who should least be handing over an original. Password generators, QR code readers and URL cleaners share the same contradiction: the thing you want to process is the thing that should not leave your hands.&lt;/p&gt; &lt;p&gt;Moving the computation into the reader&#39;s own browser resolves it, at the cost of staying inside what a browser can do. Anything that needs an external service to work stays out of this section. For network measurement use &lt;a href=&#34;../../../../tools/what-is-ooni/&#34;&gt;OONI Probe&lt;/a&gt;, which is built for that purpose and publishes how it handles the data.&lt;/p&gt; &lt;p&gt;The eight look unrelated, and one test decides what gets in: the thing being processed is itself something that should not leave your hands. Coordinates inside a photo, a master password just generated, a QR code nobody has checked, a document that may carry a mark, a checklist that states who you are defending against, none of them belong on someone else&#39;s server. The threat model checklist and the invisible character detector sit further from the metadata starting point, and they are in for the same reason.&lt;/p&gt; &lt;h2 id=&#34;Four-rules-that-apply-to-all-eight&#34;&gt;Four rules that apply to all eight&lt;a class=&#34;headerlink&#34; href=&#34;#Four-rules-that-apply-to-all-eight&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Computed on your device&lt;/strong&gt;: everything happens in the browser, and nothing is sent anywhere&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Works offline&lt;/strong&gt;: once stored on a device the tools run with the network off, whether the domain is blocked, the connection is cut, or there is no signal at all&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Source is public&lt;/strong&gt;: the code sits in &lt;a href=&#34;https://github.com/anoni-net/docs/tree/main/docs/zh-TW/js&#34; target=&#34;_blank&#34;&gt;anoni-net/docs&lt;/a&gt;, so anyone who reads code can verify it&lt;/li&gt; &lt;li&gt;&lt;strong&gt;JavaScript required&lt;/strong&gt;: the computation runs on the reader&#39;s device, so the pages do nothing when JavaScript is disabled&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;To check the first rule yourself, open the network panel in your browser&#39;s developer tools, run any of the tools over some data, and watch for outbound requests. It takes under a minute, which is faster than reading the source.&lt;/p&gt; &lt;h2 id=&#34;One-conflict-if-you-use-Tor-Browser&#34;&gt;One conflict if you use Tor Browser&lt;a class=&#34;headerlink&#34; href=&#34;#One-conflict-if-you-use-Tor-Browser&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Setting &lt;a href=&#34;../../../../tools/tor-browser-advanced/&#34;&gt;Tor Browser&#39;s security level&lt;/a&gt; to Safest disables JavaScript, and all eight tools stop responding. The conflict is that the same guidance recommends raising the level for phishing links of unknown origin and unfamiliar domains, and receiving a suspicious link is exactly when you would want the invisible character detector or the QR code reader.&lt;/p&gt; &lt;p&gt;Handle the two separately. Open the suspicious site at the higher level, copy out the text or image, switch back to Standard to examine it, then raise the level again. The tools make no outbound connections, so opening them at Standard adds nothing to your exposure on that site.&lt;/p&gt; &lt;h2 id=&#34;Start-by-answering-three-questions&#34;&gt;Start by answering three questions&lt;a class=&#34;headerlink&#34; href=&#34;#Start-by-answering-three-questions&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The &lt;a href=&#34;../../../../utils/threat-model/&#34;&gt;threat model checklist&lt;/a&gt; turns &#34;what are you protecting, who from, and what will you spend&#34; into a copyable plain-text summary, along with a list of pages to read first. The tiers match &lt;a href=&#34;../../../../basics/threat-model/&#34;&gt;how to build a threat model&lt;/a&gt; exactly: four asset classes, six adversary levels, three cost levels.&lt;/p&gt; &lt;p&gt;Each answer looks reasonable on its own, and together they may not be. The checklist flags the combinations that do not add up: a state-level adversary against the lowest cost tier, protecting yourself from someone close without listing your devices, defending against casual bystanders while planning to rebuild your whole workflow.&lt;/p&gt; &lt;p&gt;&lt;img alt=&#34;The threat model checklist being filled in, with three questions covering what to protect, who to protect against, and how much to spend, each as a list of checkboxes&#34; src=&#34;https://assets.anoni.net/blog/utils-threat-model-en.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;Answers stay in that browser tab. Nothing is written to localStorage, IndexedDB or cookies, and reloading clears everything. &#34;The person I am protecting myself from is my partner&#34; is the last thing that should be left on a device, and that device is very likely within the other person&#39;s reach. To keep a copy, press the copy button and paste it somewhere you chose. A test in &lt;code&gt;tools/test_threatmodel.mjs&lt;/code&gt; guards that nothing is persisted, so nobody adds storage later for convenience.&lt;/p&gt; &lt;p&gt;&lt;img alt=&#34;The result the checklist produces, with two mismatches flagged at the top, suggested reading in the middle, and a plain-text summary that can be copied whole&#34; src=&#34;https://assets.anoni.net/blog/utils-threat-model-result-en.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;The best moment to open it is when you have just joined a group, been told to take security seriously, and have no idea where to start. Answer it again after changing jobs, moving city, taking up a new issue, or living through a security incident.&lt;/p&gt; &lt;h2 id=&#34;Things-you-hand-to-someone-else&#34;&gt;Things you hand to someone else&lt;a class=&#34;headerlink&#34; href=&#34;#Things-you-hand-to-someone-else&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;h3 id=&#34;Passphrase-and-password-generator&#34;&gt;Passphrase and password generator&lt;a class=&#34;headerlink&#34; href=&#34;#Passphrase-and-password-generator&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The &lt;a href=&#34;../../../../utils/passphrase/&#34;&gt;passphrase and password generator&lt;/a&gt; draws from the 7776-word &lt;a href=&#34;../../../../tools/asian-diceware/&#34;&gt;asian-diceware&lt;/a&gt; list, or draws a random password from the character sets you tick. Randomness in both modes comes from &lt;code&gt;crypto.getRandomValues&lt;/code&gt;, and sampling discards the remainder that does not divide evenly and redraws, so every word has exactly the same chance. Six words is roughly 77.5 bits, and the page states the figure.&lt;/p&gt; &lt;p&gt;&lt;img alt=&#34;The passphrase generator with a six-word passphrase, showing about 77.5 bits of entropy and marking it strong enough for important accounts&#34; src=&#34;https://assets.anoni.net/blog/utils-passphrase-en.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;If you suspect the computer in front of you has been tampered with, switch to the physical dice mode. The word list is itself the encoding: the first word is &lt;code&gt;11111&lt;/code&gt; and the last is &lt;code&gt;66666&lt;/code&gt;. Roll five dice, press the numbers as they land, and each round looks up one word. The randomness comes from your own hands and the program is reduced to a lookup table. Downloading the full table gives you 7776 lines of plain text, after which the page is no longer needed.&lt;/p&gt; &lt;p&gt;&lt;img alt=&#34;The physical dice mode, six rounds of rolls resolving to oolong, boba, tofu, lantern, bamboo and harbor&#34; src=&#34;https://assets.anoni.net/blog/utils-passphrase-dice-en.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;Master passwords for a password manager and disk encryption passphrases, the ones you set once and keep for years, are what this is for. After copying, overwrite the clipboard with something unrelated, since phone clipboards are commonly shared across apps.&lt;/p&gt; &lt;h3 id=&#34;QR-code-generator&#34;&gt;QR code generator&lt;a class=&#34;headerlink&#34; href=&#34;#QR-code-generator&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The &lt;a href=&#34;../../../../utils/qrcode/&#34;&gt;QR code generator&lt;/a&gt; turns a long, easily mistyped string into a code the person in front of you can read with a camera. A registration link, a handout URL, a one-off contact detail all work, as do a 56-character onion address and a bridge line carrying an IP and a fingerprint. Nothing passes through a server and no message history is left behind.&lt;/p&gt; &lt;p&gt;&lt;img alt=&#34;The QR code generator turning an onion address into a code, with version 5, a 37 by 37 grid and 70 bytes noted underneath&#34; src=&#34;https://assets.anoni.net/blog/utils-qrcode-en.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;A QR code carries plaintext. Anyone who photographs the image can read it, including the camera on the wall and the person behind you. Anything that must stay confidential belongs in an &lt;a href=&#34;../../../../tools/messaging-comparison/&#34;&gt;end-to-end encrypted channel&lt;/a&gt;. When printing, set error correction to Q or H, because paper creases and gets dirty.&lt;/p&gt; &lt;p&gt;The moment it earns its place is handing a link to someone in the room when the network is not convenient. Passing a bridge line to a workshop participant is the classic case: read it aloud and neither of you is sure whether that was a capital O or a zero, whereas showing a QR code to scan gets it right the first time.&lt;/p&gt; &lt;h2 id=&#34;When-something-arrives-from-an-unknown-source&#34;&gt;When something arrives from an unknown source&lt;a class=&#34;headerlink&#34; href=&#34;#When-something-arrives-from-an-unknown-source&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;h3 id=&#34;QR-code-reader&#34;&gt;QR code reader&lt;a class=&#34;headerlink&#34; href=&#34;#QR-code-reader&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The &lt;a href=&#34;../../../../utils/qr-read/&#34;&gt;QR code reader&lt;/a&gt; decodes the image in your browser, and the image never leaves the device. When the payload is a URL it isolates the hostname and deliberately offers no button to open it, so you confirm the host before pasting it into a browser yourself.&lt;/p&gt; &lt;p&gt;&lt;img alt=&#34;The QR code reader decoding a set of Wi-Fi credentials, with the fields broken out into network name, encryption and password, the password masked with dots&#34; src=&#34;https://assets.anoni.net/blog/utils-qr-read-en.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;Wi-Fi credentials, two-factor enrolments, prefilled mail and SMS, coordinates and vCards are all recognised, the fields are broken out and labelled, and passwords are masked by default. A &lt;code&gt;nopass&lt;/code&gt; Wi-Fi network, an &lt;code&gt;otpauth:&lt;/code&gt; payload carrying a &lt;code&gt;secret&lt;/code&gt;, and anything starting with &lt;code&gt;javascript:&lt;/code&gt; each get an extra warning, because pressing those has consequences quite unlike opening an ordinary link.&lt;/p&gt; &lt;p&gt;A QR code sticker on a parking meter that looks no different from the real one, or a business card handed over by someone you just met, are both worth checking before acting on.&lt;/p&gt; &lt;h3 id=&#34;Invisible-character-detector&#34;&gt;Invisible character detector&lt;a class=&#34;headerlink&#34; href=&#34;#Invisible-character-detector&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The &lt;a href=&#34;../../../../utils/invisible/&#34;&gt;invisible character detector&lt;/a&gt; finds zero-width characters, bidirectional controls, tag characters and homoglyphs mixed in with Latin letters, marking where they sit and explaining what each class is.&lt;/p&gt; &lt;p&gt;&lt;img alt=&#34;The invisible character detector, with two zero-width spaces, a Cyrillic letter impersonating a domain and four tag characters highlighted in orange in the sample text, each class explained underneath&#34; src=&#34;https://assets.anoni.net/blog/utils-invisible-en.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;An organisation sends a document to twenty people, each copy carrying a different combination of zero-width characters in different places. The copies look identical, and once one leaks, comparing them identifies which. A journalist who shows the original or pastes an exact passage while checking with the organisation hands the source straight to the people looking for them. The full scenario is in &lt;a href=&#34;../../../../scenarios/journalist/&#34;&gt;protecting journalistic sources&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;The other use of invisible characters is hiding a whole instruction inside text that reads as normal. A person cannot see it and a model can, so scanning untrusted text before pasting it into an AI assistant costs about ten seconds.&lt;/p&gt; &lt;p&gt;The result proves presence, never absence. Zero-width characters are the crudest form of marking, and synonym swaps, blank-line counts, punctuation tweaks and PDF kerning all evade detection, while colour laser printers add a yellow dot grid encoding the printer serial and the time to every page. For genuinely sensitive documents the right move is retyping or paraphrasing rather than passing the original file along.&lt;/p&gt; &lt;p&gt;The community position is to teach detection and not insertion. The same zero-width characters serve a legitimate need when an organisation protects internal documents and become an instrument of oppression when they are used to find a whistleblower, so the tool will not generate marked copies, and the sample text is fixed rather than something you can replace with your own.&lt;/p&gt; &lt;h2 id=&#34;Before-you-send-something-out&#34;&gt;Before you send something out&lt;a class=&#34;headerlink&#34; href=&#34;#Before-you-send-something-out&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;h3 id=&#34;File-metadata-stripper&#34;&gt;File metadata stripper&lt;a class=&#34;headerlink&#34; href=&#34;#File-metadata-stripper&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The &lt;a href=&#34;../../../../utils/strip-metadata/&#34;&gt;file metadata stripper&lt;/a&gt; removes EXIF, XMP, IPTC, authoring software and comment fields. The file never leaves the device, the result is a new copy, and the original is untouched. It handles JPEG, PNG, WebP, GIF, MP4, MOV and PDF, and says so plainly when a file is not recognised rather than quietly handing back something it never processed.&lt;/p&gt; &lt;p&gt;&lt;img alt=&#34;The file metadata stripper, listing the seven formats it handles, with a sample photo going from 30.1 KB to 29.7 KB and the removed EXIF block accounted for at 392 bytes&#34; src=&#34;https://assets.anoni.net/blog/utils-strip-metadata-en.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;For photos and video the compressed data is copied byte for byte from a fixed offset through to the end of the file, so the result decodes identically to the original. Re-encoding tools cannot make that claim: every recompression costs quality and leaves the tool&#39;s own processing signature in the output, which is why a file cleaned with mat2 is recognisably mat2-cleaned.&lt;/p&gt; &lt;p&gt;EXIF also carries an uncropped thumbnail. Crop half the photo away, send it, and the thumbnail may still hold the original full frame. The page lists each item removed and kept, with byte counts and the segment markers used by the file format.&lt;/p&gt; &lt;p&gt;HEIC, which is what an iPhone produces by default, is not handled yet. On iOS, Settings, Camera, Formats, Most Compatible switches capture to JPEG. TIFF, RAW, MKV, WebM, AVI and Office documents are also out of scope. The tool does no face blurring, and street numbers, road signs, uniforms and the view out of the window all live in the image itself, so look at what you are sharing before you share it.&lt;/p&gt; &lt;h3 id=&#34;URL-cleaner&#34;&gt;URL cleaner&lt;a class=&#34;headerlink&#34; href=&#34;#URL-cleaner&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The &lt;a href=&#34;../../../../utils/clean-url/&#34;&gt;URL cleaner&lt;/a&gt; picks the tracking parameters out of a URL and removes them, naming who each one reports to, and unwraps Google and Facebook redirect links.&lt;/p&gt; &lt;p&gt;&lt;img alt=&#34;The URL cleaner turning a donation link carrying five tracking parameters into a clean one, with each parameter and its owner listed underneath&#34; src=&#34;https://assets.anoni.net/blog/utils-clean-url-en.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;Removal works from an allowlist, handling only the parameters it recognises and keeping everything else. Doing it the other way around strips YouTube video IDs and pagination along with the tracking, and the reader ends up with a URL that opens the wrong thing without ever suspecting the cleaner, blaming whoever sent the link instead.&lt;/p&gt; &lt;p&gt;A URL copied after clicking through Facebook carries &lt;code&gt;fbclid&lt;/code&gt;. Paste it into a group chat and everyone who follows it returns to Meta carrying the same ID, which strings the whole chain of clicks together. Forwarding a newsletter link with &lt;code&gt;utm_source&lt;/code&gt; on it tells the recipient which newsletter you subscribe to, and &lt;code&gt;mc_eid&lt;/code&gt; is more direct still: it is Mailchimp&#39;s recipient identifier and maps back to an email address.&lt;/p&gt; &lt;p&gt;Short links are deliberately not expanded, because resolving one sends the URL you were trying to clean to a third-party server, which is the exact thing this tool exists to avoid.&lt;/p&gt; &lt;h2 id=&#34;What-your-browser-gives-away&#34;&gt;What your browser gives away&lt;a class=&#34;headerlink&#34; href=&#34;#What-your-browser-gives-away&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href=&#34;../../../../utils/leaks/&#34;&gt;What your browser gives away&lt;/a&gt; lists what any site obtains the moment a page opens, without asking and without needing consent. Each item shows what Tor Browser reports instead, with the time zone stating plainly &#34;Tor Browser shows: UTC&#34;, so opening the same page in another browser gives you a direct comparison.&lt;/p&gt; &lt;p&gt;&lt;img alt=&#34;The browser fingerprint demonstration page, with an eight-character code at the top and time zone, language preference and screen size listed below, each alongside the value Tor Browser reports&#34; src=&#34;https://assets.anoni.net/blog/utils-leaks-en.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;The eight-character code at the top is computed from the stable values. Open the page again on another device or in another browser and comparing that one code tells you whether anything changed. Fifteen values together are enough to identify a person, and the code condenses the set into something you can compare directly. The mechanics are in &lt;a href=&#34;../../../../basics/browser-fingerprinting/&#34;&gt;what browser fingerprinting is&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Of those fifteen items, three can actually be switched off on your own device: location permission, language preference and the Do Not Track signal. The rest have no switch, because they are capabilities the web platform hands to sites. The single action covering the most items is moving to a browser with built-in protection.&lt;/p&gt; &lt;p&gt;There is deliberately no export button, since the exported file would be a complete fingerprint and leaving it on a device is worse than not having it. There is no uniqueness percentage either, because computing one requires a population database and the community is not about to start collecting visitor data to build it. For that kind of statistic, &lt;a href=&#34;https://coveryourtracks.eff.org/&#34; target=&#34;_blank&#34;&gt;EFF&#39;s Cover Your Tracks&lt;/a&gt; does the job.&lt;/p&gt; &lt;h2 id=&#34;One-limit-each-for-video-and-PDF&#34;&gt;One limit each for video and PDF&lt;a class=&#34;headerlink&#34; href=&#34;#One-limit-each-for-video-and-PDF&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Encoders write their own version into the compressed stream itself, mixed in with picture data. That is not a descriptive field, removing it requires re-encoding, and re-encoding costs quality while only substituting one encoder&#39;s trace for another. The tool does not re-encode. It lists the strings it found instead, so nobody assumes the file came out clean.&lt;/p&gt; &lt;p&gt;A photo or a video lets you cut the descriptive section straight out, and PDF does not. Every PDF object records its own offset in the cross-reference table, cutting a section shifts everything after it, and since PDF 1.5 several objects are commonly compressed into a single stream where the contents are invisible from outside. So the tool rewrites the whole file, and the lossless guarantee does not survive that. Page content is not reflowed and renders pixel-identical in testing, but forms, digital signatures and unusual interactive elements may not survive a rewrite, so keep the original of anything that matters.&lt;/p&gt; &lt;p&gt;XMP holds one more trap. Deleting the catalogue&#39;s reference to the XMP block and saving leaves the block itself intact in the file with nothing pointing at it, so a text search still turns up the author and the location. The tool removes the object itself, and &lt;code&gt;tools/test_stripmeta.mjs&lt;/code&gt; has a test guarding exactly that.&lt;/p&gt; &lt;h2 id=&#34;The-whole-site-fits-on-a-device&#34;&gt;The whole site fits on a device&lt;a class=&#34;headerlink&#34; href=&#34;#The-whole-site-fits-on-a-device&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Opening the docs site in an ordinary browser caches the core chapters of the current language in the background, with no install step. Switching language downloads that language&#39;s chapters only then, so a device holds only what has actually been read.&lt;/p&gt; &lt;p&gt;&lt;img alt=&#34;The offline reading page, with storage totals and two automatic-storage switches at the top and pages listed by chapter below, the Tools chapter expanded to show each page with its size and tick state&#34; src=&#34;https://assets.anoni.net/blog/docs-offline-library-en.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;Scenario pages for journalists, activists, LGBTQ readers and domestic abuse are excluded from that prefetch and stored only if opened deliberately. Their presence on a device is itself a signal, so whether to keep them is the reader&#39;s call. To carry them offline, tick them on the &lt;a href=&#34;../../../../offline/&#34;&gt;offline reading&lt;/a&gt; page.&lt;/p&gt; &lt;p&gt;Automatically stored chapters hold text only, so images are missing offline. A switch on that page adds the images in the core chapters, roughly 7 MB more. It is off by default because most people are on mobile data and most of the content still reads fine without pictures. Pages ticked by hand ignore that switch and always store their images.&lt;/p&gt; &lt;p&gt;The site also installs as an offline app, and the steps for Android, desktop browsers and iOS are on the &lt;a href=&#34;../../../../offline/&#34;&gt;offline reading&lt;/a&gt; page. Tor Browser and the onion and IPFS versions register no background Service Worker for privacy reasons, so the pattern is installing from anoni.net in an ordinary browser for the offline copy and returning to Tor Browser for anonymous reading.&lt;/p&gt; &lt;h2 id=&#34;Whose-code-is-in-here&#34;&gt;Whose code is in here&lt;a class=&#34;headerlink&#34; href=&#34;#Whose-code-is-in-here&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Most of the code in this section is written by the community. Four things come from elsewhere, dropped in unmodified:&lt;/p&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Component&lt;/th&gt; &lt;th&gt;Used by&lt;/th&gt; &lt;th&gt;Licence&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;a href=&#34;https://github.com/kazuhikoarase/qrcode-generator&#34; target=&#34;_blank&#34;&gt;qrcode-generator&lt;/a&gt; 1.4.4&lt;/td&gt; &lt;td&gt;QR code generator&lt;/td&gt; &lt;td&gt;MIT&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;a href=&#34;https://github.com/cozmo/jsQR&#34; target=&#34;_blank&#34;&gt;jsQR&lt;/a&gt; 1.4.0&lt;/td&gt; &lt;td&gt;QR code reader&lt;/td&gt; &lt;td&gt;Apache-2.0&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;a href=&#34;https://github.com/Hopding/pdf-lib&#34; target=&#34;_blank&#34;&gt;pdf-lib&lt;/a&gt; 1.17.1&lt;/td&gt; &lt;td&gt;The PDF path of the metadata stripper&lt;/td&gt; &lt;td&gt;MIT&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;The 7776-word list from &lt;a href=&#34;https://github.com/anoni-net/asian-diceware&#34; target=&#34;_blank&#34;&gt;asian-diceware&lt;/a&gt;&lt;/td&gt; &lt;td&gt;Passphrase and password generator&lt;/td&gt; &lt;td&gt;Word data CC-BY-4.0, code MIT&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Leaving them unmodified is deliberate. Once patched they stop being &#34;the upstream copy&#34;, and a reader wanting to verify has only our word for it. The files sit under &lt;code&gt;utils/vendor/&lt;/code&gt;, ready to be diffed against upstream. The common reason for not writing these ourselves is that getting them wrong does not crash anything, it produces output that looks right and is not, which is harder to catch than a failure.&lt;/p&gt; &lt;h2 id=&#34;Working-on-this-with-us&#34;&gt;Working on this with us&lt;a class=&#34;headerlink&#34; href=&#34;#Working-on-this-with-us&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The tools are plain front-end code with no build step. Each one is a single JS file under &lt;code&gt;docs/zh-TW/js/&lt;/code&gt; in &lt;a href=&#34;https://github.com/anoni-net/docs/tree/main/docs/zh-TW/js&#34; target=&#34;_blank&#34;&gt;anoni-net/docs&lt;/a&gt;, and &lt;code&gt;cd docs &amp;amp;&amp;amp; uv sync &amp;amp;&amp;amp; mkdocs serve&lt;/code&gt; gets a local copy running.&lt;/p&gt; &lt;p&gt;Each of the eight has a test, run with &lt;code&gt;node tools/test_&amp;lt;name&amp;gt;.mjs&lt;/code&gt;, with nothing to install, and every one of them runs in CI. The tests guard the failures that look fine on screen and are wrong underneath: sampling bias, a generated QR code that scans back as something else, the fingerprint page quietly sending data, the URL cleaner stripping a parameter the page needs, threat model answers reaching storage.&lt;/p&gt; &lt;p&gt;What is missing is listed as the unsupported formats on each tool page: HEIC, TIFF, RAW, MKV, WebM, AVI and Office documents all have nobody on them. Open an issue or say so in the Matrix room before starting, so two people do not build the same thing. The process is in &lt;a href=&#34;https://github.com/anoni-net/docs/blob/main/CONTRIBUTING.md&#34; target=&#34;_blank&#34;&gt;CONTRIBUTING&lt;/a&gt; and &lt;a href=&#34;../../../../community/how-to-contribute/&#34;&gt;how to take part&lt;/a&gt;.&lt;/p&gt; &lt;h2 id=&#34;What-comes-next&#34;&gt;What comes next&lt;a class=&#34;headerlink&#34; href=&#34;#What-comes-next&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The direction is a privacy and anonymity guide that lives on the reader&#39;s own device. A blocked domain, a severed connection or somewhere with no coverage at all is when these pages matter most, and whether they open then depends on what was stored beforehand.&lt;/p&gt; &lt;p&gt;Three things that help right now:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Which pages you want to carry offline&lt;/strong&gt;: the prefetch is currently split by core chapter, and real needs may differ&lt;/li&gt; &lt;li&gt;&lt;strong&gt;What a tool lacks in your situation&lt;/strong&gt;: an unrecognised field, a format that will not open, an explanation that does not land&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Real video or PDF samples&lt;/strong&gt;: files whose metadata will not come off, or that stop opening once cleaned&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Reach us in the public Matrix room (home server &lt;code&gt;im.anoni.net&lt;/code&gt;, link on the &lt;a href=&#34;../../../../community/tools/&#34;&gt;community tools page&lt;/a&gt;), or open an issue on &lt;a href=&#34;https://github.com/anoni-net/docs/issues&#34; target=&#34;_blank&#34;&gt;anoni-net/docs&lt;/a&gt;. Anything you would rather not attach your name to can go to whisper@anoni.net (&lt;a href=&#34;../../../../contact/&#34;&gt;GPG key&lt;/a&gt;).&lt;/p&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/08/2026-browser-side-utils/</link> <pubDate>Tue, 25 Aug 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/08/2026-browser-side-utils/</guid> <enclosure url="https://assets.anoni.net/blog/utils-index-en.webp" type="image/webp" length="170582" /> </item> <item> <title>The Anonymity Networks Community Is Going to Global Gathering 2026</title> <author>anoni.net Community</author> <category>Community</category> <category>News</category> <description>&lt;h1 id=&#34;The-Anonymity-Networks-Community-Is-Going-to-Global-Gathering-2026&#34;&gt;The Anonymity Networks Community Is Going to Global Gathering 2026&lt;a class=&#34;headerlink&#34; href=&#34;#The-Anonymity-Networks-Community-Is-Going-to-Global-Gathering-2026&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;Global Gathering 2026, hosted by Team CommUNITY, runs from 4 to 6 September in Estoril, Portugal. We applied for a booth and the slot is now confirmed.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Date and time: 6 September, &lt;code&gt;13:00&lt;/code&gt; to &lt;code&gt;15:00&lt;/code&gt; WEST (UTC+1, Portugal local time during the event)&lt;/li&gt; &lt;li&gt;Location: Booth &lt;code&gt;6&lt;/code&gt; in the Regional Perspectives Village, 3 x 3 meters&lt;/li&gt; &lt;li&gt;Booth title: anoni.net Hub: Sinophone Asia-Pacific Networked Freedom&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Event details are at &lt;a href=&#34;https://wiki.digitalrights.community/index.php?title=2026_Global_Gathering_Programming&#34; target=&#34;_blank&#34;&gt;Global Gathering 2026&lt;/a&gt;.&lt;/p&gt; &lt;h2 id=&#34;What-the-Global-Gathering-is&#34;&gt;What the Global Gathering is&lt;a class=&#34;headerlink&#34; href=&#34;#What-the-Global-Gathering-is&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The Global Gathering is an annual event hosted by Team CommUNITY. It draws people from around the world whose work covers digital rights, internet freedom, and protecting civil society from digital attacks.&lt;/p&gt; &lt;p&gt;There is no main stage and no keynote, and the three days are built out of Circles, Meetups that bring together a region or a shared topic, and Booths open to anyone walking past. Villages then group those activities by theme, such as Circumvention Tech, Digital Security, and Regional Perspectives. Our booth sits in the Regional Perspectives Village.&lt;/p&gt; &lt;h2 id=&#34;Why-we-are-taking-part&#34;&gt;Why we are taking part&lt;a class=&#34;headerlink&#34; href=&#34;#Why-we-are-taking-part&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;This is our first time at the Global Gathering, and the main hope is to meet more people, both technologists developing anonymity networks and other circumvention tools, and others working across the Asia region.&lt;/p&gt; &lt;p&gt;We are a group of volunteers who care about anonymity networks and internet freedom, starting from Taiwan, and what we do covers keeping journalists&#39; sources protected, letting activists organize without leaving traces, and helping people support sensitive causes without exposing who they are. All three rest on having an anonymity network that works. We run the Matrix home server &lt;code&gt;im.anoni.net&lt;/code&gt; and this docs site, which keeps our observations and discussions somewhere they can be checked.&lt;/p&gt; &lt;p&gt;The community counts from the &lt;a href=&#34;../../../../event-workshop-2025/&#34;&gt;anonymity network workshop&lt;/a&gt; we ran in August 2025, where the first group of members came together. Three threads are open in 2026, with practical privacy guides sorted by scenario for everyday life, sensitive work, and high risk, campus Tor relays pushed forward together with EFF and the Tor Project and one already running at National Taiwan Normal University, and the anonymous payment work we are bringing to the booth.&lt;/p&gt; &lt;p&gt;Others across the Asia-Pacific work on the same problems, and so far each side has not known the other exists. Sinophone communities are spread across Taiwan, Hong Kong, China, Japan, and Southeast Asia, the situations they run into are connected, and opportunities to compare experiences are rare.&lt;/p&gt; &lt;p&gt;The other purpose is taking part in coordination across the region, since internet freedom work is rarely something a single community can finish, what any one of us can observe and maintain has limits, and most of these problems need more than one region to cover them properly. Establishing contact first is what makes working together possible later.&lt;/p&gt; &lt;p&gt;For the 30 minutes of mobile throttling in northern Taiwan on 13 August, we turned OONI&#39;s public data into &lt;a href=&#34;../ooni-mobile-throttle-drill-results/&#34;&gt;a guided tour of what it recorded&lt;/a&gt;. Taiwan logged 238 connection speed tests from 47 devices that day, one of which saw its median download fall from &lt;code&gt;132,096&lt;/code&gt; kbit/s to &lt;code&gt;1,223&lt;/code&gt; kbit/s, and every query in the write-up runs without a key so anyone can recheck it. That record comes along to Estoril, and if anyone there is working on shutdowns or throttling, it is available for comparison.&lt;/p&gt; &lt;h2 id=&#34;We-are-bringing-anonymous-payment-to-the-booth&#34;&gt;We are bringing anonymous payment to the booth&lt;a class=&#34;headerlink&#34; href=&#34;#We-are-bringing-anonymous-payment-to-the-booth&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The agenda went up in late August, and across the three days it covers shutdown response, circumvention tools, platform accountability, AI governance, and journalist safety. Having gone through the Circles, Villages, and Booths one by one, we found no session that takes financial privacy as its subject. Donor anonymity, cross-border disbursement, and what sanctions and currency controls do to civil society appear in no session title or description. A few sessions do take fundraising strategy and grant applications as their subject, where the focus is getting money in. How a payment reaches its recipient without exposing them goes unaddressed.&lt;/p&gt; &lt;p&gt;Sanctions lists, banks refusing to do business, donation records being subpoenaed: these are day-to-day realities for many organizations, with no matching discussion anywhere on the agenda.&lt;/p&gt; &lt;p&gt;We are making anonymous payment the main topic at our booth. As a community we are still at the research stage, gathering real situations, including who needs an anonymous money trail and under what circumstances, where current practice breaks down, and what limits regulation and compliance impose.&lt;/p&gt; &lt;p&gt;The people we would especially like to talk to:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Operators with cross-border disbursement experience&lt;/strong&gt;: particularly where the recipient sits in a high-risk or sanctioned region.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Organisations that have dealt with donor anonymity&lt;/strong&gt;: who know where the current tools fall short.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Projects blocked by financial controls&lt;/strong&gt;: unable to receive support because a bank refused them or currency rules got in the way.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Anyone following the topic in research or advocacy&lt;/strong&gt;: the regulatory side included.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Please just walk up during the booth slot, with no appointment and no prepared topic needed, and topics other than anonymous payment are just as welcome. The booth is meant to work as a regional meeting point, so that people in the room can find each other.&lt;/p&gt; &lt;h2 id=&#34;Another-team-from-Taiwan-is-at-the-Gathering&#34;&gt;Another team from Taiwan is at the Gathering&lt;a class=&#34;headerlink&#34; href=&#34;#Another-team-from-Taiwan-is-at-the-Gathering&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Cofacts is here too, at Booth &lt;code&gt;10&lt;/code&gt; on 6 September, &lt;code&gt;13:00&lt;/code&gt; to &lt;code&gt;15:00&lt;/code&gt; WEST, the same two hours as our own slot. They are showing &lt;a href=&#34;https://cofacts.ai/&#34; target=&#34;_blank&#34;&gt;Cofacts.ai&lt;/a&gt;, a multi-agent AI framework built on top of the crowdsourced fact-checking community and chatbot they have run for years.&lt;/p&gt; &lt;p&gt;The two subjects meet in the same place. A public sphere needs information that can be checked, and it needs a network that carries that information without exposing the people passing it along. Both booths are open the same afternoon, so please come to both.&lt;/p&gt; &lt;h2 id=&#34;Sessions-on-the-agenda-that-overlap-with-our-work&#34;&gt;Sessions on the agenda that overlap with our work&lt;a class=&#34;headerlink&#34; href=&#34;#Sessions-on-the-agenda-that-overlap-with-our-work&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;On anonymity and circumvention:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Technologist Meetup (4 September, &lt;code&gt;13:30&lt;/code&gt; to &lt;code&gt;14:30&lt;/code&gt;) is where technologists working in digital rights and public interest technology get to know each other, hosted in the Circumvention Tech Village, and we are looking for people with experience maintaining measurement tools or self-hosted services.&lt;/li&gt; &lt;li&gt;Cross-Borders Storytelling: Device Searches, Metadata, and Collective Preparation compares experiences of device searches and metadata scrutiny across regions, and covers digital, legal, physical, and psychosocial preparation. Sinophone journalists cross jurisdictions often, and how others prepare is something we can put to use.&lt;/li&gt; &lt;li&gt;Can Signal Become Phishing-Resistant? addresses phishing aimed at journalists and activists, where the attacks abuse Signal&#39;s legitimate account recovery and device-linking workflows, with no software vulnerability required. How to write the risk in account recovery into a privacy guide is what we are after in this session.&lt;/li&gt; &lt;li&gt;Lights in the Tunnel: Co-Creating an Accountability Framework for VPN Transparency starts drafting a methodology for assessing VPN transparency and accountability, along with the providers to be evaluated. People keep asking us which VPN they can trust, so we want to know how that methodology turns into advice a user can act on.&lt;/li&gt; &lt;li&gt;Age Verification and Digital Identity Systems runs across two sessions, mapping how these systems are being rolled out and by whom, and discussing the harm-reduction pathways civil society can push for.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;On measurement and regional coordination:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Strengthening Rapid Response Efforts to Censorship Events covers how groups around the world coordinate when censorship events emerge, including OONI&#39;s tools and methods for rapid response. We work with OONI&#39;s public data, and the August throttling write-up came out of the same methods.&lt;/li&gt; &lt;li&gt;Asia Meetup (4 September, &lt;code&gt;12:00&lt;/code&gt; to &lt;code&gt;13:00&lt;/code&gt;) is a connection point for people working across the Asia region, and it is where we hope to meet others nearby working on adjacent problems.&lt;/li&gt; &lt;li&gt;Internet Shutdown Contingency Planning Help Desk builds a shutdown contingency plan around your own threat model, using the BRACE framework. Taiwan runs drills every year that give us something to compare against, and which parts of the framework connect is what we need to work out.&lt;/li&gt; &lt;li&gt;We See, We Archive, We Remember addresses how public-interest information can be preserved when it is being erased, drawing on archival work from Hong Kong, China, Iran, and Palestine.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&#34;Booths-we-plan-to-visit&#34;&gt;Booths we plan to visit&lt;a class=&#34;headerlink&#34; href=&#34;#Booths-we-plan-to-visit&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;The Onion Odyssey Cryptographic Universe is run by the Tor Project together with the Guardian Project (Orbot, Onion Browser), at Booth &lt;code&gt;22&lt;/code&gt; in the Circumvention Tech Village, open all three days, and we want to hear about the friction Sinophone users hit with Orbot and Onion Browser.&lt;/li&gt; &lt;li&gt;Lockdown Systems brings OnionShare, which shares files, hosts websites, and runs chat anonymously over the Tor network, alongside Cyd for backing up and deleting social media history, and where a source gets stuck the first time they use it is exactly the kind of detail our privacy guides need.&lt;/li&gt; &lt;li&gt;Air Messenger is built on the MLS protocol, combining end-to-end encryption, low metadata, and a federated architecture, and since we run a Matrix home server ourselves, we want to know how far a federated setup can push metadata down.&lt;/li&gt; &lt;li&gt;Amnezia VPN shows their research on VPN blocking and DPI filtering, along with Amnezia Pulse for tracking shutdowns, and we want to compare our August throttling data against how they decide a shutdown is happening.&lt;/li&gt; &lt;li&gt;LEAP&#39;s MANTA measures tunnel health in censored environments, and we want to find out whether the same measurement approach fits the connectivity we see in Taiwan. Their booth (Booth &lt;code&gt;21&lt;/code&gt;) is open on 4 September only, &lt;code&gt;15:30&lt;/code&gt; to &lt;code&gt;17:30&lt;/code&gt;, and a MANTA session runs in the Circumvention Tech Village earlier that day, &lt;code&gt;15:00&lt;/code&gt; to &lt;code&gt;16:00&lt;/code&gt;.&lt;/li&gt; &lt;li&gt;po1ytech&#39;s polymorphic is an automated mirror system that keeps blocked independent media reachable, and we want to ask how much staffing it takes to keep running, because a volunteer community has limited capacity and sustainability comes first when choosing tools.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;The full agenda is at &lt;a href=&#34;https://wiki.digitalrights.community/index.php?title=2026_Global_Gathering_Programming&#34; target=&#34;_blank&#34;&gt;Global Gathering 2026&lt;/a&gt;, and it runs far wider than what is listed here.&lt;/p&gt; &lt;h2 id=&#34;For-those-attending&#34;&gt;For those attending&lt;a class=&#34;headerlink&#34; href=&#34;#For-those-attending&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Our booth is on the final day, which leaves no fixed spot for the first two days. Any of the following will reach us.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;The Matrix room set up for the event is the most reliable, at &lt;a href=&#34;https://matrix.to/#/%23gg2026:im.anoni.net&#34; target=&#34;_blank&#34;&gt;&lt;code&gt;#gg2026:im.anoni.net&lt;/code&gt;&lt;/a&gt;, where a message is enough to arrange a time and place, no phone numbers need to change hands, and we will reply as soon as we can during the event. Any Matrix account can join, so a free &lt;code&gt;matrix.org&lt;/code&gt; account works and takes a couple of minutes to set up. Times in that room are in WEST unless someone says otherwise. Accounts on &lt;code&gt;im.anoni.net&lt;/code&gt; are issued by a person and take a day or two, which is too slow for meeting someone at the venue, so do not wait on one.&lt;/li&gt; &lt;li&gt;Two sessions on 4 September are ones we will be attending, the Asia Meetup (&lt;code&gt;12:00&lt;/code&gt; to &lt;code&gt;13:00&lt;/code&gt; WEST) and the Technologist Meetup (&lt;code&gt;13:30&lt;/code&gt; to &lt;code&gt;14:30&lt;/code&gt; WEST), so meeting there works directly.&lt;/li&gt; &lt;li&gt;We will most likely be around for the Networking Hour, &lt;code&gt;12:00&lt;/code&gt; to &lt;code&gt;13:00&lt;/code&gt; WEST each day, though plans may still shift, so checking that room before you leave for Estoril helps. On 4 September that hour is where the Asia Meetup above sits, so it is one slot rather than two.&lt;/li&gt; &lt;li&gt;We will be at the venue for most of the three days, with anoni.net and a handle on our badges, so please do say hello.&lt;/li&gt; &lt;li&gt;The booth slot on 6 September, &lt;code&gt;13:00&lt;/code&gt; to &lt;code&gt;15:00&lt;/code&gt; WEST, is the easiest place to find us, and giving the name you go by is enough.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&#34;Taking-part-without-travelling&#34;&gt;Taking part without travelling&lt;a class=&#34;headerlink&#34; href=&#34;#Taking-part-without-travelling&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Most people will not be travelling to Portugal, and there are still two things we can do together.&lt;/p&gt; &lt;p&gt;Please write down a coordination gap you have run into and send it to us, and we will take it along to compare against what other regions are seeing. Observations from Taiwan do not surface often at international events, and describing one concrete situation carries further than an abstract overview.&lt;/p&gt; &lt;p&gt;We would also like to hear real experiences of anonymous payment, so if you or an organization you know has dealt with small cross-border support, the trade-off between donation receipts and identity disclosure, or a recipient put at risk because a money trail identified them, that experience is what the booth needs. Anything you would rather not attach your name to can go to the anonymous mailbox below. We check it within a few hours across the three days of the Gathering, and reply within a day or two the rest of the time.&lt;/p&gt; &lt;p&gt;Beyond the event, all three threads for 2026 are short of hands. The privacy guides need people to sort scenarios and proofread, campus Tor relays need someone willing to ask about feasibility at their own institution, and the anonymous payment work needs more real cases. If you have compared the August throttling write-up against the raw OONI data and have something to add or correct, that is welcome too. Say which part interests you in the Matrix room.&lt;/p&gt; &lt;h2 id=&#34;Help-pass-this-along&#34;&gt;Help pass this along&lt;a class=&#34;headerlink&#34; href=&#34;#Help-pass-this-along&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The booth runs for one slot only, and whether the right people walk past depends a great deal on how far word travels. If you know someone heading to Estoril, or there are journalists and open source community members around you working on these topics, please forward this to them, and there is no need to tell us first. If someone responds after you do, sharing that in the Matrix room helps us connect with them before we set off.&lt;/p&gt; &lt;h2 id=&#34;After-the-event&#34;&gt;After the event&lt;a class=&#34;headerlink&#34; href=&#34;#After-the-event&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Whatever the booth collects will be written up and published in a later newsletter and on this docs site. We look at the situation a case arose in, and the people and the region involved stay out of anything published. Both the list of coordination gaps and the anonymous payment cases are de-identified first.&lt;/p&gt; &lt;h2 id=&#34;Channels&#34;&gt;Channels&lt;a class=&#34;headerlink&#34; href=&#34;#Channels&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;During the event: Matrix room &lt;a href=&#34;https://matrix.to/#/%23gg2026:im.anoni.net&#34; target=&#34;_blank&#34;&gt;&lt;code&gt;#gg2026:im.anoni.net&lt;/code&gt;&lt;/a&gt;, for the three days of the Global Gathering&lt;/li&gt; &lt;li&gt;Live discussion: &lt;a href=&#34;../../../../community/tools/&#34;&gt;public Matrix room&lt;/a&gt; (home server &lt;code&gt;im.anoni.net&lt;/code&gt;)&lt;/li&gt; &lt;li&gt;Anonymous tips: whisper@anoni.net (&lt;a href=&#34;../../../../contact/&#34;&gt;GPG key&lt;/a&gt;), checked within a few hours during the Gathering&lt;/li&gt; &lt;/ul&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/08/2026-anoni-net-global-gathering/</link> <pubDate>Thu, 20 Aug 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/08/2026-anoni-net-global-gathering/</guid> <enclosure url="https://ipfs.anoni.net/en/assets/images/social/blog/2026/08/2026-anoni-net-global-gathering.png" type="image/png" length="49583" /> </item> <item> <title>Brave flattens GPU fingerprints two opposite ways</title> <author>anoni.net Community</author> <category>Privacy</category> <category>Technology</category> <description>&lt;h1 id=&#34;Brave-flattens-GPU-fingerprints-two-opposite-ways&#34;&gt;&lt;span class=&#34;twemoji&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34;&gt;&lt;path d=&#34;M17.81 4.47c-.08 0-.16-.02-.23-.06C15.66 3.42 14 3 12 3c-1.97 0-3.85.47-5.56 1.41-.24.13-.54.04-.68-.2a.506.506 0 0 1 .2-.68C7.82 2.5 9.86 2 12 2s4 .47 6.04 1.5c.25.15.34.45.21.69a.48.48 0 0 1-.44.28M3.5 9.72c-.1 0-.2-.03-.29-.09a.517.517 0 0 1-.12-.7c.99-1.4 2.25-2.5 3.75-3.27C10 4.04 14 4.03 17.15 5.65c1.5.77 2.76 1.85 3.75 3.25.16.22.1.54-.12.7-.23.16-.54.11-.7-.1a9.26 9.26 0 0 0-3.39-2.96c-2.87-1.47-6.54-1.47-9.4.01-1.36.7-2.5 1.7-3.4 2.95-.08.15-.23.22-.39.22m6.25 12.07c-.13 0-.25-.05-.35-.15-.87-.87-1.34-1.43-2.01-2.64-.69-1.23-1.05-2.73-1.05-4.34 0-2.97 2.54-5.39 5.66-5.39s5.66 2.42 5.66 5.39a.5.5 0 0 1-.5.5.5.5 0 0 1-.5-.5c0-2.42-2.09-4.39-4.66-4.39s-4.66 1.97-4.66 4.39c0 1.44.32 2.77.93 3.84.64 1.16 1.08 1.65 1.85 2.43.19.2.19.51 0 .71-.12.1-.24.15-.37.15m7.17-1.85c-1.19 0-2.24-.3-3.1-.89-1.49-1.01-2.38-2.65-2.38-4.39a.5.5 0 0 1 .5-.5.5.5 0 0 1 .5.5c0 1.41.72 2.74 1.94 3.56.71.48 1.54.71 2.54.71.24 0 .64-.03 1.04-.1.27-.05.54.13.58.41.05.26-.13.53-.41.58-.57.11-1.07.12-1.21.12M14.91 22h-.13c-1.59-.46-2.63-1.05-3.72-2.12a7.28 7.28 0 0 1-2.17-5.22c0-1.62 1.38-2.94 3.08-2.94s3.08 1.32 3.08 2.94c0 1.07.95 1.94 2.08 1.94 1.15 0 2.08-.87 2.08-1.94 0-3.77-3.25-6.83-7.25-6.83-2.84 0-5.46 1.58-6.61 4.03-.39.81-.59 1.76-.59 2.8 0 .78.07 2.01.67 3.61.1.26-.03.55-.29.64a.504.504 0 0 1-.64-.29c-.5-1.31-.73-2.62-.73-3.96 0-1.2.23-2.29.68-3.24 1.33-2.79 4.28-4.6 7.51-4.6 4.54 0 8.25 3.51 8.25 7.83 0 1.62-1.38 2.94-3.08 2.94s-3.08-1.32-3.08-2.94c0-1.07-.93-1.94-2.08-1.94s-2.08.87-2.08 1.94c0 1.71.66 3.31 1.87 4.51.95.94 1.86 1.46 3.27 1.84.27.08.42.36.35.62-.05.23-.26.38-.47.38&#34;/&gt;&lt;/svg&gt;&lt;/span&gt; Brave flattens GPU fingerprints two opposite ways&lt;a class=&#34;headerlink&#34; href=&#34;#Brave-flattens-GPU-fingerprints-two-opposite-ways&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;Open a web page and the JavaScript on it can read your graphics card model, its driver details, and the hardware features it supports. Those answers barely change on a given machine, so a tracking company can combine them with other device traits into an identifier that needs no cookie, asks for no consent, and follows you between sites.&lt;/p&gt; &lt;p&gt;The graphics card is one source among many. Font lists, screen dimensions, time zone, and audio processing all feed the same identifier. &lt;a href=&#34;../../../../basics/browser-fingerprinting/&#34;&gt;A browser fingerprint cannot be cleared the way a cookie can&lt;/a&gt; covers how the whole mechanism works, why clearing cookies does nothing, and where each browser currently stands. This piece stays with the graphics card.&lt;/p&gt; &lt;p&gt;Brave has handled these signals since version &lt;code&gt;1.93&lt;/code&gt;, on by default on desktop and Android, rolling out in stages&lt;sup id=&#34;fnref:brave&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:brave&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. Three protections ship together: the WebGL vendor and renderer strings become one generic string shared by every Brave user, the WebGPU hardware description fields are cleared, and the list of supported WebGL extensions gets noise added to it.&lt;/p&gt; &lt;p&gt;The first two make every user look alike. The third makes one user look different on every site. Two opposite techniques arrived in the same release, each assigned to a different API, and where that line falls is also where Brave and Tor Browser part company on fingerprinting.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;A-graphics-card-makes-an-unusually-good-fingerprint&#34;&gt;A graphics card makes an unusually good fingerprint&lt;a class=&#34;headerlink&#34; href=&#34;#A-graphics-card-makes-an-unusually-good-fingerprint&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;WebGL and WebGPU give sites hardware-accelerated graphics, which maps, games, and data visualization all depend on. To let a site adapt its rendering to the hardware, both APIs also expose low-level hardware detail to JavaScript.&lt;/p&gt; &lt;p&gt;Three kinds of information are available to a site&lt;sup id=&#34;fnref2:brave&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:brave&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Vendor and renderer strings&lt;/strong&gt;, through the &lt;code&gt;UNMASKED_VENDOR_WEBGL&lt;/code&gt; and &lt;code&gt;UNMASKED_RENDERER_WEBGL&lt;/code&gt; parameters that the &lt;code&gt;WEBGL_debug_renderer_info&lt;/code&gt; extension provides&lt;sup id=&#34;fnref2:mdn&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:mdn&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;. A site receives something like &lt;code&gt;ANGLE (Apple, ANGLE Metal Renderer: Apple M5 Max)&lt;/code&gt;, precise down to the chip model. Chrome originally opened this debugging extension for Google Maps, and it ended up callable by any site.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;The list of supported extensions&lt;/strong&gt;, which a WebGL context reports in full. Its contents vary with GPU and driver, and a tracker hashes the whole list into one compact identifier.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;The WebGPU hardware description&lt;/strong&gt;, where the newer API returns the adapter&#39;s &lt;code&gt;vendor&lt;/code&gt;, &lt;code&gt;architecture&lt;/code&gt;, and &lt;code&gt;device&lt;/code&gt; fields, for instance &lt;code&gt;{vendor: &#39;apple&#39;, architecture: &#39;metal-3&#39;}&lt;/code&gt;.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Graphics cards do not change often, so these values stay stable for years and outlast a cookie. Switch accounts, open a private window, clear the browsing history, and the hardware traits the API reports are the same ones.&lt;/p&gt; &lt;p&gt;Brave ran a small-scale web crawl, analyzing the call stack behind each invocation to see how highly ranked sites use these APIs. The conclusion in Brave&#39;s announcement is that for most sites calling them, browser fingerprinting is the only purpose&lt;sup id=&#34;fnref3:brave&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:brave&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. The size of the crawl and the proportions behind that finding are not in the announcement.&lt;/p&gt; &lt;h2 id=&#34;Uniformity-and-randomization-each-take-different-signals&#34;&gt;Uniformity and randomization each take different signals&lt;a class=&#34;headerlink&#34; href=&#34;#Uniformity-and-randomization-each-take-different-signals&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Signal&lt;/th&gt; &lt;th&gt;What Brave does&lt;/th&gt; &lt;th&gt;Type of technique&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;WebGL vendor and renderer strings&lt;/td&gt; &lt;td&gt;Replaced with one generic string, identical for every Brave user&lt;/td&gt; &lt;td&gt;Uniformity&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;WebGPU adapter description&lt;/td&gt; &lt;td&gt;&lt;code&gt;vendor&lt;/code&gt;, &lt;code&gt;architecture&lt;/code&gt;, and &lt;code&gt;device&lt;/code&gt; cleared&lt;/td&gt; &lt;td&gt;Uniformity&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;WebGL extension list&lt;/td&gt; &lt;td&gt;Noise added, differing per session, per site (eTLD+1), and per storage partition&lt;/td&gt; &lt;td&gt;Randomization&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;The third protection reuses farbling, which Brave already had. In the 2020 update that introduced it, the technique is defined as &#34;slightly randomizing the output of semi-identifying browser features, in a way that&#39;s difficult for websites to detect, but doesn&#39;t break benign, user-serving websites&#34;&lt;sup id=&#34;fnref:farbling&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:farbling&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt; &lt;h2 id=&#34;The-farbling-seed-changes-per-session-and-per-site&#34;&gt;The farbling seed changes per session and per site&lt;a class=&#34;headerlink&#34; href=&#34;#The-farbling-seed-changes-per-session-and-per-site&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;How the seed is generated determines what farbling does. On startup the browser generates a random session token, then mixes it with each first-party, top-frame domain it visits through HMAC256, producing a per-domain token that lives as long as the session&lt;sup id=&#34;fnref2:farbling&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:farbling&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;. Measure the same site twice within one session and the values match exactly; move to another site and they differ; start a new session and all of them change. Third-party frames and scripts inherit the top-level eTLD+1 seed&lt;sup id=&#34;fnref3:farbling&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:farbling&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;, so embedding third-party content offers no way around it.&lt;/p&gt; &lt;p&gt;A fingerprinter hashes many semi-identifying traits into a single identifier, and randomizing any one of them poisons the whole hash. The technique traces back to two research papers, PriVaricator (Nikiforakis and colleagues, WWW 2015) and FPRandom (Laperdrix and colleagues, ESSoS 2017)&lt;sup id=&#34;fnref4:farbling&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:farbling&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt; &lt;h2 id=&#34;Uniformity-everywhere-would-break-feature-negotiation&#34;&gt;Uniformity everywhere would break feature negotiation&lt;a class=&#34;headerlink&#34; href=&#34;#Uniformity-everywhere-would-break-feature-negotiation&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Brave&#39;s announcement does not say why the extension list gets randomization instead. Judging by what each API is for, changing the two kinds of data carries very different consequences for a site.&lt;/p&gt; &lt;p&gt;Vendor and renderer strings mostly serve performance tuning and hardware blocklists. When the string a site receives is not in its existing list, the worst outcome is a fall back to the ordinary rendering path. Collapsing the value to a constant drops that field&#39;s contribution to a fingerprint to zero at a limited cost.&lt;/p&gt; &lt;p&gt;The extension list serves feature negotiation. A site checks whether a given extension is present before enabling a rendering path or choosing a fallback. Hand it a uniform list that does not match the hardware and the site may pick a path the hardware cannot support, or abandon acceleration that was actually available. That leaves adding noise while preserving usability, which keeps the resulting hash unstable.&lt;/p&gt; &lt;p&gt;The two techniques differ in what they protect against. Uniformity reduces entropy, stripping a trait of its power to distinguish, with every Brave user in the world ideally identical on that field. Added noise undermines linkability instead: the value still carries information, but it differs on every site and every time, so a tracker cannot link what it sees on one site to what it sees on another.&lt;/p&gt; &lt;h2 id=&#34;Tor-Browser-takes-uniformity-all-the-way&#34;&gt;Tor Browser takes uniformity all the way&lt;a class=&#34;headerlink&#34; href=&#34;#Tor-Browser-takes-uniformity-all-the-way&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Pierre Laperdrix wrote the fingerprinting introduction for the Tor Project in 2019. Its opening position is that all Tor users should have exactly the same fingerprint. The measures described there include reporting one operating system across every platform, normalizing the time zone and screen resolution, and letterboxing, which pads content with gray margins so the viewport snaps to fixed dimensions and a maximized window stops revealing the screen size&lt;sup id=&#34;fnref:tor&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:tor&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt; &lt;p&gt;Laperdrix also names the risk in randomization, citing what Eckersley called the Paradox of Fingerprintable Privacy Enhancing Technologies. His example is an extension that rewrites a batch of values but misses &lt;code&gt;navigator.platform&lt;/code&gt;, producing a combination of traits that exists nowhere in reality and leaving the user easier to identify than before&lt;sup id=&#34;fnref2:tor&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:tor&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;. Randomization done properly needs thorough coverage, which is why Brave keeps extending the list of endpoints farbling touches.&lt;/p&gt; &lt;p&gt;Firefox handles it a third way, in that with &lt;code&gt;privacy.resistFingerprinting&lt;/code&gt; on, the &lt;code&gt;WEBGL_debug_renderer_info&lt;/code&gt; extension is disabled outright and a site cannot call it&lt;sup id=&#34;fnref:mdn&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:mdn&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;. That preference is off unless a user turns it on in &lt;code&gt;about:config&lt;/code&gt;, and &lt;a href=&#34;../../../../basics/browser-fingerprinting/&#34;&gt;A browser fingerprint cannot be cleared the way a cookie can&lt;/a&gt; has the full comparison of what each browser does by default. Disabling and returning a generic value each cost something: with the extension gone a site gets nothing and has to handle the empty case, while a generic value is indistinguishable from real hardware and lets the site carry on. Brave chose the latter, consistent with keeping breakage as low as possible. Another position in the announcement is that protection should be on by default rather than hidden behind a special mode or a flag&lt;sup id=&#34;fnref4:brave&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:brave&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt; &lt;p&gt;That boundary sits in Brave&#39;s own documentation: for users facing targeted attacks, the recommendation in the 2020 farbling update is to switch to Tor Browser&lt;sup id=&#34;fnref5:farbling&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:farbling&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;. Randomization holds up against broadly deployed commercial tracking, and it provides no anonymity set.&lt;/p&gt; &lt;h2 id=&#34;Which-one-to-use-depends-on-your-threat-model&#34;&gt;Which one to use depends on your threat model&lt;a class=&#34;headerlink&#34; href=&#34;#Which-one-to-use-depends-on-your-threat-model&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;For everyday browsing, shipping on by default is the practical value here. Most people will not edit &lt;code&gt;about:config&lt;/code&gt;, switch to a special mode, or install an extension for privacy, and extensions carry their own security and privacy problems, a point the announcement also makes&lt;sup id=&#34;fnref5:brave&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:brave&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. The protection works from installation, with a threshold close to zero.&lt;/p&gt; &lt;p&gt;Anything that calls for anonymity still calls for Tor Browser, because Brave&#39;s randomization addresses cross-site correlation only. The IP address still goes straight to the site, and an observer on the network path still sees where the connection went. Journalists, activists, and anyone handling sensitive material work under a different threat model and pick different tools; &lt;a href=&#34;../../../../basics/threat-model/&#34;&gt;threat modeling&lt;/a&gt; covers how to make that call.&lt;/p&gt; &lt;p&gt;Tor reachability varies by jurisdiction and belongs in the same calculation. Mainland China blocks it heavily, so connecting there needs bridges or another entry method. Taiwan, Hong Kong, Macau, Singapore, and Malaysia generally allow a direct connection, and the constraint moves elsewhere, to what you publish and to the records that real-name SIM registration leaves behind. Hong Kong adds an obligation, in force since March 2026, to surrender a device password during a national security investigation, and it reaches transit passengers too. &lt;a href=&#34;../../../../scenarios/asia-travel/&#34;&gt;Device minimization and border crossings in Asia&lt;/a&gt; has the jurisdiction-by-jurisdiction detail, and the &lt;a href=&#34;../../../../regional/&#34;&gt;Regional Observatory&lt;/a&gt; covers the reachability measurements behind it. Brave&#39;s fingerprinting protection is a browser feature that touches none of this, and it works from installation.&lt;/p&gt; &lt;p&gt;Anyone using Tor Browser should remember that the uniformity route depends on everyone staying uniform. Installing extensions, maximizing the window, or changing font settings all make you stand out, and &lt;a href=&#34;../../../../tools/tor-browser-advanced/&#34;&gt;Tor Browser advanced settings&lt;/a&gt; covers the specifics. The same action costs little in Brave and undermines the entire premise in Tor Browser.&lt;/p&gt; &lt;p&gt;To see what your own browser gives away, EFF&#39;s &lt;a href=&#34;https://coveryourtracks.eff.org/&#34; target=&#34;_blank&#34;&gt;Cover Your Tracks&lt;/a&gt; lists the WebGL vendor and renderer strings your browser reports along with the identifying power of each trait. Once Brave&#39;s update reaches your device in full, both fields collapse to the generic value&lt;sup id=&#34;fnref6:brave&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:brave&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt; &lt;h2 id=&#34;Parts-of-the-problem-stay-open&#34;&gt;Parts of the problem stay open&lt;a class=&#34;headerlink&#34; href=&#34;#Parts-of-the-problem-stay-open&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The list of supported WebGPU extensions is not randomized yet, and Brave&#39;s announcement says that change is planned&lt;sup id=&#34;fnref7:brave&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:brave&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. Graphics APIs remain an active area of fingerprinting research, and new leak channels keep appearing.&lt;/p&gt; &lt;p&gt;Brave kept the ability to adjust protection per site while site breakage is still under observation, so a user meeting a site that genuinely will not work can disable graphics protection for that site, disable fingerprinting protection, or turn off Shields entirely&lt;sup id=&#34;fnref8:brave&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:brave&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. Keeping those switches means the trade-off is still live, and neither uniformity nor added noise can guarantee that every site behaves as before.&lt;/p&gt; &lt;p&gt;Fingerprinting does not end with one browser update, and with the graphics card handled, font lists, canvas rendering output, and audio processing traits are all still there. Signals that can safely collapse to a constant should collapse; signals tied to feature negotiation get noise instead. That dividing line works just as well for examining any other tool that claims fingerprinting resistance.&lt;/p&gt; &lt;h2 id=&#34;Where-to-go-from-here&#34;&gt;Where to go from here&lt;a class=&#34;headerlink&#34; href=&#34;#Where-to-go-from-here&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;../../../../basics/browser-fingerprinting/&#34;&gt;A browser fingerprint cannot be cleared the way a cookie can&lt;/a&gt; — what a fingerprint is made of, why it resists a clean fix, and where each browser stands by default&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../basics/platform-tracking/&#34;&gt;How platforms collect your data, and the microphone question&lt;/a&gt; — where device fingerprinting sits in the wider tracking ecosystem&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../tools/tor-browser-advanced/&#34;&gt;Tor Browser advanced settings&lt;/a&gt; — fingerprinting resistance and window size in practice&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../basics/threat-model/&#34;&gt;Threat modeling&lt;/a&gt; — establish who you are defending against before picking tools&lt;/li&gt; &lt;/ul&gt; &lt;div class=&#34;footnote&#34;&gt; &lt;hr /&gt; &lt;ol&gt; &lt;li id=&#34;fn:brave&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://brave.com/privacy-updates/38-webgl-webgpu-fingerprinting-protections/&#34; target=&#34;_blank&#34;&gt;Brave improves protections against GPU fingerprinting&lt;/a&gt; — Brave privacy update 38. Source for the three protections, the crawl observation, the compatibility handling, and the plans described here. Verified 2026-08-14.&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:brave&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref2:brave&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref3:brave&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref4:brave&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref5:brave&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref6:brave&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref7:brave&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref8:brave&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:farbling&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://brave.com/privacy-updates/4-fingerprinting-defenses-2.0/&#34; target=&#34;_blank&#34;&gt;Fingerprinting defenses 2.0&lt;/a&gt; — Brave privacy update 4, 2020. Source for the definition of farbling, the HMAC256 seed mechanism, and the research lineage. The note that third-party frames inherit the top-level seed also appears in Brave&#39;s &lt;a href=&#34;https://github.com/brave/brave-browser/wiki/Fingerprinting-Protections&#34; target=&#34;_blank&#34;&gt;Fingerprinting Protections wiki&lt;/a&gt;, a page subject to ongoing edits. Verified 2026-08-18.&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:farbling&#34; title=&#34;Jump back to footnote 2 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref2:farbling&#34; title=&#34;Jump back to footnote 2 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref3:farbling&#34; title=&#34;Jump back to footnote 2 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref4:farbling&#34; title=&#34;Jump back to footnote 2 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref5:farbling&#34; title=&#34;Jump back to footnote 2 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:tor&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://blog.torproject.org/browser-fingerprinting-introduction-and-challenges-ahead/&#34; target=&#34;_blank&#34;&gt;Browser Fingerprinting: An Introduction and the Challenges Ahead&lt;/a&gt; — Pierre Laperdrix, The Tor Project blog, 4 September 2019. Source for the uniformity route, letterboxing, and the Paradox of Fingerprintable Privacy Enhancing Technologies. The specific measures described there match the Tor Browser version current at the time of writing. The paradox itself is credited there to Eckersley, PETS 2010. Verified 2026-08-18.&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:tor&#34; title=&#34;Jump back to footnote 3 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref2:tor&#34; title=&#34;Jump back to footnote 3 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:mdn&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_debug_renderer_info&#34; target=&#34;_blank&#34;&gt;WEBGL_debug_renderer_info&lt;/a&gt; — MDN Web Docs. Source for the definitions of both constants and for Firefox disabling the extension when &lt;code&gt;privacy.resistFingerprinting&lt;/code&gt; is true. Verified 2026-08-18.&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:mdn&#34; title=&#34;Jump back to footnote 4 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref2:mdn&#34; title=&#34;Jump back to footnote 4 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/08/brave-gpu-fingerprinting/</link> <pubDate>Wed, 19 Aug 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/08/brave-gpu-fingerprinting/</guid> <enclosure url="https://ipfs.anoni.net/en/assets/images/social/blog/2026/08/brave-gpu-fingerprinting.png" type="image/png" length="56008" /> </item> <item> <title>Two online sessions on digital security with Tian Jian, and the 26 August one is still open</title> <author>anoni.net Community</author> <category>Community</category> <category>Privacy</category> <category>event</category> <description>&lt;h1 id=&#34;Two-online-sessions-on-digital-security-with-Tian-Jian-and-the-26-August-one-is-still-open&#34;&gt;Two online sessions on digital security with Tian Jian, and the 26 August one is still open&lt;a class=&#34;headerlink&#34; href=&#34;#Two-online-sessions-on-digital-security-with-Tian-Jian-and-the-26-August-one-is-still-open&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;figure&gt; &lt;img alt=&#34;Poster for the digital security and privacy series&#34; src=&#34;https://assets.anoni.net/blog/tianjian-digital-privacy.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt; &lt;br /&gt; &lt;figcaption&gt;Series poster by Tian Jian. Source: &lt;a href=&#34;https://tian-jian.org/tj-field-school/event/digital-privacy/&#34; target=&#34;_blank&#34;&gt;TJ Field School event page&lt;/a&gt;&lt;/figcaption&gt; &lt;/figure&gt; &lt;p&gt;Tian Jian&#39;s learning platform TJ Field School is running a two-session series on digital security and privacy. Toomore from our community gave the first session on 12 August, and Mashbean takes the second on 26 August. Registration is still open.&lt;/p&gt; &lt;p&gt;Both sessions are conducted in Mandarin Chinese.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;About-Tian-Jian-and-TJ-Field-School&#34;&gt;About Tian Jian and TJ Field School&lt;a class=&#34;headerlink&#34; href=&#34;#About-Tian-Jian-and-TJ-Field-School&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Tian Jian is the Chinese-language publication of the China Media Project, an independent research project founded in 2004 at the Journalism and Media Studies Centre of the University of Hong Kong, now based in the United States with a research centre in Taipei. It covers the development of and challenges facing Chinese-language media worldwide, and encourages exchange across media circles. Its &lt;a href=&#34;https://tian-jian.org/information#about&#34; target=&#34;_blank&#34;&gt;about page&lt;/a&gt; reads: &#34;We firmly believe in press freedom, and we work towards a democratic and open society across the Chinese-speaking world.&#34; The core team is three people: Heng Yu Chien as chief editor, Su Hsiao Fan as reporter, and Lu Yihsuan as investigations coordinator. An editorial advisory board sits alongside them, including an independent journalist, the chair of the Hong Kong Journalists Association, an associate professor at the School of Journalism and Communication at CUHK, the founder of the digital media literacy lab FactLink, an author writing on Malaysian Chinese communities in Taiwan, and the editor-in-chief of the data journalism outlet READr.&lt;/p&gt; &lt;p&gt;TJ Field School is its learning platform for Chinese-language journalists and content creators, and both courses and events are free. The series description on the event page reads: &#34;In an age where security risks are everywhere, a personal digital footprint matters especially to news workers. This series starts from taking stock of your own devices, and moves on to how platform intermediaries can become a shield that protects information flow and supports safe collaboration.&#34;&lt;/p&gt; &lt;p&gt;The split between the two sessions is clear. The first covers the devices and accounts a journalist holds, and the second covers the platforms a journalist depends on.&lt;/p&gt; &lt;h2 id=&#34;Session-one-personal-privacy-and-the-sources-in-your-hands-finished&#34;&gt;Session one, personal privacy and the sources in your hands (finished)&lt;a class=&#34;headerlink&#34; href=&#34;#Session-one-personal-privacy-and-the-sources-in-your-hands-finished&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;Time: Wednesday, August 12, 2026, 19:30 - 21:00 (+0800)&lt;/li&gt; &lt;li&gt;Speaker: Toomore, co-maintainer of anoni.net&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;The session began by taking stock of personal privacy: reviewing location permissions on your phone, assessing where your current protections stand, and handling incidents that come up in reporting work.&lt;/p&gt; &lt;p&gt;Su Hsiao Fan, a reporter at Tian Jian, wrote up the session in a set of notes published on 18 August 2026 (in Chinese):&lt;/p&gt; &lt;p&gt;&lt;a class=&#34;md-button&#34; href=&#34;https://tian-jian.org/digital-security-and-privacy-class/&#34; target=&#34;_blank&#34;&gt;&lt;span class=&#34;twemoji&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34;&gt;&lt;path d=&#34;M6 13v-2h8l-3.5-3.5 1.42-1.42L17.84 12l-5.92 5.92-1.42-1.42L14 13zm16-1a10 10 0 0 1-10 10A10 10 0 0 1 2 12 10 10 0 0 1 12 2a10 10 0 0 1 10 10m-2 0a8 8 0 0 0-8-8 8 8 0 0 0-8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8&#34;/&gt;&lt;/svg&gt;&lt;/span&gt; 【在田間學】數位資安與隱私保護系列課程&lt;/a&gt;&lt;/p&gt; &lt;p&gt;(By Su Hsiao Fan, Tian Jian, 18 August 2026)&lt;/p&gt; &lt;p&gt;The notes are organized into six parts: a personal privacy checkup, contacts and calendars, accounts and passwords, WiFi and mobile devices, reaching sources, and recommended tools. The write-up is easier to follow than the session was live, so if you missed it or want to review it, that article is the fastest way to catch up. One line from the notes works well as a starting point: &#34;try not to let your apps touch your address book.&#34;&lt;/p&gt; &lt;p&gt;The topics from that session all have matching pages on this site.&lt;/p&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Section in the notes&lt;/th&gt; &lt;th&gt;Further reading&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Personal privacy checkup&lt;/td&gt; &lt;td&gt;&lt;a href=&#34;../../../../scenarios/everyday-baseline/&#34;&gt;What an ordinary person should actually do&lt;/a&gt;, &lt;a href=&#34;../../../../basics/platform-tracking/&#34;&gt;How platforms collect your data&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Contacts and calendars&lt;/td&gt; &lt;td&gt;&lt;a href=&#34;../../../../basics/metadata/&#34;&gt;Metadata, and why it matters&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Accounts and passwords&lt;/td&gt; &lt;td&gt;&lt;a href=&#34;../../../../tools/password-manager/&#34;&gt;Getting Started with Password Managers&lt;/a&gt;, &lt;a href=&#34;../../../../tools/asian-diceware/&#34;&gt;Asian Diceware&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;WiFi and mobile devices&lt;/td&gt; &lt;td&gt;&lt;a href=&#34;../../../../scenarios/asia-travel/&#34;&gt;Device minimization and border crossings in Asia&lt;/a&gt;, &lt;a href=&#34;../../../../basics/browser-fingerprinting/&#34;&gt;A browser fingerprint cannot be cleared the way a cookie can&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Reaching sources&lt;/td&gt; &lt;td&gt;&lt;a href=&#34;../../../../scenarios/journalist/&#34;&gt;Journalists and source protection&lt;/a&gt;, &lt;a href=&#34;../../../../tools/messaging-comparison/&#34;&gt;Secure messaging compared&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;On the advice to build a passphrase from three to six randomly ordered English words, we maintain a wordlist with an Asian flavor: &lt;a href=&#34;../../../../tools/asian-diceware/&#34;&gt;Asian Diceware&lt;/a&gt;.&lt;/p&gt; &lt;h2 id=&#34;Session-two-how-platform-intermediaries-can-shield-independent-journalists-26-August&#34;&gt;Session two, how platform intermediaries can shield independent journalists (26 August)&lt;a class=&#34;headerlink&#34; href=&#34;#Session-two-how-platform-intermediaries-can-shield-independent-journalists-26-August&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;Time: Wednesday, August 26, 2026, 19:30 - 21:00 (+0800), 13:30 - 15:00 CET, 07:30 - 09:00 US Eastern&lt;/li&gt; &lt;li&gt;Speaker: Mashbean, Allen Lab Fellow at Harvard Kennedy School and general manager of Matters&lt;/li&gt; &lt;li&gt;Format: online via Webex, free, conducted in Mandarin Chinese&lt;/li&gt; &lt;li&gt;Topics: anonymity, privacy protection, communication security and moving resources safely, along with practical tools you can adopt right away&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Registration goes through the button on the event page, and it requires a TJ Field School account. Tian Jian will send participants a digital booklet after the session.&lt;/p&gt; &lt;p&gt;&lt;a class=&#34;md-button&#34; href=&#34;https://tian-jian.org/tj-field-school/event/digital-privacy/&#34; target=&#34;_blank&#34;&gt;&lt;span class=&#34;twemoji&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34;&gt;&lt;path d=&#34;M6 13v-2h8l-3.5-3.5 1.42-1.42L17.84 12l-5.92 5.92-1.42-1.42L14 13zm16-1a10 10 0 0 1-10 10A10 10 0 0 1 2 12 10 10 0 0 1 12 2a10 10 0 0 1 10 10m-2 0a8 8 0 0 0-8-8 8 8 0 0 0-8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8&#34;/&gt;&lt;/svg&gt;&lt;/span&gt; Event page and registration&lt;/a&gt;&lt;/p&gt; &lt;h2 id=&#34;Why-we-recommend-this-one&#34;&gt;Why we recommend this one&lt;a class=&#34;headerlink&#34; href=&#34;#Why-we-recommend-this-one&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The first session focused on what a journalist controls directly: devices, accounts, browser fingerprints, and the channels used to reach sources. Once that work is done, a large share of the remaining risk sits with the platforms. Whose servers hold the messages. What a platform does when it is asked to hand over data. Whether the work survives a takedown or an account suspension. None of that is reachable through personal settings. The second session takes up what platform intermediaries can do for journalists, which covers the half we left out.&lt;/p&gt; &lt;h2 id=&#34;More-resources&#34;&gt;&lt;span class=&#34;twemoji&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--&gt;&lt;path d=&#34;M464 256a208 208 0 1 0-416 0 208 208 0 1 0 416 0M0 256a256 256 0 1 1 512 0 256 256 0 1 1-512 0m256-80c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 47.2-36 67.2-56 74.5v3.8c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8.1c0-20.5 14.8-35.2 30.1-40.2 6.4-2.1 13.2-5.5 18.2-10.3 4.3-4.2 7.7-10 7.7-19.6 0-17.7-14.3-32-32-32zm-32 192a32 32 0 1 1 64 0 32 32 0 1 1-64 0&#34;/&gt;&lt;/svg&gt;&lt;/span&gt; More resources&lt;a class=&#34;headerlink&#34; href=&#34;#More-resources&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;div class=&#34;grid cards&#34;&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;../../../../scenarios/journalist/&#34;&gt;&lt;span class=&#34;twemoji&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34;&gt;&lt;path d=&#34;M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5zm0 4a3 3 0 0 1 3 3 3 3 0 0 1-3 3 3 3 0 0 1-3-3 3 3 0 0 1 3-3m5.13 12A9.7 9.7 0 0 1 12 20.92 9.7 9.7 0 0 1 6.87 17c-.34-.5-.63-1-.87-1.53 0-1.65 2.71-3 6-3s6 1.32 6 3c-.24.53-.53 1.03-.87 1.53&#34;/&gt;&lt;/svg&gt;&lt;/span&gt; Journalists and source protection&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../tools/password-manager/&#34;&gt;&lt;span class=&#34;twemoji&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34;&gt;&lt;path d=&#34;M12.67 13.67c-.47.46-1.04.83-1.67 1.06V23H8v-2H5v-3h3v-3.28c-1.74-.62-3-2.26-3-4.22C5 8 7 6 9.5 6h.1c-.47.95-.68 2-.57 3.08-.59.2-1.03.76-1.03 1.42 0 .83.67 1.5 1.5 1.5.23 0 .45-.06.65-.15.64.84 1.52 1.47 2.52 1.82m8.06 5.77-2.76 1.16-.78-1.84-2.76 1.17-1.17-2.77L16.03 16l-1.27-3c-1.85.08-3.65-.95-4.41-2.75-.96-2.29.12-4.93 2.41-5.9.24-.1.5-.17.74-.23C12.84 2.87 11.5 2 10 2 7.79 2 6 3.79 6 6v.24c-.3.26-.6.58-.85.91C5.06 6.78 5 6.4 5 6c0-2.76 2.24-5 5-5s5 2.24 5 5c0 1.42-.6 2.67-1.55 3.57.42.43 1.05.56 1.63.31.77-.32 1.12-1.2.8-1.96a1 1 0 0 0-.14-.26C15.9 7.13 16 6.58 16 6c0-.63-.1-1.24-.28-1.81 1.28.36 2.38 1.25 2.93 2.57.76 1.8.24 3.81-1.15 5.05zM13 8.6c.37-.41.65-.89.82-1.42-.54.27-.85.82-.82 1.42&#34;/&gt;&lt;/svg&gt;&lt;/span&gt; Getting Started with Password Managers&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../basics/browser-fingerprinting/&#34;&gt;&lt;span class=&#34;twemoji&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34;&gt;&lt;path d=&#34;M17.81 4.47c-.08 0-.16-.02-.23-.06C15.66 3.42 14 3 12 3c-1.97 0-3.85.47-5.56 1.41-.24.13-.54.04-.68-.2a.506.506 0 0 1 .2-.68C7.82 2.5 9.86 2 12 2s4 .47 6.04 1.5c.25.15.34.45.21.69a.48.48 0 0 1-.44.28M3.5 9.72c-.1 0-.2-.03-.29-.09a.517.517 0 0 1-.12-.7c.99-1.4 2.25-2.5 3.75-3.27C10 4.04 14 4.03 17.15 5.65c1.5.77 2.76 1.85 3.75 3.25.16.22.1.54-.12.7-.23.16-.54.11-.7-.1a9.26 9.26 0 0 0-3.39-2.96c-2.87-1.47-6.54-1.47-9.4.01-1.36.7-2.5 1.7-3.4 2.95-.08.15-.23.22-.39.22m6.25 12.07c-.13 0-.25-.05-.35-.15-.87-.87-1.34-1.43-2.01-2.64-.69-1.23-1.05-2.73-1.05-4.34 0-2.97 2.54-5.39 5.66-5.39s5.66 2.42 5.66 5.39a.5.5 0 0 1-.5.5.5.5 0 0 1-.5-.5c0-2.42-2.09-4.39-4.66-4.39s-4.66 1.97-4.66 4.39c0 1.44.32 2.77.93 3.84.64 1.16 1.08 1.65 1.85 2.43.19.2.19.51 0 .71-.12.1-.24.15-.37.15m7.17-1.85c-1.19 0-2.24-.3-3.1-.89-1.49-1.01-2.38-2.65-2.38-4.39a.5.5 0 0 1 .5-.5.5.5 0 0 1 .5.5c0 1.41.72 2.74 1.94 3.56.71.48 1.54.71 2.54.71.24 0 .64-.03 1.04-.1.27-.05.54.13.58.41.05.26-.13.53-.41.58-.57.11-1.07.12-1.21.12M14.91 22h-.13c-1.59-.46-2.63-1.05-3.72-2.12a7.28 7.28 0 0 1-2.17-5.22c0-1.62 1.38-2.94 3.08-2.94s3.08 1.32 3.08 2.94c0 1.07.95 1.94 2.08 1.94 1.15 0 2.08-.87 2.08-1.94 0-3.77-3.25-6.83-7.25-6.83-2.84 0-5.46 1.58-6.61 4.03-.39.81-.59 1.76-.59 2.8 0 .78.07 2.01.67 3.61.1.26-.03.55-.29.64a.504.504 0 0 1-.64-.29c-.5-1.31-.73-2.62-.73-3.96 0-1.2.23-2.29.68-3.24 1.33-2.79 4.28-4.6 7.51-4.6 4.54 0 8.25 3.51 8.25 7.83 0 1.62-1.38 2.94-3.08 2.94s-3.08-1.32-3.08-2.94c0-1.07-.93-1.94-2.08-1.94s-2.08.87-2.08 1.94c0 1.71.66 3.31 1.87 4.51.95.94 1.86 1.46 3.27 1.84.27.08.42.36.35.62-.05.23-.26.38-.47.38&#34;/&gt;&lt;/svg&gt;&lt;/span&gt; A browser fingerprint cannot be cleared the way a cookie can&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../community/&#34;&gt;&lt;span class=&#34;twemoji&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34;&gt;&lt;path d=&#34;M12 5.5A3.5 3.5 0 0 1 15.5 9a3.5 3.5 0 0 1-3.5 3.5A3.5 3.5 0 0 1 8.5 9 3.5 3.5 0 0 1 12 5.5M5 8c.56 0 1.08.15 1.53.42-.15 1.43.27 2.85 1.13 3.96C7.16 13.34 6.16 14 5 14a3 3 0 0 1-3-3 3 3 0 0 1 3-3m14 0a3 3 0 0 1 3 3 3 3 0 0 1-3 3c-1.16 0-2.16-.66-2.66-1.62a5.54 5.54 0 0 0 1.13-3.96c.45-.27.97-.42 1.53-.42M5.5 18.25c0-2.07 2.91-3.75 6.5-3.75s6.5 1.68 6.5 3.75V20h-13zM0 20v-1.5c0-1.39 1.89-2.56 4.45-2.9-.59.68-.95 1.62-.95 2.65V20zm24 0h-3.5v-1.75c0-1.03-.36-1.97-.95-2.65 2.56.34 4.45 1.51 4.45 2.9z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt; Community &amp;amp; Collaboration&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/08/tianjian-digital-privacy/</link> <pubDate>Wed, 19 Aug 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/08/tianjian-digital-privacy/</guid> <enclosure url="https://assets.anoni.net/blog/tianjian-digital-privacy.webp" type="image/webp" length="85718" /> </item> <item> <title>Thirty Minutes of Mobile Throttling in Northern Taiwan, Read from OONI&#39;s Public Data</title> <author>anoni.net Community</author> <category>Community</category> <category>OONI</category> <description>&lt;h1 id=&#34;Thirty-Minutes-of-Mobile-Throttling-in-Northern-Taiwan-Read-from-OONIs-Public-Data&#34;&gt;Thirty Minutes of Mobile Throttling in Northern Taiwan, Read from OONI&#39;s Public Data&lt;a class=&#34;headerlink&#34; href=&#34;#Thirty-Minutes-of-Mobile-Throttling-in-Northern-Taiwan-Read-from-OONIs-Public-Data&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;&lt;img alt=&#34;Measuring the mobile throttle of 13 August together&#34; src=&#34;../../../assets/images/ooni-run-v2.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;Taiwan has long gone without large-scale throttling or shutdowns. That is good for daily life, and for anyone trying to understand network anomalies it means there is no local sample to compare against. &lt;a href=&#34;https://ooni.org/about/&#34; target=&#34;_blank&#34;&gt;OONI&lt;/a&gt; is a long-running open source project measuring network interference and connection quality worldwide; anyone can install its app to contribute, and every result is published. Taiwan&#39;s record in that database has consistently shown a network working normally.&lt;/p&gt; &lt;p&gt;In the 30 days before 13 August, the three mobile carriers in Taiwan recorded 564 successful connection speed tests (the test is named &lt;code&gt;ndt&lt;/code&gt;), with a median download of &lt;code&gt;12,425&lt;/code&gt; kbit/s and only 4 measurements below &lt;code&gt;2,000&lt;/code&gt; kbit/s, two of which were failures. kbit/s counts thousands of bits transferred per second — higher is faster, and &lt;code&gt;1,000&lt;/code&gt; kbit/s is roughly 1 Mbps.&lt;/p&gt; &lt;p&gt;From 14:30 to 15:00 Taipei time on 13 August, mobile networks across seven northern counties were throttled for 30 minutes. &lt;a href=&#34;../ooni-mobile-throttle-drill/&#34;&gt;Two days earlier the community put out a call&lt;/a&gt; asking people to run OONI Probe&#39;s performance tests during that window. Taiwan recorded 238 connection speed tests and 235 video streaming tests (named &lt;code&gt;dash&lt;/code&gt;) that day, with 170 and 168 of them completed on mobile networks, coming from 47 devices. During the equivalent window at the central Taiwan drill on 10 August, the whole country produced zero mobile performance measurements.&lt;/p&gt; &lt;p&gt;The call started with community member &lt;a href=&#34;https://mashbean.net/about/&#34; target=&#34;_blank&#34;&gt;mashbean&lt;/a&gt;, who proposed using the drill as a rare measurement opportunity. The two sides then prepared separately, one writing the call and the operating instructions, the other observing in the field on the day. He wrote his own record up as &lt;a href=&#34;https://mashbean.net/blog/2026/0813-16xy2v/&#34; target=&#34;_blank&#34;&gt;a separate post&lt;/a&gt;, which follows the network past the announced end of the drill and covers a period this dataset cannot see. Read together, the two posts span the full afternoon.&lt;/p&gt; &lt;p&gt;One Chunghwa Telecom Mobile handset measured &lt;code&gt;788&lt;/code&gt; to &lt;code&gt;1,709&lt;/code&gt; kbit/s during the throttle. Taiwan&#39;s public data had never shown figures of that order. It should be said up front that those figures come from 6 records left by a single device: enough to stand as one complete case, not enough to generalise to the country or to any carrier.&lt;/p&gt; &lt;p&gt;This post records network conditions. Whether carriers followed instructions precisely, and whether the officially published figure is accurate, are both outside its scope. Taiwan had no data on what throttling looks like, and preserving these 30 minutes is the point. Every query below works without authentication or an API key, so readers can run them again.&lt;/p&gt; &lt;p&gt;The most useful thing to come out of the analysis has nothing to do with throttling itself. It is a reading method: &lt;strong&gt;throttling and blocking produce completely different shapes in OONI data&lt;/strong&gt;. Blocking sends anomaly rates up and leaves confirmed-blocking records behind, while throttling leaves the verdict fields untouched and shows up only in throughput and latency values. Taiwan&#39;s web connectivity anomaly rate that day was &lt;code&gt;1.0%&lt;/code&gt;, in the same band as the usual &lt;code&gt;0.6%&lt;/code&gt;, with confirmed blocking at &lt;code&gt;0&lt;/code&gt; all day. Only speed went down. Describing a throttle through blocking anomaly rates returns a figure close to normal, and leads to the conclusion that nothing happened.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;The-overall-shape-of-that-days-data&#34;&gt;The overall shape of that day&#39;s data&lt;a class=&#34;headerlink&#34; href=&#34;#The-overall-shape-of-that-days-data&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Grouping every connection speed test in Taiwan that day into 15-minute buckets makes the community mobilisation visible in the data itself.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Connection speed tests per 15-minute interval on 13 August, orange marks the throttle window&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;vegachart style=&#39;width: 100%&#39; class=&#34;vegalite&#34;&gt;{&#34;description&#34;:&#34;OONI ndt measurements per 15 minutes in Taiwan on 2026-08-13&#34;,&#34;data&#34;:{&#34;values&#34;:[{&#34;t&#34;:&#34;13:00&#34;,&#34;n&#34;:3,&#34;g&#34;:&#34;Normal hours&#34;},{&#34;t&#34;:&#34;13:15&#34;,&#34;n&#34;:4,&#34;g&#34;:&#34;Normal hours&#34;},{&#34;t&#34;:&#34;13:30&#34;,&#34;n&#34;:11,&#34;g&#34;:&#34;Normal hours&#34;},{&#34;t&#34;:&#34;13:45&#34;,&#34;n&#34;:4,&#34;g&#34;:&#34;Normal hours&#34;},{&#34;t&#34;:&#34;14:00&#34;,&#34;n&#34;:9,&#34;g&#34;:&#34;Normal hours&#34;},{&#34;t&#34;:&#34;14:15&#34;,&#34;n&#34;:27,&#34;g&#34;:&#34;Normal hours&#34;},{&#34;t&#34;:&#34;14:30&#34;,&#34;n&#34;:13,&#34;g&#34;:&#34;Throttle window&#34;},{&#34;t&#34;:&#34;14:45&#34;,&#34;n&#34;:50,&#34;g&#34;:&#34;Throttle window&#34;},{&#34;t&#34;:&#34;15:00&#34;,&#34;n&#34;:31,&#34;g&#34;:&#34;Normal hours&#34;},{&#34;t&#34;:&#34;15:15&#34;,&#34;n&#34;:15,&#34;g&#34;:&#34;Normal hours&#34;},{&#34;t&#34;:&#34;15:30&#34;,&#34;n&#34;:2,&#34;g&#34;:&#34;Normal hours&#34;},{&#34;t&#34;:&#34;15:45&#34;,&#34;n&#34;:2,&#34;g&#34;:&#34;Normal hours&#34;}]},&#34;mark&#34;:{&#34;type&#34;:&#34;bar&#34;,&#34;tooltip&#34;:true,&#34;cornerRadiusEnd&#34;:4},&#34;encoding&#34;:{&#34;x&#34;:{&#34;field&#34;:&#34;t&#34;,&#34;type&#34;:&#34;ordinal&#34;,&#34;title&#34;:&#34;Taipei time (15-minute buckets)&#34;,&#34;axis&#34;:{&#34;labelAngle&#34;:-45}},&#34;y&#34;:{&#34;field&#34;:&#34;n&#34;,&#34;type&#34;:&#34;quantitative&#34;,&#34;title&#34;:&#34;Connection speed tests&#34;},&#34;color&#34;:{&#34;field&#34;:&#34;g&#34;,&#34;type&#34;:&#34;nominal&#34;,&#34;title&#34;:null,&#34;scale&#34;:{&#34;domain&#34;:[&#34;Normal hours&#34;,&#34;Throttle window&#34;],&#34;range&#34;:[&#34;#0089bf&#34;,&#34;#e65100&#34;]},&#34;legend&#34;:{&#34;orient&#34;:&#34;top&#34;}}}}&lt;/vegachart&gt;&lt;/p&gt; &lt;p&gt;The call asked people to set an alarm for &lt;code&gt;14:35&lt;/code&gt;, and to add &lt;code&gt;14:15&lt;/code&gt; and &lt;code&gt;15:10&lt;/code&gt; if they had time. All three peaks show up, with the 50 measurements between &lt;code&gt;14:45&lt;/code&gt; and &lt;code&gt;15:00&lt;/code&gt; the highest point of the day. Over the previous 30 days Taiwan averaged about 34 connection speed tests per day, mostly from a handful of devices on automatic schedules. A single 15-minute bucket that afternoon beat a normal full day.&lt;/p&gt; &lt;details class=&#34;note&#34;&gt; &lt;summary&gt;Full counts per 15-minute interval&lt;/summary&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Taipei time&lt;/th&gt; &lt;th style=&#34;text-align: right;&#34;&gt;Measurements&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;13:00&lt;/code&gt; to &lt;code&gt;13:15&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;3&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;13:15&lt;/code&gt; to &lt;code&gt;13:30&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;4&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;13:30&lt;/code&gt; to &lt;code&gt;13:45&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;11&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;13:45&lt;/code&gt; to &lt;code&gt;14:00&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;4&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;14:00&lt;/code&gt; to &lt;code&gt;14:15&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;9&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;14:15&lt;/code&gt; to &lt;code&gt;14:30&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;27&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;14:30&lt;/code&gt; to &lt;code&gt;14:45&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;13&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;14:45&lt;/code&gt; to &lt;code&gt;15:00&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;50&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;15:00&lt;/code&gt; to &lt;code&gt;15:15&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;31&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;15:15&lt;/code&gt; to &lt;code&gt;15:30&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;15&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;15:30&lt;/code&gt; to &lt;code&gt;15:45&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;2&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;15:45&lt;/code&gt; to &lt;code&gt;16:00&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;2&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;/details&gt; &lt;p&gt;Participation by carrier is below. An &lt;code&gt;AS&lt;/code&gt; number is the global identifier for an autonomous network; carriers, companies, and universities each have their own. OONI records only down to that level and never the user&#39;s location. Device counts are deduplicated by the anonymous device identifier (&lt;code&gt;probe_id&lt;/code&gt;) that OONI generates.&lt;/p&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Carrier&lt;/th&gt; &lt;th style=&#34;text-align: right;&#34;&gt;13 Aug&lt;/th&gt; &lt;th style=&#34;text-align: right;&#34;&gt;Previous 30 days&lt;/th&gt; &lt;th style=&#34;text-align: right;&#34;&gt;Devices that day&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;AS17421&lt;/code&gt; Chunghwa Telecom Mobile&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;68&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;22&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;AS9674&lt;/code&gt; FarEasTone&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;51&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;15&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;AS24158&lt;/code&gt; Taiwan Mobile&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;55&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;538&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;9&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;All three numeric columns count connection speed tests. The first two are measurement counts, the last is distinct devices: one phone testing three times counts as 3 measurements and 1 device.&lt;/p&gt; &lt;p&gt;Chunghwa Telecom Mobile and FarEasTone were the two thinnest carriers in Taiwan&#39;s OONI record. One afternoon exceeded what each had accumulated over the previous 30 days. Taiwan Mobile&#39;s 30-day count was already high, driven by a few devices running on long-term automation, so the 9 new devices that day represent a distribution that did not exist before.&lt;/p&gt; &lt;p&gt;The data cannot tell who measured because of the call. The performance test in the app is a built-in card (numbered &lt;code&gt;00107&lt;/code&gt;), and every user worldwide taps the same one; over a thousand measurements carried that number outside Taiwan on the same day. The effect of the call can only be estimated from before-and-after volume, never traced to individual participants.&lt;/p&gt; &lt;h2 id=&#34;Zooming-in-on-one-handsets-30-minutes&#34;&gt;Zooming in on one handset&#39;s 30 minutes&lt;a class=&#34;headerlink&#34; href=&#34;#Zooming-in-on-one-handsets-30-minutes&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The device identifier makes it possible to string together every measurement from the same phone. One Chunghwa Telecom Mobile Android handset ran tests both before and during the throttle, leaving 6 records for each of the two performance tests.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Download and upload throughput from a single handset. The grey band marks the throttle window, the vertical axis is logarithmic, and the data spans more than two orders of magnitude. Nothing was measured between 13:33 and 14:36, so the line breaks there&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;vegachart style=&#39;width: 100%&#39; class=&#34;vegalite&#34;&gt;{&#34;description&#34;:&#34;Download vs upload throughput of a single mobile device during the 2026-08-13 throttling drill&#34;,&#34;layer&#34;:[{&#34;data&#34;:{&#34;values&#34;:[{&#34;s&#34;:&#34;2026-08-13T14:30:00&#34;,&#34;e&#34;:&#34;2026-08-13T15:00:00&#34;}]},&#34;mark&#34;:{&#34;type&#34;:&#34;rect&#34;,&#34;opacity&#34;:0.12,&#34;color&#34;:&#34;#546e7a&#34;},&#34;encoding&#34;:{&#34;x&#34;:{&#34;field&#34;:&#34;s&#34;,&#34;type&#34;:&#34;temporal&#34;},&#34;x2&#34;:{&#34;field&#34;:&#34;e&#34;}}},{&#34;data&#34;:{&#34;values&#34;:[{&#34;t&#34;:&#34;2026-08-13T13:32:00&#34;,&#34;d&#34;:&#34;Download&#34;,&#34;seg&#34;:&#34;Before&#34;,&#34;v&#34;:89510},{&#34;t&#34;:&#34;2026-08-13T13:33:00&#34;,&#34;d&#34;:&#34;Download&#34;,&#34;seg&#34;:&#34;Before&#34;,&#34;v&#34;:174682},{&#34;t&#34;:&#34;2026-08-13T14:36:00&#34;,&#34;d&#34;:&#34;Download&#34;,&#34;seg&#34;:&#34;During&#34;,&#34;v&#34;:788},{&#34;t&#34;:&#34;2026-08-13T14:39:00&#34;,&#34;d&#34;:&#34;Download&#34;,&#34;seg&#34;:&#34;During&#34;,&#34;v&#34;:881},{&#34;t&#34;:&#34;2026-08-13T14:51:00&#34;,&#34;d&#34;:&#34;Download&#34;,&#34;seg&#34;:&#34;During&#34;,&#34;v&#34;:1565},{&#34;t&#34;:&#34;2026-08-13T14:52:00&#34;,&#34;d&#34;:&#34;Download&#34;,&#34;seg&#34;:&#34;During&#34;,&#34;v&#34;:1709},{&#34;t&#34;:&#34;2026-08-13T13:32:00&#34;,&#34;d&#34;:&#34;Upload&#34;,&#34;seg&#34;:&#34;Before&#34;,&#34;v&#34;:21510},{&#34;t&#34;:&#34;2026-08-13T13:33:00&#34;,&#34;d&#34;:&#34;Upload&#34;,&#34;seg&#34;:&#34;Before&#34;,&#34;v&#34;:16348},{&#34;t&#34;:&#34;2026-08-13T14:36:00&#34;,&#34;d&#34;:&#34;Upload&#34;,&#34;seg&#34;:&#34;During&#34;,&#34;v&#34;:26300},{&#34;t&#34;:&#34;2026-08-13T14:39:00&#34;,&#34;d&#34;:&#34;Upload&#34;,&#34;seg&#34;:&#34;During&#34;,&#34;v&#34;:31789},{&#34;t&#34;:&#34;2026-08-13T14:51:00&#34;,&#34;d&#34;:&#34;Upload&#34;,&#34;seg&#34;:&#34;During&#34;,&#34;v&#34;:22370},{&#34;t&#34;:&#34;2026-08-13T14:52:00&#34;,&#34;d&#34;:&#34;Upload&#34;,&#34;seg&#34;:&#34;During&#34;,&#34;v&#34;:32695}]},&#34;mark&#34;:{&#34;type&#34;:&#34;line&#34;,&#34;strokeWidth&#34;:2,&#34;point&#34;:{&#34;size&#34;:70,&#34;filled&#34;:true},&#34;tooltip&#34;:true},&#34;encoding&#34;:{&#34;x&#34;:{&#34;field&#34;:&#34;t&#34;,&#34;type&#34;:&#34;temporal&#34;,&#34;title&#34;:&#34;Taipei time&#34;,&#34;axis&#34;:{&#34;format&#34;:&#34;%H:%M&#34;},&#34;scale&#34;:{&#34;padding&#34;:18}},&#34;y&#34;:{&#34;field&#34;:&#34;v&#34;,&#34;type&#34;:&#34;quantitative&#34;,&#34;scale&#34;:{&#34;type&#34;:&#34;log&#34;,&#34;domain&#34;:[500,250000],&#34;nice&#34;:false},&#34;title&#34;:&#34;Throughput kbit/s (log scale)&#34;},&#34;color&#34;:{&#34;field&#34;:&#34;d&#34;,&#34;type&#34;:&#34;nominal&#34;,&#34;title&#34;:null,&#34;scale&#34;:{&#34;domain&#34;:[&#34;Download&#34;,&#34;Upload&#34;],&#34;range&#34;:[&#34;#0089bf&#34;,&#34;#e65100&#34;]},&#34;legend&#34;:{&#34;orient&#34;:&#34;top&#34;}},&#34;detail&#34;:{&#34;field&#34;:&#34;seg&#34;,&#34;type&#34;:&#34;nominal&#34;}}}]}&lt;/vegachart&gt;&lt;/p&gt; &lt;p&gt;The two download segments sit two orders of magnitude apart. The two upload segments sit at almost the same height.&lt;/p&gt; &lt;p&gt;The first two records come from about an hour before the throttle began, the last four from inside the window. The median download fell from &lt;code&gt;132,096&lt;/code&gt; kbit/s to &lt;code&gt;1,223&lt;/code&gt; kbit/s, and the two tests independently produce ratios of &lt;code&gt;1/108&lt;/code&gt; and &lt;code&gt;1/88&lt;/code&gt;. Put back into the context of Taiwan&#39;s data the gap is starker still: across 18 measurements in the previous 30 days, Chunghwa Telecom Mobile&#39;s lowest value was &lt;code&gt;42,197&lt;/code&gt; kbit/s, so the &lt;code&gt;788&lt;/code&gt; kbit/s recorded during the throttle is an order that carrier had never shown in public data.&lt;/p&gt; &lt;p&gt;The same measurements also record round-trip time and retransmission rate. All six in full:&lt;/p&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Taipei time&lt;/th&gt; &lt;th style=&#34;text-align: right;&#34;&gt;Download&lt;/th&gt; &lt;th style=&#34;text-align: right;&#34;&gt;Upload&lt;/th&gt; &lt;th style=&#34;text-align: right;&#34;&gt;Streaming bitrate&lt;/th&gt; &lt;th style=&#34;text-align: right;&#34;&gt;Min RTT&lt;/th&gt; &lt;th style=&#34;text-align: right;&#34;&gt;Avg RTT&lt;/th&gt; &lt;th style=&#34;text-align: right;&#34;&gt;Retransmit&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;13:32&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;89,510&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;21,510&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;138,513&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;18.39&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;66.78&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;0.000%&lt;/code&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;13:33&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;174,682&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;16,348&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;119,179&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;17.85&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;82.05&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;0.001%&lt;/code&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;14:36&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;788&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;26,300&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;1,308&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;16.85&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;168.40&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;0.522%&lt;/code&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;14:39&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;881&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;31,789&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;1,608&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;19.97&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;137.24&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;0.202%&lt;/code&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;14:51&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;1,565&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;22,370&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;1,624&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;18.72&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;130.05&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;0.000%&lt;/code&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;14:52&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;1,709&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;32,695&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;821&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;18.28&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;114.79&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;&lt;code&gt;0.000%&lt;/code&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;The first three numeric columns are in kbit/s and higher is faster; &lt;code&gt;1,308&lt;/code&gt; kbit/s corresponds roughly to standard-definition streaming. The two RTT columns are in milliseconds and lower is faster. Minimum RTT takes the quickest round trip across the whole test and approximates the path itself, while average RTT also absorbs any queuing along the way. The retransmission rate is the share of packets that had to be sent again.&lt;/p&gt; &lt;p&gt;One caveat applies when reading the throughput. The connection speed test terminates at an M-Lab server, so the figure covers both the last mile and the international leg to that server, and a single result cannot separate the two. The latency fields answer that concern directly: minimum RTT held between 17 and 20 ms throughout, consistent with an unchanged packet path, which makes it less likely the speed change originated on the international leg. Average RTT rose from 67 to 82 ms up to 115 to 168 ms, indicating packets queuing somewhere. The retransmission rate rose in two of the four records, from near &lt;code&gt;0&lt;/code&gt; to &lt;code&gt;0.522%&lt;/code&gt; and &lt;code&gt;0.202%&lt;/code&gt; — a large relative change, though the absolute value stayed under &lt;code&gt;0.6%&lt;/code&gt;, which fits delayed delivery rather than heavy discarding.&lt;/p&gt; &lt;p&gt;Taken together, the three fields form the signature of traffic shaping. Had the mechanism been packet dropping, the retransmission rate would have climbed far more sharply. Had the cause been signal degradation or a cell handover, minimum RTT would usually have moved with it. This reading, too, rests on a single device.&lt;/p&gt; &lt;p&gt;The Executive Yuan described the method as core-network rate limiting, capping mobile download speed at 256KB&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;. The original wording does not state a unit. Read as 256 KB per second it converts to &lt;code&gt;2,048&lt;/code&gt; kbit/s. Read as 256 kbit/s it would be an entirely different order. This post makes no numerical comparison against that figure and cites it only so readers know what magnitude was announced.&lt;/p&gt; &lt;h2 id=&#34;Measurements-without-a-throttle-signal-carry-the-comparison&#34;&gt;Measurements without a throttle signal carry the comparison&lt;a class=&#34;headerlink&#34; href=&#34;#Measurements-without-a-throttle-signal-carry-the-comparison&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Of the 47 devices, 46 measured normal speeds during the window. Across the three mobile carriers, the median download was &lt;code&gt;42.2&lt;/code&gt; Mbps during the throttle, &lt;code&gt;53.2&lt;/code&gt; Mbps before it, and &lt;code&gt;58.5&lt;/code&gt; Mbps after, all in the same band.&lt;/p&gt; &lt;p&gt;A whole batch of normal figures underneath is exactly what makes a single device&#39;s &lt;code&gt;788&lt;/code&gt; kbit/s stand out. Had everyone measured low speeds that day, the reasonable reading would be a nationwide slowdown or ordinary variation. Had only one phone been measuring, the low figure could equally have come from that handset&#39;s own situation, such as poor signal or a background app consuming bandwidth. With 32 devices running the same tests in the same window and 31 of them normal, a single device&#39;s anomaly holds up.&lt;/p&gt; &lt;p&gt;That is why the call asked people outside the throttled area to measure as well. Those measurements were not wasted; they determine whether the figures from inside the area can be read at all. Someone in Tainan, in Kaohsiung, or not in Taiwan at all, contributes to the comparison simply by running the test at the same moment, because it all lands in the same public database.&lt;/p&gt; &lt;p&gt;Thousands of identical performance tests ran worldwide that day. What distinguishes Taiwan&#39;s is only that they map onto a known event with sharp time boundaries. Without the comparison group, what remains is an isolated low figure that establishes nothing.&lt;/p&gt; &lt;h2 id=&#34;How-the-experience-maps-onto-specific-fields&#34;&gt;How the experience maps onto specific fields&lt;a class=&#34;headerlink&#34; href=&#34;#How-the-experience-maps-onto-specific-fields&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;No experience survey was run, so the following works backwards from the data to what using a phone would have felt like.&lt;/p&gt; &lt;h3 id=&#34;Video-stuck-buffering&#34;&gt;Video stuck buffering&lt;a class=&#34;headerlink&#34; href=&#34;#Video-stuck-buffering&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The streaming test records how long playback waits before it starts. Both records before the throttle show &lt;code&gt;0&lt;/code&gt; seconds; the three during it show &lt;code&gt;0.12&lt;/code&gt;, &lt;code&gt;0.12&lt;/code&gt;, and &lt;code&gt;5.29&lt;/code&gt; seconds. That last one waited more than five seconds to buffer, which is exactly the spinner people watch after tapping a video.&lt;/p&gt; &lt;h3 id=&#34;Messages-and-photos-still-went-out-smoothly&#34;&gt;Messages and photos still went out smoothly&lt;a class=&#34;headerlink&#34; href=&#34;#Messages-and-photos-still-went-out-smoothly&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The four uploads during the throttle measured &lt;code&gt;26,300&lt;/code&gt;, &lt;code&gt;31,789&lt;/code&gt;, &lt;code&gt;22,370&lt;/code&gt;, and &lt;code&gt;32,695&lt;/code&gt; kbit/s, no lower than the &lt;code&gt;21,510&lt;/code&gt; and &lt;code&gt;16,348&lt;/code&gt; kbit/s recorded before it. Upload ran 33, 36, 14, and 19 times faster than download. The rate limiting was one-directional, applied only downstream. That also explains something the call had warned about: measurement results uploaded fine during the throttle and went out immediately, with no need to wait for the network to recover.&lt;/p&gt; &lt;h3 id=&#34;A-pause-between-tapping-and-anything-happening&#34;&gt;A pause between tapping and anything happening&lt;a class=&#34;headerlink&#34; href=&#34;#A-pause-between-tapping-and-anything-happening&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;Average RTT doubled, which stretches the gap between every tap and the screen responding.&lt;/p&gt; &lt;h3 id=&#34;Web-pages-still-loaded-only-slowly&#34;&gt;Web pages still loaded, only slowly&lt;a class=&#34;headerlink&#34; href=&#34;#Web-pages-still-loaded-only-slowly&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;Taiwan recorded 1,893 web connectivity measurements during the window, with an anomaly rate of &lt;code&gt;1.0%&lt;/code&gt; against &lt;code&gt;0.6%&lt;/code&gt; both before and after. Confirmed blocking was &lt;code&gt;0&lt;/code&gt; in every window. Websites were reachable, and so were Tor and Psiphon: the 33 Tor tests and 33 Psiphon tests during the throttle all returned zero anomalies.&lt;/p&gt; &lt;p&gt;In the data, those 30 minutes appear as speed going down, not as connectivity being cut.&lt;/p&gt; &lt;h2 id=&#34;Throttling-and-shutdowns-are-two-different-shapes-in-the-data&#34;&gt;Throttling and shutdowns are two different shapes in the data&lt;a class=&#34;headerlink&#34; href=&#34;#Throttling-and-shutdowns-are-two-different-shapes-in-the-data&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Most OONI tests perform a blocking verdict, among them web connectivity, Telegram, and Signal. When real blocking or a shutdown occurs, anomaly rates climb, confirmed-blocking records appear, and in severe cases measurements fail outright and reports never leave the device, leaving a gap in the database. Under throttling every connection succeeds, reports upload as usual, and the verdict fields do not move at all.&lt;/p&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;&lt;/th&gt; &lt;th&gt;Blocking or shutdown&lt;/th&gt; &lt;th&gt;Throttling&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Connections&lt;/td&gt; &lt;td&gt;Many fail&lt;/td&gt; &lt;td&gt;All succeed&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Anomaly rate&lt;/td&gt; &lt;td&gt;Rises clearly&lt;/td&gt; &lt;td&gt;Unchanged&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Confirmed blocking&lt;/td&gt; &lt;td&gt;May appear&lt;/td&gt; &lt;td&gt;Stays at &lt;code&gt;0&lt;/code&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Throughput&lt;/td&gt; &lt;td&gt;Not necessarily affected&lt;/td&gt; &lt;td&gt;Drops clearly&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Which tests to read&lt;/td&gt; &lt;td&gt;Tests with blocking verdicts&lt;/td&gt; &lt;td&gt;Values from performance tests&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;The rule of thumb follows. To observe throttling, read the values from performance tests. To observe blocking, read the tests that carry verdicts. Get it the wrong way round and the numbers will point at the wrong conclusion.&lt;/p&gt; &lt;p&gt;That is also why the call asked only for performance tests. Running verdict-bearing tests under a rate limit means the handset times out repeatedly while the test helper server behaves normally, and the comparison gets flagged with the signature of blocking, injecting a batch of censorship-looking records into Taiwan&#39;s public data. The results show no such false signal appeared.&lt;/p&gt; &lt;p&gt;Both shapes can be inspected directly. In Taiwan&#39;s &lt;a href=&#34;https://explorer.ooni.org/chart/mat?probe_cc=TW&amp;amp;test_name=web_connectivity&amp;amp;since=2026-08-13&amp;amp;until=2026-08-14&amp;amp;axis_x=measurement_start_day&amp;amp;time_grain=hour&#34; target=&#34;_blank&#34;&gt;hourly breakdown for 13 August&lt;/a&gt;, confirmed blocking holds at &lt;code&gt;0&lt;/code&gt; all day, including the throttled hour. Blocking events verified by the OONI team are collected in &lt;a href=&#34;https://explorer.ooni.org/findings&#34; target=&#34;_blank&#34;&gt;Findings&lt;/a&gt;, each linked to its underlying measurements, where confirmed-blocking counts can be seen climbing during an event. Both views query the same database and the same fields; only the values differ.&lt;/p&gt; &lt;h2 id=&#34;How-each-conclusion-comes-out-of-the-public-data&#34;&gt;How each conclusion comes out of the public data&lt;a class=&#34;headerlink&#34; href=&#34;#How-each-conclusion-comes-out-of-the-public-data&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;h3 id=&#34;Step-one-pull-the-measurements-in-a-time-range&#34;&gt;Step one, pull the measurements in a time range&lt;a class=&#34;headerlink&#34; href=&#34;#Step-one-pull-the-measurements-in-a-time-range&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The measurements endpoint needs no authentication and accepts a range specified to the second.&lt;/p&gt; &lt;div class=&#34;highlight&#34;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;https://api.ooni.org/api/v1/measurements?probe_cc=TW&amp;amp;test_name=ndt &amp;amp;since=2026-08-13T06:00:00Z&amp;amp;until=2026-08-13T08:00:00Z&amp;amp;limit=200 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;All times are UTC; Taipei time is 8 hours ahead, so the throttle window is &lt;code&gt;06:30&lt;/code&gt; to &lt;code&gt;07:00&lt;/code&gt;. To capture a full day in Taipei time, shift both bounds back 8 hours, giving &lt;code&gt;2026-08-12T16:00:00Z&lt;/code&gt; to &lt;code&gt;2026-08-13T16:00:00Z&lt;/code&gt;. Every record returned carries a network number (&lt;code&gt;probe_asn&lt;/code&gt;) and a measurement id (&lt;code&gt;measurement_uid&lt;/code&gt;). When the count exceeds &lt;code&gt;limit&lt;/code&gt; the response includes &lt;code&gt;next_url&lt;/code&gt;, and every page has to be fetched or data goes missing: there were 238 connection speed tests that day, more than a single &lt;code&gt;limit=200&lt;/code&gt; returns.&lt;/p&gt; &lt;h3 id=&#34;Step-two-open-the-raw-JSON-for-the-values&#34;&gt;Step two, open the raw JSON for the values&lt;a class=&#34;headerlink&#34; href=&#34;#Step-two-open-the-raw-JSON-for-the-values&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The listing itself carries no throughput figures, so each &lt;code&gt;measurement_url&lt;/code&gt; has to be opened. Connection speed test values live under &lt;code&gt;test_keys.summary&lt;/code&gt;, covering download (&lt;code&gt;download&lt;/code&gt;), upload (&lt;code&gt;upload&lt;/code&gt;), minimum round-trip time (&lt;code&gt;min_rtt&lt;/code&gt;), average round-trip time (&lt;code&gt;avg_rtt&lt;/code&gt;), and retransmission rate (&lt;code&gt;retransmit_rate&lt;/code&gt;). Streaming test values live under &lt;code&gt;test_keys.simple&lt;/code&gt;, covering median bitrate (&lt;code&gt;median_bitrate&lt;/code&gt;) and playback wait (&lt;code&gt;min_playout_delay&lt;/code&gt;).&lt;/p&gt; &lt;h3 id=&#34;Step-three-drop-everything-that-is-not-a-mobile-network&#34;&gt;Step three, drop everything that is not a mobile network&lt;a class=&#34;headerlink&#34; href=&#34;#Step-three-drop-everything-that-is-not-a-mobile-network&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The network type field in the raw JSON (&lt;code&gt;annotations.network_type&lt;/code&gt;) marks mobile (&lt;code&gt;mobile&lt;/code&gt;), Wi-Fi (&lt;code&gt;wifi&lt;/code&gt;), wired (&lt;code&gt;wired_ethernet&lt;/code&gt;), or VPN (&lt;code&gt;vpn&lt;/code&gt;). Of the 238 connection speed tests that day, only 170 were marked mobile. Without that filter, home fibre and VPN measurements mix in, and neither was inside the throttled area to begin with.&lt;/p&gt; &lt;h3 id=&#34;Step-four-use-the-device-identifier-to-group-one-handset&#34;&gt;Step four, use the device identifier to group one handset&lt;a class=&#34;headerlink&#34; href=&#34;#Step-four-use-the-device-identifier-to-group-one-handset&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The identifier sits at the top level of the raw JSON under &lt;code&gt;probe_id&lt;/code&gt;, a sibling of &lt;code&gt;test_keys&lt;/code&gt; rather than something inside it. Its value is an anonymous hash OONI generates per device, and every measurement from the same phone carries the same value, so collecting matching values reconstructs that device&#39;s full record for the day. Of the 238 connection speed tests that day, 18 carry no identifier, cannot be attributed to any device, and are excluded from the device counts here.&lt;/p&gt; &lt;p&gt;A single measurement is hard to read on its own, because handset model, location, and signal strength all differ. One phone compared against itself is far more direct, and that is where the key table in this post comes from.&lt;/p&gt; &lt;h3 id=&#34;Step-five-rule-out-false-positives&#34;&gt;Step five, rule out false positives&lt;a class=&#34;headerlink&#34; href=&#34;#Step-five-rule-out-false-positives&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;Two cases came up on the day.&lt;/p&gt; &lt;p&gt;A Taiwan Mobile device measured &lt;code&gt;3,124&lt;/code&gt; kbit/s at 14:54, which looks like throttling. But it measured &lt;code&gt;3,126&lt;/code&gt; kbit/s again at 20:11 the same day, and its streaming bitrate stayed between &lt;code&gt;2,072&lt;/code&gt; and &lt;code&gt;2,909&lt;/code&gt; kbit/s throughout. The figures are stable all day and come from that subscription&#39;s own speed cap, unrelated to the drill. Looking only at the throttle window, it would easily have been counted as evidence.&lt;/p&gt; &lt;p&gt;Another 5 measurements failed outright during the window, with connection timeouts, a DNS lookup failure, and a refused connection. The cause of a failure cannot be determined from a single result — it might come from the throttle, or from ordinary connection trouble — so none are included.&lt;/p&gt; &lt;h3 id=&#34;Step-six-build-a-comparison-group&#34;&gt;Step six, build a comparison group&lt;a class=&#34;headerlink&#34; href=&#34;#Step-six-build-a-comparison-group&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;During the same window on 10, 11, and 12 August, not one mobile performance measurement fell below &lt;code&gt;2,000&lt;/code&gt; kbit/s; the lowest of the 7 taken on 12 August was &lt;code&gt;8,399&lt;/code&gt; kbit/s. Measurements below &lt;code&gt;2,000&lt;/code&gt; kbit/s appear only in the throttle window on 13 August, and nowhere else that day. Only with a comparison group can an observed low speed be separated from ordinary variation.&lt;/p&gt; &lt;h2 id=&#34;Questions-that-fall-outside-this-dataset&#34;&gt;Questions that fall outside this dataset&lt;a class=&#34;headerlink&#34; href=&#34;#Questions-that-fall-outside-this-dataset&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;h3 id=&#34;Location&#34;&gt;Location&lt;a class=&#34;headerlink&#34; href=&#34;#Location&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;OONI records country and ASN, never counties and never cell tower locations. The data shows that a measurement came from &lt;code&gt;AS17421&lt;/code&gt;; it cannot show whether the phone was in Taipei or Tainan. Only 1 of the 47 devices left a clear throttle signal, and the most likely explanation is that the others were outside the seven affected counties, which the public data cannot verify.&lt;/p&gt; &lt;p&gt;Omitting location is a deliberate OONI design choice made to protect participants. In countries with heavy censorship, a measurer&#39;s location translates directly into personal risk. The trade-off is the right one, and the cost is that events with sharp geographic boundaries are hard to align precisely. Adding a location dimension requires the community to collect it separately, for instance through a voluntary county-level form that records nothing finer than the county and is never joined to device identifiers, so it does not reconstruct the tracking capability OONI deliberately removed.&lt;/p&gt; &lt;h3 id=&#34;Coverage-across-carriers&#34;&gt;Coverage across carriers&lt;a class=&#34;headerlink&#34; href=&#34;#Coverage-across-carriers&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The devices with a complete before-and-after record cluster on Chunghwa Telecom Mobile. For Taiwan Mobile and FarEasTone, the low values during the window were all measurement failures, leaving nothing readable. That gap comes from where participants and measurements happened to fall, and says nothing about differences between the carriers&#39; networks. Seeing how different carriers behaved in the same window would require each of them to have devices completing measurements before, during, and after.&lt;/p&gt; &lt;h3 id=&#34;How-long-recovery-took&#34;&gt;How long recovery took&lt;a class=&#34;headerlink&#34; href=&#34;#How-long-recovery-took&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The handset with the complete throttle record took its last measurement at 14:52 and ran nothing afterwards, so the before-and-after comparison in this post ends there. The 30 minutes after the window contain 38 measurements, all from devices that showed no throttle signal, which leaves no single device spanning both.&lt;/p&gt; &lt;p&gt;The public data does hold a trace of the recovery period, and this post&#39;s own filter is what excluded it. A Taiwan Mobile device measured &lt;code&gt;55&lt;/code&gt; kbit/s at 15:08, and its streaming test two minutes later returned &lt;code&gt;0&lt;/code&gt; — both after the announced end of the drill. Neither entered the statistics here, because the network type field is empty on both, and this post counts only measurements explicitly marked as mobile in order to exclude fixed-line and VPN results. The filter that removes noise removed the signal along with it.&lt;/p&gt; &lt;p&gt;What fills that gap is &lt;a href=&#34;https://mashbean.net/blog/2026/0813-16xy2v/&#34; target=&#34;_blank&#34;&gt;mashbean&#39;s field observation&lt;/a&gt;. He recorded downloads still at &lt;code&gt;55&lt;/code&gt; kbit/s at 15:08, streaming tests moving from timeout to completion, and usable service only returning at 17:47, and argues from that record that restoration time belongs among the criteria for evaluating a resilience exercise, with functional recovery and a return to baseline judged separately. Whose hand the device was in, whether it was really on a mobile network, which county the person was standing in — the dimensions OONI does not record are the ones only the measurer can supply.&lt;/p&gt; &lt;p&gt;Laying both sets of observations on one timeline is what completes the picture of that afternoon.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Timeline of that afternoon, with the grey band marking the announced throttle window and rows grouped by source&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;vegachart style=&#39;width: 100%&#39; class=&#34;vegalite&#34;&gt;{&#34;description&#34;:&#34;Timeline of drill events and observations on 2026-08-13 afternoon&#34;,&#34;layer&#34;:[{&#34;data&#34;:{&#34;values&#34;:[{&#34;s&#34;:&#34;2026-08-13T14:30:00&#34;,&#34;e&#34;:&#34;2026-08-13T15:00:00&#34;}]},&#34;mark&#34;:{&#34;type&#34;:&#34;rect&#34;,&#34;opacity&#34;:0.12,&#34;color&#34;:&#34;#546e7a&#34;},&#34;encoding&#34;:{&#34;x&#34;:{&#34;field&#34;:&#34;s&#34;,&#34;type&#34;:&#34;temporal&#34;},&#34;x2&#34;:{&#34;field&#34;:&#34;e&#34;}}},{&#34;data&#34;:{&#34;values&#34;:[{&#34;t&#34;:&#34;2026-08-13T14:30:00&#34;,&#34;src&#34;:&#34;Executive Yuan&#34;,&#34;e&#34;:&#34;Throttle begins&#34;},{&#34;t&#34;:&#34;2026-08-13T15:00:00&#34;,&#34;src&#34;:&#34;Executive Yuan&#34;,&#34;e&#34;:&#34;Throttle ends&#34;},{&#34;t&#34;:&#34;2026-08-13T14:36:00&#34;,&#34;src&#34;:&#34;This dataset&#34;,&#34;e&#34;:&#34;788 kbit/s, lowest of the day&#34;},{&#34;t&#34;:&#34;2026-08-13T14:39:00&#34;,&#34;src&#34;:&#34;This dataset&#34;,&#34;e&#34;:&#34;881 kbit/s&#34;},{&#34;t&#34;:&#34;2026-08-13T14:52:00&#34;,&#34;src&#34;:&#34;This dataset&#34;,&#34;e&#34;:&#34;1,709 kbit/s, that device&#39;s last&#34;},{&#34;t&#34;:&#34;2026-08-13T15:08:00&#34;,&#34;src&#34;:&#34;This dataset&#34;,&#34;e&#34;:&#34;Another device at 55 kbit/s&#34;},{&#34;t&#34;:&#34;2026-08-13T15:10:00&#34;,&#34;src&#34;:&#34;This dataset&#34;,&#34;e&#34;:&#34;Streaming test returns 0&#34;},{&#34;t&#34;:&#34;2026-08-13T17:47:00&#34;,&#34;src&#34;:&#34;mashbean field&#34;,&#34;e&#34;:&#34;Usable service returns&#34;}]},&#34;mark&#34;:{&#34;type&#34;:&#34;point&#34;,&#34;size&#34;:110,&#34;filled&#34;:true,&#34;color&#34;:&#34;#0089bf&#34;,&#34;tooltip&#34;:true},&#34;encoding&#34;:{&#34;x&#34;:{&#34;field&#34;:&#34;t&#34;,&#34;type&#34;:&#34;temporal&#34;,&#34;title&#34;:&#34;Taipei time&#34;,&#34;axis&#34;:{&#34;format&#34;:&#34;%H:%M&#34;},&#34;scale&#34;:{&#34;padding&#34;:26}},&#34;y&#34;:{&#34;field&#34;:&#34;src&#34;,&#34;type&#34;:&#34;nominal&#34;,&#34;title&#34;:null,&#34;sort&#34;:[&#34;Executive Yuan&#34;,&#34;This dataset&#34;,&#34;mashbean field&#34;]},&#34;tooltip&#34;:[{&#34;field&#34;:&#34;t&#34;,&#34;type&#34;:&#34;temporal&#34;,&#34;format&#34;:&#34;%H:%M&#34;,&#34;title&#34;:&#34;Time&#34;},{&#34;field&#34;:&#34;e&#34;,&#34;type&#34;:&#34;nominal&#34;,&#34;title&#34;:&#34;Event&#34;}]}}]}&lt;/vegachart&gt;&lt;/p&gt; &lt;p&gt;The longest stretch on that chart is empty. The announced end was &lt;code&gt;15:00&lt;/code&gt;, the last low-speed record lands at &lt;code&gt;15:08&lt;/code&gt;, and usable service returned at &lt;code&gt;17:47&lt;/code&gt;. The three timestamps each mean something different, and nearly three hours separate them.&lt;/p&gt; &lt;details class=&#34;note&#34;&gt; &lt;summary&gt;Full event list for the timeline&lt;/summary&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Taipei time&lt;/th&gt; &lt;th&gt;Event&lt;/th&gt; &lt;th&gt;Source&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;14:30&lt;/code&gt;&lt;/td&gt; &lt;td&gt;Announced start of throttling&lt;/td&gt; &lt;td&gt;Executive Yuan&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;14:36&lt;/code&gt;&lt;/td&gt; &lt;td&gt;Single device measures &lt;code&gt;788&lt;/code&gt; kbit/s, lowest of the day&lt;/td&gt; &lt;td&gt;This post&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;14:39&lt;/code&gt;&lt;/td&gt; &lt;td&gt;Same device at &lt;code&gt;881&lt;/code&gt; kbit/s, upload still &lt;code&gt;31,789&lt;/code&gt;&lt;/td&gt; &lt;td&gt;This post&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;14:52&lt;/code&gt;&lt;/td&gt; &lt;td&gt;Same device&#39;s last record, &lt;code&gt;1,709&lt;/code&gt; kbit/s&lt;/td&gt; &lt;td&gt;This post&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;15:00&lt;/code&gt;&lt;/td&gt; &lt;td&gt;Announced end of throttling&lt;/td&gt; &lt;td&gt;Executive Yuan&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;15:08&lt;/code&gt;&lt;/td&gt; &lt;td&gt;Another device still measures &lt;code&gt;55&lt;/code&gt; kbit/s&lt;/td&gt; &lt;td&gt;This post and mashbean&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;15:10&lt;/code&gt;&lt;/td&gt; &lt;td&gt;Same device&#39;s streaming test returns &lt;code&gt;0&lt;/code&gt;&lt;/td&gt; &lt;td&gt;This post and mashbean&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;17:47&lt;/code&gt;&lt;/td&gt; &lt;td&gt;Usable service returns&lt;/td&gt; &lt;td&gt;mashbean&#39;s field observation&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;/details&gt; &lt;h3 id=&#34;How-much-one-device-can-represent&#34;&gt;How much one device can represent&lt;a class=&#34;headerlink&#34; href=&#34;#How-much-one-device-can-represent&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;What this post says about the direction and layer of the rate limiting rests on 6 measurements from one handset. The figures are internally consistent and two independent tests point the same way, which makes it a complete record of a single case. Talking about distributions, average magnitude, or confidence intervals would need far more samples than that.&lt;/p&gt; &lt;p&gt;The 47 devices are also community members who volunteered after seeing the call, not a random sample. Any inference across carriers or regions would have to account for that selection bias first.&lt;/p&gt; &lt;h2 id=&#34;Come-and-work-with-OONIs-public-data&#34;&gt;Come and work with OONI&#39;s public data&lt;a class=&#34;headerlink&#34; href=&#34;#Come-and-work-with-OONIs-public-data&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Nothing unusual was needed for this analysis: a public API and some data wrangling. OONI&#39;s data has four entry points, each suited to different work.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://explorer.ooni.org/&#34; target=&#34;_blank&#34;&gt;OONI Explorer&lt;/a&gt;&lt;/strong&gt;: a web interface for looking up individual measurements or trends by country and ASN, no programming required.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Aggregation API&lt;/strong&gt;: &lt;code&gt;https://api.ooni.org/api/v1/aggregation&lt;/code&gt;, no authentication or key, with breakdowns by country, test, and ASN. Its bounds accept dates only, which suits trends at day granularity and above.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Measurements API&lt;/strong&gt;: &lt;code&gt;https://api.ooni.org/api/v1/measurements&lt;/code&gt;, accepts ranges specified to the second and returns individual records. Most of the data here comes from this endpoint.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;AWS S3 public dataset&lt;/strong&gt;: &lt;code&gt;ooni-data-eu-fra&lt;/code&gt;, raw JSON per measurement, suited to inspecting measurement internals or running large-scale analysis. Access patterns and CSV output are documented in &lt;a href=&#34;../../../../community/asn-coverage-howto/&#34;&gt;ASN coverage data collection and analysis&lt;/a&gt;, along with the community-maintained fetcher.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Participating needs no programming either. Install &lt;a href=&#34;https://ooni.org/install/&#34; target=&#34;_blank&#34;&gt;OONI Probe&lt;/a&gt; and run it once; every measurement enters the public database and becomes part of the long-term record of Taiwan&#39;s network conditions. Taiwan averaged only 34 connection speed tests per day over the previous 30 days, so one more phone measuring routinely thickens the baseline. Whether an unexpected slowdown can later be told apart from a problem at your own end depends on how much has been accumulated beforehand.&lt;/p&gt; &lt;p&gt;Plenty of work in Taiwan is still waiting. The long-term baseline for mobile networks remains thin, with coverage across the three carriers differing by one to two orders of magnitude. To work out which test suits a given question, the &lt;a href=&#34;../../../../community/ooni-nettests-map/&#34;&gt;OONI test reference&lt;/a&gt; lists what each test measures, its specification status, and whether Taiwan has data for it.&lt;/p&gt; &lt;p&gt;The most common misreading of this data is treating an anomaly as blocking. An anomaly only means a test did not complete as expected, which covers censorship, unstable networks, temporary ISP faults, and bugs in the test software. For the Tor test, countries without censorship such as Canada, Switzerland, and New Zealand also sit between &lt;code&gt;16%&lt;/code&gt; and &lt;code&gt;22%&lt;/code&gt;. Treating anomaly rates as blocking rates produces false accusations.&lt;/p&gt; &lt;p&gt;The exercise ran region by region and the northern drill was the last of the year, so the same conditions will not recur until next year. What was recorded is currently the only throttling data in Taiwan tied to a known scenario, which finally gives something to compare against the next time the network degrades unexpectedly.&lt;/p&gt; &lt;p&gt;To help work through the data, plan the next round of measurements, or ask anything about OONI&#39;s public data, join the discussion in the community &lt;a href=&#34;https://matrix.to/#/#community:im.anoni.net&#34; target=&#34;_blank&#34;&gt;Matrix Public Space&lt;/a&gt;.&lt;/p&gt; &lt;h2 id=&#34;Data-and-assumptions&#34;&gt;Data and assumptions&lt;a class=&#34;headerlink&#34; href=&#34;#Data-and-assumptions&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Queried on 2026-08-14. Measurements continue to arrive late, so re-running these queries may return slightly higher counts. All dates are Taipei time, shifted back 8 hours when converted to the UTC the API expects. Parameters such as &lt;code&gt;test_name&lt;/code&gt; are the literal values the API accepts, listed here so the queries can be reproduced.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Individual measurements for the day&lt;/strong&gt; come from the measurements endpoint with &lt;code&gt;probe_cc=TW&lt;/code&gt;, &lt;code&gt;since=2026-08-12T16:00:00Z&lt;/code&gt;, and &lt;code&gt;until=2026-08-13T16:00:00Z&lt;/code&gt;, covering all of 13 August in Taipei time, with &lt;code&gt;test_name&lt;/code&gt; set to &lt;code&gt;ndt&lt;/code&gt;, &lt;code&gt;dash&lt;/code&gt;, &lt;code&gt;web_connectivity&lt;/code&gt;, &lt;code&gt;tor&lt;/code&gt;, and &lt;code&gt;psiphon&lt;/code&gt; in turn. Per-window statistics such as the throttle window use a separate query covering UTC &lt;code&gt;06:00&lt;/code&gt; to &lt;code&gt;07:30&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Throughput, round-trip time, and device identity&lt;/strong&gt; come from the raw JSON of each measurement, retrieved through the &lt;code&gt;measurement_url&lt;/code&gt; in the listing; field locations are given in the walkthrough above. Mobile measurements here count only those with a network type of &lt;code&gt;mobile&lt;/code&gt;, excluding Wi-Fi and VPN. Devices are deduplicated by &lt;code&gt;probe_id&lt;/code&gt;, and measurements without that value are excluded from device counts. The per-carrier counts for the day cover all measurements on that ASN, matching how the 30-day baseline is calculated; after removing 2 VPN measurements and 3 with no network type, the counts completed on mobile networks are 67, 50, and 52. One of the 170 mobile measurements comes from &lt;code&gt;AS9416&lt;/code&gt;, which is not one of the three nationwide carriers and is left out of the carrier table.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;The 30-day mobile baseline&lt;/strong&gt; (564 measurements, median &lt;code&gt;12,425&lt;/code&gt; kbit/s, 4 below &lt;code&gt;2,000&lt;/code&gt; kbit/s, Chunghwa Telecom Mobile&#39;s lowest at &lt;code&gt;42,197&lt;/code&gt; kbit/s) comes from the measurements endpoint with &lt;code&gt;probe_cc=TW&lt;/code&gt;, &lt;code&gt;test_name=ndt&lt;/code&gt;, &lt;code&gt;since=2026-07-13T16:00:00Z&lt;/code&gt;, and &lt;code&gt;until=2026-08-12T16:00:00Z&lt;/code&gt;, covering 14 July to 12 August in Taipei time, with &lt;code&gt;probe_asn&lt;/code&gt; set to &lt;code&gt;AS24158&lt;/code&gt;, &lt;code&gt;AS17421&lt;/code&gt;, and &lt;code&gt;AS9674&lt;/code&gt;, again pulling raw JSON per measurement and dropping everything not on a mobile network.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Comparison days&lt;/strong&gt; use the same measurements parameters with the date changed to 2026-08-10, 2026-08-11, and 2026-08-12, over UTC &lt;code&gt;05:30&lt;/code&gt; to &lt;code&gt;07:30&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;No individual device identifier is published here. The field does appear in OONI&#39;s public data, but writing out specific values would build an index into one participant&#39;s measurement history, which serves no purpose the measurements themselves require.&lt;/p&gt; &lt;p&gt;Details of the exercise follow the &lt;a href=&#34;https://www.ey.gov.tw/Page/9277F759E41CCD91/66c2bed1-6ca3-4c30-ba7c-4fa0f90e00ec&#34; target=&#34;_blank&#34;&gt;Executive Yuan announcement&lt;/a&gt; and the carriers&#39; own notices&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt; &lt;hr /&gt; &lt;p&gt;&lt;strong&gt;Sources&lt;/strong&gt;: OONI measurements and aggregation APIs (query parameters above; measurement data licensed &lt;a href=&#34;https://github.com/ooni/license/blob/master/data/LICENSE.md&#34; target=&#34;_blank&#34;&gt;CC BY-NC-SA 4.0&lt;/a&gt;), ASN names from &lt;a href=&#34;https://stat.ripe.net/&#34; target=&#34;_blank&#34;&gt;RIPEstat&lt;/a&gt;.&lt;/p&gt; &lt;script src=&#34;https://cdn.jsdelivr.net/npm/vega@5&#34;&gt;&lt;/script&gt; &lt;script src=&#34;https://cdn.jsdelivr.net/npm/vega-lite@5&#34;&gt;&lt;/script&gt; &lt;script src=&#34;https://cdn.jsdelivr.net/npm/vega-embed@6/build/vega-embed.min.js&#34;&gt;&lt;/script&gt; &lt;div class=&#34;footnote&#34;&gt; &lt;hr /&gt; &lt;ol&gt; &lt;li id=&#34;fn:1&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.ey.gov.tw/Page/9277F759E41CCD91/66c2bed1-6ca3-4c30-ba7c-4fa0f90e00ec&#34; target=&#34;_blank&#34;&gt;2026 Urban Resilience (Air Defence) Exercise: mobile network throttling drill&lt;/a&gt; - Executive Yuan&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:2&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.cna.com.tw/news/aipl/202608100327.aspx&#34; target=&#34;_blank&#34;&gt;Executive Yuan elaborates on the throttling method&lt;/a&gt; - CNA&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:2&#34; title=&#34;Jump back to footnote 2 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/08/ooni-mobile-throttle-drill-results/</link> <pubDate>Sat, 15 Aug 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/08/ooni-mobile-throttle-drill-results/</guid> <enclosure url="https://ipfs.anoni.net/en/assets/images/ooni-run-v2.webp" type="image/webp" length="21650" /> </item> <item> <title>Recording 30 Minutes of Northern Taiwan&#39;s Mobile Networks During an Announced Throttle on 13 August</title> <author>anoni.net Community</author> <category>Community</category> <category>OONI</category> <description>&lt;h1 id=&#34;Recording-30-Minutes-of-Northern-Taiwans-Mobile-Networks-During-an-Announced-Throttle-on-13-August&#34;&gt;Recording 30 Minutes of Northern Taiwan&#39;s Mobile Networks During an Announced Throttle on 13 August&lt;a class=&#34;headerlink&#34; href=&#34;#Recording-30-Minutes-of-Northern-Taiwans-Mobile-Networks-During-an-Announced-Throttle-on-13-August&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;&lt;img alt=&#34;Measuring Taiwan&#39;s mobile network throttling drill&#34; src=&#34;../../../assets/images/ooni-run-v2.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;On Thursday 13 August, from 14:30 to 15:00 Taipei time (UTC+8), mobile networks in Keelung, Taipei, New Taipei, Taoyuan, Hsinchu City, Hsinchu County, and Yilan will be throttled for thirty minutes. The throttle is part of Taiwan&#39;s Urban Resilience Exercise, executed simultaneously by all three major carriers. Official announcements state that voice calls, SMS, and cell broadcast continue to work, and that high-bandwidth services degrade: video streaming, video calls, mobile payments, cloud sync.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; The advice for the window from the NCC (National Communications Commission, Taiwan&#39;s telecom regulator) is to prepare in advance for going offline.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt; &lt;p&gt;Officials have described the depth of the throttle twice. On 20 July, Defence Minister Wellington Koo &lt;a href=&#34;https://www.ettoday.net/news/20260720/3204422.htm&#34; target=&#34;_blank&#34;&gt;told the Legislative Yuan&lt;/a&gt; (Taiwan&#39;s parliament) that speeds would drop to one percent of 4G and 5G capacity. After the central Taiwan drill on 10 August, the Executive Yuan (Taiwan&#39;s cabinet) &lt;a href=&#34;https://www.cna.com.tw/news/aipl/202608100327.aspx&#34; target=&#34;_blank&#34;&gt;described the method&lt;/a&gt;: carriers apply rate limiting in the core network, capping mobile download speeds at 256KB. The two statements are of the same order, and either one gives a figure to expect when the measurements come in.&lt;/p&gt; &lt;p&gt;The date, the window, the seven counties, the three carriers: every boundary of this throttle is public before it runs. Studies of network throttling rarely get that. In most cases users notice slowness first and researchers reconstruct the timeline afterwards, leaving the edges fuzzy. Pre-announced shutdowns are not new elsewhere, exam-period national shutdowns being the familiar example.&lt;sup id=&#34;fnref:6&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:6&#34;&gt;6&lt;/a&gt;&lt;/sup&gt; On the publicly documented record, a pre-announced &lt;em&gt;throttle&lt;/em&gt; is less common, particularly one with per-carrier granularity.&lt;/p&gt; &lt;p&gt;During the same window at the central Taiwan drill on 10 August, Taiwan&#39;s OONI observations contained no performance measurement from a mobile network at all. The northern drill is the last of this year&#39;s exercise, so after 13 August the opportunity does not come round again.&lt;/p&gt; &lt;p&gt;If you are in one of those seven counties, your phone is going to slow down for that half hour regardless. Rather than just waiting it out, you might as well leave a record behind.&lt;/p&gt; &lt;!-- more --&gt; &lt;details class=&#34;info&#34;&gt; &lt;summary&gt;Why throttle mobile networks at all: context for readers outside Taiwan&lt;/summary&gt; &lt;p&gt;The Executive Yuan describes the drill as simulating an extreme scenario in order to verify the government&#39;s response capability under constrained communications, with the scenarios in mind including natural disaster, large-scale cyberattack, and compound disasters, and the stated goal being to strengthen overall communications and societal defence resilience.&lt;sup id=&#34;fnref3:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; The announcement itself does not mention wartime or military exercises; the framing is civil defence and fallback capacity. The mobile throttle was added to the exercise for the first time, drawing on practice in Japan, South Korea, and the Nordic countries,&lt;sup id=&#34;fnref4:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; which is a first for Taiwan rather than a global first.&lt;/p&gt; &lt;p&gt;For Taiwan, communications loss is not a hypothetical problem. Taiwan is an island whose external connectivity depends on submarine cables, and the Ministry of Digital Affairs maintains a public page listing cable faults one by one, with fault location, alternative routing, and estimated repair date.&lt;sup id=&#34;fnref:7&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:7&#34;&gt;7&lt;/a&gt;&lt;/sup&gt; In the update dated 28 July 2026, four cables were in a fault state, the most recent having occurred on 14 July with repair estimated for 14 August, the same week as the drill. To see where those cables actually run, open the &lt;a href=&#34;../../../../../games/tor-network/play/index.html?lang=en&#34;&gt;Tor Relay Globe&lt;/a&gt;, which plots 228 submarine cable segments along with the fault status around Taiwan.&lt;/p&gt; &lt;p&gt;A real incident is on a very different scale from the drill. The drill throttles for 30 minutes, covers fourteen counties in total, and leaves voice and SMS intact. A cable break can last weeks and affect connectivity for a whole region. The drill exists to verify fallback mechanisms and public preparedness, not to reproduce an incident.&lt;/p&gt; &lt;/details&gt; &lt;h2 id=&#34;What-to-do-on-13-August&#34;&gt;What to do on 13 August&lt;a class=&#34;headerlink&#34; href=&#34;#What-to-do-on-13-August&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;All times are Taipei time (UTC+8), with UTC in the tables. The drill window is &lt;strong&gt;14:30–15:00 (06:30–07:00 UTC)&lt;/strong&gt;.&lt;/p&gt; &lt;h3 id=&#34;Before-the-day&#34;&gt;Before the day&lt;a class=&#34;headerlink&#34; href=&#34;#Before-the-day&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;Install &lt;a href=&#34;https://ooni.org/install/&#34; target=&#34;_blank&#34;&gt;OONI Probe&lt;/a&gt;: free and open source, on the App Store, Google Play, and F-Droid. It is built by OONI to turn network interference and connection quality into verifiable public data (&lt;a href=&#34;https://ooni.org/about/&#34; target=&#34;_blank&#34;&gt;more about the project&lt;/a&gt;). First launch runs through an onboarding flow, so installing on the day itself is cutting it too fine. Run it once after installing to confirm it completes normally.&lt;/p&gt; &lt;p&gt;Then set an alarm for &lt;code&gt;14:35&lt;/code&gt;, the run that matters most, and add &lt;code&gt;14:15&lt;/code&gt; and &lt;code&gt;15:10&lt;/code&gt; if you can. The real obstacle is remembering mid-afternoon, not the tapping. Missing it entirely is fine too: take the &lt;code&gt;15:10&lt;/code&gt; run instead, and a single measurement is still worth submitting.&lt;/p&gt; &lt;h3 id=&#34;Step-one-turn-Wi-Fi-and-any-VPN-off-and-use-mobile-data&#34;&gt;Step one, turn Wi-Fi and any VPN off and use mobile data&lt;a class=&#34;headerlink&#34; href=&#34;#Step-one-turn-Wi-Fi-and-any-VPN-off-and-use-mobile-data&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;Wi-Fi served by a fixed line is unaffected by the drill, so a measurement taken over that kind of Wi-Fi contributes nothing. Phones routinely reconnect to office or home Wi-Fi on their own, so confirm you are on mobile data before starting. A hotspot shared from another phone runs over mobile underneath, but OONI still records the network type as Wi-Fi, so avoid that too.&lt;/p&gt; &lt;p&gt;Turn off both VPNs and Tailscale. A VPN routes traffic elsewhere, so the test measures the provider&#39;s link and records their ASN instead of your carrier&#39;s. Tailscale runs through the system VPN mechanism on iOS and Android even without an exit node, so OONI Probe records the network type as &lt;code&gt;vpn&lt;/code&gt; rather than &lt;code&gt;mobile&lt;/code&gt;, and the measurement can no longer be identified as coming from a mobile network. The app raises a warning when it detects a VPN, so switch it off before running if you see one. Remember to turn Tailscale back on afterwards, which is easy to forget if you rely on it to reach a work network.&lt;/p&gt; &lt;p&gt;After a run completes, the results page shows the network name and ASN (the global number for an autonomous network, held by carriers, companies, and universities alike), which confirms the measurement ran on mobile and on your own carrier.&lt;/p&gt; &lt;div class=&#34;admonition warning&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Check your mobile data allowance first&lt;/p&gt; &lt;p&gt;The &lt;code&gt;ndt&lt;/code&gt; test inside the Performance group measures throughput, so it deliberately saturates whatever bandwidth is available. The app states an estimate before you start, currently 5 to 200 MB and about 1 minute 30 seconds, with the actual figure scaling with connection speed. The run during the throttle costs least, because bandwidth is already constrained. Both 14:15 and 15:10 run at normal speed and will land at the top of that estimate.&lt;/p&gt; &lt;p&gt;On a metered plan, run the one during the throttle and pick either 14:15 or 15:10 as the comparison; two runs are enough to compare.&lt;/p&gt; &lt;/div&gt; &lt;h3 id=&#34;Step-two-run-the-built-in-Performance-tests&#34;&gt;Step two, run the built-in Performance tests&lt;a class=&#34;headerlink&#34; href=&#34;#Step-two-run-the-built-in-Performance-tests&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;Open the app, tap Tests, choose Performance, tick the tests you want, then tap run. The Performance group contains &lt;code&gt;ndt&lt;/code&gt; (connection speed) and &lt;code&gt;dash&lt;/code&gt; (which simulates adaptive video streaming and estimates the achievable bitrate), which are the two tests this needs, and it is available on both Android and iOS.&lt;/p&gt; &lt;figure&gt; &lt;img class=&#34;brand-frame&#34; src=&#34;https://assets.anoni.net/blog/ooni-performance.png&#34; alt=&#34;OONI Probe&#39;s Performance screen, showing an estimate of 5 to 200 MB and about 1 minute 30 seconds, the run button, and the previous test result&#34; style=&#34;width:50%&#34;&gt; &lt;/figure&gt; &lt;h3 id=&#34;Step-three-run-at-least-once-between-1435-and-1455&#34;&gt;Step three, run at least once between 14:35 and 14:55&lt;a class=&#34;headerlink&#34; href=&#34;#Step-three-run-at-least-once-between-1435-and-1455&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The run taken during the throttle matters most. The drill starts at 14:30 and ends at 15:00, and leaving five minutes at each end avoids the ramp-up and recovery transitions, so any start between 14:35 and 14:55 works. &lt;code&gt;ndt&lt;/code&gt; takes about 1 minute 30 seconds, so starting as late as 14:55 still finishes before the window closes.&lt;/p&gt; &lt;p&gt;A single run is worth submitting on its own, since it compares against other participants and against the same hour the day before. Add the other two when time allows, because a single phone&#39;s own before-and-after is the cleanest comparison.&lt;/p&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Taipei (UTC+8)&lt;/th&gt; &lt;th&gt;UTC&lt;/th&gt; &lt;th&gt;Purpose&lt;/th&gt; &lt;th&gt;Priority&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;14:35&lt;/code&gt; to &lt;code&gt;14:55&lt;/code&gt;&lt;/td&gt; &lt;td&gt;&lt;code&gt;06:35&lt;/code&gt; to &lt;code&gt;06:55&lt;/code&gt;&lt;/td&gt; &lt;td&gt;during the throttle&lt;/td&gt; &lt;td&gt;essential&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;14:15&lt;/code&gt;&lt;/td&gt; &lt;td&gt;&lt;code&gt;06:15&lt;/code&gt;&lt;/td&gt; &lt;td&gt;reference point before the throttle&lt;/td&gt; &lt;td&gt;if you can&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;15:10&lt;/code&gt;&lt;/td&gt; &lt;td&gt;&lt;code&gt;07:10&lt;/code&gt;&lt;/td&gt; &lt;td&gt;after recovery&lt;/td&gt; &lt;td&gt;if you can&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;What matters most is using the same handset and the same subscription for all three, and completing every run on mobile data. Staying in one place makes the results easier to compare, but moving between runs does not disqualify anything, as long as the phone has not slipped back onto Wi-Fi.&lt;/p&gt; &lt;p&gt;If you can spare one more, run the Performance card at &lt;code&gt;14:35&lt;/code&gt; on Wednesday 12 August. One extra measurement gives the following day&#39;s comparison a same-time reference at no additional effort.&lt;/p&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Reading this after 14:30&lt;/p&gt; &lt;p&gt;Run it straight away if it is still before 14:55, or take 15:10 if that window has passed. A single measurement is still worth submitting.&lt;/p&gt; &lt;/div&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Upload failures during the throttle are expected&lt;/p&gt; &lt;p&gt;Results have to be uploaded, and bandwidth is deliberately constrained during the window, so the upload may stall or fail. There is no need to run the test again. OONI Probe queues results and submits them once the network recovers.&lt;/p&gt; &lt;/div&gt; &lt;p&gt;If you want to contribute more, add a run of the Circumvention group during the throttle. It includes Tor and Psiphon connectivity tests, which show whether the throttle reaches circumvention tools. That group does perform blocking determination, so connection failures caused by the throttle will be recorded as anomalies with bandwidth rather than censorship behind them, and the community write-up will say so explicitly.&lt;/p&gt; &lt;h2 id=&#34;The-privacy-trade-off-before-you-tap-run&#34;&gt;The privacy trade-off, before you tap run&lt;a class=&#34;headerlink&#34; href=&#34;#The-privacy-trade-off-before-you-tap-run&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The short version: the performance tests leave your current public IP in M-Lab&#39;s public dataset, while mobile IP addresses are dynamic and tied to no account, which makes linking a record to a person difficult in practice. If you would rather not leave that record, run the Websites group (&lt;code&gt;web_connectivity&lt;/code&gt;) instead, which does not involve M-Lab. The full explanation follows.&lt;/p&gt; &lt;p&gt;Two separate databases are involved. OONI&#39;s own published measurements are all public, and they include the ASN you are on and a timestamp but not your personal IP address. The &lt;code&gt;ndt&lt;/code&gt; test in the Performance group additionally sends data to &lt;a href=&#34;https://www.measurementlab.net/&#34; target=&#34;_blank&#34;&gt;M-Lab&lt;/a&gt;, a different organisation with a different dataset and different rules.&lt;/p&gt; &lt;p&gt;M-Lab&#39;s &lt;a href=&#34;https://www.measurementlab.net/privacy/&#34; target=&#34;_blank&#34;&gt;privacy policy&lt;/a&gt; states that test data is made public, that the disclosed data includes your IP address along with date and time, and that M-Lab retains collected data indefinitely for longitudinal study, without anonymising the public dataset. The erasure route the policy offers is framed around GDPR and LGPD, aimed primarily at data subjects in the EU and Brazil. M-Lab states the policy applies to users in all regions, but the text does not address standing for requests from third jurisdictions such as Taiwan, so whether such a request would be honoured in practice is unclear. The app&#39;s own Performance screen carries a matching disclaimer, noting that these tests run through third-party servers and that your IP address cannot be guaranteed to stay uncollected.&lt;/p&gt; &lt;p&gt;Running &lt;code&gt;ndt&lt;/code&gt; therefore writes your current public IP address into a public, long-retained dataset. M-Lab does not authenticate users, does not keep per-user test histories, and mobile IP addresses are typically dynamic, so a third-party researcher or ordinary querier has a hard time relating a single IP back to an individual. That covers the M-Lab and OONI side of the question. Your own carrier can already map connection records to your subscription and IP, a record that exists regardless of whether you measure and that taking part does not add to. Whether to leave that record is your decision.&lt;/p&gt; &lt;h2 id=&#34;During-the-central-Taiwan-drill-mobile-networks-recorded-no-performance-measurement&#34;&gt;During the central Taiwan drill, mobile networks recorded no performance measurement&lt;a class=&#34;headerlink&#34; href=&#34;#During-the-central-Taiwan-drill-mobile-networks-recorded-no-performance-measurement&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The same throttle ran in seven central counties on 10 August, 14:30 to 15:00 Taipei time (&lt;code&gt;06:30&lt;/code&gt;–&lt;code&gt;07:00&lt;/code&gt; UTC). After it ended, we queried OONI&#39;s public database for what Taiwan recorded during that window.&lt;/p&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Test&lt;/th&gt; &lt;th&gt;Measurements, whole country&lt;/th&gt; &lt;th&gt;Network&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;ndt&lt;/code&gt; (connection speed)&lt;/td&gt; &lt;td&gt;1&lt;/td&gt; &lt;td&gt;&lt;code&gt;AS131584&lt;/code&gt; Taiwan Intelligent Fiber Optic Network, fixed line&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;dash&lt;/code&gt; (streaming bitrate)&lt;/td&gt; &lt;td&gt;1&lt;/td&gt; &lt;td&gt;same fixed-line ASN&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;web_connectivity&lt;/code&gt; (site reachability)&lt;/td&gt; &lt;td&gt;803&lt;/td&gt; &lt;td&gt;almost entirely fixed line, 593 of them HiNet&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Chunghwa Telecom Mobile (&lt;code&gt;AS17421&lt;/code&gt;) recorded zero. FarEasTone (&lt;code&gt;AS9674&lt;/code&gt;) recorded zero.&lt;/p&gt; &lt;p&gt;The single speed measurement ran over fixed fibre, and that network was not throttled. Taiwan produced 902 OONI observations in total during those thirty minutes, and not one of them was a performance measurement on a mobile network. The exercise runs region by region in the order south, central, offshore islands, east, north, and the northern drill is the last one,&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:3&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; so a throttle under these conditions will not come round again until next year.&lt;/p&gt; &lt;h2 id=&#34;Taiwans-OONI-coverage-is-393-one-ISP&#34;&gt;Taiwan&#39;s OONI coverage is 39.3% one ISP&lt;a class=&#34;headerlink&#34; href=&#34;#Taiwans-OONI-coverage-is-393-one-ISP&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The central Taiwan result reflects the long-running distribution of OONI data in Taiwan. Between 12 July and 11 August 2026 the country produced 645,039 &lt;code&gt;web_connectivity&lt;/code&gt; measurements across 25 ASNs:&lt;/p&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Network&lt;/th&gt; &lt;th&gt;Measurements, 30 days&lt;/th&gt; &lt;th&gt;Share&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;AS3462&lt;/code&gt; HiNet&lt;/td&gt; &lt;td&gt;253,546&lt;/td&gt; &lt;td&gt;39.3%&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;AS131584&lt;/code&gt; Taiwan Intelligent Fiber Optic Network&lt;/td&gt; &lt;td&gt;191,257&lt;/td&gt; &lt;td&gt;29.7%&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;All three mobile carriers&lt;/td&gt; &lt;td&gt;23,010&lt;/td&gt; &lt;td&gt;3.6%&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;　└ &lt;code&gt;AS24158&lt;/code&gt; Taiwan Mobile&lt;/td&gt; &lt;td&gt;20,099&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;　└ &lt;code&gt;AS17421&lt;/code&gt; Chunghwa Telecom Mobile&lt;/td&gt; &lt;td&gt;2,342&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;　└ &lt;code&gt;AS9674&lt;/code&gt; FarEasTone&lt;/td&gt; &lt;td&gt;569&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;The rest is also mostly fixed line: StarVerse and DaDa Broadband each contribute tens of thousands, alongside campus networks at Fu Jen Catholic University, TANet (Taiwan Academic Network, the research and education backbone linking universities), and National Taiwan University.&lt;/p&gt; &lt;p&gt;For the performance tests this drill calls for, the totals are far smaller. The same period produced only 1,008 &lt;code&gt;ndt&lt;/code&gt; measurements nationwide. Mobile appears to account for more than half at 548, but 528 of those come from Taiwan Mobile alone, against 16 for Chunghwa Telecom Mobile and 4 for FarEasTone. The gap sits with those last two.&lt;/p&gt; &lt;p&gt;So any current statement about the state of Taiwan&#39;s network rests on data that mostly describes residential fixed broadband. &lt;a href=&#34;https://www.ncc.gov.tw/chncc/app/data/list?id=570&#34; target=&#34;_blank&#34;&gt;NCC figures&lt;/a&gt; put Taiwan at roughly 28.33 million mobile subscriptions in Q1 2026, and most people spend the larger part of their day online through a mobile network, which is close to absent from public measurement data.&lt;/p&gt; &lt;p&gt;All three are national carriers, yet their OONI measurement counts differ by one to two orders of magnitude. Taiwan Mobile has 528 performance measurements against 16 for Chunghwa Telecom Mobile, a gap that subscriber numbers plainly do not explain.&lt;/p&gt; &lt;p&gt;Two limits belong alongside those figures. The public aggregation API reports measurement counts and not device counts, so the table above cannot rule out a small number of devices measuring repeatedly. Separately, Taiwan Mobile operates both mobile and fixed-line services, and so does Chunghwa Telecom, so a single measurement tagged &lt;code&gt;AS24158&lt;/code&gt; cannot be sorted into phone or home router from the data alone.&lt;/p&gt; &lt;h2 id=&#34;Why-all-three-carriers-and-why-together&#34;&gt;Why all three carriers, and why together&lt;a class=&#34;headerlink&#34; href=&#34;#Why-all-three-carriers-and-why-together&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;That identification problem is exactly why the window matters. The drill has a published time range and a published list of counties, so within that window and that area, mobile-side measurements appearing on &lt;code&gt;AS24158&lt;/code&gt;, &lt;code&gt;AS17421&lt;/code&gt;, and &lt;code&gt;AS9674&lt;/code&gt; have a known situation to attach to, and the ASN becomes sufficient to attribute behaviour to a carrier. Measurements scattered across ordinary days have no such anchor.&lt;/p&gt; &lt;p&gt;To be clear about what this does and does not control: a shared window removes one variable, time. Location, cell load, handset model, and signal strength all remain. Thirty phones spread across seven counties still produce a set of points taken under different conditions, so conclusions have to stay coarse-grained, for example whether all three carriers show an observable drop in throughput and whether the magnitudes are broadly comparable. Any precise ranking of carriers goes beyond what this data can support.&lt;/p&gt; &lt;p&gt;Within those limits, three carriers facing one instruction in one thirty-minute window remains an unusual opportunity. One carrier measured densely still yields a single curve.&lt;/p&gt; &lt;h2 id=&#34;What-these-thirty-minutes-can-show&#34;&gt;What these thirty minutes can show&lt;a class=&#34;headerlink&#34; href=&#34;#What-these-thirty-minutes-can-show&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The method the Executive Yuan describes, core-network rate limiting with a fixed download cap, is blanket bandwidth management, which &lt;code&gt;ndt&lt;/code&gt; should measure directly. The announcement separately lists affected service types (video streaming, video calls, mobile payments, cloud sync), which reads more like application-class handling, and the three carriers do not entirely agree on the affected scope either. Taiwan Mobile&#39;s notice lists messaging apps such as LINE, WhatsApp, and M+ among the services expected to see delays and instability,&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:4&#34;&gt;4&lt;/a&gt;&lt;/sup&gt; Chunghwa Telecom writes &#34;video, video calls, mobile internet access, and some IoT applications&#34;,&lt;sup id=&#34;fnref:5&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:5&#34;&gt;5&lt;/a&gt;&lt;/sup&gt; while the Executive Yuan&#39;s version has text transmission working normally.&lt;sup id=&#34;fnref2:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; If the limiting sits at the bandwidth layer, &lt;code&gt;ndt&lt;/code&gt; reflects it directly. If it leans towards application-class handling, &lt;code&gt;ndt&lt;/code&gt; traffic to M-Lab may not fall into a restricted class and could come back near normal speed. The measurements themselves will show which it is, and that is the most interesting question of the half hour.&lt;/p&gt; &lt;p&gt;Whether Tor and Psiphon can still establish connections under constrained bandwidth is a long-standing question for this community, and Thursday afternoon is a ready-made test bed. How quickly speeds return to normal once the throttle lifts is answered by the 15:10 measurement.&lt;/p&gt; &lt;p&gt;Once normal and throttled conditions are both on record, Taiwan&#39;s mobile networks gain a reference baseline, and a future unexpected degradation has something to be compared against. This value scales with participation: a few dozen phones can answer whether all three carriers show a clear drop, while discussing distributions and confidence intervals needs several hundred.&lt;/p&gt; &lt;p&gt;&lt;code&gt;ndt&lt;/code&gt; and &lt;code&gt;dash&lt;/code&gt; can only look at the high-bandwidth side, since neither test touches the voice, SMS, or cell broadcast that the announcements say keep working. Only one edge of the stated boundary is observable, and observing it is still worth doing. A community able to describe the state of its own networks is part of resilience.&lt;/p&gt; &lt;p&gt;One caveat for interpretation: &lt;code&gt;ndt&lt;/code&gt; measures against M-Lab servers, so the resulting figure includes both the last mile and the international path to the nearest M-Lab node, and a single measurement cannot separate the two. The officially stated 256KB serves here as the figure to expect, which makes the readings easier to place.&lt;/p&gt; &lt;p&gt;Participation density is a variable too. &lt;code&gt;ndt&lt;/code&gt; saturates the available bandwidth, so several phones on the same cell running it in the same minute compete for whatever throughput remains, and part of any low reading would come from participants crowding each other rather than from the carrier. At the scale this campaign targets, ten phones per carrier spread across seven counties, collisions are unlikely, but the number of concurrent participants should still be recorded alongside the results.&lt;/p&gt; &lt;h2 id=&#34;Join-in&#34;&gt;Join in&lt;a class=&#34;headerlink&#34; href=&#34;#Join-in&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Three things can be done right now: install &lt;a href=&#34;https://ooni.org/install/&#34; target=&#34;_blank&#34;&gt;OONI Probe&lt;/a&gt; and run it once, set an alarm for &lt;code&gt;14:35&lt;/code&gt;, and pass this on to anyone living or working in the seven northern counties. Chunghwa Telecom and FarEasTone subscribers are especially welcome, since the two carriers have 16 and 4 performance measurements respectively over the past 30 days. For FarEasTone, ten phones running three times each on Thursday afternoon would exceed its entire monthly total in one afternoon.&lt;/p&gt; &lt;p&gt;People outside the seven counties can measure at the same times too. Measurements from outside the throttled area act as a control group, helping separate changes caused by the drill from ordinary variation on the day.&lt;/p&gt; &lt;p&gt;Afterwards you can find your own measurement in &lt;a href=&#34;https://explorer.ooni.org/&#34; target=&#34;_blank&#34;&gt;OONI Explorer&lt;/a&gt; by ASN and time. The community will publish a follow-up post with the three time points broken down by carrier. Questions, or an interest in helping with the analysis, are welcome in the community &lt;a href=&#34;https://matrix.to/#/#community:im.anoni.net&#34; target=&#34;_blank&#34;&gt;Matrix Public Space&lt;/a&gt;.&lt;/p&gt; &lt;h2 id=&#34;Frequently-asked-questions&#34;&gt;Frequently asked questions&lt;a class=&#34;headerlink&#34; href=&#34;#Frequently-asked-questions&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;details class=&#34;question&#34;&gt; &lt;summary&gt;Why only the Performance tests, instead of running everything once?&lt;/summary&gt; &lt;p&gt;Every test group other than Performance performs blocking determination, and the throttle would make them produce false blocking signals.&lt;/p&gt; &lt;p&gt;Take &lt;code&gt;web_connectivity&lt;/code&gt;. It decides by comparing the phone&#39;s result against OONI&#39;s test helper server. The phone times out repeatedly under the rate limit while the test helper, sitting in a data centre, works fine, and that comparison gets labelled &lt;code&gt;tcp_ip&lt;/code&gt; or &lt;code&gt;http-failure&lt;/code&gt;, which is the signature of blocking. Several hundred people running blocking-determination tests under a rate limit at once amounts to injecting a batch of censorship-shaped records into Taiwan&#39;s public dataset.&lt;/p&gt; &lt;p&gt;The Performance group produces no false blocking signal. &lt;code&gt;ndt&lt;/code&gt; and &lt;code&gt;dash&lt;/code&gt; have no blocking determination implemented in the backend, and across roughly 200,000 measurements each worldwide over the last 90 days the anomaly count is 0 for both. They leave throughput numbers and nothing else.&lt;/p&gt; &lt;p&gt;Time does not allow it either. The Performance group takes about 1 minute 30 seconds and sits comfortably inside the window. The Websites group works through a URL list that takes several minutes even on a normal network, and under a rate limit it would very likely run past 15:00, mixing throttled and recovered conditions into one report.&lt;/p&gt; &lt;/details&gt; &lt;details class=&#34;question&#34;&gt; &lt;summary&gt;How much mobile data will this use?&lt;/summary&gt; &lt;p&gt;The app displays an estimate before running. Bandwidth is already constrained during the throttle, so that run costs least, while 14:15 and 15:10 run at normal speed and land at the top of the estimate. On a metered plan, prioritise the run during the throttle. The concrete figures are in the allowance warning above.&lt;/p&gt; &lt;/details&gt; &lt;details class=&#34;question&#34;&gt; &lt;summary&gt;My IP becomes public. How much of a risk is that really?&lt;/summary&gt; &lt;p&gt;The performance tests leave your IP in M-Lab&#39;s public dataset, retained long-term and not anonymised. Running the Websites tests instead avoids M-Lab entirely. The detail needed to judge the risk is in the privacy section above.&lt;/p&gt; &lt;/details&gt; &lt;details class=&#34;question&#34;&gt; &lt;summary&gt;I am not in the seven northern counties. Should I still measure?&lt;/summary&gt; &lt;p&gt;Yes, and it is useful. Data from outside the area serves as a control group for ruling out ordinary network variation on the day.&lt;/p&gt; &lt;/details&gt; &lt;details class=&#34;question&#34;&gt; &lt;summary&gt;I was in a meeting and missed 14:35 to 14:55. What now?&lt;/summary&gt; &lt;p&gt;Take 15:10 instead. Even a single late measurement compares against other participants and against the same hour the next day, so there is no need to complete all three for it to count.&lt;/p&gt; &lt;/details&gt; &lt;details class=&#34;question&#34;&gt; &lt;summary&gt;Is there any legal risk in taking part?&lt;/summary&gt; &lt;p&gt;The action is measuring your own connection speed on your own phone, no different from an ordinary speed-test app, and it neither interferes with the drill nor affects anyone else. OONI Probe is an open-source tool in long-standing use worldwide. If your organisation has its own compliance considerations, you can run the Websites tests only, or opt out.&lt;/p&gt; &lt;/details&gt; &lt;details class=&#34;question&#34;&gt; &lt;summary&gt;Is this an attempt to fact-check the official 256KB figure?&lt;/summary&gt; &lt;p&gt;The starting point is the rare set of observing conditions in these thirty minutes, with the time, the place, and the carriers all announced in advance. The official figure serves as the value to expect, so participants know roughly where the readings should land. The measurements describe network conditions, and the merits and necessity of the exercise are outside the scope.&lt;/p&gt; &lt;/details&gt; &lt;details class=&#34;question&#34;&gt; &lt;summary&gt;How do I confirm my measurement worked?&lt;/summary&gt; &lt;p&gt;The results page shows the network name and ASN once a run finishes, and it should read as your own carrier rather than Wi-Fi or a VPN. After submission you can also find your own record in &lt;a href=&#34;https://explorer.ooni.org/&#34; target=&#34;_blank&#34;&gt;OONI Explorer&lt;/a&gt;.&lt;/p&gt; &lt;/details&gt; &lt;details class=&#34;question&#34;&gt; &lt;summary&gt;Anything to watch for on a dual-SIM phone?&lt;/summary&gt; &lt;p&gt;Confirm which SIM mobile data is actually using. With two SIMs in one phone it is easy to assume you are testing one carrier while the data leaves through the other. The ASN on the results page is the final confirmation.&lt;/p&gt; &lt;/details&gt; &lt;h2 id=&#34;Data-and-assumptions&#34;&gt;Data and assumptions&lt;a class=&#34;headerlink&#34; href=&#34;#Data-and-assumptions&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The OONI figures in this post fall into three groups, all queried on 2026-08-11. The endpoints and parameters are below, so readers can re-run them.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;The central Taiwan 30-minute window&lt;/strong&gt; (902, 803, 593, and the two performance measurements in the table) uses the measurements endpoint with &lt;code&gt;probe_cc=TW&lt;/code&gt;, &lt;code&gt;since=2026-08-10T06:30:00Z&lt;/code&gt;, &lt;code&gt;until=2026-08-10T07:00:00Z&lt;/code&gt;, querying &lt;code&gt;test_name&lt;/code&gt; as &lt;code&gt;ndt&lt;/code&gt;, &lt;code&gt;dash&lt;/code&gt;, and &lt;code&gt;web_connectivity&lt;/code&gt; in turn. Every returned record carries &lt;code&gt;probe_asn&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;The 30-day ASN distribution&lt;/strong&gt; (645,039, 253,546, 191,257, 23,010, and the three carrier breakdowns) uses the aggregation endpoint with &lt;code&gt;probe_cc=TW&lt;/code&gt;, &lt;code&gt;test_name=web_connectivity&lt;/code&gt;, &lt;code&gt;axis_x=probe_asn&lt;/code&gt;, &lt;code&gt;since=2026-07-12&lt;/code&gt;, &lt;code&gt;until=2026-08-12&lt;/code&gt;. The performance figures of 1,008, 548, 528, 16, and 4 use the same parameters with &lt;code&gt;test_name&lt;/code&gt; set to &lt;code&gt;ndt&lt;/code&gt;. The aggregation endpoint&#39;s &lt;code&gt;until&lt;/code&gt; is exclusive, so &lt;code&gt;until=2026-08-12&lt;/code&gt; covers through 11 August.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Zero anomalies on the performance tests&lt;/strong&gt; uses the aggregation endpoint with no &lt;code&gt;probe_cc&lt;/code&gt; for worldwide scope, &lt;code&gt;since=2026-05-13&lt;/code&gt;, &lt;code&gt;until=2026-08-12&lt;/code&gt;, and &lt;code&gt;test_name&lt;/code&gt; of &lt;code&gt;ndt&lt;/code&gt; and &lt;code&gt;dash&lt;/code&gt;. The same parameters with &lt;code&gt;tor&lt;/code&gt; and &lt;code&gt;web_connectivity&lt;/code&gt; give the contrast, at 13.95% and 8.05% anomalies respectively.&lt;/p&gt; &lt;p&gt;These counts keep accumulating, so a later query returns slightly higher values while the shape of the distribution stays stable.&lt;/p&gt; &lt;h2 id=&#34;Appendix-on-using-OONI-as-research-evidence&#34;&gt;Appendix on using OONI as research evidence&lt;a class=&#34;headerlink&#34; href=&#34;#Appendix-on-using-OONI-as-research-evidence&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;This campaign addresses one event, but the method is reusable. OONI data has four entry points, serving quite different purposes:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://explorer.ooni.org/&#34; target=&#34;_blank&#34;&gt;OONI Explorer&lt;/a&gt;&lt;/strong&gt;: a web interface for inspecting individual measurements and country or ASN trends, with no code required.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Aggregation API&lt;/strong&gt;: &lt;code&gt;https://api.ooni.org/api/v1/aggregation&lt;/code&gt;, no authentication and no key, sliceable by country, test, and ASN. The 30-day ASN distribution and shares in this post come from it. Its &lt;code&gt;since&lt;/code&gt; and &lt;code&gt;until&lt;/code&gt; accept dates only, and passing a time returns a &lt;code&gt;date_from_datetime_inexact&lt;/code&gt; error, so it suits day-level trends and coarser.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Measurements API&lt;/strong&gt;: &lt;code&gt;https://api.ooni.org/api/v1/measurements&lt;/code&gt;, also unauthenticated, accepts second-precision windows and returns individual records. The central Taiwan 30-minute table in this post comes from it.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;AWS S3 public dataset&lt;/strong&gt;: &lt;code&gt;ooni-data-eu-fra&lt;/code&gt;, raw per-measurement JSON, for research needing measurement internals or large-scale analysis. Raw data is uploaded in hourly batches, landing in S3 with a lag of roughly half an hour to an hour or two. Access paths and CSV output formats are documented in &lt;a href=&#34;../../../../community/asn-coverage-howto/&#34;&gt;ASN observation data extraction and analysis&lt;/a&gt;, along with the community-maintained tooling.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;For this drill specifically, a 30-minute window needs the measurements endpoint: &lt;code&gt;probe_cc=TW&lt;/code&gt;, &lt;code&gt;test_name=ndt&lt;/code&gt; (or &lt;code&gt;dash&lt;/code&gt;), &lt;code&gt;since=2026-08-13T06:00:00Z&lt;/code&gt;, &lt;code&gt;until=2026-08-13T08:00:00Z&lt;/code&gt;. Each returned record carries &lt;code&gt;probe_asn&lt;/code&gt;, which you then group into &lt;code&gt;24158&lt;/code&gt;, &lt;code&gt;17421&lt;/code&gt;, and &lt;code&gt;9674&lt;/code&gt;. All times are UTC, which is Taipei time minus eight hours. To work out which test answers a given question, the &lt;a href=&#34;../../../../community/ooni-nettests-map/&#34;&gt;OONI nettest reference&lt;/a&gt; lists what each test measures, its spec status, and whether Taiwan has data for it.&lt;/p&gt; &lt;p&gt;Two things to keep in mind when using this data.&lt;/p&gt; &lt;p&gt;The most common misreading is treating an anomaly as a block. OONI&#39;s &lt;code&gt;anomaly&lt;/code&gt; flag only means a test did not complete as expected, and the causes include censorship, an unstable network, a transient ISP fault, and bugs in the test itself, so treating anomaly rates as blocking rates produces false accusations. Over the 30 days from 2026-07-12 to 2026-08-12 the &lt;code&gt;tor&lt;/code&gt; test recorded &lt;code&gt;16.3%&lt;/code&gt; in Canada (n=14,042), &lt;code&gt;22.1%&lt;/code&gt; in Switzerland (n=3,231), and &lt;code&gt;20.1%&lt;/code&gt; in New Zealand (n=562), none of which censor. That window differs from the 90-day one used for &lt;code&gt;ndt&lt;/code&gt; and &lt;code&gt;dash&lt;/code&gt; in the previous paragraph, so re-running these figures needs the 30-day parameters. Mid-range values are noise, and only the extreme high end corresponds to reality.&lt;/p&gt; &lt;p&gt;That applies only to tests that perform blocking determination. The performance tests have almost no &lt;code&gt;anomaly&lt;/code&gt; logic implemented in the backend: worldwide over the last 90 days, 200,000 &lt;code&gt;ndt&lt;/code&gt; measurements and 198,000 &lt;code&gt;dash&lt;/code&gt; measurements both return an anomaly count of 0. To judge whether this drill throttled anything, read the throughput values directly rather than the &lt;code&gt;anomaly&lt;/code&gt; flag.&lt;/p&gt; &lt;p&gt;On licensing, OONI&#39;s published measurement data is CC BY-NC-SA 4.0, which prohibits commercial use and requires derivative works to be released under the same licence. Cite the source when quoting figures, and note that merging OONI data with other sources into a new dataset brings the whole result under that licence.&lt;/p&gt; &lt;p&gt;Exercise details follow the &lt;a href=&#34;https://www.ey.gov.tw/Page/9277F759E41CCD91/66c2bed1-6ca3-4c30-ba7c-4fa0f90e00ec&#34; target=&#34;_blank&#34;&gt;Executive Yuan announcement&lt;/a&gt; and each carrier&#39;s own notice. If the schedule changes, the official announcements take precedence.&lt;/p&gt; &lt;hr /&gt; &lt;p&gt;&lt;strong&gt;Sources&lt;/strong&gt;: OONI aggregation and measurements API (query parameters in the Data and assumptions section above, measurement data licensed &lt;a href=&#34;https://github.com/ooni/license/blob/master/data/LICENSE.md&#34; target=&#34;_blank&#34;&gt;CC BY-NC-SA 4.0&lt;/a&gt;); ASN names from &lt;a href=&#34;https://stat.ripe.net/&#34; target=&#34;_blank&#34;&gt;RIPEstat&lt;/a&gt;; M-Lab data handling from the &lt;a href=&#34;https://www.measurementlab.net/privacy/&#34; target=&#34;_blank&#34;&gt;M-Lab privacy policy&lt;/a&gt;. Official and media sources for the exercise are in the footnotes below.&lt;/p&gt; &lt;div class=&#34;footnote&#34;&gt; &lt;hr /&gt; &lt;ol&gt; &lt;li id=&#34;fn:1&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.ey.gov.tw/Page/9277F759E41CCD91/66c2bed1-6ca3-4c30-ba7c-4fa0f90e00ec&#34; target=&#34;_blank&#34;&gt;2026 Urban Resilience (Air Defence) Exercise: mobile network throttling drill&lt;/a&gt; - Executive Yuan&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref2:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref3:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref4:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:2&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.cna.com.tw/news/ahel/202607220157.aspx&#34; target=&#34;_blank&#34;&gt;NCC urges preparation for offline scenarios ahead of the resilience exercise throttle&lt;/a&gt; - CNA&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:2&#34; title=&#34;Jump back to footnote 2 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:3&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://adma.mnd.gov.tw/unit/100005/8182&#34; target=&#34;_blank&#34;&gt;2026 Urban Resilience (Air Defence) Exercise schedule&lt;/a&gt; - All-out Defense Mobilization Agency&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:3&#34; title=&#34;Jump back to footnote 3 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:4&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.taiwanmobile.com/csonline/service/ann/ann3_20260722_103509.html&#34; target=&#34;_blank&#34;&gt;Notice on mobile network throttling in central and northern Taiwan for the 2026 Urban Resilience air defence exercise&lt;/a&gt; - Taiwan Mobile&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:4&#34; title=&#34;Jump back to footnote 4 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:5&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.cht.com.tw/home/consumer/customer-service/announce/urban-resilience-exercise&#34; target=&#34;_blank&#34;&gt;2026 Urban Resilience (Air Defence) Exercise mobile network throttling drill&lt;/a&gt; - Chunghwa Telecom&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:5&#34; title=&#34;Jump back to footnote 5 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:6&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.accessnow.org/campaign/keepiton/&#34; target=&#34;_blank&#34;&gt;#KeepItOn&lt;/a&gt; - Access Now&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:6&#34; title=&#34;Jump back to footnote 6 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:7&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://moda.gov.tw/major-policies/subseacable/fault/1749&#34; target=&#34;_blank&#34;&gt;Submarine cable fault status&lt;/a&gt; - Ministry of Digital Affairs&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:7&#34; title=&#34;Jump back to footnote 7 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/08/ooni-mobile-throttle-drill/</link> <pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/08/ooni-mobile-throttle-drill/</guid> <enclosure url="https://ipfs.anoni.net/en/assets/images/ooni-run-v2.webp" type="image/webp" length="21650" /> </item> <item> <title>Retracting what we published, and what changed on the docs site in the past two weeks</title> <author>anoni.net Community</author> <category>Community</category> <category>News</category> <description>&lt;h1 id=&#34;Retracting-what-we-published-and-what-changed-on-the-docs-site-in-the-past-two-weeks&#34;&gt;Retracting what we published, and what changed on the docs site in the past two weeks&lt;a class=&#34;headerlink&#34; href=&#34;#Retracting-what-we-published-and-what-changed-on-the-docs-site-in-the-past-two-weeks&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;&lt;img alt=&#34;What changed on the docs site&#34; src=&#34;../../../assets/images/post-update.png&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;Several pages changed over the past two weeks, and in most cases the change was to withdraw a passage rather than extend it. Hong Kong moved from medium to high risk for device inspection, the exemption for eSIMs bought outside Japan came out, a 2FA app we recommended turned out to have changed owners, and a blocking distribution drawn from 40 samples was recomputed over all 22,105. The site merged 50 pull requests between 27 July and 10 August, and a sizeable share of them went into corrections of this kind. What follows is page by page: what changed, what the evidence was, and a checklist in the middle for anyone who already prepared using the old guidance.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;Three-claims-withdrawn-from-the-Asia-travel-guidance&#34;&gt;Three claims withdrawn from the Asia travel guidance&lt;a class=&#34;headerlink&#34; href=&#34;#Three-claims-withdrawn-from-the-Asia-travel-guidance&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;We re-verified the Asia travel guidance in early August, and six independent fact-checking passes led us to withdraw three claims from the Traditional Chinese edition. The English edition is a separately curated article, &lt;a href=&#34;../../../../scenarios/asia-travel/&#34;&gt;Device minimization and border crossings in Asia&lt;/a&gt;, which received the Hong Kong correction and its footnote.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;A Hong Kong border unlocking power effective 30 March &#34;without requiring national security suspicion.&#34;&lt;/strong&gt; What we withdrew is the scope qualifier. The claim appeared only on travel-information aggregators, which contradicted each other on the effective date (28 vs 30 March) and the penalty (6 months vs 1 year), and the government gazette, Department of Justice materials and primary news reporting had no matching text. The 23 March national security amendment (&lt;code&gt;Legal Notice 27 of 2026&lt;/code&gt;) itself is verifiable: in a national security investigation the authorities can demand a device password, refusal is a criminal offence, and travellers who merely clear immigration while transiting Hong Kong are covered.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;eSIMs bought outside Japan falling outside the new rules&lt;/strong&gt;: Mori Hamada &amp;amp; Matsumoto explicitly notes that this point is &#34;not stated in the documents,&#34; and we had written it up as advice a reader could rely on. The page now says that whether overseas providers are covered is left to a future ministerial ordinance, and that no one should travel on the assumption that an eSIM bought abroad is exempt.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Malaysia&#39;s ONSA processing more than 1,500 posts in its first week&lt;/strong&gt;: The 1,583 figure in the original source is the total of hate-content takedown requests from 1 January to 30 November 2025, which predates ONSA coming into force. The number was wrong, the law is not: the page keeps the Online Safety Act&#39;s January 2026 commencement, its scope over platform operators, and the practical effect of faster content removal.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;The same pass replaced the source for the South Korea section. The Cybernews article originally cited carries no byline and no citations, and the site has a disclosed relationship with a VPN alliance. We replaced it with Lumen Database &lt;code&gt;#73101162&lt;/code&gt; and The Korea Times, and an outdated &#34;200,000 cases&#34; figure became 356,945 cases reviewed in 2024.&lt;/p&gt; &lt;p&gt;Hong Kong also moved from medium to high risk for device inspection, on the strength of the same verifiable decryption obligation. Withdrawing an exaggerated claim while raising the risk level looks contradictory, and points at one thing: the obligation is real, only its scope was overstated.&lt;/p&gt; &lt;h2 id=&#34;A-2FA-app-we-recommended-had-changed-owners&#34;&gt;A 2FA app we recommended had changed owners&lt;a class=&#34;headerlink&#34; href=&#34;#A-2FA-app-we-recommended-had-changed-owners&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href=&#34;../../../../basics/multiple-identities/&#34;&gt;Maintaining multiple online identities&lt;/a&gt; recommended Raivo as a replacement for Authy. Raivo was acquired by Mobime in July 2023, and the acquirer&#39;s privacy policy introduced advertising trackers and log collection. The same line also explained that Authy&#39;s desktop client had been discontinued and therefore needed replacing, so the page argued against itself. The revision keeps only Aegis and 2FAS, and replaces the brand list with three durable criteria: open source, exportable backups, and no change of ownership.&lt;/p&gt; &lt;p&gt;Two more changes landed on the same page. &#34;Open a fresh account in your existing Gmail without linking a phone&#34; is not achievable in practice. The page now explains that mainstream free mail providers require phone verification at sign-up, and that accounts opened from the same device and IP may be linked by the provider anyway. The virtual number section warned only about WhatsApp bans, and now adds two decisive risks: paying by card reconnects the two layers, and recycled numbers get reassigned to someone who can then reset your accounts by SMS.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;../../../../basics/platform-tracking/&#34;&gt;How platforms collect your data&lt;/a&gt; stated that large-scale research had found no evidence of covert recording, which is easily read as proof that it does not happen. The page now says plainly that finding no evidence and proving absence are separate things, and adds the 2024 Cox Media Group Active Listening pitch deck (Google subsequently removed Cox Media Group from its advertising partner programme, and the company denied any actual listening).&lt;/p&gt; &lt;p&gt;Two further problems were conflicts across pages. &lt;a href=&#34;../../../../scenarios/activist/&#34;&gt;Activists and protest digital safety&lt;/a&gt; advised against buying prepaid SIMs under a real identity, which contradicted the per-jurisdiction SIM registration guidance newly expanded on the travel page, a page the new section pointed readers to twice. &lt;a href=&#34;../../../../scenarios/journalist/&#34;&gt;Journalists and source protection&lt;/a&gt; framed the landline-and-SMS trade-off as permission, and now notes that a case can escalate to the level where call records are obtainable, and that call records are typically retained longer than a case runs.&lt;/p&gt; &lt;p&gt;All six came out of eight pages answering reader questions that went up between late July and early August. A review pass followed, with three reviewers working in parallel on structure, line editing and the target reader.&lt;/p&gt; &lt;h2 id=&#34;If-you-followed-the-old-guidance&#34;&gt;If you followed the old guidance&lt;a class=&#34;headerlink&#34; href=&#34;#If-you-followed-the-old-guidance&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Five of the items above change preparations a reader may already have made. Here is the current position and the action for each.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Travel to Hong Kong&lt;/strong&gt;: Device inspection moved from medium to high risk, and refusing to hand over a password during a national security investigation is itself a criminal offence. If you prepared at the medium-risk level, raise it to a clean device, and note that this applies even if you are only transiting through Hong Kong.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Japanese eSIMs bought abroad&lt;/strong&gt;: Drop the assumption that buying outside Japan puts you outside the rules. The law bringing data-only SIMs and eSIMs under identity verification has been published, its commencement is set by ordinance and falls no later than May 2027, and whether overseas providers are covered is still unsettled.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;If you are already using Raivo&lt;/strong&gt;: Move to Aegis or 2FAS. TOTP secrets cannot be transferred directly, so you need to re-enrol each service through its own two-factor settings. Keep the old app until the new one produces correct codes, and confirm your recovery codes are still to hand.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Prepaid SIMs&lt;/strong&gt;: The registration layer cannot be avoided. What you can do is avoid registering the SIM under the same name as your main number, and decide what that number is used for on that basis.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Accounts registered with a virtual number&lt;/strong&gt;: Go through those accounts and check their SMS recovery settings, remove any number you no longer hold, and switch to TOTP or recovery codes.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&#34;Taiwans-blocking-determination-recomputed-over-the-full-dataset&#34;&gt;Taiwan&#39;s blocking determination, recomputed over the full dataset&lt;a class=&#34;headerlink&#34; href=&#34;#Taiwans-blocking-determination-recomputed-over-the-full-dataset&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href=&#34;../../../../community/ooni-blocking-determination/&#34;&gt;How OONI decides a site is blocked&lt;/a&gt; draws on OONI, a public measurement project for internet censorship in which volunteers around the world run tests and every result is published. The page had reported a sample of 40 anomalous measurements (31 &lt;code&gt;dns&lt;/code&gt;, 6 &lt;code&gt;tcp_ip&lt;/code&gt;, 3 &lt;code&gt;http-failure&lt;/code&gt;, 0 &lt;code&gt;http-diff&lt;/code&gt;) and concluded from that sample that Taiwan showed no block-page redirection pattern. Recomputing over the full 24 hours preceding 2026-08-05 (22,105 measurements) broke both the distribution and the sampling method behind it:&lt;/p&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Determination&lt;/th&gt; &lt;th style=&#34;text-align: right;&#34;&gt;Count&lt;/th&gt; &lt;th style=&#34;text-align: right;&#34;&gt;Share&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;21,029&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;95.13%&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;none&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;512&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;2.32%&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;tcp_ip&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;312&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;1.41%&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;dns&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;150&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;0.68%&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;http-failure&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;67&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;0.30%&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;http-diff&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;35&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;0.16%&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;&lt;code&gt;tcp_ip&lt;/code&gt; is more than twice as common as &lt;code&gt;dns&lt;/code&gt;, and &lt;code&gt;http-diff&lt;/code&gt; does occur, 35 times. The fault was in where those 40 rows came from: the anomaly listing of the measurements API, which has its own ordering and is unreliable as a random sample. The page now carries a warning box recording the correction, because the same trap is easy for anyone else to fall into.&lt;/p&gt; &lt;p&gt;What the recomputation overturned was the distribution and the sampling method. The conclusion itself, that Taiwan shows no block pages, still holds. Fifteen of those 35 &lt;code&gt;http-diff&lt;/code&gt; cases were sampled from a four-hour window, and &lt;code&gt;body_proportion&lt;/code&gt; (how much of the content the Probe received matches the control) fell between &lt;code&gt;0.004&lt;/code&gt; and &lt;code&gt;0.21&lt;/code&gt;. The Probe received far less content than the control, the opposite of a block page approaching &lt;code&gt;1&lt;/code&gt;. Establishing the cause requires going through the evidence layer measurement by measurement, so the page reports the observed pattern without drawing a conclusion.&lt;/p&gt; &lt;p&gt;The recomputation became possible because the field tally was finally implemented. &lt;a href=&#34;../../../../community/ooni-data-format/&#34;&gt;Reading an OONI measurement&lt;/a&gt; had said from day one that the smallest useful step was to also read &lt;code&gt;test_keys.blocking&lt;/code&gt; during line-by-line parsing, which would extend the statistics from measurement counts to per-ASN anomaly distributions. (An ASN, or autonomous system number, identifies a block of IPs run by one operator or organisation.) The code never did it, and that was the one place where our documentation described something we had only written down. Adding it in early August contradicted the page above as soon as the first results came out.&lt;/p&gt; &lt;h2 id=&#34;Seven-corrections-on-the-Interactive-overview-page&#34;&gt;Seven corrections on the Interactive overview page&lt;a class=&#34;headerlink&#34; href=&#34;#Seven-corrections-on-the-Interactive-overview-page&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The overview page of the &lt;a href=&#34;../../../../games/&#34;&gt;Interactive&lt;/a&gt; section was fact-checked the day after launch, and seven problems turned up: four factual errors and three overstatements.&lt;/p&gt; &lt;p&gt;In two of the four, the document disagreed with itself. The text described meteors in the globe view, when &lt;code&gt;buildSky()&lt;/code&gt; draws only a static starfield and a Milky Way band and searching for &lt;code&gt;meteor&lt;/code&gt; and &lt;code&gt;comet&lt;/code&gt; returned nothing. The bright-headed comets belong to a different piece, onion-rendezvous, and the document had written the two up as one. Elsewhere it presented &#34;two circuits meeting at a middle relay&#34; as a general property of Tor, when it applies only to connections to .onion services, while a project card on the same page described it correctly.&lt;/p&gt; &lt;p&gt;The other two were disagreements between the document and the data. &#34;Every data file carries four fields&#34; was false because &lt;code&gt;cables.json&lt;/code&gt; lacked &lt;code&gt;sourceUrl&lt;/code&gt; and &lt;code&gt;licenseUrl&lt;/code&gt;. We chose to complete the data and amend &lt;code&gt;tools/gen_cables.py&lt;/code&gt; rather than soften the claim. &#34;&lt;code&gt;tools/&lt;/code&gt; uses only the Python standard library plus curl&#34; had missed that &lt;code&gt;fix_trunk_land.mjs&lt;/code&gt; is Node and &lt;code&gt;publish_games_data.sh&lt;/code&gt; is shell.&lt;/p&gt; &lt;p&gt;Three statements were overstated:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;&#34;If any step is out of order, anonymity fails.&#34;&lt;/strong&gt; Anonymity can break through traffic correlation or exit monitoring, neither of which involves ordering, while a broken Tor ordering usually just results in a failed connection. The original narrowed the failure conditions to ordering alone, and now reads more carefully.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;An ASN being &#34;operated by a single provider.&#34;&lt;/strong&gt; The claim was contradicted by a comment in the project&#39;s own snapshot generator, which notes that an ASN can be registered by an individual.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;&#34;Eighty countries.&#34;&lt;/strong&gt; Hard-coding an exact integer goes stale whenever the snapshot is regenerated, so it now reads as approximately eighty with the source snapshot noted.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&#34;Most-English-readers-never-reached-an-article&#34;&gt;Most English readers never reached an article&lt;a class=&#34;headerlink&#34; href=&#34;#Most-English-readers-never-reached-an-article&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Cloudflare data for the trailing 90 days, excluding subdomains and bots, showed the English edition at 25.9% of docs traffic. Of 440 pageviews, only 70 (16%) reached an actual article, 290 landed on section index pages, and 80 were 404s.&lt;/p&gt; &lt;p&gt;Three causes turned up, two in the redirect configuration and one in an earlier navigation restructure. Four &lt;code&gt;redirect_maps&lt;/code&gt; rules had existing English pages as their source, and the build tool generates a stub at that path which overwrites the real page, so all four were serving nothing but a redirect screen in production. Three more redirects pointed to section indexes even though the English content existed. The third cause was the navigation restructure of 2026-05-09, whose commit deleted 17 files from &lt;code&gt;docs/en/&lt;/code&gt; and added none, roughly 115,000 characters, with a configuration comment stating that dropped pages redirect to the nearest live section index.&lt;/p&gt; &lt;p&gt;Five pages were restored based on measured traffic, raising the share of English pageviews reaching a real article from 16% to 64%. The four stub-covered pages were the smallest part of the problem, with index pages and 404s accounting for most of it, and twelve more deleted pages and the remaining 18% of 404s are still outstanding.&lt;/p&gt; &lt;h2 id=&#34;Six-new-automated-checks-on-the-writing-standards&#34;&gt;Six new automated checks on the writing standards&lt;a class=&#34;headerlink&#34; href=&#34;#Six-new-automated-checks-on-the-writing-standards&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The errors in the sections above share an upstream cause: when a standard is written but nothing enforces it, the content keeps drifting until someone reads it. Our writing standards say colloquial words should be rewritten in a formal register, while &lt;code&gt;docs_style_lint.py&lt;/code&gt; had implemented that rule for exactly one character. A site-wide scan found 605 further instances of other colloquial words, and our own tooling reported &lt;code&gt;0 errors&lt;/code&gt; and &lt;code&gt;0 warnings&lt;/code&gt; on that state. (The full standard is maintained in the &lt;a href=&#34;/community/contributor-handbook/&#34; target=&#34;_blank&#34;&gt;Traditional Chinese contributor handbook&lt;/a&gt;.)&lt;/p&gt; &lt;p&gt;Counting the one character the tool already caught, the late-July sweep handled 669 instances across 158 files and added six linter rules, all of them warnings, because the right replacement depends on context and a machine should not apply it directly. Two mechanical replacements caused real damage during that sweep, both fixed and added to the exception list: 20 speaker introductions on the schedule page were mangled across two language editions, and a phrase meaning &#34;had not understood&#34; was turned into one meaning &#34;had not handled cleanly.&#34;&lt;/p&gt; &lt;p&gt;While closing another pull request the same week, we found that the matching rule covered only traditional characters, leaving the simplified equivalent unchecked, which meant zh-CN effectively had no such rule. Scanning the whole site showed less debt than expected, with only 3 instances needing review and all of them legitimate. The real gain was the first regression test suite, since this linter was the only automated check on the site&#39;s writing standards and had no tests at all. Incomplete coverage is invisible to manual sampling, because every sample drawn happens to fall inside the covered range.&lt;/p&gt; &lt;p&gt;An earlier site-wide clean-up had already rewritten 266 paragraphs across 99 files for overuse of the character 這. In early August we added the density standard behind it, because the criteria actually used during copy-editing existed only in a commit message and would not apply the next time someone wrote a new page. They went into the contributor handbook, and the machine-checkable part became the &lt;code&gt;zhe-repeat&lt;/code&gt; rule. The 8-character distance threshold was calibrated against 429 pages, widening it to 10 would start catching legitimate usage, and whole-document density needs semantic judgement and was deliberately left to humans.&lt;/p&gt; &lt;h2 id=&#34;Two-pages-had-drifted-from-their-own-current-state&#34;&gt;Two pages had drifted from their own current state&lt;a class=&#34;headerlink&#34; href=&#34;#Two-pages-had-drifted-from-their-own-current-state&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The &lt;a href=&#34;/community/privacy-guide/&#34; target=&#34;_blank&#34;&gt;personal privacy guide&lt;/a&gt; (the Mandarin edition) gained a &#34;related articles&#34; index on 6 August, and the progress section further down was never updated to match, so one page said two different things. The index listed eight concept-layer articles while the section below still read &#34;five concept-layer articles published&#34; and listed only the original five. The per-layer indexes had fallen behind as well: 18 tools articles with 7 listed, 10 scenario articles with 5, 5 advanced articles with 2. Fourteen were added back.&lt;/p&gt; &lt;p&gt;The same page lists four common misconceptions in a way that reads as though none had been started. Two were already written and simply never linked: &#34;VPN ≠ anonymity&#34; has a full article in the &lt;a href=&#34;../../../../tools/vpn-guide/&#34;&gt;VPN guide&lt;/a&gt;, and &#34;decentralised ≠ anonymous&#34; is covered for IPFS, Yggdrasil, DN42 and I2P in &lt;a href=&#34;../../../../advanced/mistaken-for-anonymity/&#34;&gt;Networks mistaken for anonymity&lt;/a&gt;. The other two have genuinely not been started, and the page now says so.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;../../../../community/pin-ipfs-mirror/&#34;&gt;Help pin the site&#39;s IPFS mirror&lt;/a&gt; had three passages that no longer matched reality, two of them found by readers who actually followed the instructions.&lt;/p&gt; &lt;p&gt;The macOS section said &lt;code&gt;brew install ipfs&lt;/code&gt;. The Homebrew formula has since been renamed to &lt;code&gt;kubo&lt;/code&gt;. The old name still installs it, but &lt;code&gt;brew services&lt;/code&gt; matches on the real formula name, so anyone who installed via the old instructions and then tried to set up a persistent daemon hit a name mismatch. The persistence advice said only &#34;use &lt;code&gt;brew services&lt;/code&gt; or launchd&#34; without giving a command, when the formula itself already defines a service and &lt;code&gt;brew services start kubo&lt;/code&gt; keeps it resident and starts it at login.&lt;/p&gt; &lt;p&gt;The second was a contributor who wanted to configure the community node as a fixed peer and put the page&#39;s IPNS name into kubo&#39;s &lt;code&gt;Peering.Peers&lt;/code&gt;, which the tool rejected outright. The page explained CID and IPNS names and never mentioned the node&#39;s own Peer ID. All three identifiers look alike: the base36 form of the node Peer ID shares its first 12 characters with the site&#39;s IPNS name, both being public-key fingerprints in the same encoding, one pointing at content that changes and the other at a machine. The page now carries a comparison table for all three, plus an optional peering section.&lt;/p&gt; &lt;p&gt;The third was the opening line, &#34;right now only the community&#39;s own node does&#34;. A DHT lookup found another provider serving the site&#39;s content from a third-party network, either someone else&#39;s mirror or a public gateway that had fetched the content and announced it. Either way the sentence no longer held, and it now reads that few nodes currently serve the mirror, with the community&#39;s own carrying most of it. No exact count is given, because &lt;code&gt;findprovs&lt;/code&gt; is best-effort and returns whatever it finds before the query times out, so &#34;only N&#34; would be its own kind of inaccuracy.&lt;/p&gt; &lt;h2 id=&#34;A-white-strip-on-narrow-screens-traced-back-to-the-language-switcher&#34;&gt;A white strip on narrow screens traced back to the language switcher&lt;a class=&#34;headerlink&#34; href=&#34;#A-white-strip-on-narrow-screens-traced-back-to-the-language-switcher&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;A reader reported a blank strip appearing to the right of the pinned announcement. Measurement showed the announcement was not the cause: with it hidden entirely, &lt;code&gt;documentElement.scrollWidth&lt;/code&gt; still exceeded the viewport by 14px. Hiding candidate elements one at a time located the language switcher in the header, where the Chinese labels give the collapsed menu a width of 177px. On narrow screens the button sits close to the right edge, so the menu pushes the layout outwards. The announcement&#39;s dark background and the header&#39;s blue are only as wide as the viewport, so scrolling right exposes white underneath. The breakpoint falls exactly at 960px, where the header switches to its desktop layout. The fix anchors the menu to the button&#39;s right edge below that breakpoint and leaves the desktop centring alone. The same change raised the contrast of links inside the pinned announcement in light theme, previously &lt;code&gt;2.79:1&lt;/code&gt; against the dark background.&lt;/p&gt; &lt;p&gt;Separately, two GitHub Actions were still on the Node 20 runtime, and the runner printed a deprecation warning on every run. &lt;code&gt;actions/cache&lt;/code&gt; went from v4 to v6 and &lt;code&gt;actions/setup-node&lt;/code&gt; from v4 to v7, with the release notes read version by version first to confirm that neither set of breaking changes reaches how this project uses them.&lt;/p&gt; &lt;h2 id=&#34;Thanks-to-two-community-contributors&#34;&gt;Thanks to two community contributors&lt;a class=&#34;headerlink&#34; href=&#34;#Thanks-to-two-community-contributors&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Two of the 50 pull requests came from community members.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;https://github.com/wu858430049&#34; target=&#34;_blank&#34;&gt;wu858430049&lt;/a&gt; contributed the Simplified Chinese edition of the &lt;a href=&#34;/zh-cn/community/become-anoni/&#34; target=&#34;_blank&#34;&gt;BECOME_ANONI&lt;/a&gt; protocol. The canonical file sits in the repository root mirroring the zh-TW layout, the docs page embeds it through snippets to keep a single source, and the same pull request fixed two configuration problems that were preventing the page from rendering. Translation is a long-standing gap here, with many pages still missing a Simplified Chinese or English counterpart.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;https://github.com/ChihChengLiang&#34; target=&#34;_blank&#34;&gt;ChihChengLiang&lt;/a&gt; updated the description of the privacy payments workshop at &lt;a href=&#34;../../../../activity/coscup-2026/&#34;&gt;COSCUP 2026&lt;/a&gt;. It had said that no laptop was needed and attendees could simply follow along, so anyone who intended to take part would have arrived under-prepared. A simulated network and simulated chain are in fact provided on site, and participants are encouraged to bring a laptop and work through it. That contribution required no code at all, only knowing what the workshop actually looks like and being willing to rewrite a paragraph.&lt;/p&gt; &lt;p&gt;Both pull requests removed content that would have led readers to a wrong decision. The lowest-effort way in is to open an issue naming the sentence that is wrong and the source you found. To change the content yourself, &lt;a href=&#34;../../../../community/how-to-contribute/&#34;&gt;How to contribute&lt;/a&gt; covers choosing and claiming a topic, the pull request process, and what a good pull request looks like.&lt;/p&gt; &lt;h2 id=&#34;The-part-you-cannot-check-for-yourself&#34;&gt;The part you cannot check for yourself&lt;a class=&#34;headerlink&#34; href=&#34;#The-part-you-cannot-check-for-yourself&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The site is about privacy and security, and readers change their behaviour based on what it says, so the cost of a wrong sentence lands on the reader. The harder part is that readers cannot check for themselves: a distribution drawn from a sample, written up as a general rule, reads exactly like one computed over everything, and no reader can tell whether the conclusion came from 40 measurements or 22,105. So the corrections are published with their reasoning, including the original wording of what was withdrawn and why we did not accept it.&lt;/p&gt; &lt;p&gt;The same period also added a Taiwan infrastructure layer in the &lt;a href=&#34;../../../../games/&#34;&gt;Interactive&lt;/a&gt; section, four &lt;a href=&#34;../../../../community/ooni-data-format/&#34;&gt;OONI technical documents&lt;/a&gt;, and a .onion build variant in CI. If you find something that does not match the facts, open an issue on &lt;a href=&#34;https://github.com/anoni-net/docs/issues&#34; target=&#34;_blank&#34;&gt;GitHub&lt;/a&gt; or send a pull request, and we will verify and update.&lt;/p&gt; &lt;h2 id=&#34;Related-reading&#34;&gt;Related reading&lt;a class=&#34;headerlink&#34; href=&#34;#Related-reading&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;../../../../community/ooni-blocking-determination/&#34;&gt;How OONI decides a site is blocked&lt;/a&gt;: the page the full dataset overturned, now carrying a warning box about this correction&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../community/ooni-data-format/&#34;&gt;Reading an OONI measurement&lt;/a&gt;: the version after the field tally was completed&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../scenarios/asia-travel/&#34;&gt;Device minimization and border crossings in Asia&lt;/a&gt;: current guidance after the Hong Kong correction&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../basics/multiple-identities/&#34;&gt;Maintaining multiple online identities&lt;/a&gt;: TOTP app guidance is now criteria-based rather than brand-based&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../community/pin-ipfs-mirror/&#34;&gt;Help pin the site&#39;s IPFS mirror&lt;/a&gt;: the three-identifier comparison table and the new peering section&lt;/li&gt; &lt;/ul&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/08/docs-corrections-202608/</link> <pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/08/docs-corrections-202608/</guid> <enclosure url="https://ipfs.anoni.net/en/assets/images/post-update.png" type="image/png" length="81353" /> </item> <item> <title>Snowflake gets a dedicated app, and the volunteer pool grew 29% in a month</title> <author>anoni.net Community</author> <category>Tor</category> <category>Translated Article</category> <category>Update</category> <description>&lt;h1 id=&#34;Snowflake-gets-a-dedicated-app-and-the-volunteer-pool-grew-29-in-a-month&#34;&gt;Snowflake gets a dedicated app, and the volunteer pool grew 29% in a month&lt;a class=&#34;headerlink&#34; href=&#34;#Snowflake-gets-a-dedicated-app-and-the-volunteer-pool-grew-29-in-a-month&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;div class=&#34;admonition info&#34;&gt; &lt;p&gt;This post is based on the Tor Project announcement:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;https://blog.torproject.org/snowflake-volunteer-standalone-app-to-help-people-bypass-censorship/&#34; target=&#34;_blank&#34;&gt;Snowflake Volunteer, an Android app to help people bypass censorship | August 3, 2026&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;figure&gt; &lt;a href=&#34;https://forum.torproject.org/uploads/default/original/2X/c/c9143874b416a1c6e0d676145c11846ad63bad39.jpeg&#34; target=&#34;_blank&#34;&gt; &lt;img src=&#34;https://forum.torproject.org/uploads/default/original/2X/c/c9143874b416a1c6e0d676145c11846ad63bad39.jpeg&#34; alt=&#34;Snowflake Volunteer promotional graphic showing several phone mockups of the app&#39;s enable toggle, settings screen, and statistics screen&#34; style=&#34;border-radius: 10px;&#34;&gt; &lt;/a&gt; &lt;figcaption&gt;Image source: &lt;a target=&#34;_blank&#34; href=&#34;https://blog.torproject.org/snowflake-volunteer-standalone-app-to-help-people-bypass-censorship/&#34;&gt;Tor Project Blog&lt;/a&gt;.&lt;/figcaption&gt; &lt;/figure&gt; &lt;p&gt;We&#39;ve &lt;a href=&#34;../../05/iran-blackout-webtunnel/&#34;&gt;written before&lt;/a&gt; that &lt;a href=&#34;../../../../tools/tor-snowflake/&#34;&gt;Snowflake&lt;/a&gt; is the lowest-barrier way to help people reach Tor: open a browser tab, leave it running, and you&#39;re relaying anonymous traffic. On 3 August, Tor Project lowered that barrier again with &lt;strong&gt;Snowflake Volunteer&lt;/strong&gt;, a standalone Android app whose only job is being a Snowflake bridge.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;Why-a-dedicated-app&#34;&gt;Why a dedicated app&lt;a class=&#34;headerlink&#34; href=&#34;#Why-a-dedicated-app&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Snowflake works by disguising a user&#39;s traffic as a video call and routing it through volunteer-run proxies over short-lived connections, which makes it harder for censors to detect and block. That depends on a large, steady pool of volunteers. In the first half of 2026, the Snowflake broker saw an average of roughly 146,000 unique volunteer proxy IPs check in per day&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;, with about a third of that coming from &lt;a href=&#34;https://orbot.app/en/kindness/&#34; target=&#34;_blank&#34;&gt;Orbot&#39;s Kindness Mode&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Portuguese app studio &lt;a href=&#34;https://www.bloco.io/&#34; target=&#34;_blank&#34;&gt;Bloco&lt;/a&gt; noticed how much Kindness Mode alone contributed and asked whether a single-purpose app could do even more. Building on the Guardian Project&#39;s &lt;a href=&#34;https://github.com/tladesignz/IPtProxy&#34; target=&#34;_blank&#34;&gt;IPtProxy&lt;/a&gt; library, Bloco focused on three things: keeping the app alive in the background without draining the battery, making the settings legible enough that anyone can configure it correctly, and showing volunteers a running tally of how much they&#39;ve helped.&lt;/p&gt; &lt;figure&gt; &lt;a href=&#34;https://blog.torproject.org/snowflake-volunteer-standalone-app-to-help-people-bypass-censorship/features-overview.png&#34; target=&#34;_blank&#34;&gt; &lt;img src=&#34;https://blog.torproject.org/snowflake-volunteer-standalone-app-to-help-people-bypass-censorship/features-overview.png&#34; alt=&#34;Three screenshots of the Snowflake Volunteer app: the main screen showing people helped and traffic stats, the settings screen with background-run, Wi-Fi-only, and charging-only toggles, and a statistics screen listing daily connections and traffic&#34; style=&#34;border-radius: 10px;&#34;&gt; &lt;/a&gt; &lt;figcaption&gt;The app&#39;s main screen, settings, and statistics view. Image source: &lt;a target=&#34;_blank&#34; href=&#34;https://blog.torproject.org/snowflake-volunteer-standalone-app-to-help-people-bypass-censorship/&#34;&gt;Tor Project Blog&lt;/a&gt;.&lt;/figcaption&gt; &lt;/figure&gt; &lt;p&gt;The result gives volunteers real control: run only in the background, restrict to unmetered Wi-Fi, run only while charging, or cap how many people it helps at once.&lt;/p&gt; &lt;h2 id=&#34;The-number-that-matters-is-29-in-a-month&#34;&gt;The number that matters is +29% in a month&lt;a class=&#34;headerlink&#34; href=&#34;#The-number-that-matters-is-29-in-a-month&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Snowflake Volunteer launched publicly in April after a round of community testing. Daily unique volunteer IPs went from about 1,300 in May to about 1,700 in June, a 29% increase in one month, with single-day peaks above 2,100. That&#39;s a meaningful jump for a channel that previously only existed as a browser extension, a website widget, a desktop CLI tool, or Orbot&#39;s Kindness Mode. It suggests a chunk of would-be volunteers were simply waiting for an option that fit how they actually use their devices, phone-first, not desktop-first.&lt;/p&gt; &lt;p&gt;The app currently ships in 8 languages (Chinese, English, French, German, Japanese, Portuguese, Turkish, and Vietnamese), and the project is looking for more translators via &lt;a href=&#34;https://hosted.weblate.org/projects/snowflake-volunteers/&#34; target=&#34;_blank&#34;&gt;Weblate&lt;/a&gt;.&lt;/p&gt; &lt;h2 id=&#34;Who-in-our-region-should-actually-install-this&#34;&gt;Who in our region should actually install this&lt;a class=&#34;headerlink&#34; href=&#34;#Who-in-our-region-should-actually-install-this&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;A phone that can run this app in the background needs unrestricted outbound connectivity, the same requirement as running Snowflake in a browser tab. That describes a lot of readers in Taiwan and across East and Southeast Asia, but not everyone: if your own network sits behind a national firewall, you may not be able to reach the Snowflake broker reliably in the first place, and running circumvention infrastructure from inside a heavily censored network carries risk that has nothing to do with the app&#39;s technical design.&lt;/p&gt; &lt;p&gt;For readers in Hong Kong specifically, the same caveat we&#39;ve flagged for browser-based Snowflake still applies here: installing this app means your device is relaying Tor traffic on behalf of people in censored regions, and that fact alone could draw scrutiny if your device were ever searched under national-security-related powers. Weigh that before installing.&lt;/p&gt; &lt;p&gt;For everyone else with a spare Android phone and a connection that isn&#39;t itself under heavy censorship, this is about as close to zero-effort volunteering gets: install it, flip the toggle, and leave it charging overnight.&lt;/p&gt; &lt;h2 id=&#34;Getting-the-app&#34;&gt;Getting the app&lt;a class=&#34;headerlink&#34; href=&#34;#Getting-the-app&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Snowflake Volunteer is on &lt;a href=&#34;https://f-droid.org/en/packages/io.bloco.snowflake/&#34; target=&#34;_blank&#34;&gt;F-Droid&lt;/a&gt; and &lt;a href=&#34;https://play.google.com/store/apps/details?id=io.bloco.snowflake&#34; target=&#34;_blank&#34;&gt;Google Play&lt;/a&gt;, and the source is on &lt;a href=&#34;https://github.com/blocoio/snowflake&#34; target=&#34;_blank&#34;&gt;GitHub&lt;/a&gt; if you&#39;d rather build it yourself or &lt;a href=&#34;https://github.com/blocoio/snowflake/issues/new&#34; target=&#34;_blank&#34;&gt;file an issue&lt;/a&gt;.&lt;/p&gt; &lt;h2 id=&#34;Related-reading&#34;&gt;Related reading&lt;a class=&#34;headerlink&#34; href=&#34;#Related-reading&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;../../../../tools/tor-snowflake/&#34;&gt;Tor Snowflake bridge&lt;/a&gt;: how the browser-tab version works, and the Hong Kong risk note&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../05/iran-blackout-webtunnel/&#34;&gt;After Iran&#39;s 80-day blackout, traffic surged through our community&#39;s Tor WebTunnel bridge&lt;/a&gt;: why we already recommend Snowflake as the low-effort option&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;https://community.torproject.org/relay/&#34; target=&#34;_blank&#34;&gt;Set up a Tor relay&lt;/a&gt;: the next step up if you want to commit a server&lt;/li&gt; &lt;/ul&gt; &lt;div class=&#34;admonition info&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Source&lt;/p&gt; &lt;p&gt;Based on the official Tor Project post &lt;a href=&#34;https://blog.torproject.org/snowflake-volunteer-standalone-app-to-help-people-bypass-censorship/&#34; target=&#34;_blank&#34;&gt;Snowflake Volunteer, an Android app to help people bypass censorship&lt;/a&gt;.&lt;/p&gt; &lt;/div&gt; &lt;div class=&#34;footnote&#34;&gt; &lt;hr /&gt; &lt;ol&gt; &lt;li id=&#34;fn:1&#34;&gt; &lt;p&gt;Based on 180 daily Snowflake broker reports covering 1 January through 30 June 2026, aggregated from the &lt;code&gt;snowflake-stats&lt;/code&gt; descriptors in Tor Metrics&#39; &lt;a href=&#34;https://metrics.torproject.org/collector/archive/snowflakes/&#34; target=&#34;_blank&#34;&gt;CollecTor archive&lt;/a&gt;.&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/08/snowflake-volunteer-android-app/</link> <pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/08/snowflake-volunteer-android-app/</guid> <enclosure url="https://ipfs.anoni.net/en/assets/images/tor.webp" type="image/webp" length="13344" /> </item> <item> <title>Drawing an anonymity network onto a globe, the Interactive section and the open-data walls we hit</title> <author>anoni.net Community</author> <category>Tech</category> <category>Tor</category> <category>Updates</category> <description>&lt;h1 id=&#34;Drawing-an-anonymity-network-onto-a-globe-the-Interactive-section-and-the-open-data-walls-we-hit&#34;&gt;Drawing an anonymity network onto a globe, the Interactive section and the open-data walls we hit&lt;a class=&#34;headerlink&#34; href=&#34;#Drawing-an-anonymity-network-onto-a-globe-the-Interactive-section-and-the-open-data-walls-we-hit&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;&lt;img alt=&#34;Tor Relay Globe&#34; src=&#34;https://assets.anoni.net/games/tor-network-en.png&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;The docs site now has an &lt;a href=&#34;../../../../games/&#34;&gt;Interactive&lt;/a&gt; section holding three pieces, all centred on Tor. The one carrying the most data is the &lt;a href=&#34;../../../../../games/tor-network/play/index.html?lang=en&#34;&gt;Tor Relay Globe&lt;/a&gt;, which plots nearly ten thousand running relays onto a sphere. Over sixty percent of them sit in the United States, Germany and the Netherlands.&lt;/p&gt; &lt;p&gt;Building it meant checking more than twenty public datasets. Six made it in. Almost nothing failed for technical reasons: the APIs mostly worked and the formats were clean. What stopped us was terms that do not allow redistribution.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;Why-build-it-as-a-visual&#34;&gt;Why build it as a visual&lt;a class=&#34;headerlink&#34; href=&#34;#Why-build-it-as-a-visual&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Anonymity network infrastructure is hard to describe in prose, and it fails on two things in particular: sequence, and scale.&lt;/p&gt; &lt;p&gt;On sequence, Tor is the obvious example. A packet advances through three relays, shedding one layer of encryption at each hop, and only at the exit is the original request restored. Which layer comes off at which hop, and what each stop gets to see, all follow from that order. However carefully the text is written, a reader still has to animate that part in their own head, and no two readers produce quite the same version.&lt;/p&gt; &lt;p&gt;Scale is harder still. &#34;Nearly ten thousand relays, heavily concentrated in a handful of countries&#34; is a sentence you read past. Plot every relay onto a globe and North America and Western Europe merge into one band of light while everywhere else shows a scattering of dots. The same numbers turned into a picture mean readers do not have to trust our adjectives.&lt;/p&gt; &lt;h2 id=&#34;The-six-datasets-behind-the-globe&#34;&gt;The six datasets behind the globe&lt;a class=&#34;headerlink&#34; href=&#34;#The-six-datasets-behind-the-globe&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Data&lt;/th&gt; &lt;th&gt;Source&lt;/th&gt; &lt;th&gt;Licence&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Relay distribution&lt;/td&gt; &lt;td&gt;&lt;a href=&#34;https://metrics.torproject.org/onionoo.html&#34;&gt;Onionoo&lt;/a&gt;&lt;/td&gt; &lt;td&gt;CC0 1.0&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;User and bridge counts&lt;/td&gt; &lt;td&gt;&lt;a href=&#34;https://metrics.torproject.org/&#34;&gt;Tor Metrics&lt;/a&gt;&lt;/td&gt; &lt;td&gt;CC0 1.0&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Connection-blocking measurements&lt;/td&gt; &lt;td&gt;&lt;a href=&#34;https://ooni.org/&#34;&gt;OONI&lt;/a&gt;&lt;/td&gt; &lt;td&gt;CC BY-NC-SA 4.0&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Shutdown records&lt;/td&gt; &lt;td&gt;&lt;a href=&#34;https://www.accessnow.org/keepiton-data-dashboard/&#34;&gt;Access Now KeepItOn&lt;/a&gt;&lt;/td&gt; &lt;td&gt;CC BY 4.0&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Submarine cables&lt;/td&gt; &lt;td&gt;&lt;a href=&#34;https://www.openstreetmap.org/copyright&#34;&gt;OpenStreetMap&lt;/a&gt; contributors&lt;/td&gt; &lt;td&gt;ODbL 1.0&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Borders and coastlines&lt;/td&gt; &lt;td&gt;&lt;a href=&#34;https://www.naturalearthdata.com/&#34;&gt;Natural Earth&lt;/a&gt;&lt;/td&gt; &lt;td&gt;public domain&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;The Onionoo snapshot is distilled down to country-level aggregates, with no fingerprints, nicknames, IP addresses or contact details. ASN registration names are filtered as well, because an AS registered by an individual carries that person&#39;s legal name in the RIR record. For someone running a relay in a heavily censored country, that amounts to publishing which relay is theirs alongside the name on their ID.&lt;/p&gt; &lt;p&gt;Landmass brightness switches between four metrics. Relay count is the obvious one. Consensus weight shows the share of traffic a country actually carries, which often diverges from the raw count. Single-provider concentration is the fraction of a country&#39;s relays sitting with its largest hosting provider: the higher it goes, the more that country&#39;s anonymous traffic depends on one facility staying up and staying cooperative. The user estimate is a demand-side figure, and the gap between it and the three supply-side metrics is itself informative.&lt;/p&gt; &lt;div class=&#34;admonition info&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Addendum, 2026-07-31: three more&lt;/p&gt; &lt;p&gt;Three more datasets went into the globe after this post was published. All of them cleared the same licence bar.&lt;/p&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Data&lt;/th&gt; &lt;th&gt;Source&lt;/th&gt; &lt;th&gt;Licence&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Share of population online&lt;/td&gt; &lt;td&gt;&lt;a href=&#34;https://data.worldbank.org/indicator/IT.NET.USER.ZS&#34;&gt;World Bank&lt;/a&gt;&lt;/td&gt; &lt;td&gt;CC BY 4.0&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Same figure for Taiwan&lt;/td&gt; &lt;td&gt;&lt;a href=&#34;https://moda.gov.tw/digital-affairs/digital-service/operations/208&#34;&gt;Ministry of Digital Affairs National Digital Access Survey&lt;/a&gt;&lt;/td&gt; &lt;td&gt;Open Government Data Licence, version 1&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Sea floor depth&lt;/td&gt; &lt;td&gt;&lt;a href=&#34;https://www.naturalearthdata.com/&#34;&gt;Natural Earth&lt;/a&gt;&lt;/td&gt; &lt;td&gt;public domain&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;The share of population online is there as a denominator. The globe used to say only &#34;this many people use Tor here&#34;, and that number largely tracks population size. Knowing how many people are online at all is what lets you tell whether a gap between two countries is really about Tor.&lt;/p&gt; &lt;p&gt;The World Bank figures have a gap that is awkward for a site based in Taiwan: Taiwan is not among the 217 economies. So that one figure comes from Taiwan&#39;s own government survey instead. The two are not the same kind of measurement, one is ITU compiling national reports and the other is a telephone survey of people aged 12 and over, and the globe says so where it shows the number. That is data politics of a different kind from the licence walls above, and it lands on downstream users just the same.&lt;/p&gt; &lt;p&gt;Sea floor depth comes from the source already in the table, so there was no new licence to handle. Four contours at 200, 1000, 3000 and 5000 metres, the shallowest of which is the continental shelf. It is what gives the cable layer its meaning: submarine cables mostly follow the shelf and avoid the deep basins, and with both layers up you can see why the cables run where they do.&lt;/p&gt; &lt;p&gt;That led to looking for cable landing points, the most fragile part of any cable and a live topic for Taiwan. OpenStreetMap does not have them. This is absence, not a failed download: a taginfo query for &lt;code&gt;man_made=cable_landing_point&lt;/code&gt;, &lt;code&gt;seamark:type=landing_point&lt;/code&gt; and three other candidates returns &lt;code&gt;0&lt;/code&gt; worldwide for every one of them. Landing point coordinates are part of the TeleGeography product just as the cable geometry is, which is the same wall as above.&lt;/p&gt; &lt;/div&gt; &lt;h2 id=&#34;Deliberate-restraint-in-what-gets-drawn&#34;&gt;Deliberate restraint in what gets drawn&lt;a class=&#34;headerlink&#34; href=&#34;#Deliberate-restraint-in-what-gets-drawn&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;OONI&#39;s data shows the trade-off best. It gives a per-country anomaly rate for the Tor test, and the numbers look like enough to draw a global censorship map. The middle of the range is measurement noise. Switzerland measures &lt;code&gt;22.2%&lt;/code&gt;, Canada &lt;code&gt;21.2%&lt;/code&gt;, New Zealand &lt;code&gt;41.1%&lt;/code&gt;, and none of these countries has a censorship problem. Colouring the mid-range would amount to accusing them on the strength of noise.&lt;/p&gt; &lt;p&gt;The globe therefore marks only countries above an &lt;code&gt;85%&lt;/code&gt; anomaly rate with a sufficient sample, leaves everything below uncoloured, and keeps the wording at &#34;did not complete as expected&#34;. That &lt;code&gt;85%&lt;/code&gt; threshold comes from no formula. We looked at the distribution and picked it. Noise tops out around forty percent, so &lt;code&gt;85%&lt;/code&gt; leaves enough distance, and we would rather miss a few genuinely blocked countries than paint a clean one red.&lt;/p&gt; &lt;p&gt;Access Now&#39;s shutdown records work the other way round. Every entry is verified by hand and its cause is known, so the globe can state plainly that a deliberate shutdown happened there. Even so, outages caused by armed conflict or communal violence do not necessarily follow a government decision and may come from damaged infrastructure, so those are presented separately from information-control cases.&lt;/p&gt; &lt;p&gt;The same reasoning made us drop V-Dem&#39;s digital society indicators. That dataset&#39;s licence would have allowed it. We passed anyway. Each country-year is scored by around five experts and converted into a continuous scale by a statistical model. Painting expert scores onto a map would put our rendering behind one organisation&#39;s political judgement.&lt;/p&gt; &lt;h2 id=&#34;The-walls&#34;&gt;The walls&lt;a class=&#34;headerlink&#34; href=&#34;#The-walls&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;h3 id=&#34;Submarine-cables&#34;&gt;Submarine cables&lt;a class=&#34;headerlink&#34; href=&#34;#Submarine-cables&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The first candidate was &lt;a href=&#34;https://www.submarinecablemap.com/&#34;&gt;TeleGeography&lt;/a&gt;&#39;s Submarine Cable Map, the authoritative dataset in this field. It turns out they now sell the coordinates as a product: &lt;a href=&#34;https://www2.telegeography.com/license-geocoded-map-data&#34;&gt;License TeleGeography&#39;s Map Data&lt;/a&gt; is an annual licence delivering GeoJSON over Amazon S3 or an API, pushed automatically on every update. The GeoJSON is the product.&lt;/p&gt; &lt;p&gt;Taiwan&#39;s &lt;a href=&#34;https://smc.peering.tw/&#34;&gt;submarine cable map&lt;/a&gt; took an approach worth recording, and it is the pragmatic choice when licensing is unclear: the code is MIT-licensed and open, while the geometry lives in a separate repository that returns 404. The main repo&#39;s README simply says &#34;You can leave the folder empty&#34;.&lt;/p&gt; &lt;p&gt;The cables on our globe ultimately come from routes mapped by OpenStreetMap contributors, &lt;code&gt;228&lt;/code&gt; segments in all. Coverage is best across Europe, the Mediterranean and the Atlantic, and the middle of the Pacific is close to empty. Digging up an OSM &lt;a href=&#34;https://lists.openstreetmap.org/pipermail/talk/2011-October/060415.html&#34;&gt;mailing list thread from 2011&lt;/a&gt;, someone had proposed folding TeleGeography&#39;s data into OSM, and a community member&#39;s reading was that the licence forbids commercial use and derivatives, making it incompatible with ODbL. The proposal went nowhere. Fifteen years later the Pacific is still empty.&lt;/p&gt; &lt;h3 id=&#34;Network-infrastructure&#34;&gt;Network infrastructure&lt;a class=&#34;headerlink&#34; href=&#34;#Network-infrastructure&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;This whole category came back nearly empty, and the reasons rhyme.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;https://atlas.ripe.net/&#34;&gt;RIPE Atlas&lt;/a&gt; probe data is lovely: querying in July &lt;code&gt;2026&lt;/code&gt; returned close to sixty thousand probes worldwide with coordinates and ASNs, straight from the API. The service terms state that commercial use requires separate permission from the RIPE NCC, and there is no open licence declaration. PeeringDB&#39;s API works just as well, but its acceptable use policy forbids bulk redistribution to third parties. Packet Clearing House&#39;s IXP directory is CC BY-NC-SA 3.0 and Cloudflare Radar is CC BY-NC 4.0, and both non-commercial clauses would spread onto our content.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;https://ioda.inetintel.cc.gatech.edu/&#34;&gt;IODA&lt;/a&gt; is the one we regret most. It detects national outages from BGP withdrawals, active probing and darknet traffic anomalies, which makes it real measurement and a close fit for this site. The API returns data, and the response itself carries the line &lt;code&gt;Copyright (c) 2021-2025 Georgia Tech Research Corporation. All Rights Reserved.&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Then there is a worse category: no terms at all. The RIRs&#39; delegated stats files download fine and open with nothing but a disclaimer, not one word about licensing. The root-servers.org node list has JSON endpoints and the site carries no licence declaration anywhere. Silence cannot be read as permission, and it is harder to handle than an explicit prohibition because there is nothing to base a judgement on. Every entry in this section is the same combination: open endpoint, retrievable data, no licence to redistribute.&lt;/p&gt; &lt;h3 id=&#34;Index-datasets&#34;&gt;Index datasets&lt;a class=&#34;headerlink&#34; href=&#34;#Index-datasets&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;Freedom House&#39;s Freedom on the Net and Reporters Without Borders&#39; Press Freedom Index are the two most frequently cited, and neither is usable. RSF&#39;s licence is CC BY-&lt;strong&gt;ND&lt;/strong&gt;, which forbids derivatives, so converting it to JSON and re-presenting it would breach the terms. Freedom House publishes no licence statement on its site, and obtaining the data means writing to ask.&lt;/p&gt; &lt;h2 id=&#34;We-did-not-write-and-ask&#34;&gt;We did not write and ask&lt;a class=&#34;headerlink&#34; href=&#34;#We-did-not-write-and-ask&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;For the organisations above, standard practice in open-data circles is to read the terms and then email anyway, since non-profit or research exemptions are often available. We deliberately did not.&lt;/p&gt; &lt;p&gt;What this project wanted to find out is exactly what a downstream reuser runs into. Solving each blocked dataset through individual negotiation would have produced a handful of friendly replies rather than an answer about how welcoming this ecosystem is to anyone who wants to build on it. The terms as written are what the overwhelming majority of people actually meet. Someone with no contacts, no institutional backing, and just an idea sees that one page of terms and nothing else, so this is a record of the terms rather than of a negotiation.&lt;/p&gt; &lt;h2 id=&#34;What-we-took-away&#34;&gt;What we took away&lt;a class=&#34;headerlink&#34; href=&#34;#What-we-took-away&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The biggest gap is that an open API is not the same as open data. We expected the difficulty to be technical, and instead most endpoints worked and most formats were clean, with everything blocking at the terms. The default posture at the RIRs, CAIDA, the RIPE NCC and PeeringDB is that you may look and you may research, but you may not carry it away wholesale, which is a different culture from Tor Metrics, OONI and Natural Earth. Datasets with no licence statement at all count here too, since in practice they are unusable. Plenty of tools in the industry do use those files, but each of them absorbs that risk privately, and a publicly published docs site cannot do the same.&lt;/p&gt; &lt;p&gt;Our own architecture leaves no room for hoping it is probably fine either. The docs site is static, the data files ship as they are, and they get pushed to IPFS. Content addressing means that once something is out, it stays out, and mirrors can persist indefinitely.&lt;/p&gt; &lt;p&gt;Looking at it from the other side, the globe exists largely because the Tor Project released Onionoo and Tor Metrics as CC0 and Natural Earth is public domain. Those decisions may have been a single line of configuration at the time, yet they let an unrelated community more than a decade later pick the data up directly, with no licensing correspondence and no worry about being asked to take it down.&lt;/p&gt; &lt;p&gt;One technical detail is worth recording separately. OONI&#39;s data is CC BY-NC-SA 4.0, and the ShareAlike term is incompatible with this site&#39;s CC BY 4.0. The handling is to keep &lt;code&gt;ooni.json&lt;/code&gt; as its own file, never merging its contents into the other data files and only presenting it alongside the other sources, so that the whole qualifies as a collection under the CC definition and ShareAlike stops at that one file. That premise is now written into &lt;code&gt;NOTICE&lt;/code&gt;, because otherwise the day someone merges an OONI field into the relay snapshot, the entire derivative falls under ShareAlike.&lt;/p&gt; &lt;h2 id=&#34;The-other-two-pieces&#34;&gt;The other two pieces&lt;a class=&#34;headerlink&#34; href=&#34;#The-other-two-pieces&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href=&#34;../../../../../games/onion-routing/play/index.html?lang=en&#34;&gt;Tor Routing Puzzle&lt;/a&gt; has you pick three relays to form a guard, middle and exit path, avoiding surveilled nodes, spreading the hops across different ASNs, and switching to bridges when blocked. Watching a circuit fail because all three hops landed in the same ASN sticks better than reading &#34;spread them out&#34; ten times.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;../../../../../games/onion-rendezvous/play/index.html?lang=en&#34;&gt;Tor Traffic Flow&lt;/a&gt; uses glowing particles to show the difference between the two paths. Connecting to a .onion service has both sides build a three-hop circuit and meet at a randomly chosen rendezvous point. Connecting to the clear web runs three hops out to an exit and back the same way.&lt;/p&gt; &lt;p&gt;All three pieces run in the browser with three.js, need no install, and support Traditional Chinese, Simplified Chinese and English. The source lives in &lt;a href=&#34;https://github.com/anoni-net/docs&#34;&gt;anoni-net/docs&lt;/a&gt; under &lt;code&gt;docs/zh-TW/games/&lt;/code&gt;, with no build step, so you edit a file, save, and reload.&lt;/p&gt; &lt;p&gt;If you have an idea or want to build one with us, come find us in the &lt;a href=&#34;../../../../community/&#34;&gt;community&lt;/a&gt;.&lt;/p&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/07/games-globe-open-data/</link> <pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/07/games-globe-open-data/</guid> <enclosure url="https://assets.anoni.net/games/tor-network-en.png" type="image/png" length="217220" /> </item> <item> <title>Defending the Public&#39;s Right to Know: A Sinophone Asia-Pacific Reading of OONI in Practice</title> <author>anoni.net Community</author> <category>OONI</category> <category>Perspective</category> <category>Tor</category> <category>Translated Article</category> <description>&lt;h1 id=&#34;Defending-the-Publics-Right-to-Know-A-Sinophone-Asia-Pacific-Reading-of-OONI-in-Practice&#34;&gt;Defending the Public&#39;s Right to Know: A Sinophone Asia-Pacific Reading of OONI in Practice&lt;a class=&#34;headerlink&#34; href=&#34;#Defending-the-Publics-Right-to-Know-A-Sinophone-Asia-Pacific-Reading-of-OONI-in-Practice&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;div class=&#34;admonition info&#34;&gt; &lt;p&gt;This post sits alongside Tor Project&#39;s spotlight series article on OONI. The body below summarises what the original covers and then maps the same workflow onto Sinophone Asia-Pacific — the section the original does not cover, and the main contribution of this post.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;For the full narrative on Kenya&#39;s High Court case, Tanzania&#39;s follow-up litigation, Meduza&#39;s public-education framing, and the supporting cases from Egypt, Jordan, and India, please read the original:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;https://blog.torproject.org/Defending-the-right-to-know/&#34; target=&#34;_blank&#34;&gt;Defending the public&#39;s right to know, by pavel, 2026-05-12&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;figure&gt; &lt;a href=&#34;https://forum.torproject.org/uploads/default/original/2X/3/3c647fc332a9f5c49e81d7660d9d91f5e39e8b0b.png&#34; target=&#34;_blank&#34;&gt; &lt;img src=&#34;https://forum.torproject.org/uploads/default/original/2X/3/3c647fc332a9f5c49e81d7660d9d91f5e39e8b0b.png&#34; alt=&#34;Visual header for the Tor Project &#39;Defending the free internet&#39; spotlight series, featuring OONI&#34; style=&#34;border-radius: 10px;&#34;&gt; &lt;/a&gt; &lt;figcaption&gt;Image source: &lt;a target=&#34;_blank&#34; href=&#34;https://blog.torproject.org/Defending-the-right-to-know/&#34;&gt;Tor Project Blog&lt;/a&gt;.&lt;/figcaption&gt; &lt;/figure&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;What-the-original-post-covers&#34;&gt;What the original post covers&lt;a class=&#34;headerlink&#34; href=&#34;#What-the-original-post-covers&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;a href=&#34;https://ooni.org/&#34; target=&#34;_blank&#34;&gt;OONI&lt;/a&gt; — the Open Observatory for Network Interference, born out of the Tor Project — turns internet censorship into a measurable, verifiable, and actionable public record. Since 2012 the dataset has accumulated billions of measurements across 245 countries and territories, contributed by anyone running &lt;a href=&#34;https://ooni.org/install/&#34; target=&#34;_blank&#34;&gt;OONI Probe&lt;/a&gt; on their networks. The methodology combines &lt;a href=&#34;https://github.com/ooni/spec/tree/master/nettests&#34; target=&#34;_blank&#34;&gt;open measurement specifications&lt;/a&gt;, peer review, expert feedback, and comparison against control measurements, so that &#34;this is censored&#34; claims can be tested rather than asserted.&lt;/p&gt; &lt;p&gt;Tor Project&#39;s post highlights three concrete patterns of use:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Newsrooms as public educators&lt;/strong&gt;: Russian exile outlet &lt;a href=&#34;https://meduza.io/en&#34; target=&#34;_blank&#34;&gt;Meduza&lt;/a&gt; &lt;a href=&#34;https://meduza.io/cards/tsenzury-v-runete-vse-bolshe-kak-mozhno-otslezhivat-blokirovki&#34; target=&#34;_blank&#34;&gt;published an article in 2025 introducing OONI tools&lt;/a&gt; and inviting readers to try them — censorship measurement as public education, not just reportable subject matter.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Expert-opinion evidence in public-interest litigation&lt;/strong&gt;: At the High Court of Kenya, OONI produced &lt;a href=&#34;https://blog.bake.co.ke/wp-content/uploads/2025/05/HCCHRPET.276.2025-ICJ-v-CA-Internet-Shutdown-Case.pdf&#34; target=&#34;_blank&#34;&gt;a detailed research report&lt;/a&gt; documenting Telegram blocking during the 2023 and 2024 KCSE national exams. &lt;a href=&#34;https://blog.bake.co.ke/2025/05/14/bake-6-other-organizations-challenge-internet-shutdowns-in-kenya-in-landmark-public-interest-case/&#34; target=&#34;_blank&#34;&gt;The petition was filed by a coalition&lt;/a&gt; including BAKE, ICJ Kenya, Paradigm Initiative, the Kenya Union of Journalists, Katiba Institute, the Law Society of Kenya, and CIPESA.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Regional precedent that travels&lt;/strong&gt;: Following the Kenya case, lawyers in Tanzania reached out to OONI for data on the local blocking of Twitter/X, prompting &lt;a href=&#34;https://ooni.org/post/2025-tanzania-blocked-twitter/&#34; target=&#34;_blank&#34;&gt;a research report&lt;/a&gt; that supported their legal challenge.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;The post also walks through OONI Explorer&#39;s &lt;a href=&#34;https://ooni.org/post/2025-ooni-explorer-thematic-censorship-pages/&#34; target=&#34;_blank&#34;&gt;thematic pages&lt;/a&gt; and individual findings — &lt;a href=&#34;https://explorer.ooni.org/findings/99431807200&#34; target=&#34;_blank&#34;&gt;Zawia3 in Egypt&lt;/a&gt;, &lt;a href=&#34;https://explorer.ooni.org/findings/101531332700&#34; target=&#34;_blank&#34;&gt;12 news websites in Jordan&lt;/a&gt;, &lt;a href=&#34;https://explorer.ooni.org/findings/667455800&#34; target=&#34;_blank&#34;&gt;The Wire in India&lt;/a&gt; during the conflict with Pakistan — and frames open documentation as the basis for collective response. The full narrative is in &lt;a href=&#34;https://blog.torproject.org/Defending-the-right-to-know/&#34; target=&#34;_blank&#34;&gt;the original post&lt;/a&gt;; the rest of this article focuses on regional context the original does not cover.&lt;/p&gt; &lt;h2 id=&#34;Sinophone-Asia-Pacific-the-same-workflow-divergent-local-conditions&#34;&gt;Sinophone Asia-Pacific: the same workflow, divergent local conditions&lt;a class=&#34;headerlink&#34; href=&#34;#Sinophone-Asia-Pacific-the-same-workflow-divergent-local-conditions&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Tor Project&#39;s post focuses on Kenya, Tanzania, Egypt, Jordan, India, and Russian exile media. The same documentation logic — open measurement, peer-reviewed methodology, public dataset, expert-opinion reporting — applies across Sinophone Asia-Pacific, but the legal-advocacy environments diverge sharply.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Mainland China&lt;/strong&gt;: OONI Probe users continuously upload measurements from Chinese networks, producing one of the most consistent public records of Great Firewall behavior — blocks of social media, news outlets, messaging apps, and circumvention tools. The legal path Kenya demonstrates is largely unavailable inside mainland China itself. The documentation matters as evidence in international forums, academic research, and reporting by overseas media. Running OONI Probe in mainland China carries political risk for individuals, which is part of why coverage is uneven across ASNs.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Hong Kong&lt;/strong&gt;: Since 2020, blocks of overseas Hong Kong–related news sites, civic-organization sites, and circumvention infrastructure have surfaced repeatedly. OONI measurements provide third-party verifiable records, useful for international advocacy reports, human rights documentation, and journalism by exile media.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Taiwan&lt;/strong&gt;: The anoni.net community maintains an &lt;a href=&#34;../../../../regional/ooni-asn-coverage/&#34;&gt;ASN coverage analysis for OONI data in Taiwan&lt;/a&gt;, surfacing which Taiwanese ISPs and mobile carriers have measurement coverage and which remain blind spots. Taiwan does not face Great Firewall–style blocking, but ISP-level disruptions, undersea cable incidents, and election-period anomalies all benefit from continuous independent measurement. The Kenya expert-opinion workflow is also directly applicable to public-interest litigation in Taiwan&#39;s functioning court system.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Singapore and Malaysia&lt;/strong&gt;: Targeted blocks of specific news sites and political content periodically appear and are documented by OONI&#39;s regional measurements. Local press-freedom and digital-rights organizations have used these measurements in advocacy reports.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Macau&lt;/strong&gt;: Less independently studied than Hong Kong, but the regulatory environment increasingly mirrors mainland practice. Independent measurement matters as a benchmark for tracking change over time.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Overseas Sinophone users&lt;/strong&gt;: Cross-border circumvention work, anti-censorship reporting, and human rights documentation rely on OONI&#39;s data when sourcing claims about specific blocks. Kenya&#39;s expert-opinion model offers a template for how technical research organizations can serve legal proceedings in jurisdictions with functioning courts.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;The reach of OONI&#39;s open data is uneven across the Sinophone region. Closing that gap depends on more users — across more ASNs — running OONI Probe, and on more cross-disciplinary collaboration between journalists, researchers, lawyers, and civil society organizations.&lt;/p&gt; &lt;h2 id=&#34;What-you-can-do&#34;&gt;What you can do&lt;a class=&#34;headerlink&#34; href=&#34;#What-you-can-do&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;General readers&lt;/strong&gt;: &lt;a href=&#34;https://ooni.org/install/&#34; target=&#34;_blank&#34;&gt;Install OONI Probe&lt;/a&gt; and run a measurement to put your network on the public record. If you notice a website you visit hasn&#39;t been tested, submit it through OONI&#39;s &lt;a href=&#34;https://test-lists.ooni.org/login&#34; target=&#34;_blank&#34;&gt;test list editor&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Researchers and technical communities&lt;/strong&gt;: Compare your network or testbed against existing ASN coverage gaps, evaluate which measurements you can add, and package the results as minimal, repeatable artifacts that others can cite.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Journalists, editors, and human rights lawyers&lt;/strong&gt;: When reporting on or litigating blocks in mainland China, Hong Kong, Myanmar, Vietnam, or other Sinophone-adjacent jurisdictions, &lt;a href=&#34;https://explorer.ooni.org/&#34; target=&#34;_blank&#34;&gt;OONI Explorer&lt;/a&gt; measurement charts, findings reports, and full research reports are publicly citable evidence. For public-interest litigation, Kenya&#39;s case shows the workflow for requesting an expert opinion report from OONI.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&#34;Related-reading&#34;&gt;Related reading&lt;a class=&#34;headerlink&#34; href=&#34;#Related-reading&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;../../../../basics/internet-freedom/&#34;&gt;Internet Freedom&lt;/a&gt;: why the broader internet freedom frame matters for measurement infrastructure&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../community/onionoo-mcp/&#34;&gt;onionoo MCP: Tor relay query service&lt;/a&gt;: a related tool the anoni.net community runs for Tor network observation&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../05/2026-financial-companies-as-censors/&#34;&gt;Financial Companies as Censors: A Sinophone Asia-Pacific Reading&lt;/a&gt;: the same &#34;global anchor + Sinophone Asia-Pacific reading&#34; format applied to financial censorship&lt;/li&gt; &lt;/ul&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/07/2026-defending-the-public-s-right-to-know/</link> <pubDate>Sun, 26 Jul 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/07/2026-defending-the-public-s-right-to-know/</guid> <enclosure url="https://forum.torproject.org/uploads/default/original/2X/3/3c647fc332a9f5c49e81d7660d9d91f5e39e8b0b.png" type="image/png" length="126742" /> </item> <item> <title>COSCUP 2026 Anonymity Networks Community track needs on-site crew for three roles, Aug 8–9</title> <author>anoni.net Community</author> <category>Community</category> <category>News</category> <description>&lt;h1 id=&#34;COSCUP-2026-Anonymity-Networks-Community-track-needs-on-site-crew-for-three-roles-Aug-89&#34;&gt;COSCUP 2026 Anonymity Networks Community track needs on-site crew for three roles, Aug 8–9&lt;a class=&#34;headerlink&#34; href=&#34;#COSCUP-2026-Anonymity-Networks-Community-track-needs-on-site-crew-for-three-roles-Aug-89&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;&lt;img alt=&#34;COSCUP 2026 Anonymity Networks Community track hero image&#34; src=&#34;https://assets.anoni.net/event/anoni-net-eth-taipei.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;The schedule is set and all sixteen speakers have confirmed. Across Aug 8 and 9 in room &lt;code&gt;TR-510&lt;/code&gt; at National Taiwan University of Science and Technology, the track runs from how censorship works and browser-fingerprint tracking, through the NTNU campus Tor node and data-privacy rights in the national health-insurance database, to the anonymous-payments session co-organized with ETHTaipei on the Aug 8 afternoon. Right now exactly one person is covering on-site operations.&lt;/p&gt; &lt;p&gt;Changeovers on Aug 9 are only five minutes long. Someone needs to raise the time card before a speaker runs over, and someone needs to use those five minutes to get the next speaker on stage with projection and audio tested. Several speakers have asked not to be recorded, so someone has to watch the whole way through and confirm nothing was captured. That one is unrecoverable if it goes wrong. On the Aug 8 morning there are invited civil-society groups and independent journalists arriving, so someone needs to greet people at the door and help them find seats.&lt;/p&gt; &lt;div class=&#34;admonition tip&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;We are looking for three on-site crew&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Roles&lt;/strong&gt;: recording (1), front-of-room runner (1), door runner (1)&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Requirements&lt;/strong&gt;: no background in Tor, anonymity networks, or any privacy technology&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Availability&lt;/strong&gt;: both days is ideal, one day is welcome too, and we will rotate shifts if enough people sign up&lt;/li&gt; &lt;li&gt;&lt;strong&gt;To sign up or ask&lt;/strong&gt;: reach us through any channel on &lt;a href=&#34;../../../../contact/&#34;&gt;contact&lt;/a&gt; and tell us which role you want and which days you can make&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;What-the-three-roles-actually-do&#34;&gt;What the three roles actually do&lt;a class=&#34;headerlink&#34; href=&#34;#What-the-three-roles-actually-do&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Recording&lt;/strong&gt;: check that the conference recording is running, watch the sessions where speakers asked not to be recorded and confirm nothing was captured, and keep an eye on the video feed when a speaker joins remotely. This needs care, not professional camera skills.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Front-of-room runner&lt;/strong&gt;: raise the time card, bring the next speaker up early, test projection and adapters, and pass the mic during Q&amp;amp;A. Being comfortable plugging a laptop into a projector is enough; you don&#39;t need to follow the content.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Door runner&lt;/strong&gt;: guide people at the door and keep a headcount, hand out documentation-site material, and deal with catering and supplies. This needs someone easy to talk to who can explain in a sentence or two what the community does.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;All three roles follow a set routine. We hold one online briefing the week before, walking through both days&#39; run of show, the time-card signals, and how to handle the things that go wrong.&lt;/p&gt; &lt;h2 id=&#34;When-and-where&#34;&gt;When and where&lt;a class=&#34;headerlink&#34; href=&#34;#When-and-where&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Sat, Aug 8&lt;/strong&gt;: 08:30 to 17:00. The morning is three community primers plus one invited talk; from 13:00 it is the anonymous-payments session co-organized with ETHTaipei (&lt;code&gt;TR-511&lt;/code&gt;), where our staffing is lighter.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Sun, Aug 9&lt;/strong&gt;: 09:00 to 16:30. Seven accepted talks back to back, the day we need people most.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Venue&lt;/strong&gt;: National Taiwan University of Science and Technology (NTUST), Taipei. The community track is in &lt;code&gt;TR-510&lt;/code&gt;.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&#34;You-are-free-to-sit-in-on-talks-off-shift&#34;&gt;You are free to sit in on talks off shift&lt;a class=&#34;headerlink&#34; href=&#34;#You-are-free-to-sit-in-on-talks-off-shift&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;When you are not on a shift you can go listen to talks, and the Aug 8 afternoon is almost entirely free. Meals during your shift are covered by the community. Both the briefing and the event itself put you in direct contact with the speakers on this track.&lt;/p&gt; &lt;p&gt;This year the track covers how the internet and censorship work, OpenWRT home networks, the practical work of building the NTNU Tor node, browser-fingerprint tracking, the right to opt out of the national health-insurance database, and a 2026 privacy guide spanning individuals and organizations. The full schedule and session summaries are on the &lt;a href=&#34;../../../../activity/coscup-2026/&#34;&gt;event page&lt;/a&gt;.&lt;/p&gt; &lt;h2 id=&#34;No-experience-needed&#34;&gt;No experience needed&lt;a class=&#34;headerlink&#34; href=&#34;#No-experience-needed&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The community&#39;s regular work is translating the interfaces of open-source tools like Tor, Tails, and OONI into Traditional Chinese, filing issues upstream, and helping set up relays on campuses. This on-site work likewise needs no prior expertise. Being willing to spend two days helping the track run is enough. If you have never been to COSCUP before, that is fine too, and the briefing covers everything you need to know.&lt;/p&gt; &lt;p&gt;Note that the track itself runs mostly in Mandarin, though the crew roles are largely operational and don&#39;t require following the talks.&lt;/p&gt; &lt;p&gt;&lt;a class=&#34;md-button md-button--primary&#34; href=&#34;../../../../activity/coscup-2026/&#34;&gt;See the full schedule and session summaries&lt;/a&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;../coscup-2026-community-track/&#34;&gt;COSCUP 2026 Anonymity Networks Community track: two days, Aug 8–9, free entry, just walk in&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../community/how-to-contribute/&#34;&gt;How to contribute and claim a topic&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../about/&#34;&gt;About us&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;div class=&#34;admonition info&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;How to sign up&lt;/p&gt; &lt;p&gt;Reach the community through any channel on the &lt;a href=&#34;../../../../contact/&#34;&gt;contact&lt;/a&gt; page and tell us the role you want, the days you can make, and how best to reach you. Even once the three roles are filled you are still welcome to join, since pre-event promotion and post-event write-ups need people too.&lt;/p&gt; &lt;/div&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/07/2026-coscup-anoni-track-staff/</link> <pubDate>Sat, 25 Jul 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/07/2026-coscup-anoni-track-staff/</guid> <enclosure url="https://assets.anoni.net/event/anoni-net-eth-taipei.webp" type="image/webp" length="67724" /> </item> <item> <title>Section 702 Has Expired: A Sinophone Asia-Pacific Read on Warrantless US Surveillance</title> <author>anoni.net Community</author> <category>Privacy</category> <category>Translated Article</category> <category>Update</category> <description>&lt;h1 id=&#34;Section-702-Has-Expired-A-Sinophone-Asia-Pacific-Read-on-Warrantless-US-Surveillance&#34;&gt;Section 702 Has Expired: A Sinophone Asia-Pacific Read on Warrantless US Surveillance&lt;a class=&#34;headerlink&#34; href=&#34;#Section-702-Has-Expired-A-Sinophone-Asia-Pacific-Read-on-Warrantless-US-Surveillance&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;figure&gt; &lt;a href=&#34;https://assets.anoni.net/blog/2026-victory-702-has-expired.png&#34; target=&#34;_blank&#34;&gt; &lt;img src=&#34;https://assets.anoni.net/blog/2026-victory-702-has-expired.png&#34; alt=&#34;EFF&#39;s NSA eagle graphic, reworking the NSA seal into an eagle plugging its talons into telecom lines, representing warrantless mass surveillance&#34; style=&#34;border-radius: 10px;&#34;&gt; &lt;/a&gt; &lt;figcaption markdown=&#34;span&#34;&gt;Image: EFF designer Hugh D&#39;Andrade&#39;s &#34;NSA eagle,&#34; which reworks the NSA seal into an eagle plugging its talons into the nation&#39;s telecom lines. From &lt;a href=&#34;https://www.eff.org/nsa-spying&#34; target=&#34;_blank&#34;&gt;EFF&#39;s NSA spying work&lt;/a&gt;, licensed under &lt;a href=&#34;https://creativecommons.org/licenses/by/4.0/&#34; target=&#34;_blank&#34;&gt;CC BY 4.0&lt;/a&gt;&lt;sup id=&#34;fnref:img&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:img&#34;&gt;10&lt;/a&gt;&lt;/sup&gt;.&lt;/figcaption&gt; &lt;/figure&gt; &lt;div class=&#34;admonition info&#34;&gt; &lt;p&gt;This post is an anoni.net reading based on the EFF Deeplinks article:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;https://www.eff.org/deeplinks/2026/06/victory-702-has-expired&#34; target=&#34;_blank&#34;&gt;Victory! 702 has Expired! | June 12, 2026&lt;/a&gt; by India McKinney&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;p&gt;At midnight on &lt;strong&gt;12 June 2026&lt;/strong&gt;, Section 702 of the Foreign Intelligence Surveillance Act lapsed&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. EFF, which spent years arguing the program should require a warrant before the FBI reaches Americans&#39; communications — or else expire — calls the lapse a victory&lt;sup id=&#34;fnref2:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt; &lt;p&gt;It is a real victory, and a narrow one. Section 702 was always built to collect the communications of &lt;em&gt;non-US persons&lt;/em&gt; located abroad. That means everyone outside America — including readers in Taiwan, Hong Kong, mainland China, Macau, Singapore, and Malaysia — has always been a lawful target of this authority. The fight that just lapsed it was overwhelmingly a fight about protecting Americans. For the rest of us, the lapse changes much less than the headline suggests.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;What-Section-702-is&#34;&gt;What Section 702 is&lt;a class=&#34;headerlink&#34; href=&#34;#What-Section-702-is&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Section 702 was created by the FISA Amendments Act of 2008&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:3&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;. It lets US intelligence agencies collect the communications — emails, messages, calls — of foreigners abroad believed to hold foreign intelligence value, without an individual warrant. US citizens are shielded by the Fourth Amendment and a warrant requirement; non-US persons are not.&lt;/p&gt; &lt;p&gt;In practice, 702 also sweeps up large volumes of Americans&#39; communications through what the government calls &#34;incidental collection&#34;: whenever an American corresponds with a targeted foreigner, their side of the conversation lands in the database too. That is where the domestic controversy starts.&lt;/p&gt; &lt;p&gt;Two collection methods sit under 702, and the names are familiar:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Downstream (formerly PRISM):&lt;/strong&gt; the government compels companies such as Google, Microsoft, Apple, Facebook, and Yahoo to hand over matching user communications&lt;sup id=&#34;fnref2:2&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Upstream:&lt;/strong&gt; the NSA collects traffic directly from the internet backbone — the cables and switches that carry it&lt;sup id=&#34;fnref3:2&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&#34;The-Snowden-connection&#34;&gt;The Snowden connection&lt;a class=&#34;headerlink&#34; href=&#34;#The-Snowden-connection&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The link to Edward Snowden is direct. PRISM and Upstream are the two concrete programs the 2013 disclosures revealed&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;, and both run on Section 702 as their legal basis. When the world first learned in June 2013 that the US could collect global internet traffic at this scale, what it was looking at was Section 702 in operation. Snowden exposed &lt;em&gt;how&lt;/em&gt; the collection works; Section 702 is &lt;em&gt;what makes it lawful&lt;/em&gt;.&lt;/p&gt; &lt;p&gt;Thirteen years later, the authority behind those programs has lapsed for the first time.&lt;/p&gt; &lt;h2 id=&#34;Backdoor-searches-the-core-of-the-fight&#34;&gt;Backdoor searches: the core of the fight&lt;a class=&#34;headerlink&#34; href=&#34;#Backdoor-searches-the-core-of-the-fight&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;702 nominally targets foreigners. What drew the constitutional fight inside the US is the &lt;strong&gt;backdoor search&lt;/strong&gt; — officially a &#34;US person query.&#34; Because incidental collection fills the 702 database with Americans&#39; communications, the FBI, CIA, and NSA can query it using an American&#39;s name, email, or phone number, with no separate warrant — routing around the Fourth Amendment.&lt;/p&gt; &lt;p&gt;The numbers are large, and so are the compliance failures. The FBI ran close to 5 million US person queries between 2019 and 2022; the queries were mostly procedurally permitted, but the dispute is that most lacked a documented justification&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:4&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;. In a single reporting period the government disclosed more than 278,000 noncompliant searches of the Section 702 database&lt;sup id=&#34;fnref2:4&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:4&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;. The 2024 Reforming Intelligence and Securing America Act (RISAA) added modest reforms but left warrantless querying intact, and by August 2024 the FBI was reported to be using a tool that sidestepped even those limits&lt;sup id=&#34;fnref3:4&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:4&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt; &lt;h2 id=&#34;What-happened-in-June-2026&#34;&gt;What happened in June 2026&lt;a class=&#34;headerlink&#34; href=&#34;#What-happened-in-June-2026&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The lapse turned on a personnel fight. President Trump named Bill Pulte — then director of the Federal Housing Finance Agency — as acting Director of National Intelligence, replacing the departing Tulsi Gabbard&lt;sup id=&#34;fnref3:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;sup id=&#34;fnref:5&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:5&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;. The DNI oversees the agencies that run 702, and handing that post to someone with no intelligence background who had pursued the president&#39;s political opponents on mortgage-fraud allegations was enough that Senate Democrats refused to advance their reauthorization bill, while the House rejected even a short-term extension&lt;sup id=&#34;fnref4:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;sup id=&#34;fnref2:5&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:5&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;. After several temporary extensions, the authority stopped at midnight on 12 June&lt;sup id=&#34;fnref5:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt; &lt;p&gt;Expiry does not mean collection stopped that day. The Foreign Intelligence Surveillance Court&#39;s existing certifications run through March 2027, giving collection a legal basis in the meantime; as one legal expert put it, &#34;702 will not go dark — that is a myth&#34;&lt;sup id=&#34;fnref3:5&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:5&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;. The lapse is a legal and political turning point, not an off switch.&lt;/p&gt; &lt;h2 id=&#34;Why-EFF-still-calls-it-a-victory&#34;&gt;Why EFF still calls it a victory&lt;a class=&#34;headerlink&#34; href=&#34;#Why-EFF-still-calls-it-a-victory&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;EFF&#39;s point is that the abuse risk never depended on any one person or administration. If Congress is worried that someone might reach Americans&#39; sensitive data, the responsible fix is stronger structural transparency, accountability, and oversight — not swapping out a single nominee&lt;sup id=&#34;fnref6:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. Across 2026, bipartisan appetite for reform grew, with more members opposing any reauthorization that lacks a warrant requirement for backdoor searches&lt;sup id=&#34;fnref7:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. An authority that ran for over a decade, survived Snowden, and repeatedly beat back reform was forced into a lapse — that, by itself, shows sustained advocacy works.&lt;/p&gt; &lt;h2 id=&#34;Seen-from-outside-the-US&#34;&gt;Seen from outside the US&lt;a class=&#34;headerlink&#34; href=&#34;#Seen-from-outside-the-US&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;If you are outside America, the most important thing to take from the lapse is your position in the structure. 702 targets non-US persons, so simply being in Taiwan, Hong Kong, mainland China, Macau, Singapore, or anywhere else outside the US already places you inside the lawful scope. The backdoor-search fight is about Americans whose Fourth Amendment protection was routed around. You were never inside that protection — querying your 702-collected communications is not even a back door for the US government; it is the front door.&lt;/p&gt; &lt;p&gt;A common reflex is to assume this does not matter because you are not personally a target. But privacy protects against &lt;em&gt;capability&lt;/em&gt;, not against present intent. An agency that is not interested in you today does not thereby give up the capability, and the targets and uses of mass collection shift with politics. Putting any actor with mass-collection capability into the same threat model is more reliable than betting that you will stay uninteresting.&lt;/p&gt; &lt;p&gt;And the lapse does not close the other doors. The NSA&#39;s primary authority for overseas signals intelligence is &lt;strong&gt;Executive Order 12333&lt;/strong&gt; (signed in 1981), which has no FISA Court supervision, limited congressional oversight, and is entirely unaffected by the 702 lapse&lt;sup id=&#34;fnref:6&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:6&#34;&gt;6&lt;/a&gt;&lt;/sup&gt;. Collection of non-US persons can continue with or without 702. That is why the &#34;victory&#34; is thinner from outside America, and why the durable answer is encryption you control rather than any single statute.&lt;/p&gt; &lt;p&gt;Data residency is the next misunderstanding. Sinophone Asia-Pacific users lean heavily on US cloud and communication services — Google Workspace, Microsoft 365, iCloud, AWS, and Meta&#39;s WhatsApp and Instagram (some of which require getting around blocking inside mainland China, but are everyday tools in Hong Kong, Macau, Singapore, Malaysia, and the diaspora). Keeping data in a local data center does not exempt it: if the provider is headquartered in the US, the &lt;strong&gt;CLOUD Act&lt;/strong&gt; (2018) can compel it to hand over data it controls regardless of where the servers sit&lt;sup id=&#34;fnref:7&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:7&#34;&gt;7&lt;/a&gt;&lt;/sup&gt;. The EU spent years litigating this same problem with the US; the Sinophone region has no equivalent arrangement at all. The defense that actually holds is end-to-end encryption (E2EE): if the keys are not in the provider&#39;s hands, data handed over or intercepted in transit stays unreadable — which is what blunts both incidental collection and backdoor searches.&lt;/p&gt; &lt;p&gt;Encryption protects content; &lt;strong&gt;Tor&lt;/strong&gt; also hides the connection itself. Upstream reads traffic off the backbone — where you connect, who you talk to. Places like Taiwan and Hong Kong route most international traffic over submarine cables&lt;sup id=&#34;fnref:8&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:8&#34;&gt;8&lt;/a&gt;&lt;/sup&gt;, and the trans-Pacific routes to the US west and east coasts are major trunks; whenever a connection&#39;s destination or path crosses a US backbone, the packets fall within Upstream&#39;s reach. Tor encrypts and relays traffic through multiple hops, so the backbone sees only encrypted Tor traffic and the provider cannot tie it to the real user, breaking the connection mapping that PRISM and Upstream rely on. Tor blunts this kind of bulk passive collection, though not targeted active attacks — the NSA&#39;s own &#34;Tor Stinks&#34; deck conceded it could only deanonymize a small fraction of users&lt;sup id=&#34;fnref:9&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:9&#34;&gt;9&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt; &lt;p&gt;Risk is not evenly spread. Journalists and civil-society groups who work with overseas newsrooms, international bodies, and sources already carry heavy cross-border traffic, so incidental collection reaches them more often; those roles are worth raising the bar for — sensitive collaboration over Tor, source lists kept off US-company clouds. And for many Sinophone users, the more immediate threat is domestic surveillance — from mainland China&#39;s censorship and real-name systems to the varying communications-interception regimes across the region — against which the same tools, E2EE and Tor, are the same line of defense. anoni.net invests in decentralization, self-hosting, and encryption precisely because, as 12 June showed, collection continues and EO 12333 is untouched: the prudent move is capability you hold yourself, not a law you hope holds.&lt;/p&gt; &lt;p&gt;The lapse will not make surveillance disappear, and it will not zero out the privacy risk on cross-border communication. For anyone outside the US, the thing to watch is the legal structure that authorizes collection — and the first concrete step is small: move everyday contact onto tools that are end-to-end encrypted by default, and route sensitive connections through Tor.&lt;/p&gt; &lt;h2 id=&#34;Related-reading&#34;&gt;Related reading&lt;a class=&#34;headerlink&#34; href=&#34;#Related-reading&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;../../../../basics/internet-freedom/&#34;&gt;Why internet freedom matters&lt;/a&gt;: the structural framing behind authorities like 702&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;https://www.eff.org/pages/upstream-prism&#34; target=&#34;_blank&#34;&gt;Upstream vs. PRISM&lt;/a&gt; — EFF, on the two 702 collection methods&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;https://www.brennancenter.org/our-work/research-reports/section-702-foreign-intelligence-surveillance-act&#34; target=&#34;_blank&#34;&gt;Section 702, Explained&lt;/a&gt; — Brennan Center&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;em&gt;English coverage of the technical defenses here is still thin on this site; the deeper concept and tool pages exist in Mandarin and are on the roadmap for English.&lt;/em&gt;&lt;/p&gt; &lt;div class=&#34;footnote&#34;&gt; &lt;hr /&gt; &lt;ol&gt; &lt;li id=&#34;fn:1&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.eff.org/deeplinks/2026/06/victory-702-has-expired&#34; target=&#34;_blank&#34;&gt;Victory! 702 has Expired!&lt;/a&gt; - EFF Deeplinks (India McKinney, 2026-06-12)&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref2:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref3:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref4:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref5:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref6:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref7:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:2&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.eff.org/pages/upstream-prism&#34; target=&#34;_blank&#34;&gt;Upstream vs. PRISM&lt;/a&gt; - EFF (the two collection methods under 702 and their link to the 2013 Snowden disclosures)&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:2&#34; title=&#34;Jump back to footnote 2 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref2:2&#34; title=&#34;Jump back to footnote 2 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref3:2&#34; title=&#34;Jump back to footnote 2 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:3&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.eff.org/deeplinks/2026/06/702-ultimatum-warrant-requirement-or-bust&#34; target=&#34;_blank&#34;&gt;The 702 Ultimatum: Warrant Requirement or Bust&lt;/a&gt; - EFF Deeplinks&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:3&#34; title=&#34;Jump back to footnote 3 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:4&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.brennancenter.org/our-work/research-reports/section-702-foreign-intelligence-surveillance-act&#34; target=&#34;_blank&#34;&gt;Section 702 of the Foreign Intelligence Surveillance Act, Explained&lt;/a&gt; - Brennan Center for Justice (backdoor-search counts, compliance violations, RISAA background)&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:4&#34; title=&#34;Jump back to footnote 4 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref2:4&#34; title=&#34;Jump back to footnote 4 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref3:4&#34; title=&#34;Jump back to footnote 4 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:5&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.cbsnews.com/news/fisa-section-702-expiring-congress-what-that-means/&#34; target=&#34;_blank&#34;&gt;A key spy authority, Section 702, expired due to inaction in Congress. Here&#39;s what happens next.&lt;/a&gt; - CBS News (timeline, Pulte appointment, certifications continuing through March 2027)&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:5&#34; title=&#34;Jump back to footnote 5 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref2:5&#34; title=&#34;Jump back to footnote 5 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref3:5&#34; title=&#34;Jump back to footnote 5 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:6&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.brennancenter.org/our-work/research-reports/foreign-intelligence-surveillance-fisa-section-702-executive-order-12333&#34; target=&#34;_blank&#34;&gt;Foreign Intelligence Surveillance (FISA Section 702, Executive Order 12333, and Section 215 of the Patriot Act): A Resource Page&lt;/a&gt; - Brennan Center for Justice (EO 12333 as the primary overseas authority, without FISC oversight, unaffected by the 702 lapse)&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:6&#34; title=&#34;Jump back to footnote 6 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:7&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.congress.gov/crs-product/R45173&#34; target=&#34;_blank&#34;&gt;Cross-Border Data Sharing Under the CLOUD Act&lt;/a&gt; - Congressional Research Service (US providers can be compelled to disclose data they control regardless of server location)&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:7&#34; title=&#34;Jump back to footnote 7 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:8&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://taiwaninsight.org/2024/10/02/the-most-critical-resilience-questions-of-them-all-taiwans-undersea-cables/&#34; target=&#34;_blank&#34;&gt;Taiwan&#39;s undersea cables&lt;/a&gt; - Taiwan Insight (Taiwan&#39;s dependence on international submarine cables)&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:8&#34; title=&#34;Jump back to footnote 8 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:9&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.schneier.com/essays/archives/2013/10/nsa_and_gchq_target.html&#34; target=&#34;_blank&#34;&gt;NSA and GCHQ target Tor network that protects anonymity of web users&lt;/a&gt; - Bruce Schneier (originally in The Guardian, on the &#34;Tor Stinks&#34; and EgotisticalGiraffe documents)&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:9&#34; title=&#34;Jump back to footnote 9 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:img&#34;&gt; &lt;p&gt;Header image &lt;a href=&#34;https://www.eff.org/files/banner_library/NSA-eagle-2_0.png&#34; target=&#34;_blank&#34;&gt;NSA-eagle-2_0.png&lt;/a&gt;, from &lt;a href=&#34;https://www.eff.org/nsa-spying&#34; target=&#34;_blank&#34;&gt;EFF&#39;s NSA spying work&lt;/a&gt;, by EFF designer Hugh D&#39;Andrade, licensed &lt;a href=&#34;https://creativecommons.org/licenses/by/4.0/&#34; target=&#34;_blank&#34;&gt;CC BY 4.0&lt;/a&gt;.&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:img&#34; title=&#34;Jump back to footnote 10 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/07/2026-victory-702-has-expired/</link> <pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/07/2026-victory-702-has-expired/</guid> <enclosure url="https://assets.anoni.net/blog/2026-victory-702-has-expired.png" type="image/png" length="57767" /> </item> <item> <title>Measuring Internet Censorship: Challenges, Trends, and Impact</title> <author>anoni.net Community</author> <category>OONI</category> <category>Observation</category> <category>Translated Article</category> <description>&lt;h1 id=&#34;Measuring-Internet-Censorship-Challenges-Trends-and-Impact&#34;&gt;Measuring Internet Censorship: Challenges, Trends, and Impact&lt;a class=&#34;headerlink&#34; href=&#34;#Measuring-Internet-Censorship-Challenges-Trends-and-Impact&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;div class=&#34;admonition info&#34;&gt; &lt;p&gt;&lt;strong&gt;Editorial note:&lt;/strong&gt; This is a companion post for English-speaking readers. The original article, by Maria Xynou (OONI), was published on the &lt;a href=&#34;https://pulse.internetsociety.org/en/blog/2026/05/measuring-internet-censorship-challenges-trends-and-impact/&#34; target=&#34;_blank&#34;&gt;Internet Society Pulse blog&lt;/a&gt; and reposted on &lt;a href=&#34;https://ooni.org/post/2026-measuring-internet-censorship-trends-challenges-impact/&#34; target=&#34;_blank&#34;&gt;OONI&#39;s blog&lt;/a&gt;. Please read it there. anoni.net Docs is reposting a short summary here, alongside translations into &lt;a href=&#34;/blog/2026/06/2026-measuring-internet-censorship-challenges-trends-and-impact/&#34; target=&#34;_blank&#34;&gt;Traditional Chinese&lt;/a&gt; and &lt;a href=&#34;/zh-cn/blog/2026/06/2026-measuring-internet-censorship-challenges-trends-and-impact/&#34; target=&#34;_blank&#34;&gt;Simplified Chinese&lt;/a&gt;, plus a regional context section for readers in Chinese-reading regions.&lt;/p&gt; &lt;/div&gt; &lt;h2 id=&#34;What-the-original-article-covers&#34;&gt;What the original article covers&lt;a class=&#34;headerlink&#34; href=&#34;#What-the-original-article-covers&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Maria Xynou&#39;s post is a concise overview of how Internet censorship is becoming harder to measure, and what OONI&#39;s data shows about how it is evolving. The main points:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Censorship is rarely binary&lt;/strong&gt;: Confirming a block is not just &#34;up&#34; or &#34;down&#34;. False positives are common, methods range from DNS manipulation and IP blocking to throttling and forged responses, and the same site may be blocked on one network but reachable on another.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;OONI&#39;s approach&lt;/strong&gt;: Open measurement methodologies, control measurements, a probabilistic pipeline (OONI Pipeline v5) that classifies results as &#34;blocked&#34;, &#34;down&#34;, or &#34;OK&#34; with confidence estimates, and crowdsourced data from volunteers running &lt;a href=&#34;https://ooni.org/install/&#34; target=&#34;_blank&#34;&gt;OONI Probe&lt;/a&gt; on their local networks.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Seven evolving trends&lt;/strong&gt;: Globalization and normalization of censorship beyond the usual suspects, short-term targeted blocks around political events, long-term systemic suppression of marginalised communities, less transparent censorship in an encrypted web (TLS interference via DPI, no block pages), throttling and degraded service as subtler control, attacks on privacy technologies (encrypted DNS, ECH), and the rise of national intranets and allowlisting approaches.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Measurement enables advocacy&lt;/strong&gt;: OONI has been part of the &lt;a href=&#34;https://www.accessnow.org/keepiton&#34; target=&#34;_blank&#34;&gt;#KeepItOn campaign&lt;/a&gt; since 2016, and OONI data has supported legal and policy interventions in Gabon, Tanzania, Nepal, Togo, Mozambique, Pakistan, Kenya, and others.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Scale&lt;/strong&gt;: Over 3 billion measurements from 30,000 networks across 245 countries and territories since 2012, with tens of millions of new measurements added every month.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Please read the original for the full argument, all the supporting links, and the country-specific examples:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;https://ooni.org/post/2026-measuring-internet-censorship-trends-challenges-impact/&#34; target=&#34;_blank&#34;&gt;Measuring Internet Censorship: Challenges, Trends, and Impact&lt;/a&gt; (OONI blog)&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;https://pulse.internetsociety.org/en/blog/2026/05/measuring-internet-censorship-challenges-trends-and-impact/&#34; target=&#34;_blank&#34;&gt;Same post on Internet Society Pulse&lt;/a&gt; (original publication)&lt;/li&gt; &lt;/ul&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;Why-we-are-republishing-this-for-Chinese-reading-audiences&#34;&gt;Why we are republishing this for Chinese-reading audiences&lt;a class=&#34;headerlink&#34; href=&#34;#Why-we-are-republishing-this-for-Chinese-reading-audiences&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The forms of network interference described in OONI&#39;s post show up at very different intensities across the regions where our readership lives. The trends are familiar to anyone in Mainland China, but the framing in the original is mostly Western and global. Our two Chinese-language versions translate the full text, and the section below adds regional context that English-only readers may also find useful when interpreting OONI Explorer data for this part of the world.&lt;/p&gt; &lt;h2 id=&#34;Regional-Context-Chinese-reading-Audiences&#34;&gt;Regional Context: Chinese-reading Audiences&lt;a class=&#34;headerlink&#34; href=&#34;#Regional-Context-Chinese-reading-Audiences&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;h3 id=&#34;Taiwan-a-high-freedom-baseline-that-still-needs-continuous-measurement&#34;&gt;Taiwan: a high-freedom baseline that still needs continuous measurement&lt;a class=&#34;headerlink&#34; href=&#34;#Taiwan-a-high-freedom-baseline-that-still-needs-continuous-measurement&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;Taiwan is generally considered a high-freedom Internet environment, which does not mean there is no network-layer interference at all. Long-term measurement through OONI Probe across Taiwanese fixed-line ISPs and mobile networks is what makes it possible to verify whether TLS interference, DNS manipulation, or selective blocks are present, and to evaluate the country&#39;s &#34;digital resilience&#34; claims with evidence rather than assumption. The community has already accumulated some baseline material on &lt;a href=&#34;../../../../regional/tor-relay-watcher/&#34;&gt;Tor Relays observation&lt;/a&gt; and &lt;a href=&#34;../../../../regional/ooni-asn-coverage/&#34;&gt;ASN coverage analysis&lt;/a&gt;, though the contributor base is still small relative to coverage needs.&lt;/p&gt; &lt;p&gt;Separately, Taiwan in recent years has seen network-layer blocking targeted at overseas scam, gambling, and unauthorised content platforms, typically implemented through cooperation between the police, the NCC, and ISPs. These measures have a plausible public-policy purpose, but the details, the blocklists, the false-positive disputes, and the remedy mechanisms are often not externally verifiable. The TLS interference, throttling, and encrypted-DNS blocking described in OONI&#39;s post are also tools adopted in democracies, which means the line between &#34;legitimate enforcement&#34; and &#34;opaque censorship&#34; needs to keep being examined. Independent measurement tools like OONI Probe are the critical infrastructure that makes that line verifiable in the first place.&lt;/p&gt; &lt;h3 id=&#34;Mainland-China-most-of-the-phenomena-described-in-the-original-have-been-the-long-term-baseline&#34;&gt;Mainland China: most of the phenomena described in the original have been the long-term baseline&lt;a class=&#34;headerlink&#34; href=&#34;#Mainland-China-most-of-the-phenomena-described-in-the-original-have-been-the-long-term-baseline&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The combination of methods catalogued in OONI&#39;s post, including DNS manipulation, IP blocking, TLS interference, encrypted DNS and ECH blocking, and movement toward allowlist-style national networks, has been the long-term baseline of network governance in Mainland China. OONI&#39;s long-term measurement data from the mainland is an important resource for researchers studying how this system has evolved. For readers based in the mainland, the original article is also a technical backdrop to the everyday experience of &#34;why a tool that used to work just suddenly stops working&#34;.&lt;/p&gt; &lt;h3 id=&#34;Hong-Kong-Macau-Singapore-Malaysia-and-other-Simplified-Chinese-reading-regions&#34;&gt;Hong Kong, Macau, Singapore, Malaysia and other Simplified Chinese reading regions&lt;a class=&#34;headerlink&#34; href=&#34;#Hong-Kong-Macau-Singapore-Malaysia-and-other-Simplified-Chinese-reading-regions&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;Network-layer intervention takes very different shapes across the regions where Simplified Chinese is widely read. Hong Kong has seen new network-layer blocks emerge since 2020, which OONI data can track over time. Macau is smaller in scale but shows similar signals. Singapore and Malaysia rely more on statutory takedowns and platform compliance, with comparatively limited network-layer interference. These differences are directly comparable in &lt;a href=&#34;https://explorer.ooni.org/&#34; target=&#34;_blank&#34;&gt;OONI Explorer&lt;/a&gt;, and the trends in the original article show up at very different intensities depending on jurisdiction.&lt;/p&gt; &lt;p&gt;A common risk assessment applies across all these regions: running OONI Probe generates traffic that can be observed by the network. In environments with heavier network surveillance, please read &lt;a href=&#34;https://ooni.org/about/risks/&#34; target=&#34;_blank&#34;&gt;OONI&#39;s risk page&lt;/a&gt; first. For readers in Mainland China specifically, reading the existing data on &lt;a href=&#34;https://explorer.ooni.org/&#34; target=&#34;_blank&#34;&gt;OONI Explorer&lt;/a&gt; is often a more proportionate starting point than running active measurements. For readers in lower-risk environments, contributing measurements directly helps fill the data-coverage gap that currently exists for Chinese-reading regions.&lt;/p&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/07/2026-measuring-internet-censorship-challenges-trends-and-impact/</link> <pubDate>Tue, 21 Jul 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/07/2026-measuring-internet-censorship-challenges-trends-and-impact/</guid> <enclosure url="https://ipfs.anoni.net/en/assets/images/social/blog/2026/07/2026-measuring-internet-censorship-challenges-trends-and-impact.png" type="image/png" length="49435" /> </item> <item> <title>Android 17 ships: the real GrapheneOS story is who decides what runs on your phone</title> <author>anoni.net Community</author> <category>Privacy</category> <category>Update</category> <description>&lt;h1 id=&#34;Android-17-ships-the-real-GrapheneOS-story-is-who-decides-what-runs-on-your-phone&#34;&gt;Android 17 ships: the real GrapheneOS story is who decides what runs on your phone&lt;a class=&#34;headerlink&#34; href=&#34;#Android-17-ships-the-real-GrapheneOS-story-is-who-decides-what-runs-on-your-phone&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;figure&gt; &lt;a href=&#34;https://assets.anoni.net/blog/2026-grapheneos-android-17.jpg&#34; target=&#34;_blank&#34;&gt; &lt;img src=&#34;https://assets.anoni.net/blog/2026-grapheneos-android-17.jpg&#34; alt=&#34;Android 17 and GrapheneOS: who decides what runs on the phone you bought&#34; style=&#34;border-radius: 5px;&#34;&gt; &lt;/a&gt; &lt;figcaption markdown=&#34;span&#34;&gt;Image: a smartphone wrapped in a chain and padlock, standing in for a device locked down by outside rules. Photo by Towfiqu barbhuiya, via &lt;a href=&#34;https://www.pexels.com/photo/close-up-of-a-smart-phone-with-a-lock-11391947/&#34; target=&#34;_blank&#34;&gt;Pexels&lt;/a&gt; (Pexels License).&lt;/figcaption&gt; &lt;/figure&gt; &lt;p&gt;You paid for the phone, but what it can run and what it can install is increasingly &lt;strong&gt;not yours to decide&lt;/strong&gt;. That question stays invisible until an app refuses to open because it &#34;detected a non-stock OS,&#34; or an open-source OS you rely on gets harder to maintain because the hardware data behind it stops being public. &lt;a href=&#34;https://source.android.com/docs/whatsnew/android-17-release&#34; target=&#34;_blank&#34;&gt;Android 17&lt;/a&gt; landed on &lt;strong&gt;2026-06-16&lt;/strong&gt;, and it pushed that question one step further.&lt;/p&gt; &lt;p&gt;For privacy-minded users, the OS in the middle of this is &lt;a href=&#34;https://grapheneos.org/&#34; target=&#34;_blank&#34;&gt;GrapheneOS&lt;/a&gt;: a hardened, de-Googled Android built on AOSP. It runs almost exclusively on Google Pixel hardware, and Google has spent the past year adjusting how open Android and the Pixel actually are.&lt;/p&gt; &lt;h2 id=&#34;Why-this-matters-especially-in-APAC&#34;&gt;Why this matters (especially in APAC)&lt;a class=&#34;headerlink&#34; href=&#34;#Why-this-matters-especially-in-APAC&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;This reads like a US/EU story about Google and Brussels, but it is close to home for readers across &lt;strong&gt;East and Southeast Asia&lt;/strong&gt; and the &lt;strong&gt;Chinese-speaking world&lt;/strong&gt;. Android 17&#39;s new sideloading &#34;developer verification&#34; flow is rolling out &lt;strong&gt;first in Brazil, Indonesia, Singapore and Thailand in 2026&lt;/strong&gt;, expanding from there. Banking, payment and government apps across the region increasingly check whether a device is in &#34;stock&#34; state, and in mainland China that posture — device attestation plus real-name requirements — is already the norm. The losers are the same everywhere: people who want a phone they actually control.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;Googles-two-step-squeeze&#34;&gt;Google&#39;s two-step squeeze&lt;a class=&#34;headerlink&#34; href=&#34;#Googles-two-step-squeeze&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;GrapheneOS depends on Google publishing Android source and Pixel hardware data. Two moves tightened exactly that supply.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;March 2025&lt;/strong&gt;: Google moved Android&#39;s mainline development into private branches, publishing source to AOSP only at release. It is still open source, but outsiders no longer see the development in motion.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;June 2025&lt;/strong&gt;: with Android 16, Google stopped shipping the Pixel &lt;strong&gt;device tree&lt;/strong&gt; (the config that lets an OS actually drive a given phone&#39;s hardware) to AOSP, switching the reference target to the &lt;strong&gt;Cuttlefish&lt;/strong&gt; virtual device. Third-party OS developers are left reverse-engineering each month&#39;s hardware changes from prebuilt binaries.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Even so, GrapheneOS &lt;strong&gt;ported Android 17 on launch day&lt;/strong&gt; (2026-06-16); after working around an upstream recovery-sideload bug, build &lt;code&gt;2026061800&lt;/code&gt; reached the Alpha channel on 2026-06-18.&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:3&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; The porting speed held, but the reverse-engineering cost climbs with every release — a cost Google&#39;s policy added unilaterally.&lt;/p&gt; &lt;h2 id=&#34;The-other-squeeze-attestation&#34;&gt;The other squeeze: attestation&lt;a class=&#34;headerlink&#34; href=&#34;#The-other-squeeze-attestation&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Beyond development, GrapheneOS faces pressure on the &lt;strong&gt;usage&lt;/strong&gt; side through &lt;strong&gt;attestation&lt;/strong&gt; — apps checking in the background whether your phone is &#34;factory-approved.&#34; Google&#39;s &lt;strong&gt;Play Integrity API&lt;/strong&gt; marks non-Google-certified systems as failing; GrapheneOS, despite being &lt;em&gt;more&lt;/em&gt; secure than stock, gets lumped in with rooted phones. The more secure OS is the one shut out.&lt;/p&gt; &lt;p&gt;That line tightened through 2026:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Microsoft Authenticator&lt;/strong&gt; began root detection on Android in late February, flagging GrapheneOS via Play Integrity, with a staged plan to wipe affected Entra credentials by &lt;strong&gt;July 2026&lt;/strong&gt; (not yet reached at the time of writing).&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:4&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt; &lt;li&gt;The EU&#39;s &lt;strong&gt;Unified Attestation&lt;/strong&gt; proposal is, in GrapheneOS&#39;s reading, a European re-run of Play Integrity; the project has called on privacy-focused developers to &lt;strong&gt;boycott&lt;/strong&gt; it.&lt;sup id=&#34;fnref:5&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:5&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Each mechanism has a stated reason — fraud, abuse, child safety — but stacked together they make an unapproved OS harder to use day to day.&lt;/p&gt; &lt;h2 id=&#34;GrapheneOSs-response-and-the-Pixel-question&#34;&gt;GrapheneOS&#39;s response, and the Pixel question&lt;a class=&#34;headerlink&#34; href=&#34;#GrapheneOSs-response-and-the-Pixel-question&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Facing Pixel uncertainty, GrapheneOS is looking for other hardware. At &lt;strong&gt;MWC 2026 (2026-03-01)&lt;/strong&gt; it announced a long-term partnership with &lt;strong&gt;Motorola&lt;/strong&gt; to ship devices preloaded with GrapheneOS and proper unlock/relock support — its first step beyond Pixel, though no model or date is confirmed yet.&lt;sup id=&#34;fnref:6&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:6&#34;&gt;6&lt;/a&gt;&lt;/sup&gt; GrapheneOS says Google&#39;s decision to stop publishing shared Pixel driver source is what pushed Motorola to reach out in the first place.&lt;sup id=&#34;fnref:7&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:7&#34;&gt;7&lt;/a&gt;&lt;/sup&gt; On Pixel itself, the project only says it is &#34;not sure&#34; whether it will add support for &lt;em&gt;newly launched&lt;/em&gt; Pixels after the current line — reporters inferred Pixel 11 might be the last, but that is inference, not a GrapheneOS commitment.&lt;sup id=&#34;fnref:8&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:8&#34;&gt;8&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt; &lt;h2 id=&#34;The-real-question&#34;&gt;The real question&lt;a class=&#34;headerlink&#34; href=&#34;#The-real-question&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Google tightening AOSP, Play Integrity deciding which systems pass, Microsoft excluding the ones that fail, the EU drafting its own certification, Android 17 gating sideloading — stacked up, what your phone can run and install is less and less your call. This is the same shape we wrote about in &lt;a href=&#34;../../02/2026-discord-matrix-statement/&#34;&gt;why we self-host Matrix&lt;/a&gt; and &lt;a href=&#34;../../05/2026-financial-companies-as-censors/&#34;&gt;when financial companies act like censors&lt;/a&gt;: when critical infrastructure sits with a few platforms that set the rules alone, ordinary users can neither take part nor opt out. The mobile OS is the most intimate layer of all — location, messages, photos, identity all live there.&lt;/p&gt; &lt;p&gt;GrapheneOS matters because it keeps that choice technically possible. It is not perfect — Pixel-bound, blocked by some apps, with a learning curve — but it proves a phone you actually control can still exist. If that is what you care about, GrapheneOS is the most mature option today, and the clearest place to watch where Google goes next.&lt;/p&gt; &lt;div class=&#34;admonition info&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Sources&lt;/p&gt; &lt;p&gt;Based on reporting from &lt;a href=&#34;https://9to5google.com/2025/03/26/google-android-aosp-developement-private/&#34; target=&#34;_blank&#34;&gt;9to5Google&lt;/a&gt;, &lt;a href=&#34;https://www.androidauthority.com/google-not-killing-aosp-3566882/&#34; target=&#34;_blank&#34;&gt;Android Authority&lt;/a&gt;, &lt;a href=&#34;https://piunikaweb.com/2026/03/12/grapheneos-explains-motorola-partnership-origin-the-uncertain-future-of-pixels/&#34; target=&#34;_blank&#34;&gt;PiunikaWeb&lt;/a&gt; and &lt;a href=&#34;https://www.theregister.com/on-prem/2026/03/10/microsoft_tightens_authenticator_checks_on/&#34; target=&#34;_blank&#34;&gt;The Register&lt;/a&gt;, plus the official &lt;a href=&#34;https://source.android.com/docs/whatsnew/android-17-release&#34; target=&#34;_blank&#34;&gt;Android 17 release notes&lt;/a&gt; and &lt;a href=&#34;https://grapheneos.org/&#34; target=&#34;_blank&#34;&gt;GrapheneOS&lt;/a&gt;. This is an anoni.net take with an APAC and Chinese-speaking-region angle, not a translation of any single source.&lt;/p&gt; &lt;/div&gt; &lt;div class=&#34;footnote&#34;&gt; &lt;hr /&gt; &lt;ol&gt; &lt;li id=&#34;fn:1&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://9to5google.com/2025/03/26/google-android-aosp-developement-private/&#34; target=&#34;_blank&#34;&gt;Google will develop the Android OS fully in private going forward&lt;/a&gt; - 9to5Google&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:2&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.androidauthority.com/google-not-killing-aosp-3566882/&#34; target=&#34;_blank&#34;&gt;AOSP isn&#39;t dead, but Google just landed a huge blow to custom ROM developers&lt;/a&gt; - Android Authority&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:2&#34; title=&#34;Jump back to footnote 2 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:3&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://discuss.grapheneos.org/d/36469-grapheneos-has-been-ported-to-android-17-and-official-releases-are-coming-soon&#34; target=&#34;_blank&#34;&gt;GrapheneOS has been ported to Android 17 and official releases are coming soon&lt;/a&gt; - GrapheneOS Discussion Forum&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:3&#34; title=&#34;Jump back to footnote 3 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:4&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.theregister.com/on-prem/2026/03/10/microsoft_tightens_authenticator_checks_on/&#34; target=&#34;_blank&#34;&gt;Microsoft tightens Authenticator checks on Android and iOS&lt;/a&gt; - The Register&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:4&#34; title=&#34;Jump back to footnote 4 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:5&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://piunikaweb.com/2026/03/10/grapheneos-calls-on-privacy-focused-app-developers-to-boycott-european-unified-attestation/&#34; target=&#34;_blank&#34;&gt;GrapheneOS calls on privacy-focused app developers to boycott European Unified Attestation&lt;/a&gt; - PiunikaWeb&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:5&#34; title=&#34;Jump back to footnote 5 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:6&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://9to5google.com/2026/03/01/motorola-confirms-grapheneos-partnership-for-a-future-smartphone-porting-features/&#34; target=&#34;_blank&#34;&gt;Motorola confirms GrapheneOS partnership for a future smartphone&lt;/a&gt; - 9to5Google&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:6&#34; title=&#34;Jump back to footnote 6 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:7&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://piunikaweb.com/2026/03/12/grapheneos-explains-motorola-partnership-origin-the-uncertain-future-of-pixels/&#34; target=&#34;_blank&#34;&gt;GrapheneOS explains Motorola partnership origin &amp;amp; the uncertain future of Pixels&lt;/a&gt; - PiunikaWeb&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:7&#34; title=&#34;Jump back to footnote 7 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:8&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://piunikaweb.com/2026/01/26/pixel-11-could-be-the-last-new-pixel-to-gain-grapheneos-support/&#34; target=&#34;_blank&#34;&gt;Pixel 11 could be the last new Pixel to gain GrapheneOS support&lt;/a&gt; - PiunikaWeb&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:8&#34; title=&#34;Jump back to footnote 8 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/07/2026-grapheneos-android-17/</link> <pubDate>Mon, 20 Jul 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/07/2026-grapheneos-android-17/</guid> <enclosure url="https://assets.anoni.net/blog/2026-grapheneos-android-17.jpg" type="image/jpeg" length="887950" /> </item> <item> <title>OONI is guarding its data against bad measurements — what that means if you build on it</title> <author>anoni.net Community</author> <category>OONI</category> <category>Privacy</category> <category>Technology</category> <description>&lt;h1 id=&#34;OONI-is-guarding-its-data-against-bad-measurements--what-that-means-if-you-build-on-it&#34;&gt;OONI is guarding its data against bad measurements — what that means if you build on it&lt;a class=&#34;headerlink&#34; href=&#34;#OONI-is-guarding-its-data-against-bad-measurements--what-that-means-if-you-build-on-it&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;We build on OONI&#39;s public dataset. Our own work tracks how well Taiwan and the wider APAC region are actually observed in that data, and our &lt;a href=&#34;../../06/2026-ooni-run-v2-usage-patterns/&#34;&gt;Run v2 census&lt;/a&gt; mapped how the whole Run v2 ecosystem gets used. So when OONI published a long engineering post on [how it detects and mitigates faulty measurements]&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; — alongside a new anonymous-credential system now rolling into production — we read it not as OONI insiders but as people downstream who use this data to make claims about a thinly-observed part of the world.&lt;/p&gt; &lt;p&gt;Here is what stands out from that seat.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;The-well-isnt-poisoned&#34;&gt;The well isn&#39;t poisoned&lt;a class=&#34;headerlink&#34; href=&#34;#The-well-isnt-poisoned&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The single most reassuring finding, for anyone who builds analysis on OONI&#39;s open data: OONI went looking for deliberate pollution and mostly did not find it. Across four heuristics — IP-geolocation mismatches, measurement-volume spikes, timestamp anomalies, and OS/version inconsistencies — the overwhelming majority of &#34;faulty&#34; measurements turned out to be benign. VPNs account for most of the geolocation mismatches (about 7.4% of one sample), a timezone misconfiguration on a partner&#39;s devices in Venezuela explained a cluster of timestamp anomalies, and a batch of odd Android-on-macOS records traced back to OONI&#39;s own developers&#39; machines. There is no sign of large-scale tampering.&lt;/p&gt; &lt;p&gt;If you cite OONI data in reporting, litigation, or research, that conclusion matters more than any single chart in the post.&lt;/p&gt; &lt;h2 id=&#34;The-caveats-we-actually-feel&#34;&gt;The caveats we actually feel&lt;a class=&#34;headerlink&#34; href=&#34;#The-caveats-we-actually-feel&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Two of OONI&#39;s findings are not abstract for us.&lt;/p&gt; &lt;p&gt;First, &lt;strong&gt;&lt;code&gt;probe_cc&lt;/code&gt; is not ground truth&lt;/strong&gt;. A probe reports the country and network it thinks it is on, using a GeoIP database it ships locally, and VPNs routinely make that wrong — a probe &#34;in&#34; Canada egressing from a Russian Cloudflare WARP endpoint, and so on. When we read ASN-coverage numbers for Taiwan or APAC, this is exactly the noise we already filter out: a raw &lt;code&gt;probe_cc&lt;/code&gt; count overstates how many independent local vantage points really exist.&lt;/p&gt; &lt;p&gt;Second, &lt;strong&gt;volume is easy to fake and hard to attribute&lt;/strong&gt;. OONI has no reliable per-probe identity today, so a flood of measurements from one misconfigured or hostile client can skew a country&#39;s picture — the post catches an unofficial &lt;code&gt;ooniprobe-react-os&lt;/code&gt; fork firing measurements at three per second, only for China. In a region where genuine coverage is already thin, a little junk goes a long way.&lt;/p&gt; &lt;h2 id=&#34;Concentration-and-integrity-are-the-same-problem&#34;&gt;Concentration and integrity are the same problem&lt;a class=&#34;headerlink&#34; href=&#34;#Concentration-and-integrity-are-the-same-problem&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;This is where our own data comes in. When we &lt;a href=&#34;../../06/2026-ooni-run-v2-usage-patterns/&#34;&gt;surveyed all 336 live Run v2 links&lt;/a&gt;, we found the ecosystem is extraordinarily concentrated: a Gini coefficient of 0.981, with just three lists driving 72% of all 14 million measurements. A handful of continuous, well-run backends carry the dataset; most lists run a few times and stop.&lt;/p&gt; &lt;p&gt;Set that next to OONI&#39;s integrity work and a tension appears. If the data leans on a few serious operators, then both the quality of those operators and the barrier to new ones become decisive. Anti-abuse rules that are too blunt — OONI gives the example of accepting only probes older than six months — would also shut out the fresh, independent probes that under-observed regions most need to add. OONI names this tradeoff plainly, which is the right instinct.&lt;/p&gt; &lt;h2 id=&#34;Why-the-anonymous-credential-design-fits-higher-risk-regions&#34;&gt;Why the anonymous-credential design fits higher-risk regions&lt;a class=&#34;headerlink&#34; href=&#34;#Why-the-anonymous-credential-design-fits-higher-risk-regions&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;This is the part worth the attention of any small observation community, not just OONI. The new system scores trust from two attributes — how long a probe has existed and how many measurements it has submitted — and proves them cryptographically without ever storing them server-side or minting a stable global ID. It proves ranges, not exact values (&#34;more than 1,000 measurements,&#34; &#34;older than a week&#34;), so the metadata cannot become a near-unique fingerprint. Pseudonyms are network-local: one identity per network, unlinkable across networks.&lt;/p&gt; &lt;p&gt;For observers in the global north, that is a pleasant privacy property. For a journalist or civil-society volunteer running a probe inside a hostile network, it is the difference between contributing safely and being singled out. A system that lets OONI say &#34;only probes with real history in this network count&#34; — without learning who those probes are — is exactly the shape a thin-coverage, higher-risk region should want. OONI is candid that full Sybil resistance still needs application-layer limits such as registration rate-limiting, but the credential raises the cost of gaming the dataset without a deanonymizing identity. The design rationale sits in OONI&#39;s two companion posts.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:3&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt; &lt;h2 id=&#34;What-we-will-be-watching&#34;&gt;What we will be watching&lt;a class=&#34;headerlink&#34; href=&#34;#What-we-will-be-watching&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;As consumers, two numbers will tell the story over time: the ratio of verified to unverified to failed measurements, and whether the credential rollout quietly thins out fresh probes from precisely the networks that are already under-observed. If you also build on OONI data across APAC, we would like to compare notes.&lt;/p&gt; &lt;h2 id=&#34;Related-reading&#34;&gt;Related reading&lt;a class=&#34;headerlink&#34; href=&#34;#Related-reading&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;../../06/2026-ooni-run-v2-usage-patterns/&#34;&gt;We surveyed all 336 OONI Run v2 links, and three of them drive 72% of all measurements&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;div class=&#34;footnote&#34;&gt; &lt;hr /&gt; &lt;ol&gt; &lt;li id=&#34;fn:1&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://ooni.org/post/2026-faulty-measurements/&#34; target=&#34;_blank&#34;&gt;From Heuristics to Anonymous Credentials: Assessing OONI&#39;s Approach to Bad Measurements, OONI 2026-07-06&lt;/a&gt;&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:2&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://ooni.org/post/2025-requirements-for-oonis-anonymous-credentials/&#34; target=&#34;_blank&#34;&gt;Requirements for OONI&#39;s anonymous credentials, OONI&lt;/a&gt;&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:2&#34; title=&#34;Jump back to footnote 2 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:3&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://ooni.org/post/2025-announcing-ooni-new-anonymous-credential-system/&#34; target=&#34;_blank&#34;&gt;Announcing OONI&#39;s new anonymous credential system, OONI&lt;/a&gt;&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:3&#34; title=&#34;Jump back to footnote 3 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/07/2026-ooni-faulty-measurements/</link> <pubDate>Fri, 17 Jul 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/07/2026-ooni-faulty-measurements/</guid> <enclosure url="https://ipfs.anoni.net/en/assets/images/post-update.png" type="image/png" length="81353" /> </item> <item> <title>COSCUP 2026 Anonymity Networks Community track runs two days, Aug 8–9, free entry, just walk in</title> <author>anoni.net Community</author> <category>Community</category> <category>event</category> <description>&lt;h1 id=&#34;COSCUP-2026-Anonymity-Networks-Community-track-runs-two-days-Aug-89-free-entry-just-walk-in&#34;&gt;COSCUP 2026 Anonymity Networks Community track runs two days, Aug 8–9, free entry, just walk in&lt;a class=&#34;headerlink&#34; href=&#34;#COSCUP-2026-Anonymity-Networks-Community-track-runs-two-days-Aug-89-free-entry-just-walk-in&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;&lt;img alt=&#34;COSCUP 2026 Anonymity Networks Community track hero image&#34; src=&#34;https://assets.anoni.net/event/anoni-net-eth-taipei.webp&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;Journalists need to protect sources, civil-society groups need to keep member lists and donor records safe, developers want to know whether the tools in their hands actually hold up against surveillance, and ordinary people rattled by scam texts or ad tracking just want a little control back. Under spreading censorship and monitoring, these needs land on the same set of risks: traffic can be intercepted, identities can be traced, and the timing and amount of a single transfer can reconstruct an entire web of relationships.&lt;/p&gt; &lt;p&gt;The &lt;strong&gt;Anonymity Networks Community (anoni.net)&lt;/strong&gt; brings a year of hands-on work with Tor, Tails, and OONI (open-source privacy and anti-censorship tools), plus personal privacy and anonymous payments, to the open-source floor of COSCUP 2026. Across two days at National Taiwan University of Science and Technology, we run a full community track, from how the internet and censorship work, through real-world open-source privacy tools, campus Tor nodes, browser tracking, and the national health-insurance database and data-privacy rights, to an anonymous-payments session co-organized with ETHTaipei (Taipei Ethereum Community). Whether you came looking for tools you can use right away or want to contribute to open-source projects, there is a session for you.&lt;/p&gt; &lt;div class=&#34;admonition info&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Event details&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Dates: August 8 (Sat) and 9 (Sun), 2026&lt;/li&gt; &lt;li&gt;Venue: National Taiwan University of Science and Technology (NTUST), Taipei. The community track is in &lt;code&gt;TR-510&lt;/code&gt;; the Aug 8 afternoon session co-organized with ETHTaipei is in &lt;code&gt;TR-511&lt;/code&gt;.&lt;/li&gt; &lt;li&gt;Admission: COSCUP is free, and the community track needs no separate registration. Just show up.&lt;/li&gt; &lt;li&gt;Getting there: sessions are drop-in, so you can come and go and don&#39;t need to stay all day. For transport and room locations, follow the &lt;a href=&#34;https://pretalx.coscup.org/coscup-2026/&#34; target=&#34;_blank&#34;&gt;official COSCUP schedule&lt;/a&gt; and venue info, which are authoritative (times may still shift before the event).&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;p&gt;&lt;a class=&#34;md-button md-button--primary&#34; href=&#34;../../../../activity/coscup-2026/&#34;&gt;See the full schedule and session summaries&lt;/a&gt;&lt;/p&gt; &lt;!-- more --&gt; &lt;div class=&#34;admonition tip&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Just walk in — you can attend anonymously&lt;/p&gt; &lt;p&gt;For a community that promotes anonymity, attending can itself be anonymous: you leave no personal details behind to sit in on a talk. If you are looking for privacy or anonymity solutions, come straight to &lt;code&gt;TR-510&lt;/code&gt; (the Aug 8 afternoon anonymous-payments session is in &lt;code&gt;TR-511&lt;/code&gt;), pick the sessions that fit you, and feel free to chat with speakers and community members between talks.&lt;/p&gt; &lt;/div&gt; &lt;h2 id=&#34;Two-days-at-a-glance&#34;&gt;Two days at a glance&lt;a class=&#34;headerlink&#34; href=&#34;#Two-days-at-a-glance&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The program is deliberately designed to run from entry-level to protocol-level (the lower-level technical implementation), so you can pick sessions based on your own background. All sixteen sessions and their summaries live on the &lt;a href=&#34;../../../../activity/coscup-2026/&#34;&gt;event page&lt;/a&gt;.&lt;/p&gt; &lt;h3 id=&#34;Aug-8-morning-four-open-source-anonymity-primers-TR-510&#34;&gt;Aug 8 morning, four open-source anonymity primers (&lt;code&gt;TR-510&lt;/code&gt;)&lt;a class=&#34;headerlink&#34; href=&#34;#Aug-8-morning-four-open-source-anonymity-primers-TR-510&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;The first three are led by community members and the fourth is an invited talk, pitched as entry-level and well suited to civil-society groups, news media, and independent journalists, and to anyone meeting these topics for the first time. The four talks cover who the Anonymity Networks Community is and what it does, how to use threat models and metadata (records of who contacted whom, and when) to work out who you&#39;re defending against, which open-source tools journalists and NGOs actually use, and how open-standard verifiable credentials let someone prove they qualify without revealing who they are.&lt;/p&gt; &lt;h3 id=&#34;Aug-8-afternoon-the-ETHTaipei-co-organized-anonymous-payments-session-TR-511&#34;&gt;Aug 8 afternoon, the ETHTaipei co-organized anonymous-payments session (&lt;code&gt;TR-511&lt;/code&gt;)&lt;a class=&#34;headerlink&#34; href=&#34;#Aug-8-afternoon-the-ETHTaipei-co-organized-anonymous-payments-session-TR-511&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;Five talks push the technical depth to the protocol level, from zero-knowledge proofs with the Citizen Digital Certificate, privacy-preserving KYC, and on-chain stealth addresses, through to private crypto flows and a hands-on workshop. These are on the technical side, so if you have no blockchain background, start with the plain-language morning talks and decide from there. The morning primers cover &#34;why you&#39;d use this&#34; and these afternoon talks carry on into &#34;how it&#39;s built&#34;: NGOs and journalists can learn the privacy risks in donations and money flows, developers get the protocol-level implementations, and you are welcome to move between the two tracks.&lt;/p&gt; &lt;h3 id=&#34;Aug-9-all-day-seven-accepted-talks-TR-510&#34;&gt;Aug 9 all day, seven accepted talks (&lt;code&gt;TR-510&lt;/code&gt;)&lt;a class=&#34;headerlink&#34; href=&#34;#Aug-9-all-day-seven-accepted-talks-TR-510&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;Topics run from how the internet and censorship work, through OpenWRT (an open-source router OS) home networks, the NTNU campus Tor node, browser-fingerprint tracking, and the right to opt out of the national health-insurance database, to a 2026 privacy guide that spans individuals and organizations. Technical sessions alternate with everyday ones, so developers, journalists, and civil-society groups can all find something that fits.&lt;/p&gt; &lt;h2 id=&#34;Where-to-start-by-who-you-are&#34;&gt;Where to start, by who you are&lt;a class=&#34;headerlink&#34; href=&#34;#Where-to-start-by-who-you-are&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Newsrooms and independent journalists&lt;/strong&gt;: start with &#34;Real-world open-source privacy tools&#34; and &#34;Threat models and metadata 101&#34; (Aug 8 morning); on Aug 9 afternoon, &#34;Browser tracking, anti-tracking strategies&#34; unpacks how your everyday browser can leak who you&#39;ve contacted. Further reading: &lt;a href=&#34;../../../../scenarios/journalist/&#34;&gt;protecting journalistic sources&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Civil-society groups and NGOs&lt;/strong&gt;: the four Aug 8 morning primers map closely to organizational realities. To weigh anonymous donation channels, go to the Aug 8 afternoon ETHTaipei session.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Open-source and tech community&lt;/strong&gt;: Aug 9 is the most technical, with OpenWRT, the NTNU Tor node, and browser-fingerprint research all hands-on; the Aug 8 afternoon zero-knowledge and stealth-address talks are the meatiest protocol-level content. To contribute, see &lt;a href=&#34;../../../../community/how-to-contribute/&#34;&gt;how to contribute&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Anyone who wants to take back control online&lt;/strong&gt;: on Aug 9 afternoon, &#34;Browser tracking, anti-tracking strategies&#34; breaks down how your everyday browser gets tracked, and &#34;Privacy guide 2026&#34; offers practical, device-level protection. Aug 9 morning&#39;s &#34;The Workings of the Internet&#34; uses a postcard analogy to show who along the way can read your traffic; it is in English but assumes no technical background.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&#34;See-you-in-August-at-NTUST&#34;&gt;See you in August at NTUST&lt;a class=&#34;headerlink&#34; href=&#34;#See-you-in-August-at-NTUST&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;You don&#39;t have to wait for the event to get to know us. To learn about the community, or to help with Tor, OONI, translation, and running relays, start from &lt;a href=&#34;../../../../community/how-to-contribute/&#34;&gt;how to contribute and claim a topic&lt;/a&gt;. On the day, just bring a colleague or two and walk into &lt;code&gt;TR-510&lt;/code&gt;.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;../../../../activity/coscup-2026/&#34;&gt;COSCUP 2026 Anonymity Networks Community track&lt;/a&gt;: the full two-day schedule, session summaries, and speaker bios&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../activity/coscup-2026-cfp/&#34;&gt;COSCUP 2026 open call for proposals&lt;/a&gt;: topics, cross-community collaboration, and how to submit&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../01/2025to2026/&#34;&gt;From 2025 into 2026: a personal privacy guide, a campus Tor relay challenge, and exploring anonymous payments&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../about/&#34;&gt;About us&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;div class=&#34;admonition info&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Updates and contact&lt;/p&gt; &lt;p&gt;Session details and times may still change before the event; for the latest times, follow the &lt;a href=&#34;https://pretalx.coscup.org/coscup-2026/&#34; target=&#34;_blank&#34;&gt;official COSCUP schedule&lt;/a&gt;. To get community event updates, &lt;a href=&#34;../../../../contact/&#34;&gt;stay in touch&lt;/a&gt; through our newsletter and contact channels.&lt;/p&gt; &lt;/div&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/07/coscup-2026-community-track/</link> <pubDate>Mon, 13 Jul 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/07/coscup-2026-community-track/</guid> <enclosure url="https://assets.anoni.net/event/anoni-net-eth-taipei.webp" type="image/webp" length="67724" /> </item> <item> <title>Brief yourself before you travel — take the right questions to your own AI</title> <author>anoni.net Community</author> <category>Community</category> <category>Privacy</category> <description>&lt;h1 id=&#34;Brief-yourself-before-you-travel--take-the-right-questions-to-your-own-AI&#34;&gt;Brief yourself before you travel — take the right questions to your own AI&lt;a class=&#34;headerlink&#34; href=&#34;#Brief-yourself-before-you-travel--take-the-right-questions-to-your-own-AI&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;figure&gt; &lt;a href=&#34;https://assets.anoni.net/blog/travel-ai-briefing.png&#34; target=&#34;_blank&#34;&gt; &lt;img src=&#34;https://assets.anoni.net/blog/travel-ai-briefing.png&#34; alt=&#34;Illustration: an AI assistant on the left gathers scattered data cards (Wi-Fi, location pin, lock, SIM, QR) and sorts them along dotted lines into a shield-framed pre-departure briefing panel on the right, with an airplane and a flight-path arc above&#34; title=&#34;Scattered intel, sorted into one protected pre-departure briefing&#34; class=&#34;brand-frame&#34;&gt; &lt;/a&gt; &lt;/figure&gt; &lt;p&gt;Before a trip you check visas, plug types, and currency. Few people check how the internet is controlled where they are going, whether their work is legal there, or who to call if something goes wrong. For journalists, human-rights defenders, NGO staff, and researchers, those are the questions that actually affect their safety, and the hard part is that you usually don&#39;t know what to ask before you leave.&lt;/p&gt; &lt;!-- more --&gt; &lt;p&gt;Those answers are scattered across censorship measurements, foreign-ministry advisories, and the news, and nobody reads through them line by line. An AI assistant is good at pulling that kind of scattered information together. The catch is that the questions worth asking are rarely the ones that come to mind. Things like &#34;will border control search my phone or ask me to unlock it&#34;, or &#34;which VPNs still work on arrival, and does Signal connect&#34; — you won&#39;t necessarily think of them, and the wrong question gets you a tourist&#39;s answer.&lt;/p&gt; &lt;p&gt;So we built a page that packs those right questions into a set of copy-paste prompts. You paste them into an AI you trust, the ChatGPT or Claude you already use, or a local model you run yourself, and it pulls the destination&#39;s censorship, legal, SIM, and emergency-contact picture into a single pre-departure briefing.&lt;/p&gt; &lt;p&gt;Splitting it this way keeps your destination and identity off our servers, while the questions themselves stay open and fixed for anyone to check. The same pack works for any country, so changing destination doesn&#39;t mean starting over.&lt;/p&gt; &lt;p&gt;The full priming prompt and the dozen-plus questions are on &lt;a href=&#34;../../../../scenarios/travel-ai-briefing/&#34;&gt;Pre-departure digital safety — brief yourself with AI prompts&lt;/a&gt; — copy and you are ready to start.&lt;/p&gt; &lt;p&gt;If you have on-the-ground experience for a specific destination, come share it through the channels on our &lt;a href=&#34;../../../../community/&#34;&gt;Community&lt;/a&gt; page, or send it anonymously to &lt;a href=&#34;mailto:whisper@anoni.net&#34;&gt;whisper@anoni.net&lt;/a&gt;.&lt;/p&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/06/travel-ai-briefing/</link> <pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/06/travel-ai-briefing/</guid> <enclosure url="https://assets.anoni.net/blog/travel-ai-briefing.png" type="image/png" length="84218" /> </item> <item> <title>We surveyed all 336 OONI Run v2 links, and three of them drive 72% of all measurements</title> <author>anoni.net Community</author> <category>OONI</category> <category>Technology</category> <description>&lt;h1 id=&#34;We-surveyed-all-336-OONI-Run-v2-links-and-three-of-them-drive-72-of-all-measurements&#34;&gt;We surveyed all 336 OONI Run v2 links, and three of them drive 72% of all measurements&lt;a class=&#34;headerlink&#34; href=&#34;#We-surveyed-all-336-OONI-Run-v2-links-and-three-of-them-drive-72-of-all-measurements&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;&lt;img alt=&#34;OONI Run v2 usage census&#34; src=&#34;https://assets.anoni.net/docs/ooni-run-v2-header.png&#34; style=&#34;border-radius: 10px;box-shadow:1px 1px 0.6rem #00aeff;&#34; /&gt;&lt;/p&gt; &lt;p&gt;Worldwide, OONI Run v2 has produced 14.17 million measurements, and just three lists account for 72% of them. The highest-volume lists all work the same way: each one targets a single censorship or blocking phenomenon, and a continuously-running measurement backend executes it on a schedule, accumulating data over time. We surveyed every Run v2 link to measure how concentrated this is, and to draw out what the pattern offers communities that want to run their own local connectivity observation.&lt;/p&gt; &lt;p&gt;OONI (the Open Observatory of Network Interference) is a global censorship-measurement project. Its mobile app, OONI Probe, runs through a list of websites and reports whether each one is reachable from where you are. OONI Run v2 lets anyone compose their own list of sites to watch, generate a link, and have others run that list with one tap in OONI Probe, with every result flowing into OONI&#39;s public dataset. You can define your own measurement targets without writing code, yet few people know the feature exists or have used it, which is exactly why we wanted to see how it is actually used.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;What-we-did&#34;&gt;What we did&lt;a class=&#34;headerlink&#34; href=&#34;#What-we-did&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;We took a snapshot on 2026-06-01 and went through every live OONI Run v2 link, 336 of them, pulling each link&#39;s lifetime measurement count from OONI&#39;s public aggregation API&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; and grouping them by list topic. Every figure below is based on that snapshot; the data source and caveats are at the end.&lt;/p&gt; &lt;h2 id=&#34;How-big-is-the-population-337-links-in-two-years&#34;&gt;How big is the population: 337 links in two years&lt;a class=&#34;headerlink&#34; href=&#34;#How-big-is-the-population-337-links-in-two-years&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;From the first link on 2024-04-24 to now, about 26 months, the whole world has created only 337 Run v2 links (one has been deleted; 336 remain). Creation spiked between October and December 2024 and has since held steady at 10 to 19 per month. 157 distinct authors took part, and 332 of the 336 use Web Connectivity, almost all of them testing website reachability.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;New Run v2 links created per month &lt;vegachart style=&#39;width: 100%&#39; class=&#34;vegalite&#34;&gt;{&#34;description&#34;:&#34;OONI Run v2 links created per month&#34;,&#34;data&#34;:{&#34;values&#34;:[{&#34;m&#34;:&#34;2024-04&#34;,&#34;n&#34;:4},{&#34;m&#34;:&#34;2024-06&#34;,&#34;n&#34;:1},{&#34;m&#34;:&#34;2024-07&#34;,&#34;n&#34;:1},{&#34;m&#34;:&#34;2024-09&#34;,&#34;n&#34;:3},{&#34;m&#34;:&#34;2024-10&#34;,&#34;n&#34;:23},{&#34;m&#34;:&#34;2024-11&#34;,&#34;n&#34;:54},{&#34;m&#34;:&#34;2024-12&#34;,&#34;n&#34;:28},{&#34;m&#34;:&#34;2025-01&#34;,&#34;n&#34;:14},{&#34;m&#34;:&#34;2025-02&#34;,&#34;n&#34;:9},{&#34;m&#34;:&#34;2025-03&#34;,&#34;n&#34;:19},{&#34;m&#34;:&#34;2025-04&#34;,&#34;n&#34;:16},{&#34;m&#34;:&#34;2025-05&#34;,&#34;n&#34;:11},{&#34;m&#34;:&#34;2025-06&#34;,&#34;n&#34;:9},{&#34;m&#34;:&#34;2025-07&#34;,&#34;n&#34;:18},{&#34;m&#34;:&#34;2025-08&#34;,&#34;n&#34;:14},{&#34;m&#34;:&#34;2025-09&#34;,&#34;n&#34;:17},{&#34;m&#34;:&#34;2025-10&#34;,&#34;n&#34;:8},{&#34;m&#34;:&#34;2025-11&#34;,&#34;n&#34;:8},{&#34;m&#34;:&#34;2025-12&#34;,&#34;n&#34;:19},{&#34;m&#34;:&#34;2026-01&#34;,&#34;n&#34;:10},{&#34;m&#34;:&#34;2026-02&#34;,&#34;n&#34;:12},{&#34;m&#34;:&#34;2026-03&#34;,&#34;n&#34;:14},{&#34;m&#34;:&#34;2026-04&#34;,&#34;n&#34;:10},{&#34;m&#34;:&#34;2026-05&#34;,&#34;n&#34;:14}]},&#34;mark&#34;:{&#34;type&#34;:&#34;bar&#34;,&#34;tooltip&#34;:true,&#34;color&#34;:&#34;#00aeff&#34;},&#34;encoding&#34;:{&#34;x&#34;:{&#34;field&#34;:&#34;m&#34;,&#34;type&#34;:&#34;ordinal&#34;,&#34;title&#34;:&#34;Month&#34;,&#34;axis&#34;:{&#34;labelAngle&#34;:-45}},&#34;y&#34;:{&#34;field&#34;:&#34;n&#34;,&#34;type&#34;:&#34;quantitative&#34;,&#34;title&#34;:&#34;New links created&#34;}}}&lt;/vegachart&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;For a global censorship-observation tool, 337 links in two years is a small number. Going by creation count alone, it is easy to conclude that almost nobody uses Run v2. The usage data in the next section overturns that.&lt;/p&gt; &lt;h2 id=&#34;Usage-is-extremely-concentrated-Gini-0981&#34;&gt;Usage is extremely concentrated, Gini 0.981&lt;a class=&#34;headerlink&#34; href=&#34;#Usage-is-extremely-concentrated-Gini-0981&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Adding up the lifetime measurements of all 336 links gives 14,171,627. The total is not small; the problem is how unevenly it is distributed. The Gini coefficient by measurement count is 0.981, almost at the 1.0 of complete inequality.&lt;/p&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Why the Gini coefficient&lt;/p&gt; &lt;p&gt;The Gini coefficient was originally used to measure income inequality. It ranges from 0 to 1 and compresses the concentration of a whole distribution into a single number. 0 means perfectly even, with every link producing the same number of measurements. 1 means fully concentrated, with all measurements coming from a single link.&lt;/p&gt; &lt;p&gt;It fits here well, because each link&#39;s measurement count is a non-negative quantity and the question is exactly how concentrated all measurements are among a few links. Mathematically the Gini coefficient equals the area between the Lorenz curve and the diagonal (divided by the total area below the diagonal), so the closer the Lorenz curve below hugs the bottom edge, the closer the Gini coefficient is to 1. A value of 0.981 means the distribution is very close to the extreme where a handful of links take almost everything.&lt;/p&gt; &lt;p&gt;A single number does not show which links these are or what the long tail looks like, so we include both the Lorenz curve and a bucketed distribution to lay out the shape of the concentration.&lt;/p&gt; &lt;/div&gt; &lt;ul&gt; &lt;li&gt;Lorenz curve of measurement volume (the dashed line is perfect equality) &lt;vegachart style=&#39;width: 100%&#39; class=&#34;vegalite&#34;&gt;{&#34;description&#34;:&#34;Lorenz curve of measurement volume across Run v2 links&#34;,&#34;layer&#34;:[{&#34;data&#34;:{&#34;values&#34;:[{&#34;x&#34;:0,&#34;y&#34;:0},{&#34;x&#34;:100,&#34;y&#34;:100}]},&#34;mark&#34;:{&#34;type&#34;:&#34;line&#34;,&#34;color&#34;:&#34;#546e7a&#34;,&#34;strokeDash&#34;:[4,4]},&#34;encoding&#34;:{&#34;x&#34;:{&#34;field&#34;:&#34;x&#34;,&#34;type&#34;:&#34;quantitative&#34;},&#34;y&#34;:{&#34;field&#34;:&#34;y&#34;,&#34;type&#34;:&#34;quantitative&#34;}}},{&#34;data&#34;:{&#34;values&#34;:[{&#34;x&#34;:0.0,&#34;y&#34;:0.0},{&#34;x&#34;:0.3,&#34;y&#34;:0.0},{&#34;x&#34;:0.6,&#34;y&#34;:0.0},{&#34;x&#34;:0.89,&#34;y&#34;:0.0},{&#34;x&#34;:1.19,&#34;y&#34;:0.0},{&#34;x&#34;:1.49,&#34;y&#34;:0.0},{&#34;x&#34;:1.79,&#34;y&#34;:0.0},{&#34;x&#34;:2.08,&#34;y&#34;:0.0},{&#34;x&#34;:2.38,&#34;y&#34;:0.0},{&#34;x&#34;:2.68,&#34;y&#34;:0.0},{&#34;x&#34;:2.98,&#34;y&#34;:0.0},{&#34;x&#34;:3.27,&#34;y&#34;:0.0},{&#34;x&#34;:3.57,&#34;y&#34;:0.0},{&#34;x&#34;:3.87,&#34;y&#34;:0.0},{&#34;x&#34;:4.17,&#34;y&#34;:0.0},{&#34;x&#34;:4.46,&#34;y&#34;:0.0},{&#34;x&#34;:4.76,&#34;y&#34;:0.0},{&#34;x&#34;:5.06,&#34;y&#34;:0.0},{&#34;x&#34;:5.36,&#34;y&#34;:0.0},{&#34;x&#34;:5.65,&#34;y&#34;:0.0},{&#34;x&#34;:5.95,&#34;y&#34;:0.0},{&#34;x&#34;:6.25,&#34;y&#34;:0.0},{&#34;x&#34;:6.55,&#34;y&#34;:0.0},{&#34;x&#34;:6.85,&#34;y&#34;:0.0},{&#34;x&#34;:7.14,&#34;y&#34;:0.0},{&#34;x&#34;:7.44,&#34;y&#34;:0.0},{&#34;x&#34;:7.74,&#34;y&#34;:0.0},{&#34;x&#34;:8.04,&#34;y&#34;:0.0},{&#34;x&#34;:8.33,&#34;y&#34;:0.0},{&#34;x&#34;:8.63,&#34;y&#34;:0.0},{&#34;x&#34;:8.93,&#34;y&#34;:0.0},{&#34;x&#34;:9.23,&#34;y&#34;:0.0},{&#34;x&#34;:9.52,&#34;y&#34;:0.0},{&#34;x&#34;:9.82,&#34;y&#34;:0.0},{&#34;x&#34;:10.12,&#34;y&#34;:0.0},{&#34;x&#34;:10.42,&#34;y&#34;:0.0},{&#34;x&#34;:10.71,&#34;y&#34;:0.0},{&#34;x&#34;:11.01,&#34;y&#34;:0.0},{&#34;x&#34;:11.31,&#34;y&#34;:0.0},{&#34;x&#34;:11.61,&#34;y&#34;:0.0},{&#34;x&#34;:11.9,&#34;y&#34;:0.0},{&#34;x&#34;:12.2,&#34;y&#34;:0.0},{&#34;x&#34;:12.5,&#34;y&#34;:0.0},{&#34;x&#34;:12.8,&#34;y&#34;:0.0},{&#34;x&#34;:13.1,&#34;y&#34;:0.0},{&#34;x&#34;:13.39,&#34;y&#34;:0.0},{&#34;x&#34;:13.69,&#34;y&#34;:0.0},{&#34;x&#34;:13.99,&#34;y&#34;:0.0},{&#34;x&#34;:14.29,&#34;y&#34;:0.0},{&#34;x&#34;:14.58,&#34;y&#34;:0.0},{&#34;x&#34;:14.88,&#34;y&#34;:0.0},{&#34;x&#34;:15.18,&#34;y&#34;:0.0},{&#34;x&#34;:15.48,&#34;y&#34;:0.0},{&#34;x&#34;:15.77,&#34;y&#34;:0.0},{&#34;x&#34;:16.07,&#34;y&#34;:0.0},{&#34;x&#34;:16.37,&#34;y&#34;:0.0},{&#34;x&#34;:16.67,&#34;y&#34;:0.0},{&#34;x&#34;:16.96,&#34;y&#34;:0.0},{&#34;x&#34;:17.26,&#34;y&#34;:0.0},{&#34;x&#34;:17.56,&#34;y&#34;:0.0},{&#34;x&#34;:17.86,&#34;y&#34;:0.0},{&#34;x&#34;:18.15,&#34;y&#34;:0.0},{&#34;x&#34;:18.45,&#34;y&#34;:0.0},{&#34;x&#34;:18.75,&#34;y&#34;:0.0},{&#34;x&#34;:19.05,&#34;y&#34;:0.0},{&#34;x&#34;:19.35,&#34;y&#34;:0.0},{&#34;x&#34;:19.64,&#34;y&#34;:0.0},{&#34;x&#34;:19.94,&#34;y&#34;:0.0},{&#34;x&#34;:20.24,&#34;y&#34;:0.0},{&#34;x&#34;:20.54,&#34;y&#34;:0.0},{&#34;x&#34;:20.83,&#34;y&#34;:0.0},{&#34;x&#34;:21.13,&#34;y&#34;:0.0},{&#34;x&#34;:21.43,&#34;y&#34;:0.0},{&#34;x&#34;:21.73,&#34;y&#34;:0.0},{&#34;x&#34;:22.02,&#34;y&#34;:0.0},{&#34;x&#34;:22.32,&#34;y&#34;:0.0},{&#34;x&#34;:22.62,&#34;y&#34;:0.0},{&#34;x&#34;:22.92,&#34;y&#34;:0.0},{&#34;x&#34;:23.21,&#34;y&#34;:0.0},{&#34;x&#34;:23.51,&#34;y&#34;:0.0},{&#34;x&#34;:23.81,&#34;y&#34;:0.0},{&#34;x&#34;:24.11,&#34;y&#34;:0.0},{&#34;x&#34;:24.4,&#34;y&#34;:0.0},{&#34;x&#34;:24.7,&#34;y&#34;:0.0},{&#34;x&#34;:25.0,&#34;y&#34;:0.0},{&#34;x&#34;:25.3,&#34;y&#34;:0.0},{&#34;x&#34;:25.6,&#34;y&#34;:0.0},{&#34;x&#34;:25.89,&#34;y&#34;:0.0},{&#34;x&#34;:26.19,&#34;y&#34;:0.0},{&#34;x&#34;:26.49,&#34;y&#34;:0.0},{&#34;x&#34;:26.79,&#34;y&#34;:0.0},{&#34;x&#34;:27.08,&#34;y&#34;:0.0},{&#34;x&#34;:27.38,&#34;y&#34;:0.0},{&#34;x&#34;:27.68,&#34;y&#34;:0.0},{&#34;x&#34;:27.98,&#34;y&#34;:0.0},{&#34;x&#34;:28.27,&#34;y&#34;:0.0},{&#34;x&#34;:28.57,&#34;y&#34;:0.0},{&#34;x&#34;:28.87,&#34;y&#34;:0.0},{&#34;x&#34;:29.17,&#34;y&#34;:0.0},{&#34;x&#34;:29.46,&#34;y&#34;:0.0},{&#34;x&#34;:29.76,&#34;y&#34;:0.0},{&#34;x&#34;:30.06,&#34;y&#34;:0.0},{&#34;x&#34;:30.36,&#34;y&#34;:0.0},{&#34;x&#34;:30.65,&#34;y&#34;:0.0},{&#34;x&#34;:30.95,&#34;y&#34;:0.0},{&#34;x&#34;:31.25,&#34;y&#34;:0.0},{&#34;x&#34;:31.55,&#34;y&#34;:0.0},{&#34;x&#34;:31.85,&#34;y&#34;:0.0},{&#34;x&#34;:32.14,&#34;y&#34;:0.0},{&#34;x&#34;:32.44,&#34;y&#34;:0.0},{&#34;x&#34;:32.74,&#34;y&#34;:0.0},{&#34;x&#34;:33.04,&#34;y&#34;:0.0},{&#34;x&#34;:33.33,&#34;y&#34;:0.0},{&#34;x&#34;:33.63,&#34;y&#34;:0.0},{&#34;x&#34;:33.93,&#34;y&#34;:0.0},{&#34;x&#34;:34.23,&#34;y&#34;:0.0},{&#34;x&#34;:34.52,&#34;y&#34;:0.0},{&#34;x&#34;:34.82,&#34;y&#34;:0.0},{&#34;x&#34;:35.12,&#34;y&#34;:0.0},{&#34;x&#34;:35.42,&#34;y&#34;:0.0},{&#34;x&#34;:35.71,&#34;y&#34;:0.0},{&#34;x&#34;:36.01,&#34;y&#34;:0.0},{&#34;x&#34;:36.31,&#34;y&#34;:0.0},{&#34;x&#34;:36.61,&#34;y&#34;:0.0},{&#34;x&#34;:36.9,&#34;y&#34;:0.0},{&#34;x&#34;:37.2,&#34;y&#34;:0.0},{&#34;x&#34;:37.5,&#34;y&#34;:0.0},{&#34;x&#34;:37.8,&#34;y&#34;:0.0},{&#34;x&#34;:38.1,&#34;y&#34;:0.0},{&#34;x&#34;:38.39,&#34;y&#34;:0.0},{&#34;x&#34;:38.69,&#34;y&#34;:0.0},{&#34;x&#34;:38.99,&#34;y&#34;:0.0},{&#34;x&#34;:39.29,&#34;y&#34;:0.0},{&#34;x&#34;:39.58,&#34;y&#34;:0.0},{&#34;x&#34;:39.88,&#34;y&#34;:0.0},{&#34;x&#34;:40.18,&#34;y&#34;:0.0},{&#34;x&#34;:40.48,&#34;y&#34;:0.0},{&#34;x&#34;:40.77,&#34;y&#34;:0.0},{&#34;x&#34;:41.07,&#34;y&#34;:0.0},{&#34;x&#34;:41.37,&#34;y&#34;:0.0},{&#34;x&#34;:41.67,&#34;y&#34;:0.0},{&#34;x&#34;:41.96,&#34;y&#34;:0.0},{&#34;x&#34;:42.26,&#34;y&#34;:0.001},{&#34;x&#34;:42.56,&#34;y&#34;:0.001},{&#34;x&#34;:42.86,&#34;y&#34;:0.001},{&#34;x&#34;:43.15,&#34;y&#34;:0.001},{&#34;x&#34;:43.45,&#34;y&#34;:0.001},{&#34;x&#34;:43.75,&#34;y&#34;:0.001},{&#34;x&#34;:44.05,&#34;y&#34;:0.001},{&#34;x&#34;:44.35,&#34;y&#34;:0.001},{&#34;x&#34;:44.64,&#34;y&#34;:0.001},{&#34;x&#34;:44.94,&#34;y&#34;:0.001},{&#34;x&#34;:45.24,&#34;y&#34;:0.001},{&#34;x&#34;:45.54,&#34;y&#34;:0.001},{&#34;x&#34;:45.83,&#34;y&#34;:0.001},{&#34;x&#34;:46.13,&#34;y&#34;:0.001},{&#34;x&#34;:46.43,&#34;y&#34;:0.002},{&#34;x&#34;:46.73,&#34;y&#34;:0.002},{&#34;x&#34;:47.02,&#34;y&#34;:0.002},{&#34;x&#34;:47.32,&#34;y&#34;:0.002},{&#34;x&#34;:47.62,&#34;y&#34;:0.002},{&#34;x&#34;:47.92,&#34;y&#34;:0.002},{&#34;x&#34;:48.21,&#34;y&#34;:0.002},{&#34;x&#34;:48.51,&#34;y&#34;:0.003},{&#34;x&#34;:48.81,&#34;y&#34;:0.003},{&#34;x&#34;:49.11,&#34;y&#34;:0.003},{&#34;x&#34;:49.4,&#34;y&#34;:0.003},{&#34;x&#34;:49.7,&#34;y&#34;:0.003},{&#34;x&#34;:50.0,&#34;y&#34;:0.003},{&#34;x&#34;:50.3,&#34;y&#34;:0.004},{&#34;x&#34;:50.6,&#34;y&#34;:0.004},{&#34;x&#34;:50.89,&#34;y&#34;:0.004},{&#34;x&#34;:51.19,&#34;y&#34;:0.004},{&#34;x&#34;:51.49,&#34;y&#34;:0.004},{&#34;x&#34;:51.79,&#34;y&#34;:0.005},{&#34;x&#34;:52.08,&#34;y&#34;:0.005},{&#34;x&#34;:52.38,&#34;y&#34;:0.005},{&#34;x&#34;:52.68,&#34;y&#34;:0.006},{&#34;x&#34;:52.98,&#34;y&#34;:0.006},{&#34;x&#34;:53.27,&#34;y&#34;:0.006},{&#34;x&#34;:53.57,&#34;y&#34;:0.007},{&#34;x&#34;:53.87,&#34;y&#34;:0.007},{&#34;x&#34;:54.17,&#34;y&#34;:0.007},{&#34;x&#34;:54.46,&#34;y&#34;:0.008},{&#34;x&#34;:54.76,&#34;y&#34;:0.008},{&#34;x&#34;:55.06,&#34;y&#34;:0.009},{&#34;x&#34;:55.36,&#34;y&#34;:0.009},{&#34;x&#34;:55.65,&#34;y&#34;:0.01},{&#34;x&#34;:55.95,&#34;y&#34;:0.01},{&#34;x&#34;:56.25,&#34;y&#34;:0.011},{&#34;x&#34;:56.55,&#34;y&#34;:0.011},{&#34;x&#34;:56.85,&#34;y&#34;:0.012},{&#34;x&#34;:57.14,&#34;y&#34;:0.013},{&#34;x&#34;:57.44,&#34;y&#34;:0.013},{&#34;x&#34;:57.74,&#34;y&#34;:0.014},{&#34;x&#34;:58.04,&#34;y&#34;:0.015},{&#34;x&#34;:58.33,&#34;y&#34;:0.016},{&#34;x&#34;:58.63,&#34;y&#34;:0.016},{&#34;x&#34;:58.93,&#34;y&#34;:0.017},{&#34;x&#34;:59.23,&#34;y&#34;:0.018},{&#34;x&#34;:59.52,&#34;y&#34;:0.019},{&#34;x&#34;:59.82,&#34;y&#34;:0.02},{&#34;x&#34;:60.12,&#34;y&#34;:0.021},{&#34;x&#34;:60.42,&#34;y&#34;:0.022},{&#34;x&#34;:60.71,&#34;y&#34;:0.024},{&#34;x&#34;:61.01,&#34;y&#34;:0.025},{&#34;x&#34;:61.31,&#34;y&#34;:0.026},{&#34;x&#34;:61.61,&#34;y&#34;:0.027},{&#34;x&#34;:61.9,&#34;y&#34;:0.028},{&#34;x&#34;:62.2,&#34;y&#34;:0.03},{&#34;x&#34;:62.5,&#34;y&#34;:0.031},{&#34;x&#34;:62.8,&#34;y&#34;:0.033},{&#34;x&#34;:63.1,&#34;y&#34;:0.034},{&#34;x&#34;:63.39,&#34;y&#34;:0.036},{&#34;x&#34;:63.69,&#34;y&#34;:0.038},{&#34;x&#34;:63.99,&#34;y&#34;:0.04},{&#34;x&#34;:64.29,&#34;y&#34;:0.042},{&#34;x&#34;:64.58,&#34;y&#34;:0.044},{&#34;x&#34;:64.88,&#34;y&#34;:0.046},{&#34;x&#34;:65.18,&#34;y&#34;:0.048},{&#34;x&#34;:65.48,&#34;y&#34;:0.05},{&#34;x&#34;:65.77,&#34;y&#34;:0.052},{&#34;x&#34;:66.07,&#34;y&#34;:0.054},{&#34;x&#34;:66.37,&#34;y&#34;:0.057},{&#34;x&#34;:66.67,&#34;y&#34;:0.059},{&#34;x&#34;:66.96,&#34;y&#34;:0.061},{&#34;x&#34;:67.26,&#34;y&#34;:0.064},{&#34;x&#34;:67.56,&#34;y&#34;:0.066},{&#34;x&#34;:67.86,&#34;y&#34;:0.069},{&#34;x&#34;:68.15,&#34;y&#34;:0.071},{&#34;x&#34;:68.45,&#34;y&#34;:0.074},{&#34;x&#34;:68.75,&#34;y&#34;:0.077},{&#34;x&#34;:69.05,&#34;y&#34;:0.079},{&#34;x&#34;:69.35,&#34;y&#34;:0.082},{&#34;x&#34;:69.64,&#34;y&#34;:0.085},{&#34;x&#34;:69.94,&#34;y&#34;:0.089},{&#34;x&#34;:70.24,&#34;y&#34;:0.092},{&#34;x&#34;:70.54,&#34;y&#34;:0.095},{&#34;x&#34;:70.83,&#34;y&#34;:0.099},{&#34;x&#34;:71.13,&#34;y&#34;:0.102},{&#34;x&#34;:71.43,&#34;y&#34;:0.106},{&#34;x&#34;:71.73,&#34;y&#34;:0.109},{&#34;x&#34;:72.02,&#34;y&#34;:0.113},{&#34;x&#34;:72.32,&#34;y&#34;:0.116},{&#34;x&#34;:72.62,&#34;y&#34;:0.12},{&#34;x&#34;:72.92,&#34;y&#34;:0.123},{&#34;x&#34;:73.21,&#34;y&#34;:0.127},{&#34;x&#34;:73.51,&#34;y&#34;:0.13},{&#34;x&#34;:73.81,&#34;y&#34;:0.134},{&#34;x&#34;:74.11,&#34;y&#34;:0.138},{&#34;x&#34;:74.4,&#34;y&#34;:0.142},{&#34;x&#34;:74.7,&#34;y&#34;:0.146},{&#34;x&#34;:75.0,&#34;y&#34;:0.15},{&#34;x&#34;:75.3,&#34;y&#34;:0.155},{&#34;x&#34;:75.6,&#34;y&#34;:0.159},{&#34;x&#34;:75.89,&#34;y&#34;:0.164},{&#34;x&#34;:76.19,&#34;y&#34;:0.168},{&#34;x&#34;:76.49,&#34;y&#34;:0.173},{&#34;x&#34;:76.79,&#34;y&#34;:0.178},{&#34;x&#34;:77.08,&#34;y&#34;:0.183},{&#34;x&#34;:77.38,&#34;y&#34;:0.189},{&#34;x&#34;:77.68,&#34;y&#34;:0.194},{&#34;x&#34;:77.98,&#34;y&#34;:0.2},{&#34;x&#34;:78.27,&#34;y&#34;:0.206},{&#34;x&#34;:78.57,&#34;y&#34;:0.212},{&#34;x&#34;:78.87,&#34;y&#34;:0.218},{&#34;x&#34;:79.17,&#34;y&#34;:0.225},{&#34;x&#34;:79.46,&#34;y&#34;:0.232},{&#34;x&#34;:79.76,&#34;y&#34;:0.239},{&#34;x&#34;:80.06,&#34;y&#34;:0.247},{&#34;x&#34;:80.36,&#34;y&#34;:0.255},{&#34;x&#34;:80.65,&#34;y&#34;:0.263},{&#34;x&#34;:80.95,&#34;y&#34;:0.27},{&#34;x&#34;:81.25,&#34;y&#34;:0.279},{&#34;x&#34;:81.55,&#34;y&#34;:0.287},{&#34;x&#34;:81.85,&#34;y&#34;:0.297},{&#34;x&#34;:82.14,&#34;y&#34;:0.307},{&#34;x&#34;:82.44,&#34;y&#34;:0.318},{&#34;x&#34;:82.74,&#34;y&#34;:0.33},{&#34;x&#34;:83.04,&#34;y&#34;:0.342},{&#34;x&#34;:83.33,&#34;y&#34;:0.355},{&#34;x&#34;:83.63,&#34;y&#34;:0.369},{&#34;x&#34;:83.93,&#34;y&#34;:0.384},{&#34;x&#34;:84.23,&#34;y&#34;:0.4},{&#34;x&#34;:84.52,&#34;y&#34;:0.415},{&#34;x&#34;:84.82,&#34;y&#34;:0.432},{&#34;x&#34;:85.12,&#34;y&#34;:0.449},{&#34;x&#34;:85.42,&#34;y&#34;:0.466},{&#34;x&#34;:85.71,&#34;y&#34;:0.484},{&#34;x&#34;:86.01,&#34;y&#34;:0.501},{&#34;x&#34;:86.31,&#34;y&#34;:0.526},{&#34;x&#34;:86.61,&#34;y&#34;:0.551},{&#34;x&#34;:86.9,&#34;y&#34;:0.577},{&#34;x&#34;:87.2,&#34;y&#34;:0.603},{&#34;x&#34;:87.5,&#34;y&#34;:0.631},{&#34;x&#34;:87.8,&#34;y&#34;:0.659},{&#34;x&#34;:88.1,&#34;y&#34;:0.688},{&#34;x&#34;:88.39,&#34;y&#34;:0.718},{&#34;x&#34;:88.69,&#34;y&#34;:0.751},{&#34;x&#34;:88.99,&#34;y&#34;:0.787},{&#34;x&#34;:89.29,&#34;y&#34;:0.831},{&#34;x&#34;:89.58,&#34;y&#34;:0.88},{&#34;x&#34;:89.88,&#34;y&#34;:0.929},{&#34;x&#34;:90.18,&#34;y&#34;:0.979},{&#34;x&#34;:90.48,&#34;y&#34;:1.031},{&#34;x&#34;:90.77,&#34;y&#34;:1.084},{&#34;x&#34;:91.07,&#34;y&#34;:1.139},{&#34;x&#34;:91.37,&#34;y&#34;:1.205},{&#34;x&#34;:91.67,&#34;y&#34;:1.277},{&#34;x&#34;:91.96,&#34;y&#34;:1.348},{&#34;x&#34;:92.26,&#34;y&#34;:1.428},{&#34;x&#34;:92.56,&#34;y&#34;:1.512},{&#34;x&#34;:92.86,&#34;y&#34;:1.602},{&#34;x&#34;:93.15,&#34;y&#34;:1.701},{&#34;x&#34;:93.45,&#34;y&#34;:1.808},{&#34;x&#34;:93.75,&#34;y&#34;:1.93},{&#34;x&#34;:94.05,&#34;y&#34;:2.061},{&#34;x&#34;:94.35,&#34;y&#34;:2.194},{&#34;x&#34;:94.64,&#34;y&#34;:2.357},{&#34;x&#34;:94.94,&#34;y&#34;:2.584},{&#34;x&#34;:95.24,&#34;y&#34;:2.845},{&#34;x&#34;:95.54,&#34;y&#34;:3.226},{&#34;x&#34;:95.83,&#34;y&#34;:3.625},{&#34;x&#34;:96.13,&#34;y&#34;:4.345},{&#34;x&#34;:96.43,&#34;y&#34;:5.089},{&#34;x&#34;:96.73,&#34;y&#34;:5.86},{&#34;x&#34;:97.02,&#34;y&#34;:6.696},{&#34;x&#34;:97.32,&#34;y&#34;:7.642},{&#34;x&#34;:97.62,&#34;y&#34;:9.124},{&#34;x&#34;:97.92,&#34;y&#34;:10.954},{&#34;x&#34;:98.21,&#34;y&#34;:13.384},{&#34;x&#34;:98.51,&#34;y&#34;:16.34},{&#34;x&#34;:98.81,&#34;y&#34;:20.45},{&#34;x&#34;:99.11,&#34;y&#34;:25.634},{&#34;x&#34;:99.4,&#34;y&#34;:31.675},{&#34;x&#34;:99.7,&#34;y&#34;:53.505},{&#34;x&#34;:100.0,&#34;y&#34;:100.0}]},&#34;mark&#34;:{&#34;type&#34;:&#34;line&#34;,&#34;color&#34;:&#34;#00aeff&#34;,&#34;tooltip&#34;:true},&#34;encoding&#34;:{&#34;x&#34;:{&#34;field&#34;:&#34;x&#34;,&#34;type&#34;:&#34;quantitative&#34;,&#34;title&#34;:&#34;Cumulative % of links (fewest measurements first)&#34;,&#34;scale&#34;:{&#34;domain&#34;:[0,100]}},&#34;y&#34;:{&#34;field&#34;:&#34;y&#34;,&#34;type&#34;:&#34;quantitative&#34;,&#34;title&#34;:&#34;Cumulative % of measurements&#34;,&#34;scale&#34;:{&#34;domain&#34;:[0,100]}}}}]}&lt;/vegachart&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;The Lorenz curve runs almost flat along the bottom and only shoots up at the very end. The 90% of links with the fewest measurements add up to just 0.93% of the total, and even the bottom 99% account for only 20.45%. The top 4 links take about 79.5%, and the single largest (DW&#39;s Global media, id &lt;code&gt;10006&lt;/code&gt;) is 46.5% on its own.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Which bucket each link&#39;s lifetime measurement count falls into &lt;vegachart style=&#39;width: 100%&#39; class=&#34;vegalite&#34;&gt;{&#34;description&#34;:&#34;Distribution of lifetime measurement counts per link&#34;,&#34;data&#34;:{&#34;values&#34;:[{&#34;bucket&#34;:&#34;= 0&#34;,&#34;links&#34;:112,&#34;share&#34;:0.0,&#34;order&#34;:0},{&#34;bucket&#34;:&#34;1–99&#34;,&#34;links&#34;:81,&#34;share&#34;:0.0,&#34;order&#34;:1},{&#34;bucket&#34;:&#34;100–999&#34;,&#34;links&#34;:73,&#34;share&#34;:0.2,&#34;order&#34;:2},{&#34;bucket&#34;:&#34;1k–9999&#34;,&#34;links&#34;:41,&#34;share&#34;:1.0,&#34;order&#34;:3},{&#34;bucket&#34;:&#34;10k–99k&#34;,&#34;links&#34;:15,&#34;share&#34;:2.4,&#34;order&#34;:4},{&#34;bucket&#34;:&#34;100k–999k&#34;,&#34;links&#34;:12,&#34;share&#34;:28.0,&#34;order&#34;:5},{&#34;bucket&#34;:&#34;1M+&#34;,&#34;links&#34;:2,&#34;share&#34;:68.3,&#34;order&#34;:6}]},&#34;mark&#34;:{&#34;type&#34;:&#34;bar&#34;,&#34;tooltip&#34;:true,&#34;color&#34;:&#34;#0089bf&#34;},&#34;encoding&#34;:{&#34;x&#34;:{&#34;field&#34;:&#34;bucket&#34;,&#34;type&#34;:&#34;ordinal&#34;,&#34;sort&#34;:{&#34;field&#34;:&#34;order&#34;},&#34;title&#34;:&#34;Lifetime measurements (bucket)&#34;,&#34;axis&#34;:{&#34;labelAngle&#34;:-30}},&#34;y&#34;:{&#34;field&#34;:&#34;links&#34;,&#34;type&#34;:&#34;quantitative&#34;,&#34;title&#34;:&#34;Links&#34;},&#34;tooltip&#34;:[{&#34;field&#34;:&#34;bucket&#34;,&#34;title&#34;:&#34;Bucket&#34;},{&#34;field&#34;:&#34;links&#34;,&#34;title&#34;:&#34;Links&#34;},{&#34;field&#34;:&#34;share&#34;,&#34;title&#34;:&#34;% of all measurements&#34;}]}}&lt;/vegachart&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;At the other end of the tail, 112 of the 336 links (33%) have zero lifetime measurements, built and then barely run. 193 (57%) have fewer than 100, and the overall median is just 27. Most Run v2 links get created, run a few times, and stop.&lt;/p&gt; &lt;h2 id=&#34;Where-the-measurements-concentrate&#34;&gt;Where the measurements concentrate&lt;a class=&#34;headerlink&#34; href=&#34;#Where-the-measurements-concentrate&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The concentration above only describes the shape of the distribution, not what the data is actually used for. Once the links are grouped by list topic, the most heavily-observed cohorts show a common way of working.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Share of all measurements by use case (orange is the anoni.net community) &lt;vegachart style=&#39;width: 100%&#39; class=&#34;vegalite&#34;&gt;{&#34;description&#34;:&#34;Share of all measurements by use-case cohort&#34;,&#34;data&#34;:{&#34;values&#34;:[{&#34;group&#34;:&#34;DW (international media)&#34;,&#34;share&#34;:72.4,&#34;links&#34;:3,&#34;measurements&#34;:10265315},{&#34;group&#34;:&#34;Spain / LaLiga blocking&#34;,&#34;share&#34;:10.8,&#34;links&#34;:13,&#34;measurements&#34;:1529544},{&#34;group&#34;:&#34;Venezuela / VeSinFiltro&#34;,&#34;share&#34;:6.5,&#34;links&#34;:4,&#34;measurements&#34;:925351},{&#34;group&#34;:&#34;Uruguay / UCU research&#34;,&#34;share&#34;:6.1,&#34;links&#34;:49,&#34;measurements&#34;:863016},{&#34;group&#34;:&#34;Long tail (other)&#34;,&#34;share&#34;:2.1,&#34;links&#34;:199,&#34;measurements&#34;:300815},{&#34;group&#34;:&#34;Thailand gov sites&#34;,&#34;share&#34;:1.7,&#34;links&#34;:2,&#34;measurements&#34;:239430},{&#34;group&#34;:&#34;OONI official&#34;,&#34;share&#34;:0.3,&#34;links&#34;:59,&#34;measurements&#34;:43385},{&#34;group&#34;:&#34;anoni.net (Taiwan)&#34;,&#34;share&#34;:0.0,&#34;links&#34;:7,&#34;measurements&#34;:4771}]},&#34;mark&#34;:{&#34;type&#34;:&#34;bar&#34;,&#34;tooltip&#34;:true},&#34;encoding&#34;:{&#34;y&#34;:{&#34;field&#34;:&#34;group&#34;,&#34;type&#34;:&#34;nominal&#34;,&#34;sort&#34;:&#34;-x&#34;,&#34;title&#34;:null},&#34;x&#34;:{&#34;field&#34;:&#34;share&#34;,&#34;type&#34;:&#34;quantitative&#34;,&#34;title&#34;:&#34;% of all measurements&#34;},&#34;color&#34;:{&#34;condition&#34;:{&#34;test&#34;:&#34;datum.group == &#39;anoni.net (Taiwan)&#39;&#34;,&#34;value&#34;:&#34;#ef6c00&#34;},&#34;value&#34;:&#34;#00aeff&#34;},&#34;tooltip&#34;:[{&#34;field&#34;:&#34;group&#34;,&#34;title&#34;:&#34;Use case&#34;},{&#34;field&#34;:&#34;links&#34;,&#34;title&#34;:&#34;Links&#34;},{&#34;field&#34;:&#34;measurements&#34;,&#34;title&#34;:&#34;Measurements&#34;},{&#34;field&#34;:&#34;share&#34;,&#34;title&#34;:&#34;Share %&#34;}]}}&lt;/vegachart&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Deutsche Welle (DW) uses 3 lists to continuously monitor the reachability of international media across many places, taking 72.4%. Spain&#39;s conexionsegura uses 13 lists to watch the piracy blocks ordered by the LaLiga football league, at 10.8%. Venezuela&#39;s vesinfiltro uses 4 lists to track local blocking, at 6.5%. Add Uruguay&#39;s UCU research team and an observer who has long tested Thai government websites. The most heavily-observed cohorts share a clear common thread: each list targets one specific censorship or blocking phenomenon, paired with a continuously-running measurement backend that watches it day after day. That is the underestimated way to use it.&lt;/p&gt; &lt;p&gt;Listing the top 15 links by measurement count makes the same pattern concrete.&lt;/p&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;link id&lt;/th&gt; &lt;th style=&#34;text-align: right;&#34;&gt;Lifetime measurements&lt;/th&gt; &lt;th style=&#34;text-align: right;&#34;&gt;List size&lt;/th&gt; &lt;th&gt;Created&lt;/th&gt; &lt;th&gt;Author&lt;/th&gt; &lt;th&gt;List name&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;10006&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;6,589,070&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;223&lt;/td&gt; &lt;td&gt;2024-07-03&lt;/td&gt; &lt;td&gt;dw.com&lt;/td&gt; &lt;td&gt;Global media&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;10005&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;3,093,765&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;91&lt;/td&gt; &lt;td&gt;2024-06-13&lt;/td&gt; &lt;td&gt;dw.com&lt;/td&gt; &lt;td&gt;Selected (inter)national media&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;10236&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;856,036&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;167&lt;/td&gt; &lt;td&gt;2026-05-14&lt;/td&gt; &lt;td&gt;conexionsegura&lt;/td&gt; &lt;td&gt;La Liga bloqueos.es&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;10158&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;734,627&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;4635&lt;/td&gt; &lt;td&gt;2025-04-03&lt;/td&gt; &lt;td&gt;ucu (UY)&lt;/td&gt; &lt;td&gt;lista global final&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;10004&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;582,480&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;15&lt;/td&gt; &lt;td&gt;2024-12-11&lt;/td&gt; &lt;td&gt;dw.com&lt;/td&gt; &lt;td&gt;Trusted International Media&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;10154&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;418,978&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;131&lt;/td&gt; &lt;td&gt;2025-03-26&lt;/td&gt; &lt;td&gt;vesinfiltro&lt;/td&gt; &lt;td&gt;MagisTV y FlujoTV&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;10135&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;344,268&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;819&lt;/td&gt; &lt;td&gt;2025-04-16&lt;/td&gt; &lt;td&gt;conexionsegura&lt;/td&gt; &lt;td&gt;Test Bloqueos LaLiga&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;10153&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;259,331&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;102&lt;/td&gt; &lt;td&gt;2025-03-24&lt;/td&gt; &lt;td&gt;vesinfiltro&lt;/td&gt; &lt;td&gt;PriorityList&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;10143&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;210,078&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;134&lt;/td&gt; &lt;td&gt;2025-03-05&lt;/td&gt; &lt;td&gt;vesinfiltro&lt;/td&gt; &lt;td&gt;VSF News y otros&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;10298&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;133,991&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;72&lt;/td&gt; &lt;td&gt;2026-05-04&lt;/td&gt; &lt;td&gt;Thailand observer&lt;/td&gt; &lt;td&gt;Test Thai gov websites&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;10226&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;118,509&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;170&lt;/td&gt; &lt;td&gt;2025-09-15&lt;/td&gt; &lt;td&gt;conexionsegura&lt;/td&gt; &lt;td&gt;Bloqueos LaLiga - Dominios&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;10235&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;109,276&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;293&lt;/td&gt; &lt;td&gt;2025-09-20&lt;/td&gt; &lt;td&gt;conexionsegura&lt;/td&gt; &lt;td&gt;VE media http+https check&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;10214&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;105,439&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;67&lt;/td&gt; &lt;td&gt;2025-10-04&lt;/td&gt; &lt;td&gt;Thailand observer&lt;/td&gt; &lt;td&gt;Test Thai gov websites&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;10114&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;102,096&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;256&lt;/td&gt; &lt;td&gt;2026-05-05&lt;/td&gt; &lt;td&gt;jiyul.org&lt;/td&gt; &lt;td&gt;revi&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;code&gt;10118&lt;/code&gt;&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;56,541&lt;/td&gt; &lt;td style=&#34;text-align: right;&#34;&gt;3044&lt;/td&gt; &lt;td&gt;2025-03-26&lt;/td&gt; &lt;td&gt;ucu (UY)&lt;/td&gt; &lt;td&gt;LISTA GLOBAL&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;h2 id=&#34;Long-term-observation-comes-from-a-continuously-running-backend-list-size-barely-matters&#34;&gt;Long-term observation comes from a continuously-running backend, list size barely matters&lt;a class=&#34;headerlink&#34; href=&#34;#Long-term-observation-comes-from-a-continuously-running-backend-list-size-barely-matters&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;An intuitive guess is that the more sites a list collects, the more data it produces. The data does not support that guess. Plotting each link&#39;s list size (number of inputs) against its lifetime measurements shows almost no relationship.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;List size vs lifetime measurements (orange = anoni.net&#39;s two links; 2 links with 0 inputs are dropped by the log axis) &lt;vegachart style=&#39;width: 100%&#39; class=&#34;vegalite&#34;&gt;{&#34;description&#34;:&#34;List size (inputs) vs lifetime measurements per link&#34;,&#34;data&#34;:{&#34;values&#34;:[{&#34;id&#34;:10000,&#34;inputs&#34;:3,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10001,&#34;inputs&#34;:3,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10002,&#34;inputs&#34;:3,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10003,&#34;inputs&#34;:2,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10004,&#34;inputs&#34;:15,&#34;measurements&#34;:582480,&#34;group&#34;:&#34;DW (international media)&#34;},{&#34;id&#34;:10005,&#34;inputs&#34;:91,&#34;measurements&#34;:3093765,&#34;group&#34;:&#34;DW (international media)&#34;},{&#34;id&#34;:10006,&#34;inputs&#34;:223,&#34;measurements&#34;:6589070,&#34;group&#34;:&#34;DW (international media)&#34;},{&#34;id&#34;:10007,&#34;inputs&#34;:10,&#34;measurements&#34;:32,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10008,&#34;inputs&#34;:1,&#34;measurements&#34;:2,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10010,&#34;inputs&#34;:3332,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10012,&#34;inputs&#34;:3,&#34;measurements&#34;:6,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10013,&#34;inputs&#34;:6,&#34;measurements&#34;:333,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10014,&#34;inputs&#34;:5,&#34;measurements&#34;:79,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10015,&#34;inputs&#34;:5,&#34;measurements&#34;:230,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10016,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10017,&#34;inputs&#34;:3,&#34;measurements&#34;:150,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10018,&#34;inputs&#34;:8,&#34;measurements&#34;:16,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10019,&#34;inputs&#34;:6,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10020,&#34;inputs&#34;:46,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10021,&#34;inputs&#34;:2,&#34;measurements&#34;:0,&#34;group&#34;:&#34;anoni.net (Taiwan)&#34;},{&#34;id&#34;:10022,&#34;inputs&#34;:3,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10023,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10024,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10025,&#34;inputs&#34;:1,&#34;measurements&#34;:71,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10026,&#34;inputs&#34;:28,&#34;measurements&#34;:2520,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10027,&#34;inputs&#34;:2,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10028,&#34;inputs&#34;:27,&#34;measurements&#34;:180,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10029,&#34;inputs&#34;:4,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10030,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10031,&#34;inputs&#34;:5,&#34;measurements&#34;:495,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10032,&#34;inputs&#34;:4,&#34;measurements&#34;:296,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10033,&#34;inputs&#34;:1,&#34;measurements&#34;:15,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10034,&#34;inputs&#34;:7,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10035,&#34;inputs&#34;:7,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10036,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10037,&#34;inputs&#34;:1,&#34;measurements&#34;:4,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10038,&#34;inputs&#34;:10,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10039,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10040,&#34;inputs&#34;:10,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10041,&#34;inputs&#34;:50,&#34;measurements&#34;:4214,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10042,&#34;inputs&#34;:13,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10043,&#34;inputs&#34;:45,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10044,&#34;inputs&#34;:7,&#34;measurements&#34;:464,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10045,&#34;inputs&#34;:549,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10046,&#34;inputs&#34;:56,&#34;measurements&#34;:56,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10047,&#34;inputs&#34;:7,&#34;measurements&#34;:154,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10048,&#34;inputs&#34;:7,&#34;measurements&#34;:21,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10049,&#34;inputs&#34;:3338,&#34;measurements&#34;:14058,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10050,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10051,&#34;inputs&#34;:18,&#34;measurements&#34;:3861,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10052,&#34;inputs&#34;:48,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10053,&#34;inputs&#34;:21,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10054,&#34;inputs&#34;:28,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10055,&#34;inputs&#34;:27,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10056,&#34;inputs&#34;:20,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10057,&#34;inputs&#34;:26,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10058,&#34;inputs&#34;:4,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10059,&#34;inputs&#34;:38,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10060,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10061,&#34;inputs&#34;:204,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10062,&#34;inputs&#34;:204,&#34;measurements&#34;:204,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10063,&#34;inputs&#34;:1264,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10064,&#34;inputs&#34;:1250,&#34;measurements&#34;:1264,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10065,&#34;inputs&#34;:1063,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10066,&#34;inputs&#34;:638,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10067,&#34;inputs&#34;:618,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10068,&#34;inputs&#34;:2,&#34;measurements&#34;:54,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10069,&#34;inputs&#34;:3,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10070,&#34;inputs&#34;:3,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10071,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10072,&#34;inputs&#34;:1,&#34;measurements&#34;:2,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10073,&#34;inputs&#34;:1098,&#34;measurements&#34;:1098,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10074,&#34;inputs&#34;:611,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10075,&#34;inputs&#34;:390,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10076,&#34;inputs&#34;:1410,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10077,&#34;inputs&#34;:441,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10078,&#34;inputs&#34;:473,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10079,&#34;inputs&#34;:829,&#34;measurements&#34;:507,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10080,&#34;inputs&#34;:6,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10081,&#34;inputs&#34;:1069,&#34;measurements&#34;:1150,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10082,&#34;inputs&#34;:640,&#34;measurements&#34;:640,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10083,&#34;inputs&#34;:833,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10084,&#34;inputs&#34;:670,&#34;measurements&#34;:670,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10085,&#34;inputs&#34;:425,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10086,&#34;inputs&#34;:316,&#34;measurements&#34;:632,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10087,&#34;inputs&#34;:370,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10088,&#34;inputs&#34;:171,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10089,&#34;inputs&#34;:831,&#34;measurements&#34;:1662,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10090,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10091,&#34;inputs&#34;:1433,&#34;measurements&#34;:7039,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10092,&#34;inputs&#34;:2217,&#34;measurements&#34;:10137,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10093,&#34;inputs&#34;:1062,&#34;measurements&#34;:1062,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10094,&#34;inputs&#34;:1686,&#34;measurements&#34;:32171,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10095,&#34;inputs&#34;:780,&#34;measurements&#34;:780,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10096,&#34;inputs&#34;:992,&#34;measurements&#34;:3561,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10097,&#34;inputs&#34;:433,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10098,&#34;inputs&#34;:412,&#34;measurements&#34;:441,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10099,&#34;inputs&#34;:838,&#34;measurements&#34;:1676,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10100,&#34;inputs&#34;:4,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10101,&#34;inputs&#34;:1,&#34;measurements&#34;:130,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10102,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10103,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10104,&#34;inputs&#34;:821,&#34;measurements&#34;:821,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10105,&#34;inputs&#34;:7,&#34;measurements&#34;:98,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10106,&#34;inputs&#34;:1,&#34;measurements&#34;:1,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10107,&#34;inputs&#34;:3,&#34;measurements&#34;:1305,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10108,&#34;inputs&#34;:5,&#34;measurements&#34;:13,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10109,&#34;inputs&#34;:9,&#34;measurements&#34;:9,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10110,&#34;inputs&#34;:4,&#34;measurements&#34;:6,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10111,&#34;inputs&#34;:2,&#34;measurements&#34;:2,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10112,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10113,&#34;inputs&#34;:1,&#34;measurements&#34;:1,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10114,&#34;inputs&#34;:256,&#34;measurements&#34;:102096,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10115,&#34;inputs&#34;:2,&#34;measurements&#34;:1,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10116,&#34;inputs&#34;:1,&#34;measurements&#34;:103,&#34;group&#34;:&#34;Spain / LaLiga blocking&#34;},{&#34;id&#34;:10117,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10118,&#34;inputs&#34;:3044,&#34;measurements&#34;:56541,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10119,&#34;inputs&#34;:24,&#34;measurements&#34;:2424,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10120,&#34;inputs&#34;:2,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10121,&#34;inputs&#34;:4,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10122,&#34;inputs&#34;:14,&#34;measurements&#34;:36964,&#34;group&#34;:&#34;Venezuela / VeSinFiltro&#34;},{&#34;id&#34;:10123,&#34;inputs&#34;:5,&#34;measurements&#34;:5,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10124,&#34;inputs&#34;:3,&#34;measurements&#34;:129,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10125,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10126,&#34;inputs&#34;:1,&#34;measurements&#34;:1,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10127,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10128,&#34;inputs&#34;:4,&#34;measurements&#34;:20,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10129,&#34;inputs&#34;:1,&#34;measurements&#34;:1,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10130,&#34;inputs&#34;:1,&#34;measurements&#34;:1,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10131,&#34;inputs&#34;:42,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10132,&#34;inputs&#34;:3,&#34;measurements&#34;:3,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10133,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10134,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10135,&#34;inputs&#34;:819,&#34;measurements&#34;:344268,&#34;group&#34;:&#34;Spain / LaLiga blocking&#34;},{&#34;id&#34;:10136,&#34;inputs&#34;:9,&#34;measurements&#34;:9,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10137,&#34;inputs&#34;:5,&#34;measurements&#34;:185,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10138,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10139,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10140,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Spain / LaLiga blocking&#34;},{&#34;id&#34;:10141,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10142,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10143,&#34;inputs&#34;:134,&#34;measurements&#34;:210078,&#34;group&#34;:&#34;Venezuela / VeSinFiltro&#34;},{&#34;id&#34;:10144,&#34;inputs&#34;:4,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10145,&#34;inputs&#34;:2,&#34;measurements&#34;:6,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10146,&#34;inputs&#34;:2,&#34;measurements&#34;:2,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10147,&#34;inputs&#34;:25,&#34;measurements&#34;:1029,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10148,&#34;inputs&#34;:23,&#34;measurements&#34;:6182,&#34;group&#34;:&#34;Spain / LaLiga blocking&#34;},{&#34;id&#34;:10149,&#34;inputs&#34;:5,&#34;measurements&#34;:110,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10150,&#34;inputs&#34;:1,&#34;measurements&#34;:7,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10151,&#34;inputs&#34;:14,&#34;measurements&#34;:27,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10152,&#34;inputs&#34;:1,&#34;measurements&#34;:8,&#34;group&#34;:&#34;Spain / LaLiga blocking&#34;},{&#34;id&#34;:10153,&#34;inputs&#34;:102,&#34;measurements&#34;:259331,&#34;group&#34;:&#34;Venezuela / VeSinFiltro&#34;},{&#34;id&#34;:10154,&#34;inputs&#34;:131,&#34;measurements&#34;:418978,&#34;group&#34;:&#34;Venezuela / VeSinFiltro&#34;},{&#34;id&#34;:10155,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10156,&#34;inputs&#34;:4,&#34;measurements&#34;:316,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10157,&#34;inputs&#34;:1,&#34;measurements&#34;:1,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10158,&#34;inputs&#34;:4635,&#34;measurements&#34;:734627,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10159,&#34;inputs&#34;:3,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10160,&#34;inputs&#34;:500,&#34;measurements&#34;:1501,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10161,&#34;inputs&#34;:500,&#34;measurements&#34;:505,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10162,&#34;inputs&#34;:500,&#34;measurements&#34;:501,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10163,&#34;inputs&#34;:500,&#34;measurements&#34;:502,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10164,&#34;inputs&#34;:500,&#34;measurements&#34;:500,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10165,&#34;inputs&#34;:500,&#34;measurements&#34;:502,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10166,&#34;inputs&#34;:500,&#34;measurements&#34;:506,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10167,&#34;inputs&#34;:500,&#34;measurements&#34;:505,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10168,&#34;inputs&#34;:500,&#34;measurements&#34;:500,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10169,&#34;inputs&#34;:134,&#34;measurements&#34;:268,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10170,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10171,&#34;inputs&#34;:22,&#34;measurements&#34;:44,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10172,&#34;inputs&#34;:11,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10173,&#34;inputs&#34;:3,&#34;measurements&#34;:7379,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10174,&#34;inputs&#34;:2,&#34;measurements&#34;:4,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10175,&#34;inputs&#34;:15,&#34;measurements&#34;:700,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10176,&#34;inputs&#34;:214,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10177,&#34;inputs&#34;:2,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10178,&#34;inputs&#34;:2,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10179,&#34;inputs&#34;:3,&#34;measurements&#34;:75,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10180,&#34;inputs&#34;:3,&#34;measurements&#34;:246,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10181,&#34;inputs&#34;:20,&#34;measurements&#34;:2240,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10182,&#34;inputs&#34;:3,&#34;measurements&#34;:60,&#34;group&#34;:&#34;anoni.net (Taiwan)&#34;},{&#34;id&#34;:10183,&#34;inputs&#34;:166,&#34;measurements&#34;:333,&#34;group&#34;:&#34;Uruguay / UCU research&#34;},{&#34;id&#34;:10184,&#34;inputs&#34;:2,&#34;measurements&#34;:4,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10185,&#34;inputs&#34;:22,&#34;measurements&#34;:20,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10186,&#34;inputs&#34;:2,&#34;measurements&#34;:2,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10187,&#34;inputs&#34;:2,&#34;measurements&#34;:2,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10188,&#34;inputs&#34;:2,&#34;measurements&#34;:2,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10189,&#34;inputs&#34;:4,&#34;measurements&#34;:17,&#34;group&#34;:&#34;anoni.net (Taiwan)&#34;},{&#34;id&#34;:10190,&#34;inputs&#34;:2,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10191,&#34;inputs&#34;:3,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10192,&#34;inputs&#34;:13,&#34;measurements&#34;:82,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10193,&#34;inputs&#34;:3,&#34;measurements&#34;:3,&#34;group&#34;:&#34;anoni.net (Taiwan)&#34;},{&#34;id&#34;:10194,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10195,&#34;inputs&#34;:5,&#34;measurements&#34;:27,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10196,&#34;inputs&#34;:610,&#34;measurements&#34;:610,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10197,&#34;inputs&#34;:490,&#34;measurements&#34;:490,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10198,&#34;inputs&#34;:673,&#34;measurements&#34;:673,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10199,&#34;inputs&#34;:1363,&#34;measurements&#34;:2036,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10200,&#34;inputs&#34;:1,&#34;measurements&#34;:141,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10201,&#34;inputs&#34;:298,&#34;measurements&#34;:298,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10202,&#34;inputs&#34;:1124,&#34;measurements&#34;:267,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10203,&#34;inputs&#34;:974,&#34;measurements&#34;:974,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10204,&#34;inputs&#34;:303,&#34;measurements&#34;:303,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10205,&#34;inputs&#34;:600,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10206,&#34;inputs&#34;:600,&#34;measurements&#34;:600,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10207,&#34;inputs&#34;:199,&#34;measurements&#34;:398,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10208,&#34;inputs&#34;:654,&#34;measurements&#34;:654,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10209,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10210,&#34;inputs&#34;:30,&#34;measurements&#34;:30,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10211,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10212,&#34;inputs&#34;:30,&#34;measurements&#34;:150,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10213,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10214,&#34;inputs&#34;:67,&#34;measurements&#34;:105439,&#34;group&#34;:&#34;Thailand gov sites&#34;},{&#34;id&#34;:10215,&#34;inputs&#34;:41,&#34;measurements&#34;:2378,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10216,&#34;inputs&#34;:2,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10217,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10218,&#34;inputs&#34;:1,&#34;measurements&#34;:4,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10219,&#34;inputs&#34;:2,&#34;measurements&#34;:2,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10220,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10221,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10222,&#34;inputs&#34;:1,&#34;measurements&#34;:9,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10223,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10224,&#34;inputs&#34;:7,&#34;measurements&#34;:364,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10225,&#34;inputs&#34;:30,&#34;measurements&#34;:349,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10226,&#34;inputs&#34;:170,&#34;measurements&#34;:118509,&#34;group&#34;:&#34;Spain / LaLiga blocking&#34;},{&#34;id&#34;:10227,&#34;inputs&#34;:35,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10228,&#34;inputs&#34;:1,&#34;measurements&#34;:4,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10229,&#34;inputs&#34;:2,&#34;measurements&#34;:60,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10230,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10231,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10232,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10233,&#34;inputs&#34;:2,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10234,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10235,&#34;inputs&#34;:293,&#34;measurements&#34;:109276,&#34;group&#34;:&#34;Spain / LaLiga blocking&#34;},{&#34;id&#34;:10236,&#34;inputs&#34;:167,&#34;measurements&#34;:856036,&#34;group&#34;:&#34;Spain / LaLiga blocking&#34;},{&#34;id&#34;:10237,&#34;inputs&#34;:9,&#34;measurements&#34;:18,&#34;group&#34;:&#34;anoni.net (Taiwan)&#34;},{&#34;id&#34;:10238,&#34;inputs&#34;:7,&#34;measurements&#34;:14,&#34;group&#34;:&#34;anoni.net (Taiwan)&#34;},{&#34;id&#34;:10239,&#34;inputs&#34;:20,&#34;measurements&#34;:11260,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10240,&#34;inputs&#34;:5,&#34;measurements&#34;:80,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10241,&#34;inputs&#34;:5,&#34;measurements&#34;:50,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10242,&#34;inputs&#34;:5,&#34;measurements&#34;:10,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10243,&#34;inputs&#34;:5,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10244,&#34;inputs&#34;:1,&#34;measurements&#34;:42,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10245,&#34;inputs&#34;:10,&#34;measurements&#34;:18577,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10246,&#34;inputs&#34;:4,&#34;measurements&#34;:1820,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10247,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10248,&#34;inputs&#34;:2,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10249,&#34;inputs&#34;:33,&#34;measurements&#34;:99,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10250,&#34;inputs&#34;:24,&#34;measurements&#34;:9464,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10251,&#34;inputs&#34;:269,&#34;measurements&#34;:18828,&#34;group&#34;:&#34;Spain / LaLiga blocking&#34;},{&#34;id&#34;:10252,&#34;inputs&#34;:8,&#34;measurements&#34;:17288,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10253,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10254,&#34;inputs&#34;:2,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10255,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10256,&#34;inputs&#34;:10,&#34;measurements&#34;:8,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10257,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10258,&#34;inputs&#34;:12,&#34;measurements&#34;:420,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10259,&#34;inputs&#34;:4,&#34;measurements&#34;:1550,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10260,&#34;inputs&#34;:104,&#34;measurements&#34;:15120,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10261,&#34;inputs&#34;:4,&#34;measurements&#34;:258,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10262,&#34;inputs&#34;:66,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10263,&#34;inputs&#34;:1,&#34;measurements&#34;:37,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10264,&#34;inputs&#34;:22,&#34;measurements&#34;:2127,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10265,&#34;inputs&#34;:7,&#34;measurements&#34;:5226,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10266,&#34;inputs&#34;:214,&#34;measurements&#34;:7672,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10267,&#34;inputs&#34;:1,&#34;measurements&#34;:35,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10268,&#34;inputs&#34;:3,&#34;measurements&#34;:3,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10269,&#34;inputs&#34;:1,&#34;measurements&#34;:34,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10270,&#34;inputs&#34;:214,&#34;measurements&#34;:7082,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10271,&#34;inputs&#34;:214,&#34;measurements&#34;:3671,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10272,&#34;inputs&#34;:16,&#34;measurements&#34;:353,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10273,&#34;inputs&#34;:10,&#34;measurements&#34;:200,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10274,&#34;inputs&#34;:19,&#34;measurements&#34;:380,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10275,&#34;inputs&#34;:1,&#34;measurements&#34;:20,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10276,&#34;inputs&#34;:20,&#34;measurements&#34;:384,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10277,&#34;inputs&#34;:36,&#34;measurements&#34;:756,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10278,&#34;inputs&#34;:55,&#34;measurements&#34;:1107,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10280,&#34;inputs&#34;:37,&#34;measurements&#34;:789,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10281,&#34;inputs&#34;:42,&#34;measurements&#34;:1051,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10282,&#34;inputs&#34;:38,&#34;measurements&#34;:883,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10283,&#34;inputs&#34;:27,&#34;measurements&#34;:567,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10284,&#34;inputs&#34;:6,&#34;measurements&#34;:10104,&#34;group&#34;:&#34;Spain / LaLiga blocking&#34;},{&#34;id&#34;:10285,&#34;inputs&#34;:22,&#34;measurements&#34;:54022,&#34;group&#34;:&#34;Spain / LaLiga blocking&#34;},{&#34;id&#34;:10286,&#34;inputs&#34;:31,&#34;measurements&#34;:746,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10287,&#34;inputs&#34;:3,&#34;measurements&#34;:2358,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10288,&#34;inputs&#34;:20,&#34;measurements&#34;:473,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10289,&#34;inputs&#34;:1,&#34;measurements&#34;:1,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10290,&#34;inputs&#34;:1,&#34;measurements&#34;:24,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10291,&#34;inputs&#34;:61,&#34;measurements&#34;:2501,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10292,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10293,&#34;inputs&#34;:154,&#34;measurements&#34;:11938,&#34;group&#34;:&#34;Spain / LaLiga blocking&#34;},{&#34;id&#34;:10294,&#34;inputs&#34;:3,&#34;measurements&#34;:72,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10295,&#34;inputs&#34;:1,&#34;measurements&#34;:24,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10296,&#34;inputs&#34;:17,&#34;measurements&#34;:459,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10297,&#34;inputs&#34;:22,&#34;measurements&#34;:4122,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10298,&#34;inputs&#34;:72,&#34;measurements&#34;:133991,&#34;group&#34;:&#34;Thailand gov sites&#34;},{&#34;id&#34;:10299,&#34;inputs&#34;:9,&#34;measurements&#34;:216,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10300,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10301,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10302,&#34;inputs&#34;:1,&#34;measurements&#34;:24,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10303,&#34;inputs&#34;:53,&#34;measurements&#34;:318,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10304,&#34;inputs&#34;:756,&#34;measurements&#34;:23102,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10305,&#34;inputs&#34;:54,&#34;measurements&#34;:2215,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10306,&#34;inputs&#34;:8,&#34;measurements&#34;:304,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10307,&#34;inputs&#34;:4,&#34;measurements&#34;:148,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10308,&#34;inputs&#34;:3,&#34;measurements&#34;:105,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10309,&#34;inputs&#34;:8,&#34;measurements&#34;:327,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10310,&#34;inputs&#34;:14,&#34;measurements&#34;:3988,&#34;group&#34;:&#34;OONI official&#34;},{&#34;id&#34;:10311,&#34;inputs&#34;:47,&#34;measurements&#34;:6887,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10312,&#34;inputs&#34;:25,&#34;measurements&#34;:7523,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10313,&#34;inputs&#34;:1082,&#34;measurements&#34;:3729,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10314,&#34;inputs&#34;:1,&#34;measurements&#34;:2,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10315,&#34;inputs&#34;:1,&#34;measurements&#34;:8,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10316,&#34;inputs&#34;:4,&#34;measurements&#34;:128,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10317,&#34;inputs&#34;:1,&#34;measurements&#34;:16,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10318,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10319,&#34;inputs&#34;:12,&#34;measurements&#34;:870,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10320,&#34;inputs&#34;:1,&#34;measurements&#34;:2,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10321,&#34;inputs&#34;:1,&#34;measurements&#34;:2,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10322,&#34;inputs&#34;:3,&#34;measurements&#34;:166,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10323,&#34;inputs&#34;:5,&#34;measurements&#34;:33,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10324,&#34;inputs&#34;:1082,&#34;measurements&#34;:31,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10325,&#34;inputs&#34;:2,&#34;measurements&#34;:51,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10326,&#34;inputs&#34;:3,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10327,&#34;inputs&#34;:25,&#34;measurements&#34;:3510,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10328,&#34;inputs&#34;:10,&#34;measurements&#34;:4659,&#34;group&#34;:&#34;anoni.net (Taiwan)&#34;},{&#34;id&#34;:10329,&#34;inputs&#34;:12,&#34;measurements&#34;:76,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10330,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10331,&#34;inputs&#34;:2,&#34;measurements&#34;:24,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10332,&#34;inputs&#34;:2,&#34;measurements&#34;:270,&#34;group&#34;:&#34;Spain / LaLiga blocking&#34;},{&#34;id&#34;:10333,&#34;inputs&#34;:1,&#34;measurements&#34;:0,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10334,&#34;inputs&#34;:33,&#34;measurements&#34;:12759,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10335,&#34;inputs&#34;:3,&#34;measurements&#34;:18,&#34;group&#34;:&#34;Long tail (other)&#34;},{&#34;id&#34;:10336,&#34;inputs&#34;:29,&#34;measurements&#34;:1110,&#34;group&#34;:&#34;Long tail (other)&#34;}]},&#34;mark&#34;:{&#34;type&#34;:&#34;point&#34;,&#34;filled&#34;:true,&#34;opacity&#34;:0.55,&#34;tooltip&#34;:true},&#34;encoding&#34;:{&#34;x&#34;:{&#34;field&#34;:&#34;inputs&#34;,&#34;type&#34;:&#34;quantitative&#34;,&#34;scale&#34;:{&#34;type&#34;:&#34;log&#34;},&#34;title&#34;:&#34;List size (inputs, log scale)&#34;},&#34;y&#34;:{&#34;field&#34;:&#34;measurements&#34;,&#34;type&#34;:&#34;quantitative&#34;,&#34;scale&#34;:{&#34;type&#34;:&#34;symlog&#34;},&#34;title&#34;:&#34;Lifetime measurements (symlog, incl. 0)&#34;},&#34;color&#34;:{&#34;condition&#34;:{&#34;test&#34;:&#34;datum.id == 10238 || datum.id == 10328&#34;,&#34;value&#34;:&#34;#ef6c00&#34;},&#34;value&#34;:&#34;#80d1ff&#34;},&#34;size&#34;:{&#34;condition&#34;:{&#34;test&#34;:&#34;datum.id == 10238 || datum.id == 10328&#34;,&#34;value&#34;:120},&#34;value&#34;:45},&#34;tooltip&#34;:[{&#34;field&#34;:&#34;id&#34;,&#34;title&#34;:&#34;link id&#34;},{&#34;field&#34;:&#34;inputs&#34;,&#34;title&#34;:&#34;List size&#34;},{&#34;field&#34;:&#34;measurements&#34;,&#34;title&#34;:&#34;Measurements&#34;},{&#34;field&#34;:&#34;group&#34;,&#34;title&#34;:&#34;Use case&#34;}]}}&lt;/vegachart&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;The two extremes are clearest. UCU&#39;s id &lt;code&gt;10158&lt;/code&gt; packed in 4,635 inputs (the largest on the network) for 734,627 lifetime measurements. DW&#39;s id &lt;code&gt;10004&lt;/code&gt; has only 15 inputs yet 582,480. No matter how big a list gets, without a continuously-running backend to execute it the measurement count stays near 0, which means no observation is happening. What actually lets observation accumulate is whether there is a measurement infrastructure that runs the list every day; how many sites it collects matters far less.&lt;/p&gt; &lt;h2 id=&#34;anoninets-own-coordinates-the-community-is-its-own-controlled-experiment&#34;&gt;anoni.net&#39;s own coordinates: the community is its own controlled experiment&lt;a class=&#34;headerlink&#34; href=&#34;#anoninets-own-coordinates-the-community-is-its-own-controlled-experiment&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The anoni.net community has built two Run v2 links, which happen to demonstrate the two patterns above. We lay both out, not just the better-performing one.&lt;/p&gt; &lt;p&gt;The first, id &lt;code&gt;10238&lt;/code&gt;, was built on 2025-09-15 with 7 inputs (anoni.net plus our own services: im, matrix, form, pad, search, cinny) and has run only 14 measurements in its lifetime. It sits with the majority: built but not run continuously. The second, id &lt;code&gt;10328&lt;/code&gt;, was built on 2026-05-15, expanded to 10 inputs, and this time paired with a self-operated vantage point that runs continuously. In half a month it accumulated 4,659 measurements, ranking 39th of 336, inside the top 12%.&lt;/p&gt; &lt;p&gt;Same community, same draft list of anoni.net&#39;s own services; the only difference between the two links is whether a continuously-running backend stands behind it. We do not dodge the other side either: &lt;code&gt;10328&lt;/code&gt;&#39;s share of the whole network is still near 0%. In such a long-tailed distribution, just running continuously for half a month already beats 297 links, which shows how many people miss the &#34;run it continuously&#34; threshold. The move from &lt;code&gt;10238&lt;/code&gt; to &lt;code&gt;10328&lt;/code&gt; is the record of the community crossing that threshold itself.&lt;/p&gt; &lt;h2 id=&#34;What-it-means-for-communities-and-OONI&#34;&gt;What it means for communities and OONI&lt;a class=&#34;headerlink&#34; href=&#34;#What-it-means-for-communities-and-OONI&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;For communities that want to run local connectivity observation, the census points in a clear direction. Run v2&#39;s value comes from a curated list aimed at a specific phenomenon plus a continuously-running measurement backend; missing either one drops you into the long tail. Opening more links by itself brings no data.&lt;/p&gt; &lt;p&gt;The same pattern applies to many topics. The DW, conexionsegura, and vesinfiltro cases above are three already-running examples: international media reachability, sports-piracy blocking, and local blocking. If you want to start, here are a few directions to consider.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Election observation&lt;/strong&gt;: from before to after an election, continuously track the reachability of news media, candidate, and election-authority websites in a given region, recording any blocking or interference during the voting period, giving election observers and researchers an evidentiary time series.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Real-time observation of major events&lt;/strong&gt;: during protests, strikes, disasters, or shutdowns, continuously test independent media, messaging services (Signal, Telegram), and help-and-information sites, to see in real time which are blocked and when.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Specific communities and issues&lt;/strong&gt;: sites that are often blocked in some regions, such as LGBTQ+, religious minorities, women&#39;s rights, and human-rights organizations, observed longitudinally to accumulate evidence that research can cite.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Circumvention-tool availability&lt;/strong&gt;: track the official sites and download endpoints of VPNs, Tor, bridges, and other circumvention tools, whether they are still reachable in a given place and when blocking begins, which is especially useful for groups helping local people stay connected.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Cross-border media and diaspora communities&lt;/strong&gt;: the overseas media that diaspora communities rely on (for Chinese-language readers, for example RFA or Initium Media), observed for reachability differences across ASNs and changes over time.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Platform-level blocking events&lt;/strong&gt;: when an app or service is suddenly blocked in a country, quickly build a list and observe across ASNs, measuring the scope and the start and end times of the block, turning a single event into analyzable data.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Pick a topic you care about most, list a dozen or so relevant sites, and have one vantage point run it every day; within a few weeks you will have your own reachability time series to analyze. For OONI and data-analysis partners: the aggregation API supports filtering by &lt;code&gt;ooni_run_link_id&lt;/code&gt;, which makes a meta-analysis of the Run v2 ecosystem itself feasible. This report was produced exactly that way. The anoni.net community has written up this approach as a measurement-model proposal in &lt;a href=&#34;https://github.com/anoni-net/docs/issues/78&#34; target=&#34;_blank&#34;&gt;issue #78&lt;/a&gt;; the call for feedback is still open, and we welcome discussion from the community and the OONI team.&lt;/p&gt; &lt;div class=&#34;admonition info&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Summary of the issue #78 measurement model&lt;/p&gt; &lt;p&gt;Issue #78 proposes a civic-internet-watch measurement model that splits the system into two layers.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;List governance&lt;/strong&gt;: the community maintains its own list of civil-society websites, with the single source of truth in the community&#39;s git repo. Inclusion criteria, consultation status, and sensitivity tiers are all decided by the community according to local context, and the git history is itself the record of list governance.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Measurement and data&lt;/strong&gt;: using the standard Web Connectivity test, a Run v2 link generated from the list does the measuring. Volunteer phones and self-operated vantage points consume the same link and carry the same Run Link ID, and all results flow into OONI&#39;s public dataset, queryable via the OONI API and Explorer, citable by researchers, with no data lock-in.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;List governance does not churn the shared Citizen Lab &lt;code&gt;tw.csv&lt;/code&gt;, avoiding the breaks in long-term measurement time series that repeated edits to a shared list would cause. &lt;code&gt;tw.csv&lt;/code&gt; is demoted from a required path to optional, additive feedback: only mature, non-sensitive organizations are fed back additively in exchange for the cross-platform baseline, while sensitive organizations stay in the community-managed list and Run v2 and never enter a public PR.&lt;/p&gt; &lt;/div&gt; &lt;h2 id=&#34;Data-and-caveats&#34;&gt;Data and caveats&lt;a class=&#34;headerlink&#34; href=&#34;#Data-and-caveats&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;This report&#39;s data is a snapshot taken on 2026-06-01, pulled link by link from OONI&#39;s public aggregation API&lt;sup id=&#34;fnref2:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; (filtered by &lt;code&gt;ooni_run_link_id&lt;/code&gt;). Measurement counts keep growing over time, so re-querying later yields slightly higher numbers, while the shape of the concentration stays stable. A few caveats before reading the figures.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Measurement counts come from the aggregation API&#39;s &lt;code&gt;measurement_count&lt;/code&gt;, a point-in-time query as of 2026-06-01 that keeps growing.&lt;/li&gt; &lt;li&gt;The lifetime query spans &lt;code&gt;2024-01-01&lt;/code&gt; to &lt;code&gt;2026-06-30&lt;/code&gt;, covering the whole history of Run v2.&lt;/li&gt; &lt;li&gt;A link with 0 measurements may be a test or draft, and does not necessarily mean &#34;failure&#34;.&lt;/li&gt; &lt;li&gt;A link can be run by probes in any country; the use-case cohorts are inferred from list topic, not an official OONI label.&lt;/li&gt; &lt;li&gt;Full disclosure: the community&#39;s own two links (&lt;code&gt;10238&lt;/code&gt;, &lt;code&gt;10328&lt;/code&gt;) are both included in the analysis and discussion; we did not cherry-pick the better-performing &lt;code&gt;10328&lt;/code&gt;.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&#34;Related-reading&#34;&gt;Related reading&lt;a class=&#34;headerlink&#34; href=&#34;#Related-reading&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;https://ooni.org/support/ooni-run/&#34; target=&#34;_blank&#34;&gt;OONI Run, the official guide&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;https://explorer.ooni.org/&#34; target=&#34;_blank&#34;&gt;OONI Explorer&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;https://ooni.org/data/&#34; target=&#34;_blank&#34;&gt;OONI data and the public dataset&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../05/2026-onionoo-mcp-public/&#34;&gt;onionoo MCP is now public: query the Tor relay network in plain language&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;script src=&#34;https://cdn.jsdelivr.net/npm/vega@5&#34;&gt;&lt;/script&gt; &lt;script src=&#34;https://cdn.jsdelivr.net/npm/vega-lite@5&#34;&gt;&lt;/script&gt; &lt;script src=&#34;https://cdn.jsdelivr.net/npm/vega-embed@6/build/vega-embed.min.js&#34;&gt;&lt;/script&gt; &lt;div class=&#34;footnote&#34;&gt; &lt;hr /&gt; &lt;ol&gt; &lt;li id=&#34;fn:1&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://api.ooni.org/&#34; target=&#34;_blank&#34;&gt;OONI API (aggregation endpoint)&lt;/a&gt; - OONI&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref2:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/06/2026-ooni-run-v2-usage-patterns/</link> <pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/06/2026-ooni-run-v2-usage-patterns/</guid> <enclosure url="https://ipfs.anoni.net/en/assets/images/social/blog/2026/06/2026-ooni-run-v2-usage-patterns.png" type="image/png" length="54955" /> </item> <item> <title>How Unredacted Helps People in Censored Regions Reach the Open Internet</title> <author>anoni.net Community</author> <category>News</category> <category>Tor</category> <category>Translated Article</category> <description>&lt;h1 id=&#34;How-Unredacted-Helps-People-in-Censored-Regions-Reach-the-Open-Internet&#34;&gt;How Unredacted Helps People in Censored Regions Reach the Open Internet&lt;a class=&#34;headerlink&#34; href=&#34;#How-Unredacted-Helps-People-in-Censored-Regions-Reach-the-Open-Internet&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;div class=&#34;admonition info&#34;&gt; &lt;p&gt;This post is based on a guest post on the Tor Blog by Unredacted, with an anoni.net community perspective added for Taiwan and the wider Sinophone region.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;https://blog.torproject.org/keeping-the-doors-open-unredacted/&#34; target=&#34;_blank&#34;&gt;Keeping the doors open, Tor Blog, by Unredacted.org, 2026-05-15&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;p&gt;&lt;img alt=&#34;Keeping the doors open&#34; src=&#34;../../../assets/images/tor.webp&#34; style=&#34;border-radius: 10px;&#34; /&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;https://unredacted.org/&#34; target=&#34;_blank&#34;&gt;Unredacted&lt;/a&gt; is a US-based 501(c)(3) non-profit that runs a network of 300+ servers to keep people in heavily censored places connected to the open internet. Their guest post is part of the Tor Blog&#39;s spotlight series on organizations defending the free internet, and it opens with a line from a user in China: &#34;You have helped many many people to overcome the great firewall.&#34; That kind of message is rare, because people living under censorship usually have no safe channel to send one.&lt;/p&gt; &lt;p&gt;This post highlights what Unredacted builds, and what it looks like from where the anoni.net community sits, in Taiwan.&lt;/p&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;What-Unredacted-runs&#34;&gt;What Unredacted runs&lt;a class=&#34;headerlink&#34; href=&#34;#What-Unredacted-runs&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;strong&gt;Unredacted Door&lt;/strong&gt; is their umbrella for circumvention services: FreeSocks proxies, messaging proxies for Signal and Telegram, Tor bridges, and Snowflake. Over a recent 30-day window these carried nearly 300 TiB for tens of thousands of people routing around censorship. The largest piece, FreeSocks, is built to look unremarkable on the wire, the opposite of a standard VPN that advertises itself through a known endpoint and handshake. FreeSocks v2 leans on &lt;strong&gt;Xray&lt;/strong&gt; to make proxy traffic resemble ordinary HTTPS, paired with an open-source control plane that rotates endpoints automatically when a server gets blocked.&lt;/p&gt; &lt;div class=&#34;admonition note&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;What is Xray&lt;/p&gt; &lt;p&gt;Xray is a traffic-routing and obfuscation tool descended from the V2Ray project, widely used in heavily censored places like China and Iran. Protocols such as VLESS, Trojan, and Reality disguise proxy traffic as ordinary HTTPS / TLS, smoothing over the handshake and packet shapes a VPN gives away at a glance. See the &lt;a href=&#34;https://github.com/XTLS/Xray-core&#34; target=&#34;_blank&#34;&gt;Xray-core project&lt;/a&gt;.&lt;/p&gt; &lt;/div&gt; &lt;p&gt;&lt;strong&gt;GreenWare&lt;/strong&gt; is their effort to run real relay capacity on low-power hardware. Instead of datacenter servers that draw power like a space heater, they run Tor exits on PoE-powered Raspberry Pi 5 boards and a 1U chassis of 20 ComputeBlade modules. As of their writing, all 123 of their Tor exit relays run on this combined setup, drawing roughly 400W in total, about what a few old incandescent bulbs burn. Lower cost and power per exit means more people can take on the hardest, most legally exposed part of running Tor.&lt;/p&gt; &lt;h2 id=&#34;From-the-anoninet-community-a-Taiwan-vantage-point&#34;&gt;From the anoni.net community: a Taiwan vantage point&lt;a class=&#34;headerlink&#34; href=&#34;#From-the-anoninet-community-a-Taiwan-vantage-point&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;anoni.net is an anonymity-network community based in Taiwan, and that is the vantage point these notes are written from. Taiwan&#39;s network environment is relatively free: no Great Firewall, no mandatory VPN registration, no state censorship orders to ISPs. That is exactly why a place like Taiwan, with free outbound connectivity, is well positioned to host Tor relays and bridges and carry a share of the circumvention work. The people this infrastructure serves are in heavily censored places like mainland China and Iran. Other regions with equally free connectivity, like Singapore, Malaysia, and wherever the diaspora lives, are just as suitable as hosting locations.&lt;/p&gt; &lt;p&gt;The anoni.net community tracks the number and distribution of Tor relays in Taiwan through &lt;a href=&#34;https://anoni.net/api/readme&#34; target=&#34;_blank&#34;&gt;Pulse live monitoring&lt;/a&gt;. As of 2026-05-31, Onionoo (the Tor Project&#39;s relay data service) sees 12 running relays inside Taiwan, of which only 3 carry the Exit flag (initramfs, GuruKopi, jerryrelay). Set against Unredacted, a single organization running 123 exit relays and carrying nearly 300 TiB over 30 days, Taiwan&#39;s nationwide exit capacity is under 3% of theirs. We keep this number current on the &lt;a href=&#34;../../../../regional/tor-relay-watcher/&#34;&gt;Tor Relays watch page&lt;/a&gt; and pair it with OONI&#39;s censorship observations for Taiwan and nearby regions.&lt;/p&gt; &lt;p&gt;For the Sinophone world, demand for circumvention has grown since 2020 across Hong Kong, Macau, and Mandarin-speaking communities in Southeast Asia, while circumvention resources written in Chinese remain comparatively scarce. Part of anoni.net&#39;s work is filling that gap with Chinese-language documentation, walking the same path as Unredacted Education.&lt;/p&gt; &lt;h2 id=&#34;From-the-anoninet-community-GreenWares-feasibility-for-free-connectivity-regions&#34;&gt;From the anoni.net community: GreenWare&#39;s feasibility for free-connectivity regions&lt;a class=&#34;headerlink&#34; href=&#34;#From-the-anoninet-community-GreenWares-feasibility-for-free-connectivity-regions&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Unredacted running 123 exit relays on 400W makes for friendly operating economics. At a typical Taiwan commercial electricity rate of roughly NT$3.5–6 per kWh (about US$0.11–0.19), 400W running year-round is about 3,500 kWh, or roughly NT$12,000–21,000 a year (about US$400–700).&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; That is an affordable line item for a campus IT center or a community workspace. Readers elsewhere can convert their local rate; the order of magnitude usually lands in the same range.&lt;/p&gt; &lt;p&gt;The key is designing the hardware to scale. Raspberry Pi 5 is familiar to maker communities everywhere, and PoE+ HATs and PoE switches are easy to buy through ordinary electronics retail. ComputeBlade (the 20-module 1U chassis) has fewer retail channels and is usually obtained through official overseas ordering or a community group buy. An institutional server room suits this better than a home network, for three reasons: a static IP, institutional bandwidth, and someone on site to check the machines.&lt;/p&gt; &lt;p&gt;Campus Tor relays are one of anoni.net&#39;s three focus areas for 2026, and the community is collecting field experience into a setup playbook (&lt;a href=&#34;../../../../community/relay-on-campus/&#34;&gt;Tor relays on campus track&lt;/a&gt;, plus the writeup &lt;a href=&#34;../../../2025/12/ntnu-nz/&#34;&gt;Setting up a Tor relay at NTNU&lt;/a&gt;). Unredacted&#39;s engineering approach with GreenWare is a useful reference point for the next school weighing a deployment: start with a single PoE-powered Raspberry Pi 5 middle relay, and once it runs stably, consider exits and chassis density.&lt;/p&gt; &lt;p&gt;For an individual or a small group, running a Snowflake proxy (a browser extension or Docker) carries almost no electricity cost and is the lowest-barrier entry into circumvention infrastructure (see &lt;a href=&#34;https://snowflake.torproject.org/&#34; target=&#34;_blank&#34;&gt;Snowflake&lt;/a&gt;).&lt;/p&gt; &lt;h2 id=&#34;What-you-can-do&#34;&gt;What you can do&lt;a class=&#34;headerlink&#34; href=&#34;#What-you-can-do&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;If Unredacted&#39;s work makes you want to help people in censored regions reach the open internet, here are a few entry points:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Learn about Unredacted&lt;/strong&gt;: visit &lt;a href=&#34;https://unredacted.org/&#34; target=&#34;_blank&#34;&gt;unredacted.org&lt;/a&gt; for their services and transparency information, then decide whether to support their servers, bandwidth, and staffing through their official channels.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Run Snowflake&lt;/strong&gt;: the lowest-barrier contribution, run from a browser extension or Docker (see &lt;a href=&#34;https://snowflake.torproject.org/&#34; target=&#34;_blank&#34;&gt;Snowflake&lt;/a&gt;).&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Run a Tor relay or bridge&lt;/strong&gt;: this needs a steady network and a little operational effort. The Tor Project&#39;s &lt;a href=&#34;https://community.torproject.org/relay/&#34; target=&#34;_blank&#34;&gt;relay guide&lt;/a&gt; walks through the setup, and the community wrote up &lt;a href=&#34;../../../../community/setup-tor-webtunnel/&#34;&gt;how to set up a Tor WebTunnel bridge&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Campus Tor relays&lt;/strong&gt;: if you work or study at a college or university, start your assessment from the &lt;a href=&#34;../../../../community/relay-on-campus/&#34;&gt;Tor relays on campus track&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Join the anoni.net community discussion&lt;/strong&gt;: trade notes with other members over Matrix; the entry point is on the &lt;a href=&#34;../../../../community/&#34;&gt;community page&lt;/a&gt;, and other contact channels are on the &lt;a href=&#34;../../../../contact/&#34;&gt;contact page&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt; &lt;h2 id=&#34;Related-reading&#34;&gt;Related reading&lt;a class=&#34;headerlink&#34; href=&#34;#Related-reading&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;../../../../basics/internet-freedom/&#34;&gt;Why internet freedom matters&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../05/iran-blackout-webtunnel/&#34;&gt;After Iran&#39;s 80-day blackout, traffic surged through our community&#39;s Tor WebTunnel bridge&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../2025/12/ntnu-nz/&#34;&gt;Setting up a Tor relay at NTNU&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../regional/tor-relay-watcher/&#34;&gt;Tor Relays watch page&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Same series: &lt;a href=&#34;https://blog.torproject.org/Defending-the-right-to-know/&#34; target=&#34;_blank&#34;&gt;Defending the public&#39;s right to know (OONI)&lt;/a&gt;, &lt;a href=&#34;https://blog.torproject.org/preserving-evidence-openarchive-fosters-accountability-media-sovereignty/&#34; target=&#34;_blank&#34;&gt;Preserving evidence: How OpenArchive fosters accountability and media sovereignty&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;div class=&#34;footnote&#34;&gt; &lt;hr /&gt; &lt;ol&gt; &lt;li id=&#34;fn:1&#34;&gt; &lt;p&gt;Taiwan&#39;s 2026 average electricity rate is NT$3.7823 per kWh (frozen for April–September by the 2026-03-27 rate review); the actual per-kWh price varies by customer class and time-of-use tier. Source: &lt;a href=&#34;https://www.taipower.com.tw/2289/2290/46940/&#34; target=&#34;_blank&#34;&gt;Taipower electricity rate schedule&lt;/a&gt;.&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/06/keeping-the-doors-open/</link> <pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/06/keeping-the-doors-open/</guid> <enclosure url="https://ipfs.anoni.net/en/assets/images/tor.webp" type="image/webp" length="13344" /> </item> <item> <title>After Iran&#39;s 80-day blackout, traffic surged through our community&#39;s Tor WebTunnel bridge</title> <author>anoni.net Community</author> <category>Community</category> <category>News</category> <category>Relay</category> <category>Tor</category> <description>&lt;h1 id=&#34;After-Irans-80-day-blackout-traffic-surged-through-our-communitys-Tor-WebTunnel-bridge&#34;&gt;After Iran&#39;s 80-day blackout, traffic surged through our community&#39;s Tor WebTunnel bridge&lt;a class=&#34;headerlink&#34; href=&#34;#After-Irans-80-day-blackout-traffic-surged-through-our-communitys-Tor-WebTunnel-bridge&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h1&gt; &lt;p&gt;For people in Iran, the outside internet barely existed for nearly three months. When connectivity started to come back a few days ago, the Tor WebTunnel bridge our community runs began taking on a wave of traffic. That was Iranians who had found a way around the censorship and reconnected to Tor, getting back onto the wider internet.&lt;/p&gt; &lt;div class=&#34;admonition tip&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Wherever you are, you can help&lt;/p&gt; &lt;p&gt;If you have a VPS (a small cloud server) or a physical machine, plus a domain name, you can run a Tor WebTunnel bridge and give people cut off by censorship a way back onto the open internet. Can&#39;t run a server? Open a browser tab and run &lt;a href=&#34;https://snowflake.torproject.org/&#34; target=&#34;_blank&#34;&gt;Snowflake&lt;/a&gt; instead, it contributes anonymous traffic just the same.&lt;/p&gt; &lt;p&gt;Server specs, legal considerations, and the full setup steps are written up in &lt;a href=&#34;../../../../community/setup-tor-webtunnel/&#34;&gt;&lt;strong&gt;How to set up a Tor WebTunnel bridge&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt; &lt;/div&gt; &lt;!-- more --&gt; &lt;h2 id=&#34;More-than-80-days-offline&#34;&gt;More than 80 days offline&lt;a class=&#34;headerlink&#34; href=&#34;#More-than-80-days-offline&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Starting 28 February 2026, Iran cut its outbound connectivity during military operations. This was the whole country&#39;s link to the outside world going dark, close to nationwide, a different order of magnitude from the usual censorship that blocks individual sites. According to Cloudflare Radar, Iran&#39;s outbound traffic dropped to around 0.3% of its normal peak after the shutdown, effectively zero, and stayed pinned at that low through March and April&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;. It was not until around 26 May that traffic shot back up toward normal levels. From shutdown to reopening, more than 80 days.&lt;/p&gt; &lt;figure&gt; &lt;a href=&#34;https://assets.anoni.net/blog/iran-radar-cf.png&#34; target=&#34;_blank&#34;&gt; &lt;img src=&#34;https://assets.anoni.net/blog/iran-radar-cf.png&#34; alt=&#34;Cloudflare Radar timeline of Iran&#39;s outbound internet traffic: it collapses to near zero after the 28 February 2026 shutdown, stays low through March and April, and shoots back up around 26 May&#34; title=&#34;Iran&#39;s outbound traffic seen by Cloudflare Radar: shut down 28 February, recovering around 26 May&#34; class=&#34;brand-frame&#34;&gt; &lt;/a&gt; &lt;figcaption&gt;Iran&#39;s outbound internet traffic as observed by Cloudflare Radar. It fell to near zero after the 28 February 2026 shutdown, held at that low through March and April, and shot back up around 26 May.&lt;/figcaption&gt; &lt;/figure&gt; &lt;p&gt;During the blackout, Iran was left with only a heavily filtered domestic network. Local services like banking and food delivery kept running, but connections to the outside were almost entirely severed. NetBlocks recorded it as one of the longest nationwide shutdowns in modern history; of the country&#39;s 90 million people, most went nearly three months with little or no access to the global internet&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:3&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt; &lt;h2 id=&#34;Traffic-jumped-once-Iran-reopened&#34;&gt;Traffic jumped once Iran reopened&lt;a class=&#34;headerlink&#34; href=&#34;#Traffic-jumped-once-Iran-reopened&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;The Tor WebTunnel bridge our community runs sits in the background, helping people who cannot reach Tor get around censorship and connect. In the two days after Iran reopened, connections through that node jumped noticeably, with traffic well above its usual level. Seeing the traffic return was a relief, because it meant people were getting back online.&lt;/p&gt; &lt;figure&gt; &lt;a href=&#34;https://assets.anoni.net/blog/iran-blackout-webtunnel-cf.png&#34; target=&#34;_blank&#34;&gt; &lt;img src=&#34;https://assets.anoni.net/blog/iran-blackout-webtunnel-cf.png&#34; alt=&#34;Traffic chart for the community-run Tor WebTunnel bridge, showing connections jumping well above their usual level after Iran reopened&#34; title=&#34;Traffic through the community WebTunnel bridge, jumping after Iran reopened&#34; class=&#34;brand-frame&#34;&gt; &lt;/a&gt; &lt;figcaption&gt;Traffic through the community-run Tor WebTunnel bridge. Connections jumped clearly once Iran reopened.&lt;/figcaption&gt; &lt;/figure&gt; &lt;p&gt;During the blackout, people there couldn&#39;t even reach Tor, because the entire outbound link was down. Once connectivity returned, many rushed to find out what had happened while they were cut off and to reconnect with family they had lost touch with. Journalists needed to get local news out, civil-society groups needed to coordinate with the outside, and all of that means reaching sites and services that have long been blocked. Getting around the censorship usually means Tor, and where Tor itself is blocked, it means bridges run by volunteers around the world. When people connected to Tor through a bridge, some of those connections came through the node our community hosts (the community also runs a node in Singapore, which didn&#39;t receive traffic this time).&lt;/p&gt; &lt;p&gt;Looking at the source networks behind the connections to this bridge, the top five are all major Iranian carriers, confirming the traffic really is coming from ordinary users on the ground there.&lt;/p&gt; &lt;figure&gt; &lt;a href=&#34;https://assets.anoni.net/blog/iran-asn.png&#34; target=&#34;_blank&#34;&gt; &lt;img src=&#34;https://assets.anoni.net/blog/iran-asn.png&#34; alt=&#34;Cloudflare dashboard source-ASN list: the top five source networks for the WebTunnel bridge are all Iranian carriers, led by MCI Mobile Communication at 144.7 GB, then TCI, Irancell, Aria Shatel, and Pasargad&#34; title=&#34;Source ASNs for the WebTunnel bridge: the top five are all major Iranian carriers&#34; class=&#34;brand-frame&#34;&gt; &lt;/a&gt; &lt;figcaption&gt;Source ASNs for connections to the WebTunnel bridge (Cloudflare dashboard). The top five are all major Iranian carriers: Mobile Communication Company of Iran (MCI), Iran Telecommunication Company (TCI), Irancell, Aria Shatel, and Pasargad, confirming the traffic comes from users inside Iran.&lt;/figcaption&gt; &lt;/figure&gt; &lt;p&gt;The traffic didn&#39;t fade after those first two days. Connections have kept coming through this bridge since. According to monitors like NetBlocks, Iran&#39;s recovery is incomplete: mobile networks were still down for a stretch while home Wi-Fi came back first, blocks on major social platforms remain in place, and in some cases are tighter than before the shutdown, so reaching ordinary sites abroad often still requires tools like a VPN&lt;sup id=&#34;fnref2:3&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:3&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:4&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;. For many people, even with the internet &#34;reopened,&#34; reaching the outside still means routing around a lot of blocking, and our WebTunnel bridge is one of those ways around.&lt;/p&gt; &lt;p&gt;With traffic still flowing through it day after day, a handful of bridges is clearly not enough. So we&#39;d like to invite more people who are able to run bridges, in more places, so that more people who need to reach the outside can get through.&lt;/p&gt; &lt;div class=&#34;admonition info&#34;&gt; &lt;p class=&#34;admonition-title&#34;&gt;Need a connection? Write to us&lt;/p&gt; &lt;p&gt;The community currently runs one Tor WebTunnel bridge each in Taiwan and Singapore. To keep censors from simply blocking the addresses, these bridge lines aren&#39;t posted publicly. If you or someone you know needs one, you&#39;re welcome to email &lt;a href=&#34;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#119;&amp;#104;&amp;#105;&amp;#115;&amp;#112;&amp;#101;&amp;#114;&amp;#64;&amp;#97;&amp;#110;&amp;#111;&amp;#110;&amp;#105;&amp;#46;&amp;#110;&amp;#101;&amp;#116;&#34;&gt;&amp;#119;&amp;#104;&amp;#105;&amp;#115;&amp;#112;&amp;#101;&amp;#114;&amp;#64;&amp;#97;&amp;#110;&amp;#111;&amp;#110;&amp;#105;&amp;#46;&amp;#110;&amp;#101;&amp;#116;&lt;/a&gt; to request it (other ways to reach us are on the &lt;a href=&#34;../../../../contact/&#34;&gt;contact page&lt;/a&gt;).&lt;/p&gt; &lt;/div&gt; &lt;h2 id=&#34;Why-WebTunnel&#34;&gt;Why WebTunnel&lt;a class=&#34;headerlink&#34; href=&#34;#Why-WebTunnel&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;figure&gt; &lt;a href=&#34;https://assets.anoni.net/blog/iran-webtunnel.png&#34; target=&#34;_blank&#34;&gt; &lt;img src=&#34;https://assets.anoni.net/blog/iran-webtunnel.png&#34; alt=&#34;Diagram of WebTunnel: Tor traffic wrapped inside an ordinary HTTPS connection so it looks like normal web browsing and slips past censorship&#34; title=&#34;WebTunnel disguises Tor traffic as an ordinary HTTPS connection&#34; class=&#34;brand-frame&#34;&gt; &lt;/a&gt; &lt;figcaption&gt;WebTunnel wraps Tor traffic inside an ordinary HTTPS connection, so to a censor it looks like normal web browsing (illustration).&lt;/figcaption&gt; &lt;/figure&gt; &lt;p&gt;Tor has several kinds of bridges, and they differ in how hard they are for a censor to block.&lt;/p&gt; &lt;p&gt;&lt;a href=&#34;https://snowflake.torproject.org/&#34; target=&#34;_blank&#34;&gt;Snowflake&lt;/a&gt; has the lowest barrier: open a browser tab and you&#39;re helping people connect, no server required, anyone can start in seconds, and it&#39;s useful in most censored places. It runs over WebRTC (the real-time connection technology browsers use for video calls), and that traffic doesn&#39;t quite look like normal web browsing, so in the most aggressively filtered environments it can be easier to spot. Another bridge type, obfs4, turns the traffic into a blob of patternless noise, but censorship systems using deep packet inspection (DPI, which analyzes connections one by one to decide what to allow) can still flag it as not-normal browsing and drop it.&lt;/p&gt; &lt;p&gt;WebTunnel takes a different approach: it wraps Tor traffic inside a genuine HTTPS connection (the kind with the padlock and the &lt;code&gt;https&lt;/code&gt; prefix in your browser&#39;s address bar). To a censor, connecting to a WebTunnel bridge looks no different from visiting an ordinary website. To block it, they&#39;d have to block large numbers of legitimate HTTPS sites along with it, a cost that censors usually won&#39;t pay. That makes WebTunnel one of the strongest bridges against this kind of filtering, and it&#39;s already in real use in China and Russia.&lt;/p&gt; &lt;p&gt;Iran&#39;s case this time was more extreme: the entire outbound link was severed, and during a full blackout no bridge can function at all. Bridges only become useful again once connectivity returns and the country is back to its everyday filtering. Iran&#39;s filtering is also trickier than China&#39;s or Russia&#39;s, since it uses a protocol allowlist that only lets specific kinds of connections through, and WebTunnel wasn&#39;t easy to run there at first&lt;sup id=&#34;fnref:5&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:5&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt; &lt;p&gt;As Tor moved to distributing bridges over Telegram and volunteers grew the number of nodes, from 2025 onward Tor has observed more and more Iranian users successfully reaching Tor over WebTunnel&lt;sup id=&#34;fnref:6&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:6&#34;&gt;6&lt;/a&gt;&lt;/sup&gt;, which lines up with what our community node saw after the reopening. Over the same period, Snowflake has been especially useful in Iran, with Tor describing it as one of the best connection tools available there&lt;sup id=&#34;fnref:7&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:7&#34;&gt;7&lt;/a&gt;&lt;/sup&gt;. For internet freedom in Iran, both WebTunnel and Snowflake are working routes, and both welcome more people to join in.&lt;/p&gt; &lt;h2 id=&#34;Run-one-from-your-region&#34;&gt;Run one from your region&lt;a class=&#34;headerlink&#34; href=&#34;#Run-one-from-your-region&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Anywhere with free, well-connected outbound access is a good place to host a bridge. Censors keep blocking the bridge IPs they already know about, so the more WebTunnel bridges there are spread across different countries and different network providers, the more entry points people on the ground can use. Every additional node, in one more country, is one more way in that hasn&#39;t been blocked yet.&lt;/p&gt; &lt;p&gt;The barrier really isn&#39;t high:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;A small VPS with 512MB to 1GB of memory is enough to run one, with lower cost and less upkeep than a &lt;a href=&#34;https://community.torproject.org/relay/&#34; target=&#34;_blank&#34;&gt;Tor relay&lt;/a&gt;.&lt;/li&gt; &lt;li&gt;You need a domain (or subdomain) and a TLS certificate (the certificate that lets a site use a secure &lt;code&gt;https&lt;/code&gt; connection), which you can get for free from Let&#39;s Encrypt.&lt;/li&gt; &lt;li&gt;The legal risk is low. A bridge is only a relay point; it never connects directly to the website a user ultimately visits. The destination site sees an exit from the Tor network, not your server, which makes it far safer than running a Tor exit node.&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;We&#39;ve written up the whole process, from preparing a domain and getting a certificate to standing the bridge up, plus the firewall, cover page, monitoring, and ongoing operations:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;span class=&#34;twemoji&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34;&gt;&lt;path d=&#34;M12 2C6.5 2 2 6.5 2 12v10h20V12c0-5.5-4.5-10-10-10m3.47 5.11A5.95 5.95 0 0 0 13 6.09V4.07c1.46.18 2.79.76 3.9 1.62zm-6.94 0L7.1 5.69A7.94 7.94 0 0 1 11 4.07v2.02c-.91.15-1.75.51-2.47 1.02M5.69 7.1l1.42 1.43A5.95 5.95 0 0 0 6.09 11H4.07c.18-1.46.76-2.79 1.62-3.9M6 13v2.5H4V13zm-2 7v-2.5h2V20zm12 0H8v-8c0-2.21 1.79-4 4-4s4 1.79 4 4zm.89-11.47 1.42-1.43a7.94 7.94 0 0 1 1.62 3.9h-2.02a5.95 5.95 0 0 0-1.02-2.47M18 13h2v2.5h-2zm0 7v-2.5h2V20z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt; &lt;a href=&#34;../../../../community/setup-tor-webtunnel/&#34;&gt;&lt;strong&gt;How to set up a Tor WebTunnel bridge&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;If running a WebTunnel bridge isn&#39;t an option for you, you can still open a browser and run &lt;a href=&#34;https://snowflake.torproject.org/&#34; target=&#34;_blank&#34;&gt;Snowflake&lt;/a&gt;: leave the tab open and it contributes anonymous traffic, helping people who can&#39;t reach Tor get around censorship. When you&#39;re ready to commit a server, come back and set up a WebTunnel.&lt;/p&gt; &lt;h2 id=&#34;Not-just-Iran&#34;&gt;Not just Iran&lt;a class=&#34;headerlink&#34; href=&#34;#Not-just-Iran&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Iran&#39;s shutdown was extreme, but censorship and shutdowns aren&#39;t a distant exception. Myanmar, Belarus, and China sustain heavy filtering year-round&lt;sup id=&#34;fnref:8&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:8&#34;&gt;8&lt;/a&gt;&lt;/sup&gt;&lt;sup id=&#34;fnref:9&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:9&#34;&gt;9&lt;/a&gt;&lt;/sup&gt;&lt;sup id=&#34;fnref:10&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:10&#34;&gt;10&lt;/a&gt;&lt;/sup&gt;, and every regional conflict, election, or protest tends to come with a tightening of the network. Hong Kong has gone from a fairly open internet to seeing national-security-law site blocking in recent years&lt;sup id=&#34;fnref:11&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:11&#34;&gt;11&lt;/a&gt;&lt;/sup&gt;. Earthquakes and undersea-cable cuts can disrupt a region&#39;s outbound connectivity too&lt;sup id=&#34;fnref:12&#34;&gt;&lt;a class=&#34;footnote-ref&#34; href=&#34;#fn:12&#34;&gt;12&lt;/a&gt;&lt;/sup&gt;. Helping people elsewhere get around censorship today is also how a community builds the experience of running and maintaining anonymity infrastructure for when it&#39;s needed closer to home.&lt;/p&gt; &lt;p&gt;One node doesn&#39;t change much, but many nodes spread across the world add up to a network a censor can&#39;t pull down all at once. If you have a spare VPS or physical machine, a domain, and a little time, we&#39;d love for you to help stand up more bridges, wherever you are.&lt;/p&gt; &lt;p&gt;Community discussion happens on &lt;a href=&#34;../../../../contact/&#34;&gt;Matrix&lt;/a&gt; (home server &lt;code&gt;im.anoni.net&lt;/code&gt;); how to join and other ways to reach us are on that page.&lt;/p&gt; &lt;h2 id=&#34;Related-reading&#34;&gt;Related reading&lt;a class=&#34;headerlink&#34; href=&#34;#Related-reading&#34; title=&#34;Permanent link&#34;&gt;&amp;para;&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&#34;../../../../community/setup-tor-webtunnel/&#34;&gt;How to set up a Tor WebTunnel bridge&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;https://snowflake.torproject.org/&#34; target=&#34;_blank&#34;&gt;Snowflake (Tor Project)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;https://community.torproject.org/relay/&#34; target=&#34;_blank&#34;&gt;Set up a Tor relay (Tor Project)&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../basics/internet-freedom/&#34;&gt;Why internet freedom matters&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&#34;../../../../regional/tor-relay-watcher/&#34;&gt;Tor relay observation in Taiwan&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;div class=&#34;footnote&#34;&gt; &lt;hr /&gt; &lt;ol&gt; &lt;li id=&#34;fn:1&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://radar.cloudflare.com/ir&#34; target=&#34;_blank&#34;&gt;Cloudflare Radar — Iran&lt;/a&gt; - Cloudflare Radar&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:1&#34; title=&#34;Jump back to footnote 1 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:2&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://x.com/CloudflareRadar/status/2027709437981450502&#34; target=&#34;_blank&#34;&gt;Internet shutdown in Iran amid military actions&lt;/a&gt; - Cloudflare Radar&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:2&#34; title=&#34;Jump back to footnote 2 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:3&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.thenationalnews.com/news/mena/2026/05/27/internet-restored-to-tens-of-millions-in-iran-after-three-month-blackout/&#34; target=&#34;_blank&#34;&gt;Internet restored to tens of millions in Iran after three-month blackout&lt;/a&gt; - The National&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:3&#34; title=&#34;Jump back to footnote 3 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref2:3&#34; title=&#34;Jump back to footnote 3 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:4&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.upi.com/Top_News/World-News/2026/05/26/iran-internet-restored-88-days/9231779817270/&#34; target=&#34;_blank&#34;&gt;Iran&#39;s Internet restored for some after 88 days of blackout&lt;/a&gt; - UPI&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:4&#34; title=&#34;Jump back to footnote 4 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:5&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://blog.torproject.org/introducing-webtunnel-evading-censorship-by-hiding-in-plain-sight/&#34; target=&#34;_blank&#34;&gt;Hiding in plain sight: Introducing WebTunnel&lt;/a&gt; - The Tor Project&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:5&#34; title=&#34;Jump back to footnote 5 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:6&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://blog.torproject.org/staying-ahead-of-censors-2025/&#34; target=&#34;_blank&#34;&gt;Staying ahead of censors in 2025: What we&#39;ve learned from fighting censorship in Iran and Russia&lt;/a&gt; - The Tor Project&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:6&#34; title=&#34;Jump back to footnote 6 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:7&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.techradar.com/vpn/vpn-privacy-security/iranians-are-resilient-they-always-find-ways-to-speak-how-iranians-are-overcoming-unprecedented-internet-censorship&#34; target=&#34;_blank&#34;&gt;How Iranians are overcoming unprecedented internet censorship&lt;/a&gt; - TechRadar&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:7&#34; title=&#34;Jump back to footnote 7 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:8&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.accessnow.org/press-release/update-internet-access-censorship-myanmar/&#34; target=&#34;_blank&#34;&gt;Update: internet access, censorship, and the Myanmar coup&lt;/a&gt; - Access Now&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:8&#34; title=&#34;Jump back to footnote 8 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:9&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://netblocks.org/reports/internet-disruption-hits-belarus-on-election-day-YAE2jKB3&#34; target=&#34;_blank&#34;&gt;Internet disruption hits Belarus on election day&lt;/a&gt; - NetBlocks&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:9&#34; title=&#34;Jump back to footnote 9 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:10&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://freedomhouse.org/country/china/freedom-net/2025&#34; target=&#34;_blank&#34;&gt;China: Freedom on the Net 2025 Country Report&lt;/a&gt; - Freedom House&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:10&#34; title=&#34;Jump back to footnote 10 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:11&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://www.rfa.org/english/news/china/blocked-01082021140451.html&#34; target=&#34;_blank&#34;&gt;Hong Kong Website Blocked, Sparking Fears Over Great Firewall&lt;/a&gt; - Radio Free Asia&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:11&#34; title=&#34;Jump back to footnote 11 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;li id=&#34;fn:12&#34;&gt; &lt;p&gt;&lt;a href=&#34;https://thediplomat.com/2023/04/after-chinese-vessels-cut-matsu-internet-cables-taiwan-shows-its-communications-resilience/&#34; target=&#34;_blank&#34;&gt;After Chinese Vessels Cut Matsu Internet Cables, Taiwan Seeks to Improve Its Communications Resilience&lt;/a&gt; - The Diplomat&amp;#160;&lt;a class=&#34;footnote-backref&#34; href=&#34;#fnref:12&#34; title=&#34;Jump back to footnote 12 in the text&#34;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ol&gt; &lt;/div&gt;</description> <link>https://ipfs.anoni.net/en/blog/2026/05/iran-blackout-webtunnel/</link> <pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate> <source url="https://ipfs.anoni.net/en/feed_rss_created.xml">anoni.net Docs — Sinophone Asia-Pacific Networked Freedom Observatory</source><guid isPermaLink="true">https://ipfs.anoni.net/en/blog/2026/05/iran-blackout-webtunnel/</guid> <enclosure url="https://ipfs.anoni.net/en/assets/images/tor.webp" type="image/webp" length="13344" /> </item> </channel> </rss>