10 interesting stories served every morning and every evening.

Google Broke reCAPTCHA for De-Googled Android Users

reclaimthenet.org

Google has tied its next-gen­er­a­tion re­CAPTCHA sys­tem to Google Play Services on Android, mean­ing any­one run­ning a de-Googled phone will au­to­mat­i­cally fail ver­i­fi­ca­tion when the sys­tem de­cides to chal­lenge them.

The re­quire­ment forces Android users to run Google’s pro­pri­etary app frame­work ver­sion 25.41.30 or higher just to prove they’re hu­man.

When re­CAPTCHA flags what it con­sid­ers sus­pi­cious ac­tiv­ity, it aban­dons the old im­age puz­zles and de­mands you scan a QR code. That scan re­quires Play Services run­ning in the back­ground, com­mu­ni­cat­ing with Google’s servers. If you’re us­ing GrapheneOS or any other cus­tom ROM that strips out Google’s soft­ware, the ver­i­fi­ca­tion fails.

Google an­nounced the broader sys­tem, Google Cloud Fraud Defense, at Cloud Next on April 23, pitch­ing it as a trust plat­form de­signed to han­dle au­tonomous AI agents and tra­di­tional bots alike. What Google did­n’t em­pha­size was the part where prov­ing you’re hu­man now re­quires sub­mit­ting to its pro­pri­etary sur­veil­lance.

Reclaim Your Digital Freedom.

Get un­fil­tered cov­er­age of sur­veil­lance, cen­sor­ship, and the tech­nol­ogy threat­en­ing your civil lib­er­ties.

This was­n’t sud­den, ei­ther. An Internet Archive snap­shot from October 2025 shows the same sup­port page al­ready list­ing a Play Services re­quire­ment at ver­sion 25.39.30. Google built this de­pen­dency qui­etly for at least seven months be­fore a Reddit user on the de­google sub­red­dit flagged it, with re­port­ing from PiunikaWeb and Android Authority bring­ing wider at­ten­tion.

The iOS com­par­i­son is re­veal­ing be­cause Apple de­vices run­ning iOS 16.4 or later com­plete the same ver­i­fi­ca­tion with­out in­stalling any ad­di­tional apps. Google did­n’t de­mand iPhone users in­stall Google soft­ware to pass the test. Only Android users who refuse Play Services get locked out. The asym­me­try re­veals what this is re­ally about: not se­cu­rity, but ecosys­tem con­trol.

re­CAPTCHA sits in front of mil­lions of web­sites. When Google ties ver­i­fi­ca­tion to Play Services, it es­tab­lishes a prece­dent where ac­cess­ing ba­sic web con­tent re­quires run­ning Google’s soft­ware and trans­mit­ting data to Google’s servers.

People run­ning de-Googled phones chose those se­tups be­cause they read the data prac­tices, un­der­stood what Play Services phones home about, and de­cided they did­n’t con­sent. Google’s new sys­tem pun­ishes that de­ci­sion by treat­ing the ab­sence of its pro­pri­etary soft­ware as sus­pi­cious by de­fault.

Web de­vel­op­ers adopt­ing this re­CAPTCHA should un­der­stand what they’re choos­ing. Every site that im­ple­ments it tells de-Googled Android users they’re not wel­come. That’s a small au­di­ence to­day. It’s also the au­di­ence most likely to care about how a web­site treats their data, and the least likely to ca­pit­u­late.

David Attenborough: King and Queen lead tributes for 100th birthday

www.bbc.com

1 day ago

Steven McIntoshand

Helen Bushby

Getty Images

King Charles III and Queen Camilla are among well-wish­ers to share a birth­day mes­sage cel­e­brat­ing Sir David Attenborough turn­ing 100.

The royal cou­ple also shared pho­tographs of Sir David, in­clud­ing one of him with a young Prince Charles and Princess Anne in 1958, in which he is in­tro­duc­ing them to Cocky the cock­a­too, from his BBC Zoo Quest TV se­ries.

The vet­eran broad­caster and en­vi­ron­men­tal­ist has said he was completely over­whelmed” by mes­sages he had re­ceived ahead of his big day, which in­cludes a spe­cial con­cert on Friday evening at the Royal Albert Hall in London.

PA Media

Sir David added: I sim­ply can’t re­ply to each of you sep­a­rately, but I’d like to thank you all most sin­cerely for your kind mes­sages, and wish those of you who have planned your own lo­cal events: have a very happy day.”

In a video for the Earthshot Prize, which cel­e­brates cli­mate lead­er­ship and in­no­va­tion, the Prince of Wales said: Happy 100th David, can­not be­lieve it’s your 100th birth­day.”

He went on to thank him for all his sup­port, while not­ing how everything you do con­tin­ues to in­spire me”.

His most sig­nif­i­cant con­tri­bu­tion has been the sys­tem­atic dis­man­tling of the no­tion that cli­mate is­sues are hap­pen­ing somewhere else’,” he said.

Young peo­ple con­tinue to lis­ten to him not just for the spec­ta­cle of na­ture, but for a sense of con­ti­nu­ity in an un­sta­ble world.”

Former England men’s foot­ball cap­tain Sir David Beckham sim­ply called the broad­caster our National Treasure”, while ac­tress and ac­tivist Joanna Lumley wished the broad­caster a happy birth­day with a lit­tle help from the peo­ple of Stroud, Gloucestershire, in a video mes­sage.

TV nat­u­ral­ist and pre­sen­ter Chris Packham wrote in The Big Issue: I don’t think that any per­son in the en­tire his­tory of our species has made such a sig­nif­i­cant con­tri­bu­tion to en­gag­ing peo­ple and de­vel­op­ing a love for all of life on Earth as David Attenborough.”

Meanwhile, the World Wide Fund for Nature (WWF) shared a birth­day trib­ute video, voiced by ac­tors Dame Judi Dench, Morgan Freeman, Miranda Richardson, Asa Butterfield, Sam Heughan and Iwan Rheon, along with for­mer Spice Girl Geri Halliwell‑Horner and wildlife pre­sen­ter Liz Bonnin.

It is a spo­ken-word ver­sion of the Louis Armstrong clas­sic song, What a Wonderful World, fea­tur­ing footage of var­i­ous an­i­mals.

Oscar-winning com­poser Hans Zimmer also paid trib­ute, say­ing that de­spite his ex­ten­sive fea­ture film suc­cess, none of it is as im­por­tant as work­ing for David Attenborough be­cause that is re­ally about the ex­is­tence of our planet.”

His abil­ity to com­mu­ni­cate his own en­thu­si­asms are very pre­cious and he’s brought such joy to so many peo­ple,” he said. And I think, along with a lot of peo­ple, my favourite tele­vi­sion pro­grammes are prob­a­bly nat­ural his­tory.”

Friday evening’s show at the Royal Albert Hall is the cli­max of a week of spe­cial events and broad­cast pro­gram­ming in ho­n­our of Sir David, who was born in 1926 and joined the BBC in 1952.

Presenter Kirsty Young will host the spe­cial 90-minute con­cert cel­e­brat­ing Sir David’s life, which will air on BBC One and iPlayer from 20:30 BST.

Special guests in­clud­ing Sir Michael Palin, Steve Backshall, Liz Bonnin and Chris Packham will ap­pear at the event to re­flect on Sir David’s life and legacy.

Ahead of the con­cert, Young said: Sir David’s gift to the world has been a life spent ex­quis­itely re­veal­ing Earth’s won­ders to us all.

The very least he de­serves is a big 100th birth­day bash at the Royal Albert Hall. I’m very happy in­deed, as the host, to be able to in­vite every­one to the party.”

The event will re­call some of the most mem­o­rable wildlife mo­ments from Sir David’s ca­reer and the BBCs nat­ural his­tory archive.

Live mu­sic from the BBC Concert Orchestra will in­clude pieces as­so­ci­ated with his most fa­mous tele­vi­sion se­ries, in­clud­ing the snakes and igua­nas chase from Planet Earth II, and the wave-wash­ing or­cas se­quence from Frozen Planet II.

The con­cert will also fea­ture per­for­mances from Bastille front­man Dan Smith, who will join the or­ches­tra for a ren­di­tion of the band’s hit Pompeii, which fea­tured in Planet Earth III.

Elsewhere, Sigur Rós will per­form Hoppípolla, which was used in the pro­mo­tion of Planet Earth and Planet Earth II, while other mu­si­cal guests will in­clude singer Sienna Spiro and harpist Francisco Yglesia.

The BBC has been cel­e­brat­ing Sir David’s cen­te­nary with spe­cial pro­gram­ming through­out the week.

The BBCs chief con­tent of­fi­cer Kate Philips said Sir David’s 100th birth­day marked an extraordinary” mo­ment, de­scrib­ing him as a truly re­mark­able in­di­vid­ual”.

Sir David was born in west London on 8 May 1926, and has also fronted pi­o­neer­ing nat­ural his­tory se­ries in­clud­ing his Life Collection, The Trials of Life and The Blue Planet.

He has two chil­dren with wife Jane, who died in 1997. His brother Richard was an Oscar-winning ac­tor and di­rec­tor, and died in 2014.

On Thursday, the Natural History Museum paid trib­ute to Sir David by nam­ing a species of par­a­sitic wasp af­ter him.

The Attenboroughnculus tau is na­tive to the Patagonian lakes of Chile, and a spec­i­men was re­cently found in the mu­se­um’s col­lec­tion, four decades af­ter it was col­lected.

Other species to have been named af­ter the broad­caster in the past in­clude a wild­flower, but­ter­fly, grasshop­per, di­nosaur and ghost shrimp.

Get our flag­ship newslet­ter with all the head­lines you need to start the day. Sign up here.

A recent experience with ChatGPT 5.5 Pro

gowers.wordpress.com

We are all hav­ing to keep re­vis­ing up­wards our as­sess­ments of the math­e­mat­i­cal ca­pa­bil­i­ties of large lan­guage mod­els. I have just made a fairly large re­vi­sion as a re­sult of ChatGPT 5.5 Pro, to which I am for­tu­nate to have been given ac­cess, pro­duc­ing a piece of PhD-level re­search in an hour or so, with no se­ri­ous math­e­mat­i­cal in­put from me.

The back­ground is that, as has been widely re­ported, LLMs are now ca­pa­ble of solv­ing re­search-level prob­lems, and have man­aged to solve sev­eral of the Erdős prob­lems listed on Thomas Bloom’s won­der­ful web­site. Initially it was pos­si­ble to laugh this off: many of the solutions” con­sisted in the LLM notic­ing that the prob­lem had an an­swer sit­ting there in the lit­er­a­ture al­ready, or could be very eas­ily de­duced from known re­sults. But lit­tle by lit­tle the laugh­ter has be­come qui­eter. The mes­sage I am get­ting from what other math­e­mati­cians more in­volved in this en­ter­prise have been say­ing is that LLMs have got to the point where if a prob­lem has an easy ar­gu­ment that for one rea­son or an­other hu­man math­e­mati­cians have missed (that rea­son some­times, but not al­ways, be­ing that the prob­lem has not re­ceived all that much at­ten­tion), then there is a good chance that the LLMs will spot it. Conversely, for prob­lems where one’s ini­tial re­ac­tion is to be im­pressed that an LLM has come up with a clever ar­gu­ment, it of­ten turns out on closer in­spec­tion that there are prece­dents for those ar­gu­ments, so it is still just about pos­si­ble to com­fort one­self that LLMs are merely putting to­gether ex­ist­ing knowl­edge rather than hav­ing truly orig­i­nal ideas. How much of a com­fort that is I will not dis­cuss here, other than to note that quite a lot of per­fectly good hu­man math­e­mat­ics con­sists in putting to­gether ex­ist­ing knowl­edge and proof tech­niques.

I de­cided to try some­thing a lit­tle bit dif­fer­ent. At least in com­bi­na­torics, there are quite a lot of pa­pers that in­ves­ti­gate some rel­a­tively new com­bi­na­to­r­ial pa­ra­me­ter that leads nat­u­rally to sev­eral ques­tions. Because of the sheer num­ber of ques­tions one can ask, the au­thors of such pa­pers will not nec­es­sar­ily have the time to spend a week or two think­ing about each one, so there is a de­cent prob­a­bil­ity that at least some of them will not be all that hard. This makes such pa­pers very valu­able as sources of prob­lems for math­e­mati­cians who are do­ing re­search for the first time and who will be hugely en­cour­aged by solv­ing a prob­lem that was of­fi­cially open. Or rather, it used to make them valu­able in that way, but it looks as though the bar has just been raised. It is no longer enough that some­body asks a prob­lem: it needs to be hard enough for an LLM not to be able to solve it.

In any case, a lit­tle over a week ago I de­cided to see how ChatGPT 5.5 Pro would fare with a se­lec­tion of prob­lems asked by Mel Nathanson in a pa­per en­ti­tled Diversity, Equity and Inclusion for Problems in Additive Number Theory. Nathanson has a re­mark­able record of be­ing in­ter­ested in prob­lems and the­o­rems that have later be­come ex­tremely fash­ion­able, which has led him to write a se­ries of ex­tremely well timed and there­fore highly in­flu­en­tial text­books. In this pa­per, he ar­gues for the in­ter­est of sev­eral other prob­lems, some of which I will now briefly de­scribe.

If is a set of in­te­gers, then its sum­set is de­fined to be . For a pos­i­tive in­te­ger , the –fold sum­set, de­noted , is de­fined to be . Nathanson is in­ter­ested in the pos­si­ble sizes of given the size of . To that end one can de­fine a set to be the set of all such that there ex­ists a set with and .

An ob­vi­ous first ques­tion to ask is sim­ply What is ?” When , the an­swer is the set of all in­te­gers be­tween and . It is an easy ex­er­cise to show that if , then , so this re­sult is say­ing that all sizes in be­tween can be re­al­ized. However, it is not true in gen­eral that can take every size be­tween its min­i­mum and max­i­mum pos­si­bil­i­ties, and we do not cur­rently have a com­plete de­scrip­tion of .

Another nat­ural ques­tion one can ask, and this is where ChatGPT came in, is how large a di­am­e­ter you need if you want a set with and hav­ing pre­scribed sizes. (Of course, the size of must be­long to .) Nathanson showed that for every there is a sub­set of with and , and asked whether the bound could be im­proved. ChatGPT 5.5 Pro thought for 17 min­utes and 5 sec­onds be­fore pro­vid­ing a con­struc­tion that yielded a qua­dratic up­per bound, which is clearly best pos­si­ble. It wrote up its ar­gu­ment in a slightly ram­bling LLM-ish style, so I asked if it could write the ar­gu­ment up as a LaTeX file in the style of a typ­i­cal math­e­mat­i­cal preprint. After two min­utes and 23 sec­onds it gave me that, af­ter which I spent some time con­vinc­ing my­self that the ar­gu­ment was cor­rect.

The ba­sic idea be­hind both Nathanson’s ar­gu­ment and ChatGPT’s was that in or­der to ob­tain a set of a given size with a sum­set of a given size, it is use­ful to build it out of a Sidon set, which means a set with sum­set of max­i­mal size (that is not quite the usual de­f­i­n­i­tion but it is the sim­plest to use in this dis­cus­sion), and an arith­metic pro­gres­sion. Also, for a bit of fine tun­ing one can take an ad­di­tional point near the arith­metic pro­gres­sion. Then if one plays around with the var­i­ous pa­ra­me­ters, one finds that one can ob­tain sets of all the sizes one wants. Nathanson does­n’t ex­press his ar­gu­ment this way (it is Theorem 5 of this pa­per), in­stead giv­ing an in­duc­tive ar­gu­ment, but I think, with­out hav­ing checked too care­fully, that if one un­rav­els his ar­gu­ment, one finds that ef­fec­tively that is what he ends up with, and the Sidon set in ques­tion con­sists of pow­ers of 2. ChatGPT ob­tained its im­prove­ment by sim­ply us­ing a more ef­fi­cient Sidon set — it is well known that one can find Sidon sets of qua­dratic di­am­e­ter. (One might ask why Nathanson did­n’t do that in the first place: I think it is be­cause the ob­vi­ous idea of us­ing a more ef­fi­cient Sidon set be­comes ob­vi­ous only af­ter one has re­described his in­duc­tive con­struc­tion. Is that what ChatGPT did? It is very hard to say.)

Next, I asked ChatGPT to see whether it could do the same for a closely re­lated ques­tion, where in­stead of look­ing at the size of the sum­set, one looks at the size of the re­stricted sum­set, which is de­fined to be . Unsurprisingly, it was able to do that with no trou­ble at all. I got it to write both re­sults up in a sin­gle note, to avoid a cer­tain amount of du­pli­ca­tion. If you are cu­ri­ous, you can see the note here.

I then asked what it could do for gen­eral . I was much less op­ti­mistic that it would man­age to do any­thing in­ter­est­ing, be­cause the proof for makes fun­da­men­tal use of the fact (due to Erdős and Szemerédi) that we know ex­actly which sizes we need to cre­ate. If we don’t know what the set is, then it seems that we are forced to start with a hy­po­thet­i­cal set with and and build out of it a set of small di­am­e­ter with the same prop­erty. As it hap­pens, I still don’t know how to get round that dif­fi­culty (I’m men­tion­ing that just to demon­strate that my math­e­mat­i­cal in­put was zero, and I did­n’t even do any­thing clever with the prompts), but Nathanson men­tioned in his pa­per a re­mark­able pa­per of Isaac Rajagopal, a stu­dent at MIT, who must have got round the dif­fi­culty some­how, be­cause he had man­aged to prove an ex­po­nen­tial de­pen­dence of on for each fixed .

I’ll leave the pre­vi­ous para­graph there, but Isaac has sub­se­quently ex­plained to me that that is­n’t re­ally the dif­fi­culty. His ar­gu­ment gives a com­plete de­scrip­tion of when is suf­fi­ciently large, and if one wants to prove a poly­no­mial de­pen­dence for fixed , then as­sum­ing that is suf­fi­ciently large is clearly per­mit­ted. The real dif­fi­culty is that con­struct­ing the sets with given sum­set sizes was sig­nif­i­cantly more com­pli­cated, and nec­es­sar­ily so be­cause the de­gree of the poly­no­mial grows with , and one there­fore needs more and more pa­ra­me­ters to de­fine the sets.

In any case, the task faced by ChatGPT was not to solve the prob­lem from scratch, but to see whether it was pos­si­ble to tighten up Isaac Rajagopal’s ar­gu­ment. Here’s what hap­pened.

After 16 min­utes and 41 sec­onds, it came back with an ar­gu­ment that claimed to have im­proved the up­per bound from ex­po­nen­tial in to ex­po­nen­tial in for any .

I asked it to write that in preprint form too, which took it a fur­ther 47 min­utes and 39 sec­onds.

That preprint would have been hard for me to read, as that would have meant care­fully read­ing Rajagopal’s pa­per first, but I sent it to Nathanson, who for­warded it to Rajagopal, who said he thought it looked cor­rect.

Both ChatGPT and Rajagopal spec­u­lated a lit­tle on what might need to be done to push things fur­ther and get a poly­no­mial bound, so I got greedy and asked ChatGPT to give that a go.

After 13 min­utes and 33 sec­onds it told me it felt op­ti­mistic about the ex­is­tence of such an ar­gu­ment but there were a cou­ple of tech­ni­cal state­ments that needed check­ing.

I asked it to check them.

After 9 min­utes and 12 sec­onds it got back to me with the check hav­ing been done, so I asked for this too to be writ­ten in preprint form.

After 31 min­utes and 40 sec­onds the preprint” was ready. Here it is.

Isaac Rajagopal looked at it and de­clared it to be al­most cer­tainly cor­rect. It was clear that he meant this not just at a line-by-line level but at the level of ideas.

Isaac made some very in­ter­est­ing re­marks about the na­ture of what the ad­di­tional ideas were that ChatGPT con­tributed. Since, as I have al­ready said, my math­e­mat­i­cal in­put was zero, I in­vited him to write a guest sec­tion to this post. Just be­fore we get to that, I want to raise a ques­tion (that will un­doubt­edly have been raised by oth­ers as well), which is sim­ple: what should we do with this kind of con­tent? Had the re­sult been pro­duced by a hu­man math­e­mati­cian, it would def­i­nitely have been pub­lish­able, so I think it would be wrong to de­scribe it as AI slop. On the other hand, it seems point­less even to think about putting it in a jour­nal, since it can be made freely avail­able, and no­body needs credit” for it (except that Isaac de­serves plenty of credit for cre­at­ing the frame­work on which ChatGPT could build). I un­der­stand that arXiv has a pol­icy against ac­cept­ing AI-written con­tent, which makes good sense to me. So maybe there should be a dif­fer­ent repos­i­tory where AI-produced re­sults can live. But var­i­ous de­ci­sions would need to be made about how it was or­ga­nized. I my­self think that one would prob­a­bly want to have some kind of mod­er­a­tion process, so that re­sults would be in­cluded only if a hu­man math­e­mati­cian was pre­pared to cer­tify that they were cor­rect — or, bet­ter still, that they had been for­mal­ized by a proof as­sis­tant — and per­haps also that they an­swered a ques­tion that had been asked in a hu­man-writ­ten pa­per. On the other hand, I would­n’t want a mod­er­a­tion process that cre­ated vast amounts of work (unless the work was it­self done by AI, but there are ob­vi­ous dan­gers in go­ing down that route). Anyway, un­til these ques­tions are an­swered, this re­sult is avail­able from the link above, and per­haps, now that LLMs are so good at lit­er­a­ture search, that will be enough to make it find­able by any­one who wants to know whether Nathanson’s prob­lem has been solved.

Isaac’s eval­u­a­tion of what ChatGPT achieved

With just a few prompts, ChatGPT was able to im­prove the up­per bound on (which I will de­fine very soon) from ex­po­nen­tial in to poly­no­mial in . While its first im­prove­ment of the bound, from ex­po­nen­tial in to ex­po­nen­tial in , was a rou­tine mod­i­fi­ca­tion of my work, the im­prove­ment to poly­no­mial in is quite im­pres­sive. To do this, ChatGPT came up with an idea which is orig­i­nal and clever. It is the sort of idea I would be very proud to come up with af­ter a week or two of pon­der­ing, and it took ChatGPT less than an hour to find and prove, us­ing sim­i­lar meth­ods to those in my own proof. My goal is to ex­plain that idea, in a man­ner that will be di­gestible to my friends who are com­puter sci­ence ma­jors as well as my math ma­jor friends.

The prob­lem of bound­ing is closely re­lated to a prob­lem I worked on at the Duluth REU (Research Experience for Undergrads) pro­gram, of de­ter­min­ing . In par­tic­u­lar, is the set of pos­si­ble -fold sum­set sizes , where can be cho­sen to be any set of in­te­gers. is the min­i­mal such that we can achieve all of the val­ues of us­ing -element sets . I spent last sum­mer ex­plic­itly char­ac­ter­iz­ing the set for large , by con­struct­ing sets such that achieves all sizes which I could not rule out as im­pos­si­ble. So, can be up­per-bounded by op­ti­miz­ing my con­struc­tions.

I con­structed these sets by com­bin­ing smaller com­po­nent sets which are sim­pler to an­a­lyze. Some of these com­po­nents are the geo­met­ric se­ries

for var­i­ous val­ues of and . Unfortunately, the el­e­ments of and are ex­po­nen­tially large in terms of . So, I asked ChatGPT (through Tim) whether there ex­ist sets of el­e­ments which have sim­i­lar sum­set sizes to these geo­met­ric se­ries, but con­tain only num­bers of poly­no­mial size in : I had no idea if this was pos­si­ble, or how to be­gin con­struct­ing such sets. ChatGPT came back with an an­swer, con­struct­ing sets and which be­have like half a geo­met­ric se­ries squeezed into a poly­no­mial in­ter­val,” which is coun­ter­in­tu­itive. Before I dis­cuss the con­struc­tion of and , I will ex­plain the im­por­tant prop­er­ties of the sum­set sizes of and which they recre­ate.

For , a set is called a set if the only so­lu­tions to

with in are the trivial” so­lu­tions, by which I mean that one side of the equa­tion is a re­order­ing of the other side. If is a set of size , then el­e­ments of cor­re­spond ex­actly to choices of el­e­ments of , with rep­e­ti­tion al­lowed. Using stars and bars,” one can see that and this is the max­i­mum pos­si­ble value of among sets of size . So, an­other de­f­i­n­i­tion is that is a set if . Sidon sets, which Tim dis­cussed, are ex­actly sets.

To make things more con­crete, let us as­sume that in (1). Then, is a set, but it is not a set be­cause of the re­la­tions

for any choice of in . In par­tic­u­lar, , as these re­la­tions are the only ones pre­vent­ing from be­ing a set. lacks the re­la­tions in (2) be­cause is not in . So, is a set, but it is not a set be­cause of the re­la­tions

for any choices of in . This gives re­la­tions, and one can check that . To sum­ma­rize, we have seen that

(a) is a set.

(b) is a lin­ear func­tion of .

(c) is a set.

(d) is a qua­dratic func­tion of .

ChatGPT was able to find sets and of el­e­ments which sat­isfy (a)-(d), but whose el­e­ments all have poly­no­mial size in . The con­struc­tion of and uses -dissociated sets, which are sets where the only so­lu­tions to

with and in are the trivial” so­lu­tions, i.e. and one side of the equa­tion is a re­order­ing of the other side. For , it is pos­si­ble to con­struct an -dissociated set , where is ap­prox­i­mately , and in par­tic­u­lar poly­no­mial in . Constructions of such a us­ing fi­nite fields date back to Singer (1938) and Bose–Chowla (1963) and are de­scribed in Appendix 1. Define

and

In hind­sight, I have good in­tu­ition for the con­struc­tion of and . All of the re­la­tions in (2) and (3) are formed by com­bin­ing one or two re­la­tions of the form . There are ap­prox­i­mately re­la­tions of the form in and , and ap­prox­i­mately such re­la­tions in and . There are few other low-or­der re­la­tions in and , and sim­i­larly in and be­cause is -dissociated. So, and man­age to con­tain half as many -relations as their geo­met­ric se­ries coun­ter­parts, while also con­tain­ing few low-or­der re­la­tions.

We now see why (a)-(d) hold with and re­placed by and , re­spec­tively. For con­crete­ness, we as­sume that and , so con­tains no non­triv­ial re­la­tions as in (4) with . Then, is a set, but it is not a set be­cause of the re­la­tions

for any choice of in . If we let , we can check that is lin­ear in . In par­tic­u­lar, (a) and (b) hold with re­placed by , and the lin­ear func­tion re­placed by . We can also see that is a set, but it is not a set be­cause of the re­la­tions

for any in . If we let , we can check that is qua­dratic in . In a sim­i­lar man­ner, (c) and (d) hold with re­placed by , and the qua­dratic func­tion re­placed by .

Even though I can mo­ti­vate it in ret­ro­spect, ChatGPT’s idea to use -dissociated sets to con­trol re­la­tions of or­der at most feels quite in­ge­nious. As far as I can tell, this idea is com­pletely orig­i­nal.

ChatGPT’s proof that its con­struc­tion pro­duces the de­sired val­ues of is very sim­i­lar to my proof that the sets which I con­struct achieve all pos­si­ble val­ues of , af­ter re­plac­ing and by and , re­spec­tively. Properties (a)-(d) cap­ture many of the im­por­tant prop­er­ties of and (or and ) which are used in this proof. The fi­nal con­struc­tions in­volve com­bin­ing the sets and (or and in my pa­per) for each value of be­tween and with an­other set which is the union of an arith­metic pro­gres­sion and a point. Intuitively, and (or and ) have large sum­sets, while arith­metic pro­gres­sions have small sum­sets, so it is plau­si­ble that one could get sets which achieve all the medium-sized sum­sets by com­bin­ing them. However, the proof of this is quite in­volved, and it oc­cu­pies Section 4 of my pa­per and the en­tirety of the ChatGPT preprint. In Appendix 2, I work out the de­tails of the ChatGPT con­struc­tion to show that for suf­fi­ciently large,

For com­par­i­son, it is easy to see that is at least on the or­der of , and it is un­known what the real value is. In Appendix 3, I give de­tails of the cor­re­spon­dence be­tween my pa­per and the ChatGPT preprint, which will be help­ful for those who want to read ei­ther.

Finally, I want to ex­press my deep grat­i­tude to Tim for al­low­ing me to con­tribute to this blog. I am still stunned by the co­in­ci­dence that the prob­lem he chose to put into ChatGPT 5.5 Pro led him to my pa­per on the arXiv.

Tim on what this means for math­e­mat­i­cal re­search

I would judge the level of the re­sult that ChatGPT found in un­der two hours to be that of a per­fectly rea­son­able chap­ter in a com­bi­na­torics PhD. It would­n’t be con­sid­ered an amaz­ing re­sult, since it leant very heav­ily on Isaac’s ideas, but it was def­i­nitely a non-triv­ial ex­ten­sion of those ideas, and for a PhD stu­dent to find that ex­ten­sion it would be nec­es­sary to in­vest quite a bit of time di­gest­ing Isaac’s pa­per, look­ing for places where it might not be op­ti­mal, fa­mil­iar­iz­ing one­self with var­i­ous al­ge­braic tech­niques that he used, and so on.

It seems to me that train­ing be­gin­ning PhD stu­dents to do re­search, which has al­ways been hard (unless one is lucky enough, as I have of­ten been, to have a stu­dent who just seems to get it and there­fore does­n’t need in any sense to be trained), has just got harder, since one ob­vi­ous way to help some­body get started is to give them a prob­lem that looks as though it might be a rel­a­tively gen­tle one. If LLMs are at the point where they can solve gentle prob­lems”, then that is no longer an op­tion. The lower bound for con­tribut­ing to math­e­mat­ics will now be to prove some­thing that LLMs can’t prove, rather than sim­ply to prove some­thing that no­body has proved up to now and that at least some­body finds in­ter­est­ing.

I would qual­ify that state­ment in two ways though. First, there is the ob­vi­ous point that a be­gin­ning PhD stu­dent has the op­tion of us­ing LLMs. So the task is po­ten­tially eas­ier than prov­ing some­thing that LLMs can’t prove: it is prov­ing some­thing in col­lab­o­ra­tion with LLMs that LLMs can­not man­age on their own. I have done quite a lot of such col­lab­o­ra­tion re­cently and found that LLMs have made use­ful con­tri­bu­tions with­out (yet) hav­ing game-chang­ing ideas.

A sec­ond point is that I don’t know how much of what I have said gen­er­al­izes to other ar­eas of math­e­mat­ics. Combinatorics tends to be quite fo­cused on prob­lems: you start with a ques­tion and you rea­son back from the ques­tion or if you rea­son for­wards you do so very much with the ques­tion in mind. In other ar­eas there can be much more of an em­pha­sis on for­wards rea­son­ing: you start with a cir­cle of ideas and see where it leads. To do it suc­cess­fully, you need to have some way of dis­crim­i­nat­ing be­tween in­ter­est­ing ob­ser­va­tions and un­in­ter­est­ing ones, and it is­n’t ob­vi­ous to me what LLMs would be like at that.

Of course, every­thing I am say­ing con­cerns LLMs as they are right now. But they are de­vel­op­ing so fast that it seems al­most cer­tain that my com­ments will go out of date in a mat­ter of months. It is also al­most cer­tain that these de­vel­op­ments will have a pro­foundly dis­rup­tive ef­fect on how we go about math­e­mat­i­cal re­search, and es­pe­cially on how we in­tro­duce new­com­ers to it. Somebody start­ing a PhD next aca­d­e­mic year will be fin­ish­ing it in 2029 at the ear­li­est, and my guess is that by then what it means to un­der­take re­search in math­e­mat­ics will have changed out of all recog­ni­tion.

I some­times get emails from peo­ple who are in­ter­ested in do­ing math­e­mat­i­cal re­search but are not sure whether that makes sense any more as an as­pi­ra­tion. I have a view on that ques­tion, but it may very well change in re­sponse to fur­ther de­vel­op­ments. That view is that there is still a great deal of value in strug­gling with a math­e­mat­ics prob­lem, but that the era where you could en­joy the thrill of hav­ing your name for­ever as­so­ci­ated with a par­tic­u­lar the­o­rem or de­f­i­n­i­tion may well be close to its end. So if your aim in do­ing math­e­mat­ics is to achieve some kind of im­mor­tal­ity, so to speak, then you should un­der­stand that that won’t nec­es­sar­ily be pos­si­ble for much longer — not just for you, but for any­body. Here’s a thought ex­per­i­ment: sup­pose that a math­e­mati­cian solved a ma­jor prob­lem by hav­ing a long ex­change with an LLM in which the math­e­mati­cian played a use­ful guid­ing role but the LLM did all the tech­ni­cal work and had the main ideas. Would we re­gard that as a ma­jor achieve­ment of the math­e­mati­cian? I don’t think we would.

So what is the point of strug­gling with a dif­fi­cult math­e­mat­ics prob­lem? One an­swer is that it can be very sat­is­fy­ing to solve a prob­lem even if the an­swer is al­ready known, but I don’t think that is a suf­fi­cient rea­son to spend sev­eral years of your life on this pe­cu­liar ac­tiv­ity. A bet­ter an­swer is that by solv­ing hard prob­lems you get an in­sight into the prob­lem-solv­ing process it­self, at least in your area of ex­per­tise, in a way that you sim­ply don’t if all you do is read other peo­ple’s so­lu­tions. One con­se­quence of this is that peo­ple who have them­selves solved dif­fi­cult prob­lems are likely to be sig­nif­i­cantly bet­ter at us­ing solv­ing prob­lems with the help of AI, just as very good coders are bet­ter at vibe cod­ing than not such good coders, or peo­ple who have a solid grasp of how to do ba­sic arith­metic are likely to be more skilled at us­ing cal­cu­la­tors (and es­pe­cially at notic­ing when an an­swer feels off). Mathematics is a highly trans­fer­able skill, and that ap­plies to re­search-level math­e­mat­ics as well. By do­ing re­search in math­e­mat­ics, you may not get the same re­wards as your equiv­a­lents a gen­er­a­tion ago, but there is a good chance that you will be equip­ping your­self very well for the world we are about to ex­pe­ri­ence.

Appendix 1 (Isaac)

We will con­struct an -dissociated set , where is ap­prox­i­mately . This con­struc­tion is a very mi­nor mod­i­fi­ca­tion of Bose–Chowla (1963)’s con­struc­tion of a set, which I learned about from this pa­per. For what­ever rea­son, the GPT preprint (Lemma 3.1) uses a dif­fer­ent, less ef­fi­cient con­struc­tion us­ing mo­ment curves.

Let be a prime, let , let be the fi­nite field with el­e­ments and fix a gen­er­a­tor of , so that is equal to . Define a set of el­e­ments

Then, each el­e­ment cor­re­sponds to a unique value of , by tak­ing . Now an ad­di­tive re­la­tion of the form in (4) with can be re­framed by tak­ing pow­ers of as

As is a de­gree- ex­ten­sion of and is a gen­er­a­tor of as an -extension, this means that does not sat­isfy any nonzero poly­no­mi­als in of de­gree . So, both sides of (6) are iden­ti­cal as poly­no­mi­als in and thus the ad­di­tive re­la­tion in (4) is triv­ial. So, is -dissociated, and of course one can prune a few el­e­ments to re­duce to size .

Appendix 2 (Isaac)

Fix con­stants such that (in my pa­per I ar­bi­trar­ily chose ). Let the two sets in (5) be called and . Let de­note the set of in­te­gers sat­is­fy­ing . Similarly to my pa­per, the con­struc­tions of such that achieves the de­sired sizes will com­bine sets of the fol­low­ing four types:

One rea­son that this con­struc­tion needs to be com­pli­cated is that we need to cre­ate at least many sets. To do this, we vary pa­ra­me­ters and in the do­main and pa­ra­me­ters and in the do­main . We can choose to be slightly big­ger than , and then the above con­struc­tion gives us dif­fer­ent sets where can be made ar­bi­trar­ily small. So, if we were to re­move any of the above pa­ra­me­ters from the con­struc­tion, and not change the oth­ers, this con­struc­tion would no longer cre­ate many sets. In com­par­i­son, Nathanson’s con­struc­tion when only needs to cre­ate sets. He does this by com­bin­ing a Sidon set, an arith­metic pro­gres­sion, and one ex­tra value, and vary­ing the size of the arith­metic pro­gres­sion and the ex­tra value in ranges of size .

We want to com­bine sets , which are given by , for the val­ues of , for the val­ues of , and a set. By Appendix 1, for all , there ex­ists a -dissociated set of di­am­e­ter . By the con­struc­tions of and , we can take each , where . Let have ba­sis vec­tors . To com­bine , we can de­fine as

Similarly to my Lemma 4.9, this con­struc­tion en­sures that the gen­er­at­ing func­tion prod­uct holds, which is the iden­tity that both my pa­per and the GPT preprint use (see ei­ther pa­per for a de­f­i­n­i­tion of these gen­er­at­ing func­tions). By (the stan­dard) Lemma 2.3 of the GPT preprint, is Freiman-isomorphic of or­der to a sub­set of . Therefore, for suf­fi­ciently large (the whole con­struc­tion re­lies on this for the same rea­sons as in my pa­per),

Appendix 3 (Isaac)

In Section 4.2 of my pa­per, I use a dif­fer­ent, sim­pler con­struc­tion to con­struct sets achiev­ing the val­ues in which have , for some small . These sets are sub­sets of , mean­ing that all el­e­ments have poly­no­mial size in . This is ob­served in Section 5 of the GPT preprint.

Section 4.3 of my pa­per car­ries out the con­struc­tion which com­bines many com­po­nents in­clud­ing and . This cor­re­sponds to Sections 2, 3, 4, and 6 of the GPT preprint. This sec­tion has a lot of mov­ing parts; I give an out­line in Section 4.3.1.

In Section 4.3.2, I de­scribe how the dif­fer­ent com­po­nents will be com­bined, us­ing a con­struc­tion which I call the dis­joint union, and in­tro­duce gen­er­at­ing func­tions as a book­keep­ing tool to keep track of the sum­set sizes of a set . This cor­re­sponds to Section 2 and Section 4 of the GPT preprint.

In Section 4.3.3, I com­pute the gen­er­at­ing func­tion of each of the com­po­nent sets, in­clud­ing (Lemma 4.15) and (Lemma 4.17). This cor­re­sponds to Section 3 and Section 6.1 of the GPT preprint. In par­tic­u­lar, is com­puted in Lemma 3.3 and is com­puted in Lemma 3.4. Once these gen­er­at­ing func­tions have been com­puted, the re­main­der of the proof is al­most iden­ti­cal in my pa­per and in the GPT preprint.

In Section 4.3.4, I put all the pieces to­gether to show that as we range over the sets which I have con­structed, the val­ues of will as­sume all of the el­e­ments of . The key idea is to show that the set of all val­ues of forms an in­ter­val, and con­tains num­bers both smaller than and equal to .

Tags: ai, math­e­mat­ics

This en­try was posted on May 8, 2026 at 4:40 pm and is filed un­der Computing, Straight maths. You can fol­low any re­sponses to this en­try through the RSS 2.0 feed. You can leave a re­sponse, or track­back from your own site.

OpenAI's WebRTC Problem - Media over QUIC

moq.dev

pub­lished 5/6/2026

OpenAI posted a tech­ni­cal blog a few days ago. This blog post trig­gered me more than it should have. I urge to slap my meaty fin­gers on the key­board.

You should NOT copy OpenAI.

I don’t think you should use WebRTC for voice AI. WebRTC is the prob­lem.

Me

Like 6 years ago I wrote a WebRTC SFU at Twitch. Originally we used Pion (Go) just like OpenAI, but forked af­ter bench­mark­ing re­vealed that it was too slow. I ended up rewrit­ing every pro­to­col, be­cause of course I did!

Just a year ago, I was at Discord and I rewrote the WebRTC SFU in Rust. Because of course I did! You’re prob­a­bly notic­ing a trend.

Fun Fact: WebRTC con­sists of ~45 RFCs dat­ing back to the early 2000s. And some de-facto stan­dards that are tech­ni­cally drafts (ex. TWCC, REMB). Not a fun fact when you have to im­ple­ment them all.

You should con­sider me a Certified WebRTC Expert. Which is why I never, never want to use WebRTC again.

Product Fit

I’m go­ing to cheat a lit­tle bit and start with the hot takes be­fore they get cold. Don’t worry, we’ll get right back to talk­ing about the OpenAI blog post and load bal­anc­ing, I promise.

WebRTC is a poor fit for Voice AI.

But that seems counter-in­tu­itive? WebRTC is for con­fer­enc­ing, and that in­volves speak­ing? And ro­bots can speak, right?

WebRTC is too ag­gres­sive

Let’s say I pull up my OpenAI app on my phone. I say hi to Scarlett Johansson Sky and then I ut­ter:

should I walk or drive to the car wash?

should I walk or drive to the car wash?

WebRTC is de­signed to de­grade and drop my prompt dur­ing poor net­work con­di­tions.

wtf my dude

WebRTC ag­gres­sively drops au­dio pack­ets to keep la­tency low. If you’ve ever heard dis­torted au­dio on a con­fer­ence call, that’s WebRTC bay­bee. The idea is that con­fer­ence calls de­pend on rapid back-and-forth, so paus­ing to wait for au­dio is un­ac­cept­able.

…but as a user, I would much rather wait an ex­tra 200ms for my slow/​ex­pen­sive prompt to be ac­cu­rate. After all, I’m pay­ing good money to boil the ocean, and a garbage prompt means a garbage re­sponse. It’s not like LLMs are par­tic­u­larly re­spon­sive any­way.

But I’m not al­lowed to wait. It’s im­pos­si­ble to even re­trans­mit a WebRTC au­dio packet within a browser; we tried at Discord. The im­ple­men­ta­tion is hard-coded for real-time la­tency or else.

UPDATE: Some WebRTC folks are claim­ing this is a skill is­sue. It might be pos­si­ble to en­able au­dio NACKs, but we could­n’t fig­ure out the cor­rect SDP mung­ing. Either way, the WebRTC jit­ter buffer is ag­gres­sively small.

And yes, Voice AI agents will even­tu­ally get the la­tency down to the con­ver­sa­tional range. But re­duc­ing la­tency has trade-offs. I’m not even sure that pur­posely de­grad­ing au­dio prompts will ever be worth it.

TTS is faster than real-time

You speak into the mi­cro­phone, it gets sent to one of OpenAI’s bil­lion servers, and then a GPU pre­tends to talk to you via text-to-speech. Neato.

Let’s say it takes 2s of GPUs to gen­er­ate 8s of au­dio. In an ideal world, we would stream the au­dio as it’s be­ing gen­er­ated (over 2s) and the client would start play­ing it back (over 8s). That way, if there’s a net­work blip, some au­dio is buffered lo­cally. The user might not even no­tice the net­work blip.

But nope, WebRTC has no buffer­ing and ren­ders based on ar­rival time. Like se­ri­ously, time­stamps are just sug­ges­tions. It’s even more an­noy­ing when video en­ters the pic­ture.

To com­pen­sate for this, OpenAI has to make sure pack­ets ar­rive ex­actly when they should be ren­dered. They need to add a sleep in front of every au­dio packet be­fore send­ing it. But if there’s net­work con­ges­tion, oops we lost that au­dio packet and it’ll never be re­trans­mit­ted.

OpenAI is lit­er­ally in­tro­duc­ing ar­ti­fi­cial la­tency, and then ag­gres­sively drop­ping pack­ets to keep la­tency low”. It’s the equiv­a­lent of screen shar­ing a YouTube video in­stead of buffer­ing it. The qual­ity will be de­graded.

Fun fact: WebRTC ac­tu­ally adds la­tency. It’s not much, but WebRTC has a dy­namic jit­ter buffer that can be sized any­where from 20ms to 200ms (for au­dio). This is meant to smooth out net­work jit­ter, but none of this is needed if you trans­fer faster than real-time.

Ports Ports Ports

Okay but let’s talk about the tech­ni­cal meat of the OpenAI ar­ti­cle. We’re no longer on a boat, but let’s talk about ports.

When you host a TCP server, you open a port (ex. 443 for HTTPS) and lis­ten for in­com­ing con­nec­tions. The TCP client will ran­domly se­lect an ephemeral port to use, and the con­nec­tion is iden­ti­fied by the source/​des­ti­na­tion IP/ports. For ex­am­ple, a con­nec­tion might be iden­ti­fied as 123.45.67.89:54321 -> 192.168.1.2:443.

But there’s a mi­nor prob­lem… client ad­dresses can change. When your phone switches from WiFi to cel­lu­lar, oops your IP changes. NATs can also ar­bi­trar­ily change your source IP/port be­cause of course they can.

Whenever this hap­pens, bye bye con­nec­tion, it’s time to dial a new one. And that means an ex­pen­sive TCP + TLS hand­shake which takes at least 2 – 3 RTTs. The users def­i­nitely no­tice the net­work hic­cup when you’re live stream­ing.

WebRTC tried to solve this is­sue but made things worse. Seriously.

A WebRTC im­ple­men­ta­tion is sup­posed to al­lo­cate an ephemeral port for each con­nec­tion. That way, a WebRTC ses­sion can iden­ti­fied by the des­ti­na­tion IP/port only; the source is ir­rel­e­vant. If the source IP/port changes, oh hey that’s still Bob be­cause the des­ti­na­tion port is the same.

But as OpenAI cor­rob­o­rates, this causes is­sues at scale be­cause…

Servers only have a lim­ited num­ber of ports avail­able.

Firewalls love to block ephemeral ports.

Kubernetes lul

You could prob­a­bly abuse IPv6 to work around this, but IDK I never tried. Twitch did­n’t even sup­port IPv6…

Hacks by Necessity

So most ser­vices end up ig­nor­ing the WebRTC spec­i­fi­ca­tions. Because of course they do. We mux mul­ti­ple con­nec­tions onto a sin­gle port in­stead.

At Twitch I lit­er­ally hosted my WebRTC server on UDP:443. That’s sup­posed to be the HTTPS/QUIC port, but ly­ing meant we could get past more fire­walls. Like the Amazon cor­po­rate net­work, which blocked all but ~30 ports.

Discord uses ports 50000 – 50032, one for each CPU core. As a re­sult it gets blocked on more cor­po­rate net­works. But like, if you’re on a Discord voice call on the Amazon cor­po­rate net­work, you prob­a­bly won’t be there much longer any­way.

HOWEVER, HUGE PROBLEM.

WebRTC is ac­tu­ally a bunch of stan­dards in a trench­coat, and 5 of those go over UDP di­rectly. It’s not hard to fig­ure out which pro­to­col a packet is us­ing, but we need to fig­ure out how to route each packet.

STUN: We can choose a unique ufrag and route on it.

SRTP/SRTCP: The browser chooses a ran­dom ssrc (u32)… which we can usu­ally route based on.

DTLS: Uh oh. We pray that RFC9146 gets wide­spread sup­port.

TURN: IDK I’ve never im­ple­mented it.

So OpenAI only uses STUN:

No pro­to­col ter­mi­na­tion: Relay parses only STUN head­ers/​ufrag; it uses cached state for sub­se­quent DTLS, RTP, and RTCP, keep­ing pack­ets opaque.

No pro­to­col ter­mi­na­tion: Relay parses only STUN head­ers/​ufrag; it uses cached state for sub­se­quent DTLS, RTP, and RTCP, keep­ing pack­ets opaque.

It’s a pos­i­tive way of say­ing:

We re­ally hope the user’s source IP/port never changes, be­cause we broke that func­tion­al­ity.

We re­ally hope the user’s source IP/port never changes, be­cause we broke that func­tion­al­ity.

While it’s im­pres­sive load bal­anc­ing any­thing at OpenAI scale, their cus­tom load bal­anc­ing is a hack. But a nec­es­sary hack, be­cause the core pro­to­col is at fault.

Fun fact: Browsers can ran­domly gen­er­ate the same ssrc. If there is a col­li­sion, and no source IP/port map­ping is avail­able, Discord at­tempts to de­crypt the packet with each pos­si­ble de­cryp­tion key. If the key worked, hey we iden­ti­fied the con­nec­tion!

Round Trips and U

The OpenAI blog post starts with 3 re­quire­ments, one of them is:

Fast con­nec­tion setup so a user can start speak­ing as soon as a ses­sion be­gins

Fast con­nec­tion setup so a user can start speak­ing as soon as a ses­sion be­gins

lol

It takes a min­i­mum of 8* round trips (RTT) to es­tab­lish a WebRTC con­nec­tion. While we try to run CDN edge nodes close enough to every user to min­i­mize RTT, it adds up.

Signaling server (ex. WHIP):

1 for TCP

1 for TLS 1.3

1 for HTTP

Media server:

1 for ICE (with server)

2 for DTLS 1.2

2 for SCTP

* It’s com­pli­cated to com­pute, be­cause some pro­to­cols can be pipelined to avoid 0.5 RTT. Kinda like half an A-Press.

All of this non­sense is be­cause WebRTC needs to sup­port P2P. It does­n’t mat­ter if you have a server with a sta­tic IP ad­dress, you still need to do this dance.

It’s ex­tra de­press­ing when the sig­nal­ing and me­dia server are run­ning on the same host/​process. You end up do­ing two re­dun­dant and ex­pen­sive hand­shakes. It’s like walk­ing AND dri­ving your car to the car wash.

Forking the Protocol

Fun Fact: This was orig­i­nally go­ing to be a Fun Fact, but it gets its own sec­tion now.

WebRTC prac­ti­cally en­cour­ages you to fork the pro­to­col. There’s so many lim­i­ta­tions that I’ve barely scratched the sur­face. The browser im­ple­men­ta­tion is owned by Google and tai­lor made for Google Meet, so it’s also an ex­is­ten­tial threat for con­fer­enc­ing apps.

Sad Fact: That’s why every con­fer­enc­ing app (except Google Meet) tries to shove a na­tive app down your throat. It’s the only way to avoid us­ing WebRTC.

OpenAI def­i­nitely has the debt fund­ing to do this. But I think they should also throw the baby out with the bath wa­ter. Don’t fork WebRTC, re­place it with some­thing that has browser sup­port.

Fun Fact: Discord has forked WebRTC so hard that na­tive clients only im­ple­ment a tiny frac­tion of the pro­to­col. No more SDP/ICE/STUN/TURN/DTLS/SCTP/SRTP/etc. But we still have to im­ple­ment every­thing for web clients.

But What Instead?

If not WebRTC, then what should you use for Voice AI?

Honestly, if I was work­ing at OpenAI, I’d start by stream au­dio over WebSockets. You can lever­age ex­ist­ing TCP/HTTP in­fra­struc­ture in­stead of in­vent­ing a cus­tom WebRTC load bal­ancer. It makes for a bor­ing blog post, but it’s sim­ple, works with Kubernetes, and SCALES.

I think head-of-line block­ing is a de­sir­able user ex­pe­ri­ence, not a li­a­bil­ity. But the fated day will come and drop­ping/​pri­or­i­tiz­ing some pack­ets will be nec­es­sary. Then I think OpenAI should copy MoQ and uti­lize WebTransport, be­cause…

QUIC FIXES THIS

Remember the round trip dis­cus­sion? Good times. Here’s how many RTTs it takes to es­tab­lish a QUIC con­nec­tion:

1 for QUIC+TLS

But that was an easy one. Let’s dive into the deeper de­tails of QUIC that you would­n’t know about un­less you’re a turbo QUIC nerd (it me).

Connection ID

Remember that link to RFC9146? In the DTLS sec­tion? That you did­n’t click? Good times. The idea is lit­er­ally copied from QUIC.

QUIC ditches source IP/port based rout­ing. Instead, every packet con­tains a CONNECTION_ID, which can be 0 – 20 bytes long. And most im­por­tantly for us: it’s cho­sen by the re­ceiver.

So our QUIC server gen­er­ates a unique CONNECTION_ID for each con­nec­tion. Now we can use a sin­gle port and still fig­ure out when the source IP/port changes. When it does, QUIC au­to­mat­i­cally switches to the new ad­dress in­stead of sev­er­ing the con­nec­tion like TCP.

But if your gut re­ac­tion is: how dare they! this is a waste of bytes!” These bytes are very im­por­tant, keep read­ing u nerd.

Stateless Load Balancing

I glossed over this, but OpenAI’s load bal­ancers (like most) de­pend on shared state. Even if you have a sticky packet router, load bal­ancers can still restart/​crash. Something has to store the map­ping from source IP/port -> back­end server.

They’re us­ing a Redis in­stance to store the map­ping of source IP/port to back­end server. Simple and easy, I ap­prove.

AI is Breaking Two Vulnerability Cultures

www.jefftk.com

A week ago the Copy Fail vul­ner­a­bil­ity came out, and Hyunwoo Kim im­me­di­ately re­al­ized that the fixes were in­suf­fi­cient, shar­ing a patch the same day. In do­ing this he fol­lowed stan­dard pro­ce­dure for Linux, es­pe­cially within net­work­ing: share the se­cu­rity im­pact with a closed list of Linux se­cu­rity en­gi­neers, while fix­ing the bug qui­etly and ef­fi­ciently in the open. His goal was that with only the raw fix pub­lic, the knowl­edge that a se­ri­ous vul­ner­a­bil­ity ex­isted could be embargoed”: the peo­ple in a po­si­tion to ad­dress it know, but they’ve agreed not to say any­thing for a few days.

Someone else no­ticed the change, how­ever, re­al­ized the se­cu­rity im­pli­ca­tions, and shared it pub­licly. Since it was now out, the em­bargo was deemed over, and we can now see the full de­tails.

It’s in­ter­est­ing to see the ten­sion here be­tween two dif­fer­ent ap­proaches to vul­ner­a­bil­i­ties, and think about how this is likely to change with AI ac­cel­er­a­tion.

On one side you have coordinated dis­clo­sure” cul­ture. This is prob­a­bly the most com­mon ap­proach in com­puter se­cu­rity. When you dis­cover a se­cu­rity bug you tell the main­tain­ers pri­vately and give them some amount of time (often 90d) to fix it. The goal is that a fix is out be­fore any­one learns about the hole.

On the other side you have bugs are bugs” cul­ture. This is es­pe­cially com­mon in Linux, where the ar­gu­ment is that if the ker­nel is do­ing some­thing it should­n’t then some­one some­where may be able to turn it into an at­tack. Just fix things as quickly as pos­si­ble, with­out draw­ing at­ten­tion to them. Often peo­ple won’t no­tice, with so many changes go­ing past, and there’s still time to get ma­chines patched.

This ap­proach never worked per­fectly, but with AI get­ting good at find­ing vul­ner­a­bil­i­ties it’s a much big­ger prob­lem. So many se­cu­rity fixes are com­ing out now that ex­am­in­ing com­mits is much more at­trac­tive: the sig­nal-to-noise ra­tio is higher. Additionally, hav­ing AI eval­u­ate each com­mit as it passes is in­creas­ingly cheap and ef­fec­tive. [1]

Long em­bar­goes, how­ever, aren’t do­ing well ei­ther. The his­tor­i­cal pace of de­tec­tion was slow: if you found some­thing and re­ported it to the ven­dor with a 90d dis­clo­sure win­dow, there was a very good chance no one else would no­tice dur­ing that time. But now with so many AI-assisted groups scan­ning soft­ware for vul­ner­a­bil­i­ties, that no longer holds. In this case, just nine hours af­ter Kim re­ported the ESP vul­ner­a­bil­ity Kuan-Ting Chen also in­de­pen­dently re­ported it. Embargoes can in­crease risk: they cre­ate a false sense of non-ur­gency and limit which ac­tors can work to fix a flaw.

I don’t know how to re­solve this, but per­son­ally very short em­bar­goes seem like a good ap­proach, and they’d need to get even shorter over time. Luckily AI can speed up de­fend­ers as well as at­tack­ers here, al­low­ing em­bar­goes that would pre­vi­ously have been use­lessly short.

[1] I tested on Gemini 3.1 Pro, ChatGPT-Thinking 5.5, and Claude Opus 4.7. All three all got it right away when given f4c50a403. When I gave them just the diff, imag­in­ing a hy­po­thet­i­cal fu­ture where diffs are still pub­lic right away but with less con­text, Gemini was sure it was a se­cu­rity fix, GPT thought it prob­a­bly was, and Claude thought it prob­a­bly was­n’t. This is just a very quick test to il­lus­trate what’s pos­si­ble: one run of each with the prompt Without search­ing, does this look like a se­cu­rity patch?” There’s no con­trol group, and don’t put much stock in the cross-model com­par­i­son!

EU calls VPNs “a loophole that needs closing” in age verification push

cyberinsider.com

The European Parliamentary Research Service (EPRS) has warned that vir­tual pri­vate net­works (VPNs) are in­creas­ingly be­ing used to by­pass on­line age-ver­i­fi­ca­tion sys­tems, de­scrib­ing the trend as a loop­hole in the leg­is­la­tion that needs clos­ing.”

The warn­ing comes as gov­ern­ments across Europe and else­where con­tinue ex­pand­ing on­line child-safety rules that re­quire plat­forms to ver­ify users’ ages be­fore grant­ing ac­cess to adult or age-re­stricted con­tent.

VPNs are pri­vacy tools de­signed to en­crypt in­ter­net traf­fic and hide a user’s IP ad­dress by rout­ing con­nec­tions through re­mote servers. While widely used for le­git­i­mate pur­poses such as pro­tect­ing com­mu­ni­ca­tions, avoid­ing sur­veil­lance, and en­abling se­cure re­mote work, reg­u­la­tors are in­creas­ingly con­cerned that the same tech­nol­ogy al­lows mi­nors to cir­cum­vent re­gional age checks.

The EPRS notes that VPN us­age surged af­ter manda­tory age-ver­i­fi­ca­tion laws took ef­fect in coun­tries in­clud­ing the United Kingdom and sev­eral US states. In the UK, where on­line ser­vices are now re­quired to pre­vent chil­dren from ac­cess­ing harm­ful con­tent, VPN apps re­port­edly dom­i­nated down­load charts af­ter the law came into force.

— European Parliamentary Research Service (@EP_EPRS) May 6, 2026

The doc­u­ment ex­plic­itly frames VPNs as a reg­u­la­tory gap, stat­ing that some pol­i­cy­mak­ers and child-safety ad­vo­cates be­lieve VPN ac­cess it­self should re­quire age ver­i­fi­ca­tion. England’s Children’s Commissioner has also called for VPN ser­vices to be re­stricted to adults only.

However, forc­ing users to ver­ify their iden­tity be­fore ac­cess­ing VPN ser­vices could sig­nif­i­cantly weaken anonymity pro­tec­tions and cre­ate new risks around sur­veil­lance and data col­lec­tion. VPN providers and other pri­vacy ad­vo­cates have al­ready ex­pressed their ob­jec­tions to this ap­proach in a let­ter sent to the UK pol­i­cy­mak­ers.

Last month, re­searchers found mul­ti­ple se­cu­rity and pri­vacy flaws in the European Commission’s of­fi­cial age-ver­i­fi­ca­tion app shortly af­ter its re­lease. The app, pro­moted as a pri­vacy-pre­serv­ing tool un­der the DSA frame­work, was dis­cov­ered stor­ing sen­si­tive bio­met­ric im­ages in un­en­crypted lo­ca­tions and ex­pos­ing weak­nesses that could al­low users to by­pass ver­i­fi­ca­tion con­trols en­tirely.

The EPRS pa­per ac­knowl­edges that age ver­i­fi­ca­tion re­mains tech­ni­cally dif­fi­cult and frag­mented across the EU. Current sys­tems based on self-de­c­la­ra­tion, age es­ti­ma­tion, or iden­tity ver­i­fi­ca­tion are de­scribed as rel­a­tively easy for mi­nors to by­pass. The re­port high­lights emerg­ing ap­proaches, such as double-blind” ver­i­fi­ca­tion sys­tems used in France, where web­sites re­ceive only con­fir­ma­tion that a user meets age re­quire­ments with­out learn­ing the user’s iden­tity, while the ver­i­fi­ca­tion provider does not see which web­sites the user vis­its.

At the same time, reg­u­la­tors are be­gin­ning to ad­dress VPN use di­rectly in leg­is­la­tion. Utah re­cently be­came the first US state to en­act a law ex­plic­itly tar­get­ing VPN use in on­line age ver­i­fi­ca­tion. The state’s SB 73 de­fines a user’s lo­ca­tion based on phys­i­cal pres­ence rather than ap­par­ent IP ad­dress, even if VPNs or proxy ser­vices are used to mask it.

The EPRS sug­gests VPN providers may face in­creas­ing scrutiny as the EU re­vises cy­ber­se­cu­rity and on­line safety leg­is­la­tion, not­ing that fu­ture up­dates to the EU Cybersecurity Act could in­tro­duce child-safety re­quire­ments aimed at pre­vent­ing VPN mis­use to by­pass le­gal pro­tec­tions.

If you liked this ar­ti­cle, be sure to fol­low us on X/Twitter and also LinkedIn for more ex­clu­sive con­tent.

Internet Archive Switzerland

internetarchive.ch

Welcome

Welcome toIn­t­er­net Archive Switzerland.

Universal Access to ALL Knowledge.

Internet Archive Switzerland is an in­de­pen­dent Swiss foun­da­tion, which is op­er­at­ing as an non-profit or­gan­i­sa­tion based in Sankt Gallen. Our pri­mary goal is: Universal Access to All Knowledge.

Together with like-minded part­ners we col­lect and pre­serve dig­i­tal in­for­ma­tion for learn­ing and re­search. Our ob­jec­tive is to en­sure peo­ple can find any kind of help­ful dig­i­tal ma­te­ri­als, to­day and in the fu­ture.

Although at first glance one might think that the dig­i­tal con­tent avail­able on the in­ter­net is in­ex­haustible and end­lessly grow­ing, it is also ev­i­dent that dig­i­tal in­for­ma­tion is ac­tu­ally short-lived.

We are fac­ing con­stant changes in file for­mats, sud­den fail­ure of stor­age me­dia, rapid dele­tion processes (accidental or de­lib­er­ate) and an in­creas­ing ten­dency of hid­ing knowl­edge be­hind pay­walls. All of this jeop­ar­dises easy ac­cess to in­for­ma­tion, learn­ing and the shap­ing of opin­ions on the ba­sis of facts.

All of this has led us to launch two ini­tia­tives in the foun­da­tion’s early stages: We are part­ner­ing with the University of St. Gallen to build the Gen Artificial Intelligence (AI) Archive, pre­serv­ing to­day’s AI mod­els for fu­ture gen­er­a­tions. And through our Endangered Archives ini­tia­tive, we in­vite global part­ners to ex­plore ways of res­cu­ing vul­ner­a­ble col­lec­tions from con­flict, dis­as­ter, and sup­pres­sion be­fore they are lost.

Projects

What we are WORKING on.

Project 01 · Research

Gen AI Archive

Artificial Intelligence, Generative AI, and Large Language Models (LLMs) are fun­da­men­tally re­shap­ing how hu­man­ity cre­ates and shares knowl­edge. To doc­u­ment this evo­lu­tion, the University of St. Gallen and Internet Archive Switzerland part­ner in pre­serv­ing to­day’s most pro­found mod­els for fu­ture gen­er­a­tions in the Gen AI Archive.

Project 02 · Preservation

Endangered Archives

Cultural her­itage and his­tor­i­cal records world­wide face ever grow­ing threats from con­flict, in­sta­bil­ity, and nat­ural dis­as­ters. To pre­vent the loss of this col­lec­tive mem­ory, Internet Archive Switzerland seeks to es­tab­lish an ini­tia­tive called Endangered Archives. In co­op­er­a­tion with UNESCO and other well es­tab­lished or­gan­i­sa­tions we aim to res­cue vul­ner­a­ble ma­te­ri­als by pro­vid­ing a se­cure dig­i­tal haven.

About

The foun­da­tion.

Organization

An in­de­pen­dent non profit foun­da­tion in St. Gallen, Switzerland. Mission-aligned with the Internet Archive, Internet Archive Canada and Internet Archive Europe, and a com­mon goal: Universal Access to All Knowledge.

Our char­ter states (excerpt): The pur­pose of the Foundation is to ad­vance the preser­va­tion and uni­ver­sal ac­ces­si­bil­ity of all knowl­edge as in­spired by the United Nations Universal Declaration of Human Rights (Articles 19, 26, and 27) and the United Nations’s Sustainable Development Goal 4, which strives to en­sure in­clu­sive and eq­ui­table qual­ity ed­u­ca­tion and pro­mote life­long learn­ing op­por­tu­ni­ties for all.

Board & Advisers

Executive Director

Roman Griesfelder

Internet Archive Switzerland is led by Roman Griesfelder as Executive Director. Roman is an Austrian cit­i­zen and has been liv­ing in Switzerland since 1998. The so­ci­ol­o­gist and busi­ness ad­min­is­tra­tor has been work­ing for many years in se­nior roles as pro­ject man­ager and man­age­ment con­sul­tant, among other things, be­fore hold­ing lead­ing po­si­tions at cul­tural in­sti­tu­tions in Switzerland. His wide-rang­ing in­ter­ests con­verge at the points where so­cial, cul­tural and tech­no­log­i­cal de­vel­op­ments in­ter­sect and af­fect the lives of many peo­ple, or even just a few in­di­vid­u­als.

Location

St. Gallen.

47.4245° N · 9.3767° E

St. Gallen is no stranger to the idea that pre­serv­ing the record is a form of civic re­spon­si­bil­ity. Its archival tra­di­tion stretches back over a thou­sand years — a fit­ting sym­bolic home for this new chap­ter of the Internet Archive.

The ex­is­tence of the Abbey Archives proves that, with con­vic­tion and per­se­ver­ance, it is pos­si­ble to pre­serve the foun­da­tions of our knowl­edge about so­ci­ety. This con­vic­tion mo­ti­vates the Internet Archive Switzerland to em­bark boldly on its mis­sion and to pur­sue it un­wa­ver­ingly.

We are also de­lighted to be part­ner­ing with the University of St. Gallen to es­tab­lish the world’s first com­pre­hen­sive AI archive.

Blog

Latest NEWS.

May 5, 2026 • 5 min­utes of read­ing

Internet Archive Switzerland Launches in St. GallenA Thousand Years of Memory, and a New Chapter

On May 5th, 2026, Internet Archive Switzerland cel­e­brates its launch at the ex­hi­bi­tion hall of the Abbey Archives of St. Gallen, one of the old­est con­tin­u­ously ac­tive archives in the world. We are grate­ful to Peter Erhart and the Abbey Archives of St. Gallen for host­ing us: two in­sti­tu­tions, one a mil­len­nium old and one…

Read more: Internet Archive Switzerland Launches in St. Gallen

May 5, 2026 • 5 min­utes of read­ing

Internet Archive Switzerland Launches in St. Gallen

A Thousand Years of Memory, and a New Chapter

On May 5th, 2026, Internet Archive Switzerland cel­e­brates its launch at the ex­hi­bi­tion hall of the Abbey Archives of St. Gallen, one of the old­est con­tin­u­ously ac­tive archives in the world. We are grate­ful to Peter Erhart and the Abbey Archives of St. Gallen for host­ing us: two in­sti­tu­tions, one a mil­len­nium old and one…

Meta Shuts Down End-to-End Encryption for Instagram Messaging

www.pcmag.com

Meta may be fight­ing tooth and nail to prove that WhatsApp of­fers end-to-end en­cryp­tion (E2E), but as of to­day, it’s re­mov­ing the tech­nol­ogy from Instagram DMs.

E2E en­cryp­tion means that no one ex­cept the two par­ties mes­sag­ing each other can read the mes­sage logs, in­clud­ing gov­ern­ment en­ti­ties, law en­force­ment, or even Meta it­self. However, in a brief note posted on its sup­port web­site, the com­pany notes that, End-to-end en­crypted mes­sag­ing on Instagram will no longer be sup­ported af­ter May 8, 2026.”

In a state­ment to PCMag, a Meta spokesper­son said it opted to re­move the fea­ture be­cause very few peo­ple were opt­ing in to end-to-end en­crypted mes­sag­ing in DMs. Anyone who wants to keep mes­sag­ing with end-to-end en­cryp­tion can eas­ily do that on WhatsApp.”

E2E en­cryp­tion is en­abled by de­fault on WhatsApp. On Facebook Messenger, it’s au­to­mat­i­cally on for per­sonal mes­sages (but not for group or busi­ness mes­sages).

If you have chats that are im­pacted by this change, you will see in­struc­tions on how you can down­load any me­dia or mes­sages you may want to keep,” Meta says. You may need to up­grade to a newer ver­sion of your app to down­load your data.

Adding E2E en­cryp­tion to Instagram had at­tracted con­tro­versy. A case brought by New Mexico Attorney General Raúl Torrez al­leged that the com­pany knew that E2E would make its plat­forms less safe by pre­vent­ing it from de­tect­ing and re­port­ing child sex­ual ex­ploita­tion and the so­lic­i­ta­tion and dis­tri­b­u­tion of child ex­ploita­tion im­ages sent in en­crypted mes­sages.”

Recommended by Our Editors

In March, a New Mexico jury found Meta li­able un­der the Unfair Practices Act and or­dered $375 mil­lion in civil penal­ties; the com­pany is ap­peal­ing and push­ing back on sug­gested changes.

In March, TikTok said it was not plan­ning to add E2E for DMs. Our mes­sag­ing sys­tem has long been de­signed to bal­ance user pri­vacy with the abil­ity to re­spond to scams, ha­rass­ment, and other safety con­cerns when users re­port them or when re­quired by law,” a spokesper­son said.

About Our Expert

Will McCurdy

Contributor

Experience

I’m a re­porter cov­er­ing week­end news. Before join­ing PCMag in 2024, I picked up by­lines in BBC News, The Guardian, The Times of London, The Daily Beast, Vice, Slate, Fast Company, The Evening Standard, The i, TechRadar, and Decrypt Media.

I’ve been a PC gamer since you had to in­stall games from mul­ti­ple CD-ROMs by hand. As a re­porter, I’m pas­sion­ate about the in­ter­sec­tion of tech and hu­man lives. I’ve cov­ered every­thing from crypto scan­dals to the art world, as well as con­spir­acy the­o­ries, UK pol­i­tics, and Russia and for­eign af­fairs.

Latest By Will McCurdy

Read Full Bio

bliki: Mythical Man Month

martinfowler.com

In the early 1960s, Fred Brooks man­aged the de­vel­op­ment of IBMs System/360 com­puter sys­tems. After it was done he penned his thoughts in the book The Mythical Man-Month which be­came one of the most in­flu­en­tial books on soft­ware de­vel­op­ment af­ter its pub­li­ca­tion in 1975. Reading it in 2026, we’ll find some of it out­dated, but it also re­tains many lessons that are still rel­e­vant to­day.

The book con­tains Brooks’s law: Adding man­power to a late soft­ware pro­ject makes it later.” The is­sue here is com­mu­ni­ca­tion, as the num­ber of peo­ple grows, the num­ber of com­mu­ni­ca­tion paths be­tween those peo­ple grows ex­po­nen­tially. Unless these paths are skill­fully de­signed, then work quickly falls apart.

Perhaps my most en­dur­ing les­son from this book is the im­por­tance of con­cep­tual in­tegrity

I will con­tend that con­cep­tual in­tegrity is the most im­por­tant con­sid­er­a­tion in sys­tem de­sign. It is bet­ter to have a sys­tem omit cer­tain anom­alous fea­tures and im­prove­ments, but to re­flect one set of de­sign ideas, than to have one that con­tains many good but in­de­pen­dent and un­co­or­di­nated ideas.

I will con­tend that con­cep­tual in­tegrity is the most im­por­tant con­sid­er­a­tion in sys­tem de­sign. It is bet­ter to have a sys­tem omit cer­tain anom­alous fea­tures and im­prove­ments, but to re­flect one set of de­sign ideas, than to have one that con­tains many good but in­de­pen­dent and un­co­or­di­nated ideas.

He ar­gues that con­cep­tual in­tegrity comes from both sim­plic­ity and straight­for­ward­ness - the lat­ter be­ing how eas­ily we can com­pose el­e­ments. This point of view has been a strong in­flu­ence upon my ca­reer, the pur­suit of con­cep­tual in­tegrity un­der­pins much of my work.

The an­niver­sary edi­tion of this book is the one to get, be­cause it also in­cludes his even-more in­flu­en­tial 1986 es­say No Silver Bullet”.

reuters.com

www.reuters.com

Please en­able JS and dis­able any ad blocker

To add this web app to your iOS home screen tap the share button and select "Add to the Home Screen".

10HN is also available as an iOS App

If you visit 10HN only rarely, check out the the best articles from the past week.

Visit pancik.com for more.